DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/3] sched: documentation update
@ 2019-10-29 13:19 Jasvinder Singh
  2019-10-29 13:19 ` [dpdk-dev] [PATCH 2/3] examples/qos_sched: " Jasvinder Singh
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Jasvinder Singh @ 2019-10-29 13:19 UTC (permalink / raw)
  To: dev; +Cc: cristian.dumitrescu, john.mcnamara, marko.kovacevic

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

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
---
 .../prog_guide/img/sched_hier_per_port.png    | Bin 58973 -> 0 bytes
 .../prog_guide/img/sched_hier_per_port.svg    | Bin 0 -> 1463490 bytes
 doc/guides/prog_guide/qos_framework.rst       | 112 ++++++++++++++----
 3 files changed, 90 insertions(+), 22 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 0000000000000000000000000000000000000000..d77ee70a2dd06eedc2c10f44621902921a820806
GIT binary patch
literal 1463490
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
aKmY;|fB*y_009U<00Izz00f3h;Qs?U4yb1U

literal 0
HcmV?d00001

diff --git a/doc/guides/prog_guide/qos_framework.rst b/doc/guides/prog_guide/qos_framework.rst
index a7527b21c..476cdd953 100644
--- a/doc/guides/prog_guide/qos_framework.rst
+++ b/doc/guides/prog_guide/qos_framework.rst
@@ -136,7 +136,7 @@ Each queue hosts packets from one or multiple connections of the same type belon
 
 .. _figure_sched_hier_per_port:
 
-.. figure:: img/sched_hier_per_port.*
+.. figure:: img/sched_hier_per_port.svg
 
    Scheduling Hierarchy per Port
 
@@ -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


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [PATCH 2/3] examples/qos_sched: documentation update
  2019-10-29 13:19 [dpdk-dev] [PATCH 1/3] sched: documentation update Jasvinder Singh
@ 2019-10-29 13:19 ` Jasvinder Singh
  2019-11-04 10:29   ` Dumitrescu, Cristian
  2019-10-29 13:19 ` [dpdk-dev] [PATCH 3/3] examples/ip_pipeline: " Jasvinder Singh
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Jasvinder Singh @ 2019-10-29 13:19 UTC (permalink / raw)
  To: dev; +Cc: cristian.dumitrescu, john.mcnamara, marko.kovacevic

Update documentation according to the changes made to qos sample
app.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
---
 doc/guides/sample_app_ug/qos_scheduler.rst | 92 +++++++++++++++++++---
 1 file changed, 81 insertions(+), 11 deletions(-)

diff --git a/doc/guides/sample_app_ug/qos_scheduler.rst b/doc/guides/sample_app_ug/qos_scheduler.rst
index cdd29d90c..b5010657a 100644
--- a/doc/guides/sample_app_ug/qos_scheduler.rst
+++ b/doc/guides/sample_app_ug/qos_scheduler.rst
@@ -22,7 +22,7 @@ There are two flavors of the runtime execution for this application,
 with two or three threads per each packet flow configuration being used.
 The RX thread reads packets from the RX port,
 classifies the packets based on the double VLAN (outer and inner) and
-the lower two bytes of the IP destination address and puts them into the ring queue.
+the lower byte of the IP destination address and puts them into the ring queue.
 The worker thread dequeues the packets from the ring and calls the QoS scheduler enqueue/dequeue functions.
 If a separate TX core is used, these are sent to the TX ring.
 Otherwise, they are sent directly to the TX port.
@@ -129,18 +129,28 @@ The profile file has the following format:
 
     frame overhead = 24
     number of subports per port = 1
-    number of pipes per subport = 4096
-    queue sizes = 64 64 64 64
 
     ; Subport configuration
 
     [subport 0]
+    number of pipes per subport = 4096
+    queue sizes = 64 64 64 64 64 64 64 64 64 64 64 64 64
     tb rate = 1250000000; Bytes per second
     tb size = 1000000; Bytes
     tc 0 rate = 1250000000;     Bytes per second
     tc 1 rate = 1250000000;     Bytes per second
     tc 2 rate = 1250000000;     Bytes per second
     tc 3 rate = 1250000000;     Bytes per second
