目录

简介

NCS5500上的QoS实现

故障排除指南

入口QoS

出口QoS

监控FMQ

要收集的其他命令

限制/警告

标记

带宽

入口QoS

出口QoS

HQoS

提交后不支持的配置警告

简介

本文档介绍思科网络融合系统(NCS)5500系列的QoS故障排除指南。

NCS5500上的QoS实现

- NCS5500中的QoS在NPU的入口和出口TM上执行。NCS5500实施虚拟输出队列架构，其中出口队列基于信用请求和授权方案。

- 实际缓冲发生在入口转发设备上。出口转发设备通过向任何请求信用的入口转发设备授予信用来决定可以发送多少流量。

- 任何出口接口或调度元素的所有队列都复制到所有要向该接口发送数据包的入口设备。这些队列称为虚拟输出队列(VOQ)。

- 实际上，每个接口或调度元素支持8个队列。在出口上，调度元素支持优先级、最小、最大和超额。计划根据这些属性提供积分。

- 因此，在出口处配置接口的调度属性，而在入口处配置拥塞控制和拥塞避免值。

- 当IRPP决定向给定目的/输出端口发送数据包时，它会将数据包放入特定VOQ。  在数据包的入队期间，会验证数据包是否可以基于入队。

- 在入口接口的VOQ缓冲区占用和虚拟统计队列(VSQ)设置上。VSQ是基于流量类的缓冲区管理方案。

- 如果超出缓冲区，则根据相应的用户配置丢弃数据包或将流量控制发送到入口端口。默认情况下，如果数据包未通过入队检查，则会丢弃这些数据包。

- NCS5500的LC没有单独的排队ASIC。该平台实现基于调度的虚拟输出排队。因此，没有入口队列的概念。入口服务策略，支持标记操作和仅限策略。

- NCS5500实现了不同的标记和排队概念。它基于qos-group和traffic-class。在出口上，这两个参数匹配以注释流量和选择队列。

各种命令存在的限制。有关详细信息，请参阅。

故障排除指南

入口QoS

最有用、最重要的命令之一是show qos interface <interface> input|output

它提供有关您所应用的服务策略的有用信息。它显示已配置和转换的参数（在监察器、整形器、尾部丢弃阈值等情况下）、虚拟队列ID、记帐类型等。

从入口上的简单策略开始。

class-map match-any i_match

match precedence ipv4 3

match mpls experimental topmost 3

end-class-map

!

policy-map ingress_marking

class i_match

set qos-group 3

set discard-class 2

!

class class-default

!

end-policy-map

!

RP/0/RP0/CPU0:xrg-ncs-04#show qos interface hundredGigE 0/0/0/35 input

Mon Dec 4 21:30:44.131 UTC

NOTE:- Configured values are displayed within parentheses

Interface HundredGigE0/0/0/35 ifh 0x138 -- input policy

NPU Id: 5

Total number of classes: 2

Interface Bandwidth: 100000000 kbps

Policy Name: ingress_marking

Accounting Type: Layer1 (Include Layer 1 encapsulation and above)

------------------------------------------------------------------------------

Level1 Class = i_match

New qos group = 3

New discard class = 2

Default Policer Bucket ID = 0x21

Default Policer Stats Handle = 0x0

Policer not configured for this class

Level1 Class = class-default

Default Policer Bucket ID = 0x20

Default Policer Stats Handle = 0x0

Policer not configured for this class

qos_ea正在LC上HW中编程策略。使用show feature-mgr client qos-ea policy summary location <node>可获得LC上已配置策略的概述。

RP/0/RP0/CPU0:xrg-ncs-04#show feature-mgr client qos-ea policy summary location 0/0/CPU0

Mon Dec 4 22:03:12.371 UTC

Pol-Num Flags Classes Ref-cnt In-Hash Compiled Policy Name

------- ---------- ------- ------- ------- -------- -----------

19 0x00004000 2 4 Yes Yes ingress_marking

如果查看此命令的详细视图，您可以看到它在类中的匹配位置：

RP/0/RP0/CPU0:xrg-ncs-04#show feature-mgr client qos-ea policy policy ingress_marking location 0/0/CPU0

Mon Dec 4 22:07:53.134 UTC

Policy name: ingress_marking

Policy Number: 19

Flags: 0x4000 [DNX_FM_POL_TOS]

Class Number: 2

Reference Count: 4

In Hash: Yes

Is Compiled: Yes

Level: 0 Class Number: 0 Class Name: i_match

Match Count: 2 Flags: 0x0 Logical Op: MATCH_ANY

ACE: 0 Class:0 Match:0 proto IPV4 Flags:0x8011 [Grant]

Source IPv4 Address: 0.0.0.0 (255.255.255.255)

Destination IPv4 Address: 0.0.0.0 (255.255.255.255)

