159 lines
18 KiB
Plaintext
159 lines
18 KiB
Plaintext
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.17 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.17">
|
|
<diagram name="Page-1" id="c7488fd3-1785-93aa-aadb-54a6760d102a">
|
|
<mxGraphModel dx="1728" dy="998" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
|
|
<root>
|
|
<mxCell id="0" />
|
|
<mxCell id="1" parent="0" />
|
|
<mxCell id="ARffzCTJVVxupl663M9X-6" value="" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;fontSize=16;" vertex="1" parent="1">
|
|
<mxGeometry x="200" y="90" width="160" height="160" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-7" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-6">
|
|
<mxGeometry width="160" height="30" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-9" value="<font style="font-size: 10px;">Determine Prefix Length&nbsp;</font>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-7">
|
|
<mxGeometry width="160" height="30" as="geometry">
|
|
<mxRectangle width="160" height="30" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-11" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-6">
|
|
<mxGeometry y="30" width="160" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-13" value="<p style="text-align: left; line-height: 90%; font-size: 10px;"><font style="font-size: 10px;">Input: IP address with CIDR prefix length (e.g., <code style="">/24</code>, <code style="">/16</code>)</font></p><p style="text-align: left; line-height: 90%; font-size: 10px;"><font style="font-size: 10px;">output: Prefix length</font></p><p></p>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-11">
|
|
<mxGeometry width="160" height="60" as="geometry">
|
|
<mxRectangle width="160" height="60" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-15" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-6">
|
|
<mxGeometry y="90" width="160" height="70" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-17" value="<p style="line-height: 90%; font-size: 10px;"><font face="Helvetica">Parse the CIDR prefix to understand the network range. For instance, <code>192.168.1.0/24</code> has a prefix length of 24 bits.</font></p>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;align=left;" vertex="1" parent="ARffzCTJVVxupl663M9X-15">
|
|
<mxGeometry width="160" height="70" as="geometry">
|
|
<mxRectangle width="160" height="70" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-19" value="" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;fontSize=16;" vertex="1" parent="1">
|
|
<mxGeometry x="460" y="90" width="160" height="160" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-20" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-19">
|
|
<mxGeometry width="160" height="30" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-21" value="<font style="font-size: 10px;"> Read Network ID</font>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-20">
|
|
<mxGeometry width="160" height="30" as="geometry">
|
|
<mxRectangle width="160" height="30" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-22" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-19">
|
|
<mxGeometry y="30" width="160" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-23" value="<p style="text-align: left; line-height: 90%; font-size: 10px;"><font style="font-size: 10px;">Input: IP address and CIDR prefix length</font></p><p style="text-align: left; line-height: 90%; font-size: 10px;"><font style="font-size: 10px;">output: Network ID</font></p><p></p>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-22">
|
|
<mxGeometry width="160" height="60" as="geometry">
|
|
<mxRectangle width="160" height="60" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-24" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-19">
|
|
<mxGeometry y="90" width="160" height="70" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-25" value="<p style="line-height: 90%; font-size: 10px;">Extract the network ID from the IP address based on the prefix length.&nbsp;<br></p>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;align=left;" vertex="1" parent="ARffzCTJVVxupl663M9X-24">
|
|
<mxGeometry width="160" height="70" as="geometry">
|
|
<mxRectangle width="160" height="70" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-26" value="" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;fontSize=16;" vertex="1" parent="1">
|
|
<mxGeometry x="200" y="310" width="160" height="160" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-27" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-26">
|
|
<mxGeometry width="160" height="30" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-28" value="<font style="font-size: 10px;">Longest Prefix Matching</font>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-27">
|
|
<mxGeometry width="160" height="30" as="geometry">
|
|
<mxRectangle width="160" height="30" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-29" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-26">
|
|
<mxGeometry y="30" width="160" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-30" value="<p style="line-height: 90%;"></p><div style="text-align: left;"><font style="background-color: initial; font-size: 10px;">Input:&nbsp;</font><span style="background-color: initial;"><font style="font-size: 10px;">Network ID</font></span></div><span style="font-size: 10px; background-color: initial;"><div style="text-align: left;"><span style="background-color: initial;">output: Matching route entry</span></div></span><p></p><p></p>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-29">
|
|
<mxGeometry width="160" height="60" as="geometry">
|
|
<mxRectangle width="160" height="60" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-31" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-26">
|
|
<mxGeometry y="90" width="160" height="70" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-32" value="<p style="line-height: 90%; font-size: 10px;">&nbsp;Search the routing table for all matching entries, and select the entry with the longest prefix, ensuring that the CIDR router picks the most specific route.<br></p>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;align=left;" vertex="1" parent="ARffzCTJVVxupl663M9X-31">
|
|
<mxGeometry width="160" height="70" as="geometry">
|
|
<mxRectangle width="160" height="70" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-33" value="" style="shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;fontSize=16;" vertex="1" parent="1">
|
|
<mxGeometry x="460" y="310" width="160" height="160" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-34" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-33">
|
|
<mxGeometry width="160" height="30" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-35" value="<font style="font-size: 10px;">Determine Next-Hop</font>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-34">
|
|
<mxGeometry width="160" height="30" as="geometry">
|
|
<mxRectangle width="160" height="30" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-36" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-33">
|
|
<mxGeometry y="30" width="160" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-37" value="<p style="line-height: 90%;"></p><div style="text-align: left;"><font style="background-color: initial; font-size: 10px;">Input:&nbsp;</font><span style="background-color: initial; text-align: center;"><font style="font-size: 10px;">Matching route entry</font></span></div><span style="font-size: 10px; background-color: initial;"><div style="text-align: left;"><span style="background-color: initial;">output:&nbsp;</span>Next-hop</div></span><p></p><p></p>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-36">
|
|
<mxGeometry width="160" height="60" as="geometry">
|
|
<mxRectangle width="160" height="60" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-38" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;strokeColor=inherit;top=0;left=0;bottom=0;right=0;collapsible=0;dropTarget=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=16;" vertex="1" parent="ARffzCTJVVxupl663M9X-33">
|
|
<mxGeometry y="90" width="160" height="70" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-39" value="<p style="line-height: 90%; font-size: 10px;">Based on the longest prefix match, find the next-hop in the routing table to forward the packet<br></p>" style="shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;strokeColor=inherit;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;fontSize=16;align=left;" vertex="1" parent="ARffzCTJVVxupl663M9X-38">
|
|
<mxGeometry width="160" height="70" as="geometry">
|
|
<mxRectangle width="160" height="70" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ARffzCTJVVxupl663M9X-7" target="ARffzCTJVVxupl663M9X-20">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.64;entryY=0.438;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<mxPoint x="80" y="160" as="sourcePoint" />
|
|
<mxPoint x="80" y="160" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-42" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ARffzCTJVVxupl663M9X-51" target="ARffzCTJVVxupl663M9X-7">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="80" y="160" as="sourcePoint" />
|
|
<mxPoint x="130" y="100" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-43" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1.013;entryY=-0.01;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.015;exitY=1.01;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="ARffzCTJVVxupl663M9X-24" target="ARffzCTJVVxupl663M9X-27">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<mxPoint x="430" y="290" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ARffzCTJVVxupl663M9X-29" target="ARffzCTJVVxupl663M9X-36">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-46" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="ARffzCTJVVxupl663M9X-36" target="ARffzCTJVVxupl663M9X-48">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<mxPoint x="715.29" y="369.69999999999993" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-50" value="" style="group" vertex="1" connectable="0" parent="1">
|
|
<mxGeometry x="720" y="350" width="40" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-48" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="ARffzCTJVVxupl663M9X-50">
|
|
<mxGeometry width="40" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-49" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;" vertex="1" parent="ARffzCTJVVxupl663M9X-50">
|
|
<mxGeometry x="10" y="10" width="20" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="ARffzCTJVVxupl663M9X-51" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;" vertex="1" parent="1">
|
|
<mxGeometry x="80" y="130" width="20" height="20" as="geometry" />
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|