Skip to content

QoS Configuration

show qos map {all|dot1p_to_tc|dscp_to_tc|tc_to_queue}

Section titled “show qos map {all|dot1p_to_tc|dscp_to_tc|tc_to_queue}”

[Command]

show qos map {all|dot1p_to_tc|dscp_to_tc|tc_to_queue}

[Purpose]

Display QoS map configuration information

[Parameter]

all Display all priority mapping configuration information

dot1p_to_tc Mapping of 802.1P priority of packet to internal priority

dscp_to_tc Mapping of the DSCP priority of a packet to the internal priority

tc_to_queue Mapping the priority of packet to the egress queue

[View]

System view

[Use Cases]

sonic(config)# show qos map all
{
"DOT1P_TO_TC_MAP":{
"dot1x-tc":{
"0":"0",
"1":"1",
"2":"2",
"3":"3",
"4":"4",
"5":"5",
"6":"6",
"7":"7"
}
},
"DSCP_TO_TC_MAP":{},
"MAP_PFC_PRIORITY_TO_QUEUE":{},
"PFC_PRIORITY_TO_PRIORITY_GROUP_MAP":{},
"TC_TO_PRIORITY_GROUP_MAP":{},
"TC_TO_QUEUE_MAP":{}
}

[Command]

show interface qos-map-bind

[Purpose]

Show all Qos map and interface binding configurations

[View]

System view

[Use Cases]

sonic# show interface qos-map-bind
{
"Ethernet1":{
"dot1p_to_tc_map":"[DOT1P_TO_TC_MAP|1]"
}
}

[Command]

show queue counters [interface-name]

show queue counters clear

[Purpose]

View export queue statistics

[View]

System view

[Use Cases]

sonic(config)# do show queue counters 1
Port TxQ Counter/pkts Counter/bytes Drop/pkts Drop/bytes
--------- ----- -------------- --------------- ----------- ------------
Ethernet1 ALL0 0 0 0 0
Ethernet1 ALL1 0 0 0 0
Ethernet1 ALL2 0 0 0 0
Ethernet1 ALL3 0 0 0 0
Ethernet1 ALL4 0 0 0 0
Ethernet1 ALL5 0 0 0 0
Ethernet1 ALL6 0 0 0 0
Ethernet1 ALL7 0 0 0 0

qos map type profile_name pri_origin pri_mapped

Section titled “qos map type profile_name pri_origin pri_mapped”

[Command]

qos map type profile_name pri_origin pri_mapped

[Purpose]

Add QoS mapping table template

[Parameter]

dot1p_to_tc Mapping of 802.1P priority of packet to internal priority

dscp_to_tc Mapping of the DSCP priority of a packet to the internal priority

tc_to_queue Mapping the priority of packet to the egress queue

pri_origin Pre-mapping priority

pri_mapped Priority after mapping

[View]

System configuration view

[User Scenario]

If user need to prioritize packets received by a device based on the dot1p/DSCP values carried in the packet for QoS scheduling, user can configure the mapping of packet priorities to local priorities using the qos map {dot1p_to_tc|dscp_to_tc} <profile_name> <in_value> <value> command. The qos map tc_to_queue <profile_name> <in_value> <value> command configures the mapping of local priorities to output queues, allowing you to implement different QoS strategies based on different scheduling methods for the output queues.

[Notes]

By default, the local priority is mapped to the queue is:

tcqueue
00
11
22
33
44
55
66
77

The DSCP/dot1p priority to the local priority is mapped to priority 0.

[Use Cases]

sonic(config)# qos map tc_to_queue queue 0 0
sonic(config)# qos map tc_to_queue queue 1 1
sonic(config)# qos map tc_to_queue queue 2 2
sonic(config)# qos map tc_to_queue queue 3 3
sonic(config)# qos map tc_to_queue queue 4 4
sonic(config)# qos map tc_to_queue queue 5 5
sonic(config)# qos map tc_to_queue queue 6 6
sonic(config)# qos map tc_to_queue queue 7 7

[Command]

qos-map-all bind tc_to_queue profile_name

[Purpose]

All interfaces are bound to QoS map

[Parameter]

profile_name qos_map name

[View]

System configuration view

[Use Cases]

sonic(config)# qos-map-all bind tc_to_queue test

[Command]

qos-map bind type profile_name

[Purpose]

Single interface with QoS map binding

[Parameter]

type dot1p_to_tc,dscp_to_tc, tc_to_queue

profile_name qos_map name

[View]

Interface view

[Use Cases]

sonic(config)# qos-map bind dscp_to_tc test

[Command]

show traffic-behavior rule

[Purpose]

Displays the configured aboute CAR policies

[View]

System view

[Use Cases]

sonic# show traffic-behavior rule
Name Type Mode CIR CBS
------ ------ ------ ------ -----
test BYTES SR_TCM 100000 64000

[Command]

show traffic-behavior counters

[Purpose]

View the hit statistics for the CAR

[View]

System view

[Use Cases]

sonic# show traffic-behavior counters
PolicerId Forward DROP Remark-Forward
------------- --------- ------ ----------------
flow_controll 1049585 12764 1810877

[Command]

traffic-behavior traffic-behavior-name

no traffic behavior traffic-behavior-name

[Purpose]

Create a traffic behavior and go to the Traffic behavior view, or go to the existing Traffic behavior view, or bind the traffic behavior to interface

[Purpose]

traffic-behavior-name traffic behavior name

[View]

System view, Interface view

[Use Cases]

sonic# configure terminal
sonic(config)# traffic-behavior test
sonic(config-traffic-behavior-test)#