+    tc 4 rate = 1250000000;     Bytes per second
+    tc 5 rate = 1250000000;     Bytes per second
+    tc 6 rate = 1250000000;     Bytes per second
+    tc 7 rate = 1250000000;     Bytes per second
+    tc 8 rate = 1250000000;     Bytes per second
+    tc 9 rate = 1250000000;     Bytes per second
+    tc 10 rate = 1250000000;     Bytes per second
+    tc 11 rate = 1250000000;     Bytes per second
+    tc 12 rate = 1250000000;     Bytes per second
+
     tc period = 10;             Milliseconds
     tc oversubscription period = 10;     Milliseconds
 
@@ -156,17 +166,32 @@ The profile file has the following format:
     tc 1 rate = 305175; Bytes per second
     tc 2 rate = 305175; Bytes per second
     tc 3 rate = 305175; Bytes per second
+    tc 4 rate = 305175; Bytes per second
+    tc 5 rate = 305175; Bytes per second
+    tc 6 rate = 305175; Bytes per second
+    tc 7 rate = 305175; Bytes per second
+    tc 8 rate = 305175; Bytes per second
+    tc 9 rate = 305175; Bytes per second
+    tc 10 rate = 305175; Bytes per second
+    tc 11 rate = 305175; Bytes per second
+    tc 12 rate = 305175; Bytes per second
     tc period = 40; Milliseconds
 
     tc 0 oversubscription weight = 1
     tc 1 oversubscription weight = 1
     tc 2 oversubscription weight = 1
     tc 3 oversubscription weight = 1
-
-    tc 0 wrr weights = 1 1 1 1
-    tc 1 wrr weights = 1 1 1 1
-    tc 2 wrr weights = 1 1 1 1
-    tc 3 wrr weights = 1 1 1 1
+    tc 4 oversubscription weight = 1
+    tc 5 oversubscription weight = 1
+    tc 6 oversubscription weight = 1
+    tc 7 oversubscription weight = 1
+    tc 8 oversubscription weight = 1
+    tc 9 oversubscription weight = 1
+    tc 10 oversubscription weight = 1
+    tc 11 oversubscription weight = 1
+    tc 12 oversubscription weight = 1
+
+    tc 12 wrr weights = 1 1 1 1
 
     ; RED params per traffic class and color (Green / Yellow / Red)
 
@@ -191,6 +216,51 @@ The profile file has the following format:
     tc 3 wred inv prob = 10 10 10
     tc 3 wred weight = 9 9 9
 
+    tc 4 wred min = 48 40 32
+    tc 4 wred max = 64 64 64
+    tc 4 wred inv prob = 10 10 10
+    tc 4 wred weight = 9 9 9
+
+    tc 5 wred min = 48 40 32
+    tc 5 wred max = 64 64 64
+    tc 5 wred inv prob = 10 10 10
+    tc 5 wred weight = 9 9 9
+
+    tc 6 wred min = 48 40 32
+    tc 6 wred max = 64 64 64
+    tc 6 wred inv prob = 10 10 10
+    tc 6 wred weight = 9 9 9
+
+    tc 7 wred min = 48 40 32
+    tc 7 wred max = 64 64 64
+    tc 7 wred inv prob = 10 10 10
+    tc 7 wred weight = 9 9 9
+
+    tc 8 wred min = 48 40 32
+    tc 8 wred max = 64 64 64
+    tc 8 wred inv prob = 10 10 10
+    tc 8 wred weight = 9 9 9
+
+    tc 9 wred min = 48 40 32
+    tc 9 wred max = 64 64 64
+    tc 9 wred inv prob = 10 10 10
+    tc 9 wred weight = 9 9 9
+
+    tc 10 wred min = 48 40 32
+    tc 10 wred max = 64 64 64
+    tc 10 wred inv prob = 10 10 10
+    tc 10 wred weight = 9 9 9
+
+    tc 11 wred min = 48 40 32
+    tc 11 wred max = 64 64 64
+    tc 11 wred inv prob = 10 10 10
+    tc 11 wred weight = 9 9 9
+
+    tc 12 wred min = 48 40 32
+    tc 12 wred max = 64 64 64
+    tc 12 wred inv prob = 10 10 10
+    tc 12 wred weight = 9 9 9
+
 Interactive mode
 ~~~~~~~~~~~~~~~~
 
@@ -295,11 +365,11 @@ This application classifies based on the QinQ double VLAN tags and the IP destin
    | Pipe           | Config (4k)             | Traffic shaped (token bucket)                    | Inner VLAN tag                   |
    |                |                         |                                                  |                                  |
    +----------------+-------------------------+--------------------------------------------------+----------------------------------+
