Cleanup, add stateful figure
This commit is contained in:
parent
fe866aeb1d
commit
6393127e84
3 changed files with 68 additions and 1 deletions
|
@ -251,6 +251,12 @@ highest degree of flexibility, as it provides support for individual
|
||||||
entries based on table entries and LPM table entries.
|
entries based on table entries and LPM table entries.
|
||||||
% ----------------------------------------------------------------------
|
% ----------------------------------------------------------------------
|
||||||
\section{\label{design:statefulnat64}Stateful NAT64}
|
\section{\label{design:statefulnat64}Stateful NAT64}
|
||||||
|
\begin{figure}[h]
|
||||||
|
\includegraphics[scale=0.5]{p4switch-stateful}
|
||||||
|
\centering
|
||||||
|
\caption{Stateful NAT64 with P4}
|
||||||
|
\label{fig:p4switchstateful}
|
||||||
|
\end{figure}
|
||||||
Similar to stateless NAT64, the design of stateful NAT64 depends on
|
Similar to stateless NAT64, the design of stateful NAT64 depends on
|
||||||
the features of the individual implementation. As pointed out in section
|
the features of the individual implementation. As pointed out in section
|
||||||
\ref{background:transition:statefulnat64}, stateful NAT64 is very
|
\ref{background:transition:statefulnat64}, stateful NAT64 is very
|
||||||
|
@ -261,7 +267,9 @@ to solve this problem:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item For P4/BMV2 and P4/NetPFGA a python controller handles packets
|
\item For P4/BMV2 and P4/NetPFGA a python controller handles packets
|
||||||
that don't have a table entry, sets the table entry in the P4 switch
|
that don't have a table entry, sets the table entry in the P4 switch
|
||||||
and inserts the original packet afterwards back into the switch.
|
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
|
\item Jool implements its own stateful mechanism based on port
|
||||||
ranges
|
ranges
|
||||||
|
|
BIN
doc/Thesis.pdf
BIN
doc/Thesis.pdf
Binary file not shown.
59
doc/graphviz/p4switch-stateful.dot
Normal file
59
doc/graphviz/p4switch-stateful.dot
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
digraph G {
|
||||||
|
rankdir="TB";
|
||||||
|
|
||||||
|
v4host [ shape="box" label="IPv4 Host" ];
|
||||||
|
v6host [ shape="box" label="IPv6 Host" ];
|
||||||
|
rank=same;
|
||||||
|
|
||||||
|
|
||||||
|
parser [ label="Parser"];
|
||||||
|
deparser [ label="Deparser"];
|
||||||
|
translation [ label="Translation"];
|
||||||
|
mismatch [ label="Table mismatch"];
|
||||||
|
v4packet [ label="IPv6 Packet"];
|
||||||
|
v4packet2 [ label="IPv4 Packet"];
|
||||||
|
v6packet [ label="IPv6 Packet"];
|
||||||
|
tableentry [ label="Create table entry" ];
|
||||||
|
tablematch [ label="Table match" ];
|
||||||
|
|
||||||
|
reinject [ label="Reinject packet" ];
|
||||||
|
controller [ label="Controller reads packet" ]
|
||||||
|
|
||||||
|
deparser [ label="Deparser"];
|
||||||
|
deparser2 [ label="Deparser"];
|
||||||
|
|
||||||
|
subgraph cluster_nat64 {
|
||||||
|
label="P4 Switch";
|
||||||
|
|
||||||
|
parser;
|
||||||
|
v4packet;
|
||||||
|
deparser;
|
||||||
|
mismatch;
|
||||||
|
tablematch;
|
||||||
|
translation;
|
||||||
|
deparser2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
subgraph cluster_p4controller {
|
||||||
|
label="P4 Controller";
|
||||||
|
|
||||||
|
controller;
|
||||||
|
tableentry;
|
||||||
|
reinject;
|
||||||
|
}
|
||||||
|
|
||||||
|
v6host->v6packet->parser;
|
||||||
|
parser->v4packet;
|
||||||
|
v4packet->mismatch [ label="1." ];
|
||||||
|
mismatch->deparser->controller;
|
||||||
|
controller->tableentry->reinject;
|
||||||
|
reinject->parser;
|
||||||
|
|
||||||
|
v4packet->tablematch [ label="2." ];
|
||||||
|
tablematch->translation->deparser2;
|
||||||
|
|
||||||
|
deparser2->v4packet2->v4host;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue