Introducción
Este documento describe la funcionalidad de Servicios de mensajes y transición (MTS) utilizada para resolver problemas de plataformas Nexus 7000.
Prerequisites
Requirements
No hay requisitos específicos para este documento.
Componentes Utilizados
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
Los servicios (también conocidos como procesos) del sistema operativo Nexus (NX-OS) se comunican entre sí mediante MTS.
Si el servicio de destino se encuentra físicamente en un módulo diferente, debe utilizarse la comunicación entre nodos. La comunicación con el otro módulo se realiza mediante Advanced Inter Process Communication (AIPC) a través de los enlaces de canal fuera de banda Ethernet (EOBC). Los enlaces EOBC se encuentran en el plano medio del chasis Nexus 7000.
MTS proporciona:
- Infraestructura de mensajes y alta disponibilidad (HA) e interfaces de programas de aplicaciones (API)
- Gestión de búfer
- Entrega de mensajes
AIPC proporciona:
- Transporte fiable en EOBC
- Suministro de retransmisión basada en ACK
- Fragmentación y reensamblado
MTS consiste principalmente en nodo de origen/destino/SAP y Opcode.
- Nodo: un identificador del módulo físico y VDC.
- SAP: identificador de cada servicio. (Cada servicio puede tener varios puntos de acceso a servicios (SAP) para varias funciones).
- Opcode: tipo de datos que utilizan los servicios para comunicarse con otros servicios.
Terminology
MTS: servicios de mensajería y transacciones
SAP: punto de acceso al servicio
AIPC: Advanced Inter Process Communication/Andiamo IPC
EOBC: canal fuera de banda Ethernet
NX-OS: sistema operativo Nexus
Formatos MTS
El destino MTS está representado por SAP (un servicio) y Node (el módulo en el que se ejecuta SAP).
Nota: sup significa supervisor y lc para tarjeta de línea.
Ejecute SAP en cualquier módulo.
`show system internal sysmgr service ~~~~`
n7ka# sh system internal sysmgr service all
Name UUID PID SAP state Start count Tag Plugin ID
---------------- ---------- ------ ----- --------- ----------- ---------------- -----------
aaa 0x000000B5 6942 111 s0009 1 N/A 0
cert_enroll 0x0000012B 6941 169 s0009 1 N/A 0
ExceptionLog 0x00000050 7267 92 s0009 1 N/A 0
`show system internal mts ~~~~~`
n7ka# sh system internal mts sup sap 111 description
Below shows sap on default-VDC, to show saps on non-default VDC, run
show system internal mts node sup-<vnode-id> sap ...
AAA Daemon
Consiga que SAP se ejecute sólo en módulos específicos.
`Attach to the module`
n7ka# attach module 4
Attaching to module 4 ...
To exit type 'exit', to abort type '$.'
Last login: Tue Nov 7 15:42:35 PST 2023 from 127.1.1.2 on pts/0
`show system internal sysmgr service ~~~~`
n7ka# show system internal sysmgr service all
Name UUID PID SAP state Start count Tag Plugin ID
---------------- ---------- ------ ----- --------- ----------- ---------------- -----------
aclqo 0x0000016E 1301 190 s0009 1 N/A 0
amm 0x00000260 1130 895 s0009 1 N/A 0
bfdc 0x000002C7 1110 1008 s0009 1 N/A 0
`show system internal mts ~~~~~`
module-4# show system internal mts lc sap 190 description
Aclqos SAP
- Registro Opcode
A veces MTS se envía a SAP 0 de destino. Como resultado, el MTS se envía a varios SAP registrados en el registro SAP (registro opcode).
Como ejemplo, el Opc 8182 está registrado por SAP 175 y 378, confirmado por el comando show system internal mts sup registry persistent. Por lo tanto, este MTS se entrega tanto a SAP175 como a SAP 378.
n7ka# show system internal ethpm event-history msgs
51) Event:E_MTS_RX, length:60, at 36968 usecs after Thu Sep 18 14:42:15 2014
[NOT] Opc:MTS_OPC_LINK_EVENT_DOWN(8182), Id:0X034960A1, Ret:SUCCESS
Src:0x00000102/181, Dst:0x00000609/0, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00000000, Sync:UNKNOWN, Payloadsize:82
Payload:
0x0000: 00 00 00 07 00 11 00 21 00 00 00 04 00 12 00 04
n7ka# show system internal mts sup registry persistent | i 8182
MTS_OPC_LINK_EVENT_DOWN(8182): 175, 378
- ID de nodo
El ID de nodo es un ID de 16 bits.
+ ID de ranura: ID de ranura del módulo. Comienza con 1
+ ID de nodo virtual: ID de nodo virtual. La ID de VDC comienza por 0
+ ID de nodo lógico: ID de nodo lógico. SUP:1, LC:2
Ejemplo: 0x805 = 0x08 + 0b0000_0101 = 0x08 + 0x1 + 0x1 (slot + Vnode + Lnode)
=> módulo SUP VDC 2 en la ranura 8
Seguimiento de la comunicación de procesos con MTS
años
Puede ver el historial de comunicaciones MTS mediante mensajes del historial de eventos. Casi todos los servicios tienen esta función de mensajes del historial de eventos.
Esta CLI es el historial de eventos MTS para eth_port_channel (ethpc).
n7ka# show port-channel internal event-history msgs
12) Event:E_MTS_RX, length:60, at 15586 usecs after Thu Sep 18 13:13:57 2014
[REQ] Opc:MTS_OPC_ETHPM_PORT_CLEANUP(61444), Id:0X00323B1E, Ret:SUCCESS
Src:0x00000601/175, Dst:0x00000601/378, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00323B1E, Sync:UNKNOWN, Payloadsize:26
Payload:
0x0000: 00 00 00 02 00 04 00 02 00 01 00 05 00 0c 00 00
Los campos que se enumeran a continuación proporcionan detalles adicionales con respecto a su propósito en el comando:
Evento:E_MTS_RX: indica que este servicio ha recibido este MTS, etcétera en este caso. Si es E_MTS_TX, ethpc es el remitente de este MTS.
Src:0x00000601/175 - MTS_addr/SAP, representa al remitente de este MTS.
Dst:0x00000601/378 - MTS_addr/SAP, representa el receptor de este MTS.
Id:0X00323B1E: ID de MTS, donde el emisor y el receptor tienen el mismo ID para el mismo MTS.
Opc:MTS_OPC_ETHPM_PORT_CLEANUP(61444): indica el tipo de evento. En otras palabras, qué opcode ofrece este MTS, donde 61444 es el número de opcode.
Ejemplo de un evento MTS
Este ejemplo de evento MTS es para un evento de link caído.
n7ka# 2014 Sep 18 14:42:15 n7ka %ETHPORT-5-IF_DOWN_LINK_FAILURE: Interface Ethernet1/3 is down (Link failure)
Como primer paso, verifique el historial de ethpm porque es el proceso completo para todas las cosas relacionadas con I/F.
n7ka# sh system internal ethpm event-history msgs
51) Event:E_MTS_RX, length:60, at 36968 usecs after Thu Sep 18 14:42:15 2014
[NOT] Opc:MTS_OPC_LINK_EVENT_DOWN(8182), Id:0X034960A1, Ret:SUCCESS
Src:0x00000102/181, Dst:0x00000609/0, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00000000, Sync:UNKNOWN, Payloadsize:82
Payload:
0x0000: 00 00 00 07 00 11 00 21 00 00 00 04 00 12 00 04
El resultado mostrado indica que ETHPM recibió el evento link down de Src:0x00000102/181. Esta dirección MTS indica que SAP 181 está en VDC 1 LC en la ranura 1.
Utilice la CLI que se muestra a continuación para determinar qué es SAP 181 en la ranura 1.
module-1# attach module 1
module-1# show system internal mts lc sap 181 description
Port_client SAP
Utilice la CLI que se muestra a continuación para verificar el historial MTS port_client en la ranura 1.
module-1# show system internal port-client event-history msgs
49) Event:E_MTS_TX, length:60, at 298743 usecs after Thu Sep 18 14:42:14 2014
[NOT] Opc:MTS_OPC_LINK_EVENT_DOWN(8182), Id:0X034960A1, Ret:SUCCESS
Src:0x00000102/181, Dst:0x00000609/0, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00000000, Sync:UNKNOWN, Payloadsize:82
Payload:
0x0000: 00 00 00 07 00 11 00 21 00 00 00 04 00 12 00 04
50) Event:E_MTS_RX, length:60, at 298329 usecs after Thu Sep 18 14:42:14 2014
[NOT] Opc:MTS_OPC_LC_LINK_DOWN(8185), Id:0X0349609F, Ret:SUCCESS
Src:0x00000102/536, Dst:0x00000102/0, Flags:None
HA_SEQNO:0X00000000, RRtoken:0x00000000, Sync:UNKNOWN, Payloadsize:17
Payload:
0x0000: 00 00 00 02 40 e5 00 07 02 54 1a 70 b6 00 04 84
Desde Id:0X034960A1, podemos decir que el evento 49) es el de interés. Port_Client envió el MTS como se esperaba. Esto debe ser invocado por el evento MTS anterior en Port_Client, que es 50). Este MTS fue enviado por Src:0x00000102/536.
Consulte SAP 536.
module-1# sh system internal mts lc sap 536 de
Naxos FPGA
Ahora sabemos que NAXOS FPGA es la fuente de todo este evento. Utilice la CLI que se muestra a continuación para determinar que local_fault es la causa raíz de la caída del link.
module-1# sh hardware internal naxos event-history port 3
15) Event E_NAXOS_ISR_DATA length:69, at 170763 usecs after Thu Sep 18 14:42:14 2014
TO NAXOS_PORT_STATUS_LINK_DOWN: reg_val 0x14
Status:SUCCESS (0x0)
16) Event E_NAXOS_ISR_DATA length:50, at 170619 usecs after Thu Sep 18 14:42:14 2014
LOCAL_FAULT: reg_val 0x14
Status:SUCCESS (0x0)