-   | Traffic Class  | 4                       | TCs of the same pipe services in strict priority | Destination IP address (0.0.X.0) |
+   | Traffic Class  | 13                      | TCs of the same pipe services in strict priority | Destination IP address (0.0.0.X) |
    |                |                         |                                                  |                                  |
    +----------------+-------------------------+--------------------------------------------------+----------------------------------+
-   | Queue          | 4                       | Queue of the same TC serviced in WRR             | Destination IP address (0.0.0.X) |
-   |                |                         |                                                  |                                  |
+   | Queue          | High Priority TC: 1,    | Queue of lowest priority traffic                 | Destination IP address (0.0.0.X) |
+   |                | Lowest Priority TC: 4   | class (Best effort) serviced in WRR              |                                  |
    +----------------+-------------------------+--------------------------------------------------+----------------------------------+
 
 Please refer to the "QoS Scheduler" chapter in the *DPDK Programmer's Guide* for more information about these parameters.
-- 
2.21.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [PATCH 3/3] examples/ip_pipeline: documentation update
  2019-10-29 13:19 [dpdk-dev] [PATCH 1/3] sched: documentation update Jasvinder Singh
  2019-10-29 13:19 ` [dpdk-dev] [PATCH 2/3] examples/qos_sched: " Jasvinder Singh
@ 2019-10-29 13:19 ` Jasvinder Singh
  2019-11-04 10:29   ` Dumitrescu, Cristian
  2019-11-04 10:30 ` [dpdk-dev] [PATCH 1/3] sched: " Dumitrescu, Cristian
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Jasvinder Singh @ 2019-10-29 13:19 UTC (permalink / raw)
  To: dev; +Cc: cristian.dumitrescu, john.mcnamara, marko.kovacevic

Updates documentation for traffic manager cli as per the changes
made to qos scheduler library.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
---
 doc/guides/sample_app_ug/ip_pipeline.rst | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/doc/guides/sample_app_ug/ip_pipeline.rst b/doc/guides/sample_app_ug/ip_pipeline.rst
index 4da0fcf89..56014be17 100644
--- a/doc/guides/sample_app_ug/ip_pipeline.rst
+++ b/doc/guides/sample_app_ug/ip_pipeline.rst
@@ -249,27 +249,35 @@ Traffic manager
 
   tmgr subport profile
    <tb_rate> <tb_size>
-   <tc0_rate> <tc1_rate> <tc2_rate> <tc3_rate>
+   <tc0_rate> <tc1_rate> <tc2_rate> <tc3_rate> <tc4_rate>
+   <tc5_rate> <tc6_rate> <tc7_rate> <tc8_rate>
+   <tc9_rate> <tc10_rate> <tc11_rate> <tc12_rate>
    <tc_period>
-
+   pps <n_pipes_per_subport>
+   qsize <qsize_tc0> <qsize_tc1> <qsize_tc2>
+   <qsize_tc3> <qsize_tc4> <qsize_tc5> <qsize_tc6>
+   <qsize_tc7> <qsize_tc8> <qsize_tc9> <qsize_tc10>
+   <qsize_tc11> <qsize_tc12>
 
  Add traffic manager pipe profile ::
 
   tmgr pipe profile
    <tb_rate> <tb_size>
-   <tc0_rate> <tc1_rate> <tc2_rate> <tc3_rate>
+   <tc0_rate> <tc1_rate> <tc2_rate> <tc3_rate> <tc4_rate>
+   <tc5_rate> <tc6_rate> <tc7_rate> <tc8_rate>
+   <tc9_rate> <tc10_rate> <tc11_rate> <tc12_rate>
    <tc_period>
-   <tc_ov_weight> <wrr_weight0..15>
+   <tc_ov_weight>
+   <wrr_weight0..3>
 
  Create traffic manager port ::
 
   tmgr <tmgr_name>
    rate <rate>
    spp <n_subports_per_port>
-   pps <n_pipes_per_subport>
-   qsize <qsize_tc0>
-   <qsize_tc1> <qsize_tc2> <qsize_tc3>
-   fo <frame_overhead> mtu <mtu> cpu <cpu_id>
+   fo <frame_overhead>
+   mtu <mtu>
+   cpu <cpu_id>
 
  Configure traffic manager subport ::
 
