diff --git a/doc/Design.tex b/doc/Design.tex index 9492fde..0b075db 100644 --- a/doc/Design.tex +++ b/doc/Design.tex @@ -270,7 +270,7 @@ to solve this problem: and inserts the original packet afterwards back into the switch. Figure \ref{fig:p4switchstateful} shows the flow of a packet with stateful translation in detail. -\item With tayga we rely on the Linux kernel NAT44 capabilities +\item With Tayga we rely on the Linux kernel NAT44 capabilities \item Jool implements its own stateful mechanism based on port ranges \end{itemize} @@ -296,7 +296,7 @@ commands allow interactive testing on TCP and UDP connections, while the iperf commands fully utilise the available bandwidth with test data. The socat and iperf commands are used to verify all three NAT64 -implementations (p4, tayga, jool). +implementations (p4, Tayga, Jool). \begin{table}[htbp] \begin{center}\begin{minipage}{\textwidth} \begin{tabular}{| c | c | c |} @@ -377,9 +377,9 @@ networks and IPv6 addresses are used: \hline 2001:db8:42::a00:2a & In-network IPv6 address mapped to 10.0.0.42 (p4)\\ \hline -2001:db8:23::a00:2a & IPv6 address mapped to 10.0.0.42 (tayga) \\ +2001:db8:23::a00:2a & IPv6 address mapped to 10.0.0.42 (Tayga) \\ \hline -2001:db8:23::2a & IPv6 address mapped to 10.0.0.42 (jool)\\ +2001:db8:23::2a & IPv6 address mapped to 10.0.0.42 (Jool)\\ \hline \end{tabular} \end{minipage} @@ -405,9 +405,9 @@ from the 10.0.0.0/8 range as follows: \hline 10.0.0.66 & In-network IPv4 address mapped to 2001:db8:42::42 (p4)\\ \hline -10.0.1.42 & IPv4 address mapped to 2001:db8:42::42 (tayga)\\ +10.0.1.42 & IPv4 address mapped to 2001:db8:42::42 (Tayga)\\ \hline -10.0.1.66 & IPv4 address mapped to 2001:db8:42::42 (jool)\\ +10.0.1.66 & IPv4 address mapped to 2001:db8:42::42 (Jool)\\ \hline \end{tabular} \end{minipage} diff --git a/doc/Introduction.tex b/doc/Introduction.tex index 1085bb7..defac49 100644 --- a/doc/Introduction.tex +++ b/doc/Introduction.tex @@ -102,6 +102,6 @@ software~\cite{_implem_your_switc_target_with_bmv2}. Figure \ref{fig:v6v4mixed} shows how the design differs for an in-network solution. Even on fast CPUs, software solutions like -tayga~\cite{lutchansky:_tayga_simpl_nat64_linux} +Tayga~\cite{lutchansky:_Tayga_simpl_nat64_linux} can be CPU bound (see section \ref{results:softwarenat64}) and are incapable of translating protocols at line speed. diff --git a/doc/Results.tex b/doc/Results.tex index e8413f5..4467346 100644 --- a/doc/Results.tex +++ b/doc/Results.tex @@ -19,8 +19,8 @@ NAT64~\cite{schottelius:thesisrepo}. It contains parsers for all related protocols (IPv6, IPv4, UDP, TCP, ICMP, ICMP6, NDP, ARP), supports EAMT as defined by RFC7757 ~\cite{rfc7757}, and is feature equivalent to the two compared software solutions -tayga~\cite{lutchansky:_tayga_simpl_nat64_linux} and -jool~\cite{mexico:_jool_open_sourc_siit_nat64_linux}. +Tayga~\cite{lutchansky:_Tayga_simpl_nat64_linux} and +Jool~\cite{mexico:_Jool_open_sourc_siit_nat64_linux}. Due to limitations in the P4 environment of the NetFPGA environment, the BMV2 implementation is more feature rich. @@ -429,7 +429,7 @@ warm up phase.\footnote{iperf -O 10 parameter, see section \ref{design:tests}.} % ok % ---------------------------------------------------------------------- \subsection{\label{results:benchmark:summary}Benchmark Summary} -Overall \textbf{tayga} has shown to be the slowest translator with an achieved +Overall \textbf{Tayga} has shown to be the slowest translator with an achieved bandwidth of \textbf{about 3 Gbit/s}, followed by \textbf{Jool} that translates at about \textbf{8 Gbit/s}. \textbf{Our solution} is the fastest with an almost line rate translation speed of about \textbf{9 Gbit/s}. @@ -443,7 +443,7 @@ in the UDP benchmarks incorporates the packets loss (compare tables \ref{tab:benchmarkv6v4udp} and \ref{tab:benchmarkv6v4udp}). Both software solutions showed significant loss of packets in the UDP -based benchmarks (tayga: up to 91\%, jool up to 71\%), while the +based benchmarks (Tayga: up to 91\%, Jool up to 71\%), while the P4/NetFPGA showed a maximum of 0.01\% packet loss. Packet loss is only recorded by iperf for UDP based benchmarks, as TCP packets are confirmed and resent if necessary. @@ -455,7 +455,7 @@ identical in different benchmark runs. The CPU load for TCP based benchmarks with Jool was almost negligible, however for UDP based benchmarks one core was almost 100\% -utilised. In all benchmarks with tayga, one CPU was fully +utilised. In all benchmarks with Tayga, one CPU was fully utilised. When the translation for P4/NetFPGA happens within the NetFPGA card, there was no CPU utilisation visible on the NAT64 host. @@ -476,11 +476,11 @@ connections might be affected by the load generator limits. While there is no visible evidence in our results, this problem might become more significant with higher speed links. -While tayga's performance is reduced with the growing number of +While Tayga's performance is reduced with the growing number of parallel connections, both Jool and our P4/NetFPGA implementations vary only slighty. -Overall the performance of tayga, a Linux user space program, is as +Overall the performance of Tayga, a Linux user space program, is as expected. We were surprised about the good performance of Jool, which, while slower than the P4/NetFPGA solution, is almost on par with our solution. % ---------------------------------------------------------------------- diff --git a/doc/appendix.tex b/doc/appendix.tex index 6edd2a0..225d6f3 100644 --- a/doc/appendix.tex +++ b/doc/appendix.tex @@ -1300,7 +1300,7 @@ root@ESPRIMO-P956:~# \end{verbatim} %--------------------------------------------------------------------------------------------------------- -\section{\label{benchmark:tayga}Tayga} +\section{\label{benchmark:Tayga}Tayga} Tayga is installed from the regular package database: \begin{verbatim} ii tayga 0.9.2-6 amd64 userspace stateless NAT64 @@ -1366,7 +1366,7 @@ net.ipv6.conf.all.forwarding = 1 [15:20] nsg-System:~# sysctl -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1 \end{verbatim} -And we test NAT64 with tayga: +And we test NAT64 with Tayga: \begin{tiny} \begin{verbatim} nico@ESPRIMO-P956:~$ ping -c2 10.0.1.42 @@ -1407,9 +1407,9 @@ rtt min/avg/max/mdev = 0.240/0.320/0.400/0.080 ms nico@ESPRIMO-P956:~$ \end{verbatim} %--------------------------------------------------------------------------------------------------------- -\section{\label{benchmark:jool}Jool} +\section{\label{benchmark:Jool}Jool} We install Jool 4.0.1 from source from -\url{https://www.jool.mx/en/download.html} as follows: +\url{https://www.Jool.mx/en/download.html} as follows: \begin{tiny} \begin{verbatim} nico@nsg-System:~$ wget https://github.com/NICMx/Jool/releases/download/v4.0.1/jool_4.0.1.tar.gz @@ -1426,8 +1426,8 @@ We enable forwarding: sysctl -w net.ipv4.conf.all.forwarding=1 sysctl -w net.ipv6.conf.all.forwarding=1 \end{verbatim} -We configure jool to map the network prefixes and setup iptables to -redirect the traffic into the jool instance: +We configure Jool to map the network prefixes and setup iptables to +redirect the traffic into the Jool instance: \begin{tiny} \begin{verbatim} [16:53] nsg-System:~# modprobe jool_siit