Configuring HQoS

To configure HQoS, perform the following steps which include creating a QoS profile and enabling QoS on a PPP Subscriber-Interface or L3-Interface.

  1. Create Behavioral Aggregate (BA) and/or Multifield (MF) classifier to classify the network traffic at the ingress.

  2. Create a policer to police the classified traffic at the ingress.

  3. Create necessary class-to-policer-map to map the classes to policer-levels (mandatory for policing).

  4. Create queue-groups and configure the queue numbers (1/4/8) in the queue group.
    NOTE: For the system to initialize with a single queue in a Queue-Group, a system reboot is required.

  5. Create necessary queues with proper size to queue the classified traffic at the egress.

  6. Create necessary class-to-queue-map to map the classes to queues (mandatory for queuing).

  7. Specify scheduler(s) with type as required.

  8. (Optional) Attach a shaper to queue(s) and/or scheduler(s).

  9. Specify a scheduler map to define set of relationships between parent (scheduler or port) and child (queue/queue-group or scheduler) at the egress.

  10. (optional) Create Remark-Map for QoS field remarking of the outgoing packet.

  11. Define a QoS profile with classifier, multifield-classifier, class-policer-map, policer, class-queue-map, scheduler-map, and remark-map based on user requirements.

  12. Specify another scheduler map to represent level-3 to level-5 hierarchy in multi-level HQoS and map it to physical interface.

  13. Map the MPLS EXP classifier either to an instance or configure it as global entity.

  14. (optional) Map the MPLS-IPv4/IPv6 remark-map either to an instance or configure it as global entity.

  15. For downstream MPLS traffic, map the Multifield (MF) classifier as global entity.

Priority propagation is enabled by default. To disable the Priority Propagation, we recommend doing this at the beginning and not during an active session.

The figure below shows the dependencies between the various HQoS configuration elements.

hqos flow 20.9.1

The figure below shows the dependencies for per instance or global classifier and remark-map configurations.

hqos flow global instance

The figure below shows the additional dependencies for Multi-level HQoS.

hqos multi level

The figures below show the scheduling hierarchy example.

hqos scheduling config hierarchy
hqos scheduling config hierarchy1

The following sections provide the commands and examples for configuring HQoS.

Behavior Aggregate (BA) Classifier Configuration

Syntax

set forwarding-options class-of-service classifier <classifier-name> match-type <match-type> codepoint <codepoint> [ class <class> | remark-codepoint <remark-codepoint> ]

Command arguments

<classifier-name>

Specifies the classifier user-defined name

<match-type>

Specifies the type of traffic to classify, that is, ipv4-tos, ipv6-tc, ieee-802.1, exp

<codepoint>

Specifies the code-point value based on match-type

<class>

Specifies the traffic class as as class-0, class-1, class-2, class-3, class-4, class-5, class-6, and class-7

<remark-codepoint>

Specifies the remark-codepoint that used for remarking

Example
root@rtbrick: cfg> set forwarding-options class-of-service classifier residential-ip-classifier match-type ipv6-tc codepoint 192 remark-codepoint 224
root@rtbrick: cfg> commit

BA Classifier to Profile Mapping

IPv4, IPv6 and IEEE 802.1p BA classifiers are applied on a subscriber-ifl or l3ifl using the Profile Name.

Syntax

set forwarding-options class-of-service profile <profile-name> classifier-name <classifier-name>

Example
root@rtbrick: cfg> set forwarding-options class-of-service profile lac_4queues_4classes classifier-name TC_voice1
root@rtbrick: cfg> commit
MPLS Exp classifier is applied either globally or per-instance (to support multiple VPN marking schemes) using Classifier Name.

BA Classifier to Global Mapping

The MPLS classifiers can be applied globally using global configuration.

set forwarding-options class-of-service global classifier-name <classifier-name>

Example
root@rtbrick: cfg> set forwarding-options class-of-service global classifier-name TC_voice1
root@rtbrick: cfg> commit

BA Classifier to Instance Mapping

The MPLS classifiers can be applied on an instance using the instance configuration.

set forwarding-options class-of-service instance <instance-name> classifier-name <classifier-name>

Example
root@rtbrick: cfg> set forwarding-options class-of-service instance ip2vrf classifier-name TC_voice1
root@rtbrick: cfg> commit

Multifield Classifier Configuration

