summaryrefslogtreecommitdiff
path: root/doc/subsystems/networking/ip-stack-data-flow.svg
blob: a9948d6d5e1eb3d161b11c0898353f99a3e2f820 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?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>