Updates documentation to reflect the changes in the qos scheduler
library.

Signed-off-by: Jasvinder Singh <jasvinder.si...@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitre...@intel.com>
---
v2:
- fix svg format

 .../prog_guide/img/sched_hier_per_port.png    | Bin 58973 -> 0 bytes
 .../prog_guide/img/sched_hier_per_port.svg    | 492 ++++++++++++++++++
 doc/guides/prog_guide/qos_framework.rst       | 110 +++-
 3 files changed, 581 insertions(+), 21 deletions(-)
 delete mode 100644 doc/guides/prog_guide/img/sched_hier_per_port.png
 create mode 100644 doc/guides/prog_guide/img/sched_hier_per_port.svg

diff --git a/doc/guides/prog_guide/img/sched_hier_per_port.png 
b/doc/guides/prog_guide/img/sched_hier_per_port.png
deleted file mode 100644
index 
462e88aaab4418d8893137659a08ee43f97842d6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 58973
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
b-2Q;{!goGRpvI5)3GjI@r6gG<ZWQ!CP87o#

diff --git a/doc/guides/prog_guide/img/sched_hier_per_port.svg 
b/doc/guides/prog_guide/img/sched_hier_per_port.svg
new file mode 100644
index 000000000..7e011a60e
--- /dev/null
+++ b/doc/guides/prog_guide/img/sched_hier_per_port.svg
@@ -0,0 +1,492 @@
+<?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 sched_hier_per_port.svg Page-1 
-->
+<svg xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:ev="http://www.w3.org/2001/xml-events";
+               
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/"; 
width="6.25057in" height="7.26839in"
+               viewBox="0 0 450.041 523.324" xml:space="preserve" 
color-interpolation-filters="sRGB" class="st8">
+       <v:documentProperties v:langID="2057" v:metric="true" 
v:viewMarkup="false"/>
+
+       <style type="text/css">
+       <![CDATA[
+               .st1 
{fill:#0070c0;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st2 
{marker-end:url(#mrkr13-71);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st3 
{fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.37313432835821}
+               .st4 
{stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+               .st5 
{fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
+               .st6 {fill:#000000;font-family:Calibri;font-size:1.16666em}
+               .st7 {font-size:1em}
+               .st8 
{fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+       ]]>
+       </style>
+
+       <defs id="Markers">
+               <g id="lend13">
+                       <path d="M 3 1 L 0 0 L 3 -1 L 3 1 " 
style="stroke:none"/>
+               </g>
+               <marker id="mrkr13-71" class="st3" v:arrowType="13" 
v:arrowSize="2" v:setback="8.04" refX="-8.04" orient="auto"
+                               markerUnits="strokeWidth" overflow="visible">
+                       <use xlink:href="#lend13" transform="scale(-2.68,-2.68) 
"/>
+               </marker>
+       </defs>
+       <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+               <title>Page-1</title>
+               <v:pageProperties v:drawingScale="0.0393701" 
v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+                               v:shadowOffsetY="-8.50394"/>
+               <v:layer v:name="Connector" v:index="0"/>
+               <g id="group234-1" transform="translate(0.375,-12.7124)" 
v:mID="234" v:groupContext="group">
+                       <title>Sheet.234</title>
+                       <g id="shape1-2" v:mID="1" v:groupContext="shape" 
transform="translate(265.039,-113.796)">
+                               <title>Sheet.1</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape2-4" v:mID="2" v:groupContext="shape" 
transform="translate(265.039,-98.3577)">
+                               <title>Sheet.2</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape3-6" v:mID="3" v:groupContext="shape" 
transform="translate(265.039,-82.9192)">
+                               <title>Sheet.3</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape4-8" v:mID="4" v:groupContext="shape" 
transform="translate(265.039,-67.4807)">
+                               <title>Sheet.4</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape6-10" v:mID="6" v:groupContext="shape" 
transform="translate(288.197,-113.796)">
+                               <title>Sheet.6</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape7-12" v:mID="7" v:groupContext="shape" 
transform="translate(288.197,-98.3577)">
+                               <title>Sheet.7</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape8-14" v:mID="8" v:groupContext="shape" 
transform="translate(288.197,-82.9192)">
+                               <title>Sheet.8</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape9-16" v:mID="9" v:groupContext="shape" 
transform="translate(288.197,-67.4807)">
+                               <title>Sheet.9</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape10-18" v:mID="10" v:groupContext="shape" 
transform="translate(311.355,-113.796)">
+                               <title>Sheet.10</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape11-20" v:mID="11" v:groupContext="shape" 
transform="translate(311.355,-98.3577)">
+                               <title>Sheet.11</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape12-22" v:mID="12" v:groupContext="shape" 
transform="translate(311.355,-82.9192)">
+                               <title>Sheet.12</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape13-24" v:mID="13" v:groupContext="shape" 
transform="translate(311.355,-67.4807)">
+                               <title>Sheet.13</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape14-26" v:mID="14" v:groupContext="shape" 
transform="translate(334.513,-113.796)">
+                               <title>Sheet.14</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape15-28" v:mID="15" v:groupContext="shape" 
transform="translate(334.513,-98.3577)">
+                               <title>Sheet.15</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape16-30" v:mID="16" v:groupContext="shape" 
transform="translate(334.513,-82.9192)">
+                               <title>Sheet.16</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape17-32" v:mID="17" v:groupContext="shape" 
transform="translate(334.513,-67.4807)">
+                               <title>Sheet.17</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape26-34" v:mID="26" v:groupContext="shape" 
transform="translate(199.484,-113.968)">
+                               <title>Sheet.26</title>
+                               <rect x="0" y="507.713" width="19.5132" 
height="15.6106" class="st1"/>
+                       </g>
+                       <g id="shape27-36" v:mID="27" v:groupContext="shape" 
transform="translate(199.484,-98.3577)">
+                               <title>Sheet.27</title>
+                               <rect x="0" y="507.713" width="19.5132" 
height="15.6106" class="st1"/>
+                       </g>
+                       <g id="shape28-38" v:mID="28" v:groupContext="shape" 
transform="translate(199.484,-82.7471)">
+                               <title>Sheet.28</title>
+                               <rect x="0" y="507.713" width="19.5132" 
height="15.6106" class="st1"/>
+                       </g>
+                       <g id="shape29-40" v:mID="29" v:groupContext="shape" 
transform="translate(199.484,-67.1365)">
+                               <title>Sheet.29</title>
+                               <rect x="0" y="507.713" width="19.5132" 
height="15.6106" class="st1"/>
+                       </g>
+                       <g id="shape30-42" v:mID="30" v:groupContext="shape" 
transform="translate(68.9749,-115.97)">
+                               <title>Sheet.30</title>
+                               <rect x="0" y="508.004" width="19.1493" 
height="15.3195" class="st1"/>
+                       </g>
+                       <g id="shape31-44" v:mID="31" v:groupContext="shape" 
transform="translate(68.9749,-100.65)">
+                               <title>Sheet.31</title>
+                               <rect x="0" y="508.004" width="19.1493" 
height="15.3195" class="st1"/>
+                       </g>
+                       <g id="shape32-46" v:mID="32" v:groupContext="shape" 
transform="translate(68.9749,-85.3307)">
+                               <title>Sheet.32</title>
+                               <rect x="0" y="508.004" width="19.1493" 
height="15.3195" class="st1"/>
+                       </g>
+                       <g id="shape33-48" v:mID="33" v:groupContext="shape" 
transform="translate(68.9749,-70.0112)">
+                               <title>Sheet.33</title>
+                               <rect x="0" y="508.004" width="19.1493" 
height="15.3195" class="st1"/>
+                       </g>
+                       <g id="shape40-50" v:mID="40" v:groupContext="shape" 
transform="translate(67.8551,-198.425)">
+                               <title>Sheet.40</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape42-52" v:mID="42" v:groupContext="shape" 
transform="translate(198.153,-205.871)">
+                               <title>Sheet.42</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape44-54" v:mID="44" v:groupContext="shape" 
transform="translate(297.427,-205.871)">
+                               <title>Sheet.44</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape46-56" v:mID="46" v:groupContext="shape" 
transform="translate(170.852,-306.005)">
+                               <title>Sheet.46</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape47-58" v:mID="47" v:groupContext="shape" 
transform="translate(255.236,-388.69)">
+                               <title>Sheet.47</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape48-60" v:mID="48" v:groupContext="shape" 
transform="translate(341.169,-317.821)">
+                               <title>Sheet.48</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape49-62" v:mID="49" v:groupContext="shape" 
transform="translate(344.583,-470.722)">
+                               <title>Sheet.49</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape50-64" v:mID="50" v:groupContext="shape" 
transform="translate(426.955,-399.855)">
+                               <title>Sheet.50</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape51-66" v:mID="51" v:groupContext="shape" 
v:layerMember="0" transform="translate(86.747,-217.661)">
+                               <title>Dynamic connector</title>
+                               <path d="M0 523.32 L79.21 440.59" class="st2"/>
+                       </g>
+                       <g id="shape52-72" v:mID="52" v:groupContext="shape" 
v:layerMember="0" transform="translate(71.6902,-131.289)">
+                               <title>Dynamic connector.52</title>
+                               <path d="M6.9 523.32 L7.21 468.25" class="st2"/>
+                       </g>
+                       <g id="shape157-77" v:mID="157" v:groupContext="shape" 
v:layerMember="0" transform="translate(202.193,-129.579)">
+                               <title>Dynamic connector.157</title>
+                               <path d="M7.05 523.32 L7.11 459.09" 
class="st2"/>
+                       </g>
+                       <g id="shape158-82" v:mID="158" v:groupContext="shape" 
v:layerMember="0" transform="translate(206.384,-227.814)">
+                               <title>Dynamic connector.158</title>
+                               <path d="M0 523.32 L-18.25 456.38" class="st2"/>
+                       </g>
+                       <g id="shape159-87" v:mID="159" v:groupContext="shape" 
v:layerMember="0" transform="translate(299.837,-223.969)">
+                               <title>Dynamic connector.159</title>
+                               <path d="M0 523.32 L-99.6 444.53" class="st2"/>
+                       </g>
+                       <g id="shape160-92" v:mID="160" v:groupContext="shape" 
v:layerMember="0" transform="translate(295.944,-129.235)">
+                               <title>Dynamic connector.160</title>
+                               <path d="M2.77 523.32 L10.05 458.6" 
class="st2"/>
+                       </g>
+                       <g id="shape161-97" v:mID="161" v:groupContext="shape" 
v:layerMember="0" transform="translate(277.428,-129.235)">
+                               <title>Dynamic connector.161</title>
+                               <path d="M0 523.32 L23.4 457.41" class="st2"/>
+                       </g>
+                       <g id="shape162-102" v:mID="162" v:groupContext="shape" 
v:layerMember="0" transform="translate(322.104,-129.235)">
+                               <title>Dynamic connector.162</title>
+                               <path d="M-2.1 523.32 L-10.52 458.55" 
class="st2"/>
+                       </g>
+                       <g id="shape163-107" v:mID="163" v:groupContext="shape" 
v:layerMember="0" transform="translate(341.288,-129.235)">
+                               <title>Dynamic connector.163</title>
+                               <path d="M0 523.32 L-24.59 457.29" class="st2"/>
+                       </g>
+                       <g id="shape164-112" v:mID="164" v:groupContext="shape" 
v:layerMember="0" transform="translate(111.288,-84.3465)">
+                               <title>Dynamic connector.164</title>
+                               <path d="M0 516.63 L69.49 515.85" class="st4"/>
+                       </g>
+                       <g id="shape165-115" v:mID="165" v:groupContext="shape" 
v:layerMember="0" transform="translate(189.998,-324.99)">
+                               <title>Dynamic connector.165</title>
+                               <path d="M0 523.32 L59.82 464.71" class="st2"/>
+                       </g>
+                       <g id="shape166-120" v:mID="166" v:groupContext="shape" 
v:layerMember="0" transform="translate(343.721,-336.095)">
+                               <title>Dynamic connector.166</title>
+                               <path d="M0 523.32 L-59.4 474.34" class="st2"/>
+                       </g>
+                       <g id="shape167-125" v:mID="167" v:groupContext="shape" 
v:layerMember="0" transform="translate(274.631,-407.412)">
+                               <title>Dynamic connector.167</title>
+                               <path d="M0 523.32 L64.01 464.55" class="st2"/>
+                       </g>
+                       <g id="shape168-130" v:mID="168" v:groupContext="shape" 
v:layerMember="0" transform="translate(429.657,-418.308)">
+                               <title>Dynamic connector.168</title>
+                               <path d="M0 523.32 L-56.3 474.89" class="st2"/>
+                       </g>
+                       <g id="shape170-135" v:mID="170" v:groupContext="shape" 
v:layerMember="0" transform="translate(70.9299,-2.87469)">
+                               <title>Dynamic connector.170</title>
+                               <path d="M6.65 523.32 L7.36 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape171-140" v:mID="171" v:groupContext="shape" 
v:layerMember="0" transform="translate(201.964,1.13687E-13)">
+                               <title>Dynamic connector.171</title>
+                               <path d="M6.93 523.32 L7.19 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape172-145" v:mID="172" v:groupContext="shape" 
v:layerMember="0" transform="translate(267.581,-0.34415)">
+                               <title>Dynamic connector.172</title>
+                               <path d="M7.07 523.32 L7.1 468.25" class="st2"/>
+                       </g>
+                       <g id="shape173-150" v:mID="173" v:groupContext="shape" 
v:layerMember="0" transform="translate(290.626,-0.34415)">
+                               <title>Dynamic connector.173</title>
+                               <path d="M6.98 523.32 L7.16 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape174-155" v:mID="174" v:groupContext="shape" 
v:layerMember="0" transform="translate(328.373,-0.34415)">
+                               <title>Dynamic connector.174</title>
+                               <path d="M-6.86 523.32 L-7.23 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape175-160" v:mID="175" v:groupContext="shape" 
v:layerMember="0" transform="translate(336.683,-0.344153)">
+                               <title>Dynamic connector.175</title>
+                               <path d="M6.77 523.32 L7.29 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape176-165" v:mID="176" v:groupContext="shape" 
transform="translate(3.59712E-14,-85.0395)">
+                               <title>Sheet.176</title>
+                               <desc>Queue</desc>
+                               <v:textBlock v:margins="rect(4,4,4,4)" 
v:tabSpace="42.5197"/>
+                               <v:textRect cx="26.2205" cy="502.064" 
width="52.45" height="42.5197"/>
+                               <rect x="0" y="480.804" width="52.4409" 
height="42.5197" class="st5"/>
+                               <text x="7.19" y="506.26" class="st6" 
v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Queue</text>         
          </g>
+                       <g id="shape177-168" v:mID="177" v:groupContext="shape" 
transform="translate(265.039,-113.796)">
+                               <title>Sheet.177</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape178-170" v:mID="178" v:groupContext="shape" 
transform="translate(265.039,-98.3577)">
+                               <title>Sheet.178</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape179-172" v:mID="179" v:groupContext="shape" 
transform="translate(265.039,-82.9192)">
+                               <title>Sheet.179</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape180-174" v:mID="180" v:groupContext="shape" 
transform="translate(265.039,-67.4807)">
+                               <title>Sheet.180</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape181-176" v:mID="181" v:groupContext="shape" 
transform="translate(288.197,-113.796)">
+                               <title>Sheet.181</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape182-178" v:mID="182" v:groupContext="shape" 
transform="translate(288.197,-98.3577)">
+                               <title>Sheet.182</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape183-180" v:mID="183" v:groupContext="shape" 
transform="translate(288.197,-82.9192)">
+                               <title>Sheet.183</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape184-182" v:mID="184" v:groupContext="shape" 
transform="translate(288.197,-67.4807)">
+                               <title>Sheet.184</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape185-184" v:mID="185" v:groupContext="shape" 
transform="translate(311.355,-113.796)">
+                               <title>Sheet.185</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape186-186" v:mID="186" v:groupContext="shape" 
transform="translate(311.355,-98.3577)">
+                               <title>Sheet.186</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape187-188" v:mID="187" v:groupContext="shape" 
transform="translate(311.355,-82.9192)">
+                               <title>Sheet.187</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape188-190" v:mID="188" v:groupContext="shape" 
transform="translate(311.355,-67.4807)">
+                               <title>Sheet.188</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape189-192" v:mID="189" v:groupContext="shape" 
transform="translate(334.513,-113.796)">
+                               <title>Sheet.189</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape190-194" v:mID="190" v:groupContext="shape" 
transform="translate(334.513,-98.3577)">
+                               <title>Sheet.190</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape191-196" v:mID="191" v:groupContext="shape" 
transform="translate(334.513,-82.9192)">
+                               <title>Sheet.191</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape192-198" v:mID="192" v:groupContext="shape" 
transform="translate(334.513,-67.4807)">
+                               <title>Sheet.192</title>
+                               <rect x="0" y="507.885" width="19.2981" 
height="15.4385" class="st1"/>
+                       </g>
+                       <g id="shape193-200" v:mID="193" v:groupContext="shape" 
transform="translate(199.484,-113.968)">
+                               <title>Sheet.193</title>
+                               <rect x="0" y="507.713" width="19.5132" 
height="15.6106" class="st1"/>
+                       </g>
+                       <g id="shape194-202" v:mID="194" v:groupContext="shape" 
transform="translate(199.484,-98.3577)">
+                               <title>Sheet.194</title>
+                               <rect x="0" y="507.713" width="19.5132" 
height="15.6106" class="st1"/>
+                       </g>
+                       <g id="shape195-204" v:mID="195" v:groupContext="shape" 
transform="translate(199.484,-82.7471)">
+                               <title>Sheet.195</title>
+                               <rect x="0" y="507.713" width="19.5132" 
height="15.6106" class="st1"/>
+                       </g>
+                       <g id="shape196-206" v:mID="196" v:groupContext="shape" 
transform="translate(199.484,-67.1365)">
+                               <title>Sheet.196</title>
+                               <rect x="0" y="507.713" width="19.5132" 
height="15.6106" class="st1"/>
+                       </g>
+                       <g id="shape197-208" v:mID="197" v:groupContext="shape" 
transform="translate(68.9749,-115.97)">
+                               <title>Sheet.197</title>
+                               <rect x="0" y="508.004" width="19.1493" 
height="15.3195" class="st1"/>
+                       </g>
+                       <g id="shape198-210" v:mID="198" v:groupContext="shape" 
transform="translate(68.9749,-100.65)">
+                               <title>Sheet.198</title>
+                               <rect x="0" y="508.004" width="19.1493" 
height="15.3195" class="st1"/>
+                       </g>
+                       <g id="shape199-212" v:mID="199" v:groupContext="shape" 
transform="translate(68.9749,-85.3307)">
+                               <title>Sheet.199</title>
+                               <rect x="0" y="508.004" width="19.1493" 
height="15.3195" class="st1"/>
+                       </g>
+                       <g id="shape200-214" v:mID="200" v:groupContext="shape" 
transform="translate(68.9749,-70.0112)">
+                               <title>Sheet.200</title>
+                               <rect x="0" y="508.004" width="19.1493" 
height="15.3195" class="st1"/>
+                       </g>
+                       <g id="shape201-216" v:mID="201" v:groupContext="shape" 
transform="translate(67.8551,-198.425)">
+                               <title>Sheet.201</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape202-218" v:mID="202" v:groupContext="shape" 
transform="translate(198.153,-205.871)">
+                               <title>Sheet.202</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape203-220" v:mID="203" v:groupContext="shape" 
transform="translate(297.427,-205.871)">
+                               <title>Sheet.203</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape204-222" v:mID="204" v:groupContext="shape" 
transform="translate(170.852,-306.005)">
+                               <title>Sheet.204</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape205-224" v:mID="205" v:groupContext="shape" 
transform="translate(255.236,-388.69)">
+                               <title>Sheet.205</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape206-226" v:mID="206" v:groupContext="shape" 
transform="translate(341.169,-317.821)">
+                               <title>Sheet.206</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape207-228" v:mID="207" v:groupContext="shape" 
transform="translate(344.583,-470.722)">
+                               <title>Sheet.207</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape208-230" v:mID="208" v:groupContext="shape" 
transform="translate(426.955,-399.855)">
+                               <title>Sheet.208</title>
+                               <ellipse cx="11.1684" cy="512.155" rx="11.1684" 
ry="11.1684" class="st1"/>
+                       </g>
+                       <g id="shape209-232" v:mID="209" v:groupContext="shape" 
v:layerMember="0" transform="translate(86.747,-217.661)">
+                               <title>Dynamic connector.209</title>
+                               <path d="M0 523.32 L79.21 440.59" class="st2"/>
+                       </g>
+                       <g id="shape210-237" v:mID="210" v:groupContext="shape" 
v:layerMember="0" transform="translate(71.6902,-131.289)">
+                               <title>Dynamic connector.210</title>
+                               <path d="M6.9 523.32 L7.21 468.25" class="st2"/>
+                       </g>
+                       <g id="shape211-242" v:mID="211" v:groupContext="shape" 
v:layerMember="0" transform="translate(202.193,-129.579)">
+                               <title>Dynamic connector.211</title>
+                               <path d="M7.05 523.32 L7.11 459.09" 
class="st2"/>
+                       </g>
+                       <g id="shape212-247" v:mID="212" v:groupContext="shape" 
v:layerMember="0" transform="translate(206.384,-227.814)">
+                               <title>Dynamic connector.212</title>
+                               <path d="M0 523.32 L-18.25 456.38" class="st2"/>
+                       </g>
+                       <g id="shape213-252" v:mID="213" v:groupContext="shape" 
v:layerMember="0" transform="translate(299.837,-223.969)">
+                               <title>Dynamic connector.213</title>
+                               <path d="M0 523.32 L-99.6 444.53" class="st2"/>
+                       </g>
+                       <g id="shape214-257" v:mID="214" v:groupContext="shape" 
v:layerMember="0" transform="translate(295.944,-129.235)">
+                               <title>Dynamic connector.214</title>
+                               <path d="M2.77 523.32 L10.05 458.6" 
class="st2"/>
+                       </g>
+                       <g id="shape215-262" v:mID="215" v:groupContext="shape" 
v:layerMember="0" transform="translate(277.428,-129.235)">
+                               <title>Dynamic connector.215</title>
+                               <path d="M0 523.32 L23.4 457.41" class="st2"/>
+                       </g>
+                       <g id="shape216-267" v:mID="216" v:groupContext="shape" 
v:layerMember="0" transform="translate(322.104,-129.235)">
+                               <title>Dynamic connector.216</title>
+                               <path d="M-2.1 523.32 L-10.52 458.55" 
class="st2"/>
+                       </g>
+                       <g id="shape217-272" v:mID="217" v:groupContext="shape" 
v:layerMember="0" transform="translate(341.288,-129.235)">
+                               <title>Dynamic connector.217</title>
+                               <path d="M0 523.32 L-24.59 457.29" class="st2"/>
+                       </g>
+                       <g id="shape218-277" v:mID="218" v:groupContext="shape" 
v:layerMember="0" transform="translate(111.288,-84.3465)">
+                               <title>Dynamic connector.218</title>
+                               <path d="M0 516.63 L69.49 515.85" class="st4"/>
+                       </g>
+                       <g id="shape219-280" v:mID="219" v:groupContext="shape" 
v:layerMember="0" transform="translate(189.998,-324.99)">
+                               <title>Dynamic connector.219</title>
+                               <path d="M0 523.32 L59.82 464.71" class="st2"/>
+                       </g>
+                       <g id="shape220-285" v:mID="220" v:groupContext="shape" 
v:layerMember="0" transform="translate(343.721,-336.095)">
+                               <title>Dynamic connector.220</title>
+                               <path d="M0 523.32 L-59.4 474.34" class="st2"/>
+                       </g>
+                       <g id="shape221-290" v:mID="221" v:groupContext="shape" 
v:layerMember="0" transform="translate(274.631,-407.412)">
+                               <title>Dynamic connector.221</title>
+                               <path d="M0 523.32 L64.01 464.55" class="st2"/>
+                       </g>
+                       <g id="shape222-295" v:mID="222" v:groupContext="shape" 
v:layerMember="0" transform="translate(429.657,-418.308)">
+                               <title>Dynamic connector.222</title>
+                               <path d="M0 523.32 L-56.3 474.89" class="st2"/>
+                       </g>
+                       <g id="shape223-300" v:mID="223" v:groupContext="shape" 
v:layerMember="0" transform="translate(70.9299,-2.87469)">
+                               <title>Dynamic connector.223</title>
+                               <path d="M6.65 523.32 L7.36 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape224-305" v:mID="224" v:groupContext="shape" 
v:layerMember="0" transform="translate(201.964,1.13687E-13)">
+                               <title>Dynamic connector.224</title>
+                               <path d="M6.93 523.32 L7.19 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape225-310" v:mID="225" v:groupContext="shape" 
v:layerMember="0" transform="translate(267.581,-0.34415)">
+                               <title>Dynamic connector.225</title>
+                               <path d="M7.07 523.32 L7.1 468.25" class="st2"/>
+                       </g>
+                       <g id="shape226-315" v:mID="226" v:groupContext="shape" 
v:layerMember="0" transform="translate(290.626,-0.34415)">
+                               <title>Dynamic connector.226</title>
+                               <path d="M6.98 523.32 L7.16 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape227-320" v:mID="227" v:groupContext="shape" 
v:layerMember="0" transform="translate(328.373,-0.34415)">
+                               <title>Dynamic connector.227</title>
+                               <path d="M-6.86 523.32 L-7.23 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape228-325" v:mID="228" v:groupContext="shape" 
v:layerMember="0" transform="translate(336.683,-0.344153)">
+                               <title>Dynamic connector.228</title>
+                               <path d="M6.77 523.32 L7.29 468.25" 
class="st2"/>
+                       </g>
+                       <g id="shape230-330" v:mID="230" v:groupContext="shape" 
transform="translate(9.92126,-185.273)">
+                               <title>Sheet.230</title>
+                               <desc>Traffic Class</desc>
+                               <v:textBlock v:margins="rect(4,4,4,4)" 
v:tabSpace="42.5197"/>
+                               <v:textRect cx="26.2205" cy="499.003" 
width="52.45" height="48.6423"/>
+                               <rect x="0" y="474.681" width="52.4409" 
height="48.6423" class="st5"/>
+                               <text x="8.18" y="494.8" class="st6" 
v:langID="2057"><v:paragraph 
v:horizAlign="1"/><v:tabList/>Traffic<v:newlineChar/><tspan
+                                                       x="12.05" dy="1.2em" 
class="st7">Class</tspan></text>                   </g>
+                       <g id="shape231-334" v:mID="231" v:groupContext="shape" 
transform="translate(113.386,-297.638)">
+                               <title>Sheet.231</title>
+                               <desc>Pipe</desc>
+                               <v:textBlock v:margins="rect(4,4,4,4)" 
v:tabSpace="42.5197"/>
+                               <v:textRect cx="26.2205" cy="499.003" 
width="52.45" height="48.6423"/>
+                               <rect x="0" y="474.681" width="52.4409" 
height="48.6423" class="st5"/>
+                               <text x="13.84" y="503.2" class="st6" 
v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Pipe</text>          
          </g>
+                       <g id="shape232-337" v:mID="232" v:groupContext="shape" 
transform="translate(185.669,-382.677)">
+                               <title>Sheet.232</title>
+                               <desc>Subport</desc>
+                               <v:textBlock v:margins="rect(4,4,4,4)" 
v:tabSpace="42.5197"/>
+                               <v:textRect cx="32.5984" cy="499.003" 
width="65.2" height="48.6423"/>
+                               <rect x="0" y="474.681" width="65.1969" 
height="48.6423" class="st5"/>
+                               <text x="9.87" y="503.2" class="st6" 
v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Subport</text>       
           </g>
+                       <g id="shape233-340" v:mID="233" v:groupContext="shape" 
transform="translate(284.882,-461.594)">
+                               <title>Sheet.233</title>
+                               <desc>Port</desc>
+                               <v:textBlock v:margins="rect(4,4,4,4)" 
v:tabSpace="42.5197"/>
+                               <v:textRect cx="32.5984" cy="499.003" 
width="65.2" height="48.6423"/>
+                               <rect x="0" y="474.681" width="65.1969" 
height="48.6423" class="st5"/>
+                               <text x="20.51" y="503.2" class="st6" 
v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>Port</text>          
          </g>
+               </g>
+       </g>
+</svg>
diff --git a/doc/guides/prog_guide/qos_framework.rst 
b/doc/guides/prog_guide/qos_framework.rst
index a7527b21c..a15970945 100644
--- a/doc/guides/prog_guide/qos_framework.rst
+++ b/doc/guides/prog_guide/qos_framework.rst
@@ -171,7 +171,7 @@ The functionality of each hierarchical level is detailed in 
the following table.
    |   |                    |                            |     token bucket 
per pipe.                                    |
    |   |                    |                            |                     
                                          |
    
+---+--------------------+----------------------------+---------------------------------------------------------------+
-   | 4 | Traffic Class (TC) | 4                          | #.  TCs of the same 
pipe handled in strict priority order.    |
+   | 4 | Traffic Class (TC) | 13                         | #.  TCs of the same 
pipe handled in strict priority order.    |
    |   |                    |                            |                     
                                          |
    |   |                    |                            | #.  Upper limit 
enforced per TC at the pipe level.            |
    |   |                    |                            |                     
                                          |
@@ -183,8 +183,13 @@ The functionality of each hierarchical level is detailed 
in the following table.
    |   |                    |                            |     adjusted value 
that is shared by all the subport pipes.   |
    |   |                    |                            |                     
                                          |
    
+---+--------------------+----------------------------+---------------------------------------------------------------+
-   | 5 | Queue              | 4                          | #.  Queues of the 
same TC are serviced using Weighted Round   |
-   |   |                    |                            |     Robin (WRR) 
according to predefined weights.              |
+   | 5 | Queue              |  High priority TCs: 1,     | #.  All the high 
priority TCs (TC0, TC1,  ...,TC11) have      |
+   |   |                    |  Lowest priority TC: 4     |     exactly 1 
queue, while the lowest priority TC (TC12),     |
+   |   |                    |                            |     called Best 
Effort (BE), has 4 queues.                    |
+   |   |                    |                            |                     
                                          |
+   |   |                    |                            | #.  Queues of the 
lowest priority TC (BE) are serviced using  |
+   |   |                    |                            |     Weighted Round 
Robin (WRR) according to predefined weights|
+   |   |                    |                            |     weights.        
                                          |
    |   |                    |                            |                     
                                          |
    
+---+--------------------+----------------------------+---------------------------------------------------------------+
 
@@ -730,10 +735,10 @@ Implementation of Strict Priority Scheduling
 
 Strict priority scheduling of traffic classes within the same pipe is 
implemented by the pipe dequeue state machine,
 which selects the queues in ascending order.
-Therefore, queues 0..3 (associated with TC 0, highest priority TC) are handled 
before
-queues 4..7 (TC 1, lower priority than TC 0),
-which are handled before queues 8..11 (TC 2),
-which are handled before queues 12..15 (TC 3, lowest priority TC).
+Therefore, queue 0 (associated with TC 0, highest priority TC) is handled 
before
+queue 1 (TC 1, lower priority than TC 0),
+which is handled before queue 2 (TC 2, lower priority than TC 1) and it 
conitnues until queues of all TCs except the
+lowest priority TC are handled. At last, queues 12..15 (best effort TC, lowest 
priority TC) are handled.
 
 Upper Limit Enforcement
 '''''''''''''''''''''''
@@ -753,14 +758,14 @@ as described in :numref:`table_qos_10` and 
:numref:`table_qos_11`.
    | # | Subport or pipe field | Unit  | Description                           
                                |
    |   |                       |       |                                       
                                |
    
+===+=======================+=======+=======================================================================+
-   | 1 | tc_time               | Bytes | Time of the next update (upper limit 
refill) for the 4 TCs of the     |
+   | 1 | tc_time               | Bytes | Time of the next update (upper limit 
refill) for the TCs of the       |
    |   |                       |       | current subport / pipe.               
                                |
    |   |                       |       |                                       
                                |
    |   |                       |       | See  Section `Internal Time 
Reference`_ for the                       |
    |   |                       |       | explanation of why the time is 
maintained in byte units.              |
    |   |                       |       |                                       
                                |
    
+---+-----------------------+-------+-----------------------------------------------------------------------+
-   | 2 | tc_period             | Bytes | Time between two consecutive updates 
for the 4 TCs of the current     |
+   | 2 | tc_period             | Bytes | Time between two consecutive updates 
for the all TCs of the current   |
    |   |                       |       | subport / pipe. This is expected to 
be many times bigger than the     |
    |   |                       |       | typical value of the token bucket 
tb_period.                          |
    |   |                       |       |                                       
                                |
@@ -815,7 +820,7 @@ as described in :numref:`table_qos_10` and 
:numref:`table_qos_11`.
 Weighted Round Robin (WRR)
 """"""""""""""""""""""""""
 
-The evolution of the WRR design solution from simple to complex is shown in 
:numref:`table_qos_12`.
+The evolution of the WRR design solution for the lowest priority traffic class 
(best effort TC) from simple to complex is shown in :numref:`table_qos_12`.
 
 .. _table_qos_12:
 
@@ -977,33 +982,33 @@ with the third approach selected for implementation.
    |     |                           |                                         
                                |
    
+-----+---------------------------+-------------------------------------------------------------------------+
 
-Typically, the subport TC oversubscription feature is enabled only for the 
lowest priority traffic class (TC 3),
+Typically, the subport TC oversubscription feature is enabled only for the 
lowest priority traffic class,
 which is typically used for best effort traffic,
 with the management plane preventing this condition from occurring for the 
other (higher priority) traffic classes.
 
-To ease implementation, it is also assumed that the upper limit for subport TC 
3 is set to 100% of the subport rate,
-and that the upper limit for pipe TC 3 is set to 100% of pipe rate for all 
subport member pipes.
+To ease implementation, it is also assumed that the upper limit for subport 
best effort TC is set to 100% of the subport rate,
+and that the upper limit for pipe best effort TC is set to 100% of pipe rate 
for all subport member pipes.
 
 Implementation Overview
 '''''''''''''''''''''''
 
 The algorithm computes a watermark, which is periodically updated based on the 
current demand experienced by the subport member pipes,
-whose purpose is to limit the amount of traffic that each pipe is allowed to 
send for TC 3.
+whose purpose is to limit the amount of traffic that each pipe is allowed to 
send for best effort TC.
 The watermark is computed at the subport level at the beginning of each 
traffic class upper limit enforcement period and
 the same value is used by all the subport member pipes throughout the current 
enforcement period.
 illustrates how the watermark computed as subport level at the beginning of 
each period is propagated to all subport member pipes.
 
 At the beginning of the current enforcement period (which coincides with the 
end of the previous enforcement period),
-the value of the watermark is adjusted based on the amount of bandwidth 
allocated to TC 3 at the beginning of the previous period that
+the value of the watermark is adjusted based on the amount of bandwidth 
allocated to best effort TC at the beginning of the previous period that
 was not left unused by the subport member pipes at the end of the previous 
period.
 
-If there was subport TC 3 bandwidth left unused,
+If there was subport best effort TC bandwidth left unused,
 the value of the watermark for the current period is increased to encourage 
the subport member pipes to consume more bandwidth.
-Otherwise, the value of the watermark is decreased to enforce equality of 
bandwidth consumption among subport member pipes for TC 3.
+Otherwise, the value of the watermark is decreased to enforce equality of 
bandwidth consumption among subport member pipes for best effort TC.
 
 The increase or decrease in the watermark value is done in small increments,
 so several enforcement periods might be required to reach the equilibrium 
state.
-This state can change at any moment due to variations in the demand 
experienced by the subport member pipes for TC 3, for example,
+This state can change at any moment due to variations in the demand 
experienced by the subport member pipes for best effort TC, for example,
 as a result of demand increase (when the watermark needs to be lowered) or 
demand decrease (when the watermark needs to be increased).
 
 When demand is low, the watermark is set high to prevent it from impeding the 
subport member pipes from consuming more bandwidth.
@@ -1084,10 +1089,27 @@ The highest value for the watermark is picked as the 
highest rate configured for
    |     |                  |                                                  
                                |
    |     |                  | tc3_cons = subport_tc3_credits_per_period - 
subport_tc3_credits;                 |
    |     |                  |                                                  
                                |
-   |     |                  | tc3_cons_max = subport_tc3_credits_per_period - 
(tc0_cons + tc1_cons +           |
-   |     |                  | tc2_cons);                                       
                                |
+   |     |                  | tc4_cons = subport_tc4_credits_per_period - 
subport_tc4_credits;                 |
+   |     |                  |                                                  
                                |
+   |     |                  | tc5_cons = subport_tc5_credits_per_period - 
subport_tc5_credits;                 |
+   |     |                  |                                                  
                                |
+   |     |                  | tc6_cons = subport_tc6_credits_per_period - 
subport_tc6_credits;                 |
+   |     |                  |                                                  
                                |
+   |     |                  | tc7_cons = subport_tc7_credits_per_period - 
subport_tc7_credits;                 |
+   |     |                  |                                                  
                                |
+   |     |                  | tc8_cons = subport_tc8_credits_per_period - 
subport_tc8_credits;                 |
    |     |                  |                                                  
                                |
-   |     |                  | if(tc3_consumption > (tc3_consumption_max - 
MTU)){                               |
+   |     |                  | tc9_cons = subport_tc9_credits_per_period - 
subport_tc9_credits;                 |
+   |     |                  |                                                  
                                |
+   |     |                  | tc10_cons = subport_tc10_credits_per_period - 
subport_tc10_credits;              |
+   |     |                  |                                                  
                                |
+   |     |                  | tc11_cons = subport_tc11_credits_per_period - 
subport_tc11_credits;              |
+   |     |                  |                                                  
                                |
+   |     |                  | tc_be_cons_max = 
subport_tc_be_credits_per_period - (tc0_cons + tc1_cons +       |
+   |     |                  | tc2_cons + tc3_cons + tc4_cons + tc5_cons + 
tc6_cons + tc7_cons + tc8_cons +     |
+   |     |                  | tc9_cons + tc10_cons + tc11_cons);               
                                |
+   |     |                  |                                                  
                                |
+   |     |                  | if(tc_be_consumption > (tc_be_consumption_max - 
MTU)){                           |
    |     |                  |                                                  
                                |
    |     |                  |     wm -= wm >> 7;                               
                                |
    |     |                  |                                                  
                                |
@@ -1555,6 +1577,52 @@ A sample RED configuration is shown below. In this 
example, the queue size is 64
    tc 3 wred inv prob = 10 10 10
    tc 3 wred weight = 9 9 9
 
+   tc 4 wred min = 28 22 16
+   tc 4 wred max = 32 32 32
+   tc 4 wred inv prob = 10 10 10
+   tc 4 wred weight = 9 9 9
+
+   tc 5 wred min = 28 22 16
+   tc 5 wred max = 32 32 32
+   tc 5 wred inv prob = 10 10 10
+   tc 5 wred weight = 9 9 9
+
+   tc 6 wred min = 28 22 16
+   tc 6 wred max = 32 32 32
+   tc 6 wred inv prob = 10 10 10
+   tc 6 wred weight = 9 9 9
+
+   tc 7 wred min = 28 22 16
+   tc 7 wred max = 32 32 32
+   tc 7 wred inv prob = 10 10 10
+   tc 7 wred weight = 9 9 9
+
+   tc 8 wred min = 28 22 16
+   tc 8 wred max = 32 32 32
+   tc 8 wred inv prob = 10 10 10
+   tc 8 wred weight = 9 9 9
+
+   tc 9 wred min = 28 22 16
+   tc 9 wred max = 32 32 32
+   tc 9 wred inv prob = 10 10 10
+   tc 9 wred weight = 9 9 9
+
+
+   tc 10 wred min = 28 22 16
+   tc 10 wred max = 32 32 32
+   tc 10 wred inv prob = 10 10 10
+   tc 10 wred weight = 9 9 9
+
+   tc 11 wred min = 28 22 16
+   tc 11 wred max = 32 32 32
+   tc 11 wred inv prob = 10 10 10
+   tc 11 wred weight = 9 9 9
+
+   tc 12 wred min = 28 22 16
+   tc 12 wred max = 32 32 32
+   tc 12 wred inv prob = 10 10 10
+   tc 12 wred weight = 9 9 9
+
 With this configuration file, the RED configuration that applies to green,
 yellow and red packets in traffic class 0 is shown in :numref:`table_qos_18`.
 
-- 
2.21.0

Reply via email to