Precedence Value: 3

UNKNOWN: UNKNOWN: UNKNOWN: ACE: 0 Class:0 Match:1 proto MPLS Flags:0x208040 [Grant]

MPLS EXP Value: 3

UNKNOWN: UNKNOWN: UNKNOWN: Final List

ACE: 0 Class:0 Match:0 proto IPV4 Flags:0x8011 [Grant]

Source IPv4 Address: 0.0.0.0 (255.255.255.255)

Destination IPv4 Address: 0.0.0.0 (255.255.255.255)

Precedence Value: 3

UNKNOWN: UNKNOWN: UNKNOWN: ACE: 1 Class:0 Match:1 proto MPLS Flags:0x208040 [Grant]

MPLS EXP Value: 3

UNKNOWN: UNKNOWN: UNKNOWN:

Level: 0 Class Number: 1 Class Name: class-default

Match Count: 1 Flags: 0x0 Logical Op: MATCH_ANY

ACE: 0 Class:1 Match:0 proto ANY Flags:0x28000 [Grant][Default]

UNKNOWN: UNKNOWN: UNKNOWN: Final List

ACE: 2 Class:1 Match:0 proto ANY Flags:0x28000 [Grant][Default]

UNKNOWN: UNKNOWN: UNKNOWN:

QOS_EA信息也可以从功能管理器的角度显示。首先显示摘要：

RP/0/RP0/CPU0:xrg-ncs-04#show feature-mgr client qos-ea feature summary location 0/0/CPU0

Mon Dec 4 22:30:09.362 UTC

IFH NPU DIR Lookup-type ACL-ID Refcnt Feature-Name

---------- --- --- -------------------- ------ ------ ------------

0x138 5 IN IPV4_QOS 14 1 ingress_marking:0

0x138 5 IN IPV6_QOS 14 1 ingress_marking:0

0x138 5 IN MPLS_QOS 14 1 ingress_marking:0

0x138 5 IN L2_QOS 14 1 ingress_marking:0

在下一步中，您可以显示详细信息：

RP/0/RP0/CPU0:xrg-ncs-04#show feature-mgr client qos-ea feature feature-name ingress_marking:0 direction ingress lookup mpls interface HundredGigE 0/0/0/35 location 0/0/CPU0

Mon Dec 4 22:31:20.588 UTC

Feature name: ingress_marking:0

Lookup Type: MPLS_QOS

Direction: IN

Reference Count: 1

NPU: 5

Interfaces Attached: HundredGigE0_0_0_35

Number of Entries: 2

Number of Verified Entries: 0

Number of ACEs: 2

ACL ID: 14

ACL ID Ref Cnt: 4

ACL ID Min Length(bits): 0

ACL ID Max Length(bits): 5

ACL ID Num Entries: 30

ACL ID Num Free Entries: 29

Compression Level: 0(UNCOMPRESSED)

qos_ea跟踪显示在接口上应用服务策略时事件的顺序。它会显示问题，以防其失败。

RP/0/RP0/CPU0:xrg-ncs-04#show qos ea trace all reverse location 0/0/CPU0

Mon Dec 4 22:17:26.297 UTC

3077 wrapping entries (36992 possible, 18816 allocated, 0 filtered, 3077 total)