Syntax

set forwarding-options class-of-service multifield-classifier acl [ l3v4 | l3v6 ] rule <rule-name> ordinal <ordinal-value>

In Release 20.10.2, explicit use of ordinal keyword is mandatory in Multifield Classifier configuration.

<rule-name>

Specifies the multifield classifier rule name

<ordinal-value>

Specifies the ordinal value that is used for traffic policy rule referencing

IPv4 Match Configuration

Syntax

set forwarding-options class-of-service multifield-classifier acl l3v4 rule <rule-name> ordinal <ordinal-value> match [ source-ipv4-prefix <source-ipv4-prefix> | destination-ipv4-prefix <destination-ipv4-prefix> | ip-protocol <ip-protocol> | source-l4-port <source-l4-port> | destination-l4-port <destination-l4-port> | ipv4-tos <ipv4-tos> | ipv4-dscp <ipv4-dscp> | forward-class <forward-class> | mpls-traffic <mpls-traffic> ]

Command arguments

<rule-name>

Specifies the multifield classifier rule name

<ordinal-value>

Specifies the ordinal that is used for traffic policy rule referencing

<source-ipv4-prefix>

Specifies the source IPv4 prefix address

<destination-ipv4-prefix>

Specifies the destination IPv4 prefix address

<ip-protocol>

Specifies the IP protocol such as UDP or TCP

<source-l4-port>

Specifies the Layer 4 source port number

<destination-l4-port>

Specifies the Layer 4 destination port number

<ipv4-tos

Specifies the IPv4 ToS value

<ipv4-dscp

Specifies the IPv4 dscp value

<forward-class>

Specifies the forward class name

<mpls-traffic>

Species the MPLS traffic

Example
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match destination-ipv4-prefix 198.51.100.33/24
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match direction ingress
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match forward-class class-0
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match ipv4-tos 100
root@rtbrick: cfg> set  forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 100 match ipv4-dscp 55
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match source-ipv4-prefix 198.51.100.22/24
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match destination-l4-port 2000
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match ip-protocol TCP
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match source-l4-port 3000
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule v4 ordinal 99 match mpls-traffic true
root@rtbrick: cfg> commit

IPv6 Match Configuration

Syntax

set forwarding-options class-of-service multifield-classifier acl l3v6 rule <rule-name> ordinal <ordinal-value> match [ source-ipv6-prefix <source-ipv6-prefix> | destination-ipv6-prefix <destination-ipv6-prefix> | ip-protocol <ip-protocol> | source-l4-port <source-l4-port> | destination-l4-port <destination-l4-port> | ipv6-tc <ipv6-tc> | forward-class <forward-class> | mpls-traffic <mpls-traffic> ]

Command arguments

<rule-name>

Specifies the multifield classifier rule name

<ordinal-value>

Specifies the ordinal that is used for traffic policy rule referencing

<source-ipv6-prefix>

Specifies the source IPv6 prefix address

<destination-ipv6-prefix>

Specifies the destination IPv6 prefix address

<ip-protocol>

Specifies the IP protocol such as UDP or TCP

<source-l4-port>

Specifies the Layer 4 source port number

<destination-l4-port>

Specifies the Layer 4 destination port number

<ipv6-tc>

Specifies the IPv6 traffic class value

<forward-class>

Specifies the forward class name

<mpls-traffic>

Specifies the MPLS traffic

Example
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match destination-ipv6-prefix 2001:db8:0:110::/32
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match direction ingress
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match forward-class class-1
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match ipv6-tc 200
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match source-ipv6-prefix 2001:db8:0:160::/32
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match destination-l4-port 20000
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match ip-protocol UDP
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match source-l4-port 30000
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v6 rule v6 ordinal 200 match mpls-traffic true
root@rtbrick: cfg> commit

IPv4/IPv6 Priority Configuration

Syntax

set forwarding-options class-of-service multifield-classifier acl [l3v4|l3v6] <rule-name> ordinal <ordinal-value> priority <priority>

Command arguments

<rule-name>

Specifies the multifield classifier rule name

<ordinal-value>

Specifies the ordinal that is used for traffic policy rule referencing

<priority>

Specify the priority value. Range: 0 - 65535.

Example
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule rtb_mfc ordinal 100 priority 250
root@rtbrick: cfg> commit