-- 
2.21.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] examples/ip_pipeline: documentation update
  2019-10-29 13:19 ` [dpdk-dev] [PATCH 3/3] examples/ip_pipeline: " Jasvinder Singh
@ 2019-11-04 10:29   ` Dumitrescu, Cristian
  0 siblings, 0 replies; 13+ messages in thread
From: Dumitrescu, Cristian @ 2019-11-04 10:29 UTC (permalink / raw)
  To: Singh, Jasvinder, dev; +Cc: Mcnamara, John, Kovacevic, Marko



> -----Original Message-----
> From: Singh, Jasvinder <jasvinder.singh@intel.com>
> Sent: Tuesday, October 29, 2019 1:20 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>; Kovacevic, Marko
> <marko.kovacevic@intel.com>
> Subject: [PATCH 3/3] examples/ip_pipeline: documentation update
> 
> Updates documentation for traffic manager cli as per the changes
> made to qos scheduler library.
> 
> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
> ---
>  doc/guides/sample_app_ug/ip_pipeline.rst | 24 ++++++++++++++++--------
>  1 file changed, 16 insertions(+), 8 deletions(-)
> 

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] examples/qos_sched: documentation update
  2019-10-29 13:19 ` [dpdk-dev] [PATCH 2/3] examples/qos_sched: " Jasvinder Singh
@ 2019-11-04 10:29   ` Dumitrescu, Cristian
  0 siblings, 0 replies; 13+ messages in thread
From: Dumitrescu, Cristian @ 2019-11-04 10:29 UTC (permalink / raw)
  To: Singh, Jasvinder, dev; +Cc: Mcnamara, John, Kovacevic, Marko



> -----Original Message-----
> From: Singh, Jasvinder <jasvinder.singh@intel.com>
> Sent: Tuesday, October 29, 2019 1:20 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>; Kovacevic, Marko
> <marko.kovacevic@intel.com>
> Subject: [PATCH 2/3] examples/qos_sched: documentation update
> 
> Update documentation according to the changes made to qos sample
> app.
> 
> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
> ---
>  doc/guides/sample_app_ug/qos_scheduler.rst | 92
> +++++++++++++++++++---
>  1 file changed, 81 insertions(+), 11 deletions(-)
> 
> diff --git a/doc/guides/sample_app_ug/qos_scheduler.rst
> b/doc/guides/sample_app_ug/qos_scheduler.rst
> index cdd29d90c..b5010657a 100644
> --- a/doc/guides/sample_app_ug/qos_scheduler.rst
> +++ b/doc/guides/sample_app_ug/qos_scheduler.rst

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH 1/3] sched: documentation update
  2019-10-29 13:19 [dpdk-dev] [PATCH 1/3] sched: documentation update Jasvinder Singh
  2019-10-29 13:19 ` [dpdk-dev] [PATCH 2/3] examples/qos_sched: " Jasvinder Singh
  2019-10-29 13:19 ` [dpdk-dev] [PATCH 3/3] examples/ip_pipeline: " Jasvinder Singh
@ 2019-11-04 10:30 ` Dumitrescu, Cristian
  2019-11-26  8:47 ` Thomas Monjalon
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Dumitrescu, Cristian @ 2019-11-04 10:30 UTC (permalink / raw)
  To: Singh, Jasvinder, dev; +Cc: Mcnamara, John, Kovacevic, Marko



> -----Original Message-----
> From: Singh, Jasvinder <jasvinder.singh@intel.com>
> Sent: Tuesday, October 29, 2019 1:20 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>; Kovacevic, Marko
> <marko.kovacevic@intel.com>
> Subject: [PATCH 1/3] sched: documentation update
> 
> Updates documentation to reflect the changes in the qos scheduler
> library.
> 
> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
> ---

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH 1/3] sched: documentation update
  2019-10-29 13:19 [dpdk-dev] [PATCH 1/3] sched: documentation update Jasvinder Singh
                   ` (2 preceding siblings ...)
  2019-11-04 10:30 ` [dpdk-dev] [PATCH 1/3] sched: " Dumitrescu, Cristian
