[++doc] add benchmark design
This commit is contained in:
parent
ce02b44164
commit
393a6ecd91
9 changed files with 142 additions and 40 deletions
|
@ -182,3 +182,29 @@ not the full headers are used, but the pseudo headers (compare figures
|
||||||
To compensate the carry bit, our code uses 17 bit integers for
|
To compensate the carry bit, our code uses 17 bit integers for
|
||||||
correcting the carry.
|
correcting the carry.
|
||||||
% FIXME: add note to python script / checksum diffing
|
% FIXME: add note to python script / checksum diffing
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
\section{\label{Design:Benchmarks}Benchmarks}
|
||||||
|
The benchmarks were performed on two hosts, a load generator and a
|
||||||
|
nat64 translator. Both hosts were equipped with a dual port
|
||||||
|
Intel X520 10 Gbit/s network card. Both hosts were connected using DAC
|
||||||
|
without any equipment in between. Figure \ref{fig:softwarenat64design}
|
||||||
|
shows the setup.
|
||||||
|
\begin{figure}[h]
|
||||||
|
\includegraphics[scale=0.5]{softwarenat64design}
|
||||||
|
\centering
|
||||||
|
\caption{NAT64 in software benchmark}
|
||||||
|
\label{fig:softwarenat64design}
|
||||||
|
\end{figure}
|
||||||
|
When testing the NetPFGA/P4 performance, the X520 cards in the NAT64
|
||||||
|
translator were diconnected and instead the NetPFGA ports were
|
||||||
|
connected, as show in figure \ref{fig:netpfgadesign}. The load
|
||||||
|
generator is equipped with a quad core CPU (Intel(R) Core(TM) i7-6700
|
||||||
|
CPU @ 3.40GHz), enabled with hyperthreading and 16 GB RAM. The NAT64
|
||||||
|
translator is also equipped with a quard core CPU (Intel(R) Core(TM)
|
||||||
|
i7-4770 CPU @ 3.40GHz) and 16 GB RAM.
|
||||||
|
\begin{figure}[h]
|
||||||
|
\includegraphics[scale=0.5]{netpfgadesign}
|
||||||
|
\centering
|
||||||
|
\caption{NAT64 with NetFPGA benchmark}
|
||||||
|
\label{fig:netpfgadesign}
|
||||||
|
\end{figure}
|
||||||
|
|
|
@ -1,15 +1,53 @@
|
||||||
\chapter{\label{results}Results}
|
\chapter{\label{results}Results}
|
||||||
%** Results.tex: What were the results achieved including an evaluation
|
%** Results.tex: What were the results achieved including an evaluation
|
||||||
%
|
%
|
||||||
|
This section describes the achieved results and compares the P4 based
|
||||||
|
implementation with real world software solutions.
|
||||||
|
|
||||||
\section{\label{results:general}General}
|
We distinguish the software implementation of P4 (BMV2) and the
|
||||||
Parser for all protocols (udp,tcp,icmp,icmp6)
|
hardware implementation (NetFPGA) due to significant differences in
|
||||||
|
deployment and development. We present benchmarks for the existing
|
||||||
|
software solutions as well as for our hardware implementation. As the
|
||||||
|
objective of this thesis was to demonstrate the high speed
|
||||||
|
capabilities of NAT64 in hardware, no benchmarks were performed on the
|
||||||
|
P4 software implementation.
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
\section{\label{results:p4}NAT64 with P4}
|
||||||
|
We successfully implemented P4 code to realise
|
||||||
|
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}.
|
||||||
|
Due to limitations in the P4 environment of the
|
||||||
|
NetFPGA\cite{conclusion:netfpga} environment, the BMV2 implementation
|
||||||
|
is more feature rich. Table \ref{tab:benchmark} summarises the
|
||||||
|
achieved bandwidths of the NAT64 solutions.
|
||||||
|
|
||||||
BMV2: more feature rich, but software only solution
|
\begin{table}[htbp]
|
||||||
NetFPGA: capabale of line speed Nat64, focused port on nat64
|
\begin{center}\begin{minipage}{\textwidth}
|
||||||
|
\begin{tabular}{| c | p{130pt} | l |}
|
||||||
|
\hline
|
||||||
|
Solution & Column 2 \newline (additional line) & Column 3 \\
|
||||||
|
\hline
|
||||||
|
Tayga & C2,R2 & C2,R3 \\
|
||||||
|
\hline
|
||||||
|
Jool & \multicolumn{2}{| c |}{C2\&C3,R3} \\
|
||||||
|
\hline
|
||||||
|
P4 / NetPFGA & C2,R4\footnote{Footnote to table~\ref{tab:benchmark}} & C3,R4\\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{minipage}
|
||||||
|
\caption{Table 1}
|
||||||
|
\label{tab:benchmark}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
Both support EAMT as defined by RFC7757 \cite{rfc7757}.
|
During the benchmarks the client
|
||||||
|
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
\section{\label{Results:BMV2}BMV2}
|
\section{\label{Results:BMV2}BMV2}
|
||||||
|
|
||||||
Responds to icmp, icmp6
|
Responds to icmp, icmp6
|
||||||
|
@ -28,11 +66,13 @@ RFC6145\cite{rfc6145}.
|
||||||
|
|
||||||
Stateful : no automatic removal
|
Stateful : no automatic removal
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
\section{\label{results:tayga}Tayga}
|
\section{\label{results:tayga}Tayga}
|
||||||
|
|
||||||
3gbit
|
3gbit
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
|
||||||
\section{\label{results:jool}Jool}
|
\section{\label{results:jool}Jool}
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
doc/Thesis.pdf
BIN
doc/Thesis.pdf
Binary file not shown.
|
@ -2,22 +2,24 @@
|
||||||
The following sections describe how to acquire the resources
|
The following sections describe how to acquire the resources
|
||||||
to reproduce the test results. All compilations were made on Ubuntu
|
to reproduce the test results. All compilations were made on Ubuntu
|
||||||
16.04 with kernels
|
16.04 with kernels
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item 4.15.0-54-generic (Supporting Desktop),
|
\item 4.15.0-54-generic (Supporting Desktop)
|
||||||
\item 4.4.0-143-generic (BMV2 test VM)
|
\item 4.4.0-143-generic (BMV2 test VM)
|
||||||
\item 4.15.0-55-generic (Desktop with NetFPGA
|
\item 4.15.0-55-generic (Desktop with NetFPGA card)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
% ok
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
\section{\label{chapterminus1:thesis:general}Master Thesis}
|
\section{\label{chapterminus1:thesis:general}Master Thesis}
|
||||||
The master thesis including all self developed source code is
|
The master thesis including all self developed source code is
|
||||||
available by git via
|
available by git via
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
git clone git@gitlab.ethz.ch:nicosc/master-thesis.git
|
git clone git@gitlab.ethz.ch:nicosc/master-thesis.git
|
||||||
|
git clone https://gitlab.ethz.ch/nsg/student-projects/ma-2019-19_high_speed_nat64_with_p4
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
It can be browsed online on
|
||||||
It can be browsed online on \url{https://gitlab.ethz.ch/nicosc/master-thesis}.
|
\url{https://gitlab.ethz.ch/nicosc/master-thesis} and on
|
||||||
|
\url{https://gitlab.ethz.ch/nsg/student-projects/ma-2019-19_high_speed_nat64_with_p4}.
|
||||||
|
% ok
|
||||||
% ----------------------------------------------------------------------
|
% ----------------------------------------------------------------------
|
||||||
\section{\label{chapterminus1:thesis:xilinx}Xilinx Toolchain}
|
\section{\label{chapterminus1:thesis:xilinx}Xilinx Toolchain}
|
||||||
A prerequisite for building the NetFGPA source code is the
|
A prerequisite for building the NetFGPA source code is the
|
||||||
|
@ -26,10 +28,9 @@ installation of
|
||||||
\item \verb=Xilinx_SDNet_2018.2_1005_9=
|
\item \verb=Xilinx_SDNet_2018.2_1005_9=
|
||||||
\item \verb=Xilinx_Vivado_SDK_2018.2_0614_1954=
|
\item \verb=Xilinx_Vivado_SDK_2018.2_0614_1954=
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Both tools need to be installed to /opt/Xilinx/, as paths are
|
Both tools need to be installed to /opt/Xilinx/, as paths are
|
||||||
hardcoded in various places.
|
hardcoded in various places.
|
||||||
|
% ok
|
||||||
% ----------------------------------------------------------------------
|
% ----------------------------------------------------------------------
|
||||||
\section{\label{chapterminus1:thesis}NetFGPA support scripts}
|
\section{\label{chapterminus1:thesis}NetFGPA support scripts}
|
||||||
To be able to compile P4 source code to the NetFPGA the collection of
|
To be able to compile P4 source code to the NetFPGA the collection of
|
||||||
|
@ -45,7 +46,6 @@ After that the variable \verb=P4_PROJECT_NAME= in
|
||||||
\texttt{~/projects/P4-NetFPGA/tools/settings.sh} needs to be modified to
|
\texttt{~/projects/P4-NetFPGA/tools/settings.sh} needs to be modified to
|
||||||
read \verb|export P4_PROJECT_NAME=minip4| instead of
|
read \verb|export P4_PROJECT_NAME=minip4| instead of
|
||||||
\verb|export P4_PROJECT_NAME=switch_calc|.
|
\verb|export P4_PROJECT_NAME=switch_calc|.
|
||||||
|
|
||||||
Sample code for installation:
|
Sample code for installation:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
|
@ -53,38 +53,33 @@ Sample code for installation:
|
||||||
git clone git@github.com:NetFPGA/P4-NetFPGA-live.git P4-NetFPGA
|
git clone git@github.com:NetFPGA/P4-NetFPGA-live.git P4-NetFPGA
|
||||||
sed -i 's/\(P4_PROJECT_NAME=\).*/\1minip4/' ~/projects/P4-NetFPGA/tools/settings.sh
|
sed -i 's/\(P4_PROJECT_NAME=\).*/\1minip4/' ~/projects/P4-NetFPGA/tools/settings.sh
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Version \textbf{v1.3.1-46-g97d3aaa} of the P4-NetPFGA repository was
|
Version \textbf{v1.3.1-46-g97d3aaa} of the P4-NetPFGA repository was
|
||||||
used for creating the bitfiles of this project.
|
used for creating the bitfiles of this project.
|
||||||
|
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
nico@nsg-System:~/projects/P4-NetFPGA$ git describe --always
|
nico@nsg-System:~/projects/P4-NetFPGA$ git describe --always
|
||||||
v1.3.1-46-g97d3aaa
|
v1.3.1-46-g97d3aaa
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
% ok
|
||||||
% ----------------------------------------------------------------------
|
% ----------------------------------------------------------------------
|
||||||
\chapter{\label{appendix0}BMV2 environment and tests}
|
\chapter{\label{appendix0}BMV2 environment and tests}
|
||||||
All BMV2 based compilations were made with the following compiler:
|
All BMV2 based compilations were made with the following compiler:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
p4@ubuntu:~$ p4c --version
|
p4@ubuntu:~$ p4c --version
|
||||||
p4c 0.5 (SHA: 5ae30ee)
|
p4c 0.5 (SHA: 5ae30ee)
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
The installation is based on the vagrant files that were provided in
|
The installation is based on the vagrant files that were provided in
|
||||||
the
|
the ``Advanced Topics in
|
||||||
``Advanced Topics in
|
|
||||||
Communication Networks Fall 2018'' course of
|
Communication Networks Fall 2018'' course of
|
||||||
ETHZ (\url{https://adv-net.ethz.ch/2018/}) and contains p4tools as
|
ETHZ (\url{https://adv-net.ethz.ch/2018/}) and contains p4tools as
|
||||||
well as all utilities that came with the vagrant installation.
|
well as all utilities that came with the vagrant installation.
|
||||||
|
% ok
|
||||||
\section{\label{chapter0:bmv2-diff}Diff based checksumming}
|
% ----------------------------------------------------------------------
|
||||||
|
%\section{\label{chapter0:bmv2-diff}Diff based checksumming}
|
||||||
For running the diff based checksum code, the following steps are
|
For running the diff based checksum code, the following steps are
|
||||||
necessary:
|
necessary:
|
||||||
|
|
||||||
Compiling the p4 code and starting the switch:
|
Compiling the p4 code and starting the switch:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
cd ~/master-thesis/p4app
|
cd ~/master-thesis/p4app
|
||||||
sudo p4run --config nat64-diff.json
|
sudo p4run --config nat64-diff.json
|
||||||
|
@ -100,9 +95,14 @@ sudo python ./controller.py --mode range_router
|
||||||
|
|
||||||
% ----------------------------------------------------------------------
|
% ----------------------------------------------------------------------
|
||||||
\chapter{\label{appendixA}NetFPGA environment and tests}
|
\chapter{\label{appendixA}NetFPGA environment and tests}
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
\section{\label{chapterA:netpfga-setup}NetFPGA Setup}
|
\section{\label{chapterA:netpfga-setup}NetFPGA Setup}
|
||||||
Description of installation, commit of netpfga-live
|
Description of installation, commit of netpfga-live
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
\section{\label{chapterA:netpfga:compile}NetFPGA Compile Flow}
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
\section{\label{chapterA:section1}NetFPGA NAT64 Test cases}
|
\section{\label{chapterA:section1}NetFPGA NAT64 Test cases}
|
||||||
todo: add graphic of nsg <-> esprimo cabling
|
todo: add graphic of nsg <-> esprimo cabling
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
|
@ -131,8 +131,8 @@ For all test cases the following network settings on esprimo:
|
||||||
inet6 fe80::faf2:1eff:fe09:62d1/64 scope link
|
inet6 fe80::faf2:1eff:fe09:62d1/64 scope link
|
||||||
valid_lft forever preferred_lft forever
|
valid_lft forever preferred_lft forever
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
\subsection{Test 1: IPv4 egress settings work}
|
\subsection{Test 1: IPv4 egress}
|
||||||
Scenario: simple egress port setting for the IPv4 addresses
|
Scenario: simple egress port setting for the IPv4 addresses
|
||||||
|
|
||||||
Step 1: getting correct values for table entries from python:
|
Step 1: getting correct values for table entries from python:
|
||||||
|
@ -208,6 +208,7 @@ listening on enp2s0f0, link-type EN10MB (Ethernet), capture size 262144 bytes
|
||||||
Result: sucess
|
Result: sucess
|
||||||
|
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
\subsection{Test 2: IPv6 egress}
|
\subsection{Test 2: IPv6 egress}
|
||||||
Similar to the IPv4 setting before, just for IPv6.
|
Similar to the IPv4 setting before, just for IPv6.
|
||||||
|
|
||||||
|
@ -393,18 +394,12 @@ sudo ip -6 neighbor add 2001:db8:42::a00:2a lladdr f8:f2:1e:09:62:d0 dev enp2s0f
|
||||||
|
|
||||||
Step 4: ping test should translate, but fail with wrong checksum:
|
Step 4: ping test should translate, but fail with wrong checksum:
|
||||||
|
|
||||||
\begin{verbatim}
|
% ----------------------------------------------------------------------
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\chapter{\label{appendixB}NetFPGA Logs}
|
\chapter{\label{appendixB}NetFPGA Logs}
|
||||||
Majority of the log files are stored inside the source code directory
|
Majority of the log files are stored inside the source code directory
|
||||||
stored at ``netpfga/logs''. It follows a selection of log files
|
stored at ``netpfga/logs''. It follows a selection of excerpts
|
||||||
|
of log files that might be relevant for reproducing the work.
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
|
||||||
\section{\label{chapterB:netpfga-flasherror}NetFPGA Flash Errors}
|
\section{\label{chapterB:netpfga-flasherror}NetFPGA Flash Errors}
|
||||||
Sometimes flashing bitfiles to the NetFPGA will fail. A random amount
|
Sometimes flashing bitfiles to the NetFPGA will fail. A random amount
|
||||||
|
@ -458,6 +453,7 @@ nf3: ERROR while getting interface flags: No such device
|
||||||
+ bash config_writes.sh
|
+ bash config_writes.sh
|
||||||
|
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
|
||||||
\section{\label{chapterB:netpfga-flashok}NetFPGA Flash Success}
|
\section{\label{chapterB:netpfga-flashok}NetFPGA Flash Success}
|
||||||
A successful flashing process also emits a couple of errors, however
|
A successful flashing process also emits a couple of errors, however
|
||||||
|
@ -511,6 +507,7 @@ nf3: ERROR while getting interface flags: No such device
|
||||||
+ bash config_writes.sh
|
+ bash config_writes.sh
|
||||||
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$
|
nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
|
||||||
\section{\label{chapterB:netpfga-kernelmodule}NetFPGA Kernel module}
|
\section{\label{chapterB:netpfga-kernelmodule}NetFPGA Kernel module}
|
||||||
After a successful flash, loading the kernel module will enable nf
|
After a successful flash, loading the kernel module will enable nf
|
||||||
|
@ -582,6 +579,7 @@ nico@nsg-System:~$ ip l
|
||||||
nico@nsg-System:~$
|
nico@nsg-System:~$
|
||||||
|
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
|
||||||
\section{\label{chapterB:netpfga-nftraffic}NetFPGA misses packets on nf*}
|
\section{\label{chapterB:netpfga-nftraffic}NetFPGA misses packets on nf*}
|
||||||
While the nf devices appear in the operating system, packets emitted
|
While the nf devices appear in the operating system, packets emitted
|
||||||
|
@ -591,6 +589,8 @@ that is connected to the specific output port.
|
||||||
|
|
||||||
%---------------------------------------------------------------------------------------------------------
|
%---------------------------------------------------------------------------------------------------------
|
||||||
\chapter{\label{benchmark}Benchmark Logs}
|
\chapter{\label{benchmark}Benchmark Logs}
|
||||||
|
% ----------------------------------------------------------------------
|
||||||
|
|
||||||
\section{\label{benchmark:iperf}iperf}
|
\section{\label{benchmark:iperf}iperf}
|
||||||
Omitting startup time
|
Omitting startup time
|
||||||
|
|
||||||
|
@ -2369,7 +2369,6 @@ Describe your task.
|
||||||
|
|
||||||
%---------------------------------------------------------------------------------------------------------
|
%---------------------------------------------------------------------------------------------------------
|
||||||
\printnomenclature
|
\printnomenclature
|
||||||
|
|
||||||
\abbrev{ARP}{Address resolution protocol}
|
\abbrev{ARP}{Address resolution protocol}
|
||||||
\abbrev{ASIC}{Application-specific integrated circuit}
|
\abbrev{ASIC}{Application-specific integrated circuit}
|
||||||
\abbrev{FGPA}{Field-programmable gate array}
|
\abbrev{FGPA}{Field-programmable gate array}
|
||||||
|
|
|
@ -4,7 +4,7 @@ graph G {
|
||||||
|
|
||||||
x520_1 [ label="X520: IPv4" ];
|
x520_1 [ label="X520: IPv4" ];
|
||||||
x520_2 [ label="X520: IPv6" ];
|
x520_2 [ label="X520: IPv6" ];
|
||||||
x520_nsg [ label="X520: Controller" ];
|
x520_nsg [ label="X520: P4 Controller" ];
|
||||||
|
|
||||||
netpfga1 [ label="NetFPGA Port 1" ];
|
netpfga1 [ label="NetFPGA Port 1" ];
|
||||||
netpfga2 [ label="NetFPGA Port 2" ];
|
netpfga2 [ label="NetFPGA Port 2" ];
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
27
doc/graphviz/softwarenat64design.dot
Normal file
27
doc/graphviz/softwarenat64design.dot
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
graph G {
|
||||||
|
node [ shape="box"];
|
||||||
|
rankdir="LR";
|
||||||
|
|
||||||
|
x520_1 [ label="X520: IPv4" ];
|
||||||
|
x520_2 [ label="X520: IPv6" ];
|
||||||
|
x520_nsg_1 [ label="X520: IPv4" ];
|
||||||
|
x520_nsg_2 [ label="X520: IPv6" ];
|
||||||
|
|
||||||
|
subgraph cluster_esprimo {
|
||||||
|
label="Load generator";
|
||||||
|
|
||||||
|
x520_1;
|
||||||
|
x520_2;
|
||||||
|
}
|
||||||
|
|
||||||
|
subgraph cluster_nsg {
|
||||||
|
label="NAT64 Host";
|
||||||
|
|
||||||
|
x520_nsg_1;
|
||||||
|
x520_nsg_2;
|
||||||
|
}
|
||||||
|
|
||||||
|
x520_1--x520_nsg_1;
|
||||||
|
x520_2--x520_nsg_2;
|
||||||
|
|
||||||
|
}
|
BIN
doc/graphviz/softwarenat64design.png
Normal file
BIN
doc/graphviz/softwarenat64design.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.2 KiB |
|
@ -69,6 +69,11 @@
|
||||||
title = {TAYGA - Simple, no-fuss NAT64 for Linux},
|
title = {TAYGA - Simple, no-fuss NAT64 for Linux},
|
||||||
howpublished = {\url{http://www.litech.org/tayga/}}}
|
howpublished = {\url{http://www.litech.org/tayga/}}}
|
||||||
|
|
||||||
|
@Misc{mexico:_jool_open_sourc_siit_nat64_linux,
|
||||||
|
author = {NIC Mexico},
|
||||||
|
title = {Jool an Open Source SIIT and NAT64 for Linux.},
|
||||||
|
howpublished = {\url{https://www.jool.mx/en/index.html}}}
|
||||||
|
|
||||||
@Misc{vanbever:_progr_networ_data_planes,
|
@Misc{vanbever:_progr_networ_data_planes,
|
||||||
author = {Laurent Vanbever},
|
author = {Laurent Vanbever},
|
||||||
title = {Programming Network Data Planes},
|
title = {Programming Network Data Planes},
|
||||||
|
@ -115,3 +120,8 @@
|
||||||
title = {Solicited-node multicast address},
|
title = {Solicited-node multicast address},
|
||||||
howpublished = {\url{https://en.wikipedia.org/wiki/Solicited-node_multicast_address}},
|
howpublished = {\url{https://en.wikipedia.org/wiki/Solicited-node_multicast_address}},
|
||||||
note = {Requested on 2019-08-13}}
|
note = {Requested on 2019-08-13}}
|
||||||
|
|
||||||
|
@Misc{schottelius:thesisrepo,
|
||||||
|
author = {Nico Schottelius},
|
||||||
|
title = {High speed NAT64 in P4 (git repository)},
|
||||||
|
howpublished = {\url{https://gitlab.ethz.ch/nsg/student-projects/ma-2019-19_high_speed_nat64_with_p4}}}
|
||||||
|
|
Loading…
Add table
Reference in a new issue