IPv4/IPv6 Action Configuration

Syntax

set forwarding-options class-of-service multifield-classifier acl [l3v4|l3v6] rulename <rule-name> ordinal <ordinal-value> action [ forward-class <class> | remark-codepoint <remark-codepoint> ]

Command arguments

<rule-name>

Specifies the rule name

<ordinal-value>

Specifies the ordinal that is used for traffic policy rule referencing

<class>

class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7

<remark-codepoint>

Specifies the remark-map codepoint

Example
root@rtbrick: cfg> set forwarding-options class-of-service multifield-classifier acl l3v4 rule rtb_mfc ordinal 100 action remark-codepoint 100
root@rtbrick: cfg> commit

MF Classifier to Profile Mapping

Syntax

set forwarding-options class-of-service profile <profile-name> multifield-classifier-name <multifield-classifier-name>

Command arguments

<profile-name>

Specifies the profile name

<multifield-classifer-name>

Specifies the multifield classifier name

Example
root@rtbrick: cfg> set forwarding-options class-of-service profile rtbrick_residential_profile multifield-classifier-name mf100
root@rtbrick: cfg> commit

MF Classifier to Global Mapping

Syntax

set forwarding-options class-of-service global multifield-classifier-name <multifield-classifier-name>

Example
root@rtbrick: cfg> set forwarding-options class-of-service global multifield-classifier-name mf100
root@rtbrick: cfg> commit

Remark-Map Configuration

Syntax

set forwarding-options class-of-service remark-map <remark-map-name> remark-type <remark-type> match-codepoint <match-codepoint> color <color> remark-codepoint <remark-codepoint>

Command arguments

<remark-map-name>

Specifies the remaking map name

<remark-type>

Specifies the remarking type - ipv4-tos, ipv6-tc, mpls-ipv4, mpls-ipv6, ieee-802.1

<match-codepoint>

Specifies the match code point.

NOTE: On the UfiSpace S9600-72XC, UfiSpace S9600-32X, and Delta AGCVA48S platforms, the match codepoint is TOS for VLAN IEEE-802.1p remarking. On the Edgecore AS5916-54XKS or Edgecore AS7316-26XB platforms, the match codepoint is class derived at the ingress by the classifier for VLAN IEEE-802.1p remarking.

<color>

Indicates the color - all, green, yellow. Color is used to set different remark-codepoint for same match-codepoint based on color marked by the Policer.

<remark-codepoint>

Specifies the remarking codepoint

Example
root@rtbrick: cfg> set forwarding-options class-of-service remark-map remark-exp remark-type ipv6-tc match-codepoint 100 color all remark-codepoint 224
root@rtbrick: cfg> commit

Remark-map to Profile Mapping

Syntax

set forwarding-options class-of-service profile <profile-name> remark-map-name <remark-map-name>

Command arguments

<profile-name>

Specifies the profile name

<remark-map-name>

Specifies the remark map name

Example
root@rtbrick: cfg> set forwarding-options class-of-service profile rtbrick_residential_profile remark-map-name remark-exp
root@rtbrick: cfg> commit

Global Profile Mapping

set forwarding-options class-of-service global remark-map-name <remark-map-name>

Example
root@rtbrick: cfg> set forwarding-options class-of-service global remark-map-name remark-exp
root@rtbrick: cfg> commit

Remark-map to Instance Mapping

set forwarding-options class-of-service instance <instance-name> remark-map-name <remark-map-name>

Example
root@rtbrick: cfg> set forwarding-options class-of-service instance ip2vrf remark-map-name remark-exp
root@rtbrick: cfg> commit

Policer Configuration

Syntax

set forwarding-options class-of-service policer <policer-name>

Command Arguments

<policer-name>

Specifies the policer name.

<levels>

Specifies levels in the Policer. There is only support for policer levels 1 and 4.

<type>

Specifies the policer type.

<flag>

Set flags.

level1-rates <cir>

Set committed information rate (CIR) in kilobits per second (kbps) for level-1. The same is applicable for level-2 to level-4.

level1-rates <pir>

Set peak information rate (PIR) in kilobits per second (kbps) for level-1. The same is applicable for level-2 to level-4.

level1-rates <cbs>

Set Committed burst size (CBS) in kilobits for level-1. The same is applicable for level-2 to level-4.

level1-rates <pbs>

