HQoS Configuration
Basic QoS Configuration Elements
The figure below shows the dependencies between the various QoS configuration elements.

To configure QoS, perform the following steps which include creating a QoS profile and enabling QoS on a Subscriber-Interface or L3-Interface.
-
Define a QoS profile with classifier, multifield-classifier, class-policer-map, policer, class-queue-map, scheduler-map, and remark-map based on SLAs.
-
Create a Behavioral Aggregate (BA) and/or Multifield (MF) classifier to classify the network traffic at the ingress.
-
Create a policer to police the classified traffic at the ingress with the CIR/PIR defined.
-
Create necessary class-to-policer-map to map the classes to policer levels (mandatory for policing).
-
Create necessary queues with proper size to queue the classified traffic before egressing the traffic.
-
Create queue groups and define queue numbers (1/4/8).
NOTE: For the system to initialize with a single queue in a Queue-Group, a system reboot is required. -
Create the necessary class-to-queue map to map the classes to queues (mandatory for queuing).
-
Specify scheduler(s) with type as required.
-
(Optional) Create the shaper (low-flow / high-flow) and attach it to queue(s) and/or scheduler(s).
-
Specify a scheduler map to define a set of relationships between parent (scheduler or port) and child (queue/queue-group or scheduler) at the egress.
-
(optional) Create Remark-Map for QoS field remarking of the outgoing packet.
-
For the downstream traffic, map the MPLS EXP classifier either to an instance or global entity and/or the Multifield (MF) classifier as a global entity (refer to the figure above.)
-
(optional) Map the MPLS-IPv4/IPv6 remark-map either to an instance or configure it as a global entity.
-
For business services QoS, service-group scheduler is connected to PON scheduler or directly to an IFP.
NOTE: The service group QoS profile is attached to an interface-set.
Priority propagation is enabled by default. To disable the Priority Propagation, we recommend doing this at the beginning and not during an active session. |
Hierarchical QoS
Basic Quality of Service (QoS) is designed to provide a single level of traffic scheduling. In contrast, Hierarchical Quality of Service (HQoS) offers a more sophisticated approach to traffic treatment, utilizing multiple levels of scheduling in a hierarchical manner based on Service Level Agreements (SLAs).
The figure below shows the additional dependencies for Multi-level HQoS.

Below are the figures depicting an example of scheduling hierarchy.


