[dpdk-dev] [PATCH v2] doc/sample_app_ug:add a VXLAN sample guide

Liu, Yong yong.liu at intel.com
Fri Jul 3 10:53:58 CEST 2015


Hi,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Jijiang Liu
> Sent: Friday, July 03, 2015 2:58 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH v2] doc/sample_app_ug:add a VXLAN sample guide
> 
> Add a VXLAN sample guide in the sample_app_ug directory.
> 
> It includes:
> 
>     - Add the overlay networking picture with svg format.
> 
>     - Add the TEP termination framework picture with svg format.
> 
>     - Add the tep_termination.rst file
> 
>     - Change the index.rst file for the above pictures index.
> 
> Signed-off-by: Jijiang Liu <jijiang.liu at intel.com>
> Signed-off-by: Thomas Long <thomas.long at intel.com>
> 
> v2 changes:
>     optimize the two pictures
>     add tep_termination index in index.rst file
>     fix a typo and a command line
> 
> ---
>  .../sample_app_ug/img/overlay_networking.svg       |  786
> ++++++++++++++++++++
>  .../sample_app_ug/img/tep_termination_arch.svg     |  548 ++++++++++++++
>  doc/guides/sample_app_ug/index.rst                 |    3 +
>  doc/guides/sample_app_ug/tep_termination.rst       |  321 ++++++++
>  4 files changed, 1658 insertions(+), 0 deletions(-)
>  create mode 100644 doc/guides/sample_app_ug/img/overlay_networking.svg
>  create mode 100644 doc/guides/sample_app_ug/img/tep_termination_arch.svg
>  create mode 100644 doc/guides/sample_app_ug/tep_termination.rst
> 
> diff --git a/doc/guides/sample_app_ug/img/overlay_networking.svg
> b/doc/guides/sample_app_ug/img/overlay_networking.svg
> new file mode 100644
> index 0000000..2ce440d
> --- /dev/null
> +++ b/doc/guides/sample_app_ug/img/overlay_networking.svg
> @@ -0,0 +1,786 @@
> +<?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 overlay_networking.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="8.5in" height="11in" viewBox="0 0 612 792"
> +		xml:space="preserve" color-interpolation-filters="sRGB"
> class="st29">
> +	<v:documentProperties v:langID="1033" v:viewMarkup="false">
> +		<v:userDefs>
> +			<v:ud v:nameU="msvSubprocessMaster" v:prompt=""
> v:val="VT4(Rectangle)"/>
> +			<v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>
> +			<v:ud v:nameU="msvConvertTheme"/>
> +		</v:userDefs>
> +	</v:documentProperties>
> +
> +	<style type="text/css">
> +	<![CDATA[
> +		.st1 {visibility:visible}
> +		.st2 {fill:#b2b2b2;fill-opacity:0.5;stroke:#b2b2b2;stroke-
> linecap:round;stroke-linejoin:round;stroke-opacity:0.5}
> +		.st3 {fill:#d8d8d8;fill-opacity:0.7;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st4 {fill:#000000;font-family:Calibri;font-size:1.16666em}
> +		.st5 {fill:#cdcdcd;fill-opacity:0.5;stroke:#cdcdcd;stroke-
> linecap:round;stroke-linejoin:round;stroke-opacity:0.5}
> +		.st6 {fill:#6b9bc7;stroke:#404040;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:0.25}
> +		.st7 {fill:#000000;font-family:Calibri;font-size:0.833336em}
> +		.st8 {fill:#f6d5b9;stroke:#404040;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:0.25}
> +		.st9 {fill:#000000;font-family:Calibri;font-size:0.75em}
> +		.st10 {fill:url(#grad0-21);stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st11 {fill:#000000;font-family:Calibri;font-size:1.00001em}
> +		.st12 {fill:#00b0f0;fill-opacity:0.8;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st13 {fill:#00b0f0;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st14 {fill:#7030a0;fill-opacity:0.6;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st15 {fill:url(#grad0-121)}
> +		.st16 {stroke:#0070c0;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1}
> +		.st17 {fill:url(#grad0-128)}
> +		.st18 {stroke:#d26d19;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1}
> +		.st19 {stroke:#cdcdcd;stroke-linecap:round;stroke-
> linejoin:round;stroke-opacity:0.5;stroke-width:1.5}
> +		.st20 {stroke:#d26d19;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1.5}
> +		.st21 {stroke:#0070c0;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1.5}
> +		.st22 {stroke:#7030a0;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1.5}
> +		.st23 {stroke:#43365a;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1.5}
> +		.st24 {stroke:#404040;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1.5}
> +		.st25 {stroke:#000000;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1.5}
> +		.st26 {fill:url(#grad0-236)}
> +		.st27 {stroke:#7030a0;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:1}
> +		.st28 {fill:#8fa350;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.5}
> +		.st29 {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-21" x1="0" y1="0" x2="1" y2="0"
> gradientTransform="rotate(270 0.5 0.5)">
> +			<stop offset="0" stop-color="#f0f0f0" stop-opacity="1"/>
> +			<stop offset="1" stop-color="#ffffff" stop-opacity="1"/>
> +		</linearGradient>
> +		<linearGradient id="grad0-121" x1="0" y1="0" x2="1" y2="0"
> gradientTransform="rotate(270 0.5 0.5)">
> +			<stop offset="0" stop-color="#f0f0f0" stop-opacity="1"/>
> +			<stop offset="1" stop-color="#0070c0" stop-opacity="1"/>
> +		</linearGradient>
> +		<linearGradient id="grad0-128" x1="0" y1="0" x2="1" y2="0"
> gradientTransform="rotate(270 0.5 0.5)">
> +			<stop offset="0" stop-color="#f0f0f0" stop-opacity="1"/>
> +			<stop offset="1" stop-color="#d26d19" stop-opacity="1"/>
> +		</linearGradient>
> +		<linearGradient id="grad0-236" x1="0" y1="0" x2="1" y2="0"
> gradientTransform="rotate(270 0.5 0.5)">
> +			<stop offset="0" stop-color="#f0f0f0" stop-opacity="1"/>
> +			<stop offset="1" stop-color="#7030a0" stop-opacity="1"/>
> +		</linearGradient>
> +	</defs>
> +	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
> +		<v:userDefs>
> +			<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +			<v:ud v:nameU="msvThemeEffects" v:val="VT0(16):26"/>
> +			<v:ud v:nameU="msvThemeOrder" v:val="VT0(0):26"/>
> +		</v:userDefs>
> +		<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="Flowchart" v:index="0"/>
> +		<v:layer v:name="Connector" v:index="1"/>
> +		<g id="shape3-1" v:mID="3" v:groupContext="shape"
> transform="translate(85.5,-493.875)">
> +			<title>Rounded rectangle</title>
> +			<desc>Host</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="50.5382" cy="730.125" width="101.08"
> height="123.75"/>
> +			<g id="shadow3-2" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M92.08 792 A9.00007 9.00007 -180 0 0
> 101.08 783 L101.08 677.25 A9.00007 9.00007 -180 0 0 92.08 668.25 L9
> +							 668.25 A9.00007 9.00007 -180 0
> 0 0 677.25 L0 783 A9.00007 9.00007 -180 0 0 9 792 L92.08 792 Z"
> +						class="st2"/>
> +			</g>
> +			<path d="M92.08 792 A9.00007 9.00007 -180 0 0 101.08 783
> L101.08 677.25 A9.00007 9.00007 -180 0 0 92.08 668.25 L9 668.25
> +						 A9.00007 9.00007 -180 0 0 0 677.25 L0
> 783 A9.00007 9.00007 -180 0 0 9 792 L92.08 792 Z" class="st3"/>
> +			<text x="37.4" y="784.72" class="st4"
> v:langID="2052"><v:paragraph
> v:horizAlign="1"/><v:tabList/><v:newlineChar/><v:newlineChar/><v:newlineCh
> ar/><v:newlineChar/><v:newlineChar/><v:newlineChar/>Host</text>
> 	</g>
> +		<g id="shape10-6" v:mID="10" v:groupContext="shape"
> transform="translate(33.75,-569.7)">
> +			<title>Rounded rectangle.10</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="19.4595" cy="779.85" width="38.92"
> height="24.3"/>
> +			<g id="shadow10-7" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M29.92 792 A9.00007 9.00007 -180 0 0
> 38.92 783 L38.92 776.7 A9.00007 9.00007 -180 0 0 29.92 767.7 L9 767.7
> +							 A9.00007 9.00007 -180 0 0 0
> 776.7 L0 783 A9.00007 9.00007 -180 0 0 9 792 L29.92 792 Z" class="st5"/>
> +			</g>
> +			<path d="M29.92 792 A9.00007 9.00007 -180 0 0 38.92 783
> L38.92 776.7 A9.00007 9.00007 -180 0 0 29.92 767.7 L9 767.7 A9.00007
> +						 9.00007 -180 0 0 0 776.7 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L29.92 792 Z" class="st6"/>
> +			<text x="12.35" y="782.85" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape11-11" v:mID="11" v:groupContext="shape"
> transform="translate(93.171,-566.775)">
> +			<title>Rounded rectangle.11</title>
> +			<desc>VNID 100</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="27.6645" cy="783.9" width="55.33"
> height="16.2"/>
> +			<g id="shadow11-12" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M47.23 792 A8.10006 8.10006 -180 0 0
> 55.33 783.9 A8.10006 8.10006 -180 0 0 47.23 775.8 L8.1 775.8 A8.10006
> +							 8.10006 -180 0 0 -0 783.9
> A8.10006 8.10006 -180 0 0 8.1 792 L47.23 792 Z" class="st5"/>
> +			</g>
> +			<path d="M47.23 792 A8.10006 8.10006 -180 0 0 55.33
> 783.9 A8.10006 8.10006 -180 0 0 47.23 775.8 L8.1 775.8 A8.10006 8.10006
> +						 -180 0 0 -0 783.9 A8.10006 8.10006 -
> 180 0 0 8.1 792 L47.23 792 Z" class="st8"/>
> +			<text x="10.44" y="786.6" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 100</text>
> 		</g>
> +		<g id="shape14-16" v:mID="14" v:groupContext="shape"
> v:layerMember="0" transform="translate(204.576,-381.375)">
> +			<title>Object</title>
> +			<desc>IP Network</desc>
> +			<v:custProps>
> +				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7"
> v:format="@" v:langID="1033"/>
> +				<v:cp v:nameU="Duration" v:lbl="Duration"
> v:type="2" v:langID="1033"/>
> +				<v:cp v:nameU="Resources" v:lbl="Resources"
> v:langID="1033"/>
> +			</v:custProps>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(1,1,1,1)"
> v:tabSpace="42.5197"/>
> +			<v:textRect cx="92.25" cy="708.331" width="184.5"
> height="167.337"/>
> +			<g id="shadow14-17" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M26.52 755.72 A21.2239 24.0427 -180 0 0
> 57.09 776.07 A29.3964 33.3006 -180 0 0 110.26 768.54 A8.89171 10.0726
> +							 -180 0 0 119.85 779.41 A33.8326
> 38.3261 -180 0 0 152.34 763.52 A21.0233 23.8155 -180 0 0 175.24 748.46
> +							 A36.2371 30.7434 -123.25 0 0
> 161.38 716.14 A124.285 106.223 -59.84 0 0 184.46 684.3 A46.9314 46.8568
> +							 -180 0 0 160.15 641.4 A28.0325
> 27.988 -180 0 0 106.53 654.79 A24.2803 21.6216 -26.25 0 0 66.28 656.03
> +							 A34.8986 32.2655 -147.51 0 0
> 22.74 701.63 A27.2819 27.2385 -180 0 0 26.52 755.72 Z" class="st5"/>
> +			</g>
> +			<path d="M26.52 755.72 A21.2239 24.0427 -180 0 0 57.09
> 776.07 A29.3964 33.3006 -180 0 0 110.26 768.54 A8.89171 10.0726
> +						 -180 0 0 119.85 779.41 A33.8326
> 38.3261 -180 0 0 152.34 763.52 A21.0233 23.8155 -180 0 0 175.24 748.46
> A36.2371
> +						 30.7434 -123.25 0 0 161.38 716.14
> A124.285 106.223 -59.84 0 0 184.46 684.3 A46.9314 46.8568 -180 0 0 160.15
> +						 641.4 A28.0325 27.988 -180 0 0 106.53
> 654.79 A24.2803 21.6216 -26.25 0 0 66.28 656.03 A34.8986 32.2655 -147.51
> +						 0 0 22.74 701.63 A27.2819 27.2385 -
> 180 0 0 26.52 755.72 Z" class="st10"/>
> +			<text x="65.14" y="711.93" class="st11"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>IP
> Network</text>		</g>
> +		<g id="shape1-23" v:mID="1" v:groupContext="shape"
> transform="translate(33.75,-521.1)">
> +			<title>Rounded rectangle.1</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="19.4595" cy="779.85" width="38.92"
> height="24.3"/>
> +			<g id="shadow1-24" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M29.92 792 A9.00007 9.00007 -180 0 0
> 38.92 783 L38.92 776.7 A9.00007 9.00007 -180 0 0 29.92 767.7 L9 767.7
> +							 A9.00007 9.00007 -180 0 0 0
> 776.7 L0 783 A9.00007 9.00007 -180 0 0 9 792 L29.92 792 Z" class="st5"/>
> +			</g>
> +			<path d="M29.92 792 A9.00007 9.00007 -180 0 0 38.92 783
> L38.92 776.7 A9.00007 9.00007 -180 0 0 29.92 767.7 L9 767.7 A9.00007
> +						 9.00007 -180 0 0 0 776.7 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L29.92 792 Z" class="st6"/>
> +			<text x="12.35" y="782.85" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape22-28" v:mID="22" v:groupContext="shape"
> transform="translate(93.171,-530.325)">
> +			<title>Rounded rectangle.22</title>
> +			<desc>VNID 101</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="27.6645" cy="783.9" width="55.33"
> height="16.2"/>
> +			<g id="shadow22-29" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M47.23 792 A8.10006 8.10006 -180 0 0
> 55.33 783.9 A8.10006 8.10006 -180 0 0 47.23 775.8 L8.1 775.8 A8.10006
> +							 8.10006 -180 0 0 -0 783.9
> A8.10006 8.10006 -180 0 0 8.1 792 L47.23 792 Z" class="st5"/>
> +			</g>
> +			<path d="M47.23 792 A8.10006 8.10006 -180 0 0 55.33
> 783.9 A8.10006 8.10006 -180 0 0 47.23 775.8 L8.1 775.8 A8.10006 8.10006
> +						 -180 0 0 -0 783.9 A8.10006 8.10006 -
> 180 0 0 8.1 792 L47.23 792 Z" class="st12"/>
> +			<text x="10.44" y="786.6" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 101</text>
> 		</g>
> +		<g id="shape23-33" v:mID="23" v:groupContext="shape"
> transform="translate(85.5,-288)">
> +			<title>Rounded rectangle.23</title>
> +			<desc>Host</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="51.75" cy="733.5" width="103.5"
> height="117"/>
> +			<g id="shadow23-34" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M94.5 792 A9.00007 9.00007 -180 0 0 103.5
> 783 L103.5 684 A9.00007 9.00007 -180 0 0 94.5 675 L9 675 A9.00007
> +							 9.00007 -180 0 0 0 684 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L94.5 792 Z" class="st2"/>
> +			</g>
> +			<path d="M94.5 792 A9.00007 9.00007 -180 0 0 103.5 783
> L103.5 684 A9.00007 9.00007 -180 0 0 94.5 675 L9 675 A9.00007
> +						 9.00007 -180 0 0 0 684 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L94.5 792 Z" class="st3"/>
> +			<text x="38.61" y="788.1" class="st4"
> v:langID="2052"><v:paragraph
> v:horizAlign="1"/><v:tabList/><v:newlineChar/><v:newlineChar/><v:newlineCh
> ar/><v:newlineChar/><v:newlineChar/><v:newlineChar/>Host</text>
> 	</g>
> +		<g id="shape24-38" v:mID="24" v:groupContext="shape"
> transform="translate(33.75,-362.1)">
> +			<title>Rounded rectangle.24</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="20.25" cy="780.3" width="40.51"
> height="23.4"/>
> +			<g id="shadow24-39" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M31.5 792 A9.00007 9.00007 -180 0 0 40.5
> 783 L40.5 777.6 A9.00007 9.00007 -180 0 0 31.5 768.6 L9 768.6 A9.00007
> +							 9.00007 -180 0 0 0 777.6 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L31.5 792 Z" class="st5"/>
> +			</g>
> +			<path d="M31.5 792 A9.00007 9.00007 -180 0 0 40.5 783
> L40.5 777.6 A9.00007 9.00007 -180 0 0 31.5 768.6 L9 768.6 A9.00007
> +						 9.00007 -180 0 0 0 777.6 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L31.5 792 Z" class="st6"/>
> +			<text x="13.14" y="783.3" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape25-43" v:mID="25" v:groupContext="shape"
> transform="translate(95.4166,-358.2)">
> +			<title>Rounded rectangle.25</title>
> +			<desc>VNID 100</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="28.7917" cy="784.2" width="57.59"
> height="15.6"/>
> +			<g id="shadow25-44" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M49.78 792 A7.80006 7.80006 -180 0 0
> 57.58 784.2 A7.80006 7.80006 -180 0 0 49.78 776.4 L7.8 776.4 A7.80006
> +							 7.80006 -180 0 0 -0 784.2
> A7.80006 7.80006 -180 0 0 7.8 792 L49.78 792 Z" class="st5"/>
> +			</g>
> +			<path d="M49.78 792 A7.80006 7.80006 -180 0 0 57.58
> 784.2 A7.80006 7.80006 -180 0 0 49.78 776.4 L7.8 776.4 A7.80006 7.80006
> +						 -180 0 0 -0 784.2 A7.80006 7.80006 -
> 180 0 0 7.8 792 L49.78 792 Z" class="st8"/>
> +			<text x="11.57" y="786.9" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 100</text>
> 		</g>
> +		<g id="shape31-48" v:mID="31" v:groupContext="shape"
> transform="translate(33.75,-315.3)">
> +			<title>Rounded rectangle.31</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="20.6757" cy="780.3" width="41.36"
> height="23.4"/>
> +			<g id="shadow31-49" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M32.35 792 A9.00007 9.00007 -180 0 0
> 41.35 783 L41.35 777.6 A9.00007 9.00007 -180 0 0 32.35 768.6 L9 768.6
> +							 A9.00007 9.00007 -180 0 0 0
> 777.6 L0 783 A9.00007 9.00007 -180 0 0 9 792 L32.35 792 Z" class="st5"/>
> +			</g>
> +			<path d="M32.35 792 A9.00007 9.00007 -180 0 0 41.35 783
> L41.35 777.6 A9.00007 9.00007 -180 0 0 32.35 768.6 L9 768.6 A9.00007
> +						 9.00007 -180 0 0 0 777.6 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L32.35 792 Z" class="st6"/>
> +			<text x="13.56" y="783.3" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape32-53" v:mID="32" v:groupContext="shape"
> transform="translate(95.4166,-323.1)">
> +			<title>Rounded rectangle.32</title>
> +			<desc>VNID 101</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="28.7917" cy="784.2" width="57.59"
> height="15.6"/>
> +			<g id="shadow32-54" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M49.78 792 A7.80006 7.80006 -180 0 0
> 57.58 784.2 A7.80006 7.80006 -180 0 0 49.78 776.4 L7.8 776.4 A7.80006
> +							 7.80006 -180 0 0 -0 784.2
> A7.80006 7.80006 -180 0 0 7.8 792 L49.78 792 Z" class="st5"/>
> +			</g>
> +			<path d="M49.78 792 A7.80006 7.80006 -180 0 0 57.58
> 784.2 A7.80006 7.80006 -180 0 0 49.78 776.4 L7.8 776.4 A7.80006 7.80006
> +						 -180 0 0 -0 784.2 A7.80006 7.80006 -
> 180 0 0 7.8 792 L49.78 792 Z" class="st13"/>
> +			<text x="11.57" y="786.9" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 101</text>
> 		</g>
> +		<g id="shape34-58" v:mID="34" v:groupContext="shape"
> transform="translate(407.076,-491.625)">
> +			<title>Rounded rectangle.34</title>
> +			<desc>Host</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="48.4618" cy="730.125" width="96.93"
> height="123.75"/>
> +			<g id="shadow34-59" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M87.92 792 A9.00007 9.00007 -180 0 0
> 96.92 783 L96.92 677.25 A9.00007 9.00007 -180 0 0 87.92 668.25 L9 668.25
> +							 A9.00007 9.00007 -180 0 0 0
> 677.25 L0 783 A9.00007 9.00007 -180 0 0 9 792 L87.92 792 Z" class="st2"/>
> +			</g>
> +			<path d="M87.92 792 A9.00007 9.00007 -180 0 0 96.92 783
> L96.92 677.25 A9.00007 9.00007 -180 0 0 87.92 668.25 L9 668.25
> +						 A9.00007 9.00007 -180 0 0 0 677.25 L0
> 783 A9.00007 9.00007 -180 0 0 9 792 L87.92 792 Z" class="st3"/>
> +			<text x="35.33" y="784.72" class="st4"
> v:langID="2052"><v:paragraph
> v:horizAlign="1"/><v:tabList/><v:newlineChar/><v:newlineChar/><v:newlineCh
> ar/><v:newlineChar/><v:newlineChar/><v:newlineChar/>Host</text>
> 	</g>
> +		<g id="shape35-63" v:mID="35" v:groupContext="shape"
> transform="translate(520.049,-580.313)">
> +			<title>Rounded rectangle.35</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="18.8889" cy="779.625" width="37.78"
> height="24.75"/>
> +			<g id="shadow35-64" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M28.78 792 A9.00007 9.00007 -180 0 0
> 37.78 783 L37.78 776.25 A9.00007 9.00007 -180 0 0 28.78 767.25 L9 767.25
> +							 A9.00007 9.00007 -180 0 0 0
> 776.25 L0 783 A9.00007 9.00007 -180 0 0 9 792 L28.78 792 Z" class="st5"/>
> +			</g>
> +			<path d="M28.78 792 A9.00007 9.00007 -180 0 0 37.78 783
> L37.78 776.25 A9.00007 9.00007 -180 0 0 28.78 767.25 L9 767.25
> +						 A9.00007 9.00007 -180 0 0 0 776.25 L0
> 783 A9.00007 9.00007 -180 0 0 9 792 L28.78 792 Z" class="st6"/>
> +			<text x="11.78" y="782.63" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape36-68" v:mID="36" v:groupContext="shape"
> transform="translate(441.076,-582.375)">
> +			<title>Rounded rectangle.36</title>
> +			<desc>VNID 100</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="26.4444" cy="783.75" width="52.89"
> height="16.5"/>
> +			<g id="shadow36-69" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M44.64 792 A8.25006 8.25006 -180 0 0
> 52.89 783.75 A8.25006 8.25006 -180 0 0 44.64 775.5 L8.25 775.5 A8.25006
> +							 8.25006 -180 0 0 0 783.75
> A8.25006 8.25006 -180 0 0 8.25 792 L44.64 792 Z" class="st5"/>
> +			</g>
> +			<path d="M44.64 792 A8.25006 8.25006 -180 0 0 52.89
> 783.75 A8.25006 8.25006 -180 0 0 44.64 775.5 L8.25 775.5 A8.25006
> +						 8.25006 -180 0 0 0 783.75 A8.25006
> 8.25006 -180 0 0 8.25 792 L44.64 792 Z" class="st8"/>
> +			<text x="9.22" y="786.45" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 100</text>
> 		</g>
> +		<g id="shape37-73" v:mID="37" v:groupContext="shape"
> transform="translate(520.049,-541.125)">
> +			<title>Rounded rectangle.37</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="18.8889" cy="779.625" width="37.78"
> height="24.75"/>
> +			<g id="shadow37-74" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M28.78 792 A9.00007 9.00007 -180 0 0
> 37.78 783 L37.78 776.25 A9.00007 9.00007 -180 0 0 28.78 767.25 L9 767.25
> +							 A9.00007 9.00007 -180 0 0 0
> 776.25 L0 783 A9.00007 9.00007 -180 0 0 9 792 L28.78 792 Z" class="st5"/>
> +			</g>
> +			<path d="M28.78 792 A9.00007 9.00007 -180 0 0 37.78 783
> L37.78 776.25 A9.00007 9.00007 -180 0 0 28.78 767.25 L9 767.25
> +						 A9.00007 9.00007 -180 0 0 0 776.25 L0
> 783 A9.00007 9.00007 -180 0 0 9 792 L28.78 792 Z" class="st6"/>
> +			<text x="11.78" y="782.63" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape38-78" v:mID="38" v:groupContext="shape"
> transform="translate(441.076,-551.438)">
> +			<title>Rounded rectangle.38</title>
> +			<desc>VNID 101</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="26.4444" cy="783.75" width="52.89"
> height="16.5"/>
> +			<g id="shadow38-79" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M44.64 792 A8.25006 8.25006 -180 0 0
> 52.89 783.75 A8.25006 8.25006 -180 0 0 44.64 775.5 L8.25 775.5 A8.25006
> +							 8.25006 -180 0 0 0 783.75
> A8.25006 8.25006 -180 0 0 8.25 792 L44.64 792 Z" class="st5"/>
> +			</g>
> +			<path d="M44.64 792 A8.25006 8.25006 -180 0 0 52.89
> 783.75 A8.25006 8.25006 -180 0 0 44.64 775.5 L8.25 775.5 A8.25006
> +						 8.25006 -180 0 0 0 783.75 A8.25006
> 8.25006 -180 0 0 8.25 792 L44.64 792 Z" class="st12"/>
> +			<text x="9.22" y="786.45" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 101</text>
> 		</g>
> +		<g id="shape40-83" v:mID="40" v:groupContext="shape"
> transform="translate(398.076,-288)">
> +			<title>Rounded rectangle.40</title>
> +			<desc>Host</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="52.9618" cy="727.875" width="105.93"
> height="128.25"/>
> +			<g id="shadow40-84" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M96.92 792 A9.00007 9.00007 -180 0 0
> 105.92 783 L105.92 672.75 A9.00007 9.00007 -180 0 0 96.92 663.75 L9
> +							 663.75 A9.00007 9.00007 -180 0
> 0 0 672.75 L0 783 A9.00007 9.00007 -180 0 0 9 792 L96.92 792 Z"
> +						class="st2"/>
> +			</g>
> +			<path d="M96.92 792 A9.00007 9.00007 -180 0 0 105.92 783
> L105.92 672.75 A9.00007 9.00007 -180 0 0 96.92 663.75 L9 663.75
> +						 A9.00007 9.00007 -180 0 0 0 672.75 L0
> 783 A9.00007 9.00007 -180 0 0 9 792 L96.92 792 Z" class="st3"/>
> +			<text x="39.83" y="782.47" class="st4"
> v:langID="2052"><v:paragraph
> v:horizAlign="1"/><v:tabList/><v:newlineChar/><v:newlineChar/><v:newlineCh
> ar/><v:newlineChar/><v:newlineChar/><v:newlineChar/>Host</text>
> 	</g>
> +		<g id="shape41-88" v:mID="41" v:groupContext="shape"
> transform="translate(522,-369.225)">
> +			<title>Rounded rectangle.41</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="21.1806" cy="779.175" width="42.37"
> height="25.65"/>
> +			<g id="shadow41-89" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M33.36 792 A9.00007 9.00007 -180 0 0
> 42.36 783 L42.36 775.35 A9.00007 9.00007 -180 0 0 33.36 766.35 L9 766.35
> +							 A9.00007 9.00007 -180 0 0 0
> 775.35 L0 783 A9.00007 9.00007 -180 0 0 9 792 L33.36 792 Z" class="st5"/>
> +			</g>
> +			<path d="M33.36 792 A9.00007 9.00007 -180 0 0 42.36 783
> L42.36 775.35 A9.00007 9.00007 -180 0 0 33.36 766.35 L9 766.35
> +						 A9.00007 9.00007 -180 0 0 0 775.35 L0
> 783 A9.00007 9.00007 -180 0 0 9 792 L33.36 792 Z" class="st6"/>
> +			<text x="14.07" y="782.17" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape42-93" v:mID="42" v:groupContext="shape"
> transform="translate(436.201,-369)">
> +			<title>Rounded rectangle.42</title>
> +			<desc>VNID 100</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="29.6528" cy="783.45" width="59.31"
> height="17.1"/>
> +			<g id="shadow42-94" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M50.76 792 A8.55007 8.55007 -180 0 0
> 59.31 783.45 A8.55007 8.55007 -180 0 0 50.76 774.9 L8.55 774.9 A8.55007
> +							 8.55007 -180 0 0 0 783.45
> A8.55007 8.55007 -180 0 0 8.55 792 L50.76 792 Z" class="st5"/>
> +			</g>
> +			<path d="M50.76 792 A8.55007 8.55007 -180 0 0 59.31
> 783.45 A8.55007 8.55007 -180 0 0 50.76 774.9 L8.55 774.9 A8.55007
> +						 8.55007 -180 0 0 0 783.45 A8.55007
> 8.55007 -180 0 0 8.55 792 L50.76 792 Z" class="st8"/>
> +			<text x="12.43" y="786.15" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 100</text>
> 		</g>
> +		<g id="shape43-98" v:mID="43" v:groupContext="shape"
> transform="translate(523.319,-317.925)">
> +			<title>Rounded rectangle.43</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="21.1806" cy="779.175" width="42.37"
> height="25.65"/>
> +			<g id="shadow43-99" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M33.36 792 A9.00007 9.00007 -180 0 0
> 42.36 783 L42.36 775.35 A9.00007 9.00007 -180 0 0 33.36 766.35 L9 766.35
> +							 A9.00007 9.00007 -180 0 0 0
> 775.35 L0 783 A9.00007 9.00007 -180 0 0 9 792 L33.36 792 Z" class="st5"/>
> +			</g>
> +			<path d="M33.36 792 A9.00007 9.00007 -180 0 0 42.36 783
> L42.36 775.35 A9.00007 9.00007 -180 0 0 33.36 766.35 L9 766.35
> +						 A9.00007 9.00007 -180 0 0 0 775.35 L0
> 783 A9.00007 9.00007 -180 0 0 9 792 L33.36 792 Z" class="st6"/>
> +			<text x="14.07" y="782.17" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape44-103" v:mID="44" v:groupContext="shape"
> transform="translate(436.201,-324.9)">
> +			<title>Rounded rectangle.44</title>
> +			<desc>VNID 102</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="29.6528" cy="783.45" width="59.31"
> height="17.1"/>
> +			<g id="shadow44-104" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M50.76 792 A8.55007 8.55007 -180 0 0
> 59.31 783.45 A8.55007 8.55007 -180 0 0 50.76 774.9 L8.55 774.9 A8.55007
> +							 8.55007 -180 0 0 0 783.45
> A8.55007 8.55007 -180 0 0 8.55 792 L50.76 792 Z" class="st5"/>
> +			</g>
> +			<path d="M50.76 792 A8.55007 8.55007 -180 0 0 59.31
> 783.45 A8.55007 8.55007 -180 0 0 50.76 774.9 L8.55 774.9 A8.55007
> +						 8.55007 -180 0 0 0 783.45 A8.55007
> 8.55007 -180 0 0 8.55 792 L50.76 792 Z" class="st14"/>
> +			<text x="12.43" y="786.15" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 102</text>
> 		</g>
> +		<g id="shape46-108" v:mID="46" v:groupContext="shape"
> transform="translate(441.076,-518.438)">
> +			<title>Rounded rectangle.46</title>
> +			<desc>VNID 102</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="26.4444" cy="783.75" width="52.89"
> height="16.5"/>
> +			<g id="shadow46-109" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M44.64 792 A8.25006 8.25006 -180 0 0
> 52.89 783.75 A8.25006 8.25006 -180 0 0 44.64 775.5 L8.25 775.5 A8.25006
> +							 8.25006 -180 0 0 0 783.75
> A8.25006 8.25006 -180 0 0 8.25 792 L44.64 792 Z" class="st5"/>
> +			</g>
> +			<path d="M44.64 792 A8.25006 8.25006 -180 0 0 52.89
> 783.75 A8.25006 8.25006 -180 0 0 44.64 775.5 L8.25 775.5 A8.25006
> +						 8.25006 -180 0 0 0 783.75 A8.25006
> 8.25006 -180 0 0 8.25 792 L44.64 792 Z" class="st14"/>
> +			<text x="9.22" y="786.45" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VNID 102</text>
> 		</g>
> +		<g id="shape47-113" v:mID="47" v:groupContext="shape"
> transform="translate(520.049,-501.937)">
> +			<title>Rounded rectangle.47</title>
> +			<desc>VM</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="18.8889" cy="779.625" width="37.78"
> height="24.75"/>
> +			<g id="shadow47-114" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M28.78 792 A9.00007 9.00007 -180 0 0
> 37.78 783 L37.78 776.25 A9.00007 9.00007 -180 0 0 28.78 767.25 L9 767.25
> +							 A9.00007 9.00007 -180 0 0 0
> 776.25 L0 783 A9.00007 9.00007 -180 0 0 9 792 L28.78 792 Z" class="st5"/>
> +			</g>
> +			<path d="M28.78 792 A9.00007 9.00007 -180 0 0 37.78 783
> L37.78 776.25 A9.00007 9.00007 -180 0 0 28.78 767.25 L9 767.25
> +						 A9.00007 9.00007 -180 0 0 0 776.25 L0
> 783 A9.00007 9.00007 -180 0 0 9 792 L28.78 792 Z" class="st6"/>
> +			<text x="11.78" y="782.63" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM</text>
> 	</g>
> +		<g id="shape48-118" v:mID="48" v:groupContext="shape"
> transform="translate(940.314,236.405) rotate(88.7578)">
> +			<title>Arced arrow</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="ControlX" v:val="VT0(0.125):0"/>
> +				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="ControlX" v:prompt=""
> v:val="VT0(0.0625):1"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<path d="M1.13 787.65 L3.31 788.21 L0 792 L-1.04 787.08
> L1.13 787.65 ZM206.44 787.65 L204.26 788.21 L207.57 792 L208.62
> +						 787.08 L206.44 787.65 Z"
> class="st15"/>
> +			<path d="M1.13 787.65 A106.681 106.681 0 0 1 206.44
> 787.65" class="st16"/>
> +			<path d="M1.13 787.65 L3.31 788.21 L0 792 L-1.04 787.08
> L1.13 787.65" class="st16"/>
> +			<path d="M206.44 787.65 L204.26 788.21 L207.57 792
> L208.62 787.08 L206.44 787.65" class="st16"/>
> +		</g>
> +		<g id="shape49-125" v:mID="49" v:groupContext="shape"
> transform="translate(489.312,991.905) rotate(176.508)">
> +			<title>Arced arrow.49</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="ControlX" v:val="VT0(0.125):0"/>
> +				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="ControlX" v:prompt=""
> v:val="VT0(0.0625):1"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<path d="M2.72 788.42 L4.51 789.78 L0 792 L0.93 787.06
> L2.72 788.42 ZM292.83 788.42 L291.03 789.78 L295.55 792 L294.62
> +						 787.06 L292.83 788.42 Z"
> class="st17"/>
> +			<path d="M2.72 788.42 A183.886 183.886 0 0 1 292.83
> 788.42" class="st18"/>
> +			<path d="M2.72 788.42 L4.51 789.78 L0 792 L0.93 787.06
> L2.72 788.42" class="st18"/>
> +			<path d="M292.83 788.42 L291.03 789.78 L295.55 792
> L294.62 787.06 L292.83 788.42" class="st18"/>
> +		</g>
> +		<g id="shape50-132" v:mID="50" v:groupContext="shape"
> transform="translate(120.726,-365.342) rotate(-2.33544)">
> +			<title>Arced arrow.50</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="ControlX" v:val="VT0(0.125):0"/>
> +				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="ControlX" v:prompt=""
> v:val="VT0(0.0625):1"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<path d="M3.79 789.57 L5 791.47 L0 792 L2.58 787.68
> L3.79 789.57 ZM279.65 789.57 L278.43 791.47 L283.44 792 L280.86 787.68
> +						 L279.65 789.57 Z" class="st17"/>
> +			<path d="M3.79 789.57 A259.249 259.249 0 0 1 279.65
> 789.57" class="st18"/>
> +			<path d="M3.79 789.57 L5 791.47 L0 792 L2.58 787.68
> L3.79 789.57" class="st18"/>
> +			<path d="M279.65 789.57 L278.43 791.47 L283.44 792
> L280.86 787.68 L279.65 789.57" class="st18"/>
> +		</g>
> +		<g id="shape4-138" v:mID="4" v:groupContext="shape"
> transform="translate(348.104,-324.947) rotate(20.2291)">
> +			<title>Sheet.4</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow4-139" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.84909,0.853261)"
> class="st1">
> +				<path d="M0 792 L22.56 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L22.56 792" class="st20"/>
> +		</g>
> +		<g id="shape5-145" v:mID="5" v:groupContext="shape"
> transform="translate(-74.2157,-312.797) rotate(-10.8671)">
> +			<title>Sheet.5</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow5-146" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,2.77556E-017,-2.77556E-
> 017,1,1.14269,1.68566)" class="st1">
> +				<path d="M0 792 L20.69 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L20.69 792" class="st21"/>
> +		</g>
> +		<g id="shape6-152" v:mID="6" v:groupContext="shape"
> transform="translate(327.757,-539.646) rotate(18.7888)">
> +			<title>Sheet.6</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow6-153" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.82706,0.89947)"
> class="st1">
> +				<path d="M0 792 L21.66 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L21.66 792" class="st20"/>
> +		</g>
> +		<g id="shape7-159" v:mID="7" v:groupContext="shape"
> transform="translate(-121.163,-509.165) rotate(-14.1663)">
> +			<title>Sheet.7</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow7-160" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.04379,1.74863)"
> class="st1">
> +				<path d="M0 792 L21.15 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L21.15 792" class="st21"/>
> +		</g>
> +		<g id="shape8-166" v:mID="8" v:groupContext="shape"
> transform="translate(431.534,-588.161) rotate(-4.52117)">
> +			<title>Sheet.8</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow8-167" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.32201,1.54903)"
> class="st1">
> +				<path d="M0 792 L26.16 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L26.16 792" class="st20"/>
> +		</g>
> +		<g id="shape13-173" v:mID="13" v:groupContext="shape"
> transform="translate(676.771,-538.302) rotate(13.3451)">
> +			<title>Sheet.13</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow13-174" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.73349,1.06874)"
> class="st1">
> +				<path d="M0 792 L26.81 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L26.81 792" class="st21"/>
> +		</g>
> +		<g id="shape15-180" v:mID="15" v:groupContext="shape"
> transform="translate(833.452,-450.238) rotate(25.3816)">
> +			<title>Sheet.15</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow15-181" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.91825,0.683753)"
> class="st1">
> +				<path d="M0 792 L28.87 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L28.87 792" class="st22"/>
> +		</g>
> +		<g id="shape16-187" v:mID="16" v:groupContext="shape"
> transform="translate(362.881,-366.366) rotate(-9.64002)">
> +			<title>Sheet.16</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow16-188" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.17853,1.6608)"
> class="st1">
> +				<path d="M0 792 L26.87 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L26.87 792" class="st20"/>
> +		</g>
> +		<g id="shape17-194" v:mID="17" v:groupContext="shape"
> transform="translate(572.033,-329.744) rotate(5.54482)">
> +			<title>Sheet.17</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow17-195" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.5724,1.29412)"
> class="st1">
> +				<path d="M0 792 L27.94 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L27.94 792" class="st23"/>
> +		</g>
> +		<g id="shape18-201" v:mID="18" v:groupContext="shape"
> transform="translate(-464.654,-1.71391) rotate(-55.621)">
> +			<title>Sheet.18</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow18-202" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,-
> 0.375346,2.00158)" class="st1">
> +				<path d="M0 792 L71.36 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L71.36 792" class="st24"/>
> +		</g>
> +		<g id="shape19-208" v:mID="19" v:groupContext="shape"
> transform="translate(1074.07,13.0882) rotate(62.5098)">
> +			<title>Sheet.19</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow19-209" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.94211,-
> 0.612711)" class="st1">
> +				<path d="M0 792 L57.58 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L57.58 792" class="st24"/>
> +		</g>
> +		<g id="shape20-215" v:mID="20" v:groupContext="shape"
> transform="translate(835.264,-218.138) rotate(54.9898)">
> +			<title>Sheet.20</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow20-216" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,2.00559,-
> 0.353273)" class="st1">
> +				<path d="M0 792 L62.72 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L62.72 792" class="st25"/>
> +		</g>
> +		<g id="shape21-222" v:mID="21" v:groupContext="shape"
> transform="translate(985.087,779.949) rotate(133.129)">
> +			<title>Sheet.21</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow21-223" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,0.0664758,-
> 2.03538)" class="st1">
> +				<path d="M0 792 L43.41 792" class="st19"/>
> +			</g>
> +			<path d="M0 792 L43.41 792" class="st24"/>
> +		</g>
> +		<g id="shape68-229" v:mID="68" v:groupContext="shape"
> transform="translate(933.635,852.514) rotate(141.544)">
> +			<title>Arced arrow.68</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="ControlX" v:val="VT0(0.125):0"/>
> +				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="ControlX" v:prompt=""
> v:val="VT0(0):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<path d="M0 792 A329.322 329.322 0 0 1 367.87 792"
> class="st16"/>
> +		</g>
> +		<g id="shape70-233" v:mID="70" v:groupContext="shape"
> transform="translate(-355.547,438.576) rotate(-88.5548)">
> +			<title>Arced arrow.70</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="ControlX" v:val="VT0(0.125):0"/>
> +				<v:ud v:nameU="Scale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="ControlX" v:prompt=""
> v:val="VT0(0.06400492):1"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<path d="M1.04 787.51 L3.29 788.03 L0 792 L-1.2 786.99
> L1.04 787.51 ZM192.26 787.51 L190.01 788.03 L193.3 792 L194.5
> +						 786.99 L192.26 787.51 Z"
> class="st26"/>
> +			<path d="M1.04 787.51 A98.7059 98.7059 0 0 1 192.26
> 787.51" class="st27"/>
> +			<path d="M1.04 787.51 L3.29 788.03 L0 792 L-1.2 786.99
> L1.04 787.51" class="st27"/>
> +			<path d="M192.26 787.51 L190.01 788.03 L193.3 792 L194.5
> 786.99 L192.26 787.51" class="st27"/>
> +		</g>
> +		<g id="shape84-240" v:mID="84" v:groupContext="shape"
> transform="translate(157.5,-510.75)">
> +			<title>Sheet.84</title>
> +			<desc>TEP</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="11.25" cy="753.75" width="22.5"
> height="76.5"/>
> +			<rect x="0" y="715.5" width="22.5" height="76.5"
> class="st28"/>
> +			<text x="4.54" y="756.45" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>TEP</text>
> 	</g>
> +		<g id="shape86-243" v:mID="86" v:groupContext="shape"
> transform="translate(162,-315)">
> +			<title>Sheet.86</title>
> +			<desc>TEP</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="11.8125" cy="753.75" width="23.63"
> height="76.5"/>
> +			<rect x="0" y="715.5" width="23.625" height="76.5"
> class="st28"/>
> +			<text x="5.1" y="756.45" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>TEP</text>
> 	</g>
> +		<g id="shape87-246" v:mID="87" v:groupContext="shape"
> transform="translate(405,-324)">
> +			<title>Sheet.87</title>
> +			<desc>TEP</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="11.8125" cy="753.75" width="23.63"
> height="76.5"/>
> +			<rect x="0" y="715.5" width="23.625" height="76.5"
> class="st28"/>
> +			<text x="5.1" y="756.45" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>TEP</text>
> 	</g>
> +		<g id="shape88-249" v:mID="88" v:groupContext="shape"
> transform="translate(411.75,-513)">
> +			<title>Sheet.88</title>
> +			<desc>TEP</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="11.25" cy="754.875" width="22.5"
> height="74.25"/>
> +			<rect x="0" y="717.75" width="22.5" height="74.25"
> class="st28"/>
> +			<text x="4.54" y="757.58" class="st9"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>TEP</text>
> 	</g>
> +	</g>
> +</svg>
> diff --git a/doc/guides/sample_app_ug/img/tep_termination_arch.svg
> b/doc/guides/sample_app_ug/img/tep_termination_arch.svg
> new file mode 100644
> index 0000000..6f4754d
> --- /dev/null
> +++ b/doc/guides/sample_app_ug/img/tep_termination_arch.svg
> @@ -0,0 +1,548 @@
> +<?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 VXLAN.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="8.5in" height="11in" viewBox="0 0 612 792"
> +		xml:space="preserve" color-interpolation-filters="sRGB"
> class="st24">
> +	<v:documentProperties v:langID="1033" v:viewMarkup="false">
> +		<v:userDefs>
> +			<v:ud v:nameU="msvSubprocessMaster" v:prompt=""
> v:val="VT4(Rectangle)"/>
> +			<v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>
> +			<v:ud v:nameU="msvConvertTheme"/>
> +		</v:userDefs>
> +	</v:documentProperties>
> +
> +	<style type="text/css">
> +	<![CDATA[
> +		.st1 {visibility:visible}
> +		.st2 {fill:#cdcdcd;fill-opacity:0.5;stroke:#cdcdcd;stroke-
> linecap:round;stroke-linejoin:round;stroke-opacity:0.5}
> +		.st3 {fill:#d1dab4;stroke:#404040;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:0.25}
> +		.st4 {fill:#6b9bc7;stroke:#404040;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:0.25}
> +		.st5 {fill:#000000;font-family:Calibri;font-
> size:0.916672em;font-weight:bold}
> +		.st6 {fill:#92d050;stroke:#404040;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:0.25}
> +		.st7 {fill:#000000;font-family:Calibri;font-size:0.833336em}
> +		.st8 {font-size:1em}
> +		.st9 {fill:#3e75a6;stroke:#404040;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:0.25}
> +		.st10 {fill:#d8d8d8;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.24}
> +		.st11 {fill:#404040;fill-opacity:1;stroke:#404040;stroke-
> opacity:1;stroke-width:0.08695652173913}
> +		.st12 {fill:none;stroke:none;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:0.25}
> +		.st13 {fill:#000000;font-family:Calibri;font-
> size:1.00001em;font-weight:bold}
> +		.st14 {fill:#000000;font-family:Calibri;font-size:1.00001em}
> +		.st15 {fill:#000000;font-family:Calibri;font-
> size:1.16666em;font-weight:bold}
> +		.st16 {fill:url(#grad0-72);stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st17 {fill:url(#grad0-83);stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st18 {fill:#f2c096;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st19 {fill:#e1ebf3;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st20 {fill:#000000;font-family:Calibri;font-size:1.16666em}
> +		.st21 {font-size:0.857157em}
> +		.st22 {fill:#d26d19;stroke:none;stroke-linecap:round;stroke-
> linejoin:round;stroke-width:0.75}
> +		.st23 {fill:#a6c3dd;stroke:#404040;stroke-
> linecap:round;stroke-linejoin:round;stroke-width:0.25}
> +		.st24 {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-72" x1="0" y1="0" x2="1" y2="0"
> gradientTransform="rotate(270 0.5 0.5)">
> +			<stop offset="0" stop-color="#efaf7a" stop-opacity="1"/>
> +			<stop offset="1" stop-color="#f2bf96" stop-opacity="1"/>
> +		</linearGradient>
> +		<linearGradient id="grad0-83" x1="0" y1="0" x2="1" y2="0"
> gradientTransform="rotate(270 0.5 0.5)">
> +			<stop offset="0" stop-color="#f0f0f0" stop-opacity="1"/>
> +			<stop offset="1" stop-color="#ffffff" stop-opacity="1"/>
> +		</linearGradient>
> +	</defs>
> +	<defs id="Markers">
> +		<g id="lend13">
> +			<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"/>
> +		</g>
> +		<marker id="mrkr13-28" class="st11" v:arrowType="13"
> v:arrowSize="2" v:setback="34.5" refX="-34.5" orient="auto"
> +				markerUnits="strokeWidth" overflow="visible">
> +			<use xlink:href="#lend13" transform="scale(-11.5,-11.5)
> "/>
> +		</marker>
> +	</defs>
> +	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
> +		<v:userDefs>
> +			<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +			<v:ud v:nameU="msvThemeEffects" v:val="VT0(16):26"/>
> +			<v:ud v:nameU="msvThemeOrder" v:val="VT0(0):26"/>
> +		</v:userDefs>
> +		<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="Flowchart" v:index="0"/>
> +		<g id="shape33-1" v:mID="33" v:groupContext="shape"
> transform="translate(117,-432)">
> +			<title>Rectangle.18</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow33-2" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<rect x="0" y="666" width="342" height="126"
> class="st2"/>
> +			</g>
> +			<rect x="0" y="666" width="342" height="126"
> class="st3"/>
> +		</g>
> +		<g id="shape10-5" v:mID="10" v:groupContext="shape"
> transform="translate(216,-522)">
> +			<title>Rounded rectangle.10</title>
> +			<desc>Userspace vhost Interface</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="74.25" cy="778.5" width="148.5"
> height="27"/>
> +			<g id="shadow10-6" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M139.5 792 A9.00007 9.00007 -180 0 0
> 148.5 783 L148.5 774 A9.00007 9.00007 -180 0 0 139.5 765 L9 765 A9.00007
> +							 9.00007 -180 0 0 0 774 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L139.5 792 Z" class="st2"/>
> +			</g>
> +			<path d="M139.5 792 A9.00007 9.00007 -180 0 0 148.5 783
> L148.5 774 A9.00007 9.00007 -180 0 0 139.5 765 L9 765 A9.00007
> +						 9.00007 -180 0 0 0 774 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L139.5 792 Z" class="st4"/>
> +			<text x="15.14" y="781.8" class="st5"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Userspace vhost
> Interface  </text>		</g>
> +		<g id="shape12-10" v:mID="12" v:groupContext="shape"
> transform="translate(355.5,-481.5)">
> +			<title>Rounded rectangle.12</title>
> +			<desc>Encapsulation</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="45" cy="785.25" width="90"
> height="13.5"/>
> +			<g id="shadow12-11" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M83.25 792 A6.75005 6.75005 -180 0 0 90
> 785.25 A6.75005 6.75005 -180 0 0 83.25 778.5 L6.75 778.5 A6.75005
> +							 6.75005 -180 0 0 0 785.25
> A6.75005 6.75005 -180 0 0 6.75 792 L83.25 792 Z" class="st2"/>
> +			</g>
> +			<path d="M83.25 792 A6.75005 6.75005 -180 0 0 90 785.25
> A6.75005 6.75005 -180 0 0 83.25 778.5 L6.75 778.5 A6.75005 6.75005
> +						 -180 0 0 0 785.25 A6.75005 6.75005 -
> 180 0 0 6.75 792 L83.25 792 Z" class="st6"/>
> +			<text x="16.58" y="788.25" class="st7"
> v:langID="1033"><v:paragraph
> v:horizAlign="1"/><v:tabList/>Encapsulation</text>		</g>
> +		<g id="shape13-15" v:mID="13" v:groupContext="shape"
> transform="translate(153,-483.75)">
> +			<title>Rounded rectangle.13</title>
> +			<desc>Decapsulation</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="36" cy="785.25" width="72"
> height="13.5"/>
> +			<g id="shadow13-16" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M65.25 792 A6.75005 6.75005 -180 0 0 72
> 785.25 A6.75005 6.75005 -180 0 0 65.25 778.5 L6.75 778.5 A6.75005
> +							 6.75005 -180 0 0 0 785.25
> A6.75005 6.75005 -180 0 0 6.75 792 L65.25 792 Z" class="st2"/>
> +			</g>
> +			<path d="M65.25 792 A6.75005 6.75005 -180 0 0 72 785.25
> A6.75005 6.75005 -180 0 0 65.25 778.5 L6.75 778.5 A6.75005 6.75005
> +						 -180 0 0 0 785.25 A6.75005 6.75005 -
> 180 0 0 6.75 792 L65.25 792 Z" class="st6"/>
> +			<text x="8.22" y="788.25" class="st7"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>D<tspan
> class="st8"
> +
> 	v:langID="2052">ecap</tspan>sulation</text>		</g>
> +		<g id="shape35-21" v:mID="35" v:groupContext="shape"
> transform="translate(117,-324)">
> +			<title>Rectangle.18.35</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow35-22" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<rect x="0" y="697.5" width="342" height="94.5"
> class="st2"/>
> +			</g>
> +			<rect x="0" y="697.5" width="342" height="94.5"
> class="st9"/>
> +		</g>
> +		<g id="shape15-25" v:mID="15" v:groupContext="shape"
> transform="translate(259.654,-263.25)">
> +			<title>Data store</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="CH" v:val="VT0(5):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +			</v:userDefs>
> +			<path d="M0 600.13 A28.3465 10.6299 0 0 1 56.69 600.13
> A28.3465 10.6299 0 0 1 -0 600.13 ZM0 600.13 L0 781.37 A28.3465
> +						 10.6299 -180 1 0 56.69 781.37 L56.69
> 600.13 A28.3465 10.6299 0 0 1 0 600.13 Z" class="st10"/>
> +		</g>
> +		<g id="shape16-29" v:mID="16" v:groupContext="shape"
> transform="translate(324,-391.5)">
> +			<title>Rounded rectangle.16</title>
> +			<desc>Inner IP/L4 checksum offload</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="67.5" cy="785.25" width="135"
> height="13.5"/>
> +			<g id="shadow16-30" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M128.25 792 A6.75005 6.75005 -180 0 0 135
> 785.25 A6.75005 6.75005 -180 0 0 128.25 778.5 L6.75 778.5 A6.75005
> +							 6.75005 -180 0 0 0 785.25
> A6.75005 6.75005 -180 0 0 6.75 792 L128.25 792 Z" class="st2"/>
> +			</g>
> +			<path d="M128.25 792 A6.75005 6.75005 -180 0 0 135
> 785.25 A6.75005 6.75005 -180 0 0 128.25 778.5 L6.75 778.5 A6.75005
> +						 6.75005 -180 0 0 0 785.25 A6.75005
> 6.75005 -180 0 0 6.75 792 L128.25 792 Z" class="st6"/>
> +			<text x="8.27" y="788.25" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Inner IP/L4
> checksum offload</text>		</g>
> +		<g id="shape17-34" v:mID="17" v:groupContext="shape"
> transform="translate(144,-337.5)">
> +			<title>Rounded rectangle.17</title>
> +			<desc>UDP port configuration</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="54" cy="785.25" width="108"
> height="13.5"/>
> +			<g id="shadow17-35" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M101.25 792 A6.75005 6.75005 -180 0 0 108
> 785.25 A6.75005 6.75005 -180 0 0 101.25 778.5 L6.75 778.5 A6.75005
> +							 6.75005 -180 0 0 0 785.25
> A6.75005 6.75005 -180 0 0 6.75 792 L101.25 792 Z" class="st2"/>
> +			</g>
> +			<path d="M101.25 792 A6.75005 6.75005 -180 0 0 108
> 785.25 A6.75005 6.75005 -180 0 0 101.25 778.5 L6.75 778.5 A6.75005
> +						 6.75005 -180 0 0 0 785.25 A6.75005
> 6.75005 -180 0 0 6.75 792 L101.25 792 Z" class="st6"/>
> +			<text x="6.93" y="788.25" class="st7"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>UDP port
> configuration</text>		</g>
> +		<g id="shape18-39" v:mID="18" v:groupContext="shape"
> transform="translate(145.346,-357.75)">
> +			<title>Rounded rectangle.18</title>
> +			<desc>Inner IP/L4 csum verify</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="53.3268" cy="785.25" width="106.66"
> height="13.5"/>
> +			<g id="shadow18-40" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M99.9 792 A6.75005 6.75005 -180 0 0
> 106.65 785.25 A6.75005 6.75005 -180 0 0 99.9 778.5 L6.75 778.5 A6.75005
> +							 6.75005 -180 0 0 0 785.25
> A6.75005 6.75005 -180 0 0 6.75 792 L99.9 792 Z" class="st2"/>
> +			</g>
> +			<path d="M99.9 792 A6.75005 6.75005 -180 0 0 106.65
> 785.25 A6.75005 6.75005 -180 0 0 99.9 778.5 L6.75 778.5 A6.75005
> +						 6.75005 -180 0 0 0 785.25 A6.75005
> 6.75005 -180 0 0 6.75 792 L99.9 792 Z" class="st6"/>
> +			<text x="6.66" y="788.25" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Inner
> IP/L4<tspan
> +						class="st8" v:langID="1033">
> </tspan><tspan class="st8" v:langID="1033">csum</tspan> verify</text>
> 	</g>
> +		<g id="shape19-46" v:mID="19" v:groupContext="shape"
> transform="translate(162,-378)">
> +			<title>Rounded rectangle.19</title>
> +			<desc>Tunnel Filter</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="45" cy="785.25" width="90"
> height="13.5"/>
> +			<g id="shadow19-47" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M83.25 792 A6.75005 6.75005 -180 0 0 90
> 785.25 A6.75005 6.75005 -180 0 0 83.25 778.5 L6.75 778.5 A6.75005
> +							 6.75005 -180 0 0 0 785.25
> A6.75005 6.75005 -180 0 0 6.75 792 L83.25 792 Z" class="st2"/>
> +			</g>
> +			<path d="M83.25 792 A6.75005 6.75005 -180 0 0 90 785.25
> A6.75005 6.75005 -180 0 0 83.25 778.5 L6.75 778.5 A6.75005 6.75005
> +						 -180 0 0 0 785.25 A6.75005 6.75005 -
> 180 0 0 6.75 792 L83.25 792 Z" class="st6"/>
> +			<text x="18.29" y="788.25" class="st7"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Tunnel <tspan
> +						class="st8" v:langID="2052">
> </tspan>F<tspan class="st8" v:langID="2052">ilter</tspan></text>
> 	</g>
> +		<g id="shape20-53" v:mID="20" v:groupContext="shape"
> transform="translate(162,-398.25)">
> +			<title>Rounded rectangle.20</title>
> +			<desc>Packet Type</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="45" cy="785.25" width="90"
> height="13.5"/>
> +			<g id="shadow20-54" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M83.25 792 A6.75005 6.75005 -180 0 0 90
> 785.25 A6.75005 6.75005 -180 0 0 83.25 778.5 L6.75 778.5 A6.75005
> +							 6.75005 -180 0 0 0 785.25
> A6.75005 6.75005 -180 0 0 6.75 792 L83.25 792 Z" class="st2"/>
> +			</g>
> +			<path d="M83.25 792 A6.75005 6.75005 -180 0 0 90 785.25
> A6.75005 6.75005 -180 0 0 83.25 778.5 L6.75 778.5 A6.75005 6.75005
> +						 -180 0 0 0 785.25 A6.75005 6.75005 -
> 180 0 0 6.75 792 L83.25 792 Z" class="st6"/>
> +			<text x="20.53" y="788.25" class="st7"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Packet
> Type</text>		</g>
> +		<g id="shape27-58" v:mID="27" v:groupContext="shape"
> transform="translate(326.25,-441)">
> +			<title>Sheet.27</title>
> +			<desc>DPDK Application</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="54" cy="783" width="108" height="18"/>
> +			<rect x="0" y="774" width="108" height="18"
> class="st12"/>
> +			<text x="10.11" y="786.6" class="st13"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>DPDK
> Application</text>		</g>
> +		<g id="shape26-61" v:mID="26" v:groupContext="shape"
> transform="translate(324,-279)">
> +			<title>Sheet.26</title>
> +			<desc>VXLAN Tunnel</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="45" cy="778.5" width="90" height="27"/>
> +			<rect x="0" y="765" width="90" height="27" class="st12"/>
> +			<text x="10.51" y="782.1" class="st14"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VXLAN
> Tunnel</text>		</g>
> +		<g id="shape28-64" v:mID="28" v:groupContext="shape"
> transform="translate(342,-333)">
> +			<title>Sheet.28</title>
> +			<desc>NIC</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="45" cy="783" width="90" height="18"/>
> +			<rect x="0" y="774" width="90" height="18" class="st12"/>
> +			<text x="36.4" y="787.2" class="st15"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>NIC</text>
> 	</g>
> +		<g id="shape29-67" v:mID="29" v:groupContext="shape"
> transform="translate(-517.5,270) rotate(-90) scale(-1,1)">
> +			<title>45 degree single</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow29-68" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M0 787.5 L4.5 783 L4.5 785.97 L252 785.97
> L252 789.03 L4.5 789.03 L4.5 792 L0 787.5 Z" class="st2"/>
> +			</g>
> +			<path d="M0 787.5 L4.5 783 L4.5 785.97 L252 785.97 L252
> 789.03 L4.5 789.03 L4.5 792 L0 787.5 Z" class="st16"/>
> +		</g>
> +		<g id="shape30-73" v:mID="30" v:groupContext="shape"
> transform="translate(1093.5,522) rotate(90) scale(-1,1)">
> +			<title>45 degree single.30</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow30-74" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,-1.44,-1.44)"
> class="st1">
> +				<path d="M0 787.5 L4.5 783 L4.5 785.97 L252 785.97
> L252 789.03 L4.5 789.03 L4.5 792 L0 787.5 Z" class="st2"/>
> +			</g>
> +			<path d="M0 787.5 L4.5 783 L4.5 785.97 L252 785.97 L252
> 789.03 L4.5 789.03 L4.5 792 L0 787.5 Z" class="st16"/>
> +		</g>
> +		<g id="shape14-78" v:mID="14" v:groupContext="shape"
> v:layerMember="0" transform="translate(207,-234)">
> +			<title>Object</title>
> +			<desc>WAN/LAN</desc>
> +			<v:custProps>
> +				<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7"
> v:format="@" v:langID="1033"/>
> +				<v:cp v:nameU="Duration" v:lbl="Duration"
> v:type="2" v:langID="1033"/>
> +				<v:cp v:nameU="Resources" v:lbl="Resources"
> v:langID="1033"/>
> +			</v:custProps>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(1,1,1,1)"
> v:tabSpace="42.5197"/>
> +			<v:textRect cx="83.25" cy="769.5" width="166.5"
> height="45"/>
> +			<g id="shadow14-79" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M23.93 782.24 A19.1532 6.46551 -180 0 0
> 51.52 787.72 A26.5285 8.95514 -180 0 0 99.5 785.69 A8.02422 2.70871
> +							 -180 0 0 108.16 788.62 A30.5319
> 10.3066 -180 0 0 137.48 784.34 A18.9723 6.40442 -180 0 0 158.14 780.29
> +							 A29.3596 9.20857 -176.98 0 0
> 145.63 771.6 A100.331 31.9328 -2.78 0 0 166.47 763.04 A42.3527 12.6007
> +							 -180 0 0 144.52 751.5 A25.2977
> 7.52648 -180 0 0 96.13 755.1 A21.4707 5.9338 -1.58 0 0 59.81 755.43
> A30.834
> +							 8.86245 -178.72 0 0 20.52 767.7
> A24.6202 7.32494 -180 0 0 23.93 782.24 Z" class="st2"/>
> +			</g>
> +			<path d="M23.93 782.24 A19.1532 6.46551 -180 0 0 51.52
> 787.72 A26.5285 8.95514 -180 0 0 99.5 785.69 A8.02422 2.70871
> +						 -180 0 0 108.16 788.62 A30.5319
> 10.3066 -180 0 0 137.48 784.34 A18.9723 6.40442 -180 0 0 158.14 780.29
> A29.3596
> +						 9.20857 -176.98 0 0 145.63 771.6
> A100.331 31.9328 -2.78 0 0 166.47 763.04 A42.3527 12.6007 -180 0 0 144.52
> +						 751.5 A25.2977 7.52648 -180 0 0 96.13
> 755.1 A21.4707 5.9338 -1.58 0 0 59.81 755.43 A30.834 8.86245 -178.72
> +						 0 0 20.52 767.7 A24.6202 7.32494 -180
> 0 0 23.93 782.24 Z" class="st17"/>
> +			<text x="53.23" y="773.7" class="st15"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>WAN/LAN</text>
> 		</g>
> +		<g id="shape11-85" v:mID="11" v:groupContext="shape"
> transform="translate(236.25,-472.5)">
> +			<title>Rounded rectangle.11</title>
> +			<desc>TEP</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="54" cy="774" width="108" height="36"/>
> +			<g id="shadow11-86" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M99 792 A9.00007 9.00007 -180 0 0 108 783
> L108 765 A9.00007 9.00007 -180 0 0 99 756 L9 756 A9.00007 9.00007
> +							 -180 0 0 0 765 L0 783 A9.00007
> 9.00007 -180 0 0 9 792 L99 792 Z" class="st2"/>
> +			</g>
> +			<path d="M99 792 A9.00007 9.00007 -180 0 0 108 783 L108
> 765 A9.00007 9.00007 -180 0 0 99 756 L9 756 A9.00007 9.00007
> +						 -180 0 0 0 765 L0 783 A9.00007
> 9.00007 -180 0 0 9 792 L99 792 Z" class="st18"/>
> +			<text x="44.91" y="777.6" class="st13"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>TEP</text>
> 	</g>
> +		<g id="shape36-90" v:mID="36" v:groupContext="shape"
> transform="translate(117,-571.5)">
> +			<title>Rectangle.18.36</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<g id="shadow36-91" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<rect x="0" y="688.5" width="342" height="103.5"
> class="st2"/>
> +			</g>
> +			<rect x="0" y="688.5" width="342" height="103.5"
> class="st19"/>
> +		</g>
> +		<g id="shape5-94" v:mID="5" v:groupContext="shape"
> transform="translate(306,-594)">
> +			<title>Rounded rectangle.5</title>
> +			<desc>VM-2 (VNID:200)</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="61.3125" cy="765" width="122.63"
> height="54"/>
> +			<g id="shadow5-95" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M113.62 792 A9.00007 9.00007 -180 0 0
> 122.63 783 L122.62 747 A9.00007 9.00007 -180 0 0 113.62 738 L9 738
> +							 A9.00007 9.00007 -180 0 0 0 747
> L0 783 A9.00007 9.00007 -180 0 0 9 792 L113.62 792 Z" class="st2"/>
> +			</g>
> +			<path d="M113.62 792 A9.00007 9.00007 -180 0 0 122.63
> 783 L122.62 747 A9.00007 9.00007 -180 0 0 113.62 738 L9 738 A9.00007
> +						 9.00007 -180 0 0 0 747 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L113.62 792 Z" class="st9"/>
> +			<text x="16.93" y="769.2" class="st20"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM<tspan
> class="st8"
> +						v:langID="1033">-</tspan>2 (<tspan
> class="st21">VNID</tspan><tspan class="st21">:</tspan><tspan
> +						class="st21">200</tspan><tspan
> class="st21">)</tspan></text>		</g>
> +		<g id="shape3-104" v:mID="3" v:groupContext="shape"
> transform="translate(135,-594)">
> +			<title>Rounded rectangle</title>
> +			<desc>VM-1 (VNID: 100)</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="61.3125" cy="765" width="122.63"
> height="54"/>
> +			<g id="shadow3-105" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M113.62 792 A9.00007 9.00007 -180 0 0
> 122.63 783 L122.62 747 A9.00007 9.00007 -180 0 0 113.62 738 L9 738
> +							 A9.00007 9.00007 -180 0 0 0 747
> L0 783 A9.00007 9.00007 -180 0 0 9 792 L113.62 792 Z" class="st2"/>
> +			</g>
> +			<path d="M113.62 792 A9.00007 9.00007 -180 0 0 122.63
> 783 L122.62 747 A9.00007 9.00007 -180 0 0 113.62 738 L9 738 A9.00007
> +						 9.00007 -180 0 0 0 747 L0 783
> A9.00007 9.00007 -180 0 0 9 792 L113.62 792 Z" class="st9"/>
> +			<text x="15.58" y="769.2" class="st20"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM<tspan
> class="st8"
> +						v:langID="1033">-</tspan>1 (<tspan
> class="st21">VNID</tspan><tspan class="st21">: </tspan><tspan
> +						class="st21">100</tspan><tspan
> class="st21">)</tspan></text>		</g>
> +		<g id="shape23-114" v:mID="23" v:groupContext="shape"
> transform="translate(624.813,-477.284) rotate(30.3791)">
> +			<title>Process boundary.23</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="CH" v:val="VT0(5):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +			</v:userDefs>
> +			<rect x="0" y="789.165" width="75.6348" height="2.83465"
> class="st22"/>
> +		</g>
> +		<g id="shape22-116" v:mID="22" v:groupContext="shape"
> transform="translate(412.466,-548.055) rotate(17.7839)">
> +			<title>Process boundary</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="CH" v:val="VT0(5):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +			</v:userDefs>
> +			<rect x="0" y="789.165" width="125.234" height="2.83465"
> class="st22"/>
> +		</g>
> +		<g id="shape24-118" v:mID="24" v:groupContext="shape"
> transform="translate(670.892,944.318) rotate(159.305)">
> +			<title>Process boundary.24</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="CH" v:val="VT0(5):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +			</v:userDefs>
> +			<rect x="0" y="789.165" width="108.234" height="2.83465"
> class="st22"/>
> +		</g>
> +		<g id="shape25-120" v:mID="25" v:groupContext="shape"
> transform="translate(828.973,824.895) rotate(141.667)">
> +			<title>Process boundary.25</title>
> +			<v:userDefs>
> +				<v:ud v:nameU="CH" v:val="VT0(5):26"/>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +			</v:userDefs>
> +			<rect x="0" y="789.165" width="61.6701" height="2.83465"
> class="st22"/>
> +		</g>
> +		<g id="shape4-122" v:mID="4" v:groupContext="shape"
> transform="translate(148.5,-587.25)">
> +			<title>Rectangle</title>
> +			<desc>vport-0</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="22.5" cy="784.125" width="45"
> height="15.75"/>
> +			<g id="shadow4-123" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<rect x="0" y="776.25" width="45" height="15.75"
> class="st2"/>
> +			</g>
> +			<rect x="0" y="776.25" width="45" height="15.75"
> class="st23"/>
> +			<text x="7.5" y="787.13" class="st7"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>v<tspan
> class="st8"
> +						v:langID="2052">port</tspan><tspan
> class="st8" v:langID="2052">-</tspan><tspan class="st8"
> v:langID="2052">0</tspan></text>		</g>
> +		<g id="shape2-130" v:mID="2" v:groupContext="shape"
> transform="translate(202.5,-587.25)">
> +			<title>Rectangle.2</title>
> +			<desc>vport-1</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="22.5" cy="784.125" width="45"
> height="15.75"/>
> +			<g id="shadow2-131" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<rect x="0" y="776.25" width="45" height="15.75"
> class="st2"/>
> +			</g>
> +			<rect x="0" y="776.25" width="45" height="15.75"
> class="st23"/>
> +			<text x="7.5" y="787.13" class="st7"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>v<tspan
> class="st8"
> +						v:langID="2052">port</tspan><tspan
> class="st8" v:langID="2052">-</tspan><tspan class="st8"
> v:langID="2052">1</tspan></text>		</g>
> +		<g id="shape6-138" v:mID="6" v:groupContext="shape"
> transform="translate(317.25,-587.25)">
> +			<title>Rectangle.6</title>
> +			<desc>vport-0</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="21.375" cy="784.125" width="42.75"
> height="15.75"/>
> +			<g id="shadow6-139" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<rect x="0" y="776.25" width="42.75"
> height="15.75" class="st2"/>
> +			</g>
> +			<rect x="0" y="776.25" width="42.75" height="15.75"
> class="st23"/>
> +			<text x="6.37" y="787.13" class="st7"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>v<tspan
> class="st8"
> +						v:langID="2052">port</tspan><tspan
> class="st8" v:langID="2052">-</tspan><tspan class="st8"
> v:langID="2052">0</tspan></text>		</g>
> +		<g id="shape7-146" v:mID="7" v:groupContext="shape"
> transform="translate(369,-587.25)">
> +			<title>Rectangle.7</title>
> +			<desc>vport-1</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="22.5" cy="784.125" width="45"
> height="15.75"/>
> +			<g id="shadow7-147" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<rect x="0" y="776.25" width="45" height="15.75"
> class="st2"/>
> +			</g>
> +			<rect x="0" y="776.25" width="45" height="15.75"
> class="st23"/>
> +			<text x="7.5" y="787.13" class="st7"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>v<tspan
> class="st8"
> +						v:langID="2052">port</tspan><tspan
> class="st8" v:langID="2052">-</tspan><tspan class="st8"
> v:langID="2052">1</tspan></text>		</g>
> +		<g id="shape37-154" v:mID="37" v:groupContext="shape"
> transform="translate(234,-648)">
> +			<title>Sheet.37</title>
> +			<desc>Guest</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="54" cy="783" width="108" height="18"/>
> +			<rect x="0" y="774" width="108" height="18"
> class="st12"/>
> +			<text x="39.46" y="786.6" class="st13"
> v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Guest</text>
> 	</g>
> +		<g id="shape38-157" v:mID="38" v:groupContext="shape"
> transform="translate(324,-357.75)">
> +			<title>Rounded rectangle.38</title>
> +			<desc>TSO offload</desc>
> +			<v:userDefs>
> +				<v:ud v:nameU="visVersion" v:val="VT0(14):26"/>
> +				<v:ud v:nameU="msvThemeColors" v:val="VT0(36):26"/>
> +				<v:ud v:nameU="msvThemeEffects"
> v:val="VT0(16):26"/>
> +			</v:userDefs>
> +			<v:textBlock v:margins="rect(4,4,4,4)"/>
> +			<v:textRect cx="36" cy="785.25" width="72"
> height="13.5"/>
> +			<g id="shadow38-158" v:groupContext="shadow"
> v:shadowOffsetX="1.44" v:shadowOffsetY="-1.44" v:shadowType="1"
> +					transform="matrix(1,0,0,1,1.44,1.44)"
> class="st1">
> +				<path d="M65.25 792 A6.75005 6.75005 -180 0 0 72
> 785.25 A6.75005 6.75005 -180 0 0 65.25 778.5 L6.75 778.5 A6.75005
> +							 6.75005 -180 0 0 0 785.25
> A6.75005 6.75005 -180 0 0 6.75 792 L65.25 792 Z" class="st2"/>
> +			</g>
> +			<path d="M65.25 792 A6.75005 6.75005 -180 0 0 72 785.25
> A6.75005 6.75005 -180 0 0 65.25 778.5 L6.75 778.5 A6.75005 6.75005
> +						 -180 0 0 0 785.25 A6.75005 6.75005 -
> 180 0 0 6.75 792 L65.25 792 Z" class="st6"/>
> +			<text x="12.33" y="788.25" class="st7"
> v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>TSO
> offload</text>		</g>
> +	</g>
> +</svg>
> diff --git a/doc/guides/sample_app_ug/index.rst
> b/doc/guides/sample_app_ug/index.rst
> index e1a0c56..63434ed 100644
> --- a/doc/guides/sample_app_ug/index.rst
> +++ b/doc/guides/sample_app_ug/index.rst
> @@ -71,6 +71,7 @@ Sample Applications User Guide
>      test_pipeline
>      dist_app
>      vm_power_management
> +    tep_termination
> 
>  **Figures**
> 
> @@ -131,6 +132,8 @@ Sample Applications User Guide
>  :numref:`figure_vm_power_mgr_highlevel` :ref:`figure_vm_power_mgr_highlev
> el`
> 
>  :numref:`figure_vm_power_mgr_vm_request_seq` :ref:`figure_vm_power_mgr_vm
> _request_seq`
> +:numref:`figure_overlay_networking` :ref:`figure_overlay_networking`
> +:numref:`figure_tep_termination_arch` :ref:`figure_tep_termination_arch`
> 
>  **Tables**
> 
> diff --git a/doc/guides/sample_app_ug/tep_termination.rst
> b/doc/guides/sample_app_ug/tep_termination.rst
> new file mode 100644
> index 0000000..86df8f8
> --- /dev/null
> +++ b/doc/guides/sample_app_ug/tep_termination.rst
> @@ -0,0 +1,321 @@
> +
> +..  BSD LICENSE
> +    Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
> +    All rights reserved.
> +
> +    Redistribution and use in source and binary forms, with or without
> +    modification, are permitted provided that the following conditions
> +    are met:
> +
> +    * Redistributions of source code must retain the above copyright
> +    notice, this list of conditions and the following disclaimer.
> +    * Redistributions in binary form must reproduce the above copyright
> +    notice, this list of conditions and the following disclaimer in
> +    the documentation and/or other materials provided with the
> +    distribution.
> +    * Neither the name of Intel Corporation nor the names of its
> +    contributors may be used to endorse or promote products derived
> +    from this software without specific prior written permission.
> +
> +    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> +    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> +    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> +    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> +    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> +    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> +    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> +    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> +    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +
> +TEP termination Sample Application
> +========================
> +
> +The TEP (Tunnel End point) termination sample application simulates a
> VXLAN Tunnel Endpoint (VTEP) termination in DPDK, which is used to
> +demonstrate the offload and filtering capabilities of Intel® XL710 10/40
> Gigabit Ethernet Controller for VXLAN packet.
> +This sample uses the basic virtio devices management mechanism from vhost
> example, and also uses the us-vHost interface and
> +tunnel filtering mechanism to direct a specified traffic to a specific VM.
> +In addition, this sample is also designed to show how tunneling protocols
> can be handled.
> +
> +Background
> +----------
> +With virtualization, overlay networks allow a network structure to be
> built or imposed across physical nodes which
> +is abstracted away from the actual underlining physical network
> connections. This allows network isolation, QOS, etc
> +to be provided on a per client basis.
> +
> +.. _figure_overlay_networking:
> +
> +.. figure:: img/overlay_networking.*
> +
> +   Overlay Networking.
> +
> +In a typical setup, the network overlay tunnel is terminated at the
> Virtual/Tunnel End Point (VEP/TEP).
> +The TEP is normally located at the physical host level ideally in the
> software switch. Due to processing constraints and
> +the inevitable bottleneck that the switch becomes the ability to offload
> overlay support features becomes an important requirement.
> +Intel® XL710 10/40 G Ethernet network card provides hardware filtering
> and offload capabilities to support overlay networks
> +implementations such as MAC in UDP and MAC in GRE.
> +
> +Sample Code Overview
> +--------------------
> +
> +The DPDK TEP termination sample code demonstrates the offload and
> filtering capabilities of Intel® XL710 10/40 Gigabit Ethernet
> +Controller for VXLAN packet.
> +
> +The sample code is based on vhost library. The vhost library is developed
> for user space Ethernet switch to
> +easily integrate with vhost functionality.
> +
> +The sample will support the followings:
> +
> +*   Tunneling packet recognition.
> +
> +*   The port of UDP tunneling is configurable
> +
> +*   Directing incoming traffic to the correct queue based on the tunnel
> filter type.
> +    The supported filter type are listed below.
> +
> +    * Inner MAC and VLAN and tenant ID
> +
> +    * Inner MAC and tenant ID, and Outer MAC
> +
> +    * Inner MAC and tenant ID
> +
> +    The tenant ID will be assigned from a static internal table based on
> the us-vhost device ID.
> +    Each device will receive a unique device ID. The inner MAC will be
> learned by the first packet transmitted from a device.
> +
> +*   Decapsulation of RX VXLAN traffic. This is a software only operation.
> +
> +*   Encapsulation of TX VXLAN traffic. This is a software only operation.
> +
> +*   Inner IP and inner L4 checksum offload.
> +
> +*   TSO offload support for tunneling packet.
> +
> +The following figure shows the framework of the TEP termination sample
> application based on vhost-cuse.
> +
> +.. _figure_tep_termination_arch:
> +
> +.. figure:: img/tep_termination_arch.*
> +
> +   TEP termination Framework Overview
> +
> +Supported Distributions
> +-----------------------
> +
> +The example in this section have been validated with the following
> distributions:
> +
> +*   Fedora* 18
> +
> +*   Fedora* 19
> +
> +*   Fedora* 20
> +
> +Prerequisites
> +-------------
> +
> +Refer to the guide in section 27.4 in the vhost sample.
> +
> +Compiling the Sample Code
> +-------------------------
> +#.  Compile vhost lib:
> +
> +    To enable vhost, turn on vhost library in the configure file
> config/common_linuxapp.
> +
> +    .. code-block:: console
> +
> +        CONFIG_RTE_LIBRTE_VHOST=n
> +
> +    vhost user is turned on by default in the configure file
> config/common_linuxapp.
> +    To enable vhost cuse, disable vhost user.
> +
> +    .. code-block:: console
> +
> +        CONFIG_RTE_LIBRTE_VHOST_USER=y
> +
> +     After vhost is enabled and the implementation is selected, build the
> vhost library.
> +
> +#.  Go to the examples directory:
> +
> +    .. code-block:: console
> +
> +        export RTE_SDK=/path/to/rte_sdk
> +        cd ${RTE_SDK}/examples/tep_termination
> +
> +#.  Set the target (a default target is used if not specified). For
> example:
> +
> +    .. code-block:: console
> +
> +        export RTE_TARGET=x86_64-native-linuxapp-gcc
> +
> +    See the DPDK Getting Started Guide for possible RTE_TARGET values.
> +
> +#.  Build the application:
> +
> +    .. code-block:: console
> +
> +        cd ${RTE_SDK}
> +        make config ${RTE_TARGET}
> +        make install ${RTE_TARGET}
> +        cd ${RTE_SDK}/examples/tep_termination
> +        make
> +
> +#.  Go to the eventfd_link directory(vhost cuse required):
> +
> +    .. code-block:: console
> +
> +        cd ${RTE_SDK}/lib/librte_vhost/eventfd_link
> +
> +#.  Build the eventfd_link kernel module(vhost cuse required):
> +
> +    .. code-block:: console
> +
> +        make
> +
> +Running the Sample Code
> +-----------------------
> +
> +#.  Install the cuse kernel module(vhost cuse required):
> +
> +    .. code-block:: console
> +
> +        modprobe cuse
> +
> +#.  Go to the eventfd_link directory(vhost cuse required):
> +
> +    .. code-block:: console
> +
> +        export RTE_SDK=/path/to/rte_sdk
> +        cd ${RTE_SDK}/lib/librte_vhost/eventfd_link
> +
> +#.  Install the eventfd_link module(vhost cuse required):
> +
> +    .. code-block:: console
> +
> +        insmod ./eventfd_link.ko
> +
> +#.  Go to the examples directory:
> +
> +    .. code-block:: console
> +
> +        export RTE_SDK=/path/to/rte_sdk
> +        cd ${RTE_SDK}/examples/tep_termination
> +
> +#.  Run the tep_termination sample code:
> +
> +    .. code-block:: console
> +
> +        user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir
> /mnt/huge --
> +                        -p 0x1 --dev-basename tep-termination --nb-
> devices 4
> +                        --udp-port 4789 --filter-type 1
> +
> +.. note::
> +
> +    Please note the huge-dir parameter instructs the DPDK to allocate its
> memory from the 2 MB page hugetlbfs.
> +
> +Parameters
> +~~~~~~~~~~
> +
> +**The same parameters with the vhost sample.**
> +
> +Refer to the guide in section 27.6.1 in the vhost sample for the meanings
> of 'Basename',
> +'Stats', 'RX Retry', 'RX Retry Number' and 'RX Retry Delay Time'.
> +
> +**Number of Devices.**
> +
> +The nb-devices option specifies the number of virtIO device.
> +The default value is 2.
> +
> +.. code-block:: console
> +
> +    user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir
> /mnt/huge --
> +                    --nb-devices 2
> +
> +**Tunneling UDP port.**
> +
> +The udp-port option is used to specify the destination UDP number for UDP
> tunneling packet.
> +The default value is 4789.
> +
> +.. code-block:: console
> +
> +    user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir
> /mnt/huge --
> +                    --nb-devices 2 --udp-port 4789
> +
> +**Filter Type.**
> +
> +The filter-type option is used to specify which filter type is used to
> filter UDP tunneling packet to a specified queue.
> +The default value is 1, which means the filter type of inner MAC and
> tenant ID is used.
> +
> +.. code-block:: console
> +
> +    user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir
> /mnt/huge --
> +                --nb-devices 2 --udp-port 4789 --filter-type 1
> +
> +**TX Checksum.**
> +
> +The tx-checksum option is used to enable or disable the inner header
> checksum offload.
> +The default value is 0, which means the checksum offload is disabled.
> +
> +.. code-block:: console
> +
> +    user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir
> /mnt/huge --
> +                --nb-devices 2 --tx-checksum
> +
> +**TCP segment sise.**
> +
> +The tso-segsz option specifies the TCP segment size for TSO offload for
> tunneling packet.
> +The default value is 0, which means TSO offload is disabled.
> +
> +.. code-block:: console
> +
> +    user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir
> /mnt/huge --
> +                --tx-checksum --tso-segsz 800
> +
> +**Decapsulation option.**
> +
> +The decap option is used to enable or disable decapsulation operation for
> received VXLAN packet.
> +The default value is 1.
> +
> +.. code-block:: console
> +
> +    user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir
> /mnt/huge --
> +                --nb-devices 4 --udp-port 4789 --decap 1
> +
> +**Encapsulation option.**
> +
> +The encap option is used to enable or disable encapsulation operation for
> transmitted packet.
> +The default value is 1.
> +
> +.. code-block:: console
> +
> +    user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir
> /mnt/huge --
> +                --nb-devices 4 --udp-port 4789 --encap 1
> +
> +
> +Running the Virtual Machine (QEMU)
> +----------------------------------
> +
> +Refer to the guide in section 27.7 in the vhost sample.
> +
> +Running DPDK in the Virtual Machine
> +-----------------------------------
> +
> +Refer to the guide in section 27.8 in the vHost sample.
> +
> +Passing Traffic to the Virtual Machine Device
> +---------------------------------------------
> +
> +For a virtio-net device to receive traffic, the traffic's Layer 2 header
> must include
> +both the virtio-net device's MAC address.
> +The DPDK sample code behaves in a similar manner to a learning switch in
> that
> +it learns the MAC address of the virtio-net devices from the first
> transmitted packet.
> +On learning the MAC address,
> +the DPDK vhost sample code prints a message with the MAC address and
> tenant ID virtio-net device.
> +For example:
> +
> +.. code-block:: console
> +
> +    DATA: (0) MAC_ADDRESS cc:bb:bb:bb:bb:bb and VNI 1000 registered
> +
> +The above message indicates that device 0 has been registered with MAC
> address cc:bb:bb:bb:bb:bb and VNI 1000.
> +Any packets received on the NIC with these values are placed on the
> devices receive queue.
> --

Acked-by: Marvin Liu <yong.liu at intel.com>
> 1.7.7.6



More information about the dev mailing list