60 lines
1.3 KiB
Text
60 lines
1.3 KiB
Text
|
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;
|
||
|
|
||
|
|
||
|
}
|