master-thesis/doc/graphviz/p4switch-stateful.svg

194 lines
10 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: G Pages: 1 -->
<svg width="404pt" height="720pt"
viewBox="0.00 0.00 404.25 720.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(.75 .75) rotate(0) translate(4 956)">
<title>G</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-956 535,-956 535,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_nat64</title>
<polygon fill="none" stroke="#000000" points="226,-227 226,-816 511,-816 511,-227 226,-227"/>
<text text-anchor="middle" x="368.5" y="-800.8" font-family="Times,serif" font-size="14.00" fill="#000000">P4 Switch</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_p4controller</title>
<polygon fill="none" stroke="#000000" points="8,-8 8,-375 218,-375 218,-8 8,-8"/>
<text text-anchor="middle" x="113" y="-359.8" font-family="Times,serif" font-size="14.00" fill="#000000">P4 Controller</text>
</g>
<!-- v4host -->
<g id="node1" class="node">
<title>v4host</title>
<polygon fill="none" stroke="#000000" points="482.5,-125 411.5,-125 411.5,-89 482.5,-89 482.5,-125"/>
<text text-anchor="middle" x="447" y="-103.3" font-family="Times,serif" font-size="14.00" fill="#000000">IPv4 Host</text>
</g>
<!-- v6host -->
<g id="node2" class="node">
<title>v6host</title>
<polygon fill="none" stroke="#000000" points="494.5,-952 423.5,-952 423.5,-916 494.5,-916 494.5,-952"/>
<text text-anchor="middle" x="459" y="-930.3" font-family="Times,serif" font-size="14.00" fill="#000000">IPv6 Host</text>
</g>
<!-- v6packet -->
<g id="node9" class="node">
<title>v6packet</title>
<ellipse fill="none" stroke="#000000" cx="459" cy="-861" rx="53.0913" ry="18"/>
<text text-anchor="middle" x="459" y="-857.3" font-family="Times,serif" font-size="14.00" fill="#000000">IPv6 Packet</text>
</g>
<!-- v6host&#45;&gt;v6packet -->
<g id="edge1" class="edge">
<title>v6host&#45;&gt;v6packet</title>
<path fill="none" stroke="#000000" d="M459,-915.9551C459,-907.8828 459,-898.1764 459,-889.1817"/>
<polygon fill="#000000" stroke="#000000" points="462.5001,-889.0903 459,-879.0904 455.5001,-889.0904 462.5001,-889.0903"/>
</g>
<!-- parser -->
<g id="node3" class="node">
<title>parser</title>
<ellipse fill="none" stroke="#000000" cx="459" cy="-767" rx="32.4942" ry="18"/>
<text text-anchor="middle" x="459" y="-763.3" font-family="Times,serif" font-size="14.00" fill="#000000">Parser</text>
</g>
<!-- v4packet -->
<g id="node7" class="node">
<title>v4packet</title>
<ellipse fill="none" stroke="#000000" cx="447" cy="-656" rx="53.0913" ry="18"/>
<text text-anchor="middle" x="447" y="-652.3" font-family="Times,serif" font-size="14.00" fill="#000000">IPv6 Packet</text>
</g>
<!-- parser&#45;&gt;v4packet -->
<g id="edge3" class="edge">
<title>parser&#45;&gt;v4packet</title>
<path fill="none" stroke="#000000" d="M457.0184,-748.6706C455.1225,-731.1329 452.2357,-704.4306 450.0472,-684.1867"/>
<polygon fill="#000000" stroke="#000000" points="453.4993,-683.5542 448.9447,-673.9883 446.5399,-684.3066 453.4993,-683.5542"/>
</g>
<!-- deparser -->
<g id="node4" class="node">
<title>deparser</title>
<ellipse fill="none" stroke="#000000" cx="283" cy="-420" rx="42.4939" ry="18"/>
<text text-anchor="middle" x="283" y="-416.3" font-family="Times,serif" font-size="14.00" fill="#000000">Deparser</text>
</g>
<!-- controller -->
<g id="node13" class="node">
<title>controller</title>
<ellipse fill="none" stroke="#000000" cx="113" cy="-326" rx="96.6831" ry="18"/>
<text text-anchor="middle" x="113" y="-322.3" font-family="Times,serif" font-size="14.00" fill="#000000">Controller Reads Packet</text>
</g>
<!-- deparser&#45;&gt;controller -->
<g id="edge6" class="edge">
<title>deparser&#45;&gt;controller</title>
<path fill="none" stroke="#000000" d="M257.1807,-405.7234C229.5362,-390.4377 185.3121,-365.9844 153.1247,-348.1866"/>
<polygon fill="#000000" stroke="#000000" points="154.4171,-344.9018 143.9722,-343.1258 151.0298,-351.0277 154.4171,-344.9018"/>
</g>
<!-- translation -->
<g id="node5" class="node">
<title>translation</title>
<ellipse fill="none" stroke="#000000" cx="447" cy="-420" rx="50.8918" ry="18"/>
<text text-anchor="middle" x="447" y="-416.3" font-family="Times,serif" font-size="14.00" fill="#000000">Translation</text>
</g>
<!-- deparser2 -->
<g id="node14" class="node">
<title>deparser2</title>
<ellipse fill="none" stroke="#000000" cx="447" cy="-253" rx="42.4939" ry="18"/>
<text text-anchor="middle" x="447" y="-249.3" font-family="Times,serif" font-size="14.00" fill="#000000">Deparser</text>
</g>
<!-- translation&#45;&gt;deparser2 -->
<g id="edge12" class="edge">
<title>translation&#45;&gt;deparser2</title>
<path fill="none" stroke="#000000" d="M447,-401.8102C447,-372.8234 447,-315.9192 447,-281.4916"/>
<polygon fill="#000000" stroke="#000000" points="450.5001,-281.1674 447,-271.1674 443.5001,-281.1674 450.5001,-281.1674"/>
</g>
<!-- mismatch -->
<g id="node6" class="node">
<title>mismatch</title>
<ellipse fill="none" stroke="#000000" cx="304" cy="-531" rx="69.5877" ry="18"/>
<text text-anchor="middle" x="304" y="-527.3" font-family="Times,serif" font-size="14.00" fill="#000000">Table Mismatch</text>
</g>
<!-- mismatch&#45;&gt;deparser -->
<g id="edge5" class="edge">
<title>mismatch&#45;&gt;deparser</title>
<path fill="none" stroke="#000000" d="M300.5323,-512.6706C297.199,-495.0521 292.116,-468.1843 288.2798,-447.9073"/>
<polygon fill="#000000" stroke="#000000" points="291.7012,-447.1634 286.4032,-437.9883 284.8232,-448.4647 291.7012,-447.1634"/>
</g>
<!-- v4packet&#45;&gt;mismatch -->
<g id="edge4" class="edge">
<title>v4packet&#45;&gt;mismatch</title>
<path fill="none" stroke="#000000" d="M427.7144,-639.1419C402.9067,-617.4569 359.6599,-579.6537 331.433,-554.9799"/>
<polygon fill="#000000" stroke="#000000" points="333.7302,-552.3392 323.8976,-548.393 329.1232,-557.6096 333.7302,-552.3392"/>
<text text-anchor="middle" x="387.5" y="-589.8" font-family="Times,serif" font-size="14.00" fill="#000000">1.</text>
</g>
<!-- tablematch -->
<g id="node11" class="node">
<title>tablematch</title>
<ellipse fill="none" stroke="#000000" cx="447" cy="-531" rx="55.7903" ry="18"/>
<text text-anchor="middle" x="447" y="-527.3" font-family="Times,serif" font-size="14.00" fill="#000000">Table Match</text>
</g>
<!-- v4packet&#45;&gt;tablematch -->
<g id="edge10" class="edge">
<title>v4packet&#45;&gt;tablematch</title>
<path fill="none" stroke="#000000" d="M447,-637.8239C447,-617.2723 447,-583.5472 447,-559.4893"/>
<polygon fill="#000000" stroke="#000000" points="450.5001,-559.198 447,-549.198 443.5001,-559.198 450.5001,-559.198"/>
<text text-anchor="middle" x="452.5" y="-589.8" font-family="Times,serif" font-size="14.00" fill="#000000">2.</text>
</g>
<!-- v4packet2 -->
<g id="node8" class="node">
<title>v4packet2</title>
<ellipse fill="none" stroke="#000000" cx="447" cy="-180" rx="53.0913" ry="18"/>
<text text-anchor="middle" x="447" y="-176.3" font-family="Times,serif" font-size="14.00" fill="#000000">IPv4 Packet</text>
</g>
<!-- v4packet2&#45;&gt;v4host -->
<g id="edge14" class="edge">
<title>v4packet2&#45;&gt;v4host</title>
<path fill="none" stroke="#000000" d="M447,-161.9551C447,-153.8828 447,-144.1764 447,-135.1817"/>
<polygon fill="#000000" stroke="#000000" points="450.5001,-135.0903 447,-125.0904 443.5001,-135.0904 450.5001,-135.0903"/>
</g>
<!-- v6packet&#45;&gt;parser -->
<g id="edge2" class="edge">
<title>v6packet&#45;&gt;parser</title>
<path fill="none" stroke="#000000" d="M459,-842.8759C459,-829.3516 459,-810.6192 459,-795.1514"/>
<polygon fill="#000000" stroke="#000000" points="462.5001,-795.0685 459,-785.0685 455.5001,-795.0685 462.5001,-795.0685"/>
</g>
<!-- tableentry -->
<g id="node10" class="node">
<title>tableentry</title>
<ellipse fill="none" stroke="#000000" cx="127" cy="-180" rx="77.9862" ry="18"/>
<text text-anchor="middle" x="127" y="-176.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create Table Entry</text>
</g>
<!-- reinject -->
<g id="node12" class="node">
<title>reinject</title>
<ellipse fill="none" stroke="#000000" cx="133" cy="-34" rx="65.7887" ry="18"/>
<text text-anchor="middle" x="133" y="-30.3" font-family="Times,serif" font-size="14.00" fill="#000000">Reinject Packet</text>
</g>
<!-- tableentry&#45;&gt;reinject -->
<g id="edge8" class="edge">
<title>tableentry&#45;&gt;reinject</title>
<path fill="none" stroke="#000000" d="M127.7478,-161.8042C128.7718,-136.8868 130.6208,-91.8938 131.8293,-62.4877"/>
<polygon fill="#000000" stroke="#000000" points="135.3291,-62.5604 132.2428,-52.4251 128.335,-62.2729 135.3291,-62.5604"/>
</g>
<!-- tablematch&#45;&gt;translation -->
<g id="edge11" class="edge">
<title>tablematch&#45;&gt;translation</title>
<path fill="none" stroke="#000000" d="M447,-512.6706C447,-495.2373 447,-468.7482 447,-448.5489"/>
<polygon fill="#000000" stroke="#000000" points="450.5001,-448.3566 447,-438.3566 443.5001,-448.3567 450.5001,-448.3566"/>
</g>
<!-- reinject&#45;&gt;parser -->
<g id="edge9" class="edge">
<title>reinject&#45;&gt;parser</title>
<path fill="none" stroke="#000000" d="M196.0643,-39.1621C308.2895,-49.2036 531,-73.3679 531,-107 531,-711.5 531,-711.5 531,-711.5 531,-731.1222 514.0179,-744.7755 496.5486,-753.6294"/>
<polygon fill="#000000" stroke="#000000" points="495.0677,-750.458 487.4563,-757.8281 498.0024,-756.8132 495.0677,-750.458"/>
</g>
<!-- controller&#45;&gt;tableentry -->
<g id="edge7" class="edge">
<title>controller&#45;&gt;tableentry</title>
<path fill="none" stroke="#000000" d="M114.7448,-307.8042C117.1341,-282.8868 121.4485,-237.8938 124.2683,-208.4877"/>
<polygon fill="#000000" stroke="#000000" points="127.7626,-208.7136 125.2332,-198.4251 120.7946,-208.0453 127.7626,-208.7136"/>
</g>
<!-- deparser2&#45;&gt;v4packet2 -->
<g id="edge13" class="edge">
<title>deparser2&#45;&gt;v4packet2</title>
<path fill="none" stroke="#000000" d="M447,-234.9551C447,-226.8828 447,-217.1764 447,-208.1817"/>
<polygon fill="#000000" stroke="#000000" points="450.5001,-208.0903 447,-198.0904 443.5001,-208.0904 450.5001,-208.0903"/>
</g>
</g>
</svg>