El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe las causas y soluciones de los descartes de entrada para Cisco Nexus 9500-R EoR y Nexus 3000-R ToR. Un descarte de entrada indica el número de paquetes descartados en la cola de entrada debido a la congestión. Este número incluye caídas causadas por la caída de cola y la Detección temprana aleatoria ponderada (WRED).
Si experimenta caídas aleatorias/esporádicas/históricas (es decir, que ya no se producen), póngase en contacto con el TAC de Cisco para obtener más información. Este paso a través es útil cuando los descartes de entrada se incrementan con frecuencia.
La serie R utiliza la arquitectura VOQ de ingreso. La arquitectura VOQ emula las colas de salida en el búfer de ingreso con las colas virtuales. Cada puerto de salida tiene ocho colas para el tráfico de unidifusión y ocho colas para el tráfico de multidifusión. El tráfico se puede clasificar en clases de tráfico basadas en el valor de Clase de servicio (CoS) o Punto de código de servicios diferenciados (DSCP) en los paquetes y, a continuación, se puede poner en cola en la cola virtual correspondiente para esa clase de tráfico.
La serie R utiliza un mecanismo de crédito distribuido para transferir tráfico a través del fabric. Antes de que se programe un paquete para salir de VOQ, el programador de búfer de ingreso solicita un crédito para el puerto específico y la prioridad en el búfer de salida. Se solicita crédito a un planificador de crédito de ingreso para el puerto de destino y la prioridad. Si el espacio del búfer está disponible, el programador de egreso concede acceso y envía la concesión de crédito al programador del búfer de ingreso. Si no hay espacio de búfer disponible en el búfer de salida, el programa de egreso no concede un crédito y el tráfico se almacena en el búfer en el VOQ hasta que el siguiente crédito esté disponible.
A continuación se muestra la canalización de reenvío de paquetes para la plataforma -R. En este artículo, se centra en el componente Ingress Traffic Manager. Más detalles sobre la arquitectura en este enlace
El administrador de tráfico de entrada (ITM) es un bloque en el operador de comparación de entrada. Realiza los pasos relacionados con el tráfico en cola en VOQ, programa el tráfico para la transmisión a través del fabric y administra los créditos.
El bloque de memoria intermedia VOQ de ingreso administra tanto el buffer en el chip como el buffer de paquetes fuera del chip. Ambos buffers utilizan la arquitectura VOQ y el tráfico se coloca en cola según la información de IRPP (Procesador de paquetes de receptor de entrada). Hay un total de 96.000 VOQ disponibles para el tráfico de unidifusión y multidifusión.
Antes de que un paquete se transmita desde la canalización de ingreso, el paquete debe programarse para su transferencia a través del entramado. El programador de ingreso envía una solicitud de crédito al programador de egreso ubicado en el bloque del administrador de tráfico de egreso. Cuando el administrador de tráfico de ingreso recibe el crédito, comienza a enviar tráfico al procesador de paquetes de transmisión de ingreso. Si el búfer de salida está lleno, el tráfico se almacenará en la cola dedicada representada por el puerto de salida y la clase de tráfico.
Por lo general, los descartes de entrada se pueden ver por los motivos siguientes en diversos hardware Nexus
PID |
N9K-X9636C-R |
N9K-X9636Q-R |
N9K-X9636C-RX |
N9K-X96136YC-R |
N3K-C36180YC-R |
N3K-C3636C-R |
A lo largo de este artículo, el valor para el contador de "descartes de entrada" y cualquier contador interno de hardware que haga referencia a lo mismo cambiará a medida que los errores aumenten mientras se realizan las pruebas y los comandos relevantes se deben tomar en vivo.
Este paso resulta útil más tarde.
En nuestro caso, es la cola 7, la cola predeterminada - Hay 8 colas en total en el ingreso:
Nexus-R# bcm-shell mod 1 "diag counters g" | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | NBI | | RX_TOTAL_BYTE_COUNTER = 10,616,663,796 | TX_TOTAL_BYTE_COUNTER = 41,136 | | RX_TOTAL_PKT_COUNTER = 10,659,301 | TX_TOTAL_PKT_COUNTER = 606 | | RX_TOTAL_DROPPED_EOPS = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IRE | EPNI | | CPU_PACKET_COUNTER = 606 | | | NIF_PACKET_COUNTER = 10,659,302 | EPE_BYTES_COUNTER = 41,136 | | OAMP_PACKET_COUNTER = 0 | EPE_PKT_COUNTER = 606 | | OLP_PACKET_COUNTER = 0 | EPE_DSCRD_PKT_CNT = 0 | | RCY_PACKET_COUNTER = 0 | | | IRE_FDT_INTRFACE_CNT = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IDR | EGQ | | | | | MMU_IDR_PACKET_COUNTER = 10,659,302 | FQP_PACKET_COUNTER = 606 | | IDR_OCB_INTERFACE_COUNTER = 0 | PQP_UNICAST_PKT_CNT = 606 | | | PQP_DSCRD_UC_PKT_CNT = 0 | | | PQP_UC_BYTES_CNT = 48,408 | +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 0 | | IQM | PQP_DSCRD_MC_PKT_CNT = 0 | | | PQP_MC_BYTES_CNT = 0 | | ENQUEUE_PKT_CNT = 1,403,078 | EHP_UNICAST_PKT_CNT = 606 | | DEQUEUE_PKT_CNT = 1,403,078 | EHP_MC_HIGH_PKT_CNT = 0 | | DELETED_PKT_CNT = 0 | EHP_MC_LOW_PKT_CNT = 0 | | ENQ_DISCARDED_PACKET_COUNTER = 9,256,829 | DELETED_PKT_CNT = 0 | | Rejects: PORT_AND_PG_STATUS | | | | RQP_PKT_CNT = 606 | | | RQP_DSCRD_PKT_CNT = 0 | | | PRP_PKT_DSCRD_TDM_CNT = 0 | | | PRP_SOP_DSCRD_UC_CNT = 0 | | | PRP_SOP_DSCRD_MC_CNT = 0 | | | PRP_SOP_DSCRD_TDM_CNT = 0 | | | EHP_MC_HIGH_DSCRD_CNT = 0 | | | EHP_MC_LOW_DSCRD_CNT = 0 | | | ERPP_LAG_PRUNING_DSCRD_CNT = 0 | | | ERPP_PMF_DISCARDS_CNT = 0 | | | ERPP_VLAN_MBR_DSCRD_CNT = 0 | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | | FDA | | | CELLS_IN_CNT_P1 = 0 | CELLS_OUT_CNT_P1 = 0 | | | CELLS_IN_CNT_P2 = 0 | CELLS_OUT_CNT_P2 = 0 | +-------------------------------------------+-------------------------------------------| CELLS_IN_CNT_P3 = 0 | CELLS_OUT_CNT_P3 = 0 | | IPT | CELLS_IN_TDM_CNT = 0 | CELLS_OUT_TDM_CNT = 0 | | | CELLS_IN_MESHMC_CNT = 0 | CELLS_OUT_MESHMC_CNT = 0 | | EGQ_PKT_CNT = 606 --> CELLS_IN_IPT_CNT = 606 | CELLS_OUT_IPT_CNT = 606 | | ENQ_PKT_CNT = 1,403,084 | EGQ_DROP_CNT = 0 | | FDT_PKT_CNT = 1,402,472 | EGQ_MESHMC_DROP_CNT = 0 | | CRC_ERROR_CNT = 0 | EGQ_TDM_OVF_DROP_CNT = 0 | | CFG_EVENT_CNT = 606 * | | | CFG_BYTE_CNT = 48,408 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | FDT | FDR | | IPT_DESC_CELL_COUNTER = 5,609,892 | P1_CELL_IN_CNT = 0 | | IRE_DESC_CELL_COUNTER = 0 | P2_CELL_IN_CNT = 0 | | | P3_CELL_IN_CNT = 0 | | TRANSMITTED_DATA_CELLS_COUNTER = 5,609,892 | CELL_IN_CNT_TOTAL = 0 | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | /|\ | J E R I C H O F A B R I C I N T E R F A C E | \|/ |
Un QUEUE_DELETED_PACKET_COUNTER mayor que cero indicaría que los paquetes fueron ELIMINADOS por el IQM (Administrador de almacenamiento en cola de entrada) después de la cola. Esto se debe a que una cola activa no recibe ningún crédito que sugiera una configuración incorrecta del esquema de programación. Esto se verificaría a través del mod bcm-shell X "getReg IQM_QUEUE_DELETED_PACKET_COUNTER"
ENQ_DISCARDED_PACKET_COUNTER significa que los paquetes se descartaron ANTES de la cola. También puede ver este contador establecido en BCM (el comando se borra al leer):
Siempre puede notar estos rápidamente con show hardware internal errors module X (el comando se borra al leer):
Mostrando Eth1/33 para este ejemplo. En una red real, todavía no conocerá el puerto de salida congestionado.
Este comando nos muestra los detalles del flujo para VoQ de ingreso para un puerto específico. Además, nos muestra el saldo de crédito actual de VoQ.
El VOQ del puerto se deriva de esta manera:
Las LC se basan en 0 - el módulo 1 es 0, el módulo 2 es 1, etc
Hay 256 ID de puerto del sistema por LC
ID = (LC * ID de puerto del sistema) + número FP
Eth1/9 = (0 * 256) + 9 = 9
ID de VOQ = 32 + (ID de puerto del sistema * 8)
Eth1/9 = 32 + (9 * 8) = 104
Nuestro VOQ para Eth1/9 será por lo tanto 104 que coincida con la salida previamente recopilada
Si la cola es 303, recuerde que estas colas son en realidad un rango para que pueda ser 303 + 7 o 303-7 - La pregunta es, ¿qué puerto tiene un VOQ que coincida en un rango de 296-303 o, alternativamente, 303-310?
Se sabe que la cola 7 en Eth1/9 está congestionada, por lo que 303 en realidad es la más alta en su rango, así que el rango de 296-303 es una suposición bien educada.
Muestra lo mismo para ASIC 0 - No se muestra aquí para la brevedad; en la columna Voq, notará que su rango de interés no está en ese ASIC
Observe algunas cosas en el resultado anterior:
En este punto, ha encontrado el puerto congestionado de salida - Determine si hay alguna ráfaga incorrecta en la red, ha configurado SPAN y su puerto de destino es 1G mientras proporciona una o más interfaces 10G o si se trata de un problema de cuellos de botella/diseño.
Estos son más avanzados: no se necesitan para encontrar el puerto congestionado de salida en escenarios normales.
attach module X show hardware internal jer-usd tm_debug asic <slot> module <module> show hardware internal jer-usd info voq [ asic <instance> ] [ port <port> ] [ ] show hardware internal jer-usd info non-empty voq asic [ <instance> ] [ ] show hardware internal jer-usd info voq-profile { QueueThreshold drop_p <dp> | OCBThreshold } [ asic <instance> ] [ port<port> ] [ ] show hardware internal jer-usd info voq-connector front-port <port> [ ] show hardware internal jer-usd stats vsq { front-port <port> | inband asic <slot> | recycle-port <port> asic <slot> } show hardware internal jer-usd ingress-vsq buffer-occupancy front-port <port> show hardware internal jer-usd info IQM { counter | rate } asic <instance> dst-port <port> [ interval <int> ] [ ] show hardware internal jer-usd info SCH { counter | rate } asic <instance> dst-port <port> [ interval <int> ] [ ]
bcm-shell mod X
diag cosq print_flow_and_up dest_id=<flow_id>
diag cosq voq id=<voqid> detailed=1
diag cosq qpair e2e ps=<id>
cosq conn ing
cosq conn egr
dump IPS_CR_BAL_TABLE <voqID>
getReg IQM_QUEUE_MAXIMUM_OCCUPANCY_QUEUE_SIZE
Tenga en cuenta esta topología en la que el Generador de tráfico envía tráfico 2G a cada servidor:
Verifique rápidamente qué colas no están vacías - Observe que hay 4:
Determine a qué interfaces pertenecen estas colas - Verifique primero ASIC 0 (sólo se muestra con una interfaz):
Repita el mismo proceso para los otros tres valores de cola: 247, 303 y 351.
Configuración de Eth1/33 como puerto de destino SPAN mientras se configura Eth1/9 como puerto de origen SPAN en la dirección RX
Envío de paquetes con SRC 10.10.10.10 y DEST 192.168.10.10 donde Eth1/9 está en 10.10.10.1/24 - Esto no resulta en un descarte de entrada; sin embargo, puede ver este contador:
Nexus-R# bcm-shell mod 1 "diag counters g" | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ _PACKET_COUNTER = 0 | DELETED_PKT_CNT = 12,027,201 | | | Discards: INVALID_OTM SRC_EQUAL_DEST +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+
Envíe paquetes con SRC 10.10.10.10 y DEST 192.168.10.10 donde Eth1/9 está en 10.10.10.1/24 y Eth1/33 es un puerto L3 en la subred 172.16.0.1/30 - Sin contador de caídas, sin descartes de entrada incluso cuando el destino es desconocido.
Enviar paquetes donde Eth1/9 es sólo un tronco ancho (o puerto de acceso) - Esto se registra como un descarte de entrada mientras el puerto pasa a un estado de reenvío STP.
Nexus-R(config)# int e1/9
Nexus-R(config-if)# switchport mode trunk
Nexus-R# bcm-shell mod 1 "diag counters g" | i i --|IQM|ENQ_DISCARD|Rejects +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 1,678,949 | | IQM | PQP_DSCRD_MC_PKT_CNT = 11,369,033 | | ENQ_DISCARDED_PACKET_COUNTER = 1,289,182 | DELETED_PKT_CNT = 11,369,081 | | Rejects: QUEUE_NOT_VALID_STATUS | Discards: SRC_EQUAL_DEST | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+
Nexus-R# show span int e1/9
Vlan Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
VLAN0001 Desg BLK 2 128.9 P2p
VLAN0010 Desg BLK 2 128.9 P2p
<snip>
QUEUE_NOT_VALID_STATUS es un descarte debido a la decisión del procesador de paquetes (PP) de descartar o a un destino no válido recibido de los bloques de procesador de paquetes (PP).
Envía 10G+ a Eth1/9 resultaría en un tipo diferente de caída, ya que está realizando el envío de Eth1/9 en primer lugar - Todavía cuenta como descarte de entrada:
bcm-shell.0> diag counters g | /|\ | J E R I C H O N E T W O R K I N T E R F A C E | \|/ | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | NBI | | RX_TOTAL_BYTE_COUNTER = 53,913,106,009 | TX_TOTAL_BYTE_COUNTER = 1,164,231 | | RX_TOTAL_PKT_COUNTER = 54,145,395 | TX_TOTAL_PKT_COUNTER = 17,029 | | RX_TOTAL_DROPPED_EOPS = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IRE | EPNI | | CPU_PACKET_COUNTER = 17,010 | | | NIF_PACKET_COUNTER = 54,145,476 | EPE_BYTES_COUNTER = 5,721,307 | | OAMP_PACKET_COUNTER = 0 | EPE_PKT_COUNTER = 50,703 | | OLP_PACKET_COUNTER = 0 | EPE_DSCRD_PKT_CNT = 0 | | RCY_PACKET_COUNTER = 16,837 | | | IRE_FDT_INTRFACE_CNT = 0 | | +-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ | IDR | EGQ | | | | | MMU_IDR_PACKET_COUNTER = 54,128,577 | FQP_PACKET_COUNTER = 50,703 | | IDR_OCB_INTERFACE_COUNTER = 0 | PQP_UNICAST_PKT_CNT = 50,683 | | | PQP_DSCRD_UC_PKT_CNT = 0 | | | PQP_UC_BYTES_CNT = 5,216,716 | +-------------------------------------------+-------------------------------------------| PQP_MC_PKT_CNT = 20 | | IQM | PQP_DSCRD_MC_PKT_CNT = 20 | | | PQP_MC_BYTES_CNT = 2,079 | | ENQUEUE_PKT_CNT = 5,463,323 | EHP_UNICAST_PKT_CNT = 50,683 | | DEQUEUE_PKT_CNT = 5,594,400 | EHP_MC_HIGH_PKT_CNT = 20 | | DELETED_PKT_CNT = 0 | EHP_MC_LOW_PKT_CNT = 0 | | ENQ_DISCARDED_PACKET_COUNTER = 48,716,055 | DELETED_PKT_CNT = 40 | | Rejects: VOQ_MX_QSZ_STATUS | | <snip>