This repository has been archived by the owner on Nov 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathvirtio_net_vhost.drawio
305 lines (305 loc) · 28.9 KB
/
virtio_net_vhost.drawio
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
<mxfile host="app.diagrams.net" modified="2022-09-22T00:39:36.180Z" agent="5.0 (X11)" etag="LjiRqiVAiF7ZfOQVtSqM" version="20.3.3" type="github" pages="2">
<diagram id="oZOYW1duo3crIYeeSJwp" name="VirtIO-Net-Vhost">
<mxGraphModel dx="1422" dy="793" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="500" pageHeight="500" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-10" value="KVM" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
<mxGeometry x="130" y="210" width="140" height="80" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-8" value="<div>Guest</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
<mxGeometry x="300" y="50" width="180" height="430" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-1" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=2;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="10" y="190" as="sourcePoint" />
<mxPoint x="490" y="190" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-3" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="280" y="490" as="sourcePoint" />
<mxPoint x="280" y="10" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-4" value="VMX Root Mode" style="text;html=1;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontColor=#808080;" parent="1" vertex="1">
<mxGeometry x="10" y="10" width="260" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-5" value="<b>VMX Non Root Mode</b>" style="text;html=1;align=center;verticalAlign=middle;rounded=0;fontColor=#808080;" parent="1" vertex="1">
<mxGeometry x="290" y="10" width="200" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-6" value="Ring 3: User Space" style="text;html=1;align=center;verticalAlign=middle;rounded=0;rotation=270;fontStyle=1;fontColor=#808080;" parent="1" vertex="1">
<mxGeometry x="-64.69" y="85.31" width="179.38" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-7" value="Ring 0: Kernel Space" style="text;html=1;align=center;verticalAlign=middle;rounded=0;rotation=270;fontStyle=1;fontColor=#808080;" parent="1" vertex="1">
<mxGeometry x="-115" y="335" width="280" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-9" value="TAP" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="20" y="440" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-41" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=4;fontSize=12;startArrow=classic;startFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="BuKsE_VjunbPpSj5-xp7-6" target="YKHGhaV-Iw9WPsnm1_ly-9" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="100" y="460" as="targetPoint" />
<Array as="points">
<mxPoint x="60" y="320" />
</Array>
<mxPoint x="110" y="310" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-46" value="vhost-net foward" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;rotation=270;" parent="YKHGhaV-Iw9WPsnm1_ly-41" vertex="1" connectable="0">
<mxGeometry x="0.0485" y="-2" relative="1" as="geometry">
<mxPoint x="-8" y="11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-42" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=1;fontSize=12;startArrow=none;startFill=0;" parent="1" source="YKHGhaV-Iw9WPsnm1_ly-11" target="YKHGhaV-Iw9WPsnm1_ly-22" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="250" y="350" />
<mxPoint x="250" y="250" />
<mxPoint x="460" y="250" />
<mxPoint x="460" y="360" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-49" value="irqfd interrupts" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=none;" parent="YKHGhaV-Iw9WPsnm1_ly-42" vertex="1" connectable="0">
<mxGeometry x="0.3128" y="-1" relative="1" as="geometry">
<mxPoint x="-55" y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-11" value="<div>vhost</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="110" y="340" width="120" height="100" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-22" value="<div>virtio-pci driver</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="320" y="340" width="120" height="100" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-31" value="<div style="font-size: 10px;"><font style="font-size: 10px;">shared</font></div><div style="font-size: 10px;"><font style="font-size: 10px;">memory</font></div>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=6;opacity=50;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="200" y="370" width="150" height="60" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-34" value="<div>QEMU</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
<mxGeometry x="90" y="50" width="160" height="120" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-44" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;fontSize=12;startArrow=classic;startFill=1;" parent="1" source="YKHGhaV-Iw9WPsnm1_ly-32" target="YKHGhaV-Iw9WPsnm1_ly-11" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="80" y="140" />
<mxPoint x="80" y="360" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-47" value="vhost setup" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;rotation=270;" parent="YKHGhaV-Iw9WPsnm1_ly-44" vertex="1" connectable="0">
<mxGeometry x="-0.0233" y="-1" relative="1" as="geometry">
<mxPoint x="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-45" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;fontSize=12;startArrow=classic;startFill=1;" parent="1" source="YKHGhaV-Iw9WPsnm1_ly-32" target="YKHGhaV-Iw9WPsnm1_ly-22" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="220" y="220" />
<mxPoint x="470" y="220" />
<mxPoint x="470" y="390" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-48" value="MMIO/PMIO register access" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=none;" parent="YKHGhaV-Iw9WPsnm1_ly-45" vertex="1" connectable="0">
<mxGeometry x="-0.0162" y="-2" relative="1" as="geometry">
<mxPoint x="-21" y="-12" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-32" value="virtio-pci proxy" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="110" y="120" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-12" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="340" y="370" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-15" value="" style="shape=singleArrow;direction=north;whiteSpace=wrap;html=1;arrowWidth=0.3692307692307736;arrowSize=0.13999999999999888;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="360" y="375" width="10" height="50" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-13" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.donut;dx=4.69;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="350" y="385" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-16" value="" style="shape=singleArrow;direction=south;whiteSpace=wrap;html=1;arrowWidth=0.3692307692307736;arrowSize=0.13999999999999888;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="390" y="375" width="10" height="50" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-17" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.donut;dx=4.69;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="380" y="385" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-18" value="<font style="font-size: 6px;">vring</font>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="355" y="390" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-19" value="vring" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;direction=south;fontSize=6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="385" y="390" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-24" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="130" y="370" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-25" value="" style="shape=singleArrow;direction=north;whiteSpace=wrap;html=1;arrowWidth=0.3692307692307736;arrowSize=0.13999999999999888;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="150" y="375" width="10" height="50" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-26" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.donut;dx=4.69;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="140" y="385" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-27" value="" style="shape=singleArrow;direction=south;whiteSpace=wrap;html=1;arrowWidth=0.3692307692307736;arrowSize=0.13999999999999888;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="180" y="375" width="10" height="50" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-28" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.donut;dx=4.69;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="170" y="385" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-29" value="<font style="font-size: 6px;">vring</font>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="145" y="390" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="YKHGhaV-Iw9WPsnm1_ly-30" value="vring" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;direction=south;fontSize=6;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="175" y="390" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="BuKsE_VjunbPpSj5-xp7-1" value="<div>virtio-net device</div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="110" y="90" width="120" height="30.31" as="geometry" />
</mxCell>
<mxCell id="BuKsE_VjunbPpSj5-xp7-3" value="<div>virtio-net driver</div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="320" y="309.69" width="120" height="30.31" as="geometry" />
</mxCell>
<mxCell id="BuKsE_VjunbPpSj5-xp7-4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=1;fontSize=12;startArrow=none;startFill=0;endArrow=classic;endFill=1;" parent="1" source="YKHGhaV-Iw9WPsnm1_ly-22" target="YKHGhaV-Iw9WPsnm1_ly-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="260" y="310" as="targetPoint" />
<Array as="points">
<mxPoint x="450" y="350" />
<mxPoint x="450" y="270" />
<mxPoint x="260" y="270" />
<mxPoint x="260" y="360" />
</Array>
<mxPoint x="440" y="340" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="BuKsE_VjunbPpSj5-xp7-5" value="ioeventfd notifications" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=none;" parent="BuKsE_VjunbPpSj5-xp7-4" vertex="1" connectable="0">
<mxGeometry x="-0.1824" y="1" relative="1" as="geometry">
<mxPoint x="-4" y="9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="BuKsE_VjunbPpSj5-xp7-6" value="<div>vhost-net</div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="110" y="309.69" width="120" height="30.31" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram name="VirtIO-Net-Simplified" id="SFXPF4kZs_qqYZCAXp2l">
<mxGraphModel dx="1185" dy="661" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="660" pageHeight="280" math="0" shadow="0">
<root>
<mxCell id="STfzPmswzdKvqNeE0xj6-0" />
<mxCell id="STfzPmswzdKvqNeE0xj6-1" parent="STfzPmswzdKvqNeE0xj6-0" />
<mxCell id="STfzPmswzdKvqNeE0xj6-2" value="<div>KVM</div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="300" y="20" width="160" height="90" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-3" value="<div>Guest Kernel<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="480" y="20" width="160" height="180" as="geometry" />
</mxCell>
<mxCell id="fN3OZ2res27MMhStsK_H-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;startArrow=classic;startFill=1;dashed=1;dashPattern=1 1;" edge="1" parent="STfzPmswzdKvqNeE0xj6-1" source="STfzPmswzdKvqNeE0xj6-16" target="fN3OZ2res27MMhStsK_H-6">
<mxGeometry relative="1" as="geometry">
<mxPoint x="559.9200000000001" y="240.00000000000006" as="targetPoint" />
<Array as="points">
<mxPoint x="560" y="230.00000000000003" />
<mxPoint x="560" y="230.00000000000003" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-16" value="<div>virtio-pci driver</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="500" y="90" width="120" height="100" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-18" value="<div>QEMU</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="120" y="20" width="160" height="180" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-21" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;fontSize=12;startArrow=classic;startFill=1;" edge="1" parent="STfzPmswzdKvqNeE0xj6-1" source="STfzPmswzdKvqNeE0xj6-23" target="STfzPmswzdKvqNeE0xj6-16">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="420" y="100" />
<mxPoint x="420" y="100" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-22" value="MMIO/PMIO register access" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=10;labelBackgroundColor=none;" vertex="1" connectable="0" parent="STfzPmswzdKvqNeE0xj6-21">
<mxGeometry x="-0.0162" y="-2" relative="1" as="geometry">
<mxPoint x="2" y="-12" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="fN3OZ2res27MMhStsK_H-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;strokeWidth=3;dashed=1;dashPattern=1 1;" edge="1" parent="STfzPmswzdKvqNeE0xj6-1" source="STfzPmswzdKvqNeE0xj6-23" target="fN3OZ2res27MMhStsK_H-6">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200.07999999999993" y="240.00000000000006" as="targetPoint" />
<Array as="points">
<mxPoint x="200" y="230.00000000000003" />
<mxPoint x="200" y="230.00000000000003" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-23" value="<div>virtio-pci proxy</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="140" y="89.69" width="120" height="100.31" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-38" value="<div>virtio-net device</div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="140" y="59.69" width="120" height="30.31" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-39" value="<div>virtio-net driver</div>" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="500" y="59.69" width="120" height="30.31" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-17" value="<div style="font-size: 10px;"><font style="font-size: 10px;">shared</font></div><div style="font-size: 10px;"><font style="font-size: 10px;">memory</font></div>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=6;opacity=50;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="230" y="120" width="300" height="60" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-24" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="520" y="120" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-25" value="" style="shape=singleArrow;direction=north;whiteSpace=wrap;html=1;arrowWidth=0.3692307692307736;arrowSize=0.13999999999999888;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="540" y="125" width="10" height="50" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-26" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.donut;dx=4.69;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="530" y="135" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-27" value="" style="shape=singleArrow;direction=south;whiteSpace=wrap;html=1;arrowWidth=0.3692307692307736;arrowSize=0.13999999999999888;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="570" y="125" width="10" height="50" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-28" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.donut;dx=4.69;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="560" y="135" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-29" value="<font style="font-size: 6px;">vring</font>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="535" y="140" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-30" value="vring" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;direction=south;fontSize=6;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="565" y="140" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-31" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="160" y="120" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-32" value="" style="shape=singleArrow;direction=north;whiteSpace=wrap;html=1;arrowWidth=0.3692307692307736;arrowSize=0.13999999999999888;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="180" y="125" width="10" height="50" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-33" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.donut;dx=4.69;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="170" y="135" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-34" value="" style="shape=singleArrow;direction=south;whiteSpace=wrap;html=1;arrowWidth=0.3692307692307736;arrowSize=0.13999999999999888;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="210" y="125" width="10" height="50" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-35" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.donut;dx=4.69;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="200" y="135" width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-36" value="<font style="font-size: 6px;">vring</font>" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="175" y="140" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-37" value="vring" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;direction=south;fontSize=6;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="205" y="140" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="fN3OZ2res27MMhStsK_H-6" value="Virtual PCI Bus" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="120" y="240.00000000000006" width="520" height="20" as="geometry" />
</mxCell>
<mxCell id="fN3OZ2res27MMhStsK_H-9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;startArrow=classic;startFill=1;" edge="1" parent="STfzPmswzdKvqNeE0xj6-1" source="STfzPmswzdKvqNeE0xj6-10" target="STfzPmswzdKvqNeE0xj6-38">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="60" y="75" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="fN3OZ2res27MMhStsK_H-11" value="<div>readmsg() / writemsg()</div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;" vertex="1" connectable="0" parent="fN3OZ2res27MMhStsK_H-9">
<mxGeometry x="-0.011" y="-3" relative="1" as="geometry">
<mxPoint x="-17" y="-18" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="STfzPmswzdKvqNeE0xj6-10" value="TAP" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="STfzPmswzdKvqNeE0xj6-1">
<mxGeometry x="20" y="120" width="80" height="30.31" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>