@ 2019-11-26  8:47 ` Thomas Monjalon
  2019-11-26  9:16 ` Thomas Monjalon
  2019-11-26 14:28 ` [dpdk-dev] [PATCH v2 " Jasvinder Singh
  5 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2019-11-26  8:47 UTC (permalink / raw)
  To: Jasvinder Singh; +Cc: dev, cristian.dumitrescu, john.mcnamara, marko.kovacevic

29/10/2019 14:19, Jasvinder Singh:
> Updates documentation to reflect the changes in the qos scheduler
> library.
> 
> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
> ---
>  .../prog_guide/img/sched_hier_per_port.png    | Bin 58973 -> 0 bytes
>  .../prog_guide/img/sched_hier_per_port.svg    | Bin 0 -> 1463490 bytes
[...]
> -.. figure:: img/sched_hier_per_port.*
> +.. figure:: img/sched_hier_per_port.svg

checkpatches.sh raises this warning:

Warning in /doc/guides/prog_guide/qos_framework.rst:
Using explicit .svg extension instead of .*

Wildcard is needed because PDF build converts svg to png.

I will fix when applying.



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH 1/3] sched: documentation update
  2019-10-29 13:19 [dpdk-dev] [PATCH 1/3] sched: documentation update Jasvinder Singh
                   ` (3 preceding siblings ...)
  2019-11-26  8:47 ` Thomas Monjalon
@ 2019-11-26  9:16 ` Thomas Monjalon
  2019-11-26  9:55   ` Singh, Jasvinder
  2019-11-26 14:28 ` [dpdk-dev] [PATCH v2 " Jasvinder Singh
  5 siblings, 1 reply; 13+ messages in thread
From: Thomas Monjalon @ 2019-11-26  9:16 UTC (permalink / raw)
  To: Jasvinder Singh; +Cc: dev, cristian.dumitrescu, john.mcnamara, marko.kovacevic

29/10/2019 14:19, Jasvinder Singh:
> 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 0000000000000000000000000000000000000000..d77ee70a2dd06eedc2c10f44621902921a820806
> GIT binary patch

I missed it.
This is not a SVG file. I hope it is a mistake.
Please do not send any binary file.



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH 1/3] sched: documentation update
  2019-11-26  9:16 ` Thomas Monjalon
@ 2019-11-26  9:55   ` Singh, Jasvinder
  0 siblings, 0 replies; 13+ messages in thread
From: Singh, Jasvinder @ 2019-11-26  9:55 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: dev, Dumitrescu, Cristian, Mcnamara, John, Kovacevic, Marko



> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Tuesday, November 26, 2019 9:17 AM
> To: Singh, Jasvinder <jasvinder.singh@intel.com>
> Cc: dev@dpdk.org; Dumitrescu, Cristian <cristian.dumitrescu@intel.com>;
> Mcnamara, John <john.mcnamara@intel.com>; Kovacevic, Marko
> <marko.kovacevic@intel.com>
> Subject: Re: [dpdk-dev] [PATCH 1/3] sched: documentation update
> 
> 29/10/2019 14:19, Jasvinder Singh:
> > 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
> 0000000000000000000000000000000000000000..d77ee70a2dd06eedc2c10f446
> 21902921a820806
> > GIT binary patch
> 
> I missed it.
> This is not a SVG file. I hope it is a mistake.
> Please do not send any binary file.
> 
No clue from where this binary came. Will fix and send another version. Thanks.  

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [PATCH v2 1/3] sched: documentation update
  2019-10-29 13:19 [dpdk-dev] [PATCH 1/3] sched: documentation update Jasvinder Singh
                   ` (4 preceding siblings ...)
  2019-11-26  9:16 ` Thomas Monjalon
