Contents

Introduction

Implementação de QoS no NCS5500

Diretrizes de Troubleshooting

QoS de entrada

QoS de saída

Monitorar FMQs

Comandos adicionais a serem coletados

Limitações/avisos

Marcação

Largura de banda

QoS de entrada

QoS de saída

HQoS

Aviso de configuração não suportada após confirmação

Introduction

Este documento descreve o guia de solução de problemas de QoS para o Cisco Network Convergence System (NCS) série 5500.

Implementação de QoS no NCS5500

- A QoS no NCS5500 é realizada na TM de entrada e saída da NPU.  O NCS5500 implementa uma arquitetura de fila de saída virtual, onde o enfileiramento de saída é baseado em solicitações de crédito e esquemas de concessão.

- O buffer real acontece nos dispositivos de encaminhamento de entrada. O dispositivo de encaminhamento de saída decide quanto tráfego pode ser enviado concedendo créditos a qualquer dispositivo de encaminhamento de entrada, que solicita crédito.

- Todas as filas de qualquer interface de saída ou elemento de agendamento são replicadas para todos os dispositivos de entrada que desejam enviar pacotes para essa interface. Essas filas são chamadas de Filas de Saída Virtuais (VOQ - Virtual Output Queues).

- Com efeito, são suportadas 8 filas por interface ou elemento de programação. Na saída, a prioridade de suporte do elemento de agendamento, mín, máx e excesso. A programação está fornecendo créditos com base nesses atributos.

- Consequentemente, os atributos de agendamento de uma interface são configurados na saída, enquanto os valores de controle de congestionamento e prevenção de congestionamento são configurados na entrada.

- Quando o IRPP decide enviar um pacote para uma determinada porta de destino/saída, ele coloca o pacote em um VOQ específico.  Durante o enfileiramento do pacote, verifica-se se o pacote pode ser enfileirado.

- Na ocupação de buffer do VOQ e na configuração da Virtual Statistics Queue (VSQ) da interface de entrada. VSQ é um esquema de gerenciamento de buffer baseado em classes de tráfego.

- Se os buffers forem excedidos, o pacote será descartado ou o controle de fluxo será enviado à porta de entrada com base na configuração de usuário correspondente. Por padrão, os pacotes serão descartados se falharem na verificação de enfileiramento.

- LCs do NCS5500 não têm ASICs de enfileiramento separados. A plataforma implementa o enfileiramento baseado em saída virtual, que é baseado no agendamento. Assim, não há conceito de enfileiramento de entrada. Políticas de serviço de ingresso que suportam ações de marcação e somente vigilância.

- O NCS5500 implementa um conceito diferente para marcação e enfileiramento. Ele é baseado em qos-group e traffic-class. Na saída, esses dois parâmetros são correspondidos para remarcar o tráfego e selecionar filas.

Limitações existentes para vários comandos. Para obter detalhes, consulte o .

Diretrizes de Troubleshooting

QoS de entrada

Um dos comandos mais úteis e importantes é show qos interface <interface> input|output

Ele fornece informações úteis sobre a política de serviço aplicada. Ele exibe os parâmetros configurados e convertidos (no caso de vigilante, modelador, limiares de queda traseira, etc.), as IDs da fila virtual, o tipo de relatório e assim por diante.

Comece com uma política simples de ingresso.

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

O qos_ea está programando a política em HW no LC. Com show feature-mgr client qos-ea policy summary location <node> você obtém uma visão geral das políticas configuradas em um 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

Se você observar a exibição detalhada desse comando, poderá ver onde ele corresponde nas classes:

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:

As informações de QOS_EA também podem ser exibidas da perspectiva do gerenciador de recursos. Primeiro, exiba o resumo:

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

Na próxima etapa, você pode exibir os detalhes:

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)

O rastreamento qos_ea exibe a ordem dos eventos quando a política de serviço é aplicada em uma interface. Ele exibiria problemas em caso de falha.

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)

Quando você altera a política e adiciona, por exemplo, um vigilante à classe i_match, ela será visível no rastreamento qos_ea. A modificação no local de um mapa de políticas é suportada no 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...

O comando show qos interface reflete também a adição:

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

O rastreamento qos_ea exibe o valor convertido também quando o comando acima é executado.

O vigilante usa um tamanho de etapa incremental de 22 kbps. O valor configurado é arredondado para o múltiplo mais próximo de 22 kbps quando usado na fórmula na placa de linha.

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 de saída

A QoS de saída está suportando ações de enfileiramento. No NCS5500, um pode ter duas políticas de serviço na direção de saída. Um para marcação e um para enfileiramento. Isso é para uma ação de marcação:

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

Política de enfileiramento de saída

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

O comando show QoS interface exibe os parâmetros configurados e também as IDs de fila para cada classe com uma ação de enfileiramento configurada. Além disso, você pode obter padrões como o tamanho da fila.

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.

Para monitorar o tamanho da fila, você pode executar o comando acima e o grep para a linha correspondente.

Exemplo: show controllers fia diagshell 5 "diag cosq voq id=1036 core=0 det=1" local 0/0/CPU0 | i tamanho atual da fila

As estatísticas podem ser exibidas com o comando show policy-map interface.

Exemplo: show policy-map interface 8000GigE 0/0/0/35 output location 0/0/CPU0

Note: A saída não é detalhada como sabemos de outras plataformas XR. Ele não exibe linhas para o perfil WRED ou RED correspondente.

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

Monitorar FMQs

O tráfego multicast não está programado. Ele está usando FMQ (Fabric Multicast Queues, filas multicast de estrutura) em vez das VOQs convencionais. Nesse multicast de saída de pontuação, QoS não é suportado.

Para exibir as estatísticas das FMQs, esse comando está disponível a partir da versão 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

Também é possível seguir um pacote através da NPU e verificar se, por exemplo, a Classe de Tráfego (TC) apropriada é aplicada. Dê uma olhada

Seção Siga um pacote de trânsito para os comandos e filtros correspondentes do shell de diagnóstico.

Comandos adicionais a serem coletados

Estes são alguns comandos adicionais:

- show tech-support qos pi

- show tech-support qos platform

- show tech cef platform

Se houver suspeita de um problema em uma interface individual:

- show run interface <name>

- show run policy-map <> (para os mapas de política aplicados na interface)

- show qos interface <name> input|output

- show policy-map interface <name>

- show qos remote location <node> (para política de saída)

Se a interface for um pacote, forneça informações completas sobre o membro do pacote.

- show bundle <>

Limitações/avisos

Marcação

- A marcação L2(COS, DEI) e L3(MPLS EXP) não são suportadas no mesmo mapa de políticas

- O vigilante não está funcionando quando é combinado com set discard-class.

- match qos-group é apenas para marcação.

- qos-group 0 é reservado para a classe padrão.

- estatísticas e contadores não são exibidos para uma política de marcação.

Largura de banda

- A soma de todas as instruções de largura de banda em um mapa de política não deve ser > 100%

- A soma de todas as instruções restantes de largura de banda em um mapa de política não deve ser > 100%

- Um modelador não é compartilhado entre classes e, portanto, não há restrições ao resumo das instruções de largura de banda.

QoS de entrada

As ações de enfileiramento não são suportadas em uma política de serviço de entrada.

QoS de saída

- As capacidades/ações de marcação são muito limitadas.

- Uma correspondência de política de saída em classe de tráfego (TG), grupo qos (QG) e classe de descarte (DC) só é suportada.

- TC - para ações de enfileiramento

- QG - para ações de marcação

- DC - WRED

- Uma política de serviço conectando o seguinte mapa de política seria rejeitada em uma interface de saídae:\

policy-map SET-AND-QUEUE-OUT

class GOLD

priority level 1

shape average percent 20

queue-limit 500 us

set mpls experimental imposition 5

A mensagem de erro que você recebe é:  !!!% "DNX_QOSEA" detectou a condição de 'aviso' "Configuração de mapa de política de saída inválida. Use qos-group para marcar recursos e traffic-class para recursos de enfileiramento".

É possível aplicar duas políticas de serviço separadas, uma para marcação e outra para enfileiramento.

HQoS

- A aplicação de uma política de serviço em uma subinterface exige que o perfil HQoS seja independente se for linear.

- A aplicação de uma política de serviço em uma subinterface que contenha uma classe de prioridade exige um modelador nessa classe independente se ela for hierárquica ou linear.

- No modo HQoS, as classes de prioridade devem ter uma configuração de limite de taxa (modelador). O valor efetivo do modelador é tomado como uma reserva de largura de banda prioritária.

- No modo HQoS, a largura de banda (BW) e a largura de banda restante (BWR) não são suportadas simultaneamente na mesma configuração de mapa de política. A largura de banda ou a largura de banda restante podem ser configuradas no mesmo mapa de política.

- BW respectivo BWR junto com forma não é suportado no mesmo mapa de política antes da versão 6.3.1.

- WRED não é permitido na classe pai

- Um máximo de 4 níveis de prioridade são suportados no modo HQoS

- O policiamento de entrada HQoS e o perfil de peering de entrada não são suportados juntos.

- Para a política de dois níveis, as classes definidas pelo usuário no nível pai não são suportadas.

- Devido a uma limitação de TCAM, a Seleção de Túnel Baseado em Políticas (PBTS - Policy-Based Tunnel Selection) não funciona quando o perfil HQoS está ativado.

Aviso de configuração não suportada após confirmação

Em alguns casos, você pode ver um log de aviso após confirmar uma configuração de QoS, como no exemplo a seguir:

% de avisos de validação detectados como resultado da operação de confirmação. Emita o comando 'mostrar avisos de configuração' para exibir os avisos

Se você executar a CLI sugerida, verá:

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

<Aqui está o motivo impresso>

No entanto, a configuração é aplicada. Nesse caso, pode vir da verificação de yang.

Verifique se a ativação de validação da configuração está configurada.

Se for esse o caso, é provável que uma regra de yang tenha sido disparada.

Você pode ativar debug configuration validation ccv detail e confirmar a configuração novamente.

Você deve ver a regra yang, que está acionando a mensagem "Não suportado" na saída de depuração.

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').

Entre em contato com a equipe de QoS PI neste caso.