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> --- .../sample_app_ug/img/overlay_networking.svg | 820 ++++++++++++++++++++ .../sample_app_ug/img/tep_termination_arch.svg | 551 +++++++++++++ doc/guides/sample_app_ug/index.rst | 2 + doc/guides/sample_app_ug/tep_termination.rst | 319 ++++++++ 4 files changed, 1692 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..e16b5ac --- /dev/null +++ b/doc/guides/sample_app_ug/img/overlay_networking.svg @@ -0,0 +1,820 @@ +<?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="st31"> + <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-234);stroke:#404040;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st27 {fill:#000000;font-family:Calibri;font-size:0.916672em} + .st28 {font-size:1em} + .st29 {fill:url(#grad0-261)} + .st30 {stroke:#7030a0;stroke-linecap:round;stroke-linejoin:round;stroke-width:1} + .st31 {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-234" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(270 0.5 0.5)"> + <stop offset="0" stop-color="#c1ce9b" stop-opacity="1"/> + <stop offset="1" stop-color="#b3c283" stop-opacity="1"/> + </linearGradient> + <linearGradient id="grad0-261" 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:newlineChar/><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:newlineChar/><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:newlineChar/><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:newlineChar/><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="shape12-229" v:mID="12" v:groupContext="shape" transform="translate(-613.688,282.488) rotate(-90)"> + <title>Box</title> + <desc>T E P</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:verticalAlign="2" v:verticalText="true"/> + <v:textRect cx="39.4875" cy="784.688" width="78.98" height="14.625"/> + <g id="shadow12-230" 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="777.375" width="78.975" height="14.625" class="st5"/> + </g> + <rect x="0" y="777.375" width="78.975" height="14.625" class="st26"/> + <text x="50.2" y="71.636em" writing-mode="tb-rl" class="st27" v:langID="2052"><v:paragraph v:indentLeft="36" + v:horizAlign="3"/><v:tabList/>T<v:newlineChar/><tspan x="37" y="71.636em" class="st28">E<v:newlineChar/></tspan><tspan + x="23.8" y="71.636em" class="st28">P</tspan><v:newlineChar/> </text> </g> + <g id="shape65-238" v:mID="65" v:groupContext="shape" transform="translate(-606.375,480.488) rotate(-90)"> + <title>Box.65</title> + <desc>T E P</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:verticalAlign="2" v:verticalText="true"/> + <v:textRect cx="39.4875" cy="784.688" width="78.98" height="14.625"/> + <g id="shadow65-239" 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="777.375" width="78.975" height="14.625" class="st5"/> + </g> + <rect x="0" y="777.375" width="78.975" height="14.625" class="st26"/> + <text x="50.2" y="71.636em" writing-mode="tb-rl" class="st27" v:langID="2052"><v:paragraph v:indentLeft="36" + v:horizAlign="3"/><v:tabList/>T<v:newlineChar/><tspan x="37" y="71.636em" class="st28">E<v:newlineChar/></tspan><tspan + x="23.8" y="71.636em" class="st28">P</tspan><v:newlineChar/> </text> </g> + <g id="shape68-246" 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="shape67-250" v:mID="67" v:groupContext="shape" transform="translate(-361.688,282.488) rotate(-90)"> + <title>Box.67</title> + <desc>T E P</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:verticalAlign="2" v:verticalText="true"/> + <v:textRect cx="39.4875" cy="784.688" width="78.98" height="14.625"/> + <g id="shadow67-251" 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="777.375" width="78.975" height="14.625" class="st5"/> + </g> + <rect x="0" y="777.375" width="78.975" height="14.625" class="st26"/> + <text x="50.2" y="71.636em" writing-mode="tb-rl" class="st27" v:langID="2052"><v:paragraph v:indentLeft="36" + v:horizAlign="3"/><v:tabList/>T<v:newlineChar/><tspan x="37" y="71.636em" class="st28">E<v:newlineChar/></tspan><tspan + x="23.8" y="71.636em" class="st28">P</tspan><v:newlineChar/> </text> </g> + <g id="shape70-258" 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="st29"/> + <path d="M1.04 787.51 A98.7059 98.7059 0 0 1 192.26 787.51" class="st30"/> + <path d="M1.04 787.51 L3.29 788.03 L0 792 L-1.2 786.99 L1.04 787.51" class="st30"/> + <path d="M192.26 787.51 L190.01 788.03 L193.3 792 L194.5 786.99 L192.26 787.51" class="st30"/> + </g> + <g id="shape69-265" v:mID="69" v:groupContext="shape" transform="translate(-370.688,468) rotate(-90)"> + <title>Box.69</title> + <desc>T E P</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:verticalAlign="2" v:verticalText="true"/> + <v:textRect cx="39.4875" cy="784.688" width="78.98" height="14.625"/> + <g id="shadow69-266" 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="777.375" width="78.975" height="14.625" class="st5"/> + </g> + <rect x="0" y="777.375" width="78.975" height="14.625" class="st26"/> + <text x="50.2" y="71.636em" writing-mode="tb-rl" class="st27" v:langID="2052"><v:paragraph v:indentLeft="36" + v:horizAlign="3"/><v:tabList/>T<v:newlineChar/><tspan x="37" y="71.636em" class="st28">E<v:newlineChar/></tspan><tspan + x="23.8" y="71.636em" class="st28">P</tspan><v:newlineChar/> </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..8fd6704 --- /dev/null +++ b/doc/guides/sample_app_ug/img/tep_termination_arch.svg @@ -0,0 +1,551 @@ +<?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 tep_termination_arch.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="st26"> + <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 {font-size:1em} + .st7 {fill:#92d050;stroke:#404040;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st8 {fill:#000000;font-family:Calibri;font-size:0.833336em} + .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:#cdcdcd;fill-opacity:0.5;stroke:#cdcdcd;stroke-dasharray:3.75,2.25;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.5} + .st13 {fill:#92d050;stroke:#404040;stroke-dasharray:3.75,2.25;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st14 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st15 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-weight:bold} + .st16 {fill:#000000;font-family:Calibri;font-size:1.00001em} + .st17 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-weight:bold} + .st18 {fill:url(#grad0-78);stroke:#404040;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st19 {fill:url(#grad0-89);stroke:#404040;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st20 {fill:#f2c096;stroke:#404040;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st21 {fill:#e1ebf3;stroke:#404040;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st22 {fill:#000000;font-family:Calibri;font-size:1.16666em} + .st23 {font-size:0.857157em} + .st24 {fill:#d26d19;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st25 {fill:#a6c3dd;stroke:#404040;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} + .st26 {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-78" 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-89" 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-29" 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(220.5,-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="67.5" cy="778.5" width="135" 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="M126 792 A9.00007 9.00007 -180 0 0 135 783 L135 774 A9.00007 9.00007 -180 0 0 126 765 L9 765 A9.00007 9.00007 + -180 0 0 0 774 L0 783 A9.00007 9.00007 -180 0 0 9 792 L126 792 Z" class="st2"/> + </g> + <path d="M126 792 A9.00007 9.00007 -180 0 0 135 783 L135 774 A9.00007 9.00007 -180 0 0 126 765 L9 765 A9.00007 9.00007 + -180 0 0 0 774 L0 783 A9.00007 9.00007 -180 0 0 9 792 L126 792 Z" class="st4"/> + <text x="29.56" y="775.2" class="st5" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Userspace Vhost<v:newlineChar/><tspan + x="46.93" dy="1.2em" class="st6">Interface </tspan> </text> </g> + <g id="shape12-11" 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-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="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="st7"/> + <text x="16.58" y="788.25" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Encapsulation</text> </g> + <g id="shape13-16" 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-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="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="st7"/> + <text x="8.22" y="788.25" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>D<tspan class="st6" + v:langID="2052">ecap</tspan>sulation</text> </g> + <g id="shape35-22" 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-23" 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-26" 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-30" 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-31" 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="st7"/> + <text x="8.27" y="788.25" class="st8" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Inner IP/L4 checksum offload</text> </g> + <g id="shape17-35" 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-36" 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="st7"/> + <text x="6.93" y="788.25" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>UDP port configuration</text> </g> + <g id="shape18-40" 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-41" 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="st7"/> + <text x="6.66" y="788.25" class="st8" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Inner IP/L4<tspan + class="st6" v:langID="1033"> </tspan><tspan class="st6" v:langID="1033">csum</tspan> verify</text> </g> + <g id="shape19-47" v:mID="19" v:groupContext="shape" transform="translate(144,-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-48" 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="st7"/> + <text x="18.29" y="788.25" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Tunnel <tspan + class="st6" v:langID="2052"> </tspan>F<tspan class="st6" v:langID="2052">ilter</tspan></text> </g> + <g id="shape20-54" v:mID="20" v:groupContext="shape" transform="translate(144,-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-55" 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="st7"/> + <text x="20.53" y="788.25" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Packet Type</text> </g> + <g id="shape21-59" v:mID="21" v:groupContext="shape" transform="translate(324,-362.25)"> + <title>Rounded rectangle.21</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="45" cy="785.25" width="90" height="13.5"/> + <g id="shadow21-60" 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="st12"/> + </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="st13"/> + <text x="21.33" y="788.25" class="st8" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>TSO offload</text> </g> + <g id="shape27-64" 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="st14"/> + <text x="10.11" y="786.6" class="st15" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>DPDK Application</text> </g> + <g id="shape26-67" 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="st14"/> + <text x="10.51" y="782.1" class="st16" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VXLAN Tunnel</text> </g> + <g id="shape28-70" 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="st14"/> + <text x="36.4" y="787.2" class="st17" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>NIC</text> </g> + <g id="shape29-73" 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-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="st18"/> + </g> + <g id="shape30-79" 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-80" 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="st18"/> + </g> + <g id="shape14-84" 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-85" 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="st19"/> + <text x="53.23" y="773.7" class="st17" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>WAN/LAN</text> </g> + <g id="shape11-91" 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-92" 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="st20"/> + <text x="44.91" y="777.6" class="st15" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>TEP</text> </g> + <g id="shape36-96" 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-97" 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="st21"/> + </g> + <g id="shape5-100" v:mID="5" v:groupContext="shape" transform="translate(306,-594)"> + <title>Rounded rectangle.5</title> + <desc>VM-2 VNI: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-101" 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="45.67" y="760.8" class="st22" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM<tspan class="st6" + v:langID="1033">-</tspan>2<v:newlineChar/><tspan x="41.79" dy="1.4em" class="st23">VNI</tspan><tspan + class="st23">:</tspan><tspan class="st23">200</tspan></text> </g> + <g id="shape3-109" v:mID="3" v:groupContext="shape" transform="translate(135,-594)"> + <title>Rounded rectangle</title> + <desc>VM-1 VNI: 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-110" 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="45.67" y="760.8" class="st22" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VM<tspan class="st6" + v:langID="1033">-</tspan>1<v:newlineChar/><tspan x="40.44" dy="1.4em" class="st23">VNI</tspan><tspan + class="st23">: </tspan><tspan class="st23">100</tspan></text> </g> + <g id="shape23-118" v:mID="23" v:groupContext="shape" transform="translate(635.295,-471.03) rotate(31.2637)"> + <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="73.7025" height="2.83465" class="st24"/> + </g> + <g id="shape22-120" v:mID="22" v:groupContext="shape" transform="translate(416.665,-546.695) rotate(18.1038)"> + <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="123.094" height="2.83465" class="st24"/> + </g> + <g id="shape24-122" v:mID="24" v:groupContext="shape" transform="translate(665.556,946.312) rotate(159.717)"> + <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="110.342" height="2.83465" class="st24"/> + </g> + <g id="shape25-124" v:mID="25" v:groupContext="shape" transform="translate(815.214,835.53) rotate(142.927)"> + <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="63.4504" height="2.83465" class="st24"/> + </g> + <g id="shape4-126" 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-127" 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="st25"/> + <text x="7.5" y="787.13" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>v<tspan class="st6" + v:langID="2052">port</tspan><tspan class="st6" v:langID="2052">-</tspan><tspan class="st6" v:langID="2052">0</tspan></text> </g> + <g id="shape2-134" 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-135" 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="st25"/> + <text x="7.5" y="787.13" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>v<tspan class="st6" + v:langID="2052">port</tspan><tspan class="st6" v:langID="2052">-</tspan><tspan class="st6" v:langID="2052">1</tspan></text> </g> + <g id="shape6-142" 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-143" 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="st25"/> + <text x="6.37" y="787.13" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>v<tspan class="st6" + v:langID="2052">port</tspan><tspan class="st6" v:langID="2052">-</tspan><tspan class="st6" v:langID="2052">0</tspan></text> </g> + <g id="shape7-150" 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-151" 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="st25"/> + <text x="7.5" y="787.13" class="st8" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>v<tspan class="st6" + v:langID="2052">port</tspan><tspan class="st6" v:langID="2052">-</tspan><tspan class="st6" v:langID="2052">1</tspan></text> </g> + <g id="shape37-158" 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="st14"/> + <text x="39.46" y="786.6" class="st15" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Guest</text> </g> + </g> +</svg> diff --git a/doc/guides/sample_app_ug/index.rst b/doc/guides/sample_app_ug/index.rst index e1a0c56..8dc7ce2 100644 --- a/doc/guides/sample_app_ug/index.rst +++ b/doc/guides/sample_app_ug/index.rst @@ -131,6 +131,8 @@ Sample Applications User Guide :numref:`figure_vm_power_mgr_highlevel` :ref:`figure_vm_power_mgr_highlevel` :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..bd0cd5d --- /dev/null +++ b/doc/guides/sample_app_ug/tep_termination.rst @@ -0,0 +1,319 @@ + +.. 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: + + vhost cuse: + + .. code-block:: console + + user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge -- -p 0x1 --dev-basename tep-termination + + vhost user: a socket file named usvhost will be created under current directory. Use its path as the socket path in guest's qemu commandline. + + .. code-block:: console + + user at target:~$ ./build/app/tep_termination -c f -n 4 --huge-dir /mnt/huge -- -p 0x1 --dev-basename tep-termination + +.. 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 transmited 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 is placed on the devices receive queue. -- 1.7.7.6