zephyr/doc/subsystems/networking/ip-stack-data-flow.svg

169 lines
12 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
<svg width="32cm" height="29cm" viewBox="50 16 628 568" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g>
<rect style="fill: #ffffff" x="70.825" y="471.5" width="136.85" height="54"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="70.825" y="471.5" width="136.85" height="54"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="139.25" y="494.4">
<tspan x="139.25" y="494.4">Network Interface</tspan>
<tspan x="139.25" y="510.4">Instance</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="403.3" y="384.8" width="136.85" height="54"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="403.3" y="384.8" width="136.85" height="54"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="471.725" y="407.7">
<tspan x="471.725" y="407.7">Network Interface</tspan>
<tspan x="471.725" y="423.7">Instance</tspan>
</text>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 246 218.5 C 288.08,218.5 441,159 439.971,137.725"/>
<polygon style="fill: #000000" points="439.608,130.233 445.086,139.98 439.971,137.725 435.097,140.463 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="439.608,130.233 445.086,139.98 439.971,137.725 435.097,140.463 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="173.5" y1="204" x2="108.779" y2="136.812"/>
<polygon style="fill: #000000" points="103.576,131.41 114.115,135.144 108.779,136.812 106.913,142.081 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="103.576,131.41 114.115,135.144 108.779,136.812 106.913,142.081 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="105.038" y1="471.5" x2="135.469" y2="308.571"/>
<polygon style="fill: #000000" points="136.846,301.198 139.925,311.946 135.469,308.571 130.095,310.11 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="136.846,301.198 139.925,311.946 135.469,308.571 130.095,310.11 "/>
</g>
<g>
<rect style="fill: #ffffff" x="101" y="204" width="145" height="58"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="101" y="204" width="145" height="58"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="173.5" y="236.9">
<tspan x="173.5" y="236.9">RX thread</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="101" y="261" width="145.025" height="38"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="101" y="261" width="145.025" height="38"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="173.512" y="283.9">
<tspan x="173.512" y="283.9">RX queue</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="416.424" y="242.6" width="175.35" height="58"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="416.424" y="242.6" width="175.35" height="58"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="504.099" y="275.5">
<tspan x="504.099" y="275.5">TX thread</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="416.3" y="196.8" width="175" height="54"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="416.3" y="196.8" width="175" height="54"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="503.8" y="219.7">
<tspan x="503.8" y="219.7">TX queues,</tspan>
<tspan x="503.8" y="235.7">one / network interface</tspan>
</text>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 403.3 411.8 C 338.792,411.8 235.769,350 214.191,307.674"/>
<polygon style="fill: #000000" points="210.784,300.992 219.781,307.63 214.191,307.674 210.872,312.172 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="210.784,300.992 219.781,307.63 214.191,307.674 210.872,312.172 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" d="M 249.525 130.8 C 258.525,171.8 384.66,237.3 406.564,237.3"/>
<polygon style="fill: #000000" points="414.064,237.3 404.064,242.3 406.564,237.3 404.064,232.3 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="414.064,237.3 404.064,242.3 406.564,237.3 404.064,232.3 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" d="M 587 129 C 571,148 507,161 504.667,187.103"/>
<polygon style="fill: #000000" points="503.999,194.573 499.909,184.167 504.667,187.103 509.87,185.058 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="503.999,194.573 499.909,184.167 504.667,187.103 509.87,185.058 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" d="M 547.936 300.6 C 490,329 472,362 471.843,375.065"/>
<polygon style="fill: #000000" points="471.753,382.564 466.873,372.505 471.843,375.065 476.873,372.625 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="471.753,382.564 466.873,372.505 471.843,375.065 476.873,372.625 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" d="M 460.261 300.6 C 428.999,346 200,411 177.373,462.584"/>
<polygon style="fill: #000000" points="174.361,469.452 173.799,458.286 177.373,462.584 182.956,462.303 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="174.361,469.452 173.799,458.286 177.373,462.584 182.956,462.303 "/>
</g>
<g>
<rect style="fill: #ffffff" x="389" y="18" width="264" height="111"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="389" y="18" width="264" height="111"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="521" y="77.4">
<tspan x="521" y="77.4">Task B</tspan>
</text>
</g>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="579" y="123.5">
<tspan x="579" y="123.5">TX</tspan>
</text>
<g>
<rect style="fill: #ffffff" x="51.525" y="19.8" width="264" height="111"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="51.525" y="19.8" width="264" height="111"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="183.525" y="79.2">
<tspan x="183.525" y="79.2">Task A</tspan>
</text>
</g>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="241.526" y="123.3">
<tspan x="241.526" y="123.3">TX</tspan>
</text>
<polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="347,464 347,463 437.512,463 437.512,438.8 "/>
<polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="105.038,525.5 105.038,565 191.03,565 191.03,561.838 "/>
<g>
<path style="fill: #ffffff" d="M 180.108 552.696 C 177.009,552.546 171,555.697 171.845,562.45 C 172.69,569.203 176.728,570.704 178.418,568.753 C 180.108,566.802 175.789,578.207 184.052,581.209 C 192.315,584.21 196.54,579.408 195.319,575.956 C 194.099,572.505 202.549,584.06 206.493,577.457 C 210.437,570.854 202.455,564.551 204.146,565.452 C 205.836,566.352 211,565.152 209.31,553.896 C 207.62,542.641 192.408,551.345 194.099,549.695 C 195.789,548.044 191.563,539.79 186.305,541.441 C 181.047,543.092 180.674,546.087 180.111,552.69 L 180.108,552.696z"/>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 180.108 552.696 C 177.009,552.546 171,555.697 171.845,562.45 C 172.69,569.203 176.728,570.704 178.418,568.753 C 180.108,566.802 175.789,578.207 184.052,581.209 C 192.315,584.21 196.54,579.408 195.319,575.956 C 194.099,572.505 202.549,584.06 206.493,577.457 C 210.437,570.854 202.455,564.551 204.146,565.452 C 205.836,566.352 211,565.152 209.31,553.896 C 207.62,542.641 192.408,551.345 194.099,549.695 C 195.789,548.044 191.563,539.79 186.305,541.441 C 181.047,543.092 180.674,546.087 180.111,552.69 L 180.108,552.696"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="192.072" y="566.783">
<tspan x="192.072" y="566.783"></tspan>
</text>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="589" y1="556" x2="677" y2="557"/>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="605" y="552">
<tspan x="605" y="552">Transmit</tspan>
</text>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="589" y1="520" x2="677" y2="521"/>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="606" y="514">
<tspan x="606" y="514">Receive</tspan>
</text>
</g>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="96.525" y="123.3">
<tspan x="96.525" y="123.3">RX</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="433.3" y="117.7">
<tspan x="433.3" y="117.7">RX</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="85" y="179">
<tspan x="85" y="179">callback</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="325" y="173">
<tspan x="325" y="173">callback</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="128" y="374">
<tspan x="128" y="374">fifo</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="251.3" y="342.7">
<tspan x="251.3" y="342.7">fifo</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="498.6" y="151.5">
<tspan x="498.6" y="151.5">fifo</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="284.2" y="162.1">
<tspan x="284.2" y="162.1">fifo</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="200" y="398">
<tspan x="200" y="398">function</tspan>
<tspan x="200" y="414">call</tspan>
</text>
<text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="514.3" y="335.7">
<tspan x="514.3" y="335.7">function</tspan>
<tspan x="514.3" y="351.7">call</tspan>
</text>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="347.001" y1="464" x2="347.001" y2="437.333"/>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="338.112" y1="424" x2="347.001" y2="437.333"/>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="347.001" y1="424" x2="347.001" y2="437.333"/>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="355.89" y1="424" x2="347.001" y2="437.333"/>
</g>
</svg>