Adding details for link status interrupts and link status polling. Adding details for mode 4 / mode 5 Tidying up rst document to conform to 80 character line limit Adding diagrams to explain bonding modes
Signed-off-by: Declan Doherty <declan.doherty at intel.com> --- doc/guides/prog_guide/img/bond-mode-0.svg | 638 +++++++++++++++++ doc/guides/prog_guide/img/bond-mode-1.svg | 724 +++++++++++++++++++ doc/guides/prog_guide/img/bond-mode-2.svg | 702 ++++++++++++++++++ doc/guides/prog_guide/img/bond-mode-3.svg | 702 ++++++++++++++++++ doc/guides/prog_guide/img/bond-mode-4.svg | 784 +++++++++++++++++++++ doc/guides/prog_guide/img/bond-mode-5.svg | 642 +++++++++++++++++ doc/guides/prog_guide/img/bond-overview.svg | 121 ++++ .../prog_guide/link_bonding_poll_mode_drv_lib.rst | 366 +++++++--- 8 files changed, 4579 insertions(+), 100 deletions(-) create mode 100644 doc/guides/prog_guide/img/bond-mode-0.svg create mode 100644 doc/guides/prog_guide/img/bond-mode-1.svg create mode 100644 doc/guides/prog_guide/img/bond-mode-2.svg create mode 100644 doc/guides/prog_guide/img/bond-mode-3.svg create mode 100644 doc/guides/prog_guide/img/bond-mode-4.svg create mode 100644 doc/guides/prog_guide/img/bond-mode-5.svg create mode 100644 doc/guides/prog_guide/img/bond-overview.svg diff --git a/doc/guides/prog_guide/img/bond-mode-0.svg b/doc/guides/prog_guide/img/bond-mode-0.svg new file mode 100644 index 0000000..eff0edb --- /dev/null +++ b/doc/guides/prog_guide/img/bond-mode-0.svg @@ -0,0 +1,638 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generated by Microsoft Visio, SVG Export link bonding - mode 0.svg Page-4 --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="332.15576" + height="334.46951" + viewBox="0 0 265.725 267.57566" + xml:space="preserve" + color-interpolation-filters="sRGB" + class="st16" + id="svg3406" + version="1.1" + inkscape:version="0.48.5 r10040" + sodipodi:docname="bond-mode-0.svg" + style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"><metadata + id="metadata3652"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1056" + id="namedview3650" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="1.1907084" + inkscape:cx="509.87351" + inkscape:cy="57.377583" + inkscape:window-x="0" + inkscape:window-y="29" + inkscape:window-maximized="1" + inkscape:current-layer="svg3406" /><style + type="text/css" + id="style3408"> + .st1 {visibility:visible} + .st2 {fill:#5b9bd5;fill-opacity:0.25;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.25} + .st3 {fill:#4f87bb;stroke:#40709c;stroke-width:0.75} + .st4 {fill:#feffff;font-family:Calibri;font-size:0.833336em} + .st5 {fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75} + .st6 {fill:#4f87bb;font-family:Calibri;font-size:0.833336em} + .st7 {fill:#759fcc;fill-opacity:0.25;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.25} + .st8 {fill:#668bb3;stroke:#547395;stroke-width:0.75} + .st9 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22} + .st10 {fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25} + .st11 {fill:#759fcc;fill-opacity:0.22;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.22} + .st12 {fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25} + .st13 {fill:url(#grad0-40);stroke:#a6b6cd;stroke-width:0.75} + .st14 {fill:#70ad47;fill-opacity:0.25;filter:url(#filter_2);stroke:#70ad47;stroke-opacity:0.25} + .st15 {fill:#61973d;stroke:#507e31;stroke-width:0.75} + .st16 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + </style><defs + id="Patterns_And_Gradients"><linearGradient + id="grad0-11" + x1="-0.24584444" + y1="740.8343" + x2="167.49742" + y2="740.8343" + gradientTransform="scale(1.5253548,0.65558519)" + gradientUnits="userSpaceOnUse"><stop + offset="0" + stop-color="#e9eff7" + stop-opacity="1" + id="stop3412" /><stop + offset="0.24" + stop-color="#f4f7fb" + stop-opacity="1" + id="stop3414" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop3416" /></linearGradient><linearGradient + id="grad0-40" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="matrix(0.5,0.8660254,-0.8660254,0.5,0.6830127,-0.1830127)"><stop + offset="0" + stop-color="#f3f6fa" + stop-opacity="1" + id="stop3419" /><stop + offset="0.24" + stop-color="#f9fafc" + stop-opacity="1" + id="stop3421" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop3423" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient3654" + gradientTransform="scale(2.9084098,0.3438305)" + x1="-0.12893644" + y1="1717.1688" + x2="28.140807" + y2="1717.1688" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient3656" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient3658" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient3660" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient3662" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /></defs><defs + id="Filters"><filter + id="filter_2" + color-interpolation-filters="sRGB"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur3427" /></filter></defs><g + id="g3429" + transform="translate(-13.045598,-14.663414)"><title + id="title3431">Page-4</title><g + id="shape1-1" + transform="translate(18,-516.416)"><title + id="title3434">Rectangle.7</title><desc + id="desc3436">User Application</desc><g + id="shadow1-2" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st2" + id="rect3439" + style="fill:#5b9bd5;fill-opacity:0.25;stroke:#5b9bd5;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st3" + id="rect3441" + style="fill:#4f87bb;stroke:#40709c;stroke-width:0.75" /><text + x="94" + y="567.84998" + class="st4" + id="text3443" + style="fill:#feffff;font-family:Calibri">User Application</text> +</g><g + id="group2-7" + transform="translate(18,-355.662)"><title + id="title3446">Sheet.2</title><g + id="shape3-8"><title + id="title3449">Rectangle.38</title><desc + id="desc3451">DPDK</desc><rect + x="0" + y="486.05499" + width="255.118" + height="109.22" + class="st5" + id="rect3453" + style="fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75" /><text + x="228.45" + y="499.06" + class="st6" + id="text3455" + style="fill:#4f87bb;font-family:Calibri">DPDK</text> +</g><g + id="shape4-13" + transform="translate(6.87402,-7.17304)"><title + id="title3458">Rectangle.16</title><desc + id="desc3460">bonded ethdev</desc><g + id="shadow4-14" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st7" + id="rect3463" + style="fill:#759fcc;fill-opacity:0.25;stroke:#759fcc;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st8" + id="rect3465" + style="fill:#668bb3;stroke:#547395;stroke-width:0.75" /><text + x="89.650002" + y="536.16998" + class="st4" + id="text3467" + style="fill:#feffff;font-family:Calibri">bonded ethdev</text> +</g><g + id="shape5-19" + transform="translate(13.9606,-14.1732)"><title + id="title3470">Rectangle.11</title><desc + id="desc3472">ethdev port</desc><g + id="shadow5-20" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st9" + id="rect3475" + style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st10" + id="rect3477" + style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text3479" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape6-25" + transform="translate(91.9134,-14.1732)"><title + id="title3482">Rectangle.14</title><desc + id="desc3484">ethdev port</desc><g + id="shadow6-26" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect3487" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect3489" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text3491" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape7-31" + transform="translate(169.866,-14.1732)"><title + id="title3494">Rectangle.15</title><desc + id="desc3496">ethdev port</desc><g + id="shadow7-32" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect3499" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect3501" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text3503" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g></g><g + id="shape8-37" + transform="matrix(0.00130551,-0.99999915,0.99999915,0.00130551,-449.822,159.557)"><title + id="title3506">Simple Double Arrow.14</title><path + d="m 0,595.28 11.34,-4.49 0,2.24 58.8,0 0,-2.24 11.33,4.49 -11.33,4.48 0,-2.24 -58.8,0 0,2.24 L 0,595.28 z" + class="st13" + id="path3508" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient3654);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape9-41" + transform="matrix(0.01125714,-0.99993664,0.99993664,0.01125714,-532.876,272.07)"><title + id="title3511">Simple Arrow</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path3513" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient3656);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape10-44" + transform="matrix(-0.01125714,0.99993664,-0.99993664,-0.01125714,670.114,232.099)"><title + id="title3516">Simple Arrow.37</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path3518" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient3658);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape11-47" + transform="matrix(0.01448398,-0.9998951,0.9998951,0.01448398,-450.646,270.634)"><title + id="title3521">Simple Arrow.38</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path3523" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient3660);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape12-50" + transform="matrix(-0.01185051,-0.99992978,0.99992978,-0.01185051,-371.297,286.31)"><title + id="title3526">Simple Arrow.39</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path3528" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient3662);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape13-53" + transform="translate(124.724,-436.365)"><title + id="title3531">Square.114</title><desc + id="desc3533">1</desc><g + id="shadow13-54" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3536" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3538" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3540" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape14-59" + transform="translate(124.724,-455.698)"><title + id="title3543">Square.115</title><desc + id="desc3545">2</desc><g + id="shadow14-60" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3548" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3550" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3552" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape15-65" + transform="translate(124.724,-474.406)"><title + id="title3555">Square.116</title><desc + id="desc3557">3</desc><g + id="shadow15-66" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3560" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3562" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3564" + style="fill:#feffff;font-family:Calibri">3</text> +</g><g + id="shape16-71" + transform="translate(124.724,-493.739)"><title + id="title3567">Square.117</title><desc + id="desc3569">4</desc><g + id="shadow16-72" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3572" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3574" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3576" + style="fill:#feffff;font-family:Calibri">4</text> +</g><g + id="shape17-77" + transform="translate(124.724,-513.071)"><title + id="title3579">Square.118</title><desc + id="desc3581">5</desc><g + id="shadow17-78" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3584" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3586" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3588" + style="fill:#feffff;font-family:Calibri">5</text> +</g><g + id="shape18-83" + transform="translate(39.685,-320.315)"><title + id="title3591">Square.120</title><desc + id="desc3593">1</desc><g + id="shadow18-84" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3596" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3598" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3600" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape19-89" + transform="translate(119.055,-320.315)"><title + id="title3603">Square.121</title><desc + id="desc3605">2</desc><g + id="shadow19-90" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3608" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3610" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3612" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape20-95" + transform="translate(198.425,-320.315)"><title + id="title3615">Square.122</title><desc + id="desc3617">3</desc><g + id="shadow20-96" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3620" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3622" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3624" + style="fill:#feffff;font-family:Calibri">3</text> +</g><g + id="shape21-101" + transform="translate(39.685,-338.74)"><title + id="title3627">Square.123</title><desc + id="desc3629">4</desc><g + id="shadow21-102" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3632" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3634" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3636" + style="fill:#feffff;font-family:Calibri">4</text> +</g><g + id="shape22-107" + transform="translate(119.055,-338.74)"><title + id="title3639">Square.124</title><desc + id="desc3641">5</desc><g + id="shadow22-108" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect3644" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect3646" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text3648" + style="fill:#feffff;font-family:Calibri">5</text> +</g></g></svg> \ No newline at end of file diff --git a/doc/guides/prog_guide/img/bond-mode-1.svg b/doc/guides/prog_guide/img/bond-mode-1.svg new file mode 100644 index 0000000..c177e85 --- /dev/null +++ b/doc/guides/prog_guide/img/bond-mode-1.svg @@ -0,0 +1,724 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generated by Microsoft Visio, SVG Export link bonding - mode 1.svg Page-4 --> + +<svg + xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="332.147" + height="304.04852" + viewBox="0 0 265.71799 243.23887" + xml:space="preserve" + color-interpolation-filters="sRGB" + class="st16" + id="svg4008" + version="1.1" + inkscape:version="0.48.5 r10040" + sodipodi:docname="bond-mode-1.svg" + style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"><metadata + id="metadata4196"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview4194" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.29932695" + inkscape:cx="509.87351" + inkscape:cy="-49.657453" + inkscape:window-x="0" + inkscape:window-y="29" + inkscape:window-maximized="0" + inkscape:current-layer="svg4008" /><v:documentProperties + v:langID="1033" + v:metric="true" + 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:userDefs></v:documentProperties><style + type="text/css" + id="style4010"> + .st1 {visibility:visible} + .st2 {fill:#5b9bd5;fill-opacity:0.25;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.25} + .st3 {fill:#4f87bb;stroke:#40709c;stroke-width:0.75} + .st4 {fill:#feffff;font-family:Calibri;font-size:0.833336em} + .st5 {fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75} + .st6 {fill:#4f87bb;font-family:Calibri;font-size:0.833336em} + .st7 {fill:#759fcc;fill-opacity:0.25;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.25} + .st8 {fill:#668bb3;stroke:#547395;stroke-width:0.75} + .st9 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22} + .st10 {fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25} + .st11 {fill:#bdd0e9;fill-opacity:0.22;filter:url(#filter_2);stroke:#bdd0e9;stroke-opacity:0.22} + .st12 {fill:#bdd0e9;stroke:#c7c8c8;stroke-width:0.25} + .st13 {fill:url(#grad0-40);stroke:#a6b6cd;stroke-width:0.75} + .st14 {fill:#70ad47;fill-opacity:0.25;filter:url(#filter_2);stroke:#70ad47;stroke-opacity:0.25} + .st15 {fill:#61973d;stroke:#507e31;stroke-width:0.75} + .st16 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + </style><defs + id="Patterns_And_Gradients"><linearGradient + id="grad0-11" + x1="-0.24584444" + y1="740.8343" + x2="167.49742" + y2="740.8343" + gradientTransform="scale(1.5253548,0.65558519)" + gradientUnits="userSpaceOnUse"><stop + offset="0" + stop-color="#e9eff7" + stop-opacity="1" + id="stop4014" /><stop + offset="0.24" + stop-color="#f4f7fb" + stop-opacity="1" + id="stop4016" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop4018" /></linearGradient><linearGradient + id="grad0-40" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="matrix(0.5,0.8660254,-0.8660254,0.5,0.6830127,-0.1830127)"><stop + offset="0" + stop-color="#f3f6fa" + stop-opacity="1" + id="stop4021" /><stop + offset="0.24" + stop-color="#f9fafc" + stop-opacity="1" + id="stop4023" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop4025" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient4198" + gradientTransform="scale(2.2585002,0.44277172)" + x1="-0.16603939" + y1="1333.4524" + x2="21.786582" + y2="1333.4524" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient4200" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient4202" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /></defs><defs + id="Filters"><filter + id="filter_2" + color-interpolation-filters="sRGB"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur4029" /></filter></defs><g + v:mID="6" + v:index="4" + v:groupContext="foregroundPage" + id="g4031" + transform="translate(-13.045598,-14.67318)"><v:userDefs><v:ud + v:nameU="msvThemeOrder" + v:val="VT0(0):26" /></v:userDefs><title + id="title4033">Page-4</title><v:pageProperties + v:drawingScale="0.0393701" + v:pageScale="0.0393701" + v:drawingUnits="24" + v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394" /><g + id="shape39-1" + v:mID="39" + v:groupContext="shape" + transform="translate(18,-516.416)"><title + id="title4036">Rectangle.40</title><desc + id="desc4038">User Application</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="127.559" + cy="564.846" + width="255.12" + height="60.8598" /><g + id="shadow39-2" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st2" + id="rect4041" + style="fill:#5b9bd5;fill-opacity:0.25;stroke:#5b9bd5;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st3" + id="rect4043" + style="fill:#4f87bb;stroke:#40709c;stroke-width:0.75" /><text + x="94" + y="567.84998" + class="st4" + v:langID="2057" + id="text4045" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />User Application</text> +</g><g + id="group40-7" + transform="translate(18,-388.303)" + v:mID="40" + v:groupContext="group"><title + id="title4048">Sheet.40</title><g + id="shape41-8" + v:mID="41" + v:groupContext="shape"><title + id="title4051">Rectangle.38</title><desc + id="desc4053">DPDK</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" + v:verticalAlign="0" /><v:textRect + cx="127.559" + cy="540.665" + width="255.12" + height="109.22" /><rect + x="0" + y="486.05499" + width="255.118" + height="109.22" + class="st5" + id="rect4055" + style="fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75" /><text + x="228.45" + y="499.06" + class="st6" + v:langID="2057" + id="text4057" + style="fill:#4f87bb;font-family:Calibri"><v:paragraph + v:horizAlign="2" /><v:tabList />DPDK</text> +</g><g + id="shape42-13" + v:mID="42" + v:groupContext="shape" + transform="translate(6.87402,-7.17304)"><title + id="title4060">Rectangle.16</title><desc + id="desc4062">bonded ethdev</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" + v:verticalAlign="0" /><v:textRect + cx="120.579" + cy="559.222" + width="241.16" + height="72.1072" /><g + id="shadow42-14" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st7" + id="rect4065" + style="fill:#759fcc;fill-opacity:0.25;stroke:#759fcc;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st8" + id="rect4067" + style="fill:#668bb3;stroke:#547395;stroke-width:0.75" /><text + x="89.650002" + y="536.16998" + class="st4" + v:langID="2057" + id="text4069" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />bonded ethdev</text> +</g><g + id="shape43-19" + v:mID="43" + v:groupContext="shape" + transform="translate(13.9606,-14.1732)"><title + id="title4072">Rectangle.11</title><desc + id="desc4074">ethdev port</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="35.4331" + cy="577.516" + width="70.87" + height="35.5195" /><g + id="shadow43-20" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st9" + id="rect4077" + style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st10" + id="rect4079" + style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + v:langID="2057" + id="text4081" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />ethdev port</text> +</g><g + id="shape44-25" + v:mID="44" + v:groupContext="shape" + transform="translate(91.9134,-14.1732)"><title + id="title4084">Rectangle.14</title><desc + id="desc4086">ethdev port</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="35.4331" + cy="577.516" + width="70.87" + height="35.5195" /><g + id="shadow44-26" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect4089" + style="fill:#bdd0e9;fill-opacity:0.22000002;stroke:#bdd0e9;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect4091" + style="fill:#bdd0e9;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + v:langID="2057" + id="text4093" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />ethdev port</text> +</g><g + id="shape45-31" + v:mID="45" + v:groupContext="shape" + transform="translate(169.866,-14.1732)"><title + id="title4096">Rectangle.15</title><desc + id="desc4098">ethdev port</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="35.4331" + cy="577.516" + width="70.87" + height="35.5195" /><g + id="shadow45-32" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect4101" + style="fill:#bdd0e9;fill-opacity:0.22000002;stroke:#bdd0e9;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect4103" + style="fill:#bdd0e9;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + v:langID="2057" + id="text4105" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />ethdev port</text> +</g></g><g + id="shape46-37" + v:mID="46" + v:groupContext="shape" + transform="matrix(0.00217642,-0.99999763,0.99999763,0.00217642,-449.821,126.396)"><title + id="title4108">Simple Double Arrow.47</title><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /><v:ud + v:nameU="ArrowType" + v:prompt="" + v:val="VT0(3):26" /></v:userDefs><path + d="m 0,595.28 11.34,-4.49 0,2.24 26.15,0 0,-2.24 11.34,4.49 -11.34,4.48 0,-2.24 -26.15,0 0,2.24 L 0,595.28 z" + class="st13" + id="path4110" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient4198);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape47-41" + v:mID="47" + v:groupContext="shape" + transform="matrix(0.01125714,-0.99993664,0.99993664,0.01125714,-532.876,239.429)"><title + id="title4113">Simple Arrow.47</title><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /><v:ud + v:nameU="ArrowType" + v:prompt="" + v:val="VT0(2):26" /></v:userDefs><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path4115" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient4200);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape48-44" + v:mID="48" + v:groupContext="shape" + transform="matrix(-0.01125714,0.99993664,-0.99993664,-0.01125714,670.114,199.457)"><title + id="title4118">Simple Arrow.49</title><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /><v:ud + v:nameU="ArrowType" + v:prompt="" + v:val="VT0(2):26" /></v:userDefs><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path4120" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient4202);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape49-47" + v:mID="49" + v:groupContext="shape" + transform="translate(156.898,-472.791)"><title + id="title4123">Square.108</title><desc + id="desc4125">1</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="7.08661" + cy="588.189" + width="14.18" + height="14.1732" /><g + id="shadow49-48" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect4128" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect4130" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + v:langID="2057" + id="text4132" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />1</text> +</g><g + id="shape50-53" + v:mID="50" + v:groupContext="shape" + transform="translate(156.898,-492.123)"><title + id="title4135">Square.109</title><desc + id="desc4137">2</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="7.08661" + cy="588.189" + width="14.18" + height="14.1732" /><g + id="shadow50-54" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect4140" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect4142" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + v:langID="2057" + id="text4144" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />2</text> +</g><g + id="shape51-59" + v:mID="51" + v:groupContext="shape" + transform="translate(156.898,-510.831)"><title + id="title4147">Square.110</title><desc + id="desc4149">3</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="7.08661" + cy="588.189" + width="14.18" + height="14.1732" /><g + id="shadow51-60" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect4152" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect4154" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + v:langID="2057" + id="text4156" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />3</text> +</g><g + id="shape52-65" + v:mID="52" + v:groupContext="shape" + transform="translate(39.2598,-344.636)"><title + id="title4159">Square.111</title><desc + id="desc4161">1</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="7.08661" + cy="588.189" + width="14.18" + height="14.1732" /><g + id="shadow52-66" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect4164" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect4166" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + v:langID="2057" + id="text4168" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />1</text> +</g><g + id="shape53-71" + v:mID="53" + v:groupContext="shape" + transform="translate(39.2598,-363.969)"><title + id="title4171">Square.112</title><desc + id="desc4173">2</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="7.08661" + cy="588.189" + width="14.18" + height="14.1732" /><g + id="shadow53-72" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect4176" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect4178" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + v:langID="2057" + id="text4180" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />2</text> +</g><g + id="shape54-77" + v:mID="54" + v:groupContext="shape" + transform="translate(39.2598,-382.677)"><title + id="title4183">Square.113</title><desc + id="desc4185">3</desc><v:userDefs><v:ud + v:nameU="visVersion" + v:val="VT0(15):26" /></v:userDefs><v:textBlock + v:margins="rect(4,4,4,4)" + v:tabSpace="42.5197" /><v:textRect + cx="7.08661" + cy="588.189" + width="14.18" + height="14.1732" /><g + id="shadow54-78" + v:groupContext="shadow" + v:shadowOffsetX="0.345598" + v:shadowOffsetY="-1.97279" + v:shadowType="1" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect4188" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect4190" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + v:langID="2057" + id="text4192" + style="fill:#feffff;font-family:Calibri"><v:paragraph + v:horizAlign="1" /><v:tabList />3</text> +</g></g></svg> \ No newline at end of file diff --git a/doc/guides/prog_guide/img/bond-mode-2.svg b/doc/guides/prog_guide/img/bond-mode-2.svg new file mode 100644 index 0000000..3dbb598 --- /dev/null +++ b/doc/guides/prog_guide/img/bond-mode-2.svg @@ -0,0 +1,702 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generated by Microsoft Visio, SVG Export link bonding - mode 2.svg Page-4 --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="332.147" + height="358.22595" + viewBox="0 0 265.71799 286.58082" + xml:space="preserve" + color-interpolation-filters="sRGB" + class="st20" + id="svg5449" + version="1.1" + inkscape:version="0.48.5 r10040" + sodipodi:docname="bond-mode-2.svg" + style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"><metadata + id="metadata5725"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview5723" + showgrid="false" + inkscape:zoom="0.29932695" + inkscape:cx="509.87351" + inkscape:cy="4.5199676" + inkscape:window-x="0" + inkscape:window-y="29" + inkscape:window-maximized="0" + inkscape:current-layer="svg5449" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /><style + type="text/css" + id="style5451"> + .st1 {visibility:visible} + .st2 {fill:#5b9bd5;fill-opacity:0.25;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.25} + .st3 {fill:#4f87bb;stroke:#40709c;stroke-width:0.75} + .st4 {fill:#feffff;font-family:Calibri;font-size:0.833336em} + .st5 {fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75} + .st6 {fill:#4f87bb;font-family:Calibri;font-size:0.833336em} + .st7 {fill:#759fcc;fill-opacity:0.25;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.25} + .st8 {fill:#668bb3;stroke:#547395;stroke-width:0.75} + .st9 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22} + .st10 {fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25} + .st11 {fill:#759fcc;fill-opacity:0.22;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.22} + .st12 {fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25} + .st13 {fill:url(#grad0-40);stroke:#a6b6cd;stroke-width:0.75} + .st14 {fill:#70ad47;fill-opacity:0.25;filter:url(#filter_2);stroke:#70ad47;stroke-opacity:0.25} + .st15 {fill:#61973d;stroke:#507e31;stroke-width:0.75} + .st16 {fill:#fec000;fill-opacity:0.25;filter:url(#filter_2);stroke:#fec000;stroke-opacity:0.25} + .st17 {fill:#dfa800;stroke:#ba8c00;stroke-width:0.75} + .st18 {fill:#ed7d31;fill-opacity:0.25;filter:url(#filter_2);stroke:#ed7d31;stroke-opacity:0.25} + .st19 {fill:#d06d29;stroke:#ae5a21;stroke-width:0.75} + .st20 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + </style><defs + id="Patterns_And_Gradients"><linearGradient + id="grad0-11" + x1="-0.24584444" + y1="740.8343" + x2="167.49742" + y2="740.8343" + gradientTransform="scale(1.5253548,0.65558519)" + gradientUnits="userSpaceOnUse"><stop + offset="0" + stop-color="#e9eff7" + stop-opacity="1" + id="stop5455" /><stop + offset="0.24" + stop-color="#f4f7fb" + stop-opacity="1" + id="stop5457" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop5459" /></linearGradient><linearGradient + id="grad0-40" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="matrix(0.5,0.8660254,-0.8660254,0.5,0.6830127,-0.1830127)"><stop + offset="0" + stop-color="#f3f6fa" + stop-opacity="1" + id="stop5462" /><stop + offset="0.24" + stop-color="#f9fafc" + stop-opacity="1" + id="stop5464" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop5466" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6619" + gradientTransform="scale(3.1025013,0.32232057)" + x1="-0.12087021" + y1="1831.7633" + x2="30.035443" + y2="1831.7633" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6621" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6623" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6625" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6627" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /></defs><defs + id="Filters"><filter + id="filter_2" + color-interpolation-filters="sRGB"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur5470" /></filter></defs><g + id="g5472" + transform="translate(-13.045598,-14.67318)"><title + id="title5474">Page-4</title><g + id="shape55-1" + transform="translate(18,-516.416)"><title + id="title5477">Rectangle.151</title><desc + id="desc5479">User Application</desc><g + id="shadow55-2" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st2" + id="rect5482" + style="fill:#5b9bd5;fill-opacity:0.25;stroke:#5b9bd5;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st3" + id="rect5484" + style="fill:#4f87bb;stroke:#40709c;stroke-width:0.75" /><text + x="94" + y="567.84998" + class="st4" + id="text5486" + style="fill:#feffff;font-family:Calibri">User Application</text> +</g><g + id="group56-7" + transform="translate(18,-344.323)"><title + id="title5489">Sheet.56</title><g + id="shape57-8"><title + id="title5492">Rectangle.38</title><desc + id="desc5494">DPDK</desc><rect + x="0" + y="486.05499" + width="255.118" + height="109.22" + class="st5" + id="rect5496" + style="fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75" /><text + x="228.45" + y="499.06" + class="st6" + id="text5498" + style="fill:#4f87bb;font-family:Calibri">DPDK</text> +</g><g + id="shape58-13" + transform="translate(6.87402,-7.17304)"><title + id="title5501">Rectangle.16</title><desc + id="desc5503">bonded ethdev</desc><g + id="shadow58-14" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st7" + id="rect5506" + style="fill:#759fcc;fill-opacity:0.25;stroke:#759fcc;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st8" + id="rect5508" + style="fill:#668bb3;stroke:#547395;stroke-width:0.75" /><text + x="89.650002" + y="536.16998" + class="st4" + id="text5510" + style="fill:#feffff;font-family:Calibri">bonded ethdev</text> +</g><g + id="shape59-19" + transform="translate(13.9606,-14.1732)"><title + id="title5513">Rectangle.11</title><desc + id="desc5515">ethdev port</desc><g + id="shadow59-20" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st9" + id="rect5518" + style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st10" + id="rect5520" + style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text5522" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape60-25" + transform="translate(91.9134,-14.1732)"><title + id="title5525">Rectangle.14</title><desc + id="desc5527">ethdev port</desc><g + id="shadow60-26" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect5530" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect5532" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text5534" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape61-31" + transform="translate(169.866,-14.1732)"><title + id="title5537">Rectangle.15</title><desc + id="desc5539">ethdev port</desc><g + id="shadow61-32" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect5542" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect5544" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text5546" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g></g><g + id="shape62-37" + transform="matrix(0.00114494,-0.99999934,0.99999934,0.00114494,-449.822,170.991)"><title + id="title5549">Simple Double Arrow.158</title><path + d="m 0,595.28 11.34,-4.49 0,2.24 70.13,0 0,-2.24 11.34,4.49 -11.34,4.48 0,-2.24 -70.13,0 0,2.24 L 0,595.28 z" + class="st13" + id="path5551" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6619);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape63-41" + transform="matrix(0.01125714,-0.99993664,0.99993664,0.01125714,-532.876,283.409)"><title + id="title5554">Simple Arrow.159</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path5556" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6621);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape64-44" + transform="matrix(-0.01125714,0.99993664,-0.99993664,-0.01125714,670.114,243.437)"><title + id="title5559">Simple Arrow.160</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path5561" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6623);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape65-47" + transform="matrix(0.01448398,-0.9998951,0.9998951,0.01448398,-450.646,281.973)"><title + id="title5564">Simple Arrow.161</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path5566" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6625);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape66-50" + transform="matrix(-0.01185051,-0.99992978,0.99992978,-0.01185051,-371.297,297.649)"><title + id="title5569">Simple Arrow.162</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path5571" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6627);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape67-53" + transform="translate(121.039,-421.115)"><title + id="title5574">Square.163</title><desc + id="desc5576">1</desc><g + id="shadow67-54" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5579" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5581" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5583" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape68-59" + transform="translate(121.039,-440.447)"><title + id="title5586">Square.164</title><desc + id="desc5588">2</desc><g + id="shadow68-60" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st16" + id="rect5591" + style="fill:#fec000;fill-opacity:0.25;stroke:#fec000;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st17" + id="rect5593" + style="fill:#dfa800;stroke:#ba8c00;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5595" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape69-65" + transform="translate(121.039,-459.156)"><title + id="title5598">Square.165</title><desc + id="desc5600">3</desc><g + id="shadow69-66" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5603" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5605" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5607" + style="fill:#feffff;font-family:Calibri">3</text> +</g><g + id="shape70-71" + transform="translate(121.039,-478.488)"><title + id="title5610">Square.166</title><desc + id="desc5612">4</desc><g + id="shadow70-72" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st16" + id="rect5615" + style="fill:#fec000;fill-opacity:0.25;stroke:#fec000;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st17" + id="rect5617" + style="fill:#dfa800;stroke:#ba8c00;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5619" + style="fill:#feffff;font-family:Calibri">4</text> +</g><g + id="shape71-77" + transform="translate(121.039,-497.82)"><title + id="title5622">Square.167</title><desc + id="desc5624">5</desc><g + id="shadow71-78" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5627" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5629" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5631" + style="fill:#feffff;font-family:Calibri">5</text> +</g><g + id="shape72-83" + transform="translate(121.039,-517.153)"><title + id="title5634">Square.168</title><desc + id="desc5636">6</desc><g + id="shadow72-84" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st18" + id="rect5639" + style="fill:#ed7d31;fill-opacity:0.25;stroke:#ed7d31;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st19" + id="rect5641" + style="fill:#d06d29;stroke:#ae5a21;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5643" + style="fill:#feffff;font-family:Calibri">6</text> +</g><g + id="group73-89" + transform="translate(116.787,-301.294)"><title + id="title5646">Sheet.73</title><g + id="shape74-90"><title + id="title5649">Square.172</title><desc + id="desc5651">2</desc><g + id="shadow74-91" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st16" + id="rect5654" + style="fill:#fec000;fill-opacity:0.25;stroke:#fec000;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st17" + id="rect5656" + style="fill:#dfa800;stroke:#ba8c00;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5658" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape75-96" + transform="translate(0,-19.0205)"><title + id="title5661">Square.173</title><desc + id="desc5663">4</desc><g + id="shadow75-97" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st16" + id="rect5666" + style="fill:#fec000;fill-opacity:0.25;stroke:#fec000;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st17" + id="rect5668" + style="fill:#dfa800;stroke:#ba8c00;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5670" + style="fill:#feffff;font-family:Calibri">4</text> +</g></g><g + id="shape76-102" + transform="translate(194.74,-301.294)"><title + id="title5673">Square.175</title><desc + id="desc5675">6</desc><g + id="shadow76-103" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st18" + id="rect5678" + style="fill:#ed7d31;fill-opacity:0.25;stroke:#ed7d31;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st19" + id="rect5680" + style="fill:#d06d29;stroke:#ae5a21;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5682" + style="fill:#feffff;font-family:Calibri">6</text> +</g><g + id="group77-108" + transform="translate(38.8346,-301.294)"><title + id="title5685">Sheet.77</title><g + id="shape78-109"><title + id="title5688">Square.169</title><desc + id="desc5690">1</desc><g + id="shadow78-110" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5693" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5695" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5697" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape79-115" + transform="translate(0,-19.0205)"><title + id="title5700">Square.170</title><desc + id="desc5702">3</desc><g + id="shadow79-116" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5705" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5707" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5709" + style="fill:#feffff;font-family:Calibri">3</text> +</g><g + id="shape80-121" + transform="translate(0,-38.1813)"><title + id="title5712">Square.171</title><desc + id="desc5714">5</desc><g + id="shadow80-122" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5717" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5719" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5721" + style="fill:#feffff;font-family:Calibri">5</text> +</g></g></g></svg> \ No newline at end of file diff --git a/doc/guides/prog_guide/img/bond-mode-3.svg b/doc/guides/prog_guide/img/bond-mode-3.svg new file mode 100644 index 0000000..d2dbe3a --- /dev/null +++ b/doc/guides/prog_guide/img/bond-mode-3.svg @@ -0,0 +1,702 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generated by Microsoft Visio, SVG Export link bonding - mode 3.svg Page-4 --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="332.147" + height="300.50479" + viewBox="0 0 265.71799 240.40388" + xml:space="preserve" + color-interpolation-filters="sRGB" + class="st16" + id="svg5727" + version="1.1" + inkscape:version="0.48.5 r10040" + sodipodi:docname="bond-mode-3.svg" + style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"><metadata + id="metadata6009"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview6007" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.29932695" + inkscape:cx="509.87351" + inkscape:cy="-53.201198" + inkscape:window-x="0" + inkscape:window-y="29" + inkscape:window-maximized="0" + inkscape:current-layer="svg5727" /><style + type="text/css" + id="style5729"> + .st1 {visibility:visible} + .st2 {fill:#5b9bd5;fill-opacity:0.25;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.25} + .st3 {fill:#4f87bb;stroke:#40709c;stroke-width:0.75} + .st4 {fill:#feffff;font-family:Calibri;font-size:0.833336em} + .st5 {fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75} + .st6 {fill:#4f87bb;font-family:Calibri;font-size:0.833336em} + .st7 {fill:#759fcc;fill-opacity:0.25;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.25} + .st8 {fill:#668bb3;stroke:#547395;stroke-width:0.75} + .st9 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22} + .st10 {fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25} + .st11 {fill:#759fcc;fill-opacity:0.22;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.22} + .st12 {fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25} + .st13 {fill:url(#grad0-40);stroke:#a6b6cd;stroke-width:0.75} + .st14 {fill:#70ad47;fill-opacity:0.25;filter:url(#filter_2);stroke:#70ad47;stroke-opacity:0.25} + .st15 {fill:#61973d;stroke:#507e31;stroke-width:0.75} + .st16 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + </style><defs + id="Patterns_And_Gradients"><linearGradient + id="grad0-11" + x1="-0.24584444" + y1="740.8343" + x2="167.49742" + y2="740.8343" + gradientTransform="scale(1.5253548,0.65558519)" + gradientUnits="userSpaceOnUse"><stop + offset="0" + stop-color="#e9eff7" + stop-opacity="1" + id="stop5733" /><stop + offset="0.24" + stop-color="#f4f7fb" + stop-opacity="1" + id="stop5735" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop5737" /></linearGradient><linearGradient + id="grad0-40" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="matrix(0.5,0.8660254,-0.8660254,0.5,0.6830127,-0.1830127)"><stop + offset="0" + stop-color="#f3f6fa" + stop-opacity="1" + id="stop5740" /><stop + offset="0.24" + stop-color="#f9fafc" + stop-opacity="1" + id="stop5742" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop5744" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6590" + gradientTransform="scale(2.2585002,0.44277172)" + x1="-0.16603939" + y1="1333.4524" + x2="21.786582" + y2="1333.4524" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6592" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6594" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6596" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6598" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /></defs><defs + id="Filters"><filter + id="filter_2" + color-interpolation-filters="sRGB"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur5748" /></filter></defs><g + id="g5750" + transform="translate(-13.045598,-14.67318)"><title + id="title5752">Page-4</title><g + id="shape81-1" + transform="translate(18,-516.416)"><title + id="title5755">Rectangle.74</title><desc + id="desc5757">User Application</desc><g + id="shadow81-2" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st2" + id="rect5760" + style="fill:#5b9bd5;fill-opacity:0.25;stroke:#5b9bd5;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st3" + id="rect5762" + style="fill:#4f87bb;stroke:#40709c;stroke-width:0.75" /><text + x="94" + y="567.84998" + class="st4" + id="text5764" + style="fill:#feffff;font-family:Calibri">User Application</text> +</g><g + id="group82-7" + transform="translate(18,-388.303)"><title + id="title5767">Sheet.82</title><g + id="shape83-8"><title + id="title5770">Rectangle.38</title><desc + id="desc5772">DPDK</desc><rect + x="0" + y="486.05499" + width="255.118" + height="109.22" + class="st5" + id="rect5774" + style="fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75" /><text + x="228.45" + y="499.06" + class="st6" + id="text5776" + style="fill:#4f87bb;font-family:Calibri">DPDK</text> +</g><g + id="shape84-13" + transform="translate(6.87402,-7.17304)"><title + id="title5779">Rectangle.16</title><desc + id="desc5781">bonded ethdev</desc><g + id="shadow84-14" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st7" + id="rect5784" + style="fill:#759fcc;fill-opacity:0.25;stroke:#759fcc;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st8" + id="rect5786" + style="fill:#668bb3;stroke:#547395;stroke-width:0.75" /><text + x="89.650002" + y="536.16998" + class="st4" + id="text5788" + style="fill:#feffff;font-family:Calibri">bonded ethdev</text> +</g><g + id="shape85-19" + transform="translate(13.9606,-14.1732)"><title + id="title5791">Rectangle.11</title><desc + id="desc5793">ethdev port</desc><g + id="shadow85-20" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st9" + id="rect5796" + style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st10" + id="rect5798" + style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text5800" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape86-25" + transform="translate(91.9134,-14.1732)"><title + id="title5803">Rectangle.14</title><desc + id="desc5805">ethdev port</desc><g + id="shadow86-26" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect5808" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect5810" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text5812" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape87-31" + transform="translate(169.866,-14.1732)"><title + id="title5815">Rectangle.15</title><desc + id="desc5817">ethdev port</desc><g + id="shadow87-32" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect5820" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect5822" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text5824" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g></g><g + id="shape88-37" + transform="matrix(0.00217642,-0.99999763,0.99999763,0.00217642,-449.821,126.396)"><title + id="title5827">Simple Double Arrow.81</title><path + d="m 0,595.28 11.34,-4.49 0,2.24 26.15,0 0,-2.24 11.34,4.49 -11.34,4.48 0,-2.24 -26.15,0 0,2.24 L 0,595.28 z" + class="st13" + id="path5829" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6590);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape89-41" + transform="matrix(0.01125714,-0.99993664,0.99993664,0.01125714,-532.876,239.429)"><title + id="title5832">Simple Arrow.82</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path5834" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6592);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape90-44" + transform="matrix(-0.01125714,0.99993664,-0.99993664,-0.01125714,670.114,199.457)"><title + id="title5837">Simple Arrow.83</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path5839" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6594);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape91-47" + transform="matrix(0.01448398,-0.9998951,0.9998951,0.01448398,-450.646,237.992)"><title + id="title5842">Simple Arrow.84</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path5844" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6596);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape92-50" + transform="matrix(-0.01185051,-0.99992978,0.99992978,-0.01185051,-371.297,253.669)"><title + id="title5847">Simple Arrow.85</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path5849" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6598);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="group93-53" + transform="translate(37.8425,-347.471)"><title + id="title5852">Sheet.93</title><g + id="shape94-54"><title + id="title5855">Square.125</title><desc + id="desc5857">1</desc><g + id="shadow94-55" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5860" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5862" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5864" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape95-60" + transform="translate(0,-19.3323)"><title + id="title5867">Square.126</title><desc + id="desc5869">2</desc><g + id="shadow95-61" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5872" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5874" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5876" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape96-66" + transform="translate(0,-38.0409)"><title + id="title5879">Square.127</title><desc + id="desc5881">3</desc><g + id="shadow96-67" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5884" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5886" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5888" + style="fill:#feffff;font-family:Calibri">3</text> +</g></g><g + id="group97-72" + transform="translate(119.055,-347.471)"><title + id="title5891">Sheet.97</title><g + id="shape98-73"><title + id="title5894">Square.125</title><desc + id="desc5896">1</desc><g + id="shadow98-74" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5899" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5901" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5903" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape99-79" + transform="translate(0,-19.3323)"><title + id="title5906">Square.126</title><desc + id="desc5908">2</desc><g + id="shadow99-80" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5911" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5913" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5915" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape100-85" + transform="translate(0,-38.0409)"><title + id="title5918">Square.127</title><desc + id="desc5920">3</desc><g + id="shadow100-86" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5923" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5925" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5927" + style="fill:#feffff;font-family:Calibri">3</text> +</g></g><g + id="group101-91" + transform="translate(200.268,-347.471)"><title + id="title5930">Sheet.101</title><g + id="shape102-92"><title + id="title5933">Square.125</title><desc + id="desc5935">1</desc><g + id="shadow102-93" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5938" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5940" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5942" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape103-98" + transform="translate(0,-19.3323)"><title + id="title5945">Square.126</title><desc + id="desc5947">2</desc><g + id="shadow103-99" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5950" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5952" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5954" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape104-104" + transform="translate(0,-38.0409)"><title + id="title5957">Square.127</title><desc + id="desc5959">3</desc><g + id="shadow104-105" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5962" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5964" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5966" + style="fill:#feffff;font-family:Calibri">3</text> +</g></g><g + id="group105-110" + transform="translate(122.882,-473.386)"><title + id="title5969">Sheet.105</title><g + id="shape106-111"><title + id="title5972">Square.125</title><desc + id="desc5974">1</desc><g + id="shadow106-112" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5977" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5979" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5981" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape107-117" + transform="translate(0,-19.3323)"><title + id="title5984">Square.126</title><desc + id="desc5986">2</desc><g + id="shadow107-118" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect5989" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect5991" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text5993" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape108-123" + transform="translate(0,-38.0409)"><title + id="title5996">Square.127</title><desc + id="desc5998">3</desc><g + id="shadow108-124" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect6001" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect6003" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6005" + style="fill:#feffff;font-family:Calibri">3</text> +</g></g></g></svg> \ No newline at end of file diff --git a/doc/guides/prog_guide/img/bond-mode-4.svg b/doc/guides/prog_guide/img/bond-mode-4.svg new file mode 100644 index 0000000..45749bd --- /dev/null +++ b/doc/guides/prog_guide/img/bond-mode-4.svg @@ -0,0 +1,784 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generated by Microsoft Visio, SVG Export link bonding - mode 4.svg Page-4 --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="332.147" + height="380.51215" + viewBox="0 0 265.71799 304.40978" + xml:space="preserve" + color-interpolation-filters="sRGB" + class="st22" + id="svg6011" + version="1.1" + inkscape:version="0.48.5 r10040" + sodipodi:docname="bond-mode-4.svg" + style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"><metadata + id="metadata6317"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview6315" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.29932695" + inkscape:cx="509.87351" + inkscape:cy="26.806185" + inkscape:window-x="0" + inkscape:window-y="29" + inkscape:window-maximized="0" + inkscape:current-layer="svg6011" /><style + type="text/css" + id="style6013"> + .st1 {visibility:visible} + .st2 {fill:#5b9bd5;fill-opacity:0.25;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.25} + .st3 {fill:#4f87bb;stroke:#40709c;stroke-width:0.75} + .st4 {fill:#feffff;font-family:Calibri;font-size:0.833336em} + .st5 {fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75} + .st6 {fill:#4f87bb;font-family:Calibri;font-size:0.833336em} + .st7 {fill:#759fcc;fill-opacity:0.25;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.25} + .st8 {fill:#668bb3;stroke:#547395;stroke-width:0.75} + .st9 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22} + .st10 {fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25} + .st11 {fill:#759fcc;fill-opacity:0.22;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.22} + .st12 {fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25} + .st13 {fill:url(#grad0-40);stroke:#a6b6cd;stroke-width:0.75} + .st14 {fill:#70ad47;fill-opacity:0.25;filter:url(#filter_2);stroke:#70ad47;stroke-opacity:0.25} + .st15 {fill:#61973d;stroke:#507e31;stroke-width:0.75} + .st16 {fill:#fec000;fill-opacity:0.25;filter:url(#filter_2);stroke:#fec000;stroke-opacity:0.25} + .st17 {fill:#dfa800;stroke:#ba8c00;stroke-width:0.75} + .st18 {fill:#ed7d31;fill-opacity:0.25;filter:url(#filter_2);stroke:#ed7d31;stroke-opacity:0.25} + .st19 {fill:#d06d29;stroke:#ae5a21;stroke-width:0.75} + .st20 {fill:#bdd0e9;fill-opacity:0.25;filter:url(#filter_2);stroke:#bdd0e9;stroke-opacity:0.25} + .st21 {fill:#a6b6cd;stroke:#8a98ab;stroke-width:0.75} + .st22 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + </style><defs + id="Patterns_And_Gradients"><linearGradient + id="grad0-11" + x1="-0.24584444" + y1="740.8343" + x2="167.49742" + y2="740.8343" + gradientTransform="scale(1.5253548,0.65558519)" + gradientUnits="userSpaceOnUse"><stop + offset="0" + stop-color="#e9eff7" + stop-opacity="1" + id="stop6017" /><stop + offset="0.24" + stop-color="#f4f7fb" + stop-opacity="1" + id="stop6019" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop6021" /></linearGradient><linearGradient + id="grad0-40" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="matrix(0.5,0.8660254,-0.8660254,0.5,0.6830127,-0.1830127)"><stop + offset="0" + stop-color="#f3f6fa" + stop-opacity="1" + id="stop6024" /><stop + offset="0.24" + stop-color="#f9fafc" + stop-opacity="1" + id="stop6026" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop6028" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6580" + gradientTransform="scale(3.1025013,0.32232057)" + x1="-0.12087021" + y1="1831.7633" + x2="30.035443" + y2="1831.7633" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6582" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6584" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6586" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6588" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /></defs><defs + id="Filters"><filter + id="filter_2" + color-interpolation-filters="sRGB"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur6032" /></filter></defs><g + id="g6034" + transform="translate(-13.045598,-14.67318)"><title + id="title6036">Page-4</title><g + id="shape109-1" + transform="translate(18,-516.416)"><title + id="title6039">Rectangle.177</title><desc + id="desc6041">User Application</desc><g + id="shadow109-2" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st2" + id="rect6044" + style="fill:#5b9bd5;fill-opacity:0.25;stroke:#5b9bd5;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st3" + id="rect6046" + style="fill:#4f87bb;stroke:#40709c;stroke-width:0.75" /><text + x="94" + y="567.84998" + class="st4" + id="text6048" + style="fill:#feffff;font-family:Calibri">User Application</text> +</g><g + id="group110-7" + transform="translate(18,-344.323)"><title + id="title6051">Sheet.110</title><g + id="shape111-8"><title + id="title6054">Rectangle.38</title><desc + id="desc6056">DPDK</desc><rect + x="0" + y="486.05499" + width="255.118" + height="109.22" + class="st5" + id="rect6058" + style="fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75" /><text + x="228.45" + y="499.06" + class="st6" + id="text6060" + style="fill:#4f87bb;font-family:Calibri">DPDK</text> +</g><g + id="shape112-13" + transform="translate(6.87402,-7.17304)"><title + id="title6063">Rectangle.16</title><desc + id="desc6065">bonded ethdev</desc><g + id="shadow112-14" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st7" + id="rect6068" + style="fill:#759fcc;fill-opacity:0.25;stroke:#759fcc;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st8" + id="rect6070" + style="fill:#668bb3;stroke:#547395;stroke-width:0.75" /><text + x="89.650002" + y="536.16998" + class="st4" + id="text6072" + style="fill:#feffff;font-family:Calibri">bonded ethdev</text> +</g><g + id="shape113-19" + transform="translate(13.9606,-14.1732)"><title + id="title6075">Rectangle.11</title><desc + id="desc6077">ethdev port</desc><g + id="shadow113-20" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st9" + id="rect6080" + style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st10" + id="rect6082" + style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text6084" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape114-25" + transform="translate(91.9134,-14.1732)"><title + id="title6087">Rectangle.14</title><desc + id="desc6089">ethdev port</desc><g + id="shadow114-26" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect6092" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect6094" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text6096" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape115-31" + transform="translate(169.866,-14.1732)"><title + id="title6099">Rectangle.15</title><desc + id="desc6101">ethdev port</desc><g + id="shadow115-32" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect6104" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect6106" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text6108" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g></g><g + id="shape116-37" + transform="matrix(0.00114494,-0.99999934,0.99999934,0.00114494,-449.822,170.991)"><title + id="title6111">Simple Double Arrow.184</title><path + d="m 0,595.28 11.34,-4.49 0,2.24 70.13,0 0,-2.24 11.34,4.49 -11.34,4.48 0,-2.24 -70.13,0 0,2.24 L 0,595.28 z" + class="st13" + id="path6113" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6580);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape117-41" + transform="matrix(0.01125714,-0.99993664,0.99993664,0.01125714,-532.876,283.409)"><title + id="title6116">Simple Arrow.185</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path6118" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6582);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape118-44" + transform="matrix(-0.01125714,0.99993664,-0.99993664,-0.01125714,670.114,243.437)"><title + id="title6121">Simple Arrow.186</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path6123" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6584);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape119-47" + transform="matrix(0.01448398,-0.9998951,0.9998951,0.01448398,-450.646,281.973)"><title + id="title6126">Simple Arrow.187</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path6128" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6586);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape120-50" + transform="matrix(-0.01185051,-0.99992978,0.99992978,-0.01185051,-371.297,297.649)"><title + id="title6131">Simple Arrow.188</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path6133" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6588);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape121-53" + transform="translate(121.039,-421.115)"><title + id="title6136">Square.189</title><desc + id="desc6138">1</desc><g + id="shadow121-54" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect6141" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect6143" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6145" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape122-59" + transform="translate(121.039,-440.447)"><title + id="title6148">Square.190</title><desc + id="desc6150">2</desc><g + id="shadow122-60" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st16" + id="rect6153" + style="fill:#fec000;fill-opacity:0.25;stroke:#fec000;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st17" + id="rect6155" + style="fill:#dfa800;stroke:#ba8c00;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6157" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape123-65" + transform="translate(121.039,-459.156)"><title + id="title6160">Square.191</title><desc + id="desc6162">3</desc><g + id="shadow123-66" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect6165" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect6167" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6169" + style="fill:#feffff;font-family:Calibri">3</text> +</g><g + id="shape124-71" + transform="translate(121.039,-478.488)"><title + id="title6172">Square.192</title><desc + id="desc6174">4</desc><g + id="shadow124-72" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st16" + id="rect6177" + style="fill:#fec000;fill-opacity:0.25;stroke:#fec000;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st17" + id="rect6179" + style="fill:#dfa800;stroke:#ba8c00;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6181" + style="fill:#feffff;font-family:Calibri">4</text> +</g><g + id="shape125-77" + transform="translate(121.039,-497.82)"><title + id="title6184">Square.193</title><desc + id="desc6186">5</desc><g + id="shadow125-78" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect6189" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect6191" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6193" + style="fill:#feffff;font-family:Calibri">5</text> +</g><g + id="shape126-83" + transform="translate(121.039,-517.153)"><title + id="title6196">Square.194</title><desc + id="desc6198">6</desc><g + id="shadow126-84" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st18" + id="rect6201" + style="fill:#ed7d31;fill-opacity:0.25;stroke:#ed7d31;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st19" + id="rect6203" + style="fill:#d06d29;stroke:#ae5a21;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6205" + style="fill:#feffff;font-family:Calibri">6</text> +</g><g + id="shape127-89" + transform="translate(117.213,-283.465)"><title + id="title6208">Square.172</title><desc + id="desc6210">2</desc><g + id="shadow127-90" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st16" + id="rect6213" + style="fill:#fec000;fill-opacity:0.25;stroke:#fec000;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st17" + id="rect6215" + style="fill:#dfa800;stroke:#ba8c00;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6217" + style="fill:#feffff;font-family:Calibri">2</text> +</g><g + id="shape128-95" + transform="translate(117.213,-301.493)"><title + id="title6220">Square.173</title><desc + id="desc6222">4</desc><g + id="shadow128-96" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st16" + id="rect6225" + style="fill:#fec000;fill-opacity:0.25;stroke:#fec000;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st17" + id="rect6227" + style="fill:#dfa800;stroke:#ba8c00;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6229" + style="fill:#feffff;font-family:Calibri">4</text> +</g><g + id="shape129-101" + transform="translate(196.583,-301.493)"><title + id="title6232">Square.198</title><desc + id="desc6234">6</desc><g + id="shadow129-102" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st18" + id="rect6237" + style="fill:#ed7d31;fill-opacity:0.25;stroke:#ed7d31;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st19" + id="rect6239" + style="fill:#d06d29;stroke:#ae5a21;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6241" + style="fill:#feffff;font-family:Calibri">6</text> +</g><g + id="shape130-107" + transform="translate(38.8346,-283.465)"><title + id="title6244">Square.169</title><desc + id="desc6246">1</desc><g + id="shadow130-108" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect6249" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect6251" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6253" + style="fill:#feffff;font-family:Calibri">1</text> +</g><g + id="shape131-113" + transform="translate(38.8346,-320.315)"><title + id="title6256">Square.170</title><desc + id="desc6258">3</desc><g + id="shadow131-114" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect6261" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect6263" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6265" + style="fill:#feffff;font-family:Calibri">3</text> +</g><g + id="shape132-119" + transform="translate(38.8346,-339.476)"><title + id="title6268">Square.171</title><desc + id="desc6270">5</desc><g + id="shadow132-120" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st14" + id="rect6273" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st15" + id="rect6275" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.5500002" + y="591.19" + class="st4" + id="text6277" + style="fill:#feffff;font-family:Calibri">5</text> +</g><g + id="shape133-125" + transform="translate(38.8346,-301.154)"><title + id="title6280">Square.203</title><desc + id="desc6282">O</desc><g + id="shadow133-126" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st20" + id="rect6285" + style="fill:#bdd0e9;fill-opacity:0.25;stroke:#bdd0e9;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st21" + id="rect6287" + style="fill:#a6b6cd;stroke:#8a98ab;stroke-width:0.75" /><text + x="4" + y="591.19" + class="st4" + id="text6289" + style="fill:#feffff;font-family:Calibri">O</text> +</g><g + id="shape134-131" + transform="translate(117.213,-320.315)"><title + id="title6292">Square.204</title><desc + id="desc6294">O</desc><g + id="shadow134-132" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st20" + id="rect6297" + style="fill:#bdd0e9;fill-opacity:0.25;stroke:#bdd0e9;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st21" + id="rect6299" + style="fill:#a6b6cd;stroke:#8a98ab;stroke-width:0.75" /><text + x="4" + y="591.19" + class="st4" + id="text6301" + style="fill:#feffff;font-family:Calibri">O</text> +</g><g + id="shape135-137" + transform="translate(196.583,-283.465)"><title + id="title6304">Square.205</title><desc + id="desc6306">O</desc><g + id="shadow135-138" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st20" + id="rect6309" + style="fill:#bdd0e9;fill-opacity:0.25;stroke:#bdd0e9;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="14.1732" + height="14.1732" + class="st21" + id="rect6311" + style="fill:#a6b6cd;stroke:#8a98ab;stroke-width:0.75" /><text + x="4" + y="591.19" + class="st4" + id="text6313" + style="fill:#feffff;font-family:Calibri">O</text> +</g></g></svg> \ No newline at end of file diff --git a/doc/guides/prog_guide/img/bond-mode-5.svg b/doc/guides/prog_guide/img/bond-mode-5.svg new file mode 100644 index 0000000..5ee82fc --- /dev/null +++ b/doc/guides/prog_guide/img/bond-mode-5.svg @@ -0,0 +1,642 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generated by Microsoft Visio, SVG Export link bonding - mode 5.svg Page-4 --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="332.147" + height="392.50714" + viewBox="0 0 265.71799 314.00578" + xml:space="preserve" + color-interpolation-filters="sRGB" + class="st17" + id="svg6319" + version="1.1" + inkscape:version="0.48.5 r10040" + sodipodi:docname="bond-mode-5.svg" + style="font-size:12px;fill:none;stroke-linecap:square;stroke-miterlimit:3;overflow:visible"><metadata + id="metadata6568"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview6566" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.29932695" + inkscape:cx="509.87351" + inkscape:cy="38.801168" + inkscape:window-x="0" + inkscape:window-y="29" + inkscape:window-maximized="0" + inkscape:current-layer="svg6319" /><style + type="text/css" + id="style6321"> + .st1 {visibility:visible} + .st2 {fill:#5b9bd5;fill-opacity:0.25;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.25} + .st3 {fill:#4f87bb;stroke:#40709c;stroke-width:0.75} + .st4 {fill:#feffff;font-family:Calibri;font-size:0.833336em} + .st5 {fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75} + .st6 {fill:#4f87bb;font-family:Calibri;font-size:0.833336em} + .st7 {fill:#759fcc;fill-opacity:0.25;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.25} + .st8 {fill:#668bb3;stroke:#547395;stroke-width:0.75} + .st9 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22} + .st10 {fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25} + .st11 {fill:#759fcc;fill-opacity:0.22;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.22} + .st12 {fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25} + .st13 {fill:url(#grad0-40);stroke:#a6b6cd;stroke-width:0.75} + .st14 {fill:#70ad47;fill-opacity:0.25;filter:url(#filter_2);stroke:#70ad47;stroke-opacity:0.25} + .st15 {fill:#61973d;stroke:#507e31;stroke-width:0.75} + .st16 {fill:#feffff;font-family:Calibri;font-size:0.666664em} + .st17 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + </style><defs + id="Patterns_And_Gradients"><linearGradient + id="grad0-11" + x1="-0.24584444" + y1="740.8343" + x2="167.49742" + y2="740.8343" + gradientTransform="scale(1.5253548,0.65558519)" + gradientUnits="userSpaceOnUse"><stop + offset="0" + stop-color="#e9eff7" + stop-opacity="1" + id="stop6325" /><stop + offset="0.24" + stop-color="#f4f7fb" + stop-opacity="1" + id="stop6327" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop6329" /></linearGradient><linearGradient + id="grad0-40" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="matrix(0.5,0.8660254,-0.8660254,0.5,0.6830127,-0.1830127)"><stop + offset="0" + stop-color="#f3f6fa" + stop-opacity="1" + id="stop6332" /><stop + offset="0.24" + stop-color="#f9fafc" + stop-opacity="1" + id="stop6334" /><stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop6336" /></linearGradient><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6570" + gradientTransform="scale(3.5585925,0.28100998)" + x1="-0.10537874" + y1="2101.0464" + x2="34.48414" + y2="2101.0464" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6572" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6574" + gradientTransform="scale(2.093628,0.47763977)" + x1="-0.17911492" + y1="1233.6389" + x2="25.111911" + y2="1233.6389" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6576" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-40" + id="linearGradient6578" + gradientTransform="scale(2.1254139,0.4704966)" + x1="-0.17643623" + y1="1252.3682" + x2="25.498563" + y2="1252.3682" + gradientUnits="userSpaceOnUse" /></defs><defs + id="Filters"><filter + id="filter_2" + color-interpolation-filters="sRGB"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur6340" /></filter></defs><g + id="g6342" + transform="translate(-13.045598,-14.67318)"><title + id="title6344">Page-4</title><g + id="shape136-1" + transform="translate(18,-516.416)"><title + id="title6347">Rectangle.209</title><desc + id="desc6349">User Application</desc><g + id="shadow136-2" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st2" + id="rect6352" + style="fill:#5b9bd5;fill-opacity:0.25;stroke:#5b9bd5;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="534.41602" + width="255.118" + height="60.859798" + class="st3" + id="rect6354" + style="fill:#4f87bb;stroke:#40709c;stroke-width:0.75" /><text + x="94" + y="567.84998" + class="st4" + id="text6356" + style="fill:#feffff;font-family:Calibri">User Application</text> +</g><g + id="group137-7" + transform="translate(18,-314.793)"><title + id="title6359">Sheet.137</title><g + id="shape138-8"><title + id="title6362">Rectangle.38</title><desc + id="desc6364">DPDK</desc><rect + x="0" + y="486.05499" + width="255.118" + height="109.22" + class="st5" + id="rect6366" + style="fill:url(#grad0-11);stroke:#4f87bb;stroke-width:0.75" /><text + x="228.45" + y="499.06" + class="st6" + id="text6368" + style="fill:#4f87bb;font-family:Calibri">DPDK</text> +</g><g + id="shape139-13" + transform="translate(6.87402,-7.17304)"><title + id="title6371">Rectangle.16</title><desc + id="desc6373">bonded ethdev</desc><g + id="shadow139-14" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st7" + id="rect6376" + style="fill:#759fcc;fill-opacity:0.25;stroke:#759fcc;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="523.16803" + width="241.157" + height="72.107201" + class="st8" + id="rect6378" + style="fill:#668bb3;stroke:#547395;stroke-width:0.75" /><text + x="89.650002" + y="536.16998" + class="st4" + id="text6380" + style="fill:#feffff;font-family:Calibri">bonded ethdev</text> +</g><g + id="shape140-19" + transform="translate(13.9606,-14.1732)"><title + id="title6383">Rectangle.11</title><desc + id="desc6385">ethdev port</desc><g + id="shadow140-20" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st9" + id="rect6388" + style="fill:#5b9bd5;fill-opacity:0.22000002;stroke:#5b9bd5;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st10" + id="rect6390" + style="fill:#5b9bd5;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text6392" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape141-25" + transform="translate(91.9134,-14.1732)"><title + id="title6395">Rectangle.14</title><desc + id="desc6397">ethdev port</desc><g + id="shadow141-26" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect6400" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect6402" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text6404" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g><g + id="shape142-31" + transform="translate(169.866,-14.1732)"><title + id="title6407">Rectangle.15</title><desc + id="desc6409">ethdev port</desc><g + id="shadow142-32" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st11" + id="rect6412" + style="fill:#759fcc;fill-opacity:0.22000002;stroke:#759fcc;stroke-opacity:0.22000002;filter:url(#filter_2)" /></g><rect + x="0" + y="559.75598" + width="70.866096" + height="35.519501" + class="st12" + id="rect6414" + style="fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25" /><text + x="11.46" + y="580.52002" + class="st4" + id="text6416" + style="fill:#feffff;font-family:Calibri">ethdev port</text> +</g></g><g + id="shape143-37" + transform="matrix(8.6917386e-4,-0.99999962,0.99999962,8.6917386e-4,-449.823,200.685)"><title + id="title6419">Simple Double Arrow.216</title><path + d="m 0,595.28 11.34,-4.49 0,2.24 99.66,0 0,-2.24 11.34,4.49 -11.34,4.48 0,-2.24 -99.66,0 0,2.24 L 0,595.28 z" + class="st13" + id="path6421" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6570);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape144-41" + transform="matrix(0.01125714,-0.99993664,0.99993664,0.01125714,-532.876,312.939)"><title + id="title6424">Simple Arrow.217</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path6426" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6572);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape145-44" + transform="matrix(-0.01125714,0.99993664,-0.99993664,-0.01125714,670.114,272.967)"><title + id="title6429">Simple Arrow.218</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 40.86,0 0,2.84 0,2.83 -40.86,0 0,2.83 L 0,595.28 z" + class="st13" + id="path6431" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6574);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape146-47" + transform="matrix(0.01448398,-0.9998951,0.9998951,0.01448398,-450.646,311.502)"><title + id="title6434">Simple Arrow.219</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path6436" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6576);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="shape147-50" + transform="matrix(-0.01185051,-0.99992978,0.99992978,-0.01185051,-371.297,327.178)"><title + id="title6439">Simple Arrow.220</title><path + d="m 0,595.28 11.34,-5.67 0,2.83 42.48,0 0,2.84 0,2.83 -42.48,0 0,2.83 L 0,595.28 z" + class="st13" + id="path6441" + inkscape:connector-curvature="0" + style="fill:url(#linearGradient6578);stroke:#a6b6cd;stroke-width:0.75" /></g><g + id="group148-53" + transform="translate(37.8425,-273.961)"><title + id="title6444">Sheet.148</title></g><g + id="shape149-54" + transform="translate(108.709,-473.712)"><title + id="title6447">Rectangle</title><desc + id="desc6449">5006</desc><g + id="shadow149-55" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6452" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6454" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="6.0599999" + y="590.59003" + class="st16" + id="text6456" + style="fill:#feffff;font-family:Calibri">5006</text> +</g><g + id="shape150-60" + transform="translate(108.709,-453.869)"><title + id="title6459">Rectangle.242</title><desc + id="desc6461">5005</desc><g + id="shadow150-61" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6464" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6466" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="6.0599999" + y="590.59003" + class="st16" + id="text6468" + style="fill:#feffff;font-family:Calibri">5005</text> +</g><g + id="shape151-66" + transform="translate(108.85,-405.893)"><title + id="title6471">Rectangle.243</title><desc + id="desc6473">0001</desc><g + id="shadow151-67" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6476" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6478" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="6.0599999" + y="590.59003" + class="st16" + id="text6480" + style="fill:#feffff;font-family:Calibri">0001</text> +</g><g + id="shape152-72" + transform="translate(108.85,-425.523)"><title + id="title6483">Rectangle.244</title><desc + id="desc6485">0002</desc><g + id="shadow152-73" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6488" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6490" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="6.0599999" + y="590.59003" + class="st16" + id="text6492" + style="fill:#feffff;font-family:Calibri">0002</text> +</g><g + id="shape153-78" + transform="translate(108.709,-503.476)"><title + id="title6495">Rectangle.246</title><desc + id="desc6497">12003</desc><g + id="shadow153-79" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6500" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6502" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.04" + y="590.59003" + class="st16" + id="text6504" + style="fill:#feffff;font-family:Calibri">12003</text> +</g><g + id="shape154-84" + transform="translate(24.2437,-273.976)"><title + id="title6507">Rectangle.247</title><desc + id="desc6509">0001</desc><g + id="shadow154-85" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6512" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6514" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="6.0599999" + y="590.59003" + class="st16" + id="text6516" + style="fill:#feffff;font-family:Calibri">0001</text> +</g><g + id="shape155-90" + transform="translate(24.2437,-293.606)"><title + id="title6519">Rectangle.248</title><desc + id="desc6521">0002</desc><g + id="shadow155-91" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6524" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6526" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="6.0599999" + y="590.59003" + class="st16" + id="text6528" + style="fill:#feffff;font-family:Calibri">0002</text> +</g><g + id="shape156-96" + transform="translate(108.537,-293.712)"><title + id="title6531">Rectangle.249</title><desc + id="desc6533">5006</desc><g + id="shadow156-97" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6536" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6538" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="6.0599999" + y="590.59003" + class="st16" + id="text6540" + style="fill:#feffff;font-family:Calibri">5006</text> +</g><g + id="shape157-102" + transform="translate(108.537,-273.869)"><title + id="title6543">Rectangle.250</title><desc + id="desc6545">5005</desc><g + id="shadow157-103" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6548" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6550" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="6.0599999" + y="590.59003" + class="st16" + id="text6552" + style="fill:#feffff;font-family:Calibri">5005</text> +</g><g + id="shape158-108" + transform="translate(187.236,-273.869)"><title + id="title6555">Rectangle.251</title><desc + id="desc6557">12003</desc><g + id="shadow158-109" + transform="translate(0.345598,1.97279)" + class="st1" + style="visibility:visible"><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st14" + id="rect6560" + style="fill:#70ad47;fill-opacity:0.25;stroke:#70ad47;stroke-opacity:0.25;filter:url(#filter_2)" /></g><rect + x="0" + y="581.10199" + width="28.3465" + height="14.1732" + class="st15" + id="rect6562" + style="fill:#61973d;stroke:#507e31;stroke-width:0.75" /><text + x="4.04" + y="590.59003" + class="st16" + id="text6564" + style="fill:#feffff;font-family:Calibri">12003</text> +</g></g></svg> \ No newline at end of file diff --git a/doc/guides/prog_guide/img/bond-overview.svg b/doc/guides/prog_guide/img/bond-overview.svg new file mode 100644 index 0000000..489282a --- /dev/null +++ b/doc/guides/prog_guide/img/bond-overview.svg @@ -0,0 +1,121 @@ +<?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 Link Bonding Modes.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" + width="4.42446in" height="2.20365in" viewBox="0 0 318.561 158.663" xml:space="preserve" color-interpolation-filters="sRGB" + class="st13"> + <style type="text/css"> + <![CDATA[ + .st1 {fill:url(#grad0-4);stroke:#4f87bb;stroke-width:0.75} + .st2 {fill:#4f87bb;font-family:Calibri;font-size:0.833336em} + .st3 {visibility:visible} + .st4 {fill:#759fcc;fill-opacity:0.25;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.25} + .st5 {fill:#668bb3;stroke:#547395;stroke-width:0.75} + .st6 {fill:#feffff;font-family:Calibri;font-size:0.833336em} + .st7 {fill:#5b9bd5;fill-opacity:0.25;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.25} + .st8 {fill:#4f87bb;stroke:#40709c;stroke-width:0.75} + .st9 {fill:#759fcc;fill-opacity:0.22;filter:url(#filter_2);stroke:#759fcc;stroke-opacity:0.22} + .st10 {fill:#759fcc;stroke:#c7c8c8;stroke-width:0.25} + .st11 {font-size:1em} + .st12 {fill:url(#grad0-56);stroke:#a6b6cd;stroke-width:0.75} + .st13 {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-4" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(60 0.5 0.5)"> + <stop offset="0" stop-color="#e9eff7" stop-opacity="1"/> + <stop offset="0.24" stop-color="#f4f7fb" stop-opacity="1"/> + <stop offset="0.54" stop-color="#feffff" stop-opacity="1"/> + </linearGradient> + <linearGradient id="grad0-56" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(60 0.5 0.5)"> + <stop offset="0" stop-color="#f3f6fa" stop-opacity="1"/> + <stop offset="0.24" stop-color="#f9fafc" stop-opacity="1"/> + <stop offset="0.54" stop-color="#feffff" stop-opacity="1"/> + </linearGradient> + </defs> + <defs id="Filters"> + <filter id="filter_2"> + <feGaussianBlur stdDeviation="2"/> + </filter> + </defs> + <g> + <title>Page-1</title> + <g id="shape38-1" transform="translate(3.0294,-0.75)"> + <title>Rectangle.38</title> + <desc>DPDK</desc> + <rect x="0" y="70.7886" width="311.811" height="87.874" class="st1"/> + <text x="285.14" y="83.79" class="st2">DPDK</text> </g> + <g id="shape8-6" transform="translate(12.5358,-7.83661)"> + <title>Rectangle.8</title> + <desc>bonded ethdev</desc> + <g id="shadow8-7" transform="matrix(1,0,0,1,0.345598,1.97279)" class="st3"> + <rect x="0" y="87.7965" width="171.911" height="70.8661" class="st4"/> + </g> + <rect x="0" y="87.7965" width="171.911" height="70.8661" class="st5"/> + <text x="55.03" y="100.8" class="st6">bonded ethdev</text> </g> + <g id="shape3-12" transform="translate(3.0294,-121.309)"> + <title>Rectangle</title> + <desc>User Application</desc> + <g id="shadow3-13" transform="matrix(1,0,0,1,0.345598,1.97279)" class="st3"> + <rect x="0" y="122.711" width="311.811" height="35.9516" class="st7"/> + </g> + <rect x="0" y="122.711" width="311.811" height="35.9516" class="st8"/> + <text x="122.34" y="143.69" class="st6">User Application</text> </g> + <g id="shape5-18" transform="translate(17.2026,-14.9232)"> + <title>Rectangle.5</title> + <desc>ethdev port</desc> + <g id="shadow5-19" transform="matrix(1,0,0,1,0.345598,1.97279)" class="st3"> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st9"/> + </g> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st10"/> + <text x="9.52" y="137.9" class="st6">ethdev <tspan x="15" dy="1.2em" class="st11">port</tspan></text> </g> + <g id="shape6-25" transform="translate(73.8955,-14.9232)"> + <title>Rectangle.6</title> + <desc>ethdev port</desc> + <g id="shadow6-26" transform="matrix(1,0,0,1,0.345598,1.97279)" class="st3"> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st9"/> + </g> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st10"/> + <text x="9.52" y="137.9" class="st6">ethdev <tspan x="15" dy="1.2em" class="st11">port</tspan></text> </g> + <g id="shape7-32" transform="translate(130.588,-14.9232)"> + <title>Rectangle.7</title> + <desc>ethdev port</desc> + <g id="shadow7-33" transform="matrix(1,0,0,1,0.345598,1.97279)" class="st3"> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st9"/> + </g> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st10"/> + <text x="9.52" y="137.9" class="st6">ethdev <tspan x="15" dy="1.2em" class="st11">port</tspan></text> </g> + <g id="shape9-39" transform="translate(199.035,-14.8368)"> + <title>Rectangle.9</title> + <desc>ethdev port</desc> + <g id="shadow9-40" transform="matrix(1,0,0,1,0.345598,1.97279)" class="st3"> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st9"/> + </g> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st10"/> + <text x="9.52" y="137.9" class="st6">ethdev <tspan x="15" dy="1.2em" class="st11">port</tspan></text> </g> + <g id="shape10-46" transform="translate(255.728,-14.8368)"> + <title>Rectangle.10</title> + <desc>ethdev port</desc> + <g id="shadow10-47" transform="matrix(1,0,0,1,0.345598,1.97279)" class="st3"> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st9"/> + </g> + <rect x="0" y="123.143" width="47.3593" height="35.5195" class="st10"/> + <text x="9.52" y="137.9" class="st6">ethdev <tspan x="15" dy="1.2em" class="st11">port</tspan></text> </g> + <g id="shape28-53" transform="translate(-60.1711,80.2563) rotate(-90.107)"> + <title>Simple Double Arrow</title> + <path d="M0 158.66 L11.34 154.18 L11.34 156.42 L29.38 156.42 L29.38 154.18 L40.72 158.66 L29.38 163.15 L29.38 160.9 L11.34 + 160.9 L11.34 163.15 L0 158.66 Z" class="st12"/> + </g> + <g id="shape30-57" transform="translate(120.746,108.97) rotate(-90.2397)"> + <title>Simple Double Arrow.30</title> + <path d="M0 158.66 L11.34 154.18 L11.34 156.42 L56.41 156.42 L56.41 154.18 L67.75 158.66 L56.41 163.15 L56.41 160.9 L11.34 + 160.9 L11.34 163.15 L0 158.66 Z" class="st12"/> + </g> + <g id="shape42-60" transform="translate(64.0521,108.636) rotate(-90.1191)"> + <title>Simple Double Arrow.42</title> + <path d="M0 158.66 L11.34 154.18 L11.34 156.42 L56.87 156.42 L56.87 154.18 L68.21 158.66 L56.87 163.15 L56.87 160.9 L11.34 + 160.9 L11.34 163.15 L0 158.66 Z" class="st12"/> + </g> + </g> +</svg> diff --git a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst index badd891..c4e0f2c 100644 --- a/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst +++ b/doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst @@ -35,21 +35,25 @@ In addition to Poll Mode Drivers (PMDs) for physical and virtual hardware, Intel? DPDK also includes a pure-software library that allows physical PMD's to be bonded together to create a single logical PMD. -|link_bonding| +|bond-overview| -The Link Bonding PMD library(librte_pmd_bond) supports bonding of groups of physical ports of the same speed (1GbE, 10GbE and 40GbE) and -duplex to provide similar the capabilities to that found in Linux bonding driver to allow the aggregation of multiple (slave) NICs -into a single logical interface between a server and a switch. -The new bonded PMD will then process these interfaces based on the mode of operation specified to provide support for features -such as redundant links, fault tolerance and/or load balancing. +The Link Bonding PMD library(librte_pmd_bond) supports bonding of groups of +``rte_eth_dev`` ports of the same speed and duplex to provide +similar the capabilities to that found in Linux bonding driver to allow the +aggregation of multiple (slave) NICs into a single logical interface between a +server and a switch. The new bonded PMD will then process these interfaces +based on the mode of operation specified to provide support for features such +as redundant links, fault tolerance and/or load balancing. -The librte_pmd_bond library exports a C API which provides an API for the creation of bonded devices -as well as the configuration and management of the bonded device and its slave devices. +The librte_pmd_bond library exports a C API which provides an API for the +creation of bonded devices as well as the configuration and management of the +bonded device and its slave devices. .. note:: - The Link Bonding PMD Library is enabled by default in the build configuration files, - the library can be disabled by setting CONFIG_RTE_LIBRTE_PMD_BOND=n and recompiling the Intel? DPDK. + The Link Bonding PMD Library is enabled by default in the build + configuration files, the library can be disabled by setting + ``CONFIG_RTE_LIBRTE_PMD_BOND=n`` and recompiling the Intel? DPDK. Link Bonding Modes Overview --------------------------- @@ -57,143 +61,255 @@ Link Bonding Modes Overview Currently the Link Bonding PMD library supports 4 modes of operation: * **Round-Robin (Mode 0):** - This mode provides load balancing and fault tolerance by transmission of packets - in sequential order from the first available slave device through the last. - Packets are bulk dequeued from devices then serviced in round-robin manner. + +|bond-mode-0| + + This mode provides load balancing and fault tolerance by transmission of + packets in sequential order from the first available slave device through + the last. Packets are bulk dequeued from devices then serviced in a + round-robin manner. This mode does not guarantee in order reception of + packets and down stream should be able to handle out of order packets. * **Active Backup (Mode 1):** - In this mode only one slave in the bond is active at any time, a different slave becomes active if, - and only if, the primary active slave fails, - thereby providing fault tolerance to slave failure. - The single logical bonded interface's MAC address is externally visible on only one NIC (port) + +|bond-mode-1| + + In this mode only one slave in the bond is active at any time, a different + slave becomes active if, and only if, the primary active slave fails, + thereby providing fault tolerance to slave failure. The single logical + bonded interface's MAC address is externally visible on only one NIC (port) to avoid confusing the network switch. * **Balance XOR (Mode 2):** - This mode provides load balancing based on transmit packets based on the selected XOR transmission policy and fault tolerance. - The default policy (layer2) uses a simple XOR calculation on the packet source / destination MAC address to select the slave to transmit on. - Alternate transmission policies supported are layer 2+3, this uses the IP source and destination addresses in the calculation of the slave port and - the final supported policy is layer 3+4, this uses IP source and destination addresses as well as the UDP source and destination port. + +|bond-mode-2| + + This mode provides transmit load balancing (based on the selected + transmission policy) and fault tolerance. The default policy (layer2) uses + a simple calculation based on the packet flow source and destination MAC + addresses aswell as the number of active slaves available to the bonded + device to classify the packet to a specific slave to transmit on. Alternate + transmission policies supported are layer 2+3, this takes the IP source and + destination addresses into the calculation of the transmit slave port and + the final supported policy is layer 3+4, this uses IP source and + destination addresses as well as the TCP/UDP source and destination port. + +.. note:: + The colouring differences of the packets are used to identify different flow + classification calculated by the selected transmit policy + * **Broadcast (Mode 3):** - This mode provides fault tolerance by transmission of packets on all slave ports. + +|bond-mode-3| + + This mode provides fault tolerance by transmission of packets on all slave + ports. + +* **Link Aggregation 802.3AD (Mode 4):** + +|bond-mode-4| + + This mode provides dynamic link aggregation according to the 802.3ad + specification. It negotiates and monitors aggregation groups that share the + same speed and duplex settings using the selected balance transmit policy + for balancing outgoing traffic. + + DPDK implementation of this mode provide some additional requirements of + the application. + + 1. It needs to call ``rte_eth_tx_burst`` and ``rte_eth_rx_burst`` with + intervals period of less than 100ms. + + 2. Calls to ``rte_eth_tx_burst`` must have a buffer size of at least 2xN, + where N is the number of slaves. This is a space required for LACP + frames. Additionally LACP packets are included in the statistics, but + they are not returned to the application. + +* **Transmit Load Balancing (Mode 5):** + +|bond-mode-5| + + This mode provides an adaptive transmit load balancing. It dynamically + changes the transmitting slave, according to the computed load. Statistics + are collected in 100ms intervals and scheduled every 10ms. + Implementation Details ---------------------- -The librte_pmd_bond onded device are compatible with the Ethernet device API exported by the Ethernet PMDs described in the *Intel? DPDK API Reference*. +The librte_pmd_bond bonded device are compatible with the Ethernet device API +exported by the Ethernet PMDs described in the *Intel? DPDK API Reference*. -The Link Bonding Library supports the creation of bonded devices at application startup time during EAL initialization using the ---vdev option as well as programmatically via the C API rte_eth_bond_create function. +The Link Bonding Library supports the creation of bonded devices at application +startup time during EAL initialization using the ``--vdev`` option as well as +programmatically via the C API ``rte_eth_bond_create`` function. Bonded devices support the dynamical addition and removal of slave devices using -the rte_eth_bond_slave_add / rte_eth_bond_slave_remove APIs. +the ``rte_eth_bond_slave_add`` / ``rte_eth_bond_slave_remove`` APIs. After a slave device is added to a bonded device slave is stopped using -rte_eth_dev_stop and the slave reconfigured using rte_eth_dev_configure the RX and TX queues are also reconfigured -using rte_eth_tx_queue_setup / rte_eth_rx_queue_setup with the parameters use to configure the bonding device. +``rte_eth_dev_stop`` and then reconfigured using ``rte_eth_dev_configure`` +the RX and TX queues are also reconfigured using ``rte_eth_tx_queue_setup`` / +``rte_eth_rx_queue_setup`` with the parameters use to configure the bonding +device. + +Link Status Change Interrupts / Polling +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Link bonding devices support the registration of a link status change callback, +using the ``rte_eth_dev_callback_register`` API, this will be called when the +status of the bonding device changes. For example in the case of a bonding +device which has 3 slaves, the link status will change to up when one slave +becomes active or change to down when all slaves become inactive. There is no +callback notification when a single slave changes state and the previous +conditions are not met. If a user wishes to monitor individual slaves then they +must register callbacks with that slave directly. + +The link bonding library also supports devices which do not implement link +status change interrupts, this is achieve by polling the devices link status at +a defined period which is set using the ``rte_eth_bond_link_monitoring_set`` +API, the default polling interval is 10ms. When a device is added as a slave to +a bonding device it is determined using the ``RTE_PCI_DRV_INTR_LSC`` flag +whether the device supports interrupts or whether the link status should be +monitored by polling it. Requirements / Limitations ~~~~~~~~~~~~~~~~~~~~~~~~~~ -The current implementation only supports physical devices of the same type, speed and duplex to be added as slaves. -The bonded device inherits these values from the first active slave added to the bonded device -and then all further slaves added to the bonded device must match these parameters. +The current implementation only supports devices that support the same speed +and duplex to be added as a slaves to the same bonded device. The bonded device +inherits these attributes from the first active slave added to the bonded +device and then all further slaves added to the bonded device must support +these parameters. -A bonding device must have a minimum of one slave before the bonding device itself can be started. +A bonding device must have a minimum of one slave before the bonding device +itself can be started. -Like all other PMD, all functions exported by a PMD are lock-free functions that are assumed -not to be invoked in parallel on different logical cores to work on the same target object. +Like all other PMD, all functions exported by a PMD are lock-free functions +that are assumed not to be invoked in parallel on different logical cores to +work on the same target object. -It should also be noted that the PMD receive function should not be invoked directly on a slave devices after they have -been to a bonded device since packets read directly from the slave device will no longer be available to the bonded device to read. +It should also be noted that the PMD receive function should not be invoked +directly on a slave devices after they have been to a bonded device since +packets read directly from the slave device will no longer be available to the +bonded device to read. Configuration ~~~~~~~~~~~~~ -Link bonding devices are created using the rte_eth_bond_create API +Link bonding devices are created using the ``rte_eth_bond_create`` API which requires a unique device name, the bonding mode, and the socket Id to allocate the bonding device's resources on. -The other configurable parameters for a bonded device are its slave devices, its primary slave, -a user defined MAC address and transmission policy to use if the device is balance XOR mode. +The other configurable parameters for a bonded device are its slave devices, +its primary slave, a user defined MAC address and transmission policy to use if +the device is in balance XOR mode. Slave Devices ^^^^^^^^^^^^^ -Bonding devices support up to a maximum of RTE_MAX_ETHPORTS slave devices of the same speed and duplex. -Ethernet devices can be added as a slave to a maximum of one bonded device. -Slave devices are reconfigured with the configuration of the bonded device on being added to a bonded device. +Bonding devices support up to a maximum of ``RTE_MAX_ETHPORTS`` slave devices +of the same speed and duplex. Ethernet devices can be added as a slave to a +maximum of one bonded device. Slave devices are reconfigured with the +configuration of the bonded device on being added to a bonded device. -The bonded also guarantees to return the MAC address of the slave device to its original value of removal of a slave from it. +The bonded also guarantees to return the MAC address of the slave device to its +original value of removal of a slave from it. Primary Slave ^^^^^^^^^^^^^ -The primary slave is used to define the default port to use when a bonded device is in active backup mode. -A different port will only be used if, and only if, the current primary port goes down. -If the user does not specify a primary port it will default to being the first port added to the bonded device. +The primary slave is used to define the default port to use when a bonded +device is in active backup mode. A different port will only be used if, and +only if, the current primary port goes down. If the user does not specify a +primary port it will default to being the first port added to the bonded device. MAC Address ^^^^^^^^^^^ -The bonded device can be configured with a user specified MAC address, -this address will be inherited by the some/all slave devices depending on the operating mode. -If the device is in active backup mode then only the primary device will have the user specified MAC, -all other slaves will retain their original MAC address. -In mode 0, 2, and 3 all slaves devices are configure with the bonded devices MAC address. +The bonded device can be configured with a user specified MAC address, this +address will be inherited by the some/all slave devices depending on the +operating mode. If the device is in active backup mode then only the primary +device will have the user specified MAC, all other slaves will retain their +original MAC address. In mode 0, 2, 3, 4 all slaves devices are configure with +the bonded devices MAC address. -If a user defined MAC address is not defined then the bonded device will default to using the primary slaves MAC address. +If a user defined MAC address is not defined then the bonded device will +default to using the primary slaves MAC address. Balance XOR Transmit Policies ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -There are 3 supported transmission policies for bonded device running in Balance XOR mode. Layer 2, Layer 2+3, Layer 3+4. +There are 3 supported transmission policies for bonded device running in +Balance XOR mode. Layer 2, Layer 2+3, Layer 3+4. -* **Layer 2:** Ethernet MAC address based balancing is the default transmission policy for Balance XOR bonding mode. - It uses a simple XOR calculation on the source MAC address and destination MAC address of the packet and - then calculate the modulus of this value to calculate the slave device to transmit the packet on. +* **Layer 2:** Ethernet MAC address based balancing is the default + transmission policy for Balance XOR bonding mode. It uses a simple XOR + calculation on the source MAC address and destination MAC address of the + packet and then calculate the modulus of this value to calculate the slave + device to transmit the packet on. -* **Layer 2 + 3:** Ethernet MAC address & IP Address based balancing uses a combination of source/destination MAC addresses and - the source/destination IP addresses of the data packet to decide which slave port the packet will be transmitted on. +* **Layer 2 + 3:** Ethernet MAC address & IP Address based balancing uses a + combination of source/destination MAC addresses and the source/destination + IP addresses of the data packet to decide which slave port the packet will + be transmitted on. -* **Layer 3 + 4:** IP Address & UDP Port based balancing uses a combination of source/destination IP Address and - the source/destination UDP ports of the packet of the data packet to decide which slave port the packet will be transmitted on. +* **Layer 3 + 4:** IP Address & UDP Port based balancing uses a combination + of source/destination IP Address and the source/destination UDP ports of + the packet of the data packet to decide which slave port the packet will be + transmitted on. -All these policies support 802.1Q VLAN Ethernet packets, as well as IPv4, IPv6 and UDP protocols for load balancing. +All these policies support 802.1Q VLAN Ethernet packets, as well as IPv4, IPv6 +and UDP protocols for load balancing. Using Link Bonding Devices -------------------------- -The librte_pmd_bond library support two modes of device creation, the libraries export full C API or -using the EAL command line to statically configure link bonding devices at application startup. -Using the EAL option it is possible to use link bonding functionality transparently without specific knowledge of the libraries API, -this can be used, for example, to add bonding functionality, such as active backup, -to an existing application which has no knowledge of the link bonding C API. +The librte_pmd_bond library support two modes of device creation, the libraries +export full C API or using the EAL command line to statically configure link +bonding devices at application startup. Using the EAL option it is possible to +use link bonding functionality transparently without specific knowledge of the +libraries API, this can be used, for example, to add bonding functionality, +such as active backup, to an existing application which has no knowledge of +the link bonding C API. Using the Poll Mode Driver from an Application ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Using the librte_pmd_bond libraries API it is possible to dynamicall create and manage link bonding device from within any application. -Link bonding device are created using the rte_eth_bond_create API which requires a unqiue device name, -the link bonding mode to initial the device in and finally the socket Id which to allocate the devices resources onto. -After successful creation of a bonding device it must be configured using the generic Ethernet device configure API rte_eth_dev_configure -and then the RX and TX queues which will be used must be setup using rte_eth_tx_queue_setup / rte_eth_rx_queue_setup. - -Slave devices can be dynamically added and removed from a link bonding device using the rte_eth_bond_slave_add / rte_eth_bond_slave_remove -APIs but at least one slave device must be added to the link bonding device before it can be started using rte_eth_dev_start. - -The link status of a bonded device is dictated by that of its slaves, if all slave device link status are down or -if all slaves are removed from the link bonding device then the link status of the bonding device will go down. - -It is also possible to configure / query the configuration of the control parameters of a bonded device using the provided APIs -rte_eth_bond_mode_set/get, rte_eth_bond_primary_set/get, rte_eth_bond_mac_set/reset and rte_eth_bond_xmit_policy_set/get. +Using the librte_pmd_bond libraries API it is possible to dynamically create +and manage link bonding device from within any application. Link bonding +device are created using the ``rte_eth_bond_create`` API which requires a +unique device name, the link bonding mode to initial the device in and finally +the socket Id which to allocate the devices resources onto. After successful +creation of a bonding device it must be configured using the generic Ethernet +device configure API ``rte_eth_dev_configure`` and then the RX and TX queues +which will be used must be setup using ``rte_eth_tx_queue_setup`` / +``rte_eth_rx_queue_setup``. + +Slave devices can be dynamically added and removed from a link bonding device +using the ``rte_eth_bond_slave_add`` / ``rte_eth_bond_slave_remove`` +APIs but at least one slave device must be added to the link bonding device +before it can be started using ``rte_eth_dev_start``. + +The link status of a bonded device is dictated by that of its slaves, if all +slave device link status are down or if all slaves are removed from the link +bonding device then the link status of the bonding device will go down. + +It is also possible to configure / query the configuration of the control +parameters of a bonded device using the provided APIs +``rte_eth_bond_mode_set/ get``, ``rte_eth_bond_primary_set/get``, +``rte_eth_bond_mac_set/reset`` and ``rte_eth_bond_xmit_policy_set/get``. Using Link Bonding Devices from the EAL Command Line ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Link bonding devices can be created at application startup time using the --vdev EAL command line option. -The device name must start with the eth_bond prefix followed by numbers or letters. The name must be unique for each device. -Each device can have multiple options arranged in a comma separated list. -Multiple devices definitions can be arranged by calling the --vdev option multiple times. +Link bonding devices can be created at application startup time using the +``--vdev`` EAL command line option. The device name must start with the +eth_bond prefix followed by numbers or letters. The name must be unique for +each device. Each device can have multiple options arranged in a comma +separated list. Multiple devices definitions can be arranged by calling the +``--vdev`` option multiple times. + Device names and bonding options must be separated by commas as shown below: .. code-block:: console @@ -203,7 +319,8 @@ Device names and bonding options must be separated by commas as shown below: Link Bonding EAL Options ^^^^^^^^^^^^^^^^^^^^^^^^ -There are multiple ways of definitions that can be assessed and combined as long as the following two rules are respected: +There are multiple ways of definitions that can be assessed and combined as +long as the following two rules are respected: * A unique device name, in the format of eth_bondX is provided, where X can be any combination of numbers and/or letters, @@ -216,37 +333,79 @@ There are multiple ways of definitions that can be assessed and combined as long The different options are: * mode: Integer value defining the bonding mode of the device. - Currently supports modes 0,1,2,3 (round-robin, active backup, balance, and broadcast). + Currently supports modes 0,1,2,3,4,5 (round-robin, active backup, balance, + broadcast, link aggregation, transmit load balancing). + +.. code-block:: console mode=2 -* slave: Defines the PMD device which will be added as slave to the bonded device. - This option can be selected multiple time, for each device to be added as a slave. - Physical devices should be specified using their PCI address, in the format domain:bus:devid.function +* slave: Defines the PMD device which will be added as slave to the bonded + device. This option can be selected multiple time, for each device to be + added as a slave. Physical devices should be specified using their PCI + address, in the format domain:bus:devid.function + +.. code-block:: console slave=0000:0a:00.0,slave=0000:0a:00.1 * primary: Optional parameter which defines the primary slave port, - is used in active backup mode to select the primary slave for data TX/RX if it is available. - The primary port also is used to select the MAC address to use when it is not defined by the user. - This defaults to the first slave added to the device if it is specified. - The primary device must be a slave of the bonded device. + is used in active backup mode to select the primary slave for data TX/RX if + it is available. The primary port also is used to select the MAC address to + use when it is not defined by the user. This defaults to the first slave + added to the device if it is specified. The primary device must be a slave + of the bonded device. + +.. code-block:: console primary=0000:0a:00.0 -* socket_id: Optional parameter used to select which socket on a NUMA device the bonded devices resources will be allocated on. +* socket_id: Optional parameter used to select which socket on a NUMA device + the bonded devices resources will be allocated on. + +.. code-block:: console socket_id=0 -* mac: Optional parameter to select a MAC address for link bonding device, this overrides the value of the primary slave device. +* mac: Optional parameter to select a MAC address for link bonding device, + this overrides the value of the primary slave device. + +.. code-block:: console mac=00:1e:67:1d:fd:1d -* xmit_policy: Optional parameter which defines the transmission policy when the bonded device is in balance mode. - If not user specified this defaults to l2 (layer 2) forwarding, - the other transmission policies available are l23 (layer 2+3) and l34 (layer 3+4) +* xmit_policy: Optional parameter which defines the transmission policy when + the bonded device is in balance mode. If not user specified this defaults + to l2 (layer 2) forwarding, the other transmission policies available are + l23 (layer 2+3) and l34 (layer 3+4) + +.. code-block:: console + + xmit_policy=l23 - xmit_policy=l2 +* lsc_poll_period_ms: Optional parameter which defines the polling interval + in milli-seconds at which devices which don't support lsc interrupts are + checked for a change in the devices link status + +.. code-block:: console + + lsc_poll_period_ms=100 + +* up_delay: Optional parameter which adds a delay in milli-seconds to the + propagation of a devices link status changing to up, by default this + parameter is zero. + +.. code-block:: console + + up_delay=10 + +* down_delay: Optional parameter which adds a delay in milli-seconds to the + propagation of a devices link status changing to down, by default this + parameter is zero. + +.. code-block:: console + + down_delay=50 Examples of Usage ^^^^^^^^^^^^^^^^^ @@ -275,4 +434,11 @@ Create a bonded device in balance mode with two slaves specified by their PCI ad $RTE_TARGET/app/testpmd -c '0xf' -n 4 --vdev 'eth_bond0,mode=2, slave=0000:00a:00.01,slave=0000:004:00.00,xmit_policy=l34' -- --port-topology=chained -.. |link_bonding| image:: img/link_bonding.png +.. |bond-overview| image:: img/bond-overview.svg + +.. |bond-mode-0| image:: img/bond-mode-0.svg +.. |bond-mode-1| image:: img/bond-mode-1.svg +.. |bond-mode-2| image:: img/bond-mode-2.svg +.. |bond-mode-3| image:: img/bond-mode-3.svg +.. |bond-mode-4| image:: img/bond-mode-4.svg +.. |bond-mode-5| image:: img/bond-mode-5.svg -- 1.7.12.2