Set peak burst size (PBS) in kilobits for level-1. The same is applicable for level-2 to level-4.

level1-rates <max-cir>

Set 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.

level1-rates <max-pir>

Set 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.

Example
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential
root@rtbrick: cfg> commit
Levels configuration

set forwarding-options class-of-service policer <policer-name> levels <levels>

Example
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential levels 4
root@rtbrick: cfg> commit
Type configuration

set forwarding-options class-of-service policer <policer-name> type <type>

Example
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential type two-rate-three-color
root@rtbrick: cfg> commit
Flag configuration

set forwarding-options class-of-service policer <policer-name> flags <flags>

Example
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential flags color-blind
root@rtbrick: cfg> commit
Level rates configuration

set forwarding-options class-of-service policer <policer-name> level1-rates [cir <cir>]

set forwarding-options class-of-service policer <policer-name> level1-rates [pir <pir>]

set forwarding-options class-of-service policer <policer-name> level1-rates [cbs <cbs>]

set forwarding-options class-of-service policer <policer-name> level1-rates [pbs <pbs>]

set forwarding-options class-of-service policer <policer-name> level1-rates [max-cir <max-cir>]

set forwarding-options class-of-service policer <policer-name> level1-rates [max-pir <max-pir]

The same is applicable for level-2 to level-4.
Example
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level1-rates cir 8000
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level1-rates cbs 800
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level1-rates pir 8000
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level1-rates pbs 800
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level3-rates cir 0
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level3-rates cbs 800
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level3-rates pir 0
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level3-rates pbs 800
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level4-rates cir 0
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level4-rates cbs 800
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level4-rates pir 0
root@rtbrick: cfg> set forwarding-options class-of-service policer policer-residential level4-rates pbs 800
root@rtbrick: cfg> commit
Example
set forwarding-options class-of-service policer policer-residential level1-rates max-cir 4500
set forwarding-options class-of-service policer policer-residential level1-rates max-pir 5500
root@rtbrick: cfg> commit

Class Policer-Map Configuration

Syntax

set forwarding-options class-of-service class-policer-map <class-policer-map-name> class <class> policer-level <policer-level>

Command arguments

<class-policer-map-name>

Specifies the class policer map name,

<class>

Specifies the class such as class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7

<policer-level>

level-1, level-2, level-3, level-4

Example
root@rtbrick: cfg> set forwarding-options class-of-service class-policer-map policer-map-l2tp class class-0 policer-level level-4
root@rtbrick: cfg> set forwarding-options class-of-service class-policer-map policer-map-l2tp class class-1 policer-level level-3
root@rtbrick: cfg> set forwarding-options class-of-service class-policer-map policer-map-l2tp class class-2 policer-level level-2
root@rtbrick: cfg> set forwarding-options class-of-service class-policer-map policer-map-l2tp class class-3 policer-level level-1
root@rtbrick: cfg> set forwarding-options class-of-service class-policer-map policer-map-residential class class-0 policer-level level-3
set forwarding-options class-of-service class-policer-map policer-map-residential class class-1 policer-level level-4
root@rtbrick: cfg> set forwarding-options class-of-service class-policer-map policer-map-residential class class-2 policer-level level-2
root@rtbrick: cfg> set forwarding-options class-of-service class-policer-map policer-map-residential class class-3 policer-level level-1
root@rtbrick: cfg> commit

Queue Configuration

Syntax

set forwarding-options class-of-service queue <queue-name>

Command arguments

<queue-name>

Specifies the user-defined queue name

<queue-size>

Specifies the size of the queue in bytes

<shaper-name>

(Optional) Specifies the shaper that is associated with the queue

WRED

<minimum-threshold>

Specifies the minimum average queue size to apply WRED in bytes

<maximum-threshold>

Specifies the maximum average queue size to apply WRED in bytes

<drop-prob>

WRED drop probability applied at the maximum threshold

<bytes>

Specifies the header compensation value

decrement <true |false>

The header compensation value is -ve (if true) or +ve (if false).

Example
root@rtbrick: cfg> set forwarding-options class-of-service queue BE_L
root@rtbrick: cfg> commit
Queue Size

set forwarding-options class-of-service queue <queue-name> queue-size <queue-size>