Dec 4 21:30:18.280 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: (line# 2882) : Responded to IM (batch size: 1)

Dec 4 21:30:18.280 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: post_caps_processing : Registering with ETHER EA for subid notification. Bulk count 1

Dec 4 21:30:18.280 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: caps_add_notify_remote Input num of interfaces 1

Dec 4 21:30:18.280 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: process_caps_add : End: count = 1 ok_count 1. New num_policies_in 1 num_policies_out 2

Dec 4 21:30:18.280 qos_ea/int_evts 0/0/CPU0 t14563 SCOL: scol_interface_add : ifh 0x138 ea_intf_type MainIf : interface added to SCOL tree

Dec 4 21:30:18.280 qos_ea/int_evts 0/0/CPU0 t14563 SCOL: scol_interface_add_internal : ifh 0x138: after avl_tree_insert, new tree size is 1

Dec 4 21:30:18.280 qos_ea/int_evts 0/0/CPU0 t14563 UTIL: (line# 1665) Child info aggr bw add: Current propagated_bw_sum in npu_ctx after adding propagated_bw in if_qos 0 is 0, ifh 0x138

Dec 4 21:30:18.280 qos_ea/int_evts 0/0/CPU0 t14563 UTIL: insert_if_qos_from_list_by_npu_ctx : Inserting to list: if_qos 0x3087c0bb78 prev 0x0 next 0x0 ifh 0x138 head 0x0 tail 0x0 count 0

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 ACTN: results_add for ifh 0x138 with pmap ingress_marking

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: fm_program : npu_id 5 ifh 0x138 policy_name ingress_marking :Compiling policy and sending VMR to FM

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 ACTN: (line# 1597) : class_name class-default offset 0 policer_id 32: configuring policer...

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : cir_kbps 720000000 cir_burst_kbits 32768 cir_burst 4194304pir_kbps 720000000 cir_burst_kbits 32768 pir_burst 4194304

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : ifh 0x138 npu 5 offset 0 policer_id 32 mode/policer_type 0/0 inlif 0

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : for ifh 0x138 for npu 5 offset 0

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 ACTN: (line# 1597) : class_name i_match offset 1 policer_id 33: configuring policer...

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : cir_kbps 720000000 cir_burst_kbits 32768 cir_burst 4194304pir_kbps 720000000 cir_burst_kbits 32768 pir_burst 4194304

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : ifh 0x138 npu 5 offset 1 policer_id 33 mode/policer_type 0/0 inlif 0

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : for ifh 0x138 for npu 5 offset 1

Dec 4 21:30:18.217 qos_ea/int_evts 0/0/CPU0 t14563 ACTN: mark_actn_process Unconditional mark set for cmaps i_match

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 ACTN: resource_cfg for ifh 0x138 ul_ifh 0x0 with pmap ingress_marking

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 CMAP: classmap_process : chd 0x7feedd339b98, if_qos 0x3087c0bb78, class_info 0x3087c0b368

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 PWALK: preprocess_action : ifh 0x138 ul_ifh 0x0 policy_name ingress_marking class_name class-default

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 PWALK: pwalk_process_class : depth 0, usr_data->class_list 0x3087c0bb90, class_name class-default

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 CMAP: classmap_process : chd 0x7feedd33b478, if_qos 0x3087c0bb78, class_info 0x3087c0b770

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 PWALK: preprocess_action : ifh 0x138 ul_ifh 0x0 policy_name ingress_marking class_name i_match

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 PWALK: pwalk_process_class : depth 0, usr_data->class_list 0x3087c0bb90, class_name i_match

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 PWALK: pwalk_start_level : depth 0, stack 0x7fff8a11be40 ctx 0x7fff8a11c670

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 PWALK: policy_walk : policy_oper 0 policy_name ingress_marking ifh 0x138 ul_ifh 0x0 walk_flags 0x0

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 UTIL: if_qos_insert_to_db : Inserting to hash table: npu_id 5 ifh 0x138, ul_ifh 0x0, dir 0

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 RATE: dnx_qosea_policy_resolve : policy_name ingress_marking ifh 0x138 ul_ifh 0x0 intf_kbps 100000000

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: policy_add : npu_id 5 ifh 0x138 ul_ifh 0x0 dir ingress policy_name ingress_marking num_classes 0 max_hierarchy 0

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 VRFY: policy_verify : Verifying policy ingress_marking pmaphd 0x7feedd2c1088

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 UTIL: if_qos_init : Initializing if_qos 0x3087c0bb78 with npu_id 5 ifh 0x138 ul_ifh 0x0 direction ingress ea_intf_type MainIf

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 VRFY: check_policy_on_parent_subintf : Did not find any reference to parent interface (0x138) in par_child_info_array

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 VRFY: check_policy_on_parent_subintf : parent_ifh: 0x138, dir: 0 (ingress)

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 UTIL: intf_bw_get : Banwdith of ifh 0x138 is intf_kbps: 100000000 kbps

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: caps_add_int : ifh 0x138 ea_intf_type MainIf dir ingress

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: caps_add : ifh 0x138 ea_intf_type MainIf dir ingress policy_name ingress_marking

Dec 4 21:30:18.100 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: process_caps_add : 1 of 1 direction ingress on interface 0x138 policy_name ingress_marking

Dec 4 21:30:18.093 qos_ea/int_evts 0/0/CPU0 t14563 CAPS: process_caps_add : batch count = 1 . Current num_policies_in 0 num_policies_out 2

Dec 4 21:30:18.093 qos_ea/int_evts 0/0/CPU0 t14563 INT: im_msg_handler : Rx: caps add message (batch size: 1)

当更改策略并为实例添加监察器到i_match类时，它将在qos_ea跟踪中可见。NCS5500支持策略映射的就地修改。

RP/0/RP0/CPU0:xrg-ncs-04(config-pmap-c)#police rate percent 50

RP/0/RP0/CPU0:xrg-ncs-04(config-pmap-c-police)#commit

Dec 4 22:49:39.567 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : for ifh 0x138 for npu 5 offset 0

Dec 4 22:49:39.567 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: (line# 147) : cir_kbps 50000000 cir_burst 4194304pir_kbps 0 pir_burst 0

Dec 4 22:49:39.567 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: (line# 144) : ifh 0x138 npu 5 offset 1 policer_type = 0 is_parent=0policer_id = 33

Dec 4 22:49:39.567 qos_ea/int_evts 0/0/CPU0 t14563 ACTN: (line# 1822) : class_name i_match offset 0 policer_id 33: configuring policer...

Dec 4 22:49:39.567 qos_ea/int_evts 0/0/CPU0 t14563 ACTN: (line# 1597) : class_name i_match offset 1 policer_id 33: configuring policer...

show qos interface命令也反映了添加内容：

RP/0/RP0/CPU0:xrg-ncs-04#show qos interface hundredGigE 0/0/0/35 input

Mon Dec 4 23:25:19.684 UTC

NOTE:- Configured values are displayed within parentheses

Interface HundredGigE0/0/0/35 ifh 0x138 -- input policy

NPU Id: 5

Total number of classes: 2

Interface Bandwidth: 100000000 kbps

Policy Name: ingress_marking

Accounting Type: Layer1 (Include Layer 1 encapsulation and above)

------------------------------------------------------------------------------

Level1 Class = i_match

New qos group = 3

New discard class = 2

Policer Bucket ID = 0x21

Policer Stats Handle = 0x0

Policer committed rate = 49680000 kbps (50 %)

Policer conform burst = 4194304 bytes (default)

Level1 Class = class-default

Default Policer Bucket ID = 0x20

Default Policer Stats Handle = 0x0

Policer not configured for this class

执行上述命令时，qos_ea跟踪还会显示转换后的值。

监察器使用22 kbps的增量步长。当在线卡的公式中使用时，配置值四舍五入为22kbps的最接近倍数。

Dec 4 23:25:19.773 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : cir_kbps 49680000 cir_burst_kbits 32768 cir_burst 4194304pir_kbps 49680000 cir_burst_kbits 32768 pir_burst 4194304

Dec 4 23:25:19.773 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : ifh 0x138 npu 5 offset 1 policer_id 33 mode/policer_type 0/0 inlif 0

Dec 4 23:25:19.773 qos_ea/int_evts 0/0/CPU0 t14563 POLICER-INT: policer_get : for ifh 0x138 for npu 5 offset 1

出口QoS

出口QoS支持排队操作。在NCS5500上，可以在出口方向有两个服务策略。一个用于标记，一个用于排队。这是用于标记操作：

class-map match-any e_mark

match qos-group 3

end-class-map

!

policy-map egress_marking

class e_mark

set mpls experimental imposition 2

!

class class-default

!

end-policy-map

!

RP/0/RP0/CPU0:xrg-ncs-06#show feature-mgr client qos-ea policy summary location 0/0/CPU0

Thu Dec 21 10:44:33.978 UTC

Pol-Num Flags Classes Ref-cnt In-Hash Compiled Policy Name

------- ---------- ------- ------- ------- -------- -----------

1 0x01000000 2 1 Yes Yes egress_marking

RP/0/RP0/CPU0:xrg-ncs-06#show feature-mgr client qos-ea feature summary location 0/0/CPU0

Thu Dec 21 10:59:08.872 UTC

IFH NPU DIR Lookup-type ACL-ID Refcnt Feature-Name

---------- --- --- -------------------- ------ ------ ------------

0x340 0 OUT MAP_ID_QOS 0 1 egress_marking:0

出口队列策略

class-map match-any tc1

match traffic-class 1

end-class-map

!

class-map match-any tc2

match traffic-class 2

end-class-map

!

class-map match-any tc3

match traffic-class 3

end-class-map

!

class-map match-any tc4

match traffic-class 4

end-class-map

!

class-map match-any tc5

match traffic-class 5

end-class-map

!

policy-map POLICY_QOS_OUT

class tc1

priority level 1

shape average percent 19

queue-limit 500 us

!

class tc2

priority level 2

shape average percent 20

queue-limit 500 us

!

class tc3

bandwidth percent 1

!

class tc4

bandwidth percent 20

!

class tc5

bandwidth percent 20

!

class class-default

bandwidth percent 20

!

end-policy-map

!

One can quick verify where a QoS policy is applied.

RP/0/RP0/CPU0:xrg-ncs-04#show policy-map targets pmap-name POLICY_QOS_OUT location 0/0/CPU0

Mon Dec 18 21:13:01.463 UTC

1) Policymap: POLICY_QOS_OUT Type: qos

Targets (applied as main policy):

HundredGigE0/0/0/35 output

Total targets: 1

Targets (applied as child policy):

Total targets: 0

show QoS interface命令显示已配置的参数以及每个类的队列ID（配置了排队操作）。此外，您还可以获取默认值，如队列大小。

RP/0/RP0/CPU0:xrg-ncs-04#show qos interface hundredGigE 0/0/0/35 output

Thu Dec 14 20:56:29.796 UTC

NOTE:- Configured values are displayed within parentheses

Interface HundredGigE0/0/0/35 ifh 0x138  -- output policy

NPU Id:                        5

Total number of classes:       6

Interface Bandwidth:           100000000 kbps

VOQ Base:                      1032

Accounting Type:               Layer1 (Include Layer 1 encapsulation and above)

------------------------------------------------------------------------------

Level1 Class (HP1)                       =   tc1

Egressq Queue ID                         =   1033 (HP1 queue)

Queue Max. BW.                           =   0 kbps (19 %)

Guaranteed service rate                  =   19000000 kbps

TailDrop Threshold                       =   1187840 bytes / 500 us (500 us)

WRED not configured for this class

Level1 Class (HP2)                       =   tc2

Egressq Queue ID                         =   1034 (HP2 queue)

Queue Max. BW.                           =   0 kbps (20 %)

Guaranteed service rate                  =   20000000 kbps

TailDrop Threshold                       =   1253376 bytes / 501 us (500 us)

WRED not configured for this class

Level1 Class                             =   tc3

Egressq Queue ID                         =   1035 (LP queue)

Queue Max. BW.                           =   100884395 kbps (default)

Queue Min. BW.                           =   1020015 kbps (1 %)

Inverse Weight / Weight                  =   1 / (BWR not configured)

Guaranteed service rate                  =   1000000 kbps

TailDrop Threshold                       =   1253376 bytes / 10 ms (default)

WRED not configured for this class

Level1 Class                             =   tc4

Egressq Queue ID                         =   1036 (LP queue)

Queue Max. BW.                           =   100824615 kbps (default)

Queue Min. BW.                           =   20164923 kbps (20 %)

Inverse Weight / Weight                  =   1 / (BWR not configured)

Guaranteed service rate                  =   20000000 kbps

TailDrop Threshold                       =   25034752 bytes / 10 ms (default)

WRED not configured for this class

Level1 Class                             =   tc5

Egressq Queue ID                         =   1037 (LP queue)

Queue Max. BW.                           =   100824615 kbps (default)

Queue Min. BW.                           =   20164923 kbps (20 %)

Inverse Weight / Weight                  =   1 / (BWR not configured)

Guaranteed service rate                  =   20000000 kbps

TailDrop Threshold                       =   25034752 bytes / 10 ms (default)

WRED not configured for this class

Level1 Class                             =   class-default

Egressq Queue ID                         =   1032 (Default LP queue)

Queue Max. BW.                           =   100824615 kbps (default)

Queue Min. BW.                           =   20164923 kbps (20 %)

Inverse Weight / Weight                  =   1 / (BWR not configured)

Guaranteed service rate                  =   20000000 kbps

TailDrop Threshold                       =   25034752 bytes / 10 ms (default)

WRED not configured for this class

RP/0/RP0/CPU0:xrg-ncs-04#show feature-mgr client qos-ea policy summary location 0/0/CPU0

Thu Dec 14 21:27:30.486 UTC

Pol-Num  Flags     Classes Ref-cnt In-Hash Compiled  Policy Name

------- ---------- ------- ------- ------- -------- -----------

3       0x00010000       6       0     Yes       No POLICY_QOS_OUT

2       0x00000000       1       0     Yes       No p_out

1       0x00004000       2       4     Yes       Yes ingress_marking

RP/0/RP0/CPU0:xrg-ncs-04#show feature-mgr client qos-ea policy policy POLICY_QOS_OUT location 0/0/CPU0

Thu Dec 14 21:28:22.182 UTC

Policy name:        POLICY_QOS_OUT

Policy Number:      3

Flags:              0x10000 [DNX_FM_POL_TC]

Class Number:       6

Reference Count:    0

In Hash:            Yes

Is Compiled:        No

Level: 0 Class Number: 0 Class Name: tc1

Match Count: 1 Flags: 0x0 Logical Op: MATCH_ANY

ACE: 0 Class:0 Match:0 proto ANY Flags:0x8080 [Grant]

DNX_FM_RANGE_TC: (1, 1)

UNKNOWN:                UNKNOWN:

Level: 0 Class Number: 1 Class Name: tc2

Match Count: 1 Flags: 0x0 Logical Op: MATCH_ANY

ACE: 0 Class:1 Match:0 proto ANY Flags:0x8080 [Grant]

DNX_FM_RANGE_TC: (2, 2)

UNKNOWN:                UNKNOWN:

Level: 0 Class Number: 2 Class Name: tc3

Match Count: 1 Flags: 0x0 Logical Op: MATCH_ANY

ACE: 0 Class:2 Match:0 proto ANY Flags:0x8080 [Grant]

DNX_FM_RANGE_TC: (3, 3)

UNKNOWN:                UNKNOWN:

Level: 0 Class Number: 3 Class Name: tc4

Match Count: 1 Flags: 0x0 Logical Op: MATCH_ANY

ACE: 0 Class:3 Match:0 proto ANY Flags:0x8080 [Grant]

DNX_FM_RANGE_TC: (4, 4)

UNKNOWN:                UNKNOWN:

Level: 0 Class Number: 4 Class Name: tc5

Match Count: 1 Flags: 0x0 Logical Op: MATCH_ANY

ACE: 0 Class:4 Match:0 proto ANY Flags:0x8080 [Grant]

DNX_FM_RANGE_TC: (5, 5)

UNKNOWN:                UNKNOWN:

Level: 0 Class Number: 5 Class Name: class-default

Match Count: 1 Flags: 0x0 Logical Op: MATCH_ANY

ACE: 0 Class:5 Match:0 proto ANY Flags:0x28000 [Grant][Default]

UNKNOWN:                UNKNOWN:

Adding WRED:

policy-map POLICY_QOS_OUT

class tc4

random-detect discard-class 1 5 ms 15 ms

!

class class-default

!

end-policy-map

!

end

Level1 Class                             =   tc4

Egressq Queue ID                         =   1036 (LP queue)

Queue Max. BW.                           =   100824615 kbps (default)

Queue Min. BW.                           =   20164923 kbps (20 %)

Inverse Weight / Weight                  =   1 / (BWR not configured)

Guaranteed service rate                  =   20000000 kbps

TailDrop Threshold                       =   75497472 bytes / 30 ms (default)

WRED profile for Discard_Class 1

WRED Min. Threshold                      =   12517376 bytes (5 ms)

WRED Max. Threshold                      =   37748736 bytes (15 ms)

Default RED profile

WRED Min. Threshold                      =   0 bytes (0 ms)

WRED Max. Threshold                      =   0 bytes (0 ms)

RP/0/RP0/CPU0:xrg-ncs-04#show controllers npu voq-usage interface HundredGigE 0/0/0/35 instance 5 location 0/0/CPU0

Tue Nov  7 17:24:03.570 UTC

-------------------------------------------------------------------

Node ID: 0/0/CPU0

Intf         Intf     NPU NPU  PP   Sys   VOQ   Flow   VOQ    Port

name         handle    #  core Port Port  base  base   port   speed

(hex)                                     type   (Gbps)

----------------------------------------------------------------------

Hu0/0/0/35   138       5   0    1   321   1032   1064 local   100            <- 1032 (Default LP queue) - displays the base queue -> refer to show qos interface commaand.

Display the queue details:

RP/0/RP0/CPU0:xrg-ncs-04#show controllers fia diagshell 5 "diag cosq voq id=1036 det=1" location 0/0/CPU0    <- 1036 (LP queue) - refer to show qos interface commaand.

Thu Dec 14 21:51:33.184 UTC

Node ID: 0/0/CPU0

Core 0:

Basic info

Q type: voq

num cos: 8, cosq class: 4

Base queue id: 1032, base queue gport: 0x24000408

Credit request type: BCM_COSQ_DELAY_TOLERANCE_100G_SLOW_ENABLED Adjusted for slow enabled 100Gb ports

Watchdog enable in common status message mode

Is queue in credit watchdog queue range:True

Credit watchdog message time: 0

Delete queue time: 512

Backoff enter queue credit balance threshold: 40960

Backoff exit queue credit balance threshold: 40960

Backlog enter queue credit balance threshold: 40960

Backlog exit queue credit balance threshold: 40960

Empty queue satisfied credit balance threshold: 0

Max empty queue credit balance threshold: 16384

Exceed max empty queue credit balance threshold: 1

Off-To-Slow credit balance threshold: 0

Off-To-Normal credit balance threshold: 38912

Slow-To-Normal credit balance threshold: 38912

Normal-To-Slow credit balance threshold: 38912

Delay Tolerance is NOT OCB only

Delay Tolerance is NOT High Q Priority

Slow Level Thresh Down in slow level number: 0 is: 0

Slow Level Thresh Down in slow level number: 1 is: 0

Slow Level Thresh Down in slow level number: 2 is: 0

Slow Level Thresh Down in slow level number: 3 is: 0

Slow Level Thresh Down in slow level number: 4 is: 0

Slow Level Thresh Down in slow level number: 5 is: 0

Slow Level Thresh Down in slow level number: 6 is: 0

Slow Level Thresh Up in slow level number: 0 is: 0

Slow Level Thresh Up in slow level number: 1 is: 0

Slow Level Thresh Up in slow level number: 2 is: 0

Slow Level Thresh Up in slow level number: 3 is: 0

Slow Level Thresh Up in slow level number: 4 is: 0

Slow Level Thresh Up in slow level number: 5 is: 0

Slow Level Thresh Up in slow level number: 6 is: 0

Credit value(local): 1024, Credit value(remote): 2048

Credit discount value: -2

Rate class info

WRED info:

Green : enable(False) min_thresh(0) max_thresh(0) drop_probability(0)

Yellow: enable(True) min_thresh(12517376) max_thresh(37748736) drop_probability(9)

Red   : enable(False) min_thresh(0) max_thresh(0) drop_probability(0)

Black : enable(False) min_thresh(0) max_thresh(0) drop_probability(0)

Tail drop info:

Green : max queue size in bytes(75497472), max queue size in BDs(294912)

Yellow: max queue size in bytes(75497472), max queue size in BDs(294912)

Red   : max queue size in bytes(75497472), max queue size in BDs(294912)

Black : max queue size in bytes(75497472), max queue size in BDs(294912)

Guaranteed info:

Green : min queue size in bytes(0), min queue size in BDs(0)

Yellow: min queue size in bytes(0), min queue size in BDs(0)

Red   : min queue size in bytes(0), min queue size in BDs(0)

Black : min queue size in bytes(0), min queue size in BDs(0)

Fair adaptive tail drop info:

Enable: True

Green : alpha(-2)

Yellow: alpha(-2)

Red   : alpha(-2)

Black : alpha(-2)

ECN wred info: enable(False) min_thresh(0) max_thresh(0) drop_probability(0)

ECN max queue size in bytes(524288), max queue size in BDs(524288)

VSQ-related

Category class: 2

Traffic class: 4

Connection class: 0

Green : Admission-test-templates(0)

Yellow: Admission-test-templates(0)

Red   : Admission-test-templates(0)

Black : Admission-test-templates(0)

AdmissionTestProfileA[0]:'category, traffic class'

AdmissionTestProfileB[0]: 'category'

current queue size: 0 bytes, current queue bds size: 0

Attached VOQ connector: 0x00000428

Destination sys port: 0x00007fff

OCB eligiblity: True

[SNIP]

output for core 1 is ommitted.

要监控队列大小，可以运行上述命令并为相应行运行grep。

示例： show controllers fia diagshell 5 "diag cosq voq id=1036 core=0 det=1" location 0/0/CPU0 |当前队列大小

统计信息可以使用show policy-map interface命令显示。

示例：show policy-map interface 100GigE 0/0/0/35 output location 0/0/CPU0

注意：我们从其他XR平台了解到，输出并不详细。它不显示相应WRED或RED配置文件的行。

RP/0/RP0/CPU0:xrg-ncs-04#show policy-map interface hundredGigE 0/0/0/35 output location 0/0/CPU0

Thu Dec 14 22:05:50.971 UTC

Interface:HundredGigE0/0/0/35 Location: node0_0_CPU0 output: POLICY_QOS_OUT

Class tc1

Classification statistics          (packets/bytes)     (rate - kbps)

Matched             :                   0/0                    0

Transmitted         :                   0/0                    0

Total Dropped       :                   0/0                    0

Queueing statistics

Queue ID                             : 1033

Taildropped(packets/bytes)           : 0/0

Class tc2

Classification statistics          (packets/bytes)     (rate - kbps)

Matched             :                   0/0                    0

Transmitted         :                   0/0                    0

Total Dropped       :                   0/0                    0

Queueing statistics

Queue ID                             : 1034

Taildropped(packets/bytes)           : 0/0

Class tc3

Classification statistics          (packets/bytes)     (rate - kbps)

Matched             :                   0/0                    0

Transmitted         :                   0/0                    0

Total Dropped       :                   0/0                    0

Queueing statistics

Queue ID                             : 1035

Taildropped(packets/bytes)           : 0/0

Class tc4

Classification statistics          (packets/bytes)     (rate - kbps)

Matched             :                   0/0                    0

Transmitted         :                   0/0                    0

Total Dropped       :                   0/0                    0

Queueing statistics

Queue ID                             : 1036

Taildropped(packets/bytes)           : 0/0

Class tc5

Classification statistics          (packets/bytes)     (rate - kbps)

Matched             :                   0/0                    0

Transmitted         :                   0/0                    0

Total Dropped       :                   0/0                    0

Queueing statistics

Queue ID                             : 1037

Taildropped(packets/bytes)           : 0/0

Class class-default

Classification statistics          (packets/bytes)     (rate - kbps)

Matched             :                   0/0                    0

Transmitted         :                   0/0                    0

Total Dropped       :                   0/0                    0

Queueing statistics

Queue ID                             : 1032

Taildropped(packets/bytes)           : 0/0

监控FMQ

组播流量未计划。它使用交换矩阵组播队列(FMQ)而不是传统VOQ。在该得分上，不支持QoS。

要显示FMQ的统计信息，此命令从6.5.2开始可用：

RP/0/RP0/CPU0:NCS5508#show controllers npu stats voq base 0 instance 0 location 0/0/CPU0

Mon Jul 8 08:59:22.465 UTC

Asic Instance = 0

VOQ Base = 0

ReceivedPkts   ReceivedBytes    DroppedPkts     DroppedBytes

-------------------------------------------------------------------

TC_0 = 224            15673            49              3468

TC_1 = 0              0                0               0

TC_2 = 0              0                0               0

TC_3 = 0              0                0               0

TC_4 = 0              0                0               0

TC_5 = 0              0                0               0

TC_6 = 0              0                0               0

TC_7 = 0              0                0               0

也可以跟踪NPU上的数据包，并检查是否应用了适当的流量类(TC)。请看

部分按照相应的diag shell命令和过滤器的传输数据包进行操作。

要收集的其他命令

以下是一些附加命令：

- show tech-support qos pi

- show tech-support qos platform

- show tech cef platform

如果怀疑单个接口有问题：

- show run interface <name>

- show run policy-map <>（用于接口上应用的策略映射）

- show qos interface <name> input|output

- show policy-map interface <name>

- show qos remote location <node>（对于出口策略）

如果接口是捆绑包，请提供完整的捆绑包成员信息。

- show bundle <>

限制/警告

标记

- 同一策略映射中不支持L2(COS、DEI)和L3(MPLS EXP)标记

- 当策略器与set discard-class组合时，它不工作。

- match qos-group仅用于标记。

- qos-group 0保留给默认类。

- 标记策略不显示统计信息和计数器。

带宽

- 策略映射中所有带宽语句的总和不能大于100%

- 策略映射中所有剩余带宽语句的总和不能大于100%

- 整形器不在类之间共享，因此对bandwidth语句的摘要没有限制。

入口QoS

入口服务策略中不支持队列操作。

出口QoS

- 标记功能/操作非常有限。

- 仅支持流量类(TG)、qos组(QG)和丢弃类(DC)上的出口策略匹配。

- TC — 用于队列操作

- QG — 用于标记操作

- DC - WRED

- 连接以下策略映射的服务策略将在出口接口上被拒绝e:\

policy-map SET-AND-QUEUE-OUT

class GOLD

priority level 1

shape average percent 20

queue-limit 500 us

set mpls experimental imposition 5

您收到的错误消息是： !!% "DNX_QOSEA"检测到“warning”条件“Invalid egress policy-map configuration”。使用qos-group标记功能，使用traffic-class进行排队功能”。

可以应用两个单独的服务策略，一个用于标记，另一个用于排队。

HQoS

- 在子接口上应用服务策略需要HQoS配置文件独立（如果它是平面的）。

- 在包含优先级类的子接口上应用服务策略，要求类中的整形器独立于该类（如分层或平面）。

- 在HQoS模式下，优先级类必须具有速率限制配置（整形器）。 有效整形器值被视为优先级带宽预留。

- 在HQoS模式下，在相同策略映射配置下不同时支持带宽(BW)和剩余带宽(BWR)。剩余的带宽或带宽可以在同一策略映射中配置。

- 版本6.3.1之前的同一策略映射不支持BW各自的BWR和形状。

- 父类中不允许使用WRED

- 在HQoS模式下，最多支持4个优先级

- 入口HQoS策略和入口对等配置文件不同时支持。

- 对于两级策略，不支持父级上的用户定义的类。

- 由于TCAM限制，当HQoS配置文件启用时，基于策略的隧道选择(PBTS)不起作用。

提交后不支持的配置警告

在某些情况下，提交QoS配置后，您可能会看到警告日志，如以下示例所示：

%由于提交操作而检测到的验证警告。请发出“show configuration warnings”以查看警告

如果执行建议的CLI，您会看到：

!! SEMANTIC ERRORS: This configuration was rejected by

!! the system due to semantic errors. The individual

!! errors with each failed configuration command can be

!! found below.

<此处显示原因>

但是，配置会被应用。在这种情况下，这可能来自阳检验。

请检查是否配置了配置验证启用。

如果情况是这样，那么很可能已经触发了“阳”规则。

您可以打开调试配置验证ccv detail并再次提交配置。

您应该看到扬规则，该规则在调试输出中触发“不支持”消息。

Example:

RP/0/RP0/CPU0:Jan 22 15:57:44.441 UTC: ccv[189]: ...essage : 'Service Policy on interface "TenGigE0/0/0/7/1.102" is not supported', rule group name: 'qos-ma', rule name: 'cac-ser-pol-qos-in-unsupp-intf').

在这种情况下，请联系QoS PI团队。