<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Lato;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1484616755;
        mso-list-template-ids:1285469630;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-IE" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi Satish,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">I would encourage you to have a look at library code especially around dequeue operation to understand the scheduling behaviour.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Some of the answers are
<span style="color:#C55A11;mso-style-textfill-fill-color:#C55A11;mso-style-textfill-fill-alpha:100.0%">
inline</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Jasvinder<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> satish amara <satishkamara@gmail.com>
<br>
<b>Sent:</b> Wednesday, April 6, 2022 7:06 PM<br>
<b>To:</b> Singh, Jasvinder <jasvinder.singh@intel.com><br>
<b>Cc:</b> Thomas Monjalon <thomas@monjalon.net>; users@dpdk.org; Dumitrescu, Cristian <cristian.dumitrescu@intel.com><br>
<b>Subject:</b> Re: Fwd: QOS sample example.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Thank you. I have a question about how the active Traffic class is selected in a pipe. <o:p></o:p></p>
<div>
<p class="MsoNormal">Let's say I have  confugured only one Subport and  one  Pipe on interface.<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">If the highest priority traffic class in a pipe has exhausted it's rate limit can lower traffic class in the same pipe  be dequeued.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#C55A11;mso-style-textfill-fill-color:#C55A11;mso-style-textfill-fill-alpha:100.0%">Yes.once highest priority TC has consumed its allocated credits, and at the pipe level, there are credits available, then packets from
 next priority tc will be scheduled.   <o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Can I have profile for Pipe where bandwidth for Pipe is shared among multiple TC's <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Here is an example how I want to configure pipe so bandwidth allocated to Pipe is shared among 13 classes giving priority to highest queue provided it didn't exceed the rate limit.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">pipe_profile 0 {<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">tb_rate 1300000 /* Pipe level token bucket rate (bytes per second) */<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">tb_size 1000000 /* Pipe level token bucket size (bytes) */<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">tc0_rate 100000 /* Pipe level token bucket rate for traffic class 0 (bytes per second) */<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">tc1_rate 100000 /* Pipe level token bucket rate for traffic class 1 (bytes per second) */<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">tc2_rate 100000 /* Pipe level token bucket rate for traffic class 2 (bytes per second) */<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">tc3_rate 100000<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">..... /* Pipe level token bucket rate for traffic class 3 (bytes per second) */<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">tc13_rate 100000<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Courier New";color:black">tc_period 40 /* Time int<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal">            }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#C55A11;mso-style-textfill-fill-color:#C55A11;mso-style-textfill-fill-alpha:100.0%">DPDK QoS sample app has such profile defined if that helps.<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"> <span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040;background:#FCFCFC">The scheduling decision to send next packet from (subport S, pipe P, traffic class TC, queue Q) is favorable (packet is sent) when all the conditions
 below are met:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:54.0pt;text-indent:-18.0pt;line-height:18.0pt;mso-list:l0 level1 lfo1;background:#FCFCFC">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:#404040"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040">Pipe P of subport S is currently selected by one of the port grinders;<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:54.0pt;text-indent:-18.0pt;line-height:18.0pt;mso-list:l0 level1 lfo1;background:#FCFCFC">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:#404040"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040">Traffic class TC is the highest priority active traffic class of pipe P;<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:54.0pt;text-indent:-18.0pt;line-height:18.0pt;mso-list:l0 level1 lfo1;background:#FCFCFC">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:#404040"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040">Queue Q is the next queue selected by WRR within traffic class TC of pipe P;<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:54.0pt;text-indent:-18.0pt;line-height:18.0pt;mso-list:l0 level1 lfo1;background:#FCFCFC">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:#404040"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040">Subport S has enough credits to send the packet;<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:54.0pt;text-indent:-18.0pt;line-height:18.0pt;mso-list:l0 level1 lfo1;background:#FCFCFC">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:#404040"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040">Subport S has enough credits for traffic class TC to send the packet;<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:54.0pt;text-indent:-18.0pt;line-height:18.0pt;mso-list:l0 level1 lfo1;background:#FCFCFC">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:#404040"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040">Pipe P has enough credits to send the packet;<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:54.0pt;text-indent:-18.0pt;line-height:18.0pt;mso-list:l0 level1 lfo1;background:#FCFCFC">
<![if !supportLists]><span style="font-size:10.0pt;font-family:Symbol;color:#404040"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">        
</span></span></span><![endif]><span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040">Pipe P has enough credits for traffic class TC to send the packet.<o:p></o:p></span></p>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:18.0pt;margin-left:0cm;line-height:18.0pt;background:#FCFCFC;box-sizing:border-box">
<span style="font-size:12.0pt;font-family:"Lato",sans-serif;color:#404040">If all the above conditions are met, then the packet is selected for transmission and the necessary credits are subtracted from subport S, subport S traffic class TC, pipe P, pipe P
 traffic class TC.<o:p></o:p></span></p>
<p style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:18.0pt;margin-left:0cm;line-height:18.0pt;background:#FCFCFC">
<span style="color:#C55A11;mso-style-textfill-fill-color:#C55A11;mso-style-textfill-fill-alpha:100.0%">Yes, have a look at the grinder_credits_check () function in the library code.
<o:p></o:p></span></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, Apr 6, 2022 at 12:34 PM Singh, Jasvinder <<a href="mailto:jasvinder.singh@intel.com">jasvinder.singh@intel.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Yes, it is fixed. The tc_credits_per_period is updated after tc_period duration. Note that tc credits don’t get accumulated if tc queue is visited after multiple tc_period due to
 rate limiting mechanism at the traffic class level.   <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> satish amara <<a href="mailto:satishkamara@gmail.com" target="_blank">satishkamara@gmail.com</a>>
<br>
<b>Sent:</b> Wednesday, April 6, 2022 4:32 PM<br>
<b>To:</b> Singh, Jasvinder <<a href="mailto:jasvinder.singh@intel.com" target="_blank">jasvinder.singh@intel.com</a>><br>
<b>Cc:</b> Thomas Monjalon <<a href="mailto:thomas@monjalon.net" target="_blank">thomas@monjalon.net</a>>;
<a href="mailto:users@dpdk.org" target="_blank">users@dpdk.org</a>; Dumitrescu, Cristian <<a href="mailto:cristian.dumitrescu@intel.com" target="_blank">cristian.dumitrescu@intel.com</a>><br>
<b>Subject:</b> Re: Fwd: QOS sample example.</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Jasvinder,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">   I have a few more questions.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Can you provide  some clarity on <o:p></o:p></p>
</div>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="background:#FCFCFC;border-collapse:collapse;border-spacing:0px;empty-cells:show" id="gmail-m_-7260357973067368546gmail-id23">
<tbody>
<tr style="box-sizing:border-box">
<td nowrap="" style="border-top:inset;border-left:solid #E1E4E5;border-bottom:solid #E1E4E5;border-right:inset;border-width:1.0pt;background:#F3F6F6;padding:6.0pt 12.0pt 6.0pt 12.0pt;border-top-color:initial;border-right-color:initial;box-sizing:border-box;overflow:visible">
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:18.0pt"><span style="font-family:"Lato",sans-serif;color:#404040">tc_credits_per_period</span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">tc_period is for how often the credits for traffic need to be updated. Is tc_credits_per_period is fixed based on tc_rate.<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Satish Amara<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Fri, Apr 1, 2022 at 9:34 AM satish amara <<a href="mailto:satishkamara@gmail.com" target="_blank">satishkamara@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks for the info Jasvinder. I see there is an internal timer to see when to refill the token buckets and credits.  I have read the QOS  document.  My understanding is that the
 DPDK code is using the same HQOS thread CPU context to implement timer functionality during the pipe selection and not leveraging on Linux timers or other timers.  <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Satish Amara<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Fri, Apr 1, 2022 at 4:36 AM Singh, Jasvinder <<a href="mailto:jasvinder.singh@intel.com" target="_blank">jasvinder.singh@intel.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi Satish,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">DPDK HQoS scheduler has internal timer to compute the credits. The time difference between the two consecutive visit to the same pipe is used to compute the number of tb_periods
 elapsed and based on that, the available credits in the token bucket is computed. Each pipe has its own context which stores the timestamp of the last visit  and it is used when pipe is visited to schedule the packets from its queues.
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Jasvinder<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> satish amara <</span><a href="mailto:satishkamara@gmail.com" target="_blank"><span lang="EN-US">satishkamara@gmail.com</span></a><span lang="EN-US">>
<br>
<b>Sent:</b> Thursday, March 31, 2022 9:27 PM<br>
<b>To:</b> Thomas Monjalon <</span><a href="mailto:thomas@monjalon.net" target="_blank"><span lang="EN-US">thomas@monjalon.net</span></a><span lang="EN-US">><br>
<b>Cc:</b> </span><a href="mailto:users@dpdk.org" target="_blank"><span lang="EN-US">users@dpdk.org</span></a><span lang="EN-US">; Singh, Jasvinder <</span><a href="mailto:jasvinder.singh@intel.com" target="_blank"><span lang="EN-US">jasvinder.singh@intel.com</span></a><span lang="EN-US">>;
 Dumitrescu, Cristian <</span><a href="mailto:cristian.dumitrescu@intel.com" target="_blank"><span lang="EN-US">cristian.dumitrescu@intel.com</span></a><span lang="EN-US">><br>
<b>Subject:</b> Re: Fwd: QOS sample example.</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks, Thomas for forwarding this to the group. <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I have one more question. Does DPDK QOS  uses any internal threads/timers for the token bucket implementation?. The token<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> buckets can be implemented in different ways.  When are the tokens are filled, I see there is tb_period?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">It looks like the tokens are filled when the HQOS thread is trying to find the next active pipe?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Satish Amara<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Thu, Mar 31, 2022 at 3:39 PM Thomas Monjalon <<a href="mailto:thomas@monjalon.net" target="_blank">thomas@monjalon.net</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt">+Cc QoS scheduler maintainers (see file MAINTAINERS)<br>
<br>
31/03/2022 18:59, satish amara:<br>
> Hi,<br>
>     I am trying to understand the QOS sample scheduler application code.<br>
> Trying to understand what is tc_period in the config.<br>
> 30. QoS Scheduler Sample Application — Data Plane Development Kit 21.05.0<br>
> documentation (<a href="http://dpdk.org" target="_blank">dpdk.org</a>)<br>
> <<a href="https://doc.dpdk.org/guides-21.05/sample_app_ug/qos_scheduler.html" target="_blank">https://doc.dpdk.org/guides-21.05/sample_app_ug/qos_scheduler.html</a>> Is<br>
> tc_period same as  tb_period<br>
> tb_period Bytes Time period that should elapse since the last credit update<br>
> in order for the bucket to be awarded tb_credits_per_period worth or<br>
> credits.<br>
> Regards,<br>
> Satish Amara<br>
> <br>
<br>
<br>
<o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</body>
</html>