@ 2019-11-26 14:28 ` Jasvinder Singh
  2019-11-26 14:28   ` [dpdk-dev] [PATCH v2 2/3] examples/qos_sched: " Jasvinder Singh
                     ` (2 more replies)
  5 siblings, 3 replies; 13+ messages in thread
From: Jasvinder Singh @ 2019-11-26 14:28 UTC (permalink / raw)
  To: dev; +Cc: cristian.dumitrescu, john.mcnamara, marko.kovacevic, thomas

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

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@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


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [PATCH v2 2/3] examples/qos_sched: documentation update
  2019-11-26 14:28 ` [dpdk-dev] [PATCH v2 " Jasvinder Singh
@ 2019-11-26 14:28   ` Jasvinder Singh
  2019-11-26 14:28   ` [dpdk-dev] [PATCH v2 3/3] examples/ip_pipeline: " Jasvinder Singh
  2019-11-26 15:22   ` [dpdk-dev] [PATCH v2 1/3] sched: " Thomas Monjalon
  2 siblings, 0 replies; 13+ messages in thread
From: Jasvinder Singh @ 2019-11-26 14:28 UTC (permalink / raw)
  To: dev; +Cc: cristian.dumitrescu, john.mcnamara, marko.kovacevic, thomas

Update documentation according to the changes made to qos sample
app.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 doc/guides/sample_app_ug/qos_scheduler.rst | 92 +++++++++++++++++++---
 1 file changed, 81 insertions(+), 11 deletions(-)

diff --git a/doc/guides/sample_app_ug/qos_scheduler.rst b/doc/guides/sample_app_ug/qos_scheduler.rst
index cdd29d90c..b5010657a 100644
--- a/doc/guides/sample_app_ug/qos_scheduler.rst
+++ b/doc/guides/sample_app_ug/qos_scheduler.rst
@@ -22,7 +22,7 @@ There are two flavors of the runtime execution for this application,
 with two or three threads per each packet flow configuration being used.
 The RX thread reads packets from the RX port,
 classifies the packets based on the double VLAN (outer and inner) and
-the lower two bytes of the IP destination address and puts them into the ring queue.
+the lower byte of the IP destination address and puts them into the ring queue.
 The worker thread dequeues the packets from the ring and calls the QoS scheduler enqueue/dequeue functions.
 If a separate TX core is used, these are sent to the TX ring.
 Otherwise, they are sent directly to the TX port.
@@ -129,18 +129,28 @@ The profile file has the following format:
 
     frame overhead = 24
     number of subports per port = 1
-    number of pipes per subport = 4096
-    queue sizes = 64 64 64 64
 
     ; Subport configuration
 
     [subport 0]
+    number of pipes per subport = 4096
+    queue sizes = 64 64 64 64 64 64 64 64 64 64 64 64 64
     tb rate = 1250000000; Bytes per second
     tb size = 1000000; Bytes
     tc 0 rate = 1250000000;     Bytes per second
     tc 1 rate = 1250000000;     Bytes per second
     tc 2 rate = 1250000000;     Bytes per second
     tc 3 rate = 1250000000;     Bytes per second
+    tc 4 rate = 1250000000;     Bytes per second
+    tc 5 rate = 1250000000;     Bytes per second
+    tc 6 rate = 1250000000;     Bytes per second
+    tc 7 rate = 1250000000;     Bytes per second
+    tc 8 rate = 1250000000;     Bytes per second
+    tc 9 rate = 1250000000;     Bytes per second
+    tc 10 rate = 1250000000;     Bytes per second
+    tc 11 rate = 1250000000;     Bytes per second
+    tc 12 rate = 1250000000;     Bytes per second
+
     tc period = 10;             Milliseconds
     tc oversubscription period = 10;     Milliseconds
 
@@ -156,17 +166,32 @@ The profile file has the following format:
     tc 1 rate = 305175; Bytes per second
     tc 2 rate = 305175; Bytes per second
     tc 3 rate = 305175; Bytes per second
+    tc 4 rate = 305175; Bytes per second
+    tc 5 rate = 305175; Bytes per second
+    tc 6 rate = 305175; Bytes per second
+    tc 7 rate = 305175; Bytes per second
+    tc 8 rate = 305175; Bytes per second
+    tc 9 rate = 305175; Bytes per second
+    tc 10 rate = 305175; Bytes per second
+    tc 11 rate = 305175; Bytes per second
+    tc 12 rate = 305175; Bytes per second
     tc period = 40; Milliseconds
 
     tc 0 oversubscription weight = 1
     tc 1 oversubscription weight = 1
     tc 2 oversubscription weight = 1
     tc 3 oversubscription weight = 1
-
-    tc 0 wrr weights = 1 1 1 1
-    tc 1 wrr weights = 1 1 1 1
-    tc 2 wrr weights = 1 1 1 1
-    tc 3 wrr weights = 1 1 1 1
+    tc 4 oversubscription weight = 1
+    tc 5 oversubscription weight = 1
+    tc 6 oversubscription weight = 1
+    tc 7 oversubscription weight = 1
+    tc 8 oversubscription weight = 1
+    tc 9 oversubscription weight = 1
+    tc 10 oversubscription weight = 1
+    tc 11 oversubscription weight = 1
+    tc 12 oversubscription weight = 1
+
+    tc 12 wrr weights = 1 1 1 1
 
     ; RED params per traffic class and color (Green / Yellow / Red)
 
@@ -191,6 +216,51 @@ The profile file has the following format:
     tc 3 wred inv prob = 10 10 10
     tc 3 wred weight = 9 9 9
 
+    tc 4 wred min = 48 40 32
+    tc 4 wred max = 64 64 64
+    tc 4 wred inv prob = 10 10 10
+    tc 4 wred weight = 9 9 9
+
+    tc 5 wred min = 48 40 32
+    tc 5 wred max = 64 64 64
+    tc 5 wred inv prob = 10 10 10
+    tc 5 wred weight = 9 9 9
+
+    tc 6 wred min = 48 40 32
+    tc 6 wred max = 64 64 64
+    tc 6 wred inv prob = 10 10 10
+    tc 6 wred weight = 9 9 9
+
+    tc 7 wred min = 48 40 32
+    tc 7 wred max = 64 64 64
+    tc 7 wred inv prob = 10 10 10
+    tc 7 wred weight = 9 9 9
+
+    tc 8 wred min = 48 40 32
+    tc 8 wred max = 64 64 64
+    tc 8 wred inv prob = 10 10 10
+    tc 8 wred weight = 9 9 9
+
+    tc 9 wred min = 48 40 32
+    tc 9 wred max = 64 64 64
+    tc 9 wred inv prob = 10 10 10
+    tc 9 wred weight = 9 9 9
+
+    tc 10 wred min = 48 40 32
+    tc 10 wred max = 64 64 64
+    tc 10 wred inv prob = 10 10 10
+    tc 10 wred weight = 9 9 9
+
+    tc 11 wred min = 48 40 32
+    tc 11 wred max = 64 64 64
+    tc 11 wred inv prob = 10 10 10
+    tc 11 wred weight = 9 9 9
+
+    tc 12 wred min = 48 40 32
+    tc 12 wred max = 64 64 64
+    tc 12 wred inv prob = 10 10 10
+    tc 12 wred weight = 9 9 9
+
 Interactive mode
 ~~~~~~~~~~~~~~~~
 
@@ -295,11 +365,11 @@ This application classifies based on the QinQ double VLAN tags and the IP destin
    | Pipe           | Config (4k)             | Traffic shaped (token bucket)                    | Inner VLAN tag                   |
    |                |                         |                                                  |                                  |
    +----------------+-------------------------+--------------------------------------------------+----------------------------------+
-   | Traffic Class  | 4                       | TCs of the same pipe services in strict priority | Destination IP address (0.0.X.0) |
+   | Traffic Class  | 13                      | TCs of the same pipe services in strict priority | Destination IP address (0.0.0.X) |
    |                |                         |                                                  |                                  |
    +----------------+-------------------------+--------------------------------------------------+----------------------------------+
-   | Queue          | 4                       | Queue of the same TC serviced in WRR             | Destination IP address (0.0.0.X) |
-   |                |                         |                                                  |                                  |
+   | Queue          | High Priority TC: 1,    | Queue of lowest priority traffic                 | Destination IP address (0.0.0.X) |
+   |                | Lowest Priority TC: 4   | class (Best effort) serviced in WRR              |                                  |
    +----------------+-------------------------+--------------------------------------------------+----------------------------------+
 
 Please refer to the "QoS Scheduler" chapter in the *DPDK Programmer's Guide* for more information about these parameters.
-- 
2.21.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [PATCH v2 3/3] examples/ip_pipeline: documentation update
  2019-11-26 14:28 ` [dpdk-dev] [PATCH v2 " Jasvinder Singh
  2019-11-26 14:28   ` [dpdk-dev] [PATCH v2 2/3] examples/qos_sched: " Jasvinder Singh
@ 2019-11-26 14:28   ` Jasvinder Singh
  2019-11-26 15:22   ` [dpdk-dev] [PATCH v2 1/3] sched: " Thomas Monjalon
  2 siblings, 0 replies; 13+ messages in thread
From: Jasvinder Singh @ 2019-11-26 14:28 UTC (permalink / raw)
  To: dev; +Cc: cristian.dumitrescu, john.mcnamara, marko.kovacevic, thomas

Updates documentation for traffic manager cli as per the changes
made to qos scheduler library.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 doc/guides/sample_app_ug/ip_pipeline.rst | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/doc/guides/sample_app_ug/ip_pipeline.rst b/doc/guides/sample_app_ug/ip_pipeline.rst
index 4da0fcf89..56014be17 100644
--- a/doc/guides/sample_app_ug/ip_pipeline.rst
+++ b/doc/guides/sample_app_ug/ip_pipeline.rst
@@ -249,27 +249,35 @@ Traffic manager
 
   tmgr subport profile
    <tb_rate> <tb_size>
-   <tc0_rate> <tc1_rate> <tc2_rate> <tc3_rate>
+   <tc0_rate> <tc1_rate> <tc2_rate> <tc3_rate> <tc4_rate>
+   <tc5_rate> <tc6_rate> <tc7_rate> <tc8_rate>
+   <tc9_rate> <tc10_rate> <tc11_rate> <tc12_rate>
    <tc_period>
-
+   pps <n_pipes_per_subport>
+   qsize <qsize_tc0> <qsize_tc1> <qsize_tc2>
+   <qsize_tc3> <qsize_tc4> <qsize_tc5> <qsize_tc6>
+   <qsize_tc7> <qsize_tc8> <qsize_tc9> <qsize_tc10>
+   <qsize_tc11> <qsize_tc12>
 
  Add traffic manager pipe profile ::
 
   tmgr pipe profile
    <tb_rate> <tb_size>
-   <tc0_rate> <tc1_rate> <tc2_rate> <tc3_rate>
+   <tc0_rate> <tc1_rate> <tc2_rate> <tc3_rate> <tc4_rate>
+   <tc5_rate> <tc6_rate> <tc7_rate> <tc8_rate>
+   <tc9_rate> <tc10_rate> <tc11_rate> <tc12_rate>
    <tc_period>
-   <tc_ov_weight> <wrr_weight0..15>
+   <tc_ov_weight>
+   <wrr_weight0..3>
 
  Create traffic manager port ::
 
   tmgr <tmgr_name>
    rate <rate>
    spp <n_subports_per_port>
-   pps <n_pipes_per_subport>
-   qsize <qsize_tc0>
-   <qsize_tc1> <qsize_tc2> <qsize_tc3>
-   fo <frame_overhead> mtu <mtu> cpu <cpu_id>
+   fo <frame_overhead>
+   mtu <mtu>
+   cpu <cpu_id>
 
  Configure traffic manager subport ::
 
-- 
2.21.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 1/3] sched: documentation update
  2019-11-26 14:28 ` [dpdk-dev] [PATCH v2 " Jasvinder Singh
  2019-11-26 14:28   ` [dpdk-dev] [PATCH v2 2/3] examples/qos_sched: " Jasvinder Singh
  2019-11-26 14:28   ` [dpdk-dev] [PATCH v2 3/3] examples/ip_pipeline: " Jasvinder Singh
@ 2019-11-26 15:22   ` Thomas Monjalon
  2 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2019-11-26 15:22 UTC (permalink / raw)
  To: Jasvinder Singh; +Cc: dev, cristian.dumitrescu, john.mcnamara, marko.kovacevic

26/11/2019 15:28, Jasvinder Singh:
> Updates documentation to reflect the changes in the qos scheduler
> library.
> 
> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

Applied, thanks





^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-11-26 15:22 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-29 13:19 [dpdk-dev] [PATCH 1/3] sched: documentation update Jasvinder Singh
2019-10-29 13:19 ` [dpdk-dev] [PATCH 2/3] examples/qos_sched: " Jasvinder Singh
2019-11-04 10:29   ` Dumitrescu, Cristian
2019-10-29 13:19 ` [dpdk-dev] [PATCH 3/3] examples/ip_pipeline: " Jasvinder Singh
2019-11-04 10:29   ` Dumitrescu, Cristian
2019-11-04 10:30 ` [dpdk-dev] [PATCH 1/3] sched: " Dumitrescu, Cristian
2019-11-26  8:47 ` Thomas Monjalon
2019-11-26  9:16 ` Thomas Monjalon
2019-11-26  9:55   ` Singh, Jasvinder
2019-11-26 14:28 ` [dpdk-dev] [PATCH v2 " Jasvinder Singh
2019-11-26 14:28   ` [dpdk-dev] [PATCH v2 2/3] examples/qos_sched: " Jasvinder Singh
2019-11-26 14:28   ` [dpdk-dev] [PATCH v2 3/3] examples/ip_pipeline: " Jasvinder Singh
2019-11-26 15:22   ` [dpdk-dev] [PATCH v2 1/3] sched: " Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).