1*decb35d8SBruce Richardson<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2*decb35d8SBruce Richardson<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 3*decb35d8SBruce Richardson<!-- Generated by Microsoft Visio, SVG Export virtio_user_as_exceptional_pathvsdx.svg Page-1 --> 4*decb35d8SBruce Richardson<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" 5*decb35d8SBruce Richardson xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="5.77778in" height="3.88851in" 6*decb35d8SBruce Richardson viewBox="0 0 416 279.973" xml:space="preserve" color-interpolation-filters="sRGB" class="st13"> 7*decb35d8SBruce Richardson <v:documentProperties v:langID="1033" v:viewMarkup="false"/> 8*decb35d8SBruce Richardson 9*decb35d8SBruce Richardson <style type="text/css"> 10*decb35d8SBruce Richardson <![CDATA[ 11*decb35d8SBruce Richardson .st1 {visibility:visible} 12*decb35d8SBruce Richardson .st2 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22} 13*decb35d8SBruce Richardson .st3 {fill:#ffffff;stroke:#c7c8c8;stroke-width:0.25} 14*decb35d8SBruce Richardson .st4 {stroke:#000000;stroke-dasharray:7,5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1} 15*decb35d8SBruce Richardson .st5 {fill:#000000;font-family:Calibri;font-size:0.833336em} 16*decb35d8SBruce Richardson .st6 {fill:none;stroke:none;stroke-width:0.25} 17*decb35d8SBruce Richardson .st7 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic} 18*decb35d8SBruce Richardson .st8 {fill:#70ad47;stroke:#c7c8c8;stroke-width:0.25} 19*decb35d8SBruce Richardson .st9 {stroke:#5b9bd5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75} 20*decb35d8SBruce Richardson .st10 {marker-end:url(#mrkr4-68);marker-start:url(#mrkr4-66);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1} 21*decb35d8SBruce Richardson .st11 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.28409090909091} 22*decb35d8SBruce Richardson .st12 {fill:#d8d8d8;stroke:#c7c8c8;stroke-width:0.25} 23*decb35d8SBruce Richardson .st13 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} 24*decb35d8SBruce Richardson ]]> 25*decb35d8SBruce Richardson </style> 26*decb35d8SBruce Richardson 27*decb35d8SBruce Richardson <defs id="Markers"> 28*decb35d8SBruce Richardson <g id="lend4"> 29*decb35d8SBruce Richardson <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/> 30*decb35d8SBruce Richardson </g> 31*decb35d8SBruce Richardson <marker id="mrkr4-66" class="st11" v:arrowType="4" v:arrowSize="2" v:setback="6.68" refX="6.68" orient="auto" 32*decb35d8SBruce Richardson markerUnits="strokeWidth" overflow="visible"> 33*decb35d8SBruce Richardson <use xlink:href="#lend4" transform="scale(3.52) "/> 34*decb35d8SBruce Richardson </marker> 35*decb35d8SBruce Richardson <marker id="mrkr4-68" class="st11" v:arrowType="4" v:arrowSize="2" v:setback="7.04" refX="-7.04" orient="auto" 36*decb35d8SBruce Richardson markerUnits="strokeWidth" overflow="visible"> 37*decb35d8SBruce Richardson <use xlink:href="#lend4" transform="scale(-3.52,-3.52) "/> 38*decb35d8SBruce Richardson </marker> 39*decb35d8SBruce Richardson </defs> 40*decb35d8SBruce Richardson <defs id="Filters"> 41*decb35d8SBruce Richardson <filter id="filter_2"> 42*decb35d8SBruce Richardson <feGaussianBlur stdDeviation="2"/> 43*decb35d8SBruce Richardson </filter> 44*decb35d8SBruce Richardson </defs> 45*decb35d8SBruce Richardson <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> 46*decb35d8SBruce Richardson <title>Page-1</title> 47*decb35d8SBruce Richardson <v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="0" v:shadowOffsetX="9" v:shadowOffsetY="-9"/> 48*decb35d8SBruce Richardson <v:layer v:name="Connector" v:index="0"/> 49*decb35d8SBruce Richardson <g id="shape23-1" v:mID="23" v:groupContext="shape" transform="translate(195.804,-74.9728)"> 50*decb35d8SBruce Richardson <title>Rectangle.23</title> 51*decb35d8SBruce Richardson <v:userDefs> 52*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 53*decb35d8SBruce Richardson </v:userDefs> 54*decb35d8SBruce Richardson <g id="shadow23-2" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 55*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 56*decb35d8SBruce Richardson <rect x="0" y="113.473" width="216.6" height="166.5" class="st2"/> 57*decb35d8SBruce Richardson </g> 58*decb35d8SBruce Richardson <rect x="0" y="113.473" width="216.6" height="166.5" class="st3"/> 59*decb35d8SBruce Richardson </g> 60*decb35d8SBruce Richardson <g id="shape42-6" v:mID="42" v:groupContext="shape" v:layerMember="0" transform="translate(146.904,-277.473)"> 61*decb35d8SBruce Richardson <title>Dynamic connector.42</title> 62*decb35d8SBruce Richardson <path d="M-9 279.97 L-9 540.97" class="st4"/> 63*decb35d8SBruce Richardson </g> 64*decb35d8SBruce Richardson <g id="shape45-9" v:mID="45" v:groupContext="shape" transform="translate(2.9044,-142.292)"> 65*decb35d8SBruce Richardson <title>Rectangle.45</title> 66*decb35d8SBruce Richardson <desc>tap</desc> 67*decb35d8SBruce Richardson <v:userDefs> 68*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 69*decb35d8SBruce Richardson </v:userDefs> 70*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 71*decb35d8SBruce Richardson <v:textRect cx="34.05" cy="264.132" width="68.1" height="31.6807"/> 72*decb35d8SBruce Richardson <g id="shadow45-10" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 73*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 74*decb35d8SBruce Richardson <rect x="0" y="248.292" width="68.1" height="31.6807" class="st2"/> 75*decb35d8SBruce Richardson </g> 76*decb35d8SBruce Richardson <rect x="0" y="248.292" width="68.1" height="31.6807" class="st3"/> 77*decb35d8SBruce Richardson <text x="27.35" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>tap</text> </g> 78*decb35d8SBruce Richardson <g id="shape46-15" v:mID="46" v:groupContext="shape" transform="translate(2.9044,-43.2921)"> 79*decb35d8SBruce Richardson <title>Rectangle.46</title> 80*decb35d8SBruce Richardson <desc>vhost ko</desc> 81*decb35d8SBruce Richardson <v:userDefs> 82*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 83*decb35d8SBruce Richardson </v:userDefs> 84*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 85*decb35d8SBruce Richardson <v:textRect cx="34.05" cy="264.132" width="68.1" height="31.6807"/> 86*decb35d8SBruce Richardson <g id="shadow46-16" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 87*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 88*decb35d8SBruce Richardson <rect x="0" y="248.292" width="68.1" height="31.6807" class="st2"/> 89*decb35d8SBruce Richardson </g> 90*decb35d8SBruce Richardson <rect x="0" y="248.292" width="68.1" height="31.6807" class="st3"/> 91*decb35d8SBruce Richardson <text x="16.86" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>vhost ko </text> </g> 92*decb35d8SBruce Richardson <g id="shape47-21" v:mID="47" v:groupContext="shape" transform="translate(18.9544,-257.223)"> 93*decb35d8SBruce Richardson <title>Sheet.47</title> 94*decb35d8SBruce Richardson <desc>Kernel space</desc> 95*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 96*decb35d8SBruce Richardson <v:textRect cx="44.025" cy="268.723" width="88.05" height="22.5"/> 97*decb35d8SBruce Richardson <rect x="0" y="257.473" width="88.05" height="22.5" class="st6"/> 98*decb35d8SBruce Richardson <text x="13.44" y="272.32" class="st7" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Kernel space</text> </g> 99*decb35d8SBruce Richardson <g id="shape48-24" v:mID="48" v:groupContext="shape" transform="translate(148.854,-257.223)"> 100*decb35d8SBruce Richardson <title>Sheet.48</title> 101*decb35d8SBruce Richardson <desc>User space</desc> 102*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 103*decb35d8SBruce Richardson <v:textRect cx="44.025" cy="268.723" width="88.05" height="22.5"/> 104*decb35d8SBruce Richardson <rect x="0" y="257.473" width="88.05" height="22.5" class="st6"/> 105*decb35d8SBruce Richardson <text x="17.7" y="272.32" class="st7" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>User space</text> </g> 106*decb35d8SBruce Richardson <g id="shape49-27" v:mID="49" v:groupContext="shape" transform="translate(218.904,-182.792)"> 107*decb35d8SBruce Richardson <title>Rectangle.49</title> 108*decb35d8SBruce Richardson <desc>ETHDEV</desc> 109*decb35d8SBruce Richardson <v:userDefs> 110*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 111*decb35d8SBruce Richardson </v:userDefs> 112*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 113*decb35d8SBruce Richardson <v:textRect cx="83.25" cy="264.132" width="166.5" height="31.6807"/> 114*decb35d8SBruce Richardson <g id="shadow49-28" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 115*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 116*decb35d8SBruce Richardson <rect x="0" y="248.292" width="166.5" height="31.6807" class="st2"/> 117*decb35d8SBruce Richardson </g> 118*decb35d8SBruce Richardson <rect x="0" y="248.292" width="166.5" height="31.6807" class="st3"/> 119*decb35d8SBruce Richardson <text x="66.9" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>ETHDEV</text> </g> 120*decb35d8SBruce Richardson <g id="shape50-33" v:mID="50" v:groupContext="shape" transform="translate(218.904,-142.292)"> 121*decb35d8SBruce Richardson <title>Rectangle.50</title> 122*decb35d8SBruce Richardson <desc>virtio PMD</desc> 123*decb35d8SBruce Richardson <v:userDefs> 124*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 125*decb35d8SBruce Richardson </v:userDefs> 126*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 127*decb35d8SBruce Richardson <v:textRect cx="38.7911" cy="264.132" width="77.59" height="31.6807"/> 128*decb35d8SBruce Richardson <g id="shadow50-34" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 129*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 130*decb35d8SBruce Richardson <rect x="0" y="248.292" width="77.5823" height="31.6807" class="st2"/> 131*decb35d8SBruce Richardson </g> 132*decb35d8SBruce Richardson <rect x="0" y="248.292" width="77.5823" height="31.6807" class="st3"/> 133*decb35d8SBruce Richardson <text x="17.12" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>virtio PMD</text> </g> 134*decb35d8SBruce Richardson <g id="shape51-39" v:mID="51" v:groupContext="shape" transform="translate(308.904,-142.292)"> 135*decb35d8SBruce Richardson <title>Rectangle.51</title> 136*decb35d8SBruce Richardson <desc>other PMDs</desc> 137*decb35d8SBruce Richardson <v:userDefs> 138*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 139*decb35d8SBruce Richardson </v:userDefs> 140*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 141*decb35d8SBruce Richardson <v:textRect cx="38.7911" cy="264.132" width="77.59" height="31.6807"/> 142*decb35d8SBruce Richardson <g id="shadow51-40" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 143*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 144*decb35d8SBruce Richardson <rect x="0" y="248.292" width="77.5823" height="31.6807" class="st2"/> 145*decb35d8SBruce Richardson </g> 146*decb35d8SBruce Richardson <rect x="0" y="248.292" width="77.5823" height="31.6807" class="st3"/> 147*decb35d8SBruce Richardson <text x="14.6" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>other PMDs</text> </g> 148*decb35d8SBruce Richardson <g id="shape52-45" v:mID="52" v:groupContext="shape" transform="translate(218.904,-86.3131)"> 149*decb35d8SBruce Richardson <title>Rectangle.52</title> 150*decb35d8SBruce Richardson <desc>virtio-user</desc> 151*decb35d8SBruce Richardson <v:userDefs> 152*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 153*decb35d8SBruce Richardson </v:userDefs> 154*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 155*decb35d8SBruce Richardson <v:textRect cx="38.7911" cy="256.393" width="77.59" height="47.1597"/> 156*decb35d8SBruce Richardson <g id="shadow52-46" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 157*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 158*decb35d8SBruce Richardson <rect x="0" y="232.813" width="77.5823" height="47.1597" class="st2"/> 159*decb35d8SBruce Richardson </g> 160*decb35d8SBruce Richardson <rect x="0" y="232.813" width="77.5823" height="47.1597" class="st8"/> 161*decb35d8SBruce Richardson <text x="17.84" y="247.39" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>virtio-user<v:newlineChar/><v:newlineChar/></text> </g> 162*decb35d8SBruce Richardson <g id="shape53-51" v:mID="53" v:groupContext="shape" transform="translate(223.404,-90.1829)"> 163*decb35d8SBruce Richardson <title>Rectangle.53</title> 164*decb35d8SBruce Richardson <desc>vhost adapter</desc> 165*decb35d8SBruce Richardson <v:userDefs> 166*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 167*decb35d8SBruce Richardson </v:userDefs> 168*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 169*decb35d8SBruce Richardson <v:textRect cx="34.05" cy="268.183" width="68.1" height="23.5798"/> 170*decb35d8SBruce Richardson <g id="shadow53-52" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 171*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 172*decb35d8SBruce Richardson <rect x="0" y="256.393" width="68.1" height="23.5798" class="st2"/> 173*decb35d8SBruce Richardson </g> 174*decb35d8SBruce Richardson <rect x="0" y="256.393" width="68.1" height="23.5798" class="st3"/> 175*decb35d8SBruce Richardson <text x="5.82" y="271.18" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>vhost adapter</text> </g> 176*decb35d8SBruce Richardson <g id="shape54-57" v:mID="54" v:groupContext="shape" v:layerMember="0" transform="translate(71.0044,-59.1325)"> 177*decb35d8SBruce Richardson <title>Dynamic connector</title> 178*decb35d8SBruce Richardson <path d="M0 279.97 L63.9 279.97 A3 3 0 1 1 69.9 279.97 L186.69 279.97 L186.69 252.79" class="st9"/> 179*decb35d8SBruce Richardson </g> 180*decb35d8SBruce Richardson <g id="shape55-60" v:mID="55" v:groupContext="shape" v:layerMember="0" transform="translate(71.0044,-149.132)"> 181*decb35d8SBruce Richardson <title>Dynamic connector.55</title> 182*decb35d8SBruce Richardson <path d="M6.68 270.97 L7.04 270.97 L63.9 270.97 A3 3 0 0 1 69.9 270.97 L140.86 270.97" class="st10"/> 183*decb35d8SBruce Richardson </g> 184*decb35d8SBruce Richardson <g id="shape56-69" v:mID="56" v:groupContext="shape" transform="translate(308.904,-5.2228)"> 185*decb35d8SBruce Richardson <title>Rectangle.38</title> 186*decb35d8SBruce Richardson <v:userDefs> 187*decb35d8SBruce Richardson <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> 188*decb35d8SBruce Richardson </v:userDefs> 189*decb35d8SBruce Richardson <g id="shadow56-70" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1" 190*decb35d8SBruce Richardson transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1"> 191*decb35d8SBruce Richardson <rect x="0" y="257.473" width="77.5823" height="22.5" rx="11.25" ry="11.25" class="st2"/> 192*decb35d8SBruce Richardson </g> 193*decb35d8SBruce Richardson <rect x="0" y="257.473" width="77.5823" height="22.5" rx="11.25" ry="11.25" class="st12"/> 194*decb35d8SBruce Richardson </g> 195*decb35d8SBruce Richardson <g id="shape57-74" v:mID="57" v:groupContext="shape" transform="translate(318.204,-5.2228)"> 196*decb35d8SBruce Richardson <title>Sheet.57</title> 197*decb35d8SBruce Richardson <desc>NIC</desc> 198*decb35d8SBruce Richardson <v:textBlock v:margins="rect(4,4,4,4)"/> 199*decb35d8SBruce Richardson <v:textRect cx="28.125" cy="268.723" width="56.25" height="22.5"/> 200*decb35d8SBruce Richardson <rect x="0" y="257.473" width="56.25" height="22.5" class="st6"/> 201*decb35d8SBruce Richardson <text x="19.61" y="272.32" class="st7" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>NIC</text> </g> 202*decb35d8SBruce Richardson <g id="shape58-77" v:mID="58" v:groupContext="shape" v:layerMember="0" transform="translate(356.696,-142.292)"> 203*decb35d8SBruce Richardson <title>Dynamic connector.41</title> 204*decb35d8SBruce Richardson <path d="M-9 286.65 L-9 287.01 L-9 387.5" class="st10"/> 205*decb35d8SBruce Richardson </g> 206*decb35d8SBruce Richardson </g> 207*decb35d8SBruce Richardson</svg> 208