Add start of tcp docs
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -17,6 +17,8 @@
|
||||
*.gtkw
|
||||
*debug_profile*
|
||||
|
||||
# Drawio temp files.
|
||||
*.bkp
|
||||
|
||||
*.mem
|
||||
sim_top
|
||||
|
||||
@@ -0,0 +1,229 @@
|
||||
<mxfile host="Electron" modified="2024-08-04T04:32:19.824Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="Y2yXal0nuZQQYjEjo4JY" version="21.2.8" type="device">
|
||||
<diagram name="Page-1" id="6PukHK6WJVPqU_tSf8UC">
|
||||
<mxGraphModel dx="2048" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-102" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-83" target="DnfsWqbyJDE5C-bTYYLZ-100">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="180" />
|
||||
<mxPoint x="100" y="140" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-116" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.167;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-83" target="DnfsWqbyJDE5C-bTYYLZ-114">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-83" value="TCP" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="160" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-85" target="DnfsWqbyJDE5C-bTYYLZ-87">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="150" y="230" />
|
||||
<mxPoint x="150" y="230" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-93" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-85" target="DnfsWqbyJDE5C-bTYYLZ-87">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-94" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-85" target="DnfsWqbyJDE5C-bTYYLZ-86">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-126" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#d80073;strokeColor=#A50040;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-85" target="DnfsWqbyJDE5C-bTYYLZ-124">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="560" y="340" />
|
||||
<mxPoint x="560" y="260" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-85" value="ARP" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="320" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-104" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=1;entryDx=0;entryDy=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-86" target="DnfsWqbyJDE5C-bTYYLZ-100">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="60" y="260" />
|
||||
<mxPoint x="60" y="180" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-118" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.833;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-86" target="DnfsWqbyJDE5C-bTYYLZ-114">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-86" value="ICMP" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="240" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-103" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-87" target="DnfsWqbyJDE5C-bTYYLZ-100">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-117" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-87" target="DnfsWqbyJDE5C-bTYYLZ-114">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-87" value="UDP" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="200" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-98" value="RX DMA" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="-120" y="120" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-105" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-99" target="DnfsWqbyJDE5C-bTYYLZ-83">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="280" />
|
||||
<mxPoint x="100" y="190" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-107" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-99" target="DnfsWqbyJDE5C-bTYYLZ-87">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="280" />
|
||||
<mxPoint x="100" y="230" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-108" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-99" target="DnfsWqbyJDE5C-bTYYLZ-86">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="280" />
|
||||
<mxPoint x="100" y="270" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-99" value="TX DMA" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="-120" y="240" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-101" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-100" target="DnfsWqbyJDE5C-bTYYLZ-98">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-100" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;" vertex="1" parent="1">
|
||||
<mxGeometry x="-20" y="140" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-110" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fillColor=#6a00ff;strokeColor=#3700CC;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-109" target="DnfsWqbyJDE5C-bTYYLZ-83">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-109" value="Socket DMA" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="-120" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-125" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=1;entryDx=0;entryDy=0;fillColor=#d80073;strokeColor=#A50040;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-112" target="DnfsWqbyJDE5C-bTYYLZ-124">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-112" value="IP to Eth" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="400" y="200" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-119" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-114" target="DnfsWqbyJDE5C-bTYYLZ-112">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-114" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="200" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-121" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-120" target="DnfsWqbyJDE5C-bTYYLZ-83">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="280" y="300" />
|
||||
<mxPoint x="280" y="190" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-122" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-120" target="DnfsWqbyJDE5C-bTYYLZ-87">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="280" y="300" />
|
||||
<mxPoint x="280" y="230" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-120" target="DnfsWqbyJDE5C-bTYYLZ-86">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="280" y="300" />
|
||||
<mxPoint x="280" y="270" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-120" value="Eth to IP" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="400" y="280" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-130" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;fillColor=#d80073;strokeColor=#A50040;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-124" target="DnfsWqbyJDE5C-bTYYLZ-128">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-124" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;" vertex="1" parent="1">
|
||||
<mxGeometry x="580" y="220" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-131" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#d80073;strokeColor=#A50040;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-128" target="DnfsWqbyJDE5C-bTYYLZ-120">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;fillColor=#d80073;strokeColor=#A50040;" edge="1" parent="1" source="DnfsWqbyJDE5C-bTYYLZ-128" target="DnfsWqbyJDE5C-bTYYLZ-85">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="280" y="350" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="520" y="300" />
|
||||
<mxPoint x="520" y="350" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-128" value="Eth MAC" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="720" y="240" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-134" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="39.8" as="sourcePoint" />
|
||||
<mxPoint x="360" y="39.8" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-141" value="custom" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="DnfsWqbyJDE5C-bTYYLZ-134">
|
||||
<mxGeometry x="-0.131" y="-1" relative="1" as="geometry">
|
||||
<mxPoint y="-11" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-137" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#d80073;strokeColor=#A50040;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="80" as="sourcePoint" />
|
||||
<mxPoint x="360" y="80" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-142" value="eth" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="DnfsWqbyJDE5C-bTYYLZ-137">
|
||||
<mxGeometry x="-0.101" y="1" relative="1" as="geometry">
|
||||
<mxPoint y="-9" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-138" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="400" y="39.8" as="sourcePoint" />
|
||||
<mxPoint x="480" y="39.8" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-143" value="ip" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="DnfsWqbyJDE5C-bTYYLZ-138">
|
||||
<mxGeometry x="-0.171" y="1" relative="1" as="geometry">
|
||||
<mxPoint x="7" y="-9" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-139" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="400" y="80" as="sourcePoint" />
|
||||
<mxPoint x="480" y="80" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-144" value="axi stream" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="DnfsWqbyJDE5C-bTYYLZ-139">
|
||||
<mxGeometry x="-0.301" relative="1" as="geometry">
|
||||
<mxPoint x="12" y="-10" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-140" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#0050ef;strokeColor=#001DBC;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="520" y="39.8" as="sourcePoint" />
|
||||
<mxPoint x="600" y="39.8" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="DnfsWqbyJDE5C-bTYYLZ-145" value="axi4-lite" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="DnfsWqbyJDE5C-bTYYLZ-140">
|
||||
<mxGeometry x="-0.221" y="2" relative="1" as="geometry">
|
||||
<mxPoint x="9" y="-8" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
@@ -0,0 +1,69 @@
|
||||
# Network Processor
|
||||
|
||||
The network processor terminates TCP connections.
|
||||
|
||||
## Theory of Operation
|
||||
|
||||
The idea behind this network processor is that the configuration is stored in
|
||||
a context buffer rather than being written to device configuration registers.
|
||||
This like the IP addresses, ports, TCP state, flow control window, congestion
|
||||
window, sequence numbers, etc. are stored in this context buffer.
|
||||
|
||||
The context buffer can be created once by software when the connection is
|
||||
created, and is then managed by hardware until the connection is closed.
|
||||
|
||||
The other interface to the core is through the packet DMA interface. The packets
|
||||
contain a simple header which contains the instruction for the core, the context
|
||||
pointer, the protocol, and the length of the data.
|
||||
|
||||
## Components
|
||||
|
||||
### TCP State Manager
|
||||
|
||||
The TCP State manager is responsible for maintaining the TCP State. It facilitates
|
||||
communication between the RX control and TX control. The most important thing that
|
||||
the TCP State manager does is request the socket structures from memory, and load
|
||||
these values into the RX and TX control, and vice-versa.
|
||||
|
||||
#### Clock and Reset
|
||||
|
||||
|
||||
| Clock Name | Clock Frequency |
|
||||
|---------------|---------------|
|
||||
| System Clock | 100MHz |
|
||||
|
||||
| Reset Name | Purpose |
|
||||
|-----------|------------|
|
||||
| rst_n | General Reset |
|
||||
|
||||
#### Bus Interfaces
|
||||
|
||||
| Bus Name | Type and Purpose |
|
||||
| -------------- | ---------------- |
|
||||
| cfg_apb | APB Configuration |
|
||||
| ctx_dma_m_axil | Context DMA Master |
|
||||
|
||||
#### Other Signals
|
||||
| Signal Name | Direction | Description |
|
||||
| ----------- | --------- | ----------- |
|
||||
| o_send_syn | O | Tells TX control to send a syn packet. If o_send_ack is also valid, then send a syn_ack packet |
|
||||
| o_send_ack | O | Tells TX control to send an ack packet |
|
||||
| o_send_fin | O | Tells TX control to send a fin packet. If o_send_ack is also valid, then send a fin_ack packet |
|
||||
| o_seq_num | O | Current sequence number |
|
||||
| i_seq_num | I | Next sequence number |
|
||||
| i_seq_num_we | I | Write new sequence number |
|
||||
| o_ack_num | O | Current ack number |
|
||||
| i_ack_num | I | Next ack number |
|
||||
| i_ack_num_we | I | Write new ack number |
|
||||
| i_ctx_addr | I | Context pointer from TX control |
|
||||
| i_ctx_valid| I | Context pointer is valid |
|
||||
| o_cam_key | O | Key to write to CAM (port) |
|
||||
| o_cam_val | O | Value to write to CAM (pointer) |
|
||||
| i_cam_val | I | Value read from CAM |
|
||||
| i_cam_hit | I | Value read from CAM is valid |
|
||||
| o_cam_we | O | Write value to CAM |
|
||||
| o_cam_re | O | Read value from CAM |
|
||||
| i_tx_ctx_ptr | I | Context pointer from TX Control |
|
||||
| i_tx_ctx_ptr_valid | I | Conext pointer is valid |
|
||||
| i_rx_port | I | RX Port input |
|
||||
| i_rx_port_valid | I | RX Port Valid |
|
||||
122
hw/super6502_fpga/src/sub/network_processor/doc/tcp.drawio
Normal file
122
hw/super6502_fpga/src/sub/network_processor/doc/tcp.drawio
Normal file
@@ -0,0 +1,122 @@
|
||||
<mxfile host="Electron" modified="2024-08-06T01:37:38.808Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="S10h26xmifXO5yh2E_2y" version="21.2.8" type="device">
|
||||
<diagram name="Page-1" id="8lX2gjxiGhIz8fm0OWgg">
|
||||
<mxGraphModel dx="890" dy="611" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="780" y="360.07" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-1" value="Packet Generator" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="540" y="320.07" width="120" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-19" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="wrg5LwrTPFU92yCur-4e-1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="630" y="280.07" as="sourcePoint" />
|
||||
<mxPoint x="650" y="300.07" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-20" value="Dest MAC" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="wrg5LwrTPFU92yCur-4e-19">
|
||||
<mxGeometry x="-0.697" relative="1" as="geometry">
|
||||
<mxPoint y="-16" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-21" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="600" y="360.07" as="sourcePoint" />
|
||||
<mxPoint x="570" y="280.07" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-22" value="Dest IP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="wrg5LwrTPFU92yCur-4e-21">
|
||||
<mxGeometry x="0.8485" relative="1" as="geometry">
|
||||
<mxPoint y="-13" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-23" target="wrg5LwrTPFU92yCur-4e-1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-26" value="Data" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="wrg5LwrTPFU92yCur-4e-24">
|
||||
<mxGeometry x="-0.2242" relative="1" as="geometry">
|
||||
<mxPoint x="5" y="-10" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-23" value="TX Buffer" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="380" y="320.07" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-25" target="wrg5LwrTPFU92yCur-4e-1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-28" value="TCP Info" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="wrg5LwrTPFU92yCur-4e-27">
|
||||
<mxGeometry x="0.2152" y="-1" relative="1" as="geometry">
|
||||
<mxPoint x="-8" y="-11" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-25" value="TX Control" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="380" y="360.07" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-29" target="wrg5LwrTPFU92yCur-4e-25">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-29" target="wrg5LwrTPFU92yCur-4e-1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-29" value="TCP State Manager" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="380" y="440.07" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-30" target="wrg5LwrTPFU92yCur-4e-29">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-30" value="Socket DMA" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="180" y="420.07" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-35" target="wrg5LwrTPFU92yCur-4e-29">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-51" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-35" target="wrg5LwrTPFU92yCur-4e-49">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-35" value="Parser" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="540" y="560.07" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-37" target="wrg5LwrTPFU92yCur-4e-35">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-37" value="Port CAM" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="580" y="480.07" width="40" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-45" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#fa6800;strokeColor=#C73500;" edge="1" parent="1" target="wrg5LwrTPFU92yCur-4e-35">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="780" y="580.07" as="sourcePoint" />
|
||||
<mxPoint x="640" y="420.07" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-46" target="wrg5LwrTPFU92yCur-4e-23">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-46" value="M2S DMA" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="180" y="300.07" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-48" value="S2M DMA" style="whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="180" y="540.07" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-52" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-49" target="wrg5LwrTPFU92yCur-4e-50">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-49" target="wrg5LwrTPFU92yCur-4e-29">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-49" value="RX Control" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="560.07" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-53" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#e3c800;strokeColor=#B09500;" edge="1" parent="1" source="wrg5LwrTPFU92yCur-4e-50" target="wrg5LwrTPFU92yCur-4e-48">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wrg5LwrTPFU92yCur-4e-50" value="RX Buffer" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="560.07" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
hw/super6502_fpga/src/sub/network_processor/doc/tcp.drawio.png
Normal file
BIN
hw/super6502_fpga/src/sub/network_processor/doc/tcp.drawio.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Reference in New Issue
Block a user