|
|
|
@ -55,7 +55,7 @@ Tayga & 3.36 & 3.29 & 3.11 \\
|
|
|
|
|
\hline |
|
|
|
|
Jool & 8.24 & 8.26 & 8.29\\ |
|
|
|
|
\hline |
|
|
|
|
P4 / NetPFGA & 8.43 & 9.29 & 9.29\\ |
|
|
|
|
P4 / NetPFGA & 9.28 & 9.29 & 9.29\\ |
|
|
|
|
\hline |
|
|
|
|
\end{tabular} |
|
|
|
|
\end{minipage} |
|
|
|
@ -160,6 +160,17 @@ table entries.
|
|
|
|
|
|
|
|
|
|
Jool and tayga are supported by |
|
|
|
|
|
|
|
|
|
Trace files |
|
|
|
|
\begin{verbatim} |
|
|
|
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1555-h1.pcap |
|
|
|
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1555-h3.pcap |
|
|
|
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1557-h1.pcap |
|
|
|
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1558-h3.pcap |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end{verbatim} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
% ---------------------------------------------------------------------- |
|
|
|
|
\section{\label{results:netpfga}NetFPGA} |
|
|
|
|
The reduced feature set of the NetPFGA implementation is due to two |
|
|
|
@ -382,15 +393,6 @@ Renaming variables in the declaration of the parser or deparser lead
|
|
|
|
|
to compilation errors. Function syntax is not supported. For this |
|
|
|
|
reason our implementation uses \texttt{\#define} statements instead of functions. |
|
|
|
|
|
|
|
|
|
Trace files |
|
|
|
|
\begin{verbatim} |
|
|
|
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1555-h1.pcap |
|
|
|
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1555-h3.pcap |
|
|
|
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1557-h1.pcap |
|
|
|
|
create mode 100644 pcap/tcp-udp-delta-2019-07-17-1558-h3.pcap |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end{verbatim} |
|
|
|
|
|
|
|
|
|
\begin{verbatim} |
|
|
|
|
*** DONE 2019-07-21: Proof of v6->v4 working delta based |
|
|
|
@ -490,33 +492,33 @@ Integration with iptables
|
|
|
|
|
|
|
|
|
|
% ---------------------------------------------------------------------- |
|
|
|
|
\section{\label{results:p4}P4} |
|
|
|
|
NDP parsing problem |
|
|
|
|
|
|
|
|
|
checksumming a frequent problem and helper |
|
|
|
|
All planned features could be realised with P4 and a controller. |
|
|
|
|
The language has some limitations on where if/switch statements can be |
|
|
|
|
used.\footnote{In general, if and switch statements in actions lead to |
|
|
|
|
errors, but not all constellations are forbidden.} |
|
|
|
|
|
|
|
|
|
For this thesis the parsing capabilities of P4 were adequate. However |
|
|
|
|
P4 at the time of writing cannot parse ICMP6 options, as the upper |
|
|
|
|
level protocol does not specify the number of options that follow and |
|
|
|
|
parsing of 64 bit blocks is required. |
|
|
|
|
|
|
|
|
|
if in action limitations |
|
|
|
|
P4/BMV2 does not support for multiple LPM keys in a table, however it |
|
|
|
|
supports multiple keys with ternary matching. |
|
|
|
|
|
|
|
|
|
switch cannot be used in actions |
|
|
|
|
When developing P4 programs, the reason for incorrect behaviour was |
|
|
|
|
most often found in checksum problems. If frame checksum errors where |
|
|
|
|
displayed by tcpdump, usually the effective length of the packet was |
|
|
|
|
incorrect. |
|
|
|
|
|
|
|
|
|
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. |
|
|
|
|
NDP parsing problem |
|
|
|
|
|
|
|
|
|
if things don't work, often a checksum problem. |
|
|
|
|
checksumming a frequent problem and helper |
|
|
|
|
|
|
|
|
|
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 { |
|
|
|
|
^^^^^^^^^^^ |
|
|
|
|
IPv6: NDP: not easy to parse, as unknown number of following fields |
|
|
|
|
|
|
|
|
|
\end{verbatim} |
|
|
|
|
if things don't work, often a checksum problem. |
|
|
|
|
|
|
|
|
|
\begin{verbatim} |
|
|
|
|
ipaddress.ip_network("2001:db8:61::/64") |
|
|
|
@ -536,7 +538,6 @@ or missing features (\cite{schottelius:github745},
|
|
|
|
|
Hitting expression bug |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retrieving information from tables |
|
|
|
|
\begin{verbatim} |
|
|
|
|
Key and mask for matching destination is in table. We need this |
|
|
|
|