master-thesis/doc/Conclusion.tex

173 lines
4.2 KiB
TeX
Raw Normal View History

2019-08-07 13:55:53 +00:00
\chapter{\label{summary}Conclusion}
%** Summary.tex: What have you achieved, what have you presented in this
% document. What are the highlights of your work.
% It should conclude by a conclusion.
Sum up what you have done and recapitulate your key findings.
%\section{\label{conclusion:overall}Overall}
2019-08-09 12:25:18 +00:00
\section{\label{conclusion:softwarenat64}Software based NAT64}
2019-08-12 10:13:59 +00:00
\section{\label{conclusion:general}General}
Many misleading
2019-08-07 13:55:53 +00:00
\section{\label{conclusion:bmv2}BMV2}
2019-08-12 15:36:43 +00:00
2019-08-07 13:55:53 +00:00
\section{\label{conclusion:P4}P4}
2019-08-12 10:13:59 +00:00
checksumming a frequent problem and helper
2019-08-07 13:55:53 +00:00
Many possibilities
Protocol independent
Easy architecture
Limitations in
2019-08-12 10:13:59 +00:00
if in action limitations
Limits if in actions
python2 only - unicode errors
IPv6: NDP: not easy to parse, as unknown number of following fields
No support for multiple LPM keys in a table, can be solved with
ternary matching.
switch cannot be used in actions
2019-08-12 15:36:43 +00:00
if things don't work, often a checksum problem.
if frame checksum, then length of packet is broken
\begin{verbatim}
p4c --target bmv2 --arch v1model --std p4-16 "../p4src/static-mapping.p4" -o "/home/p4/master-thesis/p4src"
../p4src/static-mapping.p4(366): error: Program is not supported by this target, because table MyIngress.v6_networks has multiple successors
table v6_networks {
^^^^^^^^^^^
\end{verbatim}
2019-08-12 10:13:59 +00:00
\begin{verbatim}
ipaddress.ip_network("2001:db8:61::/64")
IPv6Network(u'3230:3031:3a64:6238:3a36:313a:3a2f:3634/128')
Fix:
from __future__ import unicode_literals
\end{verbatim}
The tooling around P4 is still fragile, encountered many bugs
in the development.\cite{schottelius:github1675}
2019-08-09 12:25:18 +00:00
2019-08-12 10:13:59 +00:00
or missing features (\cite{schottelius:github745},
\cite{theojepsen:_get})
Hitting expression bug
\section{\label{conclusion:netpfga}NetFGPA - all HERE}
2019-08-07 13:55:53 +00:00
personal note here
2019-08-12 15:36:43 +00:00
MTU limitations: 1500 according to a private mail from Salvator Galea
cambridge / uk
2019-08-12 10:13:59 +00:00
long compile process
error prone compile process
many dependencies
lpm not supported!
Netpfga live,
Vivado
SDNET
xx k lines of supporting code
2019-08-12 15:36:43 +00:00
Vivado installation: silent errors, infinite loop, missing libncurses5
82k lines of code that are interdependent
Many non critical error messages on the way
Zero exit fatal errors
missing / spreaded documentation
tcpdump on local nfX doesn't work -> can only debug on other endpoint
First card: Writing tables fails
hardware debug shows some errors
but hardware debug on correct card also shows some error
Debug ioctl errors when writing table entries
Output all ports -> port mapping documented only in a testdata script
hwtest: Execution fails due to missing djtgcfg
2019-08-12 10:13:59 +00:00
no payload accessq
Many workarounds
Table size 63, table size 64,
Table entries require arguments of all possible actions, not only used
one.
Compile time hours
Silent errors
Unclear errors: broken board
Due to the very fragile nature of the build framework from the
NetFPGA-Live repository,
Renaming VARIABLES in the definition of
Reproducibility:
2019-08-12 15:36:43 +00:00
hours for finding right output ports
packet size / annotation
2019-08-12 10:13:59 +00:00
2019-08-07 13:55:53 +00:00
\section{\label{conclusion:realworld}Real world applications}
Can be deployed using the netpfga. Or Barefoot or Arista.
\section{\label{conclusion:outlook}Outlook}
%** Outlook.tex: What needs to be done further, what is planed
%
What are the consequences of your work for future work?
Different HW
Speed only limited to line speed. Could be running at 100 Gbit/s
without modifications.
2019-08-12 15:36:43 +00:00
PMTU
handling error cases
Our algorithm uses the IPv4-Compatible IPv6 Address\cite{rfc4291} to
embed IPv4 addresses. However RFC6052\cite{rfc6052} defines different
embeddings depending on the prefix size. A future version should
support these schemes to be compatible to other implementations.
No fragmentation
No address / mac learning
\section{\label{conclusion:closing}Closing words (NAME?)}
While the port to NetPFGA was significantly more effort then expected,
the learnings of the different layers were very much appreciated / liked
It was a
\section{todo - FIXME: remove}
2019-08-07 13:55:53 +00:00
\begin{verbatim}
***** Summary eher kurz
***** Outlook als subsection!
\end{verbatim}