To configure HQoS, map the level-3 to level-5 hierarchy in multi-level HQoS to a different scheduler to represent it and map it to the physical interface.
Configuration Syntax and Commands
The configurations in this section exemplify the setup of Hierarchical Quality of Service (HQoS) for a subscriber with a residential profile and a Service Level Agreement (SLA) of 20Mbps upstream and downstream. The setup also encompasses four different service types, namely Best Effort(BE), Low-Delay(LD), Low-Loss(LL) and Voice(VO). Different services are assigned to various policer levels for upstream traffic based on their respective traffic classes. Meanwhile, for downstream traffic, these same services are assigned to different queues depending on their traffic class. The traffic class is determined by the configuration of either the BA or MF classifier.
The following sections describe the HQoS configuration syntax and commands.
Configuring QoS Profiles
A profile configuration defines the QoS profile that is installed on the subscriber or L3 interfaces. The following sections explain the different elements of the QoS profiles that you can create and attach.
Use the following CLI syntax to configure a QoS profile:
Attribute | Description |
---|---|
|
Specifies the name of the QoS profile |
|
Specifies the name of the BA classifier |
|
Specifies the name of the multifield classifier |
|
Specifies the name of the map that associates a class with a policer level. |
|
Specifies the policer name |
|
Specifies the name of the map that associates a class with a queue |
|
Specifies the name of the scheduler map |
|
Specifies the name of the remark map |
|
Specifies the name of the egress Class Policer Map. |
|
Specifies the name of the egress policer. |
In the following example, the QoS profile residential
is configured with classifier-name subs-pbit-class
, class-policer-map policer-map-residential
, policer policer-residential
, class-queue-map subs-4queues
, scheduler-map subs-4queues-residential
, and remark-map subs-remarking-residential
.
set forwarding-options class-of-service profile residential set forwarding-options class-of-service profile residential classifier-name subs-pbit-class set forwarding-options class-of-service profile residential class-queue-map-name subs-4queues set forwarding-options class-of-service profile residential remark-map-name subs-remarking-residential set forwarding-options class-of-service profile residential policer-name policer-residential set forwarding-options class-of-service profile residential class-policer-map-name policer-map-residential set forwarding-options class-of-service profile residential scheduler-map-name subs-4queues-residential commit
The following example shows the QoS profile configuration of the residential
profile:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service profile { "rtbrick-config:profile": [ { "profile-name": "residential", "classifier-name": "subs-pbit-class", "class-queue-map-name": "subs-4queues", "remark-map-name": "subs-remarking-residential", "policer-name": "policer-residential", "class-policer-map-name": "policer-map-residential", "scheduler-map-name": "subs-4queues-residential" } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Behavior Aggregate (BA) Classifier Configuration
Use the following CLI syntax to configure the BA classifier:
Attribute | Description |
---|---|
|
Specifies the classifier name |
|
Specifies the type of traffic to classify, that is, ipv4-tos, ipv6-tc, ieee-802.1, ieee-802.1-inner, exp |
|
Specifies the code-point value based on the match-type |
|
Specifies the traffic class as class-0, class-1, class-2, class-3, class-4, class-5, class-6, and class-7 |
|
Specifies the remark-codepoint that is used for remarking |
The following example configures the BA classifier subs-pbit-class
for traffic ieee-802.1
with a match code point 2
classified as class class-1
.
set forwarding-options class-of-service classifier subs-pbit-class match-type ieee-802.1 codepoint 2 class class-1 commit
The derived class and the expected codepoint must match for the traffic type being classified. |
The following example shows BA classifier configuration.
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service classifier { "rtbrick-config:classifier": [ { "classifier-name": "subs-pbit-class", "match-type": [ { "match-type": "ieee-802.1", "codepoint": [ { "codepoint": 2, "class": "class-1" } ] } ] } ] }
The following configuration sets ieee-802.1-inner
classifier match-type.
set forwarding-options class-of-service classifier subs-inner-pbit set forwarding-options class-of-service classifier subs-inner-pbit match-type ieee-802.1-inner set forwarding-options class-of-service classifier subs-inner-pbit match-type ieee-802.1-inner codepoint 2 set forwarding-options class-of-service classifier subs-inner-pbit match-type ieee-802.1-inner codepoint 2 class class-1
The following example shows the configuration for the ieee-802.1-inner
classifier match-type.
supervisor@rtbrick>: cfg> show config forwarding-options class-of-service classifier subs-inner-pbit { "rtbrick-config:classifier": [ { "classifier-name": "subs-inner-pbit", "match-type": [ { "match-type": "ieee-802.1-inner", "codepoint": [ { "codepoint": 2, "class": "class-1" } ] } ] } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Multifield Classifier (MFC) Configuration
Use the following CLI syntax to configure the multifield classifier.
Starting from Release 20.10.2, Multifield Classifier configuration requires explicit use of ordinal keywords. |
Attribute | Description |
---|---|
|
Specifies the l3v4 / l3v6 ACL rule for multifield classifier configurations. For more information on configuring the ACL match rules, see the sections below. |
To access the RESTCONF API that corresponds to this CLI, click
here.
IPv4 ACL Configuration Configuration
Use the following CLI syntax to configure the IPv4 ACL Match Configuration for the multifield classifier:
Attribute | Description |
---|---|
|
Specifies the multifield classifier rule name |
|
Specifies the ordinal that is used for traffic policy rule referencing |
|
Specifies the destination IPv4 prefix address |
|
Specifies the destination IPv4 prefix list name |
|
Specifies the acl l3 traffic direction match |
|
Specifies the IP protocol such as UDP or TCP |
|
Specifies the Layer 4 destination port number |
|
Specifies the IPv4 ToS value |
|
Specifies the IPv4 Differentiated Services Code Point (DSCP) value |
|
Specifies the forward class name |
|
Specifies the MPLS traffic |
|
Specifies the source IPv4 prefix address |
|
Specifies the source IPv4 prefix list name |
|
Specifies the Layer 4 source port number |
|
class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7 <<<<<<< Updated upstream |
action remark-codepoint <remark-codepoint> |
Specifies the remark-map codepoint value. Range: 0-254. |
action remark-dscp-codepoint <remark-dscp-codepoint> |
Specifies the remark DSCP codepoint value. Range: 0-63. ======= |
`action remark-codepoint <remark-codepoint> |
remark-dscp-codepoint <action remark-dscp-codepoint>` |
Multifield classification commonly matches on IP address fields, the IP protocol type field, or the port number in the UDP or TCP pseudo-header field.
The l3v4
acl-type multifield classifier is configured with a qualifier/match based on ipv4-tos
(128, 160) and source-ipv4-prefix
(132.1.1.3/32) with action as forward-class
(class-0,class-1).
set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 1001 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 1001 match ipv4-tos 128 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 1001 match source-ipv4-prefix 132.1.1.3/32 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 1001 action forward-class class-0 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 1002 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 1002 match ipv4-tos 160 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 1002 match source-ipv4-prefix 132.1.1.3/32 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 1002 action forward-class class-1 commit
The following example shows the IPv4 Match Configuration for the multifield classifier:
supervisor@rtbrick.net: cfg> show config forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc { "rtbrick-config:rule": [ { "rule-name": "global_mfc", "ordinal": [ { "ordinal-value": 1001, "match": { "ipv4-tos": 128, "source-ipv4-prefix": "132.1.1.3/32" }, "action": { "forward-class": "class-0" } }, { "ordinal-value": 1002, "match": { "ipv4-tos": 160, "source-ipv4-prefix": "132.1.1.3/32" }, "action": { "forward-class": "class-1" } } ] } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
IPv6 ACL Configuration Configuration
Use the following CLI syntax to configure the IPv6 ACL match configuration for the multifield classifier:
Attribute | Description |
---|---|
|
Specifies the multifield classifier rule name |
|
Specifies the ordinal that is used for traffic rule referencing |
|
Specifies the destination IPv6 prefix address |
|
Specifies the destination IPv6 prefix list name |
|
Specifies the IP protocol such as UDP or TCP |
|
Specifies the Layer 4 destination port number |
|
Specifies the IPv6 traffic class value |
|
Specifies the forward class name |
|
Specifies the MPLS traffic |
|
Specifies the source IPv6 prefix address |
|
Specifies the source IPv6 prefix list name |
|
Specifies the Layer 4 source port number |
|
class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7 <<<<<<< Updated upstream |
action remark-codepoint <remark-codepoint> |
Specifies the remark-map codepoint value. Range: 0-254. |
action remark-dscp-codepoint <remark-dscp-codepoint> |
Specifies the remark DSCP codepoint value. Range: 0-63. ======= |
|
Specifies the remark-map codepoint value >>>>>>> Stashed changes |
In the following example, the l3v6
acl-type multifield classifier is configured with qualifier/match based on ipv6-tc
(128, 160) and source-ipv6-prefix
(132:1:1::3/32) with action as forward-class
(class-0,class-1).
set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 match ipv6-tc 128 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 match source-ipv6-prefix 132::1::3/32 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 action forward-class class-0 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 match ipv6-tc 160 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 match source-ipv6-prefix 132:1:1::3/32 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 action forward-class class-1 commit
The following example shows the IPv6 match configuration for the multifield classifier:
supervisor@rtbrick.net: cfg> show config forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc { "rtbrick-config:rule": [ { "rule-name": "global_mfc", "ordinal": [ { "ordinal-value": 1001, "match": { "ipv6-tc": 128, "source-ipv6-prefix": "132:1:1::3/32" }, "action": { "forward-class": "class-0" } }, { "ordinal-value": 1002, "match": { "ipv6-tc": 160, "source-ipv6-prefix": "132:1:1::3/32" }, "action": { "forward-class": "class-1" } } ] } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
IPv4/IPv6 Priority Configuration
Use the following CLI syntax to configure the IPv4/IPv6 priority configuration:
Attribute | Description <<<<<<< Updated upstream |
---|---|
<rule-name> |
Specifies the multifield classifier rule name. |
ordinal <ordinal-value> |
Specifies the ordinal that is used for traffic policy rule referencing. |
ordinal <ordinal-value> <priority> |
Specify the ACL priority value. Range: 100-20000. The default priority value for multifield-classifier ACL is 500. ======= |
|
Specifies the multifield classifier rule name |
|
Specifies the ordinal that is used for traffic policy rule referencing |
|
Specify the ACL priority value. Range: 0 - 65535. >>>>>>> Stashed changes |
The following example configures the l3v6
acl-type multifield classifier with qualifier/match based on ipv6-tc
(128) and source-ipv6-prefix
(132:1:1::3/32) with action as forward-class
(class-0,class-1) along with priority
value (100, 200). When there are multiple qualifiers or actions, the one with the higher priority takes precedence over the others.
set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 match ipv6-tc 128 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 match source-ipv6-prefix 132::1::3/32 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 priority 100 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1001 action forward-class class-0 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 match ipv6-tc 128 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 match source-ipv6-prefix 132:1:1::3/32 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 priority 200 set forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc ordinal 1002 action forward-class class-1 commit
The following example shows the IPv4 priority configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service multifield-classifier acl l3v4 rule rtb_mfc supervisor@rtbrick.net: cfg> show config forwarding-options class-of-service multifield-classifier acl l3v6 rule global_mfc { "rtbrick-config:rule": [ { "rule-name": "global_mfc", "ordinal": [ { "ordinal-value": 1001, "priority": 100, "match": { "ipv6-tc": 128, "source-ipv6-prefix": "132:1:1::3/32" }, "action": { "forward-class": "class-0" } }, { "ordinal-value": 1002, "priority": 200, "match": { "ipv6-tc": 160, "source-ipv6-prefix": "132:1:1::3/32" }, "action": { "forward-class": "class-1" } } ] } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
L2 ACL Priority Bit Egress Classifier Configuration
Use the following CLI syntax to configure the L2 ACL priority bit egress classifier.
Attribute | Description |
---|---|
|
Specifies the l2 ACL rule for egress priority bit classifier configurations. For more information on configuring the ACL match rules, see the sections below. |
Service VLAN Priority Configuration
Use the following CLI syntax to configure the L2 ACL Match Configuration for the egress priority bit classifier:
Attribute | Description |
---|---|
|
Specifies the L2 ACL classifier rule name |
|
Specifies the ordinal that is used for traffic rule referencing |
|
Specifies the direction of L2 traffic |
|
Specifies the outer VLAN priority of the L2 service traffic |
|
class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7 |
L2 ACL classification commonly matches on layer-2 fields such as service-inner-vlan-priority, service-outer-vlan-priority, interface-meta-data, and direction
The l2 acl type egress priority bit classifier is configured with a qualifier/match based on service-inner-vlan-priority ` (0-7), interface-meta-data (type-1), direction (ingress), service-outer-vlan-priority
(0-7) with action as forward-class
(class-0 to class-7).
set forwarding-options acl l2 rule evpn_vpws ordinal 0 set forwarding-options acl l2 rule evpn_vpws ordinal 0 match direction ingress set forwarding-options acl l2 rule evpn_vpws ordinal 0 match service-outer-vlan-priority 0 set forwarding-options acl l2 rule evpn_vpws ordinal 0 match interface-meta-data type-1 set forwarding-options acl l2 rule evpn_vpws ordinal 0 action forward-class class-0 set forwarding-options acl l2 rule evpn_vpws ordinal 1 set forwarding-options acl l2 rule evpn_vpws ordinal 1 match direction ingress set forwarding-options acl l2 rule evpn_vpws ordinal 1 match service-outer-vlan-priority 1 set forwarding-options acl l2 rule evpn_vpws ordinal 1 match interface-meta-data type-1 set forwarding-options acl l2 rule evpn_vpws ordinal 1 action forward-class class-1 commit
The following example shows the L2 ACL P-Bit Egress Classifier configuration:
supervisor@rtbrick>multiservice-edge.rtbrick.net: cfg> show config forwarding-options acl l2 rule evpn_vpws ordinal { "rtbrick-config:ordinal": [ { "ordinal-value": 0, "match": { "direction": "ingress", "service-outer-vlan-priority": 0, "interface-meta-data": "type-1" }, "action": { "forward-class": "class-0" } }, { "ordinal-value": 1, "match": { "direction": "ingress", "service-outer-vlan-priority": 1, "interface-meta-data": "type-1" }, "action": { "forward-class": "class-1" } } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Policer Configuration
Use the following CLI syntax to configure the QoS policer:
Attribute | Description | ||
---|---|---|---|
|
Specifies the policer name. |
||
levels <levels> |
Specifies levels in the policer. There is only support for the policer levels 1 and 4.
|
||
|
Specifies the policer type. |
||
|
Specifies the policer flags. |
||
|
Specifies the committed information rate (CIR) in Kilobits per second (Kbps) for level-1. The same is applicable for level-2 to level-4. |
||
|
Specifies the peak information rate (PIR) in Kilobits per second (Kbps) for level-1. The same is applicable for level-2 to level-4. |
||
|
Specifies the Committed burst size (CBS) in Kilobits per second (Kbps) for level-1. The same is applicable for level-2 to level-4. |
||
|
Specifies the peak burst size (PBS) in Kilobits per second (Kbps) for level-1. The same is applicable for level-2 to level-4. |
||
|
Specifies the maximum for the level-1 committed information rate (CIR) in kilobits per second (Kbps). The same is applicable for level-2 to level-4. |
||
|
Specifies the maximum for the level-1 peak information rate (PIR) in Kilobits per second (Kbps). The same is applicable for level-2 to level-4. |
||
|
Specifies the mode of the QoS policer. Supported modes:
|
The following example configures the QoS policer policer-residential
with multi-level policers (levels=4), CIR, PIR rates, and burst sizes (CBS, PBS) for each level (level-1, level-2, level-3 and level-4). Also, two-rate-three-color
policer type and color-blind as the default configuration. The four-level Policer configuration is as follows:
-
Level-1(cir=2Mbps, pir=2.5Mbps, cbs=1000, pbs=1000)
-
Level-2(cir=3Mbps, pir=3.5Mbps, cbs=1000, pbs=1000)
-
Level-3(cir=4Mbps, pir=4.5Mbps, cbs=1000, pbs=1000)
-
Level-4(cir=1Mbps, pir=1.5Mbps, cbs=1000, pbs=1000)
The following configurations show policer configurations for levels=4.
set forwarding-options class-of-service policer policer-residential set forwarding-options class-of-service policer policer-residential level1-rates cir 2000 set forwarding-options class-of-service policer policer-residential level1-rates cbs 1000 set forwarding-options class-of-service policer policer-residential level1-rates pir 2500 set forwarding-options class-of-service policer policer-residential level1-rates pbs 1000 set forwarding-options class-of-service policer policer-residential level2-rates cir 3000 set forwarding-options class-of-service policer policer-residential level2-rates cbs 1000 set forwarding-options class-of-service policer policer-residential level2-rates pir 3500 set forwarding-options class-of-service policer policer-residential level2-rates pbs 1000 set forwarding-options class-of-service policer policer-residential level3-rates cir 4000 set forwarding-options class-of-service policer policer-residential level3-rates cbs 1000 set forwarding-options class-of-service policer policer-residential level3-rates pir 4500 set forwarding-options class-of-service policer policer-residential level3-rates pbs 1000 set forwarding-options class-of-service policer policer-residential level4-rates cir 1000 set forwarding-options class-of-service policer policer-residential level4-rates cbs 1000 set forwarding-options class-of-service policer policer-residential level4-rates pir 1500 set forwarding-options class-of-service policer policer-residential level4-rates pbs 1000 set forwarding-options class-of-service policer policer-residential levels 4 set forwarding-options class-of-service policer policer-residential type two-rate-three-color commit
The following example shows the QoS policer level (levels=4) rates configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service policer policer-residential { "rtbrick-config:policer": [ { "policer-name": "policer-residential", "level1-rates": { "cir": 2000, "cbs": 1000, "pir": 2500, "pbs": 1000 }, "level2-rates": { "cir": 3000, "cbs": 1000, "pir": 3500, "pbs": 1000 }, "level3-rates": { "cir": 4000, "cbs": 1000, "pir": 4500, "pbs": 1000 }, "level4-rates": { "cir": 1000, "cbs": 1000, "pir": 1500, "pbs": 1000 }, "levels": 4, "type": "two-rate-three-color" } ] }
The following configurations show policer configurations for levels=1.
set forwarding-options class-of-service policer policer-residential set forwarding-options class-of-service policer policer-residential level1-rates cir 2000 set forwarding-options class-of-service policer policer-residential level1-rates cbs 1000 set forwarding-options class-of-service policer policer-residential level1-rates pir 2500 set forwarding-options class-of-service policer policer-residential level1-rates pbs 1000 set forwarding-options class-of-service policer policer-residential levels 1 set forwarding-options class-of-service policer policer-residential type two-rate-three-color commit
The following example shows the QoS policer level rates (levels=1) configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service policer policer-residential { "rtbrick-config:policer": [ { "policer-name": "policer-residential", "level1-rates": { "cir": 2000, "cbs": 1000, "pir": 2500, "pbs": 1000 } "levels": 1, "type": "two-rate-three-color" } ] }
The following example shows the Large Bucket mode configuration in QoS Policer.
set forwarding-options class-of-service policer policer-residential set forwarding-options class-of-service policer policer-residential level1-rates set forwarding-options class-of-service policer policer-residential level1-rates cir 700000000 set forwarding-options class-of-service policer policer-residential level1-rates cbs 2088960 set forwarding-options class-of-service policer policer-residential level1-rates pir 700000000 set forwarding-options class-of-service policer policer-residential level1-rates pbs 2088960 set forwarding-options class-of-service policer policer-residential level2-rates set forwarding-options class-of-service policer policer-residential level2-rates cir 3000 set forwarding-options class-of-service policer policer-residential level2-rates cbs 1000 set forwarding-options class-of-service policer policer-residential level2-rates pir 3500 set forwarding-options class-of-service policer policer-residential level2-rates pbs 1000 set forwarding-options class-of-service policer policer-residential level3-rates set forwarding-options class-of-service policer policer-residential level3-rates cir 4000 set forwarding-options class-of-service policer policer-residential level3-rates cbs 1000 set forwarding-options class-of-service policer policer-residential level3-rates pir 4500 set forwarding-options class-of-service policer policer-residential level3-rates pbs 1000 set forwarding-options class-of-service policer policer-residential level4-rates set forwarding-options class-of-service policer policer-residential level4-rates cir 1000 set forwarding-options class-of-service policer policer-residential level4-rates cbs 1000 set forwarding-options class-of-service policer policer-residential level4-rates pir 1500 set forwarding-options class-of-service policer policer-residential level4-rates pbs 1000 set forwarding-options class-of-service policer policer-residential levels 4 set forwarding-options class-of-service policer policer-residential type two-rate-three-color set forwarding-options class-of-service policer policer-residential mode large-bucket
To access the RESTCONF API that corresponds to this CLI, click
here.
Class-Policer-Map Configuration
Use the following CLI syntax to configure the Class-Policer-Map:
Attribute | Description |
---|---|
|
Specifies the class policer map name, |
|
Specifies the class such as class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7 |
|
Specifies the policer levels. The supported levels are: level-1, level-2, level-3, and level-4 |
Below is an example configuration of the class-policer-map, which sets up level-1 to level-4 policer levels.
-
class-0 mapped to policer level-1
-
class-1 mapped to policer level-2
-
class-2 mapped to policer level-3
-
class-3 mapped to policer level-4
set forwarding-options class-of-service class-policer-map policer-map-residential class class-0 policer-level level-1 set forwarding-options class-of-service class-policer-map policer-map-residential class class-1 policer-level level-2 set forwarding-options class-of-service class-policer-map policer-map-residential class class-2 policer-level level-3 set forwarding-options class-of-service class-policer-map policer-map-residential class class-3 policer-level level-4 commit
The following example shows the class-policer-map configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service class-policer-map policer-map-l2tp { "rtbrick-config:class-policer-map": [ { "class-policer-map-name": "policer-map-residential", "class": [ { "class": "class-0", "policer-level": "level-1" }, { "class": "class-1", "policer-level": "level-2" }, { "class": "class-2", "policer-level": "level-3" }, { "class": "class-3", "policer-level": "level-4" } ] } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Queue Configuration
Use the following CLI syntax to configure a queue:
Attribute | Description |
---|---|
|
Specifies the queue name |
|
Specifies the size of the queue in bytes |
|
(Optional) Specifies the shaper that is associated with the queue. |
|
Specifies the minimum average queue size to apply WRED in bytes |
|
Specifies the maximum average queue size to apply WRED in bytes |
|
WRED drop probability applied at the maximum threshold |
|
Specifies the header compensation value |
|
Specifies whether the header compensation value is to be decremented. |
The following example configures four queues with different traffic streams named BE_SUBS
, LD_SUBS
, LL_SUBS
and VO_SUBS
with queue attributes queue-size, queue header-compensation & queue shaper for Best Effort(BE), Low-Delay(LD), Low-Loss(LL) and Voice(VO) Queues.
set forwarding-options class-of-service queue BE_SUBS set forwarding-options class-of-service queue BE_SUBS queue-size 375000 set forwarding-options class-of-service queue BE_SUBS header-compensation bytes 22 set forwarding-options class-of-service queue BE_SUBS header-compensation decrement true set forwarding-options class-of-service queue LD_SUBS set forwarding-options class-of-service queue LD_SUBS queue-size 625000 set forwarding-options class-of-service queue LD_SUBS header-compensation bytes 22 set forwarding-options class-of-service queue LD_SUBS header-compensation decrement true set forwarding-options class-of-service queue LL_SUBS set forwarding-options class-of-service queue LL_SUBS queue-size 625000 set forwarding-options class-of-service queue LL_SUBS header-compensation bytes 22 set forwarding-options class-of-service queue LL_SUBS header-compensation decrement true set forwarding-options class-of-service queue VO_SUBS set forwarding-options class-of-service queue VO_SUBS queue-size 156250 set forwarding-options class-of-service queue VO_SUBS header-compensation bytes 22 set forwarding-options class-of-service queue VO_SUBS header-compensation decrement true set forwarding-options class-of-service queue VO_SUBS shaper-name shaper_VO commit
The following example shows the queue configuration:
supervisor@DT-STD-23-2402>bm14-tst.fsn.rtbrick.net: cfg> show config forwarding-options class-of-service queue { "rtbrick-config:queue": [ { "queue-name": "BE_SUBS", "queue-size": 375000, "header-compensation": { "bytes": 22, "decrement": "true" } }, { "queue-name": "LD_SUBS", "queue-size": 625000, "header-compensation": { "bytes": 22, "decrement": "true" } }, { "queue-name": "LL_SUBS", "queue-size": 625000, "header-compensation": { "bytes": 22, "decrement": "true" } }, { "queue-name": "VO_SUBS", "queue-size": 156250, "shaper-name": "shaper_VO", "header-compensation": { "bytes": 22, "decrement": "true" } } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Queue-Group Configuration
Queue group size: 1 or 4 or 8
Use the following CLI syntax to configure a queue group:
Attribute | Description |
---|---|
|
User-defined name for the queue-group |
|
Specifies the number of queues in a Queue Group |
The following examples configure the queue group with queue numbers 1 and 4.
set forwarding-options class-of-service queue-group subs-4queues queue-numbers 1 commit
The following example shows the queue group configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service queue-group { "rtbrick-config:queue-group": [ { "queue-group-name": "subs-4queues", "queue-numbers": 1 } ] }
set forwarding-options class-of-service queue-group subs-4queues queue-numbers 4
The following example shows the queue group configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service queue-group { "rtbrick-config:queue-group": [ { "queue-group-name": "subs-4queues", "queue-numbers": 4 } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Class-Queue-Map Configuration
Use the following CLI syntax to configure the class-queue-map:
Attribute | Description |
---|---|
|
Specifies the class queue map name |
|
Specifies the class such as class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7 |
|
Specifies the queue name |
The following example configures the class-queue-map for the specific classes and queues:
-
class-0 mapped to queue BE_SUBS
-
class-1 mapped to queue LD_SUBS
-
class-2 mapped to queue LL_SUBS
-
class-3 mapped to queue VO_SUBS
set forwarding-options class-of-service class-queue-map subs-4queues class class-0 queue-name BE_SUBS set forwarding-options class-of-service class-queue-map subs-4queues class class-1 queue-name LD_SUBS set forwarding-options class-of-service class-queue-map subs-4queues class class-2 queue-name LL_SUBS set forwarding-options class-of-service class-queue-map subs-4queues class class-3 queue-name VO_SUBS commit
The following example shows the class-queue-map configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service class-queue-map { "rtbrick-config:class-queue-map": [ { "class-queue-map-name": "subs-4queues", "class": [ { "class-type": "class-0", "queue-name": "BE_SUBS" }, { "class-type": "class-1", "queue-name": "LD_SUBS" }, { "class-type": "class-2", "queue-name": "LL_SUBS" }, { "class-type": "class-3", "queue-name": "VO_SUBS" } ] } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Scheduler Configuration
Use the following CLI syntax to configure a scheduler:
Attribute | Description |
---|---|
|
User-defined Scheduler Name |
|
(Optional) User-defined Shaper Name |
|
Specifies the Scheduler Type |
|
(Optional) keyword to specify the scheduler as composite type |
The following example configures two schedulers: subs-4queues
with scheduler type strict_priority
for the Subscriber level, and pon0
with scheduler type fair_queueing
for PON/GPON level.
set forwarding-options class-of-service scheduler subs-4queues set forwarding-options class-of-service scheduler subs-4queues shaper shaper_session set forwarding-options class-of-service scheduler subs-4queues type strict_priority set forwarding-options class-of-service scheduler pon0 set forwarding-options class-of-service scheduler pon0 type fair_queueing commit
The following example shows the QoS scheduler configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service scheduler { "rtbrick-config:scheduler": [ { "scheduler-name": "pon0", "type": "fair_queueing" }, { "scheduler-name": "subs-4queues", "shaper-name": "shaper_session", "type": "strict_priority" } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Priority Propagation
Use the following CLI syntax to configure priority propagation:
The following example enables priority propagation at the global level to operate schedulers in dual-flow mode, with high-priority and low-priority flows.
set forwarding-options class-of-service global priority-propagation enable
The following example shows the priority propagation:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service global { "rtbrick-config:global": { "priority-propagation": "enable" } }
Shaper Configuration
Use the following CLI syntax to configure a shaper:
Command Arguments
Attribute | Description |
---|---|
|
User-defined shaper name |
|
High flow shaping rate in kilobits per second |
|
Configures the precision of high-flow shapers, which can only be used with session shapers. |
|
Low flow shaping rate in kilobits per second |
|
The following example configures the shaper high-flow and low-flow rates for Subscriber Session Level with shaper-name shaper_session
and Queue Level with shaper-name shaper_VO
.
set forwarding-options class-of-service shaper shaper_session set forwarding-options class-of-service shaper shaper_session shaping-rate-high 10000 set forwarding-options class-of-service shaper shaper_session shaping-rate-low 100 set forwarding-options class-of-service shaper shaper_VO set forwarding-options class-of-service shaper shaper_VO shaping-rate-high 2000 set forwarding-options class-of-service shaper shaper_VO shaping-rate-low 0 commit
The following example shows the shaper configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service shaper { "rtbrick-config:shaper": [ { "shaper-name": "shaper_VO", "shaping-rate-high": 2000, "shaping-rate-low": 0 }, { "shaper-name": "shaper_session", "shaping-rate-high": 10000, "shaping-rate-low": 100 } ] }
With the following shaper configuration, the low flow is limited to 1Mbps and the high flow is limited to 512Kbps. This results in a session rate of approximately 1.5Mbps when 10Mbps is distributed between high and low flows.
set forwarding-options class-of-service shaper session-shaper set forwarding-options class-of-service shaper session-shaper shaping-rate-high- precision true set forwarding-options class-of-service shaper session-shaper shaping-rate-high 512 set forwarding-options class-of-service shaper session-shaper shaping-rate-low 1000
The following example shows the shaper configuration, where the high precision shaping is enabled:
{ "rtbrick-config:shaper": [ { "shaper-name": "session-shaper", "shaping-rate-high": 512, "shaping-rate-high-precision": "true", "shaping-rate-low": 1000 } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Scheduler-Map Configuration
Use the following CLI syntax to configure a Scheduler-Map:
Command arguments
Attribute | Description |
---|---|
|
Specifies the name of the scheduler-map |
|
Specifies the name of the scheduler |
|
Specifies the name of the queue-group |
|
Specifies the name of the queue |
|
Specifies the type of connection point, such as no_priority, strict_priority_0, strict_priority_1, strict_priority_2, strict_priority |
|
(Optional) Specifies the type of the parent flow, that is high-flow or low-flow. |
|
Specifies the name of the parent scheduler |
`queue-group-name <group-name> queue-name <name> port-connection |
<port-connection-type>` |
Specifies the type of port connection, that is, queue_to_port or scheduler_to_port |
|
The following example configures a scheduler map for OLT with schedmap-olt
and for subscribers with subs-4queues-residential
. OLT scheduler-map schedmap-olt
is directly connected to the physical port and subs-4queues-residential
connects different queues (BE_SUBS, LL_SUBS,LD_SUBS,VO_SUBS) with different connection-points(strict_priority_3, strict_priority_2, strict_priority_1, strict_priority_0).
set forwarding-options class-of-service scheduler-map schedmap-olt set forwarding-options class-of-service scheduler-map schedmap-olt scheduler-name pon0 set forwarding-options class-of-service scheduler-map schedmap-olt scheduler-name pon0 port-connection scheduler_to_port set forwarding-options class-of-service scheduler-map subs-4queues-residential set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name BE_SUBS set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name BE_SUBS parent-flow high-flow set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name BE_SUBS parent-scheduler-name subs-4queues set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name BE_SUBS connection-point strict_priority_3 set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name LD_SUBS set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name LD_SUBS parent-flow high-flow set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name LD_SUBS parent-scheduler-name subs-4queues set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name LD_SUBS connection-point strict_priority_1 set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name LL_SUBS set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name LL_SUBS parent-flow high-flow set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name LL_SUBS parent-scheduler-name subs-4queues set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name LL_SUBS connection-point strict_priority_2 set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name VO_SUBS set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name VO_SUBS parent-flow high-flow set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name VO_SUBS parent-scheduler-name subs-4queues set forwarding-options class-of-service scheduler-map subs-4queues-residential queue-group-name subs-4queues queue-name VO_SUBS connection-point strict_priority_0 set forwarding-options class-of-service scheduler-map subs-4queues-residential scheduler-name subs-4queues set forwarding-options class-of-service scheduler-map subs-4queues-residential scheduler-name subs-4queues port-connection scheduler_to_port commit
The following example shows the scheduler-map configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service scheduler-map { "rtbrick-config:scheduler-map": [ { "scheduler-map-name": "schedmap-olt", "scheduler-name": [ { "name": "pon0", "port-connection": "scheduler_to_port" } ] }, { "scheduler-map-name": "subs-4queues-residential", "queue-group-name": [ { "group-name": "subs-4queues", "queue-name": [ { "name": "BE_SUBS", "parent-flow": "high-flow", "parent-scheduler-name": "subs-4queues", "connection-point": "strict_priority_3" }, { "name": "LD_SUBS", "parent-flow": "high-flow", "parent-scheduler-name": "subs-4queues", "connection-point": "strict_priority_1" }, { "name": "LL_SUBS", "parent-flow": "high-flow", "parent-scheduler-name": "subs-4queues", "connection-point": "strict_priority_2" }, { "name": "VO_SUBS", "parent-flow": "high-flow", "parent-scheduler-name": "subs-4queues", "connection-point": "strict_priority_0" } ] } ], "scheduler-name": [ { "name": "subs-4queues", "port-connection": "scheduler_to_port" } ] } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Remark-Map Configuration
Use the following CLI syntax to configure the remark-map:
Command arguments
Attribute | Description | ||
---|---|---|---|
|
Specifies the remaking map name. |
||
|
Specifies the remarking type - ipv4-tos, ipv6-tc, mpls-ipv4, mpls-ipv6, ieee-802.1, class-to-ip, ip-tos. The "ip-tos" remark-type can be used to set the IPv4 ToS or IPv6 TC values in IPv4 or IPv6 packet header respectively. |
||
|
Specifies the match code point for the specified remarking type.
|
||
|
Indicates the color - all, green, yellow. Color is used to set different remark codepoints for the same match-codepoint based on color marked by the Policer. |
||
|
Specifies the remarking codepoint |
In the following example, the remark map subs-remarking-residential
is configured with match-codepoint as 128
, 160
, 192
, and 224
. The color is set to "all", and the remark-codepoint is 6
.
set forwarding-options class-of-service remark-map subs-remarking-residential set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 128 set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 128 color all set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 128 color all remark-codepoint 6 set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 160 set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 160 color all set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 160 color all remark-codepoint 6 set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 192 set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 192 color all set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 192 color all remark-codepoint 6 set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 224 set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 224 color all set forwarding-options class-of-service remark-map subs-remarking-residential remark-type ieee-802.1 match-codepoint 224 color all remark-codepoint 6 commit
The following example shows the remark map configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service remark-map remark-exp remark-type ipv6-tc { "rtbrick-config:remark-type": [ { "remark-map-name": "subs-remarking-residential", "remark-type": [ { "remark-type": "ieee-802.1", "match-codepoint": [ { "match-codepoint": 128, "color": [ { "color": "all", "remark-codepoint": 6 } ] }, { "match-codepoint": 160, "color": [ { "color": "all", "remark-codepoint": 6 } ] }, { "match-codepoint": 192, "color": [ { "color": "all", "remark-codepoint": 6 } ] }, { "match-codepoint": 224, "color": [ { "color": "all", "remark-codepoint": 6 } ] } ] } ] } ] }
To access the RESTCONF API that corresponds to this CLI, click
here.
Global Profile Mapping
Use the following CLI syntax to configure the remark map for a global profile.
Command arguments
Attribute | Description |
---|---|
|
Specifies the name of the remark map. |
The following example configures the remark map for a global profile:
set forwarding-options class-of-service global remark-map-name subs-remarking-residential
The following example shows the remark map for a global profile configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service global { "rtbrick-config:global": { "multifield-classifier-name": "global_mfc", "remark-map-name": "subs-remarking-residential" } }
Remark-map to Instance Mapping
Use the following CLI syntax to configure the remark map for an instance.
Command arguments
Attribute | Description |
---|---|
`<instance-name> |
Specifies the name of the instance.` |
<remark-map-name> |
Specifies the name of the remark map. |
The following example configures the remark map for the instance default
.
set forwarding-options class-of-service instance default remark-map-name subs-remarking-residential commit
The following example shows the remark map configuration for the instance default
.
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service instance default { "rtbrick-config:instance": [ { "name": "default", "remark-map-name": "subs-remarking-residential" } ] }
Configuring QoS L2 and L3 Logical Interfaces
QoS Configuration
To support QoS on L2 logical interface, the class-of-service profile configuration is introduced. If a L2 logical interface is part of an interface-set, logical-interface scheduler/shaper must have parent-scheduler as interface-set-scheduler/shaper.
set interface ifp-0/0/16 unit 201 set interface ifp-0/0/16 unit 201 interface-type l2vpn-vpws set interface ifp-0/0/16 unit 201 instance evpn-vpws-vrf2 set interface ifp-0/0/16 unit 201 vlan 200 set interface ifp-0/0/16 unit 201 inner-vlan 201 set interface ifp-0/0/16 unit 201 class-of-service qos_profile_service_1 set interface ifp-0/0/16 unit 202 set interface ifp-0/0/16 unit 202 interface-type l2vpn-vpws set interface ifp-0/0/16 unit 202 instance evpn-vpws-vrf2 set interface ifp-0/0/16 unit 202 vlan 200 set interface ifp-0/0/16 unit 202 inner-vlan 202 set interface ifp-0/0/16 unit 202 class-of-service qos_profile_service_2 set interface ifp-0/0/16 unit 203 set interface ifp-0/0/16 unit 203 interface-type l2vpn-vpws set interface ifp-0/0/16 unit 203 instance evpn-vpws-vrf2 set interface ifp-0/0/16 unit 203 vlan 200 set interface ifp-0/0/16 unit 203 inner-vlan 203 set interface ifp-0/0/16 unit 203 class-of-service qos_profile_service_3
Interface-set Configuration
set interface-set service-group-1 interface ifp-0/0/16 set interface-set service-group-1 interface ifp-0/0/16 unit 201 set interface-set service-group-1 interface ifp-0/0/16 unit 202 set interface-set service-group-1 interface ifp-0/0/16 unit 203
Combining Multiple Logical Interfaces with an Added QoS Hierarchy
Configuring QoS Profile for a Logical Interface or Service
set forwarding-options class-of-service profile qos_profile_service_1 set forwarding-options class-of-service profile qos_profile_service_1 classifier-name upstream_pbit_classifer set forwarding-options class-of-service profile qos_profile_service_1 class-queue-map-name business_service_class_queue_map set forwarding-options class-of-service profile qos_profile_service_1 class-policer-map-name business_service_class_policer_map set forwarding-options class-of-service profile qos_profile_service_1 policer-name business_service_policer_1 set forwarding-options class-of-service profile qos_profile_service_1 scheduler-map-name business_service_scheduler_map_1
Configuring QoS Profile for a Logical Interface Set
set forwarding-options class-of-service profile qos_profile_service_group set forwarding-options class-of-service profile qos_profile_service_group scheduler-map-name business_service_group_scheduler_map
Enabling QoS Profile for a Logical Interface Set
set interface-set service-group-1 set interface-set service-group-1 class-of-service qos_profile_service_group set forwarding-options class-of-service profile service-group-profile set forwarding-options class-of-service profile service-group-profile class-queue-map-name subs-4queues set forwarding-options class-of-service profile service-group-profile class-policer-map-name policer-map-residential set forwarding-options class-of-service profile service-group-profile policer-name policer-residential set forwarding-options class-of-service profile service-group-profile scheduler-map-name business_service_group_scheduler_map
The following CLIs are used to configure scheduler port connection to link schedulers across different scheduler maps:
QoS Scheduler-map to connect logical interface scheduler with interface-set scheduler:
set forwarding-options class-of-service scheduler-map schedmap_service_1 set forwarding-options class-of-service scheduler-map schedmap_service_1 scheduler-name sch_service_1 set forwarding-options class-of-service scheduler-map schedmap_service_1 scheduler-name sch_service_1 port-connection scheduler-map-to-scheduler-map set forwarding-options class-of-service scheduler-map schedmap_service_1 scheduler-name business_service_scheduler_1 parent-scheduler-name business_service_group_scheduler
QoS Scheduler-map to Connect an interface-set scheduler with a pon scheduler
set forwarding-options class-of-service scheduler-map business_service_group_scheduler_map set forwarding-options class-of-service scheduler-map business_service_group_scheduler_map scheduler-name business_service_group_scheduler set forwarding-options class-of-service scheduler-map business_service_group_scheduler scheduler-name business_service_group_scheduler parent-scheduler-name pon0 set forwarding-options class-of-service scheduler-map business_service_group_scheduler_map scheduler-name business_service_group_scheduler port-connection scheduler_map_to_scheduler_map
QoS Global and Instance Configurations
The figure below shows the dependencies for per instance or global classifier and remark-map configurations.

The following example configures the BA classifier subs-exp-class
for traffic exp
with match code point 2
classified as class class-1
.
set forwarding-options class-of-service classifier subs-exp-class match-type exp codepoint 2 class class-1
BA Classifier to Global Mapping
The MPLS classifiers can be applied globally using global configuration.
Attribute | Description |
---|---|
|
Specifies the classifier name |
The following example shows how to configure the subs-exp-class
BA Classifier for global mapping.
set forwarding-options class-of-service global classifier-name subs-exp-class
The configuration for global mapping to the BA Classifier is shown in the following example.
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service global classifier-name { "rtbrick-config:classifier-name": "subs-exp-class" }
Single Queue To Global Mapping
The Single-Queue can be enabled with global configuration.
For the system to initialize with a single queue in a Queue-Group, a system reboot is required. |
The following example shows how to enable single-queue in a Queue-Group.
set forwarding-options class-of-service global queue-group-profile single-queue commit
The configuration for a single queue in Queue-Group is shown in the following example.
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service global { "rtbrick-config:global": { "queue-group-profile": "single-queue" } }
Remark-Map To Global Mapping
Use the following CLI syntax to configure the remark map for a global profile.
Command arguments
Attribute | Description |
---|---|
|
Specifies the name of the remark map. |
The following example configures the remark map for a global profile:
set forwarding-options class-of-service global remark-map-name subs-remarking-residential commit
Multifield Classifier (MFC) to Global Mapping
Use the following CLI syntax to configure the MF Classifier to Global Mapping:
Attribute | Description |
---|---|
|
Specifies the name of the multifield classifier |
The following example configures the multifield Classifier to Global Mapping:
set forwarding-options class-of-service global multifield-classifier-name global_mfc commit
The following example shows the multifield classifier to Global Mapping configuration:
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service global { "rtbrick-config:global": { "multifield-classifier-name": "global_mfc" } }
BA Classifier to Instance Mapping
The MPLS classifiers can be applied at an instance level using instance configuration.
Attribute | Description |
---|---|
|
Specifies the instance name |
|
Specifies the classifier name |
The following example shows how to configure the subs-exp-class
BA Classifier for the instance default
.
set forwarding-options class-of-service instance default classifier-name subs-exp-class commit
The configuration for instance mapping to the BA Classifier is shown in the following example.
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service instance default { "rtbrick-config:instance": [ { "name": "default", "classifier-name": "subs-exp-class" } ] }
Remark-Map To Instance Mapping
Use the following CLI syntax to configure the remark map for an instance.
Command arguments
Attribute | Description |
---|---|
|
Specifies the name of the instance. |
|
Specifies the name of the remark map. |
The following example configures the remark map for the instance default
:
set forwarding-options class-of-service instance default remark-map-name subs-remarking-residential commit
The configuration for the remark map for an instance is shown in the following example.
supervisor@rtbrick>LEAF01: cfg> show config forwarding-options class-of-service instance default { "rtbrick-config:instance": [ { "name": "default", "remark-map-name": "subs-remarking-residential" } ] }
Configuring Control Plane QoS Per IFL
Control plane packet marking is supported on a per-IFL basis for the following protocols: BGP, OSPF, LDP, IS-IS, DHCP relay, RADIUS, L2TP, ARP/ND, and PIM. Additionally, IGMP control plane packets can now be marked on a per-IFP basis.
Syntax:
Attribute | Description |
---|---|
|
Specifies the name of the protocol. |
|
Specifies the name of the IFL. |
|
Specify the codepoint value. |
Example configuration for configuring control plane QoS per IFL:
set forwarding-options class-of-service control-plane-qos outbound-marking protocol bgp tos codepoint 20 set forwarding-options class-of-service control-plane-qos outbound-marking protocol bgp tos ifl ifl-0/0/0/1001 set forwarding-options class-of-service control-plane-qos outbound-marking protocol bgp tos ifl ifl-0/0/0/3003 codepoint 19 set forwarding-options class-of-service control-plane-qos outbound-marking protocol bgp tos ifl ifl-0/0/0/3003 set forwarding-options class-of-service control-plane-qos outbound-marking protocol bgp tos ifl ifl-0/0/0/3003 codepoint 19
{ "protocol": "bgp", "remark-type": "tos", "codepoint": 20, "ifl": [ { "ifl": "ifl-0/0/0/1001", "codepoint": 19 }, { "ifl": "ifl-0/0/0/3003", "codepoint": 19 } ] }
Control Plane QoS p-bit Support for OAM
RBFS supports control plane QoS p-bit remarking for OAM packets at both the protocol level and the L2-all level.
Syntax:
Attribute | Description |
---|---|
|
Specify the codepoint value. |
Example Command:
set forwarding-options class-of-service control-plane-qos outbound-marking protocol cfm p-bit codepoint 4
Example:
"rtbrick-config:forwarding-options": { "class-of-service": { "control-plane-qos": { "outbound-marking": { "protocol": [ { "protocol": "cfm", "remark-type": "p-bit", "codepoint": 4 } ] } } } },
Control Plane Marking (ToS) for MPLS Ping and Traceroute
This feature allows you to set the ToS value in the header of MPLS OAM ping and traceroute packets generated or received by the control plane. It enables the prioritization of MPLS OAM traffic, thereby giving higher priority to diagnostic traffic.
Syntax:
Attribute | Description |
---|---|
|
Specify the codepoint value. |
Example Command:
set forwarding-options class-of-service control-plane-qos outbound-marking protocol mpls-oam tos codepoint 180
Example:
supervisor@rtbrick.net: cfg> show config forwarding-options class-of-service control-plane-qos outbound-marking protocol mpls-oam { "rtbrick-config:protocol": [ { "protocol": "mpls-oam", "remark-type": "tos", "codepoint": 180 } ] }
Configuring QoS for L2TP LCP Control Plane Packets
RBFS supports for prioritizing L2TP LCP control packets using Layer 3 IPv4 (L3v4) ACLs. It enables the identification of LCP control plane packets and allows for Quality of Service (QoS) marking.
Syntax:
Attribute | Description |
---|---|
|
Specifies the ordinal that is used for traffic rule referencing. |
|
Specifies the direction of L3V4 traffic. |
|
Specify 'true' to enable the rule to match the L2TP LCP traffic. |
|
class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7 |
|
Specifies the remark-map codepoint value. |
|
Specify 'true' to generate statistics for the ACL. |
|
Specify the priority value. |
The following configuration defines a Layer 3 IPv4 ACL rule to match incoming L2TP PPP LCP packets with specific actions for QoS marking. The name of the L3 IPv4 ACL rule is specified as "l2tp_match_lcp."
The ordinal value, set to 1, indicates the order of execution when there are multiple match-action entries. The match direction is defined as "ingress", indicating that this rule applies to incoming traffic. The match for "l2tp-ppp-lcp" is set to 'true'. It indicates it is applicable to only L2TP PPP LCP control packets.
The action "forward-class" assigns the packet to forwarding class 3 for higher priority. The action "remark-codepoint" is set to the value '100' that help to classify the packets for special QoS treatment. Also, the "action statistics" is enabled by setting it to 'true'. It enables the generation of statistics for this rule. The priority is set to '100', assigning priority level 100 to this rule.
set forwarding-options acl l3v4 rule l2tp_match_lcp set forwarding-options acl l3v4 rule l2tp_match_lcp ordinal 1 set forwarding-options acl l3v4 rule l2tp_match_lcp ordinal 1 match direction ingress set forwarding-options acl l3v4 rule l2tp_match_lcp ordinal 1 match l2tp-ppp-lcp true set forwarding-options acl l3v4 rule l2tp_match_lcp ordinal 1 action forward-class class-3 set forwarding-options acl l3v4 rule l2tp_match_lcp ordinal 1 action remark-codepoint 100 set forwarding-options acl l3v4 rule l2tp_match_lcp ordinal 1 action statistics true set forwarding-options acl l3v4 rule l2tp_match_lcp ordinal 1 priority 100
{ "rtbrick-config:acl": { "l3v4": { "rule": [ { "rule-name": "l2tp_match_lcp", "ordinal": [ { "ordinal-value": 1, "match": { "direction": "ingress", "l2tp-ppp-lcp": "true" }, "action": { "forward-class": "class-3", "remark-codepoint": 100, "statistics": "true" }, "priority": 100 } ] } ] } } }
DSCP Remarking with ECN Transparency
This feature allows remarking of DSCP (Differentiated Services Code Point) values in IP packets while preserving the ECN (Explicit Congestion Notification) bits. With this feature, RBFS can modify only the DSCP portion of the IP header while keeping the ECN field unchanged.
|
The following configuration example defines a traffic filter condition and what to perform with matched traffic. It defines when a packet’s destination IP is within 132.1.1.0/24 range and the destination L4 port is 65057, then send it using forwarding class 'class-1' and rewrite its DSCP marking to 60.
set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 101 match source-ipv4-prefix 132.1.1.1/24 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 101 match source-l4-port 65057 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 101 action set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 101 action forward-class class-1 set forwarding-options class-of-service multifield-classifier acl l3v4 rule global_mfc ordinal 101 action remark-dscp-codepoint 60
{ "rtbrick-config:ordinal": [ { "ordinal-value": 1, "match": { "destination-ipv4-prefix": "132.1.1.1/24", "destination-l4-port": 65057 }, "action": { "forward-class": "class-1", "remark-dscp-codepoint": 60 } } ] }