Example
root@rtbrick: cfg> set forwarding-options class-of-service queue BE_L queue-size 375000
root@rtbrick: cfg> commit
Queue WRED Profile

set forwarding-options class-of-service queue <queue-name> wred minimum-threshold <minimum-threshold>

set forwarding-options class-of-service queue <queue-name> wred maximum-threshold <maximum-threshold>

set forwarding-options class-of-service queue <queue-name> wred drop-probability <drop-probability>

Example
root@rtbrick: cfg> set forwarding-options queue BE_L wred minimum-threshold 15000
root@rtbrick: cfg> set forwarding-options queue BE_L wred maximum-threshold 18000
root@rtbrick: cfg> set forwarding-options queue BE_L wred drop-probability 70
root@rtbrick: cfg> commit
Queue Shaper

set forwarding-options class-of-service queue <queue-name> shaper-name <shaper-name>

Example
root@rtbrick: cfg> set forwarding-options class-of-service queue IO_L shaper-name shaper_IO
root@rtbrick: cfg> commit
Queue Header Compensation

set forwarding-options class-of-service queue <queue-name> header-compensation bytes <bytes>

set forwarding-options class-of-service queue <queue_name> header-compensation decrement <*true* | false>

Example
root@rtbrick: cfg> set forwarding-options class-of-service queue IO_L header-compensation bytes 30
root@rtbrick: cfg> set forwarding-options class-of-service queue IO_L header-compensation decrement true
root@rtbrick: cfg> commit

Class Queue-Map Configuration

Class to Queue mapping

Syntax

set forwarding-options class-of-service class-queue-map <class-queue-map-name> class <class> queue-name <queue-name>

Command arguments

<class-queue-map-name>

Specifies the class queue map name

<class>

Specifies the class such as class-0, class-1, class-2, class-3, class-4, class-5, class-6, class-7

<queue-name>

Specifies the queue name

Example
root@rtbrick: cfg> set forwarding-options class-of-service class-queue-map lac_4queues_L class class-0 queue-name BE_L
root@rtbrick: cfg> commit

Queue-Group Configuration

Queue group size: 1 or 4 or 8

Syntax

set forwarding-options class-of-service queue-group <queue-group-name> queue-numbers <queue-numbers>

Command arguments

<queue-group-name>

User-defined name for the queue-group

<queue-numbers>

Specifies the number of queues in a Queue Group

The following example configures the queue group with a single queue.

root@rtbrick: cfg> set forwarding-options class-of-service queue-group subs-4queues queue-numbers 1
root@rtbrick: cfg> commit

The following example configures the queue group with queue numbers 4 and 8.

root@rtbrick: cfg> set forwarding-options class-of-service queue-group lac_4queues_L queue-numbers 4
root@rtbrick: cfg> set forwarding-options class-of-service queue-group lac_4queues_M queue-numbers 4
root@rtbrick: cfg> set forwarding-options class-of-service queue-group lac_4queues_S queue-numbers 4
root@rtbrick: cfg> set forwarding-options class-of-service queue-group pta_4queues_L queue-numbers 4
root@rtbrick: cfg> set forwarding-options class-of-service queue-group pta_4queues_M queue-numbers 4
root@rtbrick: cfg> set forwarding-options class-of-service queue-group pta_4queues_S queue-numbers 4
root@rtbrick: cfg> set forwarding-options class-of-service queue-group pta_8queues_L queue-numbers 8
root@rtbrick: cfg> set forwarding-options class-of-service queue-group pta_8queues_M queue-numbers 8
root@rtbrick: cfg> set forwarding-options class-of-service queue-group pta_8queues_S queue-numbers 8
root@rtbrick: cfg> commit

Scheduler Configuration

Syntax

set forwarding-options class-of-service scheduler <scheduler-name>

Command arguments

<scheduler-name>

User-defined Scheduler Name

<shaper-name>

(Optional) User-defined Shaper Name

<type>

Specifies the Scheduler Type
2sp_wfq_discrete
3sp_wfq_discrete
strict_priority
wfq_discrete_2sp
2sp_wfq_independent
fair_queueing
weighted_fair_queueing
wfq_independent_2sp

composite <true | false>

(Optional) keyword to specify the scheduler as composite type

Example
root@rtbrick: cfg> set forwarding-options class-of-service scheduler lac_4queues
root@rtbrick: cfg> commit
Scheduler Type

