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

[View]
System view

[Parameter]

ParameterDescription
allDisplay all priority mapping configuration information
dot1p_to_tcMapping of 802.1P priority of packet to internal priority
dscp_to_tcMapping of the DSCP priority of a packet to the internal priority
tc_to_queueMapping the priority of packet to the egress queue

[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 {dot1p_to_tc|dscp_to_tc|tc_to_queue}

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

[Command]
qos map {dot1p_to_tc|dscp_to_tc|tc_to_queue} profile_name pri_origin pri_mapped

[Purpose]
Add QoS mapping table template

[Parameter]

ParameterDescription
dot1p_to_tcMapping of 802.1P priority of packet to internal priority
dscp_to_tcMapping of the DSCP priority of a packet to the internal priority
tc_to_queueMapping the priority of packet to the egress queue
profile_nameQos_map name
pri_originPre-mapping priority
pri_mappedPriority 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> command.

The qos map tc_to_queue <profile_name> <in_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

[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]

ParameterDescription
profile_nameQos_map name

[View]
System configuration view

[Use Cases]

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

[Command]
qos-map bind {dscp_to_tc|dot1p_to_tc} profile_name

[Purpose]
Single interface with QoS map binding

[Parameter]

ParameterDescription
profile_nameQos_map name

[View]
Interface view

[Use Cases]

sonic(config)# interface ethernet 1
sonic(config-if-1)# qos-map bind dscp_to_tc ceshi

[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

[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)#

car {sr-tcm|tr-tcm} meter-type {bytes|packets}

Section titled “car {sr-tcm|tr-tcm} meter-type {bytes|packets}”

[Command]
car {sr-tcm|tr-tcm} [meter-type {bytes|packets}] [cir CIR_value ] [cbs CBS_value ] [pir PIR_value ] [pbs PBS_value ] [yellow-packet-action {DROP|FORWARD|REMARK}] [red-packet-action {DROP|FORWARD|REMARK}] [remark-dot1p Dot1p_value ] [remark-dscp Dscp_value ] [remark-tc Tc_value ]

[Purpose]
Create a CAR template to bind to traffic behavior

[Parameter]

ParameterDescription
sr-tcmSingle bucket single speed mode, this mode only requires the configuration of cir and cbs
tr-tcmDouble buckets and double speed mode
meter-type {bytes|packets}If meter-type mode is bytes:cir, pir in kBps, cbs, pbs in byteIf meter-type mode is packets:cir, pir in Kpps, cbs, pbs in packetDefault mode is bytes
CIR_valueSpecifies the committed information rate (CIR), which is the allowed rate at which traffic can pass through
CBS_valueSpecifies the committed burst size (CBS), which is the average volume of burst traffic that can pass through an interface.
PIR_valueSpecifies the peak information rate (PIR), which is the maximum rate at which traffic can pass through.
PBS_valueSpecifies the peak burst size (PBS), which is the maximum volume of burst traffic that can pass through an interface.

[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 1000000

[Command]
traffic-behavior bind policer_name no traffic-behavior bind

[Purpose]
Bind traffic behavior to the 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
uc-tx-queue scheduler queue_id mode DWRR weight
uc-tx-queue scheduler

[Purpose]
Configure a scheduling mode for queues on an interface

[Parameter]

ParameterDescription
queue_idQueue ID, value range: 0~7
STRICTEnable strict priority queuing
DWRREnable DWRR priority queuing
weightWeight 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 PIR_value ][pbs PBS_value ]

[Purpose]
Configure queue rate limiting

[Parameter]

ParameterDescription
pirSpecifies the peak information rate of the queue, the unit is byte/s
pbsSpecifies 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