summaryrefslogtreecommitdiffstats
path: root/src/spdk/dpdk/doc/guides/howto/img
diff options
context:
space:
mode:
Diffstat (limited to 'src/spdk/dpdk/doc/guides/howto/img')
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_consumer_ring.svg24
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_crypto.svg21
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_distributor_worker.svg36
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_mempool.svg27
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_pdump.svg33
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_producer_ring.svg24
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_qos_tx.svg29
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_rx_rate.svg25
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_rx_tx_drop.svg33
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_sample_app_model.svg110
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/dtg_service.svg20
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/flow_bifurcation_overview.svg544
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/lm_bond_virtio_sriov.svg666
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/lm_vhost_user.svg644
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/packet_capture_framework.svg471
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/pvp_2nics.svg556
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/use_models_for_running_dpdk_in_containers.svg398
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/vf_daemon_overview.svg408
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/virtio_user_as_exceptional_path.svg207
-rw-r--r--src/spdk/dpdk/doc/guides/howto/img/virtio_user_for_container_networking.svg685
20 files changed, 4961 insertions, 0 deletions
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_consumer_ring.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_consumer_ring.svg
new file mode 100644
index 000000000..d8cf0c292
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_consumer_ring.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="634" height="97" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>consumer ring</title>
+ <rect fill="#fff" id="canvas_background" height="99" width="636" y="-1" x="-1"/>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect id="svg_1" height="95" width="135" y="0" x="0" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#9ACEE6"/>
+ <rect id="svg_2" height="95" width="135" y="2" x="252" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#9ACEE6"/>
+ <rect id="svg_3" height="95" width="135" y="2" x="499" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#9ACEE6"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_4" y="45" x="10" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Stage 1</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_5" y="52" x="268" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Stage 2</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_6" y="53" x="517" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Stage 3</text>
+ <path transform="rotate(90.19324493408203 177.864990234375,48.89100646972658) " id="svg_7" d="m155.364991,48.766198l22.499998,-51.875196l22.499998,51.875196l-11.25,0l0,52.12481l-22.499996,0l0,-52.12481l-11.25,0z" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#4D2425"/>
+ <path transform="rotate(90.19324493408203 434.864990234375,48.89100646972656) " id="svg_8" d="m412.364991,48.766198l22.499998,-51.875196l22.499998,51.875196l-11.25,0l0,52.12481l-22.499996,0l0,-52.12481l-11.25,0z" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#4D2425"/>
+ <path id="svg_10" d="m225.937481,47.95781l0,0c0,-10.493411 8.282734,-19 18.500005,-19l0,0c4.906504,0 9.612052,2.00178 13.081477,5.564971c3.469424,3.563191 5.418523,8.395917 5.418523,13.435029l0,0c0,10.493408 -8.282732,18.999998 -18.5,18.999998l0,0c-10.217271,0 -18.500005,-8.506591 -18.500005,-18.999998zm18.500005,-19l0,37.999998m-18.500005,-18.999998l37.000005,0" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#8CD79F"/>
+ <path id="svg_11" d="m475.937481,46.95781l0,0c0,-10.493411 8.282734,-19.000001 18.500005,-19.000001l0,0c4.906504,0 9.612052,2.00178 13.081477,5.564972c3.469424,3.563191 5.418523,8.395916 5.418523,13.435029l0,0c0,10.493408 -8.282732,18.999997 -18.5,18.999997l0,0c-10.217271,0 -18.500005,-8.50659 -18.500005,-18.999997zm18.500005,-19.000001l0,37.999998m-18.500005,-18.999997l37.000005,0" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#8CD79F"/>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_crypto.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_crypto.svg
new file mode 100644
index 000000000..969f8b5d5
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_crypto.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="180" height="230" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>crypto</title>
+ <rect fill="#fff" id="canvas_background" height="232" width="182" y="-1" x="-1"/>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect id="svg_21" height="1" width="0" y="369.4375" x="838.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#A0D58A"/>
+ <text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_25" y="222.4375" x="39.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Core 7</text>
+ <rect stroke="#000" id="svg_26" height="44.000003" width="155.000001" y="151.437497" x="6.499997" fill-opacity="null" stroke-opacity="null" stroke-width="0" fill="#7AD6CA"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_27" y="179.4375" x="13.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">CRYPTO PMD</text>
+ <ellipse stroke="#000" ry="41.5" rx="66.500001" id="svg_28" cy="48.9375" cx="87.999997" fill-opacity="null" stroke-opacity="null" stroke-width="0" fill="#7AD6CA"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_29" y="57.4375" x="45.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Device</text>
+ <path stroke="#000" transform="rotate(-90.19718170166016 85.76751708984375,119.45785522460936) " id="svg_30" d="m40.743289,119.457895l26.106598,-13.915756l0,6.95786l37.835289,0l0,-6.95786l26.106586,13.915756l-26.106586,13.915682l0,-6.957842l-37.835289,0l0,6.957842l-26.106598,-13.915682z" stroke-opacity="null" stroke-width="0" fill="#845335"/>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_distributor_worker.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_distributor_worker.svg
new file mode 100644
index 000000000..d2638ded8
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_distributor_worker.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="600" height="235" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>distributor and worker</title>
+ <rect fill="#fff" id="canvas_background" height="237" width="602" y="-1" x="-1"/>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect stroke="#000" id="svg_1" height="89.999991" width="202.000004" y="21.000003" x="4" stroke-opacity="null" stroke-width="0" fill="#9ACEE6"/>
+ <text style="cursor: move;" xml:space="preserve" text-anchor="start"
+ font-family="'Courier New', Courier, monospace" font-size="24" id="svg_4" y="47" x="7"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">PKT classify</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_12" y="96.5" x="25.992188" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Distribute</text>
+ <path id="svg_13" d="m334.224445,98.046256l16.252783,-5.432074l-16.252783,-5.429993l-16.256262,-5.427952l0,6.038517c-4.264321,-0.004069 -11.331234,-0.004069 -13.334561,-0.004069c-5.919233,-0.081711 -9.804243,-1.153783 -13.847174,-3.073397c-6.02597,-2.865095 -11.16889,-8.021466 -17.371313,-12.989922c-3.154554,-2.470933 -6.669049,-4.921502 -11.349751,-6.892119c-4.633926,-1.978838 -10.68815,-3.351144 -17.41807,-3.324591l-29.170102,0l0,9.646983l29.170102,0c4.056131,0.042884 6.623169,0.808657 10.124445,2.70786c5.179989,2.824261 10.230311,8.223602 17.195784,13.339136c6.826056,5.066481 17.329865,10.182006 32.564612,10.231017l13.436029,0l0,6.0385l16.256262,-5.427896zm-68.759273,-36.535597c0.184389,0.075572 0.379369,0.14089 0.559297,0.218526c5.559349,2.340242 9.573988,5.211493 12.751502,7.709001c0.730423,0.584013 1.377934,1.145611 2.071302,1.719456l37.120911,0l0,6.040581l16.256262,-5.42798l16.252783,-5.429962l-16.252783,-5.432037l-16.256262,-5.434093l0,6.036509l-52.503011,0z"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#FFAC8D"/>
+ <rect stroke="#000" id="svg_17" height="110.999999" width="180" y="3.4375" x="353.5"
+ stroke-opacity="null" stroke-width="0" fill="#FABA6F"/>
+ <rect stroke="#000" id="svg_14" height="110.999999" width="180" y="31.4375" x="369.5"
+ stroke-opacity="null" stroke-width="0" fill="#FFB27C"/>
+ <rect stroke="#000" id="svg_15" height="110.999999" width="180" y="58.4375" x="392.5"
+ stroke-opacity="null" stroke-width="0" fill="#FFF093"/>
+ <rect stroke="#000" id="svg_16" height="110.999999" width="180" y="90.4375" x="413.5"
+ stroke-opacity="null" stroke-width="0" fill="#FFE7A2"/>
+ <text stroke="#000" transform="matrix(0.678871691226959,0,0,0.7037037014961243,142.60348030924797,64.2037038393319) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_18" y="71.490132" x="413.769676" stroke-opacity="null" stroke-width="0" fill="#000000">worker 1</text>
+ <text stroke="#000" transform="matrix(0.678871691226959,0,0,0.7037037014961243,121.60348030924797,9.203703839331922) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_19" y="101.332237" x="406.404514" stroke-opacity="null" stroke-width="0" fill="#000000">worker 2</text>
+ <text stroke="#000" transform="matrix(0.678871691226959,0,0,0.7037037014961243,121.60348030924797,9.203703839331922) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_20" y="58.700658" x="376.943866" stroke-opacity="null" stroke-width="0" fill="#000000">worker 3</text>
+ <text style="cursor: move;" stroke="#000" transform="matrix(0.678871691226959,0,0,0.7037037014961243,121.60348030924797,9.203703839331922) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_22" y="18.911184" x="350.429283" stroke-opacity="null" stroke-width="0" fill="#000000">worker 4</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_23" y="139.4375" x="49.5"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 1</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_24" y="226.4375" x="404.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 2,3,4,5</text>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_mempool.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_mempool.svg
new file mode 100644
index 000000000..2f53a3ca8
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_mempool.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="955" height="185" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>mempool</title>
+ <rect fill="#fff" id="canvas_background" height="187" width="957" y="-1" x="-1"/>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect id="svg_21" height="1" width="0" y="370.4375" x="839.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#A0D58A"/>
+ <rect stroke="#000" id="svg_31" height="181.000002" width="951.000029" y="2.4375" x="3.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" fill="#7AD6CA"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_32" y="167.4375" x="14.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">MBUF pool</text>
+ <rect id="svg_38" height="71" width="859" y="15.4375" x="18.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#8B4D4B"/>
+ <rect id="svg_39" height="71" width="859" y="32.4375" x="33.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#8B4D4B"/>
+ <rect id="svg_40" height="71" width="859" y="47.4375" x="52.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#8B4D4B"/>
+ <rect id="svg_41" height="71" width="859" y="62.4375" x="71.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#8B4D4B"/>
+ <rect stroke="#000" id="svg_42" height="55.999999" width="403.000005" y="69.4375" x="486.499995" stroke-opacity="null" stroke-width="0" fill="#FFAC8D"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_43" y="103.4375" x="631.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Payload</text>
+ <rect stroke="#000" id="svg_44" height="56" width="140.999999" y="68.4375" x="292.500001" stroke-opacity="null" stroke-width="0" fill="#9ACEE6"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_45" y="105.4375" x="303.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Metadata</text>
+ <rect stroke="#000" id="svg_46" height="53" width="185.999997" y="70.4375" x="90.5" stroke-opacity="null" stroke-width="0" fill="#EDFFFF"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_47" y="104.4375" x="105.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">struct mbuf</text>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_pdump.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_pdump.svg
new file mode 100644
index 000000000..4b14fb7ce
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_pdump.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="860" height="140" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>pdump</title>
+ <rect fill="#fff" id="canvas_background" height="142" width="862" y="-1" x="-1"/>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect stroke="#000" id="svg_15" height="127.999992" width="568" y="7" x="8.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" fill="#B1FFFF"/>
+ <rect id="svg_2" height="51" width="100" y="23" x="22.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#CC7C65"/>
+ <rect id="svg_3" height="51" width="100" y="26" x="455.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#CC7C65"/>
+ <path id="svg_7" d="m208.364769,78.968848l12.704559,-5.623238l12.697917,-5.625551l-12.704644,-5.629525l-12.697836,-5.625202l0,6.255891c-3.112384,0 -6.729051,0 -7.940704,0c-5.776899,0.124913 -12.907107,-3.365352 -20.492742,-7.864703c-2.827801,-1.577599 -5.680695,-3.313223 -8.704363,-4.88042c3.023667,-1.569118 5.872475,-3.302747 8.704363,-4.880295c7.585635,-4.493132 14.715839,-7.98967 20.485292,-7.862546l7.94815,-0.002103l0,6.264275l12.697836,-5.627447l12.704644,-5.631775l-12.704644,-5.637807l-12.697836,-5.629547l0,6.260273l-7.944067,0c-11.799214,0.12679 -20.61742,5.506774 -28.333828,9.879239c-7.660201,4.613909 -14.545738,8.087381 -18.539115,7.862617l-22.780531,0l0,9.993806l22.788007,0c3.989952,-0.226969 10.878944,3.248761 18.53841,7.86254c7.71303,4.374678 16.52785,9.750196 28.330427,9.879312l7.940704,0l0,6.262203l0,0l0,0.000003z" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#559E84"/>
+ <path id="svg_8" d="m439.457308,43.77545l-10.478696,-7.306254l0,8.12971l-18.805519,0c-3.29272,0.296972 -8.977707,-4.212008 -15.298608,-10.195089c-6.365074,-5.675375 -13.639418,-12.638687 -23.37938,-12.824984l-6.552957,0l0,12.959904l6.552957,0c4.770151,-0.167389 10.652051,4.360514 16.914219,10.203329c2.334186,2.041106 4.688512,4.292919 7.183208,6.326016c-2.494696,2.035766 -4.846223,4.290275 -7.183208,6.331424c-6.262164,5.826551 -12.144067,10.365242 -16.908056,10.200515l-6.559117,0l0,12.978808l6.555749,0c9.719269,-0.1646 16.996426,-7.14678 23.382185,-12.814082c6.32147,-5.983193 12.003677,-10.494803 15.299177,-10.203221l18.799357,0l0,8.129634l10.478696,-7.298036l10.484823,-7.303408l-10.484823,-7.314263l-0.000006,-0.000004z" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#559E84"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_9" y="54" x="53.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">RX</text>
+ <text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_10" y="57" x="486.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">TX</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_11" y="40" x="243.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Q1</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_12" y="77" x="243.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Q2</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_13" y="82" x="326.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Q4</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_14" y="40" x="327.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Q3</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_16" y="114.86203" x="234.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Primary</text>
+ <rect stroke="#000" id="svg_18" height="90.000001" width="201.999994" y="29.437499" x="654.5" stroke-opacity="null" stroke-width="0" fill="#7AD6CA"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_19" y="102.4375" x="684.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Secondary</text>
+ <rect stroke="#000" id="svg_20" height="42.000001" width="184.000001" y="34.437499" x="664.499994" stroke-opacity="null" stroke-width="0" fill="#A0D58A"/>
+ <rect id="svg_21" height="1" width="0" y="366.4375" x="835.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#A0D58A"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_22" y="59.4375" x="668.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Ring BufferQ</text>
+ <path stroke="#000" transform="rotate(89.78996276855469 615.4766845703124,74.49395751953122) " id="svg_24" d="m599.023803,74.414257l17.255478,-33.667333l15.650356,33.667333l-8.226459,0l0,33.826726l-16.452915,0l0,-33.826726l-8.226459,0z" fill-opacity="null" stroke-opacity="null" stroke-width="0" fill="#7AD6CA"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_25" y="22.4375" x="714.5" fill-opacity="null" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Core 0</text>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_producer_ring.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_producer_ring.svg
new file mode 100644
index 000000000..e300234cd
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_producer_ring.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="634" height="97" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>producer ring</title>
+ <rect fill="#fff" id="canvas_background" height="99" width="636" y="-1" x="-1"/>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect id="svg_1" height="95" width="135" y="0" x="0" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#9ACEE6"/>
+ <rect id="svg_2" height="95" width="135" y="2" x="252" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#9ACEE6"/>
+ <rect id="svg_3" height="95" width="135" y="2" x="499" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#9ACEE6"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_4" y="45" x="10" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Stage 1</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_5" y="52" x="268" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Stage 2</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_6" y="53" x="517" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Stage 3</text>
+ <path transform="rotate(90.19324493408203 197.864990234375,42.89100646972657) " id="svg_7" d="m175.364991,42.766198l22.499998,-51.875196l22.499998,51.875196l-11.25,0l0,52.12481l-22.499996,0l0,-52.12481l-11.25,0z" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#4D2425"/>
+ <path transform="rotate(90.19324493408203 445.864990234375,47.89100646972657) " id="svg_8" d="m423.364991,47.766198l22.499998,-51.875196l22.499998,51.875196l-11.25,0l0,52.12481l-22.499996,0l0,-52.12481l-11.25,0z" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#4D2425"/>
+ <path id="svg_10" d="m120.937481,42.95781l0,0c0,-10.493411 8.282734,-19 18.500005,-19l0,0c4.906504,0 9.612052,2.00178 13.081477,5.564971c3.469424,3.563191 5.418523,8.395917 5.418523,13.435029l0,0c0,10.493408 -8.282732,18.999998 -18.5,18.999998l0,0c-10.217271,0 -18.500005,-8.506591 -18.500005,-18.999998zm18.500005,-19l0,37.999998m-18.500005,-18.999998l37.000005,0" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#8CD79F"/>
+ <path id="svg_11" d="m373.937481,45.95781l0,0c0,-10.493411 8.282734,-19.000001 18.500005,-19.000001l0,0c4.906504,0 9.612052,2.00178 13.081477,5.564972c3.469424,3.563191 5.418523,8.395916 5.418523,13.435029l0,0c0,10.493408 -8.282732,18.999997 -18.5,18.999997l0,0c-10.217271,0 -18.500005,-8.50659 -18.500005,-18.999997zm18.500005,-19.000001l0,37.999998m-18.500005,-18.999997l37.000005,0" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#8CD79F"/>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_qos_tx.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_qos_tx.svg
new file mode 100644
index 000000000..9f1d3b80d
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_qos_tx.svg
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="287" height="180" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>qos</title>
+ <rect fill="#fff" id="canvas_background" height="182" width="289" y="-1" x="-1"/>
+ <g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid">
+ <rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" width="100%"/>
+ </g>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect id="svg_21" height="180" width="287" y="0" x="0" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#CBFFFF"/>
+ <rect id="svg_10" height="82" width="78" y="17.808165" x="152.25" stroke-width="1.5" stroke="#000" fill="#CC7C65"/>
+ <rect id="svg_11" height="82" width="78" y="36.808165" x="171.25" stroke-width="1.5" stroke="#000" fill="#CE7975"/>
+ <rect id="svg_12" height="82" width="78" y="59.808165" x="188.25" stroke-width="1.5" stroke="#000" fill="#8B4D4B"/>
+ <text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_13" y="113.808165" x="211.25" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">TX</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_14" y="161.808165" x="161.25" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Core1</text>
+ <text stroke="#000" transform="matrix(0.47219348024375296,0,0,0.8034176367619965,-95.87709913037096,-156.57412588945806) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_15" y="235.775764" x="531.631651" stroke-opacity="null" stroke-width="0" fill="#000000">NIC1</text>
+ <text stroke="#000" transform="matrix(0.3615568424500273,0,0,0.9358925757041695,106.13283890389599,-107.01445723901463) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_16" y="173.881425" x="192.8023" stroke-opacity="null" stroke-width="0" fill="#000000">NIC2</text>
+ <text stroke="#000" transform="matrix(0.4371257876803068,0,0,0.6973431388181265,223.6990186363727,31.828115819425847) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_17" y="66.670315" x="-70.838675" stroke-opacity="null" stroke-width="0" fill="#000000">NIC3</text>
+ <rect id="svg_18" height="103" width="104" y="26" x="26" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#FABA6F"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_19" y="79" x="50" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">QoS</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_20" y="153" x="27" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 10</text>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_rx_rate.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_rx_rate.svg
new file mode 100644
index 000000000..02f8760c5
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_rx_rate.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="116" height="152" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>rx rate</title>
+ <rect fill="#fff" id="canvas_background" height="154" width="118" y="-1" x="-1"/>
+ <g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid">
+ <rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" width="100%"/>
+ </g>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect id="svg_1" height="82" width="78" y="0.812613" x="0.75" stroke-width="1.5" stroke="#000" fill="#CC7C65"/>
+ <rect id="svg_2" height="82" width="78" y="19.812613" x="19.75" stroke-width="1.5" stroke="#000" fill="#CE7975"/>
+ <rect id="svg_3" height="82" width="78" y="42.812613" x="36.75" stroke-width="1.5" stroke="#000" fill="#8B4D4B"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_4" y="96.812613" x="59.75" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">RX</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_5" y="144.812613" x="9.75" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Core0</text>
+ <text stroke="#000" transform="matrix(0.47219348024375296,0,0,0.8034176367619965,-95.87709913037096,-156.57412588945806) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_7" y="214.621694" x="210.788594" stroke-opacity="null" stroke-width="0" fill="#000000">NIC1</text>
+ <text stroke="#000" transform="matrix(0.36155684245002745,0,0,0.9358925757041695,-60.867161096103985,-178.0100101290174) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_8" y="231.580355" x="235.672461" stroke-opacity="null" stroke-width="0" fill="#000000">NIC2</text>
+ <text stroke="#000" transform="matrix(0.4371257876803068,0,0,0.6973431388181265,223.6990186363727,31.828115819425847) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_9" y="42.29845" x="-417.420836" stroke-opacity="null" stroke-width="0" fill="#000000">NIC3</text>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_rx_tx_drop.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_rx_tx_drop.svg
new file mode 100644
index 000000000..ca1484862
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_rx_tx_drop.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="275" height="154" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>rx-tx drops</title>
+ <rect fill="#fff" id="canvas_background" height="156" width="277" y="-1" x="-1"/>
+ <g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid">
+ <rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" width="100%"/>
+ </g>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect id="svg_1" height="82" width="78" y="0.808165" x="0.75" stroke-width="1.5" stroke="#000" fill="#CC7C65"/>
+ <rect id="svg_2" height="82" width="78" y="19.808165" x="19.75" stroke-width="1.5" stroke="#000" fill="#CE7975"/>
+ <rect id="svg_3" height="82" width="78" y="42.808165" x="36.75" stroke-width="1.5" stroke="#000" fill="#8B4D4B"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_4" y="96.808165" x="59.75" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">RX</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_5" y="144.808165" x="9.75" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Core0</text>
+ <text stroke="#000" transform="matrix(0.47219348024375296,0,0,0.8034176367619965,-95.87709913037096,-156.57412588945806) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_7" y="214.616159" x="210.788594" stroke-opacity="null" stroke-width="0" fill="#000000">NIC1</text>
+ <text stroke="#000" transform="matrix(0.3615568424500274,0,0,0.9358925757041695,-60.867161096103985,-178.01445723901463) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_8" y="231.580355" x="235.672461" stroke-opacity="null" stroke-width="0" fill="#000000">NIC2</text>
+ <text stroke="#000" transform="matrix(0.4371257876803068,0,0,0.6973431388181265,223.6990186363727,31.828115819425847) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_9" y="42.292073" x="-417.420836" stroke-opacity="null" stroke-width="0" fill="#000000">NIC3</text>
+ <rect id="svg_10" height="82" width="78" y="2.808165" x="159.75" stroke-width="1.5" stroke="#000" fill="#CC7C65"/>
+ <rect id="svg_11" height="82" width="78" y="21.808165" x="178.75" stroke-width="1.5" stroke="#000" fill="#CE7975"/>
+ <rect id="svg_12" height="82" width="78" y="44.808165" x="195.75" stroke-width="1.5" stroke="#000" fill="#8B4D4B"/>
+ <text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_13" y="98.808165" x="218.75" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">TX</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_14" y="146.808165" x="168.75" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">Core1</text>
+ <text stroke="#000" transform="matrix(0.47219348024375296,0,0,0.8034176367619965,-95.87709913037096,-156.57412588945806) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_15" y="217.105524" x="547.514971" stroke-opacity="null" stroke-width="0" fill="#000000">NIC1</text>
+ <text stroke="#000" transform="matrix(0.36155684245002734,0,0,0.9358925757041695,98.13283890389599,-176.01445723901463) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_16" y="231.580355" x="235.672461" stroke-opacity="null" stroke-width="0" fill="#000000">NIC2</text>
+ <text stroke="#000" transform="matrix(0.4371257876803068,0,0,0.6973431388181265,223.6990186363727,31.828115819425847) " font-style="italic" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_17" y="45.160101" x="-53.681142" stroke-opacity="null" stroke-width="0" fill="#000000">NIC3</text>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_sample_app_model.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_sample_app_model.svg
new file mode 100644
index 000000000..b876aa3b6
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_sample_app_model.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="1418" height="379" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>sample application model</title>
+ <rect fill="#fff" id="canvas_background" height="381" width="1420" y="-1" x="-1"/>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect stroke="#000" id="svg_84" height="378.999996" width="1417.999937" y="0" x="0" stroke-opacity="null" stroke-width="0" fill="#B1FFFF"/>
+ <rect stroke="#000" id="svg_1" height="79.999993" width="187.000011" y="267" x="635.499996" stroke-opacity="null" stroke-width="0" fill="#9ACEE6"/>
+ <rect stroke="#000" id="svg_14" height="28.000001" width="175.000003" y="271.437495" x="641" stroke-opacity="null" stroke-width="0" fill="#FFB27C"/>
+ <rect stroke="#000" id="svg_16" height="36.000002" width="142" y="304.437495" x="659" stroke-opacity="null" stroke-width="0" fill="#FFE7A2"/>
+ <text stroke="#000" transform="matrix(0.7497134942573729,0,0,0.7607963681117937,149.70768863149087,72.0554119542491) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_18" y="335.740664" x="684.214296"
+ stroke-opacity="null" stroke-width="0" fill="#000000">Health Check</text>
+ <text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_23" y="368.437495" x="685"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 7</text>
+ <text stroke="#000" transform="matrix(0.7446371555386645,0,0,0.7004599746900311,157.05848471617847,107.2548065316271) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_25" y="261.052167" x="658.840014"
+ stroke-opacity="null" stroke-width="0" fill="#000000">Stats Collector</text>
+ <rect id="svg_26" height="91" width="88" y="89.4375" x="2"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#FFA9A2"/>
+ <rect id="svg_27" height="91" width="88" y="107.4375" x="24"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#CE7975"/>
+ <text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_28" y="166.4375" x="52"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">RX</text>
+ <text stroke="#000" transform="matrix(0.6111111044883728,0,0,0.6666666865348816,14.972222477197647,39.14583100005984) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_30" y="96.937501" x="-11.409091"
+ stroke-opacity="null" stroke-width="0" fill="#000000">NIC 1</text>
+ <text stroke="#000" transform="matrix(0.6111111044883728,0,0,0.6666666865348816,14.972222477197647,39.14583100005984) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_33" y="128.4375" x="27.863636"
+ stroke-opacity="null" stroke-width="0" fill="#000000">NIC 2</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_34" y="216.4375" x="26"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core0</text>
+ <rect id="svg_35" height="91" width="88" y="55.4375" x="1303"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#FFA9A2"/>
+ <rect id="svg_36" height="91" width="88" y="73.4375" x="1325"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#CE7975"/>
+ <text style="cursor: move;" xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_37" y="132.4375" x="1352"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">TX</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_40" y="184.4375" x="1327"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core1</text>
+ <text stroke="#000" transform="matrix(0.6111111044883728,0,0,0.6296296119689941,200.86111453175545,24.236112266778946) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_43" y="74.319853" x="1811.681832"
+ stroke-opacity="null" stroke-width="0" fill="#000000">NIC 1</text>
+ <text stroke="#000" transform="matrix(0.6958672408102909,0,0,0.6184720487972513,537.7539486343405,-28.040291137315034) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_44" y="191.620936" x="1140.58332"
+ stroke-opacity="null" stroke-width="0" fill="#000000">NIC 2</text>
+ <rect stroke="#000" id="svg_45" height="62" width="83.000003" y="101.4375" x="1096"
+ stroke-opacity="null" stroke-width="0" fill="#9ACEE6"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_46" y="135.4375" x="1115"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">QoS</text>
+ <rect stroke="#000" id="svg_48" height="61" width="107" y="110.4375" x="649"
+ stroke-opacity="null" stroke-width="0" fill="#9ACEE6"/>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_49" y="145.4375" x="661"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#ffffff">Crypto</text>
+ <rect stroke="#000" id="svg_50" height="70.999998" width="84.000002" y="65.4375" x="422"
+ stroke-opacity="null" stroke-width="0" fill="#FFE7A2"/>
+ <rect stroke="#000" id="svg_51" height="74.000003" width="90.000002" y="92.4375" x="444"
+ stroke-opacity="null" stroke-width="0" fill="#FFB27C"/>
+ <rect stroke="#000" id="svg_52" height="71.999998" width="92" y="120.4375" x="468"
+ stroke-opacity="null" stroke-width="0" fill="#C48157"/>
+ <text stroke="#000" transform="matrix(0.6528342962265015,0,0,0.5925925970077515,63.70490664243698,168.43749817460775) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_53" y="-145.374996" x="553.425418"
+ stroke-opacity="null" stroke-width="0" fill="#000000">Worker 1</text>
+ <text stroke="#000" transform="matrix(0.678871691226959,0,0,0.6666666865348816,166.69894686341286,-165.52084343507886) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_54" y="417.437503" x="420.257696" stroke-opacity="null" stroke-width="0" fill="#000000">Worker 2</text>
+ <text stroke="#000" transform="matrix(0.7483048439025879,0,0,0.7407407164573669,76.38947987556458,153.33566251024604) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_55" y="-19.012521" x="530.011964"
+ stroke-opacity="null" stroke-width="0" fill="#000000">Worker 3</text>
+ <rect stroke="#000" id="svg_62" height="70.999998" width="84.000002" y="67.4375" x="865"
+ stroke-opacity="null" stroke-width="0" fill="#FFE7A2"/>
+ <rect stroke="#000" id="svg_63" height="74.000003" width="90.000002" y="94.4375" x="887"
+ stroke-opacity="null" stroke-width="0" fill="#FFB27C"/>
+ <rect stroke="#000" id="svg_64" height="71.999998" width="92" y="122.4375" x="911"
+ stroke-opacity="null" stroke-width="0" fill="#C48157"/>
+ <text stroke="#000" transform="matrix(0.6528342962265015,0,0,0.5925925970077515,63.70490664243698,168.43749817460775) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_65" y="-143.687496" x="1238.132093"
+ stroke-opacity="null" stroke-width="0" fill="#000000">Worker 1</text>
+ <text stroke="#000" transform="matrix(0.678871691226959,0,0,0.6666666865348816,166.69894686341286,-165.52084343507886) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_66" y="420.437503" x="1072.811052"
+ stroke-opacity="null" stroke-width="0" fill="#000000">Worker 2</text>
+ <text stroke="#000" transform="matrix(0.7483048439025879,0,0,0.7407407164573669,76.38947987556458,153.33566251024604) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_67" y="-16.312521" x="1122.016685"
+ stroke-opacity="null" stroke-width="0" fill="#000000">Worker 3</text>
+ <path stroke="#000" id="svg_68" d="m653.747516,12.862181l19.36745,-10.781877l77.632553,0l0,53.999988l-97.000004,0l0,-43.218111z"
+ stroke-opacity="null" stroke-width="0" fill="#805064"/>
+ <text stroke="#000" transform="matrix(0.733815550804138,0,0,0.9629629850387573,306.63544338941574,-1.3912058547139168) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_69" y="33.322117" x="496.534253"
+ stroke-opacity="null" stroke-width="0" fill="#ffffff">Device</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_70" y="217.4375" x="457"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 2,3,4</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_71" y="197.4375" x="653"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 5</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_72" y="186.4375" x="1097"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 6</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_73" y="220.4375" x="885"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 2,3,4</text>
+ <rect stroke="#000" id="svg_74" height="88.000002" width="110.999999" y="104" x="206.000001"
+ stroke-opacity="null" stroke-width="0" fill="#9ACEE6"/>
+ <text stroke="#000" transform="matrix(0.5661651903991256,0,0,1,107.56695064249905,0) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_75" y="133" x="182.901935"
+ stroke-opacity="null" stroke-width="0" fill="#000000">PKT classify</text>
+ <text stroke="#000" transform="matrix(0.5444634556770325,0,0,1,115.93405053019524,0) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_76" y="170" x="196.644877"
+ stroke-opacity="null" stroke-width="0" fill="#000000">Distribute</text>
+ <path id="svg_77" d="m189.755816,142.38346l-9.615746,-5.572568l0,6.200627l-17.256831,0c-3.021555,0.226504 -8.238368,-3.212549 -14.038725,-7.775916c-5.840892,-4.328677 -12.516173,-9.639678 -21.454022,-9.781769l-6.013302,0l0,9.884674l6.013302,0c4.377316,-0.12767 9.774825,3.325816 15.521285,7.782201c2.14196,1.556776 4.3024,3.274261 6.59165,4.824928c-2.28925,1.552703 -4.447123,3.272244 -6.59165,4.829053c-5.746457,4.44398 -11.143969,7.905694 -15.51563,7.780055l-6.018955,0l0,9.899092l6.015865,0c8.91886,-0.125542 15.596722,-5.450935 21.456596,-9.773453c5.800879,-4.563453 11.01514,-8.004512 14.039247,-7.782119l17.251176,0l0,6.200569l9.615746,-5.566299l9.621368,-5.570396l-9.621368,-5.578676l-0.000005,-0.000003z"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#619E73"/>
+ <path id="svg_78" d="m417.79301,181.072084l13.604178,-5.205736l-13.604178,-5.203742l-13.60709,-5.201786l0,5.786911c-3.569394,-0.003899 -9.48466,-0.003899 -11.161519,-0.003899c-4.954616,-0.078306 -8.206513,-1.105708 -11.590595,-2.945338c-5.043959,-2.745716 -9.348773,-7.687237 -14.54043,-12.448672c-2.640478,-2.367977 -5.58224,-4.716439 -9.50016,-6.604946c-3.878767,-1.896386 -8.946375,-3.211512 -14.579566,-3.186066l-24.41645,0l0,9.245023l24.41645,0c3.395131,0.041097 5.543836,0.774963 8.474533,2.595032c4.335842,2.706583 8.563147,7.88095 14.393505,12.783335c5.71366,4.855376 14.505736,9.757754 27.25778,9.804723l11.246452,0l0,5.786895l13.60709,-5.201732zm-57.554046,-35.013272c0.15434,0.072423 0.317546,0.135019 0.468152,0.209421c4.65338,2.242732 8.013781,4.994346 10.673477,7.387791c0.611391,0.559679 1.153382,1.097877 1.733756,1.647811l31.071571,0l0,5.788888l13.60709,-5.201813l13.604178,-5.203713l-13.604178,-5.205701l-13.60709,-5.207671l0,5.784986l-43.946955,0z"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#619E73"/>
+ <path stroke="#000" transform="rotate(89.46277618408203 605.7476806640625,144.42587280273435) " id="svg_79" d="m590.864808,144.339395l14.882874,-35.951591l14.882874,35.951591l-7.441438,0l0,36.124583l-14.882873,0l0,-36.124583l-7.441438,0z" stroke-opacity="null" stroke-width="0" fill="#619E73"/>
+ <path stroke="#000" transform="rotate(89.74066925048828 697.6382446289062,81.67762756347659) " id="svg_80" d="m661.638136,81.677665l20.874103,-13.000079l0,6.500022l30.252035,0l0,-6.500022l20.874093,13.000079l-20.874093,13.000009l0,-6.500005l-30.252035,0l0,6.500005l-20.874103,-13.000009z" fill-opacity="null"
+ stroke-opacity="null" stroke-width="0" fill="#619E73"/>
+ <path id="svg_81" d="m858.79301,172.072084l13.604178,-5.205736l-13.604178,-5.203742l-13.60709,-5.201786l0,5.786911c-3.569394,-0.0039 -9.48466,-0.0039 -11.161519,-0.0039c-4.954616,-0.078305 -8.206513,-1.105708 -11.590595,-2.945338c-5.043959,-2.745715 -9.348773,-7.687236 -14.54043,-12.448672c-2.640477,-2.367977 -5.58224,-4.716438 -9.50016,-6.604945c-3.878767,-1.896387 -8.946375,-3.211513 -14.579566,-3.186067l-24.416451,0l0,9.245023l24.416451,0c3.395131,0.041097 5.543836,0.774963 8.474533,2.595032c4.335842,2.706583 8.563147,7.88095 14.393505,12.783335c5.713661,4.855376 14.505736,9.757754 27.257781,9.804723l11.246451,0l0,5.786894l13.60709,-5.201732zm-57.554045,-35.013272c0.15434,0.072424 0.317546,0.135019 0.468152,0.209421c4.65338,2.242731 8.013781,4.994346 10.673477,7.38779c0.61139,0.559679 1.153381,1.097878 1.733756,1.647812l31.07157,0l0,5.788888l13.60709,-5.201812l13.604178,-5.203713l-13.604178,-5.205701l-13.60709,-5.207671l0,5.784986l-43.946955,0z"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#619E73"/>
+ <path id="svg_82" d="m1080.755816,127.38346l-9.615746,-5.572567l0,6.200627l-17.256831,0c-3.021555,0.226504 -8.238368,-3.212549 -14.038725,-7.775916c-5.840892,-4.328677 -12.516173,-9.639678 -21.454022,-9.78177l-6.013302,0l0,9.884674l6.013302,0c4.377316,-0.12767 9.774825,3.325816 15.521285,7.782201c2.141959,1.556776 4.3024,3.274261 6.59165,4.824928c-2.28925,1.552704 -4.447123,3.272244 -6.59165,4.829053c-5.746457,4.443981 -11.143969,7.905694 -15.51563,7.780055l-6.018955,0l0,9.899093l6.015865,0c8.91886,-0.125543 15.596723,-5.450935 21.456596,-9.773454c5.800879,-4.563453 11.01514,-8.004512 14.039246,-7.782119l17.251177,0l0,6.20057l9.615746,-5.566299l9.621368,-5.570397l-9.621368,-5.578676l-0.000006,-0.000003z"
+ stroke-opacity="null" stroke-width="0" stroke="#000" fill="#619E73"/>
+ <path stroke="#000" id="svg_83" d="m1269.963506,163.318859l13.567973,-4.653717l13.56088,-4.655631l-13.568064,-4.658919l-13.560793,-4.655342l0,5.177292c-3.323905,0 -7.186364,0 -8.480362,0c-6.169502,0.103377 -13.784287,-2.785121 -21.885448,-6.508723c-3.019981,-1.3056 -6.066761,-2.741979 -9.295919,-4.03897c3.229159,-1.298581 6.271574,-2.733309 9.295919,-4.038867c8.101162,-3.718456 15.715942,-6.612144 21.877492,-6.506938l8.488314,-0.001741l0,5.18423l13.560793,-4.6572l13.568064,-4.660782l-13.568064,-4.665774l-13.560793,-4.658938l0,5.180918l-8.483954,0c-12.6011,0.104929 -22.018599,4.557333 -30.259422,8.175926c-8.180795,3.81841 -15.53428,6.693008 -19.799052,6.506997l-24.328718,0l0,8.27074l24.336702,0c4.261113,-0.187837 11.618288,2.688631 19.798299,6.506933c8.237215,3.620425 17.651098,8.069132 30.25579,8.175987l8.480362,0l0,5.182516l0,0l0,0.000002z" fill-opacity="null"
+ stroke-opacity="null" stroke-width="0" fill="#619E73"/>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/dtg_service.svg b/src/spdk/dpdk/doc/guides/howto/img/dtg_service.svg
new file mode 100644
index 000000000..fa72de823
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/dtg_service.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Method Draw (https://editor.method.ac/) -->
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2018-2019 Intel Corporation -->
+
+<svg width="254" height="145" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <title>service</title>
+ <rect fill="#fff" id="canvas_background" height="147" width="256" y="-1" x="-1"/>
+ </g>
+ <g>
+ <title>Layer 1</title>
+ <rect stroke="#000" id="svg_1" height="109.999987" width="254.000014" y="0" x="0" stroke-opacity="null" stroke-width="0" fill="#9ACEE6"/>
+ <rect stroke="#000" id="svg_14" height="37.000001" width="225" y="7.437494" x="4.5" stroke-opacity="null" stroke-width="0" fill="#FFB27C"/>
+ <rect stroke="#000" id="svg_16" height="45.000002" width="186.000003" y="58.437493" x="33.5" stroke-opacity="null" stroke-width="0" fill="#FFE7A2"/>
+ <text stroke="#000" transform="matrix(1.0013854504218995,0,0,1.0926463039877063,73.76856116958965,-122.08861649089796) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_18" y="193.234194" x="-35.792216" stroke-opacity="null" stroke-width="0" fill="#000000">Health Check</text>
+ <text xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_23" y="138.437495" x="45.5" stroke-opacity="null" stroke-width="0" stroke="#000" fill="#000000">core 6</text>
+ <text stroke="#000" transform="matrix(1.0013854504218995,0,0,1.0926463039877063,73.76856116958965,-122.08861649089796) " xml:space="preserve" text-anchor="start" font-family="'Courier New', Courier, monospace" font-size="24" id="svg_25" y="141.982476" x="-63.753477" stroke-opacity="null" stroke-width="0" fill="#000000">Stats Collector</text>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/flow_bifurcation_overview.svg b/src/spdk/dpdk/doc/guides/howto/img/flow_bifurcation_overview.svg
new file mode 100644
index 000000000..4fa27648d
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/flow_bifurcation_overview.svg
@@ -0,0 +1,544 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generated by Microsoft Visio, SVG Export bifurcated_driver_overview.svg Page-1 -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="6.71874in"
+ height="4.83839in"
+ viewBox="0 0 483.75 348.364"
+ xml:space="preserve"
+ color-interpolation-filters="sRGB"
+ class="st28"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="bifurcated_driver_overview.svg"><metadata
+ id="metadata240"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1600"
+ inkscape:window-height="837"
+ id="namedview238"
+ showgrid="false"
+ inkscape:zoom="1.0517845"
+ inkscape:cx="215.35622"
+ inkscape:cy="200.74714"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g44" /><style
+ type="text/css"
+ id="style4"><![CDATA[
+ .st1 {visibility:visible}
+ .st2 {fill:none;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
+ .st3 {fill:#5b9bd5;filter:url(#filter_2);font-family:Calibri;font-size:1.16666em;font-weight:bold;opacity:0.219608}
+ .st4 {fill:none;stroke:#c7c8c8;stroke-width:0.5}
+ .st5 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-weight:bold}
+ .st6 {fill:#5b9bd5;filter:url(#filter_2);font-family:Calibri;font-size:1.5em;opacity:0.219608}
+ .st7 {fill:#000000;font-family:Calibri;font-size:1.5em}
+ .st8 {fill:#a8d08d;stroke:#4f87bb;stroke-width:0.75}
+ .st9 {fill:#000000;font-family:Calibri;font-size:0.833336em}
+ .st10 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
+ .st11 {fill:#c00000;stroke:#c7c8c8;stroke-width:0.25}
+ .st12 {fill:#feffff;font-family:Calibri;font-size:0.833336em}
+ .st13 {font-size:1em}
+ .st14 {fill:#ff0000;font-size:1em;font-weight:bold}
+ .st15 {fill:#2e75b5;stroke:#c7c8c8;stroke-width:0.25}
+ .st16 {fill:url(#grad4-50);stroke:#c7c8c8;stroke-width:0.25}
+ .st17 {fill:#feffff;font-family:Calibri;font-size:0.666664em}
+ .st18 {fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25}
+ .st19 {fill:#000000;font-family:Calibri;font-size:1.16666em}
+ .st20 {marker-end:url(#mrkr13-84);marker-start:url(#mrkr13-82);stroke:#c00000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+ .st21 {fill:#c00000;fill-opacity:1;stroke:#c00000;stroke-opacity:1;stroke-width:0.28409090909091}
+ .st22 {marker-end:url(#mrkr4-90);stroke:#c00000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+ .st23 {marker-start:url(#mrkr13-106);stroke:#538135;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75}
+ .st24 {fill:#538135;fill-opacity:1;stroke:#538135;stroke-opacity:1;stroke-width:0.40983606557377}
+ .st25 {marker-start:url(#mrkr13-112);stroke:#5b9bd5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75}
+ .st26 {fill:#5b9bd5;fill-opacity:1;stroke:#5b9bd5;stroke-opacity:1;stroke-width:0.40983606557377}
+ .st27 {fill:none;stroke:none;stroke-width:0.25}
+ .st28 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]></style><defs
+ id="Patterns_And_Gradients"><radialGradient
+ id="grad4-50"
+ cx="0.5"
+ cy="0"
+ r="1.1"><stop
+ offset="0"
+ stop-color="#a8d08d"
+ stop-opacity="1"
+ id="stop8" /><stop
+ offset="0.24"
+ stop-color="#bedcaa"
+ stop-opacity="1"
+ id="stop10" /><stop
+ offset="0.59"
+ stop-color="#3374af"
+ stop-opacity="1"
+ id="stop12" /><stop
+ offset="0.75"
+ stop-color="#41719c"
+ stop-opacity="1"
+ id="stop14" /><stop
+ offset="1"
+ stop-color="#c5e0b3"
+ stop-opacity="1"
+ id="stop16" /></radialGradient></defs><defs
+ id="Markers"><g
+ id="lend13"><path
+ d="M 3 1 L 0 0 L 3 -1 L 3 1 "
+ style="stroke:none"
+ id="path20" /></g><marker
+ id="mrkr13-82"
+ class="st21"
+ refX="10.2"
+ orient="auto"
+ markerUnits="strokeWidth"
+ overflow="visible"><use
+ xlink:href="#lend13"
+ transform="scale(3.52) "
+ id="use23" /></marker><marker
+ id="mrkr13-84"
+ class="st21"
+ refX="-10.56"
+ orient="auto"
+ markerUnits="strokeWidth"
+ overflow="visible"><use
+ xlink:href="#lend13"
+ transform="scale(-3.52,-3.52) "
+ id="use26" /></marker><g
+ id="lend4"><path
+ d="M 2 1 L 0 0 L 2 -1 L 2 1 "
+ style="stroke:none"
+ id="path29" /></g><marker
+ id="mrkr4-90"
+ class="st21"
+ refX="-7.04"
+ orient="auto"
+ markerUnits="strokeWidth"
+ overflow="visible"><use
+ xlink:href="#lend4"
+ transform="scale(-3.52,-3.52) "
+ id="use32" /></marker><marker
+ id="mrkr13-106"
+ class="st24"
+ refX="7.1142857142857"
+ orient="auto"
+ markerUnits="strokeWidth"
+ overflow="visible"><use
+ xlink:href="#lend13"
+ transform="scale(2.44) "
+ id="use35" /></marker><marker
+ id="mrkr13-112"
+ class="st26"
+ refX="7.1142857142857"
+ orient="auto"
+ markerUnits="strokeWidth"
+ overflow="visible"><use
+ xlink:href="#lend13"
+ transform="scale(2.44) "
+ id="use38" /></marker></defs><defs
+ id="Filters"><filter
+ id="filter_2"><feGaussianBlur
+ stdDeviation="2"
+ id="feGaussianBlur42" /></filter></defs><g
+ id="g44"><title
+ id="title46">Page-1</title><g
+ id="shape85-1"
+ transform="translate(133.887,-26.1478)"><title
+ id="title49">Sheet.85</title><desc
+ id="desc51">NIC</desc><g
+ id="shadow85-2"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ class="st1"><rect
+ x="0"
+ y="255.497"
+ width="346.142"
+ height="92.8673"
+ class="st2"
+ id="rect54" /><text
+ x="162.89"
+ y="349.33"
+ class="st3"
+ id="text56">NIC</text>
+</g><rect
+ x="0"
+ y="255.497"
+ width="346.142"
+ height="92.8673"
+ class="st4"
+ id="rect58"
+ style="stroke-width:0.50000076;stroke-miterlimit:3;stroke-dasharray:none" /><text
+ x="162.89"
+ y="349.33"
+ class="st5"
+ id="text60">NIC</text>
+</g><g
+ id="shape20-9"
+ transform="translate(3.0289,-127.458)"><title
+ id="title63">Rounded Rectangle.20</title><desc
+ id="desc65">LINUX</desc><g
+ id="shadow20-10"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ class="st1"><path
+ d="M30.39 348.36 L273.54 348.36 A30.3924 30.3924 -180 0 0 303.93 317.97 L303.93 235.23 A30.3924 30.3924 -180 0 0 273.54 204.84 L30.39 204.84 A30.3924 30.3924 -180 0 0 0 235.23 L0 317.97 A30.3924 30.3924 -180 0 0 30.39 348.36 Z"
+ class="st2"
+ id="path68" /><text
+ x="255.32"
+ y="238.8"
+ class="st6"
+ id="text70">LINUX</text>
+</g><path
+ d="M30.39 348.36 L273.54 348.36 A30.3924 30.3924 -180 0 0 303.93 317.97 L303.93 235.23 A30.3924 30.3924 -180 0 0 273.54 204.84 L30.39 204.84 A30.3924 30.3924 -180 0 0 0 235.23 L0 317.97 A30.3924 30.3924 -180 0 0 30.39 348.36 Z"
+ class="st4"
+ id="path72" /><text
+ x="255.32"
+ y="238.8"
+ class="st7"
+ id="text74">LINUX</text>
+</g><g
+ id="shape8-17"
+ transform="translate(95.8962,-140.079)"><title
+ id="title77">Rounded Rectangle.8</title><desc
+ id="desc79">Kernel pf driver</desc><path
+ d="M18.57 348.36 L167.16 348.36 A18.5731 18.5731 -180 0 0 185.73 329.79 L185.73 303.58 A18.5731 18.5731 -180 0 0 167.16 285 L18.57 285 A18.5731 18.5731 -180 0 0 0 303.58 L0 329.79 A18.5731 18.5731 -180 0 0 18.57 348.36 Z"
+ class="st8"
+ id="path81" /><text
+ x="118.71"
+ y="319.68"
+ class="st9"
+ id="text83">Kernel pf driver </text>
+</g><g
+ id="shape1-20"
+ transform="translate(103.263,-156.88)"><title
+ id="title86">Rounded Rectangle</title><desc
+ id="desc88">Filters support traffic steering to VF</desc><g
+ id="shadow1-21"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ class="st1"><path
+ d="M10.55 348.36 L94.98 348.36 A10.5529 10.5529 -180 0 0 105.53 337.81 L105.53 324.98 A10.5529 10.5529 -180 0 0 94.98 314.43 L10.55 314.43 A10.5529 10.5529 -180 0 0 0 324.98 L0 337.81 A10.5529 10.5529 -180 0 0 10.55 348.36 Z"
+ class="st10"
+ id="path91" /></g><path
+ d="M10.55 348.36 L94.98 348.36 A10.5529 10.5529 -180 0 0 105.53 337.81 L105.53 324.98 A10.5529 10.5529 -180 0 0 94.98 314.43 L10.55 314.43 A10.5529 10.5529 -180 0 0 0 324.98 L0 337.81 A10.5529 10.5529 -180 0 0 10.55 348.36 Z"
+ class="st11"
+ id="path93" /><text
+ x="10.03"
+ y="328.39"
+ class="st12"
+ id="text95"
+ style="-inkscape-font-specification:'Calibri, Normal';font-family:Calibri;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:10.00001526px;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%;"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4475">Filters support traffic</tspan></text>
+<text
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00001526px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#feffff"
+ x="11.048484"
+ y="340.46152"
+ class="st12"
+ id="text95-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4477"
+ x="11.048484"
+ y="340.46152">steering to VF</tspan></text>
+</g><g
+ id="shape3-27"
+ transform="translate(192.985,-73.088)"><title
+ id="title100">Rectangle.3</title><desc
+ id="desc102">Rx Queues (0-N) PF</desc><rect
+ x="0"
+ y="314.425"
+ width="75.9823"
+ height="33.9388"
+ class="st8"
+ id="rect104" /><text
+ x="16.43"
+ y="322.39"
+ class="st9"
+ id="text106"
+ style="-inkscape-font-specification:'Calibri, Normal';font-family:Calibri;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:10.00001526px;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%;"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4512">Rx Queues</tspan></text>
+<text
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00001526px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+ x="23.187859"
+ y="333.70471"
+ class="st9"
+ id="text106-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4514"
+ x="23.187859"
+ y="333.70471">( 0-N )</tspan></text>
+<text
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00001526px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"
+ x="27.490538"
+ y="345.52356"
+ class="st9"
+ id="text106-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4516"
+ x="27.490538"
+ y="345.52356"> PF</tspan></text>
+</g><g
+ id="shape4-32"
+ transform="translate(344.949,-73.088)"><title
+ id="title113">Rectangle.4</title><desc
+ id="desc115">Rx Queues (0-M) VF(vf 0)</desc><g
+ id="shadow4-33"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ class="st1"><rect
+ x="0"
+ y="314.425"
+ width="75.9823"
+ height="33.9388"
+ class="st10"
+ id="rect118" /></g><rect
+ x="0"
+ y="314.425"
+ width="75.9823"
+ height="33.9388"
+ class="st15"
+ id="rect120" /><text
+ x="16.43"
+ y="322.39"
+ class="st9"
+ id="text122"
+ style="-inkscape-font-specification:'Calibri, Normal';font-family:Calibri;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:10.00001526px;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%;"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4571">Rx Queues</tspan></text>
+<text
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00001526px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+ x="21.777092"
+ y="333.69595"
+ class="st9"
+ id="text122-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4569"
+ x="21.777092"
+ y="333.69595">( 0-M )</tspan></text>
+<text
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00001526px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff0000;fill-opacity:1"
+ x="21.79059"
+ y="343.91479"
+ class="st9"
+ id="text122-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4573"
+ x="21.79059"
+ y="343.91479">VF(vf0)</tspan></text>
+</g><g
+ id="shape5-44"
+ transform="translate(154.994,-43.0328)"><title
+ id="title137">Rectangle.5</title><desc
+ id="desc139">filters</desc><g
+ id="shadow5-45"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ class="st1"><rect
+ x="0"
+ y="331.479"
+ width="303.929"
+ height="16.885"
+ class="st10"
+ id="rect142" /></g><rect
+ x="0"
+ y="331.479"
+ width="303.929"
+ height="16.885"
+ class="st16"
+ id="rect144" /><text
+ x="140.28"
+ y="342.92"
+ class="st9"
+ id="text146">filters</text>
+</g><g
+ id="shape6-52"
+ transform="translate(95.8962,-224.377)"><title
+ id="title149">Rounded Rectangle.6</title><desc
+ id="desc151">Tools to program filters</desc><path
+ d="m 7.6,347.29783 60.78,0 a 7.59811,7.59811 0 0 0 7.6,-7.59 l 0,-18.58 a 7.59811,7.59811 0 0 0 -7.6,-7.6 l -60.78,0 a 7.59811,7.59811 0 0 0 -7.6,7.6 l 0,18.58 a 7.59811,7.59811 0 0 0 7.6,7.59 z"
+ class="st8"
+ id="path153"
+ inkscape:connector-curvature="0"
+ style="fill:#a8d08d;stroke:#4f87bb;stroke-width:0.75" /><text
+ x="21.74"
+ y="328.48001"
+ class="st9"
+ id="text155"
+ style="font-size:10.00003242px;font-family:Calibri;fill:#000000">Tools to <tspan
+ x="7.6900001"
+ class="st13"
+ id="tspan157"
+ style="font-size:10.00003242px" /></text>
+<text
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00001526px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000"
+ x="23.40806"
+ y="340.79666"
+ class="st9"
+ id="text155-1"
+ sodipodi:linespacing="125%"><tspan
+ x="9.358057"
+ class="st13"
+ id="tspan157-9"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00001526px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">program filters</tspan></text>
+</g><g
+ id="shape22-56"
+ transform="translate(11.4714,-156.88)"><title
+ id="title160">2-D word balloon</title><desc
+ id="desc162">Director flows to queue index in specified VF</desc><text
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.0000124px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#feffff"
+ x="8.0559683"
+ y="346.97244"
+ class="st17"
+ id="text169-3-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4471"
+ x="8.0559683"
+ y="346.97244">inspecified VF</tspan></text>
+<g
+ id="shadow22-57"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ class="st1"><path
+ d="M0 327.15 L0 314.43 L28.49 314.43 L37.99 314.43 L47.49 314.43 L75.98 314.43 L75.98 327.15 L91.79 331.39 L75.98 335.64 L75.98 348.36 L47.49 348.36 L37.99 348.36 L28.49 348.36 L0 348.36 L0 335.64 L0 331.39 L0 327.15 Z"
+ class="st10"
+ id="path165" /></g><path
+ d="m 0.53783484,327.68783 0,-12.72 28.49000016,0 9.5,0 9.5,0 28.49,0 0,12.72 15.81,4.24 -15.81,4.25 0,12.72 -28.49,0 -9.5,0 -9.5,0 -28.49000016,0 0,-12.72 0,-4.25 0,-4.24 z"
+ class="st11"
+ id="path167"
+ inkscape:connector-curvature="0"
+ style="fill:#c00000;stroke:#c7c8c8;stroke-width:0.25" /><text
+ x="7.5599966"
+ y="324.19"
+ class="st17"
+ id="text169"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.0000124px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#feffff"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4446"
+ x="7.5599966"
+ y="324.19">Director flows</tspan></text>
+<text
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.0000124px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#feffff"
+ x="8.1099777"
+ y="334.57529"
+ class="st17"
+ id="text169-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4469"
+ x="8.1099777"
+ y="334.57529">to queue index</tspan></text>
+<text
+ x="8.5350533"
+ y="345.4624"
+ class="st17"
+ id="text169-5"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.00001221px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr;text-anchor:start;fill:#feffff;"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4479">in specified VF</tspan></text>
+</g><g
+ id="shape24-64"
+ transform="translate(323.843,-285.05)"><title
+ id="title176">Rounded Rectangle.24</title><desc
+ id="desc178">DPDK</desc><g
+ id="shadow24-65"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ class="st1"><path
+ d="M9.29 348.36 L83.58 348.36 A9.28657 9.28657 -180 0 0 92.87 339.08 L92.87 295.74 A9.28657 9.28657 -180 0 0 83.58 286.45 L9.29 286.45 A9.28657 9.28657 -180 0 0 0 295.74 L0 339.08 A9.28657 9.28657 -180 0 0 9.29 348.36 Z"
+ class="st10"
+ id="path181" /></g><path
+ d="M9.29 348.36 L83.58 348.36 A9.28657 9.28657 -180 0 0 92.87 339.08 L92.87 295.74 A9.28657 9.28657 -180 0 0 83.58 286.45 L9.29 286.45 A9.28657 9.28657 -180 0 0 0 295.74 L0 339.08 A9.28657 9.28657 -180 0 0 9.29 348.36 Z"
+ class="st18"
+ id="path183" /><text
+ x="30.57"
+ y="321.61"
+ class="st19"
+ id="text185">DPDK</text>
+</g><g
+ id="shape25-70"
+ transform="translate(192.985,-285.05)"><title
+ id="title188">Rounded Rectangle.25</title><desc
+ id="desc190">Socket</desc><path
+ d="M9.29 348.36 L83.58 348.36 A9.28657 9.28657 -180 0 0 92.87 339.08 L92.87 295.74 A9.28657 9.28657 -180 0 0 83.58 286.45 L9.29 286.45 A9.28657 9.28657 -180 0 0 0 295.74 L0 339.08 A9.28657 9.28657 -180 0 0 9.29 348.36 Z"
+ class="st8"
+ id="path192" /><text
+ x="27.56"
+ y="321.61"
+ class="st19"
+ id="text194">Socket</text>
+</g><g
+ id="shape44-73"
+ transform="translate(154.994,569.271) rotate(180)"><title
+ id="title197">Simple Arrow.44</title><g
+ id="shadow44-74"
+ transform="matrix(1,0,0,1,-0.345598,-1.97279)"
+ class="st1" /></g><g
+ id="shape52-75"
+ transform="translate(154.994,-127.458)"><title
+ id="title201">Single arrowhead</title></g><g
+ id="shape70-76"
+ transform="translate(221.976,-107.027)"><title
+ id="title204">Dynamic connector.70</title><path
+ d="M9 338.16 L9 337.8 L9 325.87"
+ class="st20"
+ id="path206" /></g><g
+ id="shape81-85"
+ transform="translate(124.887,-224.377)"><title
+ id="title209">Dynamic connector.81</title><path
+ d="M9 348.36 L9 362.26"
+ class="st22"
+ id="path211" /></g><g
+ id="shape83-91"
+ transform="translate(240.398,-57.5029)"><title
+ id="title214">Dynamic connector.83</title><path
+ d="M-8.58 345.95 L-8.97 339.8"
+ class="st22"
+ id="path216" /></g><g
+ id="shape84-96"
+ transform="translate(373.94,-57.5029)"><title
+ id="title219">Dynamic connector.84</title><path
+ d="M9 345.95 L9 339.82"
+ class="st22"
+ id="path221" /></g><g
+ id="shape98-101"
+ transform="translate(539.29,6.22333) rotate(79.2209)"><title
+ id="title224">Sheet.98</title><path
+ d="M11.39 310.28 L11.72 310.42 C54.22 328.18 100.77 337.63 149.11 345.35 C162.41 347.48 175.84 349.47 187.65 347.74 C201.36 345.74 212.87 338.71 218.42 327.59 C222.66 319.09 223.42 308.2 229.69 303.23 C239.2 295.7 261.37 301.76 275.96 305.26"
+ class="st23"
+ id="path226" /></g><g
+ id="shape109-107"
+ transform="translate(712.298,124.855) rotate(100.2)"><title
+ id="title229">Sheet.109</title><path
+ d="M12.03 344.31 L12.38 344.21 C55.98 332.05 99.42 314.86 144.33 309.38 C167.01 306.62 190.06 306.85 204.84 318.11 C212.98 324.32 218.61 333.88 226.49 339.83 C238.38 348.81 255.38 349.56 275.91 347.51"
+ class="st25"
+ id="path231" /></g><g
+ id="shape110-113"
+ transform="translate(108.779,-175.962)"><title
+ id="title234">Sheet.110</title><rect
+ x="0"
+ y="341.614"
+ width="94.5"
+ height="6.75"
+ class="st27"
+ id="rect236" /></g></g></svg> \ No newline at end of file
diff --git a/src/spdk/dpdk/doc/guides/howto/img/lm_bond_virtio_sriov.svg b/src/spdk/dpdk/doc/guides/howto/img/lm_bond_virtio_sriov.svg
new file mode 100644
index 000000000..d913ae012
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/lm_bond_virtio_sriov.svg
@@ -0,0 +1,666 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1052.8693"
+ height="762.99158"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="lm_overview.svg">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 372.04724 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1052.3622 : 372.04724 : 1"
+ inkscape:persp3d-origin="526.18109 : 248.03149 : 1"
+ id="perspective3886" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.70710678"
+ inkscape:cx="201.38434"
+ inkscape:cy="397.3839"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1432"
+ inkscape:window-height="1000"
+ inkscape:window-x="137"
+ inkscape:window-y="20"
+ inkscape:window-maximized="0"
+ inkscape:snap-page="false"
+ inkscape:snap-grids="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.3">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3174"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ originx="1780.3521px"
+ originy="-176.4939px" />
+ <sodipodi:guide
+ position="1780.3521,-176.4939"
+ orientation="0,744.09448"
+ id="guide3176" />
+ <sodipodi:guide
+ position="2524.4467,-176.4939"
+ orientation="-1052.3622,0"
+ id="guide3178" />
+ <sodipodi:guide
+ position="3103.2093,1429.2206"
+ orientation="0,-744.09448"
+ id="guide3180" />
+ <sodipodi:guide
+ position="826.06645,1429.2206"
+ orientation="1052.3622,0"
+ id="guide3182" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="2524.4467,565.50611"
+ id="guide3079" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="2494.3521,579.00611"
+ id="guide3081" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="2437.3521,579.00611"
+ id="guide3083" />
+ <sodipodi:guide
+ position="-8.2192466,-76.99225"
+ orientation="0,4077.6428"
+ id="guide3649" />
+ <sodipodi:guide
+ position="4069.4236,-76.99225"
+ orientation="-1720.5,0"
+ id="guide3651" />
+ <sodipodi:guide
+ position="4069.4236,1643.5079"
+ orientation="0,-4077.6428"
+ id="guide3653" />
+ <sodipodi:guide
+ position="-8.2192466,1643.5079"
+ orientation="1720.5,0"
+ id="guide3655" />
+ <sodipodi:guide
+ position="-8.2192466,-76.99225"
+ orientation="0,4077.6428"
+ id="guide3657" />
+ <sodipodi:guide
+ position="4069.4236,-76.99225"
+ orientation="-1720.5,0"
+ id="guide3659" />
+ <sodipodi:guide
+ position="4069.4236,1643.5079"
+ orientation="0,-4077.6428"
+ id="guide3661" />
+ <sodipodi:guide
+ position="-8.2192466,1643.5079"
+ orientation="1720.5,0"
+ id="guide3663" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(1780.3522,-112.87834)">
+ <rect
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:0.36521944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect2985"
+ width="349.80563"
+ height="212.77235"
+ x="-1780.0696"
+ y="115.28934"
+ ry="38.183765" />
+ <rect
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:1.5459187px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect3755"
+ width="0"
+ height="0"
+ x="-629.48682"
+ y="1001.1993" />
+ <rect
+ style="fill:#0000ff;fill-opacity:1"
+ id="rect3191"
+ width="358.58792"
+ height="214.06038"
+ x="-1087.5042"
+ y="112.97834"
+ ry="38.183765" />
+ <rect
+ style="fill:#a000ff;fill-opacity:1"
+ id="rect3195"
+ width="350.58966"
+ height="174.45921"
+ x="-1779.1808"
+ y="349.60342"
+ ry="39.59798" />
+ <rect
+ style="fill:#a000ff;fill-opacity:1"
+ id="rect3197"
+ width="357.25491"
+ height="170.35497"
+ x="-1084.8379"
+ y="353.79617"
+ ry="38.183765" />
+ <rect
+ style="fill:#a000ff;fill-opacity:1"
+ id="rect3199"
+ width="687.849"
+ height="55.655697"
+ x="-1603.3909"
+ y="687.73035"
+ ry="24.04163" />
+ <rect
+ style="fill:#a000ff;fill-opacity:1"
+ id="rect3201"
+ width="447.90167"
+ height="50.114544"
+ x="-1488.6338"
+ y="825.45538"
+ ry="19.658308" />
+ <rect
+ style="opacity:0.60399996;fill:#0000ff;fill-opacity:1"
+ id="rect3046"
+ width="135.97015"
+ height="38.530865"
+ x="-1679.87"
+ y="524.00964" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1565.7183"
+ y="170.28043"
+ id="text3052"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-310.5984"
+ inkscape:transform-center-y="14.984243"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3054"
+ x="-1565.7183"
+ y="170.28043">VM 1 </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1268.2957"
+ y="803.349"
+ id="text3056"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-645.19167"
+ inkscape:transform-center-y="8.043534"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3058"
+ x="-1268.2957"
+ y="803.349">Switch with 10Gb ports</tspan><tspan
+ sodipodi:role="line"
+ x="-1268.2957"
+ y="826.53778"
+ id="tspan3060" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1573.7157"
+ y="433.78815"
+ id="text3062"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3064"
+ x="-1573.7157"
+ y="433.78815">Server 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-947.12897"
+ y="434.55573"
+ id="text3066"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3068"
+ x="-947.12897"
+ y="434.55573">Server 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1251.1786"
+ y="957.94836"
+ id="text3070"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3072"
+ x="-1251.1786"
+ y="957.94836"> 10 Gb Traffic Generator</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20.1229248px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1016.8596"
+ y="162.4848"
+ id="text3074"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0288342,0.97197394)"
+ inkscape:transform-center-x="-374.58424"
+ inkscape:transform-center-y="19.26541"><tspan
+ sodipodi:role="line"
+ id="tspan3076"
+ x="-1016.8596"
+ y="162.4848">VM 2 </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1576.4685"
+ y="479.5618"
+ id="text3078"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-405.24435"
+ transform="scale(1.1160112,0.89604835)"
+ inkscape:transform-center-y="-3.0408919e-05"><tspan
+ sodipodi:role="line"
+ id="tspan3080"
+ x="-1576.4685"
+ y="479.5618">Linux, KVM, QEMU </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-947.05627"
+ y="476.78903"
+ id="text3082"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3084"
+ x="-947.05627"
+ y="476.78903">Linux, KVM, QEMU </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.93562508px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1574.15"
+ y="575.35333"
+ id="text3086"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-152.77712"
+ inkscape:transform-center-y="6.9586675"
+ transform="scale(1.052991,0.94967575)"><tspan
+ sodipodi:role="line"
+ id="tspan3088"
+ x="-1574.15"
+ y="575.35333">10 Gb NIC</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-855.08612"
+ y="613.58636"
+ id="text3090"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-174.62846"
+ transform="scale(1.1160112,0.89604834)"
+ inkscape:transform-center-y="2.3462468e-05"><tspan
+ sodipodi:role="line"
+ id="tspan3092"
+ x="-855.08612"
+ y="613.58636">10 Gb NIC</tspan></text>
+ <rect
+ style="opacity:0.60199998;fill:#0000ff;fill-opacity:1"
+ id="rect3094"
+ width="125.30582"
+ height="38.530865"
+ x="-1427.5106"
+ y="437.27979" />
+ <rect
+ style="opacity:0.60799997;fill:#0000ff;fill-opacity:1"
+ id="rect3096"
+ width="111.97541"
+ height="41.741772"
+ x="-1196.8135"
+ y="437.27979" />
+ <text
+ xml:space="preserve"
+ style="font-size:19.30730629px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1322.4871"
+ y="491.82611"
+ id="text3098"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0722964,0.93257795)"
+ inkscape:transform-center-x="-27.993731"
+ inkscape:transform-center-y="-6.9674825"><tspan
+ sodipodi:role="line"
+ id="tspan3100"
+ x="-1322.4871"
+ y="491.82611">10 Gb NIC</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1071.2081"
+ y="513.09308"
+ id="text3102"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-670.51946"
+ inkscape:transform-center-y="150.91262"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3104"
+ x="-1071.2081"
+ y="513.09308">10 Gb NIC</tspan></text>
+ <rect
+ style="fill:#7878ff;fill-opacity:1"
+ id="rect3106"
+ width="257.27686"
+ height="100.60838"
+ x="-1043.5138"
+ y="187.8994" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-912.34381"
+ y="232.86263"
+ id="text3108"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3110"
+ x="-912.34381"
+ y="232.86263">DPDK Testpmd App.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-912.34381"
+ y="274.9668"
+ id="text3880"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3882"
+ x="-912.34381"
+ y="274.9668">bonded device with</tspan><tspan
+ sodipodi:role="line"
+ x="-912.34381"
+ y="298.15558"
+ id="tspan3884">virtio and VF slaves</tspan></text>
+ <rect
+ style="fill:#7878ff;fill-opacity:1"
+ id="rect3106-4"
+ width="257.27686"
+ height="100.60838"
+ x="-1748.0256"
+ y="184.68852" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1541.4333"
+ y="233.58643"
+ id="text3108-9"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3110-5"
+ x="-1541.4333"
+ y="233.58643">DPDK Testpmd App.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1541.4845"
+ y="274.63931"
+ id="text3880-7"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3882-9"
+ x="-1541.4845"
+ y="274.63931">bonded device with</tspan><tspan
+ sodipodi:role="line"
+ x="-1541.4845"
+ y="297.82809"
+ id="tspan3884-8">virtio and VF slaves</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1576.4685"
+ y="504.73169"
+ id="text3951"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3953"
+ x="-1576.4685"
+ y="504.73169">Kernel PF driver</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-947.43506"
+ y="500.51361"
+ id="text3951-4"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3953-0"
+ x="-947.43506"
+ y="500.51361">Kernel PF driver</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1575.308"
+ y="548.3703"
+ id="text3976-9"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3978-3"
+ x="-1575.308"
+ y="548.3703">SW bridge with Tap</tspan><tspan
+ sodipodi:role="line"
+ x="-1575.308"
+ y="571.55908"
+ id="tspan3075">and PF connected </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1203.7942"
+ y="195.3643"
+ id="text4007"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan4009"
+ x="-1203.7942"
+ y="195.3643">NFS Server</tspan><tspan
+ sodipodi:role="line"
+ x="-1203.7942"
+ y="218.55309"
+ id="tspan4011">VM disk image</tspan><tspan
+ sodipodi:role="line"
+ x="-1203.7942"
+ y="241.74187"
+ id="tspan4013" /></text>
+ <rect
+ style="opacity:0.45833333;fill:#a000ff;fill-opacity:1"
+ id="rect4015"
+ width="193.29091"
+ height="94.186569"
+ x="-1353.4641"
+ y="134.34897"
+ ry="22.627417" />
+ <rect
+ style="opacity:0.45833333;fill:#a000ff;fill-opacity:1"
+ id="rect3070"
+ width="17.329529"
+ height="11.773321"
+ x="-1278.1288"
+ y="744.45654" />
+ <rect
+ style="opacity:0.45833333;fill:#a000ff;fill-opacity:1"
+ id="rect3070-3"
+ width="19.995611"
+ height="11.773321"
+ x="-1280.1283"
+ y="813.47321" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.44584394px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m -1270.1392,756.51119 0.5585,54.21449"
+ id="path3090"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="3" />
+ <rect
+ style="opacity:0.61458333;fill:#0000ff;fill-opacity:1"
+ id="rect3046-7"
+ width="135.97015"
+ height="38.530865"
+ x="-978.67279"
+ y="523.78949" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880"
+ width="14.663447"
+ height="11.773321"
+ x="-1622.0532"
+ y="563.57544" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-8"
+ width="14.663447"
+ height="11.773321"
+ x="-914.96075"
+ y="564.21674" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-6"
+ width="14.663447"
+ height="11.773321"
+ x="-1482.7505"
+ y="674.35162" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-9"
+ width="14.663447"
+ height="11.773321"
+ x="-1198.8129"
+ y="720.37451" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-99"
+ width="14.663447"
+ height="11.773321"
+ x="-1085.5045"
+ y="674.35175" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-82"
+ width="14.663447"
+ height="11.773321"
+ x="-1301.4569"
+ y="452.79913" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-0"
+ width="14.663447"
+ height="11.773321"
+ x="-1210.8103"
+ y="452.79922" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.49161923px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m -1612.063,574.09703 136.6956,98.10634"
+ id="path3946"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="3" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.62650716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m -906.09206,573.4328 -171.08524,98.7457"
+ id="path3948"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="3" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.54592061px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m -1291.5381,459.322 88.4734,2e-5"
+ id="path3950"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="3" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-947.30841"
+ y="544.97314"
+ id="text3976-9-5"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3978-3-7"
+ x="-947.30841"
+ y="544.97314">SW bridge with Tap</tspan><tspan
+ sodipodi:role="line"
+ x="-947.30841"
+ y="568.16193"
+ id="tspan3075-1">and PF connected </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1220.5167"
+ y="460.53635"
+ id="text3101"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3103"
+ x="-1220.5167"
+ y="460.53635">10 Gb Migration Link</tspan></text>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3085"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ transform="matrix(1.7252629,0,0,1.3852181,-1778.0192,-314.07213)"><flowRegion
+ id="flowRegion3087"><rect
+ id="rect3089"
+ width="1"
+ height="41.5"
+ x="-1"
+ y="701.59448" /></flowRegion><flowPara
+ id="flowPara3091" /></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot3093"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ transform="matrix(1.7252629,0,0,1.3852181,-1778.0192,-314.07213)"><flowRegion
+ id="flowRegion3095"><rect
+ id="rect3097"
+ width="1"
+ height="41"
+ x="-1.5"
+ y="700.59448" /></flowRegion><flowPara
+ id="flowPara3099" /></flowRoot> </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/lm_vhost_user.svg b/src/spdk/dpdk/doc/guides/howto/img/lm_vhost_user.svg
new file mode 100644
index 000000000..3601cf115
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/lm_vhost_user.svg
@@ -0,0 +1,644 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1052.8693"
+ height="762.99158"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="lm_vhost_user.svg">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 372.04724 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1052.3622 : 372.04724 : 1"
+ inkscape:persp3d-origin="526.18109 : 248.03149 : 1"
+ id="perspective3886" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.70710678"
+ inkscape:cx="201.38434"
+ inkscape:cy="401.97681"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1515"
+ inkscape:window-height="1092"
+ inkscape:window-x="141"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:snap-page="false"
+ inkscape:snap-grids="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ fit-margin-top="0.1"
+ fit-margin-left="0.1"
+ fit-margin-right="0.1"
+ fit-margin-bottom="0.3">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3174"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ originx="1780.3521px"
+ originy="-176.4939px" />
+ <sodipodi:guide
+ position="1780.3521,-176.4939"
+ orientation="0,744.09448"
+ id="guide3176" />
+ <sodipodi:guide
+ position="2524.4467,-176.4939"
+ orientation="-1052.3622,0"
+ id="guide3178" />
+ <sodipodi:guide
+ position="3103.2093,1429.2206"
+ orientation="0,-744.09448"
+ id="guide3180" />
+ <sodipodi:guide
+ position="826.06645,1429.2206"
+ orientation="1052.3622,0"
+ id="guide3182" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="2524.4467,565.50611"
+ id="guide3079" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="2494.3521,579.00611"
+ id="guide3081" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="2437.3521,579.00611"
+ id="guide3083" />
+ <sodipodi:guide
+ position="-8.2192466,-76.99225"
+ orientation="0,4077.6428"
+ id="guide3649" />
+ <sodipodi:guide
+ position="4069.4236,-76.99225"
+ orientation="-1720.5,0"
+ id="guide3651" />
+ <sodipodi:guide
+ position="4069.4236,1643.5079"
+ orientation="0,-4077.6428"
+ id="guide3653" />
+ <sodipodi:guide
+ position="-8.2192466,1643.5079"
+ orientation="1720.5,0"
+ id="guide3655" />
+ <sodipodi:guide
+ position="-8.2192466,-76.99225"
+ orientation="0,4077.6428"
+ id="guide3657" />
+ <sodipodi:guide
+ position="4069.4236,-76.99225"
+ orientation="-1720.5,0"
+ id="guide3659" />
+ <sodipodi:guide
+ position="4069.4236,1643.5079"
+ orientation="0,-4077.6428"
+ id="guide3661" />
+ <sodipodi:guide
+ position="-8.2192466,1643.5079"
+ orientation="1720.5,0"
+ id="guide3663" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(1780.3522,-112.87834)">
+ <rect
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:0.36521944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect2985"
+ width="349.80563"
+ height="212.77235"
+ x="-1780.0696"
+ y="115.28934"
+ ry="38.183765" />
+ <rect
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#000000;stroke-width:1.5459187px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect3755"
+ width="0"
+ height="0"
+ x="-629.48682"
+ y="1001.1993" />
+ <rect
+ style="fill:#0000ff;fill-opacity:1"
+ id="rect3191"
+ width="358.58792"
+ height="214.06038"
+ x="-1087.5042"
+ y="112.97834"
+ ry="38.183765" />
+ <rect
+ style="fill:#a000ff;fill-opacity:1"
+ id="rect3195"
+ width="350.58966"
+ height="174.45921"
+ x="-1779.1808"
+ y="349.60342"
+ ry="39.59798" />
+ <rect
+ style="fill:#a000ff;fill-opacity:1"
+ id="rect3197"
+ width="357.25491"
+ height="170.35497"
+ x="-1084.8379"
+ y="353.79617"
+ ry="38.183765" />
+ <rect
+ style="fill:#a000ff;fill-opacity:1"
+ id="rect3199"
+ width="687.849"
+ height="55.655697"
+ x="-1603.3909"
+ y="687.73035"
+ ry="24.04163" />
+ <rect
+ style="fill:#a000ff;fill-opacity:1"
+ id="rect3201"
+ width="447.90167"
+ height="50.114544"
+ x="-1488.6338"
+ y="825.45538"
+ ry="19.658308" />
+ <rect
+ style="opacity:0.60399996;fill:#0000ff;fill-opacity:1"
+ id="rect3046"
+ width="135.97015"
+ height="38.530865"
+ x="-1679.87"
+ y="524.00964" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1565.7183"
+ y="170.28043"
+ id="text3052"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-310.5984"
+ inkscape:transform-center-y="14.984243"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3054"
+ x="-1565.7183"
+ y="170.28043">VM 1 </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1268.2957"
+ y="803.349"
+ id="text3056"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-645.19167"
+ inkscape:transform-center-y="8.043534"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3058"
+ x="-1268.2957"
+ y="803.349">Switch with 10Gb ports</tspan><tspan
+ sodipodi:role="line"
+ x="-1268.2957"
+ y="826.53778"
+ id="tspan3060" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1573.7157"
+ y="433.78815"
+ id="text3062"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3064"
+ x="-1573.7157"
+ y="433.78815">Server 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-947.12897"
+ y="434.55573"
+ id="text3066"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3068"
+ x="-947.12897"
+ y="434.55573">Server 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1251.1786"
+ y="957.94836"
+ id="text3070"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3072"
+ x="-1251.1786"
+ y="957.94836"> 10 Gb Traffic Generator</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20.1229248px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1016.8596"
+ y="162.4848"
+ id="text3074"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0288342,0.97197394)"
+ inkscape:transform-center-x="-374.58424"
+ inkscape:transform-center-y="19.26541"><tspan
+ sodipodi:role="line"
+ id="tspan3076"
+ x="-1016.8596"
+ y="162.4848">VM 2 </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1575.2013"
+ y="479.56177"
+ id="text3078"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-405.24435"
+ transform="scale(1.1160112,0.89604835)"
+ inkscape:transform-center-y="-3.0408919e-05"><tspan
+ sodipodi:role="line"
+ id="tspan3080"
+ x="-1575.2013"
+ y="479.56177">Linux, KVM, QEMU 2.5 </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.93562508px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-906.26202"
+ y="579.8208"
+ id="text3086"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-152.77712"
+ inkscape:transform-center-y="6.9586675"
+ transform="scale(1.052991,0.94967574)"><tspan
+ sodipodi:role="line"
+ id="tspan3088"
+ x="-906.26202"
+ y="579.8208">10 Gb NIC</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1493.7568"
+ y="613.58636"
+ id="text3090"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-174.62846"
+ transform="scale(1.1160112,0.89604835)"
+ inkscape:transform-center-y="2.3462468e-05"><tspan
+ sodipodi:role="line"
+ id="tspan3092"
+ x="-1493.7568"
+ y="613.58636">10 Gb NIC</tspan></text>
+ <rect
+ style="opacity:0.60199998;fill:#0000ff;fill-opacity:1"
+ id="rect3094"
+ width="125.30582"
+ height="38.530865"
+ x="-1427.5106"
+ y="437.27979" />
+ <rect
+ style="opacity:0.60799997;fill:#0000ff;fill-opacity:1"
+ id="rect3096"
+ width="111.97541"
+ height="41.741772"
+ x="-1196.8135"
+ y="437.27979" />
+ <text
+ xml:space="preserve"
+ style="font-size:19.30730629px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1322.4871"
+ y="491.82611"
+ id="text3098"
+ sodipodi:linespacing="125%"
+ transform="scale(1.0722964,0.93257795)"
+ inkscape:transform-center-x="-27.993731"
+ inkscape:transform-center-y="-6.9674825"><tspan
+ sodipodi:role="line"
+ id="tspan3100"
+ x="-1322.4871"
+ y="491.82611">10 Gb NIC</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1071.2081"
+ y="513.09308"
+ id="text3102"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-670.51946"
+ inkscape:transform-center-y="150.91262"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3104"
+ x="-1071.2081"
+ y="513.09308">10 Gb NIC</tspan></text>
+ <rect
+ style="fill:#7878ff;fill-opacity:1"
+ id="rect3106"
+ width="277.07584"
+ height="86.466248"
+ x="-1043.5138"
+ y="187.8994" />
+ <rect
+ style="fill:#7878ff;fill-opacity:1"
+ id="rect3106-4"
+ width="268.59058"
+ height="85.052032"
+ x="-1748.0256"
+ y="184.68852" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1557.907"
+ y="233.58643"
+ id="text3108-9"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3110-5"
+ x="-1557.907"
+ y="233.58643">DPDK Testpmd App</tspan><tspan
+ sodipodi:role="line"
+ x="-1557.907"
+ y="256.77521"
+ id="tspan3347" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1556.5636"
+ y="253.73872"
+ id="text3880-7"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3882-9"
+ x="-1556.5636"
+ y="253.73872" /><tspan
+ sodipodi:role="line"
+ x="-1556.5636"
+ y="276.92749"
+ id="tspan3884-8">DPDK virtio PMD's </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1575.2013"
+ y="525.24933"
+ id="text3951"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3953"
+ x="-1575.2013"
+ y="525.24933">DPDK PF PMD and vhost_user</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-948.70227"
+ y="524.18781"
+ id="text3951-4"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3953-0"
+ x="-948.70227"
+ y="524.18781">DPDK PF PMD and vhost_user</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1203.7942"
+ y="195.3643"
+ id="text4007"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan4009"
+ x="-1203.7942"
+ y="195.3643">NFS Server</tspan><tspan
+ sodipodi:role="line"
+ x="-1203.7942"
+ y="218.55309"
+ id="tspan4011">VM disk image</tspan><tspan
+ sodipodi:role="line"
+ x="-1203.7942"
+ y="241.74187"
+ id="tspan4013" /></text>
+ <rect
+ style="opacity:0.45833333;fill:#a000ff;fill-opacity:1"
+ id="rect4015"
+ width="193.29091"
+ height="94.186569"
+ x="-1353.4641"
+ y="134.34897"
+ ry="22.627417" />
+ <rect
+ style="opacity:0.45833333;fill:#a000ff;fill-opacity:1"
+ id="rect3070"
+ width="17.329529"
+ height="11.773321"
+ x="-1278.1288"
+ y="744.45654" />
+ <rect
+ style="opacity:0.45833333;fill:#a000ff;fill-opacity:1"
+ id="rect3070-3"
+ width="19.995611"
+ height="11.773321"
+ x="-1280.1283"
+ y="813.47321" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.44584394px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m -1270.1392,756.51119 0.5585,54.21449"
+ id="path3090"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="3" />
+ <rect
+ style="opacity:0.59895833;fill:#0000ff;fill-opacity:1"
+ id="rect3046-7"
+ width="135.97015"
+ height="38.530865"
+ x="-981.50122"
+ y="523.78949" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880"
+ width="14.663447"
+ height="11.773321"
+ x="-1622.0532"
+ y="563.57544" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-8"
+ width="14.663447"
+ height="11.773321"
+ x="-914.96075"
+ y="564.21674" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-6"
+ width="14.663447"
+ height="11.773321"
+ x="-1482.7505"
+ y="674.35162" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-9"
+ width="14.663447"
+ height="11.773321"
+ x="-1198.8129"
+ y="720.37451" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-99"
+ width="14.663447"
+ height="11.773321"
+ x="-1085.5045"
+ y="674.35175" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-82"
+ width="14.663447"
+ height="11.773321"
+ x="-1301.4569"
+ y="452.79913" />
+ <rect
+ style="opacity:0.59375;fill:#a000ff;fill-opacity:1"
+ id="rect3880-0"
+ width="14.663447"
+ height="11.773321"
+ x="-1210.8103"
+ y="452.79922" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.49161923px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m -1612.063,574.09703 136.6956,98.10634"
+ id="path3946"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="3" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.62650716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m -906.09206,573.4328 -171.08524,98.7457"
+ id="path3948"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="3" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.54592061px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m -1291.5381,459.322 88.4734,2e-5"
+ id="path3950"
+ inkscape:connector-type="polyline"
+ inkscape:connector-curvature="3" />
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-1220.5167"
+ y="460.53635"
+ id="text3101"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604834)"><tspan
+ sodipodi:role="line"
+ id="tspan3103"
+ x="-1220.5167"
+ y="460.53635">10 Gb Migration Link</tspan></text>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3085"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ transform="matrix(1.7252629,0,0,1.3852181,-1778.0192,-314.07213)"><flowRegion
+ id="flowRegion3087"><rect
+ id="rect3089"
+ width="1"
+ height="41.5"
+ x="-1"
+ y="701.59448" /></flowRegion><flowPara
+ id="flowPara3091" /></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot3093"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ transform="matrix(1.7252629,0,0,1.3852181,-1778.0192,-314.07213)"><flowRegion
+ id="flowRegion3095"><rect
+ id="rect3097"
+ width="1"
+ height="41"
+ x="-1.5"
+ y="700.59448" /></flowRegion><flowPara
+ id="flowPara3099" /></flowRoot> <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-927.84314"
+ y="233.94818"
+ id="text3108-9-3"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3110-5-6"
+ x="-927.84314"
+ y="233.94818">DPDK Testpmd App</tspan><tspan
+ sodipodi:role="line"
+ x="-927.84314"
+ y="257.13696"
+ id="tspan3347-7" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-928.51379"
+ y="255.71736"
+ id="text3880-7-5"
+ sodipodi:linespacing="125%"
+ transform="scale(1.1160112,0.89604835)"><tspan
+ sodipodi:role="line"
+ id="tspan3882-9-3"
+ x="-928.51379"
+ y="255.71736" /><tspan
+ sodipodi:role="line"
+ x="-928.51379"
+ y="278.90616"
+ id="tspan3884-8-5">DPDK virtio PMD's </tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:18.55102539px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="-947.67664"
+ y="476.70486"
+ id="text3078-6"
+ sodipodi:linespacing="125%"
+ inkscape:transform-center-x="-405.24435"
+ transform="scale(1.1160112,0.89604835)"
+ inkscape:transform-center-y="-3.0408919e-05"><tspan
+ sodipodi:role="line"
+ id="tspan3080-2"
+ x="-947.67664"
+ y="476.70486">Linux, KVM, QEMU 2.5 </tspan></text>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/packet_capture_framework.svg b/src/spdk/dpdk/doc/guides/howto/img/packet_capture_framework.svg
new file mode 100644
index 000000000..a76baf71f
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/packet_capture_framework.svg
@@ -0,0 +1,471 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="120mm"
+ height="80mm"
+ viewBox="0 0 425.19685 283.46457"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="drawing-pcap.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7773"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path7775"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7679"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path7681"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(1.1,0,0,1.1,1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7583"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path7585"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7501"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path7503"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(1.1,0,0,1.1,1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7421"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path7423"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(1.1,0,0,1.1,1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7331"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path7333"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7265"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path7267"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker7199"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Lstart">
+ <path
+ transform="matrix(1.1,0,0,1.1,1.1,0)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path7201"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker7111"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path7113"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path5820"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(1.1,0,0,1.1,1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path5823"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient5784"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#1e5dae;stop-opacity:1;"
+ offset="0"
+ id="stop5786" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5741"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5743" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5735"
+ osb:paint="solid">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop5737" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5741"
+ id="linearGradient5745"
+ x1="167.94293"
+ y1="226.05743"
+ x2="263.39221"
+ y2="226.05743"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-77.340273,715.61336)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5784"
+ id="linearGradient5788"
+ x1="392.19681"
+ y1="258.38232"
+ x2="487.64606"
+ y2="258.38232"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-84.916417,744.90779)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5784"
+ id="linearGradient5788-1"
+ x1="392.19681"
+ y1="258.38232"
+ x2="487.64606"
+ y2="258.38232"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2713979,0,0,0.99644866,-421.24046,743.3)" />
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker6152-5"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path6154-8"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(1.1,0,0,1.1,1.1,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker6152-6"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path6154-2"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(1.1,0,0,1.1,1.1,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.57434918"
+ inkscape:cx="215.17857"
+ inkscape:cy="285.26445"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1874"
+ inkscape:window-height="971"
+ inkscape:window-x="2"
+ inkscape:window-y="24"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-768.89764)">
+ <rect
+ style="fill:#000000;fill-opacity:0"
+ id="rect3336"
+ width="527.29962"
+ height="395.97977"
+ x="98.994949"
+ y="57.361946" />
+ <rect
+ style="fill:#000000;fill-opacity:0;stroke:#257cdc;stroke-width:4;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4148"
+ width="222.39552"
+ height="150.6747"
+ x="29.402397"
+ y="790.82452" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="61.050636"
+ y="807.3205"
+ id="text4152"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4154"
+ x="61.050636"
+ y="807.3205">DPDK Primary Application</tspan></text>
+ <rect
+ style="fill:#000000;fill-opacity:0;stroke:#257cdc;stroke-width:2;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4156-6"
+ width="94.449265"
+ height="35.355339"
+ x="305.76007"
+ y="827.01843" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="350.68585"
+ y="841.16058"
+ id="text4189"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4191"
+ x="350.68585"
+ y="841.16058">dpdk-pdump</tspan><tspan
+ sodipodi:role="line"
+ x="350.68585"
+ y="856.78558"
+ id="tspan4193">tool</tspan></text>
+ <rect
+ style="fill:#000000;fill-opacity:0;stroke:#257cdc;stroke-width:2;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4156-6-4"
+ width="94.449265"
+ height="35.355339"
+ x="307.78033"
+ y="891.16315" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="352.70612"
+ y="905.3053"
+ id="text4189-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="352.70612"
+ y="905.3053"
+ id="tspan4193-3">PCAP PMD</tspan></text>
+ <rect
+ style="fill:url(#linearGradient5745);fill-opacity:1;stroke:#257cdc;stroke-width:2;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4156-6-6"
+ width="94.449265"
+ height="35.355339"
+ x="91.102669"
+ y="923.9931" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.02846"
+ y="938.13525"
+ id="text4189-0"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="136.02846"
+ y="938.13525"
+ id="tspan4193-6">dpdk_port0</tspan></text>
+ <rect
+ style="fill:#000000;fill-opacity:0;stroke:#257cdc;stroke-width:2;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4156-6-5"
+ width="94.449265"
+ height="35.355339"
+ x="92.617897"
+ y="824.99817" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="137.54369"
+ y="839.14026"
+ id="text4189-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="137.54369"
+ y="839.14026"
+ id="tspan4193-2">librte_pdump</tspan></text>
+ <rect
+ style="fill:url(#linearGradient5788);fill-opacity:1;stroke:#257cdc;stroke-width:1;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4156-6-4-5"
+ width="94.449265"
+ height="35.355339"
+ x="307.7804"
+ y="985.61243" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="352.70618"
+ y="999.75458"
+ id="text4189-1-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="352.70618"
+ y="999.75458"
+ id="tspan4193-3-2">capture.pcap</tspan></text>
+ <rect
+ style="fill:url(#linearGradient5788-1);fill-opacity:1;stroke:#257cdc;stroke-width:1.12555885;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4156-6-4-5-1"
+ width="120.0826"
+ height="35.229782"
+ x="78.03347"
+ y="983.14984" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="136.53352"
+ y="1002.785"
+ id="text4189-1-8-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="136.53352"
+ y="1002.785"
+ id="tspan4193-3-2-7">Traffic Generator</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker7331)"
+ d="m 351.46948,927.02357 c 0,57.5787 0,57.5787 0,57.5787"
+ id="path7329"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+ d="m 349.44918,862.37381 c 0,28.28427 0,28.28427 0,28.28427"
+ id="path7405"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7421)"
+ d="m 134.79176,960.86368 c 0,22.72844 0,22.22336 0,22.22336"
+ id="path7419"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7501);marker-end:url(#marker7583)"
+ d="m 136.30295,923.75113 c 0,-63.57143 0,-63.57143 0,-63.57143"
+ id="path7499"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7679);marker-end:url(#marker7773)"
+ d="m 187.01723,841.96541 c 118.21429,0 118.21429,0 118.21429,0"
+ id="path7677"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/pvp_2nics.svg b/src/spdk/dpdk/doc/guides/howto/img/pvp_2nics.svg
new file mode 100644
index 000000000..517a80084
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/pvp_2nics.svg
@@ -0,0 +1,556 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="127.46428mm"
+ height="139.41411mm"
+ viewBox="0 0 451.64508 493.987"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.92pre2 r"
+ sodipodi:docname="pvp_2nics.svg"
+ inkscape:export-filename="/home/max/Pictures/dpdk/pvp/pvp.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker4760"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4762"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker4642"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4644"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker10370"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path10372"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker10306"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path10308"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker9757"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path9759"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4224"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4227"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-1"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4227-27"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-9"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4224-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker9757-0"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path9759-6"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-6"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4224-0"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-62"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4227-6"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker10370-7"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path10372-9"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:isstock="true"
+ style="overflow:visible"
+ id="marker9757-2"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path9759-0"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lstart-9-2"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4224-3-3"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(0.8,0,0,0.8,10,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend-1-7"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4227-27-5"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="206.7485"
+ inkscape:cy="227.93958"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:object-nodes="true"
+ inkscape:window-width="1916"
+ inkscape:window-height="1040"
+ inkscape:window-x="0"
+ inkscape:window-y="38"
+ inkscape:window-maximized="0"
+ inkscape:snap-grids="true"
+ inkscape:snap-to-guides="true"
+ inkscape:snap-others="false"
+ inkscape:snap-nodes="false"
+ inkscape:snap-global="false" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-5.3301459,-7.348317)">
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.78969002;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4140"
+ width="434.38919"
+ height="75.295639"
+ x="21.691195"
+ y="404.59354" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="421.47873"
+ y="501.3353"
+ id="text4142"><tspan
+ sodipodi:role="line"
+ id="tspan4144"
+ x="421.47873"
+ y="501.3353"
+ style="font-size:25px;line-height:125%">TE</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.46599996;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4146"
+ width="92.934036"
+ height="32.324883"
+ x="182.57764"
+ y="372.03574" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="183.5878"
+ y="397.28958"
+ id="text4148"><tspan
+ sodipodi:role="line"
+ id="tspan4150"
+ x="183.5878"
+ y="397.28958"
+ style="font-size:25px">10G NIC</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="166.92024"
+ y="451.33276"
+ id="text4152"><tspan
+ sodipodi:role="line"
+ id="tspan4154"
+ x="166.92024"
+ y="451.33276">Moongen</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.39882457;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="449.73071"
+ height="244.32167"
+ x="6.0295582"
+ y="29.046324" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="405.31628"
+ y="25.048317"
+ id="text4158"><tspan
+ sodipodi:role="line"
+ id="tspan4160"
+ x="405.31628"
+ y="25.048317"
+ style="font-size:25px">DUT</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.14168489;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4162"
+ width="418.69415"
+ height="107.50462"
+ x="19.038134"
+ y="41.044758" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="395.38812"
+ y="66.496857"
+ id="text4164"><tspan
+ sodipodi:role="line"
+ id="tspan4166"
+ x="395.38812"
+ y="66.496857"
+ style="font-size:25px">VM</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.46599996;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4146-3"
+ width="92.934036"
+ height="32.324883"
+ x="183.0827"
+ y="274.05093" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="184.09286"
+ y="299.30475"
+ id="text4148-6"><tspan
+ sodipodi:role="line"
+ id="tspan4150-7"
+ x="184.09286"
+ y="299.30475"
+ style="font-size:25px">10G NIC</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.4804399;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4189"
+ width="398.00476"
+ height="65.451302"
+ x="26.901583"
+ y="82.647781" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:25px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="30.683046"
+ y="108.31288"
+ id="text4191"><tspan
+ sodipodi:role="line"
+ id="tspan4193"
+ x="30.683046"
+ y="108.31288">TestPMD</tspan><tspan
+ sodipodi:role="line"
+ x="30.683046"
+ y="139.56288"
+ id="tspan10476">(macswap)</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.49124122;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4189-5"
+ width="397.22263"
+ height="66.152573"
+ x="29.743357"
+ y="207.6543" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:25px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="42.720772"
+ y="231.14902"
+ id="text4191-3"><tspan
+ sodipodi:role="line"
+ id="tspan4193-5"
+ x="42.720772"
+ y="231.14902">TestPMD </tspan><tspan
+ sodipodi:role="line"
+ x="42.720772"
+ y="262.39902"
+ id="tspan9747">(io)</tspan></text>
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97838062px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="M 202.56669,371.44487 V 308.37034"
+ id="path4218"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.97297633px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart)"
+ d="M 252.03098,369.63533 V 307.25568"
+ id="path4218-9"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.92982113px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend-1)"
+ d="M 198.63811,207.44389 V 150.47507"
+ id="path4218-0"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.95360273px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart-9)"
+ d="M 255.56859,206.9303 V 147.01008"
+ id="path4218-9-6"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker9757)"
+ d="M 199.50513,271.00921 V 207.3696"
+ id="path9749"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker10370)"
+ d="M 255.56859,270.56991 V 206.9303"
+ id="path9749-2"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.46599996;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4146-36"
+ width="92.934036"
+ height="32.324883"
+ x="304.05591"
+ y="372.52954" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="305.06607"
+ y="397.78339"
+ id="text4148-7"><tspan
+ sodipodi:role="line"
+ id="tspan4150-5"
+ x="305.06607"
+ y="397.78339"
+ style="font-size:25px">10G NIC</tspan></text>
+ <rect
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.46599996;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4146-3-3"
+ width="92.934036"
+ height="32.324883"
+ x="306.07623"
+ y="273.53461" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="307.0864"
+ y="298.78842"
+ id="text4148-6-5"><tspan
+ sodipodi:role="line"
+ id="tspan4150-7-6"
+ x="307.0864"
+ y="298.78842"
+ style="font-size:25px">10G NIC</tspan></text>
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.97838062px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend-62)"
+ d="M 323.7504,370.24835 V 307.17382"
+ id="path4218-1"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.97297633px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart-6)"
+ d="M 373.21469,368.43881 V 306.05916"
+ id="path4218-9-8"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.92982113px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend-1-7)"
+ d="M 324.93036,207.24894 V 150.28012"
+ id="path4218-0-9"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.95360273px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart-9-2)"
+ d="M 381.86084,206.73535 V 146.81513"
+ id="path4218-9-6-2"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker9757-2)"
+ d="M 325.79738,270.81426 V 207.17465"
+ id="path9749-28"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 1;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker10370-7)"
+ d="M 381.86084,270.37496 V 206.73535"
+ id="path9749-2-9"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4642)"
+ d="M 198.57143,148.79077 V 95.93363 h 182.85714 v 50"
+ id="path3748"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.01005316;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.02010632, 1.01005316;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker4760)"
+ d="m 325.70774,148.78714 v -32.84999 h -70.7012 v 30.70761"
+ id="path4634"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/use_models_for_running_dpdk_in_containers.svg b/src/spdk/dpdk/doc/guides/howto/img/use_models_for_running_dpdk_in_containers.svg
new file mode 100644
index 000000000..662c22660
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/use_models_for_running_dpdk_in_containers.svg
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by Microsoft Visio, SVG Export user_models_for_running_dpdk_in_containers.svg Page-1 -->
+<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"
+ xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="10.6194in" height="4.55593in"
+ viewBox="0 0 764.596 328.027" xml:space="preserve" color-interpolation-filters="sRGB" class="st19">
+ <v:documentProperties v:langID="1033" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {visibility:visible}
+ .st2 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
+ .st3 {fill:#ffffff;stroke:#c7c8c8;stroke-width:0.25}
+ .st4 {fill:#000000;font-family:Calibri;font-size:0.833336em}
+ .st5 {fill:none;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
+ .st6 {fill:none;stroke:#c7c8c8;stroke-width:0.25}
+ .st7 {fill:#d8d8d8;stroke:#c7c8c8;stroke-width:0.25}
+ .st8 {fill:none;stroke:none;stroke-width:0.25}
+ .st9 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic}
+ .st10 {fill:#ed7d31;stroke:#c7c8c8;stroke-width:0.25}
+ .st11 {fill:#feffff;font-family:Calibri;font-size:0.833336em}
+ .st12 {fill:#a5a5a5;stroke:#c7c8c8;stroke-width:0.25}
+ .st13 {marker-end:url(#mrkr4-61);marker-start:url(#mrkr4-59);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+ .st14 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.28409090909091}
+ .st15 {font-size:1em}
+ .st16 {fill:none;filter:url(#filter_2);stroke:#5b9bd5;stroke-dasharray:7,5;stroke-opacity:0.22}
+ .st17 {fill:none;stroke:#ff0000;stroke-dasharray:7,5;stroke-width:1}
+ .st18 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+ .st19 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend4">
+ <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr4-59" class="st14" v:arrowType="4" v:arrowSize="2" v:setback="6.68" refX="6.68" orient="auto"
+ markerUnits="strokeWidth" overflow="visible">
+ <use xlink:href="#lend4" transform="scale(3.52) "/>
+ </marker>
+ <marker id="mrkr4-61" class="st14" v:arrowType="4" v:arrowSize="2" v:setback="7.04" refX="-7.04" orient="auto"
+ markerUnits="strokeWidth" overflow="visible">
+ <use xlink:href="#lend4" transform="scale(-3.52,-3.52) "/>
+ </marker>
+ </defs>
+ <defs id="Filters">
+ <filter id="filter_2">
+ <feGaussianBlur stdDeviation="2"/>
+ </filter>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="0" v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <g id="shape1-1" v:mID="1" v:groupContext="shape" transform="translate(146.2,-258.819)">
+ <title>Rectangle</title>
+ <desc>Container</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="300.937" width="68.1" height="54.1807"/>
+ <g id="shadow1-2" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st2"/>
+ </g>
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st3"/>
+ <text x="14.04" y="291.94" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Container<v:newlineChar/><v:newlineChar/></text> </g>
+ <g id="shape3-7" v:mID="3" v:groupContext="shape" transform="translate(18.25,-169.971)">
+ <title>Rectangle.3</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <g id="shadow3-8" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="270.699" width="306" height="57.3286" rx="13.5" ry="13.5" class="st5"/>
+ </g>
+ <rect x="0" y="270.699" width="306" height="57.3286" rx="13.5" ry="13.5" class="st6"/>
+ </g>
+ <g id="shape4-12" v:mID="4" v:groupContext="shape" transform="translate(18.25,-61)">
+ <title>Rectangle.4</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <g id="shadow4-13" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="256.027" width="306" height="72" rx="13.5" ry="13.5" class="st2"/>
+ </g>
+ <rect x="0" y="256.027" width="306" height="72" rx="13.5" ry="13.5" class="st7"/>
+ </g>
+ <g id="shape5-17" v:mID="5" v:groupContext="shape" transform="translate(17.65,-202.75)">
+ <title>Sheet.5</title>
+ <desc>Host kernel</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="316.777" width="68.1" height="22.5"/>
+ <rect x="0" y="305.527" width="68.1" height="22.5" class="st8"/>
+ <text x="6.55" y="320.38" class="st9" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Host kernel</text> </g>
+ <g id="shape6-20" v:mID="6" v:groupContext="shape" transform="translate(0.25,-110.5)">
+ <title>Sheet.6</title>
+ <desc>NIC</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="316.777" width="68.1" height="22.5"/>
+ <rect x="0" y="305.527" width="68.1" height="22.5" class="st8"/>
+ <text x="25.54" y="320.38" class="st9" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>NIC</text> </g>
+ <g id="shape7-23" v:mID="7" v:groupContext="shape" transform="translate(67.75,-99.3)">
+ <title>Rectangle.7</title>
+ <desc>PF</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="14.625" cy="316.777" width="29.26" height="22.5"/>
+ <g id="shadow7-24" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="305.527" width="29.25" height="22.5" class="st2"/>
+ </g>
+ <rect x="0" y="305.527" width="29.25" height="22.5" class="st10"/>
+ <text x="9.74" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>PF</text> </g>
+ <g id="shape8-29" v:mID="8" v:groupContext="shape" transform="translate(165.625,-99.3)">
+ <title>Rectangle.8</title>
+ <desc>VF</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="14.625" cy="316.777" width="29.26" height="22.5"/>
+ <g id="shadow8-30" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="305.527" width="29.25" height="22.5" class="st2"/>
+ </g>
+ <rect x="0" y="305.527" width="29.25" height="22.5" class="st10"/>
+ <text x="9.49" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VF</text> </g>
+ <g id="shape10-35" v:mID="10" v:groupContext="shape" transform="translate(67.75,-70)">
+ <title>Rectangle.10</title>
+ <desc>Hardware virtual switch</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="112.5" cy="316.777" width="225" height="22.5"/>
+ <g id="shadow10-36" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="305.527" width="225" height="22.5" class="st2"/>
+ </g>
+ <rect x="0" y="305.527" width="225" height="22.5" class="st12"/>
+ <text x="64.07" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Hardware virtual switch</text> </g>
+ <g id="shape14-41" v:mID="14" v:groupContext="shape" transform="translate(238.15,-258.7)">
+ <title>Rectangle.14</title>
+ <desc>Container</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="300.937" width="68.1" height="54.1807"/>
+ <g id="shadow14-42" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st2"/>
+ </g>
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st3"/>
+ <text x="14.04" y="291.94" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Container<v:newlineChar/><v:newlineChar/></text> </g>
+ <g id="shape15-47" v:mID="15" v:groupContext="shape" transform="translate(257.575,-99.2)">
+ <title>Rectangle.15</title>
+ <desc>VF</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="14.625" cy="316.777" width="29.26" height="22.5"/>
+ <g id="shadow15-48" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="305.527" width="29.25" height="22.5" class="st2"/>
+ </g>
+ <rect x="0" y="305.527" width="29.25" height="22.5" class="st10"/>
+ <text x="9.49" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VF</text> </g>
+ <g id="shape16-53" v:mID="16" v:groupContext="shape" v:layerMember="0" transform="translate(263.2,-258.7)">
+ <title>Dynamic connector.16</title>
+ <path d="M9 334.71 L9 335.07 L9 457.99" class="st13"/>
+ </g>
+ <g id="shape18-62" v:mID="18" v:groupContext="shape" transform="translate(54.25,-180.25)">
+ <title>Ellipse</title>
+ <desc>PF driver</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="28.125" cy="316.777" width="49.22" height="19.6875"/>
+ <g id="shadow18-63" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st2"/>
+ </g>
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st10"/>
+ <text x="10.11" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>PF driver</text> </g>
+ <g id="shape19-68" v:mID="19" v:groupContext="shape" v:layerMember="0" transform="translate(73.375,-180.25)">
+ <title>Dynamic connector.19</title>
+ <path d="M9 334.71 L9 335.07 L9 379.44" class="st13"/>
+ </g>
+ <g id="shape20-75" v:mID="20" v:groupContext="shape" transform="translate(152.125,-263.44)">
+ <title>Ellipse.20</title>
+ <desc>DPDK</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="28.125" cy="316.777" width="49.22" height="19.6875"/>
+ <g id="shadow20-76" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st2"/>
+ </g>
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st10"/>
+ <text x="16.79" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>DPDK</text> </g>
+ <g id="shape21-81" v:mID="21" v:groupContext="shape" v:layerMember="0" transform="translate(171.25,-258.819)">
+ <title>Dynamic connector.21</title>
+ <path d="M9 334.71 L9 335.07 L9 458.01" class="st13"/>
+ </g>
+ <g id="shape22-88" v:mID="22" v:groupContext="shape" transform="translate(243.25,-263.44)">
+ <title>Ellipse.22</title>
+ <desc>DPDK</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="28.125" cy="316.777" width="49.22" height="19.6875"/>
+ <g id="shadow22-89" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st2"/>
+ </g>
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st10"/>
+ <text x="16.79" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>DPDK</text> </g>
+ <g id="shape23-94" v:mID="23" v:groupContext="shape" transform="translate(395.65,-254.5)">
+ <title>Rectangle.23</title>
+ <desc>Virtual Appliance</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="300.937" width="68.1" height="54.1807"/>
+ <g id="shadow23-95" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st2"/>
+ </g>
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st3"/>
+ <text x="20.48" y="297.94" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Virtual <tspan
+ x="13.98" dy="1.2em" class="st15">Appliance</tspan></text> </g>
+ <g id="shape25-101" v:mID="25" v:groupContext="shape" transform="translate(476.65,-254.681)">
+ <title>Rectangle.25</title>
+ <desc>VM + Container</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="300.937" width="68.1" height="54.1807"/>
+ <g id="shadow25-102" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st2"/>
+ </g>
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st3"/>
+ <text x="23.32" y="297.94" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM + <tspan x="14.04"
+ dy="1.2em" class="st15">Container</tspan></text> </g>
+ <g id="shape27-108" v:mID="27" v:groupContext="shape" transform="translate(566.65,-254.681)">
+ <title>Rectangle.27</title>
+ <desc>Container</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="300.937" width="68.1" height="54.1807"/>
+ <g id="shadow27-109" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st2"/>
+ </g>
+ <rect x="0" y="273.847" width="68.1" height="54.1807" class="st3"/>
+ <text x="14.04" y="291.94" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Container<v:newlineChar/><v:newlineChar/></text> </g>
+ <g id="shape28-114" v:mID="28" v:groupContext="shape" transform="translate(570.625,-261.431)">
+ <title>Ellipse.28</title>
+ <desc>DPDK</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="28.125" cy="316.777" width="49.22" height="19.6875"/>
+ <g id="shadow28-115" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st2"/>
+ </g>
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st10"/>
+ <text x="16.79" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>DPDK</text> </g>
+ <g id="shape29-120" v:mID="29" v:groupContext="shape" transform="translate(405.25,-110.5)">
+ <title>Rectangle.29</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <g id="shadow29-121" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="270.699" width="346.5" height="57.3286" rx="13.5" ry="13.5" class="st5"/>
+ </g>
+ <rect x="0" y="270.699" width="346.5" height="57.3286" rx="13.5" ry="13.5" class="st6"/>
+ </g>
+ <g id="shape30-125" v:mID="30" v:groupContext="shape" transform="translate(405.25,-142)">
+ <title>Sheet.30</title>
+ <desc>Host kernel</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="316.777" width="68.1" height="22.5"/>
+ <rect x="0" y="305.527" width="68.1" height="22.5" class="st8"/>
+ <text x="6.55" y="320.38" class="st9" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Host kernel</text> </g>
+ <g id="shape31-128" v:mID="31" v:groupContext="shape" transform="translate(681.417,-205)">
+ <title>Rectangle.31</title>
+ <desc>vSwitch or vRouter</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="276.277" width="68.1" height="103.5"/>
+ <g id="shadow31-129" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="224.527" width="68.1" height="103.5" class="st2"/>
+ </g>
+ <rect x="0" y="224.527" width="68.1" height="103.5" class="st3"/>
+ <text x="18.36" y="255.28" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>vSwitch<v:newlineChar/><tspan
+ x="29.67" dy="1.2em" class="st15">or<v:newlineChar/></tspan><tspan x="17.91" dy="1.2em" class="st15">vRouter</tspan><v:newlineChar/><v:newlineChar/></text> </g>
+ <g id="shape32-136" v:mID="32" v:groupContext="shape" transform="translate(687.342,-214)">
+ <title>Ellipse.32</title>
+ <desc>DPDK</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="28.125" cy="316.777" width="49.22" height="19.6875"/>
+ <g id="shadow32-137" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st2"/>
+ </g>
+ <path d="M0 316.78 A28.125 11.25 0 0 1 56.25 316.78 A28.125 11.25 0 1 1 0 316.78 Z" class="st10"/>
+ <text x="16.79" y="319.78" class="st11" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>DPDK</text> </g>
+ <g id="shape34-142" v:mID="34" v:groupContext="shape" v:layerMember="0" transform="translate(429.7,-254.5)">
+ <title>Dynamic connector</title>
+ <path d="M0 334.71 L0 335.07 L0 364.03 L244.68 364.03" class="st13"/>
+ </g>
+ <g id="shape35-149" v:mID="35" v:groupContext="shape" v:layerMember="0" transform="translate(510.7,-254.681)">
+ <title>Dynamic connector.35</title>
+ <path d="M0 334.71 L0 335.07 L0 355.21 L163.68 355.21" class="st13"/>
+ </g>
+ <g id="shape36-156" v:mID="36" v:groupContext="shape" v:layerMember="0" transform="translate(600.7,-254.681)">
+ <title>Dynamic connector.36</title>
+ <path d="M0 334.71 L0 335.07 L0 346.21 L73.68 346.21" class="st13"/>
+ </g>
+ <g id="shape37-163" v:mID="37" v:groupContext="shape" transform="translate(557.933,-182.5)">
+ <title>Rectangle.37</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <g id="shadow37-164" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <path d="M0 328.03 L202.82 328.03 L202.82 184.03 L0 184.03 L0 328.03 Z" class="st16"/>
+ </g>
+ <path d="M0 328.03 L202.82 328.03 L202.82 184.03 L0 184.03 L0 328.03 Z" class="st17"/>
+ </g>
+ <g id="shape38-168" v:mID="38" v:groupContext="shape" transform="translate(676.9,-72.25)">
+ <title>Rectangle.38</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <g id="shadow38-169" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="305.527" width="74.85" height="22.5" rx="11.25" ry="11.25" class="st2"/>
+ </g>
+ <rect x="0" y="305.527" width="74.85" height="22.5" rx="11.25" ry="11.25" class="st7"/>
+ </g>
+ <g id="shape39-173" v:mID="39" v:groupContext="shape" transform="translate(686.2,-72.25)">
+ <title>Sheet.39</title>
+ <desc>NIC</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="28.125" cy="316.777" width="56.25" height="22.5"/>
+ <rect x="0" y="305.527" width="56.25" height="22.5" class="st8"/>
+ <text x="19.61" y="320.38" class="st9" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>NIC</text> </g>
+ <g id="shape41-176" v:mID="41" v:groupContext="shape" v:layerMember="0" transform="translate(723.896,-205)">
+ <title>Dynamic connector.41</title>
+ <path d="M-8.5 334.71 L-8.5 335.07 L-9.5 431.24" class="st13"/>
+ </g>
+ <g id="shape42-183" v:mID="42" v:groupContext="shape" v:layerMember="0" transform="translate(382.75,-317.5)">
+ <title>Dynamic connector.42</title>
+ <path d="M-9 328.03 L-9 589.03" class="st18"/>
+ </g>
+ <g id="shape43-186" v:mID="43" v:groupContext="shape" transform="translate(161.65,-0.25)">
+ <title>Sheet.43</title>
+ <desc>(1) Slicing</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="316.777" width="68.1" height="22.5"/>
+ <rect x="0" y="305.527" width="68.1" height="22.5" class="st8"/>
+ <text x="10.5" y="320.38" class="st9" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>(1) Slicing</text> </g>
+ <g id="shape44-189" v:mID="44" v:groupContext="shape" transform="translate(553.75,-0.25)">
+ <title>Sheet.44</title>
+ <desc>(2) Aggregation</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="44.025" cy="316.777" width="88.05" height="22.5"/>
+ <rect x="0" y="305.527" width="88.05" height="22.5" class="st8"/>
+ <text x="5.7" y="320.38" class="st9" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>(2) Aggregation</text> </g>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/vf_daemon_overview.svg b/src/spdk/dpdk/doc/guides/howto/img/vf_daemon_overview.svg
new file mode 100644
index 000000000..6a81f2fb8
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/vf_daemon_overview.svg
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- SPDX-License-Identifier: BSD-3-Clause -->
+<!-- Copyright(c) 2017 Intel Corporation -->
+
+<!-- Generated by Microsoft Visio, SVG Export vf_daemon_overview.svg Page-1 -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="653.98083"
+ height="346.37814"
+ viewBox="0 0 523.18544 277.10257"
+ xml:space="preserve"
+ class="st16"
+ id="svg3406"
+ version="1.1"
+ inkscape:version="0.92.1 r15371"
+ sodipodi:docname="vf_daemon_overview.svg"
+ style="font-size:12px;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-rule:evenodd;stroke-linecap:square;stroke-miterlimit:3"><metadata
+ id="metadata3652"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1003"
+ id="namedview3650"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:zoom="1.683916"
+ inkscape:cx="370.95135"
+ inkscape:cy="160.84375"
+ inkscape:window-x="-9"
+ inkscape:window-y="-9"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg3406" /><style
+ type="text/css"
+ id="style3408">
+ .st1 {visibility:visible}
+ .st2 {fill:#5b9bd5;fill-opacity:0.25;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.25}
+ .st3 {fill:#4f87bb;stroke:#40709c;stroke-width:0.75}
+ .st4 {fill:#feffff;font-family:Calibri;font-size:0.833336em}
+ .st5 {fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75}
+ .st6 {fill:#4f87bb;font-family:Calibri;font-size:0.833336em}
+ .st7 {fill:#759fcc;fill-opacity:0.25;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.25}
+ .st8 {fill:#668bb3;stroke:#547395;stroke-width:0.75}
+ .st9 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
+ .st10 {fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25}
+ .st11 {fill:#759fcc;fill-opacity:0.22;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.22}
+ .st12 {fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25}
+ .st13 {fill:url(#grad0-40);stroke:#a6b6cd;stroke-width:0.75}
+ .st14 {fill:#70ad47;fill-opacity:0.25;filter:url(#filter_2);stroke:#70ad47;stroke-opacity:0.25}
+ .st15 {fill:#61973d;stroke:#507e31;stroke-width:0.75}
+ .st16 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ </style><defs
+ id="Patterns_And_Gradients"><linearGradient
+ id="grad0-11"
+ x1="-0.24584444"
+ y1="740.83429"
+ x2="167.49742"
+ y2="740.83429"
+ gradientTransform="scale(1.5253548,0.65558519)"
+ gradientUnits="userSpaceOnUse"><stop
+ offset="0"
+ stop-color="#e9eff7"
+ stop-opacity="1"
+ id="stop3412" /><stop
+ offset="0.24"
+ stop-color="#f4f7fb"
+ stop-opacity="1"
+ id="stop3414" /><stop
+ offset="0.54"
+ stop-color="#feffff"
+ stop-opacity="1"
+ id="stop3416" /></linearGradient><linearGradient
+ id="grad0-40"
+ x1="0"
+ y1="0"
+ x2="1"
+ y2="0"
+ gradientTransform="rotate(60,0.5,0.5)"><stop
+ offset="0"
+ stop-color="#f3f6fa"
+ stop-opacity="1"
+ id="stop3419" /><stop
+ offset="0.24"
+ stop-color="#f9fafc"
+ stop-opacity="1"
+ id="stop3421" /><stop
+ offset="0.54"
+ stop-color="#feffff"
+ stop-opacity="1"
+ id="stop3423" /></linearGradient><linearGradient
+ id="grad0-40-2"
+ x1="0"
+ y1="0"
+ x2="1"
+ y2="0"
+ gradientTransform="rotate(60,0.5,0.5)"><stop
+ offset="0"
+ stop-color="#f3f6fa"
+ stop-opacity="1"
+ id="stop3419-2" /><stop
+ offset="0.24"
+ stop-color="#f9fafc"
+ stop-opacity="1"
+ id="stop3421-8" /><stop
+ offset="0.54"
+ stop-color="#feffff"
+ stop-opacity="1"
+ id="stop3423-0" /></linearGradient><filter
+ style="color-interpolation-filters:sRGB"
+ id="filter_2-6"><feGaussianBlur
+ stdDeviation="2"
+ id="feGaussianBlur3427-3" /></filter><filter
+ style="color-interpolation-filters:sRGB"
+ id="filter4802"><feGaussianBlur
+ stdDeviation="2"
+ id="feGaussianBlur4800" /></filter><filter
+ style="color-interpolation-filters:sRGB"
+ id="filter4810"><feGaussianBlur
+ stdDeviation="2"
+ id="feGaussianBlur4808" /></filter><filter
+ style="color-interpolation-filters:sRGB"
+ id="filter_2-1"><feGaussianBlur
+ stdDeviation="2"
+ id="feGaussianBlur3427-8" /></filter><linearGradient
+ inkscape:collect="always"
+ xlink:href="#grad0-11"
+ id="linearGradient5846"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2751142,0,0,0.85239422,296.69995,-509.84788)"
+ x1="-0.24584444"
+ y1="740.83429"
+ x2="167.49742"
+ y2="740.83429" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#grad0-40"
+ id="linearGradient5848"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.9084098,0.3438305)"
+ x1="-0.12893644"
+ y1="1717.1688"
+ x2="28.140806"
+ y2="1717.1688" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#grad0-40"
+ id="linearGradient5917"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.9084098,0.3438305)"
+ x1="-0.12893644"
+ y1="1717.1688"
+ x2="28.140806"
+ y2="1717.1688" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#grad0-11"
+ id="linearGradient6028"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2751142,0,0,0.85239422,14.0251,-510.3054)"
+ x1="-0.24584444"
+ y1="740.83429"
+ x2="167.49742"
+ y2="740.83429" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#grad0-40"
+ id="linearGradient6030"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(2.9084098,0.3438305)"
+ x1="-0.12893644"
+ y1="1717.1688"
+ x2="28.140806"
+ y2="1717.1688" /></defs><defs
+ id="Filters"><filter
+ id="filter_2"
+ style="color-interpolation-filters:sRGB"><feGaussianBlur
+ stdDeviation="2"
+ id="feGaussianBlur3427" /></filter></defs><flowRoot
+ xml:space="preserve"
+ id="flowRoot5059"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ transform="translate(83.77187,-3.3273299)"><flowRegion
+ id="flowRegion5061"><rect
+ id="rect5063"
+ width="319.13776"
+ height="378.76611"
+ x="246.91183"
+ y="-24.140537" /></flowRegion><flowPara
+ id="flowPara5065" /></flowRoot><rect
+ x="310.9368"
+ y="41.112034"
+ width="185.48367"
+ height="52.464527"
+ class="st3"
+ id="rect3441-6"
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:#4f87bb;fill-rule:evenodd;stroke:#40709c;stroke-width:0.59376031;stroke-linecap:square;stroke-miterlimit:3" /><rect
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:url(#linearGradient5846);fill-rule:evenodd;stroke:#4f87bb;stroke-width:0.78190857;stroke-linecap:square;stroke-miterlimit:3"
+ id="rect3453-5"
+ class="st5"
+ height="142.00824"
+ width="213.26486"
+ y="122.12257"
+ x="296.69995" /><rect
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:#668bb3;fill-rule:evenodd;stroke:#547395;stroke-width:0.81434548;stroke-linecap:square;stroke-miterlimit:3"
+ id="rect3465-8"
+ class="st8"
+ height="107.19906"
+ width="191.24162"
+ y="148.73914"
+ x="303.27353" /><rect
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:#5b9bd5;fill-rule:evenodd;stroke:#c7c8c8;stroke-width:0.30626383;stroke-linecap:square;stroke-miterlimit:3"
+ id="rect3477-1"
+ class="st10"
+ height="37.991375"
+ width="99.433281"
+ y="201.63286"
+ x="345.86914" /><g
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:none;fill-rule:evenodd;stroke-linecap:square;stroke-miterlimit:3"
+ transform="matrix(0.00129134,-1.4946882,0.98914737,0.00195132,-182.90697,199.1254)"
+ id="shape8-37-9"><title
+ id="title3506-4">Simple Double Arrow.14</title><path
+ style="fill:url(#linearGradient5848);stroke:#a6b6cd;stroke-width:0.75"
+ inkscape:connector-curvature="0"
+ id="path3508-6"
+ class="st13"
+ d="m 0,595.28 11.34,-4.49 v 2.24 h 58.8 v -2.24 l 11.33,4.49 -11.33,4.48 v -2.24 h -58.8 v 2.24 z" /></g><rect
+ style="font-size:medium;opacity:0.347;color-interpolation-filters:sRGB;fill:none;fill-opacity:0.91387556;fill-rule:evenodd;stroke:#0044ea;stroke-width:0.6845746;stroke-linecap:square;stroke-miterlimit:3;stroke-opacity:1"
+ id="rect4923-1"
+ width="228.54221"
+ height="267.54898"
+ x="288.59995"
+ y="5.0613203" /><text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:19.20002937px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#0026e8;fill-opacity:0.83732054;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="478.50806"
+ y="25.851391"
+ id="text4927-7"><tspan
+ sodipodi:role="line"
+ id="tspan4925-3"
+ x="478.50806"
+ y="25.851391"
+ style="font-size:19.20002937px;fill:#0026e8;fill-opacity:0.83732054;stroke-width:0.8000012">VM</tspan></text>
+<text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:17.06669235px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="343.81976"
+ y="68.998184"
+ id="text5156-5"><tspan
+ sodipodi:role="line"
+ id="tspan5154-8"
+ x="343.81976"
+ y="68.998184"
+ style="font-size:17.06669235px;fill:#ffffff;stroke-width:0.8000012">VF Application</tspan></text>
+<text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:17.06669235px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#008080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="457.61066"
+ y="138.71524"
+ id="text5715-9"><tspan
+ sodipodi:role="line"
+ id="tspan5713-1"
+ x="457.61066"
+ y="138.71524"
+ style="font-size:17.06669235px;fill:#008080;stroke-width:0.8000012">DPDK</tspan></text>
+<text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:14.93335533px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="309.18256"
+ y="170.07077"
+ id="text5723-9"><tspan
+ sodipodi:role="line"
+ id="tspan5721-0"
+ x="309.18256"
+ y="170.07077"
+ style="font-size:14.93335533px;fill:#ffffff;stroke-width:0.8000012">Virtual ethdev</tspan></text>
+<text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.80001926px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="367.12158"
+ y="223.89334"
+ id="text5735-1"><tspan
+ sodipodi:role="line"
+ id="tspan5733-1"
+ x="367.12158"
+ y="223.89334"
+ style="font-size:12.80001926px;fill:#ffffff;stroke-width:0.8000012">VF driver</tspan></text>
+<g
+ style="font-size:medium;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-rule:evenodd;stroke-linecap:square;stroke-miterlimit:3"
+ transform="matrix(-1.1390578,0.0062451,-0.01163082,-1.009126,315.58916,668.0438)"
+ id="shape8-37-9-3"><title
+ id="title3506-4-4">Simple Double Arrow.14</title><path
+ style="fill:url(#linearGradient5917);stroke:#a6b6cd;stroke-width:0.75"
+ inkscape:connector-curvature="0"
+ id="path3508-6-2"
+ class="st13"
+ d="m 0,595.28 11.34,-4.49 v 2.24 h 58.8 v -2.24 l 11.33,4.49 -11.33,4.48 v -2.24 h -58.8 v 2.24 z" /></g><rect
+ x="28.261948"
+ y="40.65451"
+ width="185.48367"
+ height="52.464527"
+ class="st3"
+ id="rect3441-6-5"
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:#4f87bb;fill-rule:evenodd;stroke:#40709c;stroke-width:0.59376031;stroke-linecap:square;stroke-miterlimit:3" /><rect
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:url(#linearGradient6028);fill-rule:evenodd;stroke:#4f87bb;stroke-width:0.78190857;stroke-linecap:square;stroke-miterlimit:3"
+ id="rect3453-5-5"
+ class="st5"
+ height="142.00824"
+ width="213.26486"
+ y="121.66504"
+ x="14.025101" /><rect
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:#668bb3;fill-rule:evenodd;stroke:#547395;stroke-width:0.81434548;stroke-linecap:square;stroke-miterlimit:3"
+ id="rect3465-8-0"
+ class="st8"
+ height="107.19906"
+ width="191.24162"
+ y="148.28162"
+ x="20.598679" /><rect
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:#5b9bd5;fill-rule:evenodd;stroke:#c7c8c8;stroke-width:0.30626383;stroke-linecap:square;stroke-miterlimit:3"
+ id="rect3477-1-1"
+ class="st10"
+ height="37.991375"
+ width="99.433281"
+ y="201.17534"
+ x="63.19429" /><g
+ style="font-size:medium;color-interpolation-filters:sRGB;fill:none;fill-rule:evenodd;stroke-linecap:square;stroke-miterlimit:3"
+ transform="matrix(0.00129134,-1.4946882,0.98914737,0.00195132,-465.58182,198.66788)"
+ id="shape8-37-9-33"><title
+ id="title3506-4-3">Simple Double Arrow.14</title><path
+ style="fill:url(#linearGradient6030);stroke:#a6b6cd;stroke-width:0.75"
+ inkscape:connector-curvature="0"
+ id="path3508-6-1"
+ class="st13"
+ d="m 0,595.28 11.34,-4.49 v 2.24 h 58.8 v -2.24 l 11.33,4.49 -11.33,4.48 v -2.24 h -58.8 v 2.24 z" /></g><rect
+ style="font-size:medium;opacity:0.347;color-interpolation-filters:sRGB;fill:none;fill-opacity:0.91387556;fill-rule:evenodd;stroke:#0044ea;stroke-width:0.6845746;stroke-linecap:square;stroke-miterlimit:3;stroke-opacity:1"
+ id="rect4923-1-0"
+ width="228.54222"
+ height="267.54898"
+ x="5.9250998"
+ y="4.6037965" /><text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:19.20002937px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#0026e8;fill-opacity:0.83732054;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="184.63316"
+ y="25.393867"
+ id="text4927-7-3"><tspan
+ sodipodi:role="line"
+ id="tspan4925-3-7"
+ x="184.63316"
+ y="25.393867"
+ style="font-size:19.20002937px;fill:#0026e8;fill-opacity:0.83732054;stroke-width:0.8000012">Host</tspan></text>
+<text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:17.06669235px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="61.144913"
+ y="68.540657"
+ id="text5156-5-7"><tspan
+ sodipodi:role="line"
+ id="tspan5154-8-6"
+ x="61.144913"
+ y="68.540657"
+ style="font-size:17.06669235px;fill:#ffffff;stroke-width:0.8000012">PF Application</tspan></text>
+<text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:17.06669235px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#008080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="174.93581"
+ y="138.25772"
+ id="text5715-9-7"><tspan
+ sodipodi:role="line"
+ id="tspan5713-1-4"
+ x="174.93581"
+ y="138.25772"
+ style="font-size:17.06669235px;fill:#008080;stroke-width:0.8000012">DPDK</tspan></text>
+<text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:14.93335533px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="26.507706"
+ y="169.61325"
+ id="text5723-9-4"><tspan
+ sodipodi:role="line"
+ id="tspan5721-0-5"
+ x="26.507706"
+ y="169.61325"
+ style="font-size:14.93335533px;fill:#ffffff;stroke-width:0.8000012">Ethdev</tspan></text>
+<text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:12.80001926px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;color-interpolation-filters:sRGB;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8000012;stroke-linecap:square;stroke-miterlimit:3"
+ x="84.446732"
+ y="223.43582"
+ id="text5735-1-0"><tspan
+ sodipodi:role="line"
+ id="tspan5733-1-1"
+ x="84.446732"
+ y="223.43582"
+ style="font-size:12.80001926px;fill:#ffffff;stroke-width:0.8000012">PF driver</tspan></text>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/virtio_user_as_exceptional_path.svg b/src/spdk/dpdk/doc/guides/howto/img/virtio_user_as_exceptional_path.svg
new file mode 100644
index 000000000..b231b709d
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/virtio_user_as_exceptional_path.svg
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by Microsoft Visio, SVG Export virtio_user_as_exceptional_pathvsdx.svg Page-1 -->
+<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"
+ xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="5.77778in" height="3.88851in"
+ viewBox="0 0 416 279.973" xml:space="preserve" color-interpolation-filters="sRGB" class="st13">
+ <v:documentProperties v:langID="1033" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {visibility:visible}
+ .st2 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
+ .st3 {fill:#ffffff;stroke:#c7c8c8;stroke-width:0.25}
+ .st4 {stroke:#000000;stroke-dasharray:7,5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+ .st5 {fill:#000000;font-family:Calibri;font-size:0.833336em}
+ .st6 {fill:none;stroke:none;stroke-width:0.25}
+ .st7 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic}
+ .st8 {fill:#70ad47;stroke:#c7c8c8;stroke-width:0.25}
+ .st9 {stroke:#5b9bd5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75}
+ .st10 {marker-end:url(#mrkr4-68);marker-start:url(#mrkr4-66);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+ .st11 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.28409090909091}
+ .st12 {fill:#d8d8d8;stroke:#c7c8c8;stroke-width:0.25}
+ .st13 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend4">
+ <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr4-66" class="st11" v:arrowType="4" v:arrowSize="2" v:setback="6.68" refX="6.68" orient="auto"
+ markerUnits="strokeWidth" overflow="visible">
+ <use xlink:href="#lend4" transform="scale(3.52) "/>
+ </marker>
+ <marker id="mrkr4-68" class="st11" v:arrowType="4" v:arrowSize="2" v:setback="7.04" refX="-7.04" orient="auto"
+ markerUnits="strokeWidth" overflow="visible">
+ <use xlink:href="#lend4" transform="scale(-3.52,-3.52) "/>
+ </marker>
+ </defs>
+ <defs id="Filters">
+ <filter id="filter_2">
+ <feGaussianBlur stdDeviation="2"/>
+ </filter>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="0" v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <g id="shape23-1" v:mID="23" v:groupContext="shape" transform="translate(195.804,-74.9728)">
+ <title>Rectangle.23</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <g id="shadow23-2" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="113.473" width="216.6" height="166.5" class="st2"/>
+ </g>
+ <rect x="0" y="113.473" width="216.6" height="166.5" class="st3"/>
+ </g>
+ <g id="shape42-6" v:mID="42" v:groupContext="shape" v:layerMember="0" transform="translate(146.904,-277.473)">
+ <title>Dynamic connector.42</title>
+ <path d="M-9 279.97 L-9 540.97" class="st4"/>
+ </g>
+ <g id="shape45-9" v:mID="45" v:groupContext="shape" transform="translate(2.9044,-142.292)">
+ <title>Rectangle.45</title>
+ <desc>tap</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="264.132" width="68.1" height="31.6807"/>
+ <g id="shadow45-10" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="248.292" width="68.1" height="31.6807" class="st2"/>
+ </g>
+ <rect x="0" y="248.292" width="68.1" height="31.6807" class="st3"/>
+ <text x="27.35" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>tap</text> </g>
+ <g id="shape46-15" v:mID="46" v:groupContext="shape" transform="translate(2.9044,-43.2921)">
+ <title>Rectangle.46</title>
+ <desc>vhost ko</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="264.132" width="68.1" height="31.6807"/>
+ <g id="shadow46-16" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="248.292" width="68.1" height="31.6807" class="st2"/>
+ </g>
+ <rect x="0" y="248.292" width="68.1" height="31.6807" class="st3"/>
+ <text x="16.86" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>vhost ko </text> </g>
+ <g id="shape47-21" v:mID="47" v:groupContext="shape" transform="translate(18.9544,-257.223)">
+ <title>Sheet.47</title>
+ <desc>Kernel space</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="44.025" cy="268.723" width="88.05" height="22.5"/>
+ <rect x="0" y="257.473" width="88.05" height="22.5" class="st6"/>
+ <text x="13.44" y="272.32" class="st7" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Kernel space</text> </g>
+ <g id="shape48-24" v:mID="48" v:groupContext="shape" transform="translate(148.854,-257.223)">
+ <title>Sheet.48</title>
+ <desc>User space</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="44.025" cy="268.723" width="88.05" height="22.5"/>
+ <rect x="0" y="257.473" width="88.05" height="22.5" class="st6"/>
+ <text x="17.7" y="272.32" class="st7" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>User space</text> </g>
+ <g id="shape49-27" v:mID="49" v:groupContext="shape" transform="translate(218.904,-182.792)">
+ <title>Rectangle.49</title>
+ <desc>ETHDEV</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="83.25" cy="264.132" width="166.5" height="31.6807"/>
+ <g id="shadow49-28" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="248.292" width="166.5" height="31.6807" class="st2"/>
+ </g>
+ <rect x="0" y="248.292" width="166.5" height="31.6807" class="st3"/>
+ <text x="66.9" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>ETHDEV</text> </g>
+ <g id="shape50-33" v:mID="50" v:groupContext="shape" transform="translate(218.904,-142.292)">
+ <title>Rectangle.50</title>
+ <desc>virtio PMD</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="38.7911" cy="264.132" width="77.59" height="31.6807"/>
+ <g id="shadow50-34" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="248.292" width="77.5823" height="31.6807" class="st2"/>
+ </g>
+ <rect x="0" y="248.292" width="77.5823" height="31.6807" class="st3"/>
+ <text x="17.12" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>virtio PMD</text> </g>
+ <g id="shape51-39" v:mID="51" v:groupContext="shape" transform="translate(308.904,-142.292)">
+ <title>Rectangle.51</title>
+ <desc>other PMDs</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="38.7911" cy="264.132" width="77.59" height="31.6807"/>
+ <g id="shadow51-40" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="248.292" width="77.5823" height="31.6807" class="st2"/>
+ </g>
+ <rect x="0" y="248.292" width="77.5823" height="31.6807" class="st3"/>
+ <text x="14.6" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>other PMDs</text> </g>
+ <g id="shape52-45" v:mID="52" v:groupContext="shape" transform="translate(218.904,-86.3131)">
+ <title>Rectangle.52</title>
+ <desc>virtio-user</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="38.7911" cy="256.393" width="77.59" height="47.1597"/>
+ <g id="shadow52-46" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="232.813" width="77.5823" height="47.1597" class="st2"/>
+ </g>
+ <rect x="0" y="232.813" width="77.5823" height="47.1597" class="st8"/>
+ <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>
+ <g id="shape53-51" v:mID="53" v:groupContext="shape" transform="translate(223.404,-90.1829)">
+ <title>Rectangle.53</title>
+ <desc>vhost adapter</desc>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="34.05" cy="268.183" width="68.1" height="23.5798"/>
+ <g id="shadow53-52" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="256.393" width="68.1" height="23.5798" class="st2"/>
+ </g>
+ <rect x="0" y="256.393" width="68.1" height="23.5798" class="st3"/>
+ <text x="5.82" y="271.18" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>vhost adapter</text> </g>
+ <g id="shape54-57" v:mID="54" v:groupContext="shape" v:layerMember="0" transform="translate(71.0044,-59.1325)">
+ <title>Dynamic connector</title>
+ <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"/>
+ </g>
+ <g id="shape55-60" v:mID="55" v:groupContext="shape" v:layerMember="0" transform="translate(71.0044,-149.132)">
+ <title>Dynamic connector.55</title>
+ <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"/>
+ </g>
+ <g id="shape56-69" v:mID="56" v:groupContext="shape" transform="translate(308.904,-5.2228)">
+ <title>Rectangle.38</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
+ </v:userDefs>
+ <g id="shadow56-70" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
+ <rect x="0" y="257.473" width="77.5823" height="22.5" rx="11.25" ry="11.25" class="st2"/>
+ </g>
+ <rect x="0" y="257.473" width="77.5823" height="22.5" rx="11.25" ry="11.25" class="st12"/>
+ </g>
+ <g id="shape57-74" v:mID="57" v:groupContext="shape" transform="translate(318.204,-5.2228)">
+ <title>Sheet.57</title>
+ <desc>NIC</desc>
+ <v:textBlock v:margins="rect(4,4,4,4)"/>
+ <v:textRect cx="28.125" cy="268.723" width="56.25" height="22.5"/>
+ <rect x="0" y="257.473" width="56.25" height="22.5" class="st6"/>
+ <text x="19.61" y="272.32" class="st7" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>NIC</text> </g>
+ <g id="shape58-77" v:mID="58" v:groupContext="shape" v:layerMember="0" transform="translate(356.696,-142.292)">
+ <title>Dynamic connector.41</title>
+ <path d="M-9 286.65 L-9 287.01 L-9 387.5" class="st10"/>
+ </g>
+ </g>
+</svg>
diff --git a/src/spdk/dpdk/doc/guides/howto/img/virtio_user_for_container_networking.svg b/src/spdk/dpdk/doc/guides/howto/img/virtio_user_for_container_networking.svg
new file mode 100644
index 000000000..de8080664
--- /dev/null
+++ b/src/spdk/dpdk/doc/guides/howto/img/virtio_user_for_container_networking.svg
@@ -0,0 +1,685 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ id="svg2"
+ class="st16"
+ color-interpolation-filters="sRGB"
+ xml:space="preserve"
+ viewBox="0 0 469.4 294.5"
+ height="4.09028in"
+ width="6.51944in"><metadata
+ id="metadata220"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><v:documentProperties
+ v:viewMarkup="false"
+ v:langID="1033" /><style
+ id="style4"
+ type="text/css"><![CDATA[
+ .st1 {visibility:visible}
+ .st2 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
+ .st3 {fill:#ffffff;stroke:#c7c8c8;stroke-width:0.25}
+ .st4 {fill:#000000;font-family:Calibri;font-size:0.833336em}
+ .st5 {fill:#70ad47;stroke:#c7c8c8;stroke-width:0.25}
+ .st6 {font-size:1em}
+ .st7 {fill:#d8d8d8;stroke:#c7c8c8;stroke-width:0.25}
+ .st8 {fill:none;stroke:none;stroke-width:0.25}
+ .st9 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic}
+ .st10 {fill:none;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
+ .st11 {fill:none;stroke:#c7c8c8;stroke-width:0.25}
+ .st12 {fill:#000000;font-family:Calibri;font-size:1.00001em}
+ .st13 {marker-end:url(#mrkr4-90);marker-start:url(#mrkr4-88);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+ .st14 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.28409090909091}
+ .st15 {stroke:#5b9bd5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
+ .st16 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]></style><defs
+ id="Markers"><g
+ id="lend4"><path
+ id="path8"
+ style="stroke:none"
+ d="M 2 1 L 0 0 L 2 -1 L 2 1 " /></g><marker
+ overflow="visible"
+ markerUnits="strokeWidth"
+ orient="auto"
+ refX="6.68"
+ v:setback="6.68"
+ v:arrowSize="2"
+ v:arrowType="4"
+ class="st14"
+ id="mrkr4-88"><use
+ id="use11"
+ transform="scale(3.52) "
+ xlink:href="#lend4" /></marker><marker
+ overflow="visible"
+ markerUnits="strokeWidth"
+ orient="auto"
+ refX="-7.04"
+ v:setback="7.04"
+ v:arrowSize="2"
+ v:arrowType="4"
+ class="st14"
+ id="mrkr4-90"><use
+ id="use14"
+ transform="scale(-3.52,-3.52) "
+ xlink:href="#lend4" /></marker></defs><defs
+ id="Filters"><filter
+ id="filter_2"><feGaussianBlur
+ id="feGaussianBlur18"
+ stdDeviation="2" /></filter></defs><g
+ id="g20"
+ v:groupContext="foregroundPage"
+ v:index="1"
+ v:mID="0"><title
+ id="title22">Page-1</title><v:pageProperties
+ v:shadowOffsetY="-9"
+ v:shadowOffsetX="9"
+ v:drawingUnits="0"
+ v:pageScale="1"
+ v:drawingScale="1" /><v:layer
+ v:index="0"
+ v:name="Connector" /><g
+ transform="translate(20.9044,-72.7228)"
+ v:groupContext="shape"
+ v:mID="23"
+ id="shape23-1"><title
+ id="title25">Rectangle.23</title><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><g
+ class="st1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow23-2"><rect
+ id="rect28"
+ class="st2"
+ height="184.5"
+ width="216.6"
+ y="110"
+ x="0" /></g><rect
+ id="rect30"
+ class="st3"
+ height="184.5"
+ width="216.6"
+ y="110"
+ x="0" /></g><g
+ transform="translate(44.0044,-198.542)"
+ v:groupContext="shape"
+ v:mID="49"
+ id="shape49-6"><title
+ id="title33">Rectangle.49</title><desc
+ id="desc35">ETHDEV</desc><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="31.6807"
+ width="166.5"
+ cy="278.66"
+ cx="83.25" /><g
+ class="st1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow49-7"><rect
+ id="rect38"
+ class="st2"
+ height="31.6807"
+ width="166.5"
+ y="262.819"
+ x="0" /></g><rect
+ id="rect40"
+ class="st3"
+ height="31.6807"
+ width="166.5"
+ y="262.819"
+ x="0" /><text
+ style="font-size:10.00003242px;font-family:Calibri;fill:#000000"
+ id="text42"
+ v:langID="1033"
+ class="st4"
+ y="281.66"
+ x="66.900002">ethdev<v:paragraph
+ v:horizAlign="1" /><v:tabList /></text>
+</g><g
+ transform="translate(44.0044,-158.042)"
+ v:groupContext="shape"
+ v:mID="50"
+ id="shape50-12"><title
+ id="title45">Rectangle.50</title><desc
+ id="desc47">virtio PMD</desc><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="31.6807"
+ width="166.5"
+ cy="278.66"
+ cx="83.25" /><g
+ class="st1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow50-13"><rect
+ id="rect50"
+ class="st2"
+ height="31.6807"
+ width="166.5"
+ y="262.819"
+ x="0" /></g><rect
+ id="rect52"
+ class="st3"
+ height="31.6807"
+ width="166.5"
+ y="262.819"
+ x="0" /><text
+ id="text54"
+ v:langID="1033"
+ class="st4"
+ y="281.66"
+ x="61.58"><v:paragraph
+ v:horizAlign="1" /><v:tabList />virtio PMD</text>
+</g><g
+ transform="translate(128.904,-86.2228)"
+ v:groupContext="shape"
+ v:mID="52"
+ id="shape52-18"><title
+ id="title57">Rectangle.52</title><desc
+ id="desc59">virtio-user (virtual device)</desc><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="63"
+ width="81.61"
+ cy="263"
+ cx="40.8" /><g
+ class="st1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow52-19"><rect
+ id="rect62"
+ class="st2"
+ height="63"
+ width="81.6"
+ y="231.5"
+ x="0" /></g><rect
+ id="rect64"
+ class="st5"
+ height="63"
+ width="81.6"
+ y="231.5"
+ x="0" /><text
+ id="text66"
+ v:langID="1033"
+ class="st4"
+ y="248"
+ x="19.85"><v:paragraph
+ v:horizAlign="1" /><v:tabList />virtio-user<v:newlineChar /><tspan
+ id="tspan68"
+ class="st6"
+ dy="1.2em"
+ x="10.52">(</tspan>virtual device)<v:newlineChar /><v:newlineChar /></text>
+</g><g
+ transform="translate(129.44522,-83.349651)"
+ v:groupContext="shape"
+ v:mID="53"
+ id="shape53-25"><title
+ id="title71">Rectangle.53</title><desc
+ id="desc73">vhost-user adapter</desc><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="23.5798"
+ width="68.1"
+ cy="282.71"
+ cx="34.05" /><g
+ style="visibility:visible"
+ class="st1"
+ transform="translate(0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow53-26"><rect
+ style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2)"
+ id="rect76"
+ class="st2"
+ height="23.5798"
+ width="68.099998"
+ y="270.92001"
+ x="0" /></g><rect
+ style="fill:#ffffff;stroke:#c7c8c8;stroke-width:0.25"
+ id="rect78"
+ class="st3"
+ height="23.5798"
+ width="68.099998"
+ y="265.79211"
+ x="6.99261" /></g><g
+ transform="translate(366.563,-5.2228)"
+ v:groupContext="shape"
+ v:mID="56"
+ id="shape56-32"><title
+ id="title85">Rectangle.38</title><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><g
+ class="st1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow56-33"><rect
+ id="rect88"
+ class="st2"
+ ry="11.25"
+ rx="11.25"
+ height="22.5"
+ width="77.5823"
+ y="272"
+ x="0" /></g><rect
+ id="rect90"
+ class="st7"
+ ry="11.25"
+ rx="11.25"
+ height="22.5"
+ width="77.5823"
+ y="272"
+ x="0" /></g><g
+ transform="translate(380.904,-5.2228)"
+ v:groupContext="shape"
+ v:mID="57"
+ id="shape57-37"><title
+ id="title93">Sheet.57</title><desc
+ id="desc95">NIC</desc><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="22.5"
+ width="56.25"
+ cy="283.25"
+ cx="28.125" /><rect
+ id="rect97"
+ class="st8"
+ height="22.5"
+ width="56.25"
+ y="272"
+ x="0" /><text
+ id="text99"
+ v:langID="2052"
+ class="st9"
+ y="286.85"
+ x="19.61"><v:paragraph
+ v:horizAlign="1" /><v:tabList />NIC</text>
+</g><g
+ transform="translate(43.4044,-86.2228)"
+ v:groupContext="shape"
+ v:mID="59"
+ id="shape59-40"><title
+ id="title102">Rectangle.59</title><desc
+ id="desc104">virtio (PCI device)</desc><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="63"
+ width="77.59"
+ cy="263"
+ cx="38.7911" /><g
+ class="st1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow59-41"><rect
+ id="rect107"
+ class="st2"
+ height="63"
+ width="77.5823"
+ y="231.5"
+ x="0" /></g><rect
+ id="rect109"
+ class="st3"
+ height="63"
+ width="77.5823"
+ y="231.5"
+ x="0" /><text
+ id="text111"
+ v:langID="1033"
+ class="st4"
+ y="260"
+ x="28.18"><v:paragraph
+ v:horizAlign="1" /><v:tabList />virtio<v:newlineChar /><tspan
+ id="tspan113"
+ class="st6"
+ dy="1.2em"
+ x="15">(</tspan>PCI device)</text>
+</g><g
+ transform="translate(344.904,-77.2228)"
+ v:groupContext="shape"
+ v:mID="60"
+ id="shape60-47"><title
+ id="title116">Rectangle.60</title><desc
+ id="desc118">vSwitch or vRouter</desc><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="216"
+ width="120.9"
+ cy="186.5"
+ cx="60.45" /><g
+ class="st1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow60-48"><rect
+ id="rect121"
+ class="st2"
+ height="216"
+ width="120.9"
+ y="78.5"
+ x="0" /></g><rect
+ id="rect123"
+ class="st3"
+ height="216"
+ width="120.9"
+ y="78.5"
+ x="0" /><text
+ id="text125"
+ v:langID="1033"
+ class="st4"
+ y="177.5"
+ x="44.76"><v:paragraph
+ v:horizAlign="1" /><v:tabList />vSwitch<v:newlineChar /><tspan
+ id="tspan127"
+ class="st6"
+ dy="1.2em"
+ x="56.07">or<v:newlineChar /></tspan><tspan
+ id="tspan129"
+ class="st6"
+ dy="1.2em"
+ x="44.31">vRouter</tspan></text>
+</g><g
+ transform="translate(20.9044,-234.723)"
+ v:groupContext="shape"
+ v:mID="61"
+ id="shape61-55"><title
+ id="title132">Sheet.61</title><desc
+ id="desc134">DPDK</desc><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="22.5"
+ width="47.25"
+ cy="283.25"
+ cx="23.625" /><rect
+ id="rect136"
+ class="st8"
+ height="22.5"
+ width="47.25"
+ y="272"
+ x="0" /><text
+ id="text138"
+ v:langID="1033"
+ class="st9"
+ y="286.85"
+ x="4"><v:paragraph /><v:tabList />DPDK</text>
+</g><g
+ transform="translate(2.9044,-52.4728)"
+ v:groupContext="shape"
+ v:mID="62"
+ id="shape62-58"><title
+ id="title141">Rectangle.62</title><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><g
+ class="st1"
+ transform="matrix(1,0,0,1,0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow62-59"><rect
+ id="rect144"
+ class="st10"
+ height="240.75"
+ width="252"
+ y="53.75"
+ x="0" /></g><rect
+ id="rect146"
+ class="st11"
+ height="240.75"
+ width="252"
+ y="53.75"
+ x="0" /></g><g
+ transform="translate(2.9044,-261.723)"
+ v:groupContext="shape"
+ v:mID="63"
+ id="shape63-63"><title
+ id="title149">Sheet.63</title><desc
+ id="desc151">Contanier/App</desc><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="22.5"
+ width="90"
+ cy="283.25"
+ cx="45" /><rect
+ id="rect153"
+ class="st8"
+ height="22.5"
+ width="90"
+ y="272"
+ x="0" /><text
+ style="font-style:italic;font-size:12.00012016px;font-family:Calibri;fill:#000000"
+ id="text155"
+ v:langID="1033"
+ class="st9"
+ y="286.85001"
+ x="4"><v:paragraph /><v:tabList />Container/App</text>
+</g><g
+ transform="translate(535.904,70.4861) rotate(90)"
+ v:groupContext="shape"
+ v:mID="64"
+ id="shape64-66"><title
+ id="title158">Rectangle.64</title><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><g
+ class="st1"
+ transform="matrix(1,0,0,1,1.97279,-0.345598)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow64-67"><rect
+ id="rect161"
+ class="st2"
+ ry="13.5"
+ rx="13.5"
+ height="27"
+ width="77.5823"
+ y="267.5"
+ x="0" /></g><rect
+ id="rect163"
+ class="st7"
+ ry="13.5"
+ rx="13.5"
+ height="27"
+ width="77.5823"
+ y="267.5"
+ x="0" /></g><g
+ transform="translate(625.904,70.4861) rotate(90)"
+ v:groupContext="shape"
+ v:mID="65"
+ id="shape65-71"><title
+ id="title166">Rectangle.65</title><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><g
+ class="st1"
+ transform="matrix(1,0,0,1,1.97279,-0.345598)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow65-72"><rect
+ id="rect169"
+ class="st2"
+ ry="13.5"
+ rx="13.5"
+ height="27"
+ width="77.5823"
+ y="267.5"
+ x="0" /></g><rect
+ id="rect171"
+ class="st7"
+ ry="13.5"
+ rx="13.5"
+ height="27"
+ width="77.5823"
+ y="267.5"
+ x="0" /></g><g
+ transform="translate(538.154,81.1522) rotate(90)"
+ v:groupContext="shape"
+ v:mID="66"
+ id="shape66-76"><title
+ id="title174">Sheet.66</title><desc
+ id="desc176">virtio</desc><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="22.5"
+ width="56.25"
+ cy="283.25"
+ cx="28.125" /><rect
+ id="rect178"
+ class="st8"
+ height="22.5"
+ width="56.25"
+ y="272"
+ x="0" /><text
+ id="text180"
+ v:langID="1033"
+ class="st12"
+ y="286.85"
+ x="15.4"><v:paragraph
+ v:horizAlign="1" /><v:tabList />virtio</text>
+</g><g
+ transform="translate(628.154,81.1522) rotate(90)"
+ v:groupContext="shape"
+ v:mID="67"
+ id="shape67-79"><title
+ id="title183">Sheet.67</title><desc
+ id="desc185">vhost</desc><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="22.5"
+ width="56.25"
+ cy="283.25"
+ cx="28.125" /><rect
+ id="rect187"
+ class="st8"
+ height="22.5"
+ width="56.25"
+ y="272"
+ x="0" /><text
+ id="text189"
+ v:langID="1033"
+ class="st12"
+ y="286.85"
+ x="14.74"><v:paragraph
+ v:horizAlign="1" /><v:tabList />vhost</text>
+</g><g
+ transform="translate(268.404,-176.223)"
+ v:layerMember="0"
+ v:groupContext="shape"
+ v:mID="69"
+ id="shape69-82"><title
+ id="title192">Dynamic connector</title><path
+ id="path194"
+ class="st13"
+ d="M6.68 285.5 L7.04 285.5 L55.96 285.5" /></g><g
+ transform="translate(396.354,-77.2228)"
+ v:layerMember="0"
+ v:groupContext="shape"
+ v:mID="70"
+ id="shape70-91"><title
+ id="title197">Dynamic connector.70</title><path
+ id="path199"
+ class="st13"
+ d="M9 301.18 L9 301.54 L9 336.96" /></g><g
+ transform="translate(205.004,-92.4329)"
+ v:layerMember="0"
+ v:groupContext="shape"
+ v:mID="72"
+ id="shape72-104"><title
+ id="title214">Dynamic connector.72</title><path
+ id="path216"
+ class="st15"
+ d="M0 285.5 L101.11 285.5" /></g><g
+ transform="matrix(1.1344321,0,0,0.98698119,292.92681,-86.402944)"
+ v:groupContext="shape"
+ v:mID="71"
+ id="shape71-98"><title
+ id="title202">Rectangle.71</title><desc
+ id="desc204">unix socket file</desc><v:userDefs><v:ud
+ v:val="VT0(15):26"
+ v:nameU="visVersion" /></v:userDefs><v:textBlock
+ v:margins="rect(4,4,4,4)" /><v:textRect
+ height="23.5798"
+ width="77.59"
+ cy="282.71"
+ cx="38.7911" /><g
+ style="visibility:visible"
+ class="st1"
+ transform="translate(0.345598,1.97279)"
+ v:shadowType="1"
+ v:shadowOffsetY="-1.97279"
+ v:shadowOffsetX="0.345598"
+ v:groupContext="shadow"
+ id="shadow71-99"><rect
+ style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2)"
+ id="rect207"
+ class="st2"
+ height="23.5798"
+ width="77.582298"
+ y="270.92001"
+ x="0" /></g><rect
+ style="fill:#ffffff;stroke:#000000;stroke-width:0.25025026;stroke-opacity:1;stroke-miterlimit:3;stroke-dasharray:none"
+ id="rect209"
+ class="st3"
+ height="23.5798"
+ width="77.582298"
+ y="270.92001"
+ x="-0.41093162" /><text
+ transform="scale(0.86136004,1.1609547)"
+ style="font-size:10.19067955px;font-family:Calibri;fill:#000000"
+ id="text211"
+ v:langID="1033"
+ class="st4"
+ y="247.29736"
+ x="7.1378384"><v:paragraph
+ v:horizAlign="1" /><v:tabList />unix socket file</text>
+</g><text
+ id="text66-3"
+ v:langID="1033"
+ class="st4"
+ y="192.78035"
+ x="143.49364"
+ style="font-size:12px;line-height:125%;font-family:Calibri;fill:#000000"><v:paragraph
+ v:horizAlign="1" /><v:tabList /><tspan
+ id="tspan4385"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00000572px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">vhost-user</tspan><v:newlineChar /><v:newlineChar /><v:newlineChar /></text>
+<text
+ id="text66-3-9"
+ v:langID="1033"
+ class="st4"
+ y="201.73016"
+ x="149.81844"
+ style="font-size:12px;line-height:125%;font-family:Calibri;fill:#000000"><v:paragraph
+ v:horizAlign="1" /><v:tabList /><tspan
+ id="tspan4385-1"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.00000572px;line-height:125%;font-family:Calibri;-inkscape-font-specification:'Calibri, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">adapter</tspan><v:newlineChar /><v:newlineChar /><v:newlineChar /></text>
+</g></svg> \ No newline at end of file