set forwarding-options class-of-service scheduler <scheduler-name> <type> [ composite <true | false> ]

Example
root@rtbrick: cfg> set forwarding-options class-of-service scheduler lac_4queues type strict_priority
root@rtbrick: cfg> set forwarding-options class-of-service scheduler lac_4queues composite true
root@rtbrick: cfg> commit
Scheduler Shaper

set forwarding-options class-of-service scheduler <scheduler-name> shaper-name <shaper-name>

Example
root@rtbrick: cfg> set forwarding-options class-of-service scheduler lac_4queues shaper-name shaper_session
root@rtbrick: cfg> commit

Scheduler-Map Configuration

Syntax

set forwarding-options class-of-service scheduler-map <scheduler-map-name> [ group-name <group-name> queue-name <name>] [ scheduler-name <scheduler-name> ]

Command arguments

<scheduler-map-name>

User-defined Scheduler-Map Name

<scheduler-name>

User-defined Scheduler Name

<group-name>

User-defined Queue-Group Name

<name>

User-defined Queue-Name

<parent-scheduler-name>

Name of the parent scheduler

<connection-type>

Specifies the type of port connection, that is, queue_to_port or scheduler_to_port

<connection-point>

Specifies the type of connection point, such as no_priority, strict_priority_0, strict_priority_1, strict_priority_2, strict_priority

Queue to Port

Syntax

set forwarding-options class-of-service scheduler-map <scheduler-map-name> queue-group-name <queue-group-name> queue-name <name> port-connection <port-connection>

Example
root@rtbrick: cfg> set forwarding-options class-of-service scheduler-map lac_4queues_S queue-group-name lac_4queues_S queue-name BE_S port-connection queue_to_port
root@rtbrick: cfg> commit

Scheduler to Port

Syntax

set forwarding-options class-of-service scheduler-map <scheduler-map-name> scheduler-name <scheduler-name> port-connection <port-connection>

Example
root@rtbrick: cfg> set forwarding-options class-of-service scheduler-map lac_4queues_S scheduler-name olt-pon1 port-connection scheduler_to_port
root@rtbrick: cfg> commit

Scheduler to Scheduler (same Scheduler-Map)

Syntax

set forwarding-options class-of-service scheduler-map <scheduler-map-name> scheduler-name <scheduler-name>

set forwarding-options class-of-service scheduler-map <scheduler-map-name> scheduler-name <scheduler-name> connection-point <connection-point>

set forwarding-options class-of-service scheduler-map <scheduler-map-name> scheduler-name <scheduler-name> parent-scheduler-name <parent-scheduler-name>

set forwarding-options class-of-service scheduler-map <scheduler-map-name> scheduler-name <scheduler-name> [weight <weight>]

Example
root@rtbrick: cfg> set forwarding-options class-of-service scheduler-map pta_4queues_comp_off_M  scheduler-name olt-pon1
root@rtbrick: cfg> set forwarding-options class-of-service scheduler-map pta_4queues_comp_off_M scheduler-name olt-pon1 connection-point strict_priority_1
root@rtbrick: cfg> set forwarding-options class-of-service scheduler-map pta_4queues_comp_off_M scheduler-name olt-pon1 lac_4queues
root@rtbrick: cfg> set forwarding-options class-of-service scheduler-map pta_4queues_comp_off_M scheduler-name olt-pon1 weight 1
root@rtbrick: cfg> commit

Queue to scheduler

Syntax

set forwarding-options class-of-service queue-group-name <queue-group-name> queue-name <name> parent-scheduler <parent-scheduler-name>

set forwarding-options class-of-service queue-group-name <queue-group-name> queue-name <name> parent-flow <parent-flow>

set forwarding-options class-of-service queue-group-name <queue-group-name> queue-name <name> connection-point <connection-point>

set forwarding-options class-of-service queue-group-name <queue-group-name> queue-name <name> [weight <weight>]

The parent-flow configuration is optional.
Example
root@rtbrick: cfg> set forwarding-options class-of-service queue-group-name queue_group_residential queue-name IPTV parent-scheduler rtbrick_sched_0
root@rtbrick: cfg> set forwarding-options class-of-service queue-group-name queue_group_residential queue-name IPTV parent-flow low-flow
root@rtbrick: cfg> set forwarding-options class-of-service queue-group-name queue_group_residential queue-name IPTV connection-point strict_priority_0
root@rtbrick: cfg> set forwarding-options class-of-service queue-group-name queue_group_residential queue-name IPTV weight 1
root@rtbrick: cfg> commit

