zephyr/doc/subsystems/networking/ip-stack-architecture.svg

230 lines
16 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="42cm" height="38cm" viewBox="-22 16 829 750" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g>
<rect style="fill: #ffffff" x="116.3" y="225.8" width="418.05" height="70"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="116.3" y="225.8" width="418.05" height="70"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="325.325" y="264.7">
<tspan x="325.325" y="264.7"></tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="379" y="17" width="258" height="59"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="379" y="17" width="258" height="59"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="508" y="50.4">
<tspan x="508" y="50.4">Application</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="115.8" y="119.3" width="381.4" height="70"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="115.8" y="119.3" width="381.4" height="70"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="306.5" y="142.2">
<tspan x="306.5" y="142.2">IP stack</tspan>
<tspan x="306.5" y="158.2">Core, IPv6, IPv4, ICMPv6, ICMPv4, UDP, TCP,</tspan>
<tspan x="306.5" y="174.2">and other L3 protocols.</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="99.175" y="246.3" width="418.05" height="70"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="99.175" y="246.3" width="418.05" height="70"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="308.2" y="269.2">
<tspan x="308.2" y="269.2">Network Interface Abstraction</tspan>
<tspan x="308.2" y="285.2">As many instances as hardware devices,</tspan>
<tspan x="308.2" y="301.2">hiding the inner complexity under a generic structure and API</tspan>
</text>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="306.5" y1="189.3" x2="307.355" y2="235.572"/>
<polygon style="fill: #000000" points="307.494,243.071 302.31,233.165 307.355,235.572 312.308,232.98 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="307.494,243.071 302.31,233.165 307.355,235.572 312.308,232.98 "/>
</g>
<g>
<rect style="fill: #ffffff" x="547.5" y="120" width="258" height="66.8"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="547.5" y="120" width="258" height="66.8"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="676.5" y="149.3">
<tspan x="676.5" y="149.3">Management API</tspan>
<tspan x="676.5" y="165.3"></tspan>
</text>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 637 46.5 C 673,49 681.379,31.7102 678.269,109.282"/>
<polygon style="fill: #000000" points="677.968,116.776 673.373,106.584 678.269,109.282 683.365,106.984 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="677.968,116.776 673.373,106.584 678.269,109.282 683.365,106.984 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 379 46.5 C 299,45 309,65 306.948,109.574"/>
<polygon style="fill: #000000" points="306.603,117.066 302.068,106.847 306.948,109.574 312.057,107.307 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="306.603,117.066 302.068,106.847 306.948,109.574 312.057,107.307 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 676.5 186.8 C 676.5,213 591.5,284 526.956,281.654"/>
<polygon style="fill: #000000" points="519.461,281.381 529.636,276.748 526.956,281.654 529.272,286.741 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="519.461,281.381 529.636,276.748 526.956,281.654 529.272,286.741 "/>
</g>
<g>
<rect style="fill: #ffffff" x="116.3" y="341.8" width="381.4" height="86"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="116.3" y="341.8" width="381.4" height="86"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="307" y="372.7">
<tspan x="307" y="372.7">Generic L2 Layer</tspan>
<tspan x="307" y="388.7"></tspan>
<tspan x="307" y="404.7">Provide abstraction for sending and receiving data</tspan>
</text>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="308.2" y1="316.3" x2="307.458" y2="332.075"/>
<polygon style="fill: #000000" points="307.105,339.566 302.581,329.342 307.458,332.075 312.57,329.812 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="307.105,339.566 302.581,329.342 307.458,332.075 312.57,329.812 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 741 186.8 C 743.5,228 695,384 507.436,384.761"/>
<polygon style="fill: #000000" points="499.936,384.791 509.916,379.75 507.436,384.761 509.956,389.75 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="499.936,384.791 509.916,379.75 507.436,384.761 509.956,389.75 "/>
</g>
<g>
<rect style="fill: #ffffff" x="36" y="536" width="102" height="52.3002"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="36" y="536" width="102" height="52.3002"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="87" y="566.05">
<tspan x="87" y="566.05">Ethernet</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="172.15" y="535.8" width="120.85" height="52"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="172.15" y="535.8" width="120.85" height="52"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="232.575" y="565.7">
<tspan x="232.575" y="565.7">IEEE 802.15.4</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="315.3" y="536.8" width="120.85" height="52"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="315.3" y="536.8" width="120.85" height="52"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="375.725" y="566.7">
<tspan x="375.725" y="566.7">Bluetooth</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="472.6" y="534.6" width="120.85" height="52"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="472.6" y="534.6" width="120.85" height="52"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="533.025" y="564.5">
<tspan x="533.025" y="564.5">IEEE 802.11</tspan>
</text>
</g>
<g>
<path style="fill: #ffffff" d="M 275.724 474 L 342.574,474 C 351.805,474 359.287,480.716 359.287,489 C 359.287,497.284 351.805,504 342.574,504 L 275.724,504 C 266.494,504 259.012,497.284 259.012,489 C 259.012,480.716 266.494,474 275.724,474z"/>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 275.724 474 L 342.574,474 C 351.805,474 359.287,480.716 359.287,489 C 359.287,497.284 351.805,504 342.574,504 L 275.724,504 C 266.494,504 259.012,497.284 259.012,489 C 259.012,480.716 266.494,474 275.724,474"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="309.149" y="493">
<tspan x="309.149" y="493">6LoWPAN</tspan>
</text>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 359.288 489 C 382.34,489 378,519 376.96,527.142"/>
<polygon style="fill: #000000" points="376.009,534.582 372.317,524.029 376.96,527.142 382.236,525.296 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="376.009,534.582 372.317,524.029 376.96,527.142 382.236,525.296 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="307" y1="427.8" x2="308.249" y2="463.372"/>
<polygon style="fill: #000000" points="308.513,470.868 303.165,461.049 308.249,463.372 313.159,460.698 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="308.513,470.868 303.165,461.049 308.249,463.372 313.159,460.698 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 259.012 489 C 229,485 233,518 232.808,526.067"/>
<polygon style="fill: #000000" points="232.629,533.565 227.869,523.448 232.808,526.067 237.866,523.686 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="232.629,533.565 227.869,523.448 232.808,526.067 237.866,523.686 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="402.35" y1="427.8" x2="525.485" y2="528.439"/>
<polygon style="fill: #000000" points="531.293,533.185 520.386,530.728 525.485,528.439 526.714,522.985 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="531.293,533.185 520.386,530.728 525.485,528.439 526.714,522.985 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="211.65" y1="427.8" x2="94.3525" y2="529.618"/>
<polygon style="fill: #000000" points="88.6886,534.534 92.9628,524.203 94.3525,529.618 99.518,531.755 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="88.6886,534.534 92.9628,524.203 94.3525,529.618 99.518,531.755 "/>
</g>
<g>
<rect style="fill: #ffffff" x="-20.725" y="640" width="84.45" height="54"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="-20.725" y="640" width="84.45" height="54"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="21.5" y="662.9">
<tspan x="21.5" y="662.9">SLIP / TAP</tspan>
<tspan x="21.5" y="678.9">driver</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="24.05" y="708.8" width="122.95" height="54"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="24.05" y="708.8" width="122.95" height="54"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="85.525" y="731.7">
<tspan x="85.525" y="731.7">Ethernet driver</tspan>
<tspan x="85.525" y="747.7">for X device</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="120.075" y="639.8" width="135.4" height="54"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="120.075" y="639.8" width="135.4" height="54"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="187.775" y="662.7">
<tspan x="187.775" y="662.7">CC2520 / CC1200</tspan>
<tspan x="187.775" y="678.7">driver</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="201.8" y="710.1" width="122.95" height="54"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="201.8" y="710.1" width="122.95" height="54"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="263.275" y="733">
<tspan x="263.275" y="733">802.15.4 driver</tspan>
<tspan x="263.275" y="749">for X device</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="319.5" y="640.3" width="102" height="50"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="319.5" y="640.3" width="102" height="50"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="370.5" y="669.2">
<tspan x="370.5" y="669.2">HCI driver</tspan>
</text>
</g>
<g>
<rect style="fill: #ffffff" x="491.5" y="640.3" width="102" height="54"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="491.5" y="640.3" width="102" height="54"/>
<text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="542.5" y="671.2">
<tspan x="542.5" y="671.2">WiFI driver</tspan>
</text>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="61.5" y1="588.3" x2="27.4578" y2="632.3"/>
<polygon style="fill: #000000" points="22.8683,638.231 25.033,627.263 27.4578,632.3 32.9421,633.382 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="22.8683,638.231 25.033,627.263 27.4578,632.3 32.9421,633.382 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="112.5" y1="588.3" x2="87.6519" y2="699.299"/>
<polygon style="fill: #000000" points="86.0135,706.618 83.3188,695.767 87.6519,699.299 93.0772,697.952 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="86.0135,706.618 83.3188,695.767 87.6519,699.299 93.0772,697.952 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="202.362" y1="587.8" x2="190.405" y2="630.426"/>
<polygon style="fill: #000000" points="188.379,637.647 186.266,626.668 190.405,630.426 195.894,629.369 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="188.379,637.647 186.266,626.668 190.405,630.426 195.894,629.369 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="262.788" y1="587.8" x2="291.604" y2="700.667"/>
<polygon style="fill: #000000" points="293.459,707.933 286.141,699.481 291.604,700.667 295.83,697.007 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="293.459,707.933 286.141,699.481 291.604,700.667 295.83,697.007 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="375.726" y1="588.8" x2="371.483" y2="630.614"/>
<polygon style="fill: #000000" points="370.726,638.075 366.761,627.622 371.483,630.614 376.71,628.631 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="370.726,638.075 366.761,627.622 371.483,630.614 376.71,628.631 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="533.024" y1="586.6" x2="540.808" y2="630.712"/>
<polygon style="fill: #000000" points="542.111,638.098 535.45,629.119 540.808,630.712 545.298,627.381 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="542.111,638.098 535.45,629.119 540.808,630.712 545.298,627.381 "/>
</g>
<g>
<line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="401.85" y1="189.3" x2="423.914" y2="218.074"/>
<polygon style="fill: #000000" points="428.477,224.026 418.425,219.132 423.914,218.074 426.36,213.048 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="428.477,224.026 418.425,219.132 423.914,218.074 426.36,213.048 "/>
</g>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 612 186.8 C 611.5,208 581.544,243.3 544.086,243.3"/>
<polygon style="fill: #000000" points="536.586,243.3 546.586,238.3 544.086,243.3 546.586,248.3 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="536.586,243.3 546.586,238.3 544.086,243.3 546.586,248.3 "/>
</g>
</svg>