Command Line Reference
QoS Configuration
Classification and Scheduling
45 min
class map class map class map view class map view table 1 class map view table 1 class map view command purpose show class map \[ class map name ] display class map configuration show class map \[ show class map \[ class map name ] \[command] show class map \[ class map name ] \[purpose] display class map configuration \[parameters] parameter description class map name class map name \[view] privileged user view \[use cases] sonic# show class map class map config class map config table 2 class map config table 2 class map config command purpose class map class map name create a class map, and enter class map configuration view match cos cos value specify the cos value class map class map class map name \[command] class map class map name \[purpose] create a class map, and enter class map configuration view \[parameters] parameter description class map name class map name \[view] global configuration view \[notes] run command no class map class map name to delete the class map \[use cases] sonic# configure terminal leaf 138(config)# class map cmap 4 leaf 138(config cmap cmap 4)# match cos 4 leaf 138(config cmap cmap 4)# show this ! class map cmap 4 match cos 4 leaf 138(config cmap cmap 4)# leaf 138(config cmap cmap 4)# match cos 3 4 leaf 138(config cmap cmap 4)# show this ! class map cmap 4 match cos 3 4 match cos match cos cos value \[command] match cos cos value \[purpose] specify the cos value \[parameters] parameter description cos value the range is from 0 to7 when specifying more than one, use spaces to separate them \[view] class map configuration view \[notes] cos 0 7 corresponds to queues 0 7 one to one modifying the map of cos to queues is not supported yet \[use cases] sonic# configure terminal sonic(config)# class map test 1000 sonic(config cmap test 1000)# match cos 2 3 4 5 diffserv map diffserv map diffserv map view diffserv map view table 3 diffserv map view table 3 diffserv map view command purpose show diffserv map \[ type { ip dscp default | diffserv map name | 8021p diffserv map name }] display diffserv map configuration show diffserv map \[type {ip dscp default| show diffserv map \[type {ip dscp default| diffserv map name |8021p diffserv map name }] \[command] show diffserv map \[ type { ip dscp default|diffserv map name | 8021p diffserv map name }] \[purpose] display diffserv map configuration \[parameters] parameter description diffserv map name diffserv map name \[view] privileged user view \[notes] default is the default diffserv map (ip dscp type) \[use cases] sonic# show diffserv map diffserv map default type ip dscp from 30 to 3 from 42 to 5 from 43 to 5 from 60 to 7 from 61 to 7 from 62 to 7 from 63 to 7 from 53 to 6 from 52 to 6 from 23 to 2 from 24 to 3 from 25 to 3 from 26 to 3 from 27 to 3 from 20 to 2 from 21 to 2 from 22 to 2 from 49 to 6 from 46 to 5 from 47 to 5 from 44 to 5 from 45 to 5 from 28 to 3 from 29 to 3 from 40 to 5 from 41 to 5 from 1 to 0 from 0 to 0 from 3 to 0 from 2 to 0 from 5 to 0 from 4 to 0 from 7 to 0 from 6 to 0 from 9 to 1 from 8 to 1 from 18 to 2 from 39 to 4 from 38 to 4 from 59 to 7 from 32 to 4 from 14 to 1 from 11 to 1 from 10 to 1 from 13 to 1 from 12 to 1 from 15 to 1 from 58 to 7 from 17 to 2 from 16 to 2 from 19 to 2 from 54 to 6 from 31 to 3 from 56 to 7 from 51 to 6 from 36 to 4 from 35 to 4 from 34 to 4 from 33 to 4 from 55 to 6 from 37 to 4 from 48 to 6 from 57 to 7 from 50 to 6 diffserv map config diffserv map config table 4 diffserv map config table 4 diffserv map config command purpose diffserv map type { ip dscp | 8021p } diffserv map name create a diffserv map, and enter diffserv map configuration view default { cos value | copy } configure cos mapping in bulk ip dscp dscp value cos cos value set dscp to cos mapping 8021p dot1p value cos cos value set dot1p to cos mapping diffserv map type {ip dscp|8021p} diffserv map type {ip dscp|8021p} diffserv map name \[command] diffserv maptype { ip dscp | 8021p } diffserv map name \[purpose] create a diffserv map, and enter diffserv map configuration view \[parameters] parameter description diffserv map name diffserv map name \[view] global configuration view \[notes] there are dscp mappings and dot1p mappings \[use cases] sonic# configure terminal sonic(config)# diffserv map type ip dscp testdiff1 sonic(config diffservmap testdiff1)# exit sonic(config)#diffserv map type 8021p testdiff2 sonic(config diffservmap testdiff2)# default { default { cos value |copy} \[command] default { cos value | copy } \[purpose] configure cos mapping in bulk \[parameters] parameter description cos value the range is from 0 to7 \[view] diffserv map configuration view \[notes] cos 0 7 corresponds to queues 0 7 one to one modifying the map of cos to queues is not supported yet ; default cos value indicates that all traffic will be mapped to the specified cos value default copy indicates to use the default dscp mapping(only for dscp to cos mapping) run command no default to delete this mapping configuration \[use cases] sonic(config)# diffserv map type 8021p test1 sonic(config diffservmap test1)# default 0 sonic(config diffservmap test1)# do show diffserv map diffserv map test1 type 8021p from 0 to 0 from 1 to 0 from 2 to 0 from 3 to 0 from 4 to 0 from 5 to 0 from 6 to 0 from 7 to 0 ip dscp ip dscp dscp value cos cos value \[command] ip dscp dscp value cos cos value \[purpose] set dscp to cos mapping \[parameters] parameter description dscp value the range is from 0 to 63 cos value the range is from 0 to 7 \[view] dscp diffserv map configuration view \[notes] cos 0 7 corresponds to queues 0 7 one to one modifying the map of cos to queues is not supported yet ; run command no ip dscp dscp value cos cos value to delete dscp to cos mapping \[use cases] sonic(config)# diffserv map type ip dscp testdiff1 sonic(config diffservmap testdiff1)# ip dscp 0 cos 2 sonic(config diffservmap testdiff1)# ip dscp 1 cos 4 8021p 8021p dot1p value cos cos value \[command] 8021p dot1p value cos cos value \[purpose] set dot1p to cos mapping \[parameters] parameter description dot1p value the range is from 0 to 7 cos value the range is from 0 to 7 \[view] dot1p diffserv map configuration view \[notes] cos 0 7 corresponds to queues 0 7 one to one modifying the map of cos to queues is not supported yet ; run command no 8021p dot1p value cos cos value to delete dot1p to cos mapping \[use cases] sonic(config)# diffserv map type 8021p testdiff2 sonic(config diffservmap testdiff2)# 8021p 0 cos 2 sonic(config diffservmap testdiff2)# 8021p 1 cos 4 policy map policy map policy map view policy map view table 5 policy map view table 5 policy map view command purpose show policy map \[ policy map name ] display policy map configuration show interface policy map display the relationship between interfaces and policy maps show policy map \[ show policy map \[ policy map name ] \[command] show policy map \[ policy map name ] \[purpose] display policy map configuration \[parameters] parameter description policy map name policy map name \[view] privileged user view \[use cases] sonic# show policy map ! policy map test ! policy map test11 ! policy map test pfc class cmap 4 priority group buffer pg lossless 1 ! show interface policy map show interface policy map \[command] show interface policy map \[purpose] display the relationship between interfaces and policy maps \[view] privileged user view \[use cases] sonic# show interface policy map port service policy \ 0/0 roce lossless 0/4 test 0/8 roce lossless 0/12 roce lossless 0/16 roce lossless 0/20 roce lossless 0/24 roce lossless 0/28 roce lossless 0/32 roce lossless 0/36 roce lossless 0/40 roce lossless 0/44 roce lossless 0/48 roce lossless …… policy map config policy map config table 6 policy map config table 6 policy map config command purpose policy map policy map name create a policy map, and enter traffic policy configuration view set cos { dscp | 8021p } diffserv diffserv map name set dscp or dot1p to cos mapping port shape target bit rate burst size add a speed limit policy for ports queue sheduler priority queue queue id add strict queue scheduling policies queue scheduler queue limit percent queue wight queue queue id add dwrr queue scheduling policies class { class map name | class default } specify the cos value of the policy, and enter policy map class map configuration view queue shape target bit rate burst size add a speed limit policy for queues wred {wred profile name | default drop | default ecn } bind wred profile to the class map priority group buffer buffer profile name bind a custom pg buffer profile (ingress) queue buffer buffer profile name bind a custom queue buffer profile (egress) bandwidth rate bps \[ burst size ] set minimum guaranteed bandwidth service policy policy map name apply the policy to the interface policy map policy map policy map name \[command] policy map policy map name \[purpose] create a policy map, and enter traffic policy configuration view \[parameters] parameter description policy map name policy map name \[view] global configuration view \[notes] run command no policy map policy map name to delete the policy map \[use cases] sonic# configure terminal sonic(config)# policy map test1 sonic(config pmap test1)# set cos {dscp|8021p} diffserv set cos {dscp|8021p} diffserv diffserv map name \[command] set cos { dscp | 8021p } diffserv diffserv map name \[purpose] set dscp or dot1p to cos mapping \[parameters] parameter description diffserv map name diffserv map name \[view] traffic policy configuration view \[notes] cos 0 7 corresponds to queues 0 7 one to one modifying the map of cos to queues is not supported yet run command no set cos { dscp | 8021p } diffserv diffserv map name to delete the mapping \[use cases] sonic(config pmap test1)# set cos dscp diffserv testdiff1 port shape port shape target bit rate burst size \[command] port shape target bit rate burst size \[purpose] add a speed limit policy for ports \[parameters] parameter description target bit rate specify the target rate in bps, the value range of cx308p 48y n v2, cx532p n v2 and cx732q n v2 model equipment is from 320000 to line rate, and the value range of other equipment is from 64000 to line rate burst size specify the burst size in bytes, and the range is from 1000 to 3145728 \[view] traffic policy configuration view \[notes] the port shaping policy should be configured on the egress interface of the traffic run command no port shape to delete the speed limit policy \[use cases] limit the speed of the interface to 2gbps sonic(config)# policy map pmap1 sonic(config pmap pmap1)# port shape 250000000 128000 sonic(config pmap pmap1)# interface ethernet 0/76 sonic(config if 0/76)# service policy pmap1 queue scheduler priority queue queue scheduler priority queue queue id \[command] queue scheduler priority queue queue id \[purpose] add strict queue scheduling policies \[parameters] parameter description queue id queue id, the range is \[0,7] \[view] traffic policy configuration view \[notes] run command no queue scheduler priority queue queue id to delete strict queue scheduling policies \[use cases] sonic(config pmap test1)# queue scheduler priority queue 2 sonic(config pmap test1)# queue scheduler priority queue 3 queue scheduler queue limit percent queue scheduler queue limit percent queue wight queue queue id \[command] queue scheduler queue limit percent queue wight queue queue id \[purpose] add dwrr queue scheduling policies \[parameters] parameter description queue wight queue weight, the range is \[1,100] queue id queue id, the range is \[0,7] \[view] traffic policy configuration view \[notes] run command no queue scheduler queue limit percent queue wight queue queue id to delete dwrr queue scheduling policies \[use cases] sonic(config pmap test1)# queue scheduler priority queue 2 sonic(config pmap test1)# queue scheduler priority queue 3 sonic(config pmap test1)# queue scheduler queue limit percent 20 queue 4 sonic(config pmap test1)# queue scheduler queue limit percent 20 queue 5 class { class { class map name |class default} \[command] class { class map name | class default } \[purpose] specify the cos value of the policy, and enter policy map class map configuration view \[parameters] parameter description class map name class map name \[view] traffic policy configuration view \[notes] when configuring queue limit/wred/queue buffer/pg buffer policy, you need to specify the matching cos value first cos 0 7 corresponds to queues 0 7 one to one modifying the map of cos to queues is not supported yet ; class default is the default class map of the system, which will match any other unclassified packets run command no class { class map name | class default } to unbind the class map from the policy \[use cases] sonic(config)# policy map roce lossless sonic(config pmap roce lossless)# class roce lossless class map sonic(config pmap c)# queue shape queue shape target bit rate burst size \[command] queue shape target bit rate burst size \[purpose] add a speed limit policy for queues \[parameters] parameter description target bit rate specify the target rate in bps, and the value range of cx308p 48y n v2, cx532p n v2 and cx732q n v2 model equipment is from 320000 to line rate, and the value range of other equipment is from 64000 to line rate burst size specify the burst size in bytes, and the range is from 1000 to 3145728 \[view] policy map class map configuration view \[notes] before running this command, please bind an existing class map to specify the queue to be matched for the policy run command no queue shape to delete the speed limit policy \[use cases] sonic(config)# class map classtest sonic(conifg cmap classtest)# exit sonic(config)# polic map test1 sonic(config pmap test1)# class classtest sonic(config pmap c)# queue shape 1200000 128000 wred { wred { wred profile name |default drop|default ecn} \[command] wred { wred profile name | default drop | default ecn } \[purpose] bind wred profile to the class map \[parameters] parameter description wred profile name profile name \[view] policy map class map configuration view \[notes] before running this command, please bind an existing class map to specify the queue to be matched for the policy two default wred templates, default drop and default ecn , are built in ' n' model switches, which users can bind directly, and not in ' n v2' run command no wred wred profile name to unbind the wred profile \[use cases] sonic(config)# class map classtest sonic(conifg cmap classtest)# exit sonic(config)# polic map test1 sonic(config pmap test1)# class classtest sonic(config pmap c)# wred wred profile priority group buffer priority group buffer buffer profile name \[command] priority group buffer buffer profile name \[purpose] bind a custom pg buffer profile (ingress) \[parameters] parameter description buffer profile name profile name \[view] policy map class map configuration view \[notes] use this command to bind a pg buffer profile when configuring a custom pfc before running this command, please bind an existing class map to specify the queue to be matched for the policy run command no priority group buffer buffer profile name to unbind the pg buffer profile \[use cases] sonic(config)# buffer profile pg lossless 100000 100m profile sonic(config buffer profile pg lossless 100000 100m profile)# mode lossless dynamic 1 size 1518 xoff 46496 xon offset 13440 sonic(config buffer profile pg lossless 100000 100m profile)# exit sonic(config)# polic map test1 sonic(config pmap test1)# class cmap 4 sonic(config pmap c)# priority group buffer pg lossless 100000 100m profile queue buffer queue buffer buffer profile name \[command] queue buffer buffer profile name \[purpose] bind a custom queue buffer profile (egress) \[parameters] parameter description buffer profile name profile name \[view] policy map class map configuration view \[notes] before running this command, please bind an existing class map to specify the queue to be matched for the policy it is generally not recommended to modify the interface egress queue buffer manually, so please be careful setting unreasonable parameters may cause loss of packets while forwarding traffic on the interface run command no queue buffer buffer profile name to unbind the queue buffer profile \[use cases] sonic(config)# class map classtest sonic(conifg cmap classtest)# exit sonic(config)# polic map test1 sonic(config pmap test1)# class classtest sonic(config pmap c)# queue buffer buffer profile bandwidth bandwidth rate bps \[ burst size ] \[command] bandwidth rate bps \[ burst size ] \[purpose] set minimum guaranteed bandwidth \[parameters] parameter description rate bps bandwidth value, unit bytes/s, the value range of cx308p 48y n v2, cx532p n v2 and cx732q n v2 model equipment is from 320000 to line rate, and the value range of other equipment is from 64000 to line rate burst size burst value, unit byte, range \[64000,3145728] \[view] policy map class map configuration view \[notes] before running this command, please bind an existing class map to specify the queue to be matched for the policy run command no bandwidth to delete bandwidth configuration \[use cases] sonic(config)# class map classtest sonic(conifg cmap classtest)# exit sonic(config)# polic map test1 sonic(config pmap test1)# class classtest sonic(config pmap c)# bandwidth 64000 service policy service policy policy map name \[command] service policy policy map name \[purpose] apply the policy to the interface \[parameters] parameter description policy map name policy map name \[view] physical interface configuration view \[notes] when the policy has been applied to an interface, please unbind the interface from the policy before modifying the policy configuration run command no service policy policy map name to unbind the policy \[use cases] sonic(config)# interface ethernet 0/0 sonic(config if 0/0)# service policy test1 queue queue queue view queue view table 7 queue view table 7 queue view command purpose show counters queue \[ interface name ] display queue counters clear counters queue clear queue counters show counters queue \[ show counters queue \[ interface name ] \[command] show counters queue \[ interface name ] \[purpose] display queue counters \[parameters] parameter description interface name interface name (eg 0/1) \[view] privileged user view \[use cases] sonic# show counters queue 0/0 the poll time of queues counters is 2000 0 ms, update time of queue rates is 4000 0 ms port txq counter/pkts counter/bytes drop/pkts drop/bytes counterrate/pkts counterrate/bytes droprate/pkts droprate/bytes occupancy/bytes sharedoccupancy/bytes \ 0/0 uc0 0 0 0 0 0 00/s 0 00 b/s 0 00/s 0 00 b/s 0 0 0/0 uc1 0 0 0 0 0 00/s 0 00 b/s 0 00/s 0 00 b/s 0 0 0/0 uc2 0 0 0 0 0 00/s 0 00 b/s 0 00/s 0 00 b/s 0 0 0/0 uc3 0 0 0 0 0 00/s 0 00 b/s 0 00/s 0 00 b/s 0 0 0/0 uc4 0 0 0 0 0 00/s 0 00 b/s 0 00/s 0 00 b/s 0 0 0/0 uc5 0 0 0 0 0 00/s 0 00 b/s 0 00/s 0 00 b/s 0 0 0/0 uc6 0 0 0 0 0 00/s 0 00 b/s 0 00/s 0 00 b/s 0 0 0/0 uc7 0 0 0 0 0 00/s 0 00 b/s 0 00/s 0 00 b/s 0 0 clear counters queue clear counters queue \[command] clear counters queue \[purpose] clear queue counters \[view] privileged user view \[use cases] sonic# clear counters queue