[Command]

car {sr-tcm|tr-tcm} [meter-type {bytes|packets}] cir cir [cbs cbs] [pir pir][pbs pbs] [yellow-packet-action {DROP|FORWARD|REMARK}] [red-packet-action {DROP|FORWARD|REMARK}] [remark-dot1p value] [remark-dscp value] [remark-tc value]

[Purpose]

Create a CAR template to bind to traffic behavior

[Parameter]

sr-tcm Single bucket single speed mode, this mode only requires the configuration of cir and cbs
tr-tcm Double buckets and double speed mode
meter-type

If meter-type mode is bytes

cir, pir in kBps, cbs, pbs in byte

If meter-type mode is packets

cir, pir in kpps, cbs, pbs in packet

Default mode is bytes

cir Specifies the committed information rate (CIR), which is the allowed rate at which traffic can pass through.
cbs Specifies the committed burst size (CBS), which is the average volume of burst traffic that can pass through an interface.
pir Specifies the peak information rate (PIR), which is the maximum rate at which traffic can pass through.
pbs Specifies the peak burst size (PBS), which is the maximum volume of burst traffic that can pass through an interface.

red-packet-action {DROP|FORWARD|REMARK}/

yellow-packet-action {DROP|FORWARD|REMARK}

Specifies the packet color. The packet color is determined by cbs cbs-value and pbs pbs-value of this command.

[View]

Traffic behavior view

[Notes]

When the burst size of the message < cbs value, the message is marked as green

When cbs value < burst size < pbs value, the message is marked yellow

When burst size > pbs value, the message is marked as red

no car This command removes the CAR template

[Use Cases]

sonic# configure terminal
sonic(config)# traffic-behavior test
sonic(config-traffic-behavior-test)# car sr-tcm meter-type PACKETS cir 1000

traffic-behavior bind traffic-behavior-name

Section titled “traffic-behavior bind traffic-behavior-name”

[Command]

traffic-behavior bind [egress] traffic-behavior-name

no traffic-behavior bind traffic-behavior-name

[Purpose]

Bind traffic behavior to the interface

[Parameter]

egress Bind in the direction of the output interface

[View]

Interface view

[Use Cases]

sonic(config)# interface ethernet 1
sonic(config-if-1)# traffic-behavior bind test1

[Command]

show interface uc-tx-queue

[Purpose]

Display the queue scheduling method of the interface

[View]

System view

[Use Cases]

sonic# show interface uc-tx-queue
{
"Ethernet1|0":{
"SCHEDULER|scheduler.Ethernet1_0":{
"type":"STRICT"
}
},
"Ethernet1|2":{
"SCHEDULER|scheduler.Ethernet1_2":{
"type":"STRICT"
}
}
}

uc-tx-queue scheduler queue_id mode {STRICT| DWRR}

Section titled “uc-tx-queue scheduler queue_id mode {STRICT| DWRR}”

[Command]

uc-tx-queue scheduler queue_id mode STRICT [pir value] [pbs value]

uc-tx-queue scheduler queue_id mode DWRR [weight value] [pir value] [pbs value]

uc-tx-queue scheduler unicast

[Purpose]

Configure a scheduling mode for queues on an interface

[Parameter]

queue_id Queue ID, value range: 0~7

STRICT Enable strict priority queuing

DWRR Enable DWRR priority queuing

weight <value> Weight of a queue, Value range: 0~100

[View]

Interface view

[Usage Scenario]

In a network, the queue scheduling algorithm is a core mechanism for implementing Quality of Service (QoS) control. It manages the usage of link bandwidth for different types of packets, ensuring that various data streams receive services at different levels. Different queues under the same interface can adopt a mixed scheduling mode of STRICT and DWRR.

In this mode, queues configured with STRICT mode based on priority are scheduled first. When there are no packets in the STRICT mode queues, the system schedules DWRR queues based on their weights. By default, the scheduling method for queues is DWRR (Deficit Weighted Round Robin), with equal weights of 1.

This configuration allows network administrators to manage different types of traffic more flexibly, ensuring that high-priority traffic receives faster processing, while low-priority traffic can still effectively utilize link bandwidth.

[Use Cases]

sonic(config)# interface ethernet 1
sonic(config-if-1)# uc-tx-queue scheduler 0 mode strict
sonic(config-if-1)# uc-tx-queue scheduler 1 mode strict
sonic(config-if-1)# uc-tx-queue scheduler 2 mode DWRR weight 80
sonic(config-if-1)# uc-tx-queue scheduler 3 mode DWRR weight 80

[Command]

uc-tx-queue scheduler queue_id {pir|pbs}

[Purpose]

Configure queue rate limiting

[Parameter]

pir <value> Specifies the peak information rate of the queue, the unit is byte/s

pbs <value> Specifies the peak burst size of the queue, the unit is byte

[View]

Interface view

[Use Cases]

sonic(config)# interface ethernet 1
sonic(config-if-1)# uc-tx-queue scheduler 0 pir 1000

[Command]

port-shaper enable pir pbs

[Purpose]

Configure interface traffic shaping

[Parameter]

pir <value> Specifies the peak information rate of the queue, the unit is byte/s

pbs <value> Specifies the peak burst size of the queue, the unit is byte

[View]

Interface view

[Usage Scenario]

The traffic shaping of the interface can be directly configured based on the interface, and the effective direction is the output direction of the interface.

[Use Cases]

sonic(config)# interface ethernet 1
sonic(config-if-1)# port-shaper enable 5000000 2000000