简介
本文档介绍用于对Nexus 7000平台进行故障排除的消息和过渡服务(MTS)功能。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
NeXus操作系统(NX-OS)中的服务(也称为进程)通过MTS相互通信。
如果目标服务实际位于不同的模块上,则需要使用节点间通信。到另一个模块的通信通过以太网带外通道(EOBC)链路通过高级进程间通信(AIPC)提供。EOBC链路位于Nexus 7000机箱的中板。
MTS提供:
- 消息和高可用性(HA)基础设施和应用程序接口(API)
- 缓冲区管理
- 消息传递
AIPC提供:
- 通过EOBC实现可靠传输
- 基于ACK的重传传输
- 分段和重组
MTS主要包括目的/源节点/SAP和操作码。
- 节点 — 物理模块和VDC的标识符。
- SAP — 每项服务的标识符。(每个服务可以有多个服务接入点(SAP)以实现多种功能。)
- 操作码 — 服务用于与其他服务通信的数据类型。
术语
MTS:报文和交易服务
SAP:服务接入点
AIPC:高级进程间通信/Andiamo IPC
EOBC:以太网带外通道
NX-OS:NeXus操作系统
MTS格式
MTS目标由SAP(服务)和节点(SAP在其上运行的模块)表示。
注:sup代表supervisor,lc代表linecard。
使SAP在任何模块上运行。
`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
使SAP仅在特定模块上运行。
`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
- 操作码注册表
有时MTS会发送到目标SAP 0。因此,MTS将发送到注册到SAP注册表(操作码注册表)的多个SAP。
例如,Opc 8182由SAP 175和378注册,并由show system internal mts sup registry persistent命令确认。因此,此MTS将同时发送到SAP175和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
节点ID是16位ID。
+插槽ID — 模块插槽ID。以1开头
+ Vnode ID — 虚拟节点ID。VDC ID以0开头
+节点ID — 逻辑节点ID。SUP:1,LC:2
示例: 0x805 = 0x08 + 0b000_0101 = 0x08 + 0x1 + 0x1(slot + Vnode + Lnode)
=> SUP模块 VDC 2 插槽8中
跟踪与MTS的流程通信
年龄
通过使用事件历史记录消息,您可以查看MTS通信历史记录。 几乎所有服务都具备此事件历史记录消息功能。
此CLI是eth_port_channel(ethpc)的MTS事件历史记录。
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
下面列出的字段提供有关它们在命令中的用途的其他详细信息:
Event:E_MTS_RX — 表示此MTS是由此服务(本例中为ethpc)接收的。如果是E_MTS_TX,则ethpc是此MTS的发送方。
Src:0x00000601/175 - MTS_addr/SAP,表示此MTS的发送方。
Dst:0x00000601/378 - MTS_addr/SAP,代表此MTS的接收方。
Id:0X00323B1E - MTS ID,其中发送方和接收方具有相同MTS的ID。
Opc:MTS_OPC_ETHPM_PORT_CLEANUP(61444) — 指示此事件类型是什么。换句话说,此MTS提供哪个操作码,其中61444是操作码编号。
MTS事件示例
此MTS事件示例用于链路断开事件。
n7ka# 2014 Sep 18 14:42:15 n7ka %ETHPORT-5-IF_DOWN_LINK_FAILURE: Interface Ethernet1/3 is down (Link failure)
首先,请检查ethpm历史记录,因为它是所有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
显示的结果表示ETHPM收到来自Src:0x00000102/181的链路关闭事件。此MTS地址表示SAP 181位于插槽1上的VDC 1 LC上。
使用旁边列出的CLI确定插槽1上的SAP 181。
module-1# attach module 1
module-1# show system internal mts lc sap 181 description
Port_client SAP
使用旁边列出的CLI检查插槽1上的port_client MTS历史记录。
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
从Id:0X034960A1,我们可以判断49)事件是感兴趣的事件。Port_Client按预期发送了MTS。这必须由Port_Client上以前的MTS事件(50)调用。此MTS由Src:0x00000102/536发送。
检查SAP 536。
module-1# sh system internal mts lc sap 536 de
Naxos FPGA
现在我们知道了NAXOS公司的FPGA是整个事件的源头。使用下面显示的CLI查找local_fault是链路关闭的根本原因。
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)