Shaper Configuration

Syntax

set forwarding-options class-of-service shaper <shaper-name>

Command Arguments

<shaper-name>

User-defined shaper name

<shaping-rate-high>

High flow shaping rate in kilobits per second

<shaping-rate-low>

Low flow shaping rate in kilobits per second

Example
root@rtbrick: cfg> set forwarding-options class-of-service shaper session_shaper
root@rtbrick: cfg> commit

High Flow Shaping Rate

To configure only high-flow shaping rate, enter the following command:

set forwarding-options class-of-service shaper <shaper-name> shaping-rate-high <shaping-rate-high>

Example
root@rtbrick: cfg> set forwarding-options class-of-service shaper shaper_LD shaping-rate-high 2488000
root@rtbrick: cfg> commit

Low Flow Shaping Rate

To configure only low-flow shaping rate, enter the following command:

set forwarding-options class-of-service shaper <shaper-name> shaping-rate-low <shaping-rate-low>

  • If priority propagation is not enabled, high-flow shaping value will be considered for shaper.

  • If the scheduler type is strict_priority, the mapping of queues to priorities begins with strict_priority_1.

Example
root@rtbrick: cfg> set forwarding-options class-of-service shaper shaper_LD shaping-rate-low 0
root@rtbrick: cfg> commit

Priority Propagation

Syntax

set forwarding-options class-of-service global priority-propagation [enable | disable]

Example
root@rtbrick: cfg> set forwarding-options class-of-service global priority-propagation enable
root@rtbrick: cfg> commit

Profiles Configuration

Syntax

set forwarding-options class-of-service profile <profile-name>

Command arguments

<profile-name>

User-defined QoS Profile name

Example
root@rtbrick: cfg> set forwarding-options class-of-service profile lac_4queues_4classes
root@rtbrick: cfg> commit

BA Classifier

set forwarding-options class-of-service profile <profile-name> classifier-name <classifier_name>

Command arguments

<profile-name>

Profile name

<classifier-name>

Classifier name

Example

root@rtbrick: cfg> set forwarding-options class-of-service profile lac_4queues_4classes classifier-name residential-pbit-classifier
root@rtbrick: cfg> commit

Multifield Classifier

set forwarding-options class-of-service profile <profile-name> multifield-classifier-name <multifield-classifer-name>

Command arguments

<profile-name>

Profile name

<multifield-classifier-name>

MF Classifier name

Example

root@rtbrick: cfg> set forwarding-options class-of-service profiles profile-name rtbrick_residential_profile multifield-classifier-name mf100
root@rtbrick: cfg> commit

Class Policer-Map

set forwarding-options class-of-service profile <profile-name> class-policer-map-name <class-policer-map-name>

Command arguments

<profile-name>

Profile name

<class-policer-map-name>

User-defined class to policer level map name map name

Example

root@rtbrick: cfg> set forwarding-options class-of-service profile pta_8queues_comp_on_S class-policer-map-name policer-map-residential
root@rtbrick: cfg> commit

Policer

set forwarding-options class-of-service profile <profile-name> policer-name <policer-name>

Command arguments

<profile-name>

Profile name

<policer-name>

User-defined Policer name

Example

root@rtbrick: cfg> set forwarding-options class-of-service profile pta_8queues_comp_on_S policer-name policer-residential
root@rtbrick: cfg> commit

Class Queue-Map

set forwarding-options class-of-service profile <profile-name> class-queue-map-name <class-queue-map-name>

Command arguments

<profile-name>

Profile name

<class-queue-map-name>

User-defined class to queue map name

Example

root@rtbrick: cfg> set forwarding-options class-of-service profile pta_8queues_comp_on_L class-queue-map-name pta_8queues_L
root@rtbrick: cfg> commit

Scheduler-Map

set forwarding-options class-of-service profile <profile-name> scheduler-map-name <scheduler-map-name>

Command arguments

profile-name

Profile name

<scheduler-map-name>

User-defined Scheduler map name

Example

root@rtbrick: cfg> set forwarding-options class-of-service profile pta_8queues_comp_on scheduler-map-name pta_8queues_comp_on_M
root@rtbrick: cfg> commit

Remark-Map

set forwarding-options class-of-service profile <profile-name> remark-map-name <remark-map-name>

Command arguments

<remark-map-name>

Remarking map name

Example

root@rtbrick: cfg> set forwarding-options class-of-service profile pta_8queues_comp_on remark-map-name remark-exp
root@rtbrick: cfg> commit

Egress Class Policer-Map

This configuration is applicable only for the L2X traffic on LAG interface.

set forwarding-options class-of-service profile <profile-name> egress-class-policer-map-name <egress-class-policer-map-name>

<profile-name>

QoS Profile Name

<egress-class-policer-map-name>

Egress Class Policer Map Name

Example

set forwarding-options class-of-service profile Retail_Service-Provider egress-class-policer-map-name RSP_Class_Policer_Map

Egress Policer

This configuration is applicable only for the L2X traffic on LAG interface.

set forwarding-options class-of-service profile <profile> egress-policername <egress-policer-name>

<profile-name>

QoS Profile Name

<egress-policer-name>

Egress Policer Name

Example

set forwarding-options class-of-service profile Retail_Service-Provider egress-policer-name Retail_SP_Policer

Interface Configuration

Logical Interface QoS Profile

QOS Profile can be mapped to an L3 interface (that is, logical interface).

Syntax

set interface <ifp-name> unit <unit-id> class-of-service <class-of-service>

Command arguments

<ifp-Name>

Logical Interface Name

<unit-id>

Configure unit which identifies sub-interface under physical interface

<class-of-service>

Class of service

Example
root@rtbrick: cfg> set interface ifl-0/0/1 unit 100 class-of-service profile1
root@rtbrick: cfg> commit

Physical Interface Scheduler Map

Syntax

set forwarding-options class-of-service interface <name> scheduler-map-name <scheduler-map-name>

Command arguments

<name>

Physical Interface Name

<scheduler-map-name>

Scheduler map name

Example
root@rtbrick: cfg> set forwarding-options class-of-service interface ifp-0/0/3 scheduler-map-name  pta_8queues_comp_on
root@rtbrick: cfg> commit

Physical Interface Shaper

Syntax

set forwarding-options class-of-service interface <name> shaping-rate <shaping-rate>

Command arguments

<name>

Physical Interface Name

<shaping-rate>

Shaping Rate

Example
root@rtbrick: cfg> set forwarding-options class-of-service interface ifp-0/0/3 shaping-rate 10000
root@rtbrick: cfg> commit

Physical Interface Header Compensation

Ingress Header Compensation

Syntax

set forwarding-options class-of-service interface <name> ingress-header-compensation bytes <bytes>

set forwarding-options class-of-service interface <name> ingress-header-compensation decrement <true | false>

Command arguments

<name>

Physical Interface Name

<bytes>

Ingress header compensation bytes

decrement <true | false>

Specifies whether the header compensation to be decremented

Example
root@rtbrick: cfg> set forwarding-options class-of-service interface ifp-0/0/19 ingress-header-compensation bytes 40
root@rtbrick: cfg> set forwarding-options class-of-service interface ifp-0/0/19 ingress-header-compensation decrement true
root@rtbrick: cfg> commit

Egress Header Compensation

Syntax

set forwarding-options class-of-service interface <name> egress-header-compensation bytes <bytes>

set forwarding-options class-of-service interface <name> egress-header-compensation decrement decrement <true | false>

Command arguments

<name>

Physical Interface Name

<bytes>

Egress header compensation bytes

decrement <true | false>

Specifies whether the header compensation to be decremented

Example
root@rtbrick: cfg> set forwarding-options class-of-service interface ifp-0/0/19 egress-header-compensation bytes 30
root@rtbrick: cfg> set forwarding-options class-of-service interface ifp-0/0/19 egress-header-compensation decrement true
root@rtbrick: cfg> commit

L2TP Tunnel Classifier

Syntax

set forwarding-options class-of-service global l2tp-classifier-name <l2tp-classifier-name>

Command arguments

<l2tp-classifier-name>

Name of the L2TP classifier

Example
root@rtbrick: cfg> set forwarding-options class-of-service global l2tp-classifier-name BA_L2TP_HEADER_CLASSIFIER_ONE
root@rtbrick: cfg> commit