本文档介绍ATM端口适配器如何报告流量统计信息并解决show interface atm或show atm vc命令输出中显示的数据包或字节计数器不正确的问题。
本文档需要了解ATM接口上的变量和固定开销字段,包括众所周知的5字节信元报头。有关此开销的详细信息,请参阅以下技术提示:
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
更新虚电路(VC)和ATM接口/子接口统计信息的处理方式因平台而异。通常,思科7x00系列路由器的端口适配器使用以下通用机制来报告统计信息:
成帧器解开第1层成帧位。
分段和重组(SAR)机制重组数据包,设置适当的错误位(如果有),并将数据包传递给主机驱动程序。
一旦通过直接存储器访问(DMA)将数据包放入内存中,就会产生接收中断。
驱动程序处理数据包并执行记帐。
驱动程序负责更新所有数据包的计数器,无论是好还是坏。平台专用软件块负责计算输入和输出比特率、接收负载等。
Cisco 7500系列使用分布式架构,该架构要求PA-A3接口驱动程序与通用接口处理器(VIP)CPU之间以及VIP CPU与RSP CPU之间进行通信。PA-A3上的外围组件互联(PCI)主机驱动程序收集每个数据包的每条虚电路统计信息,并将其发送到VIP驱动程序。路由/交换处理器(RSP)向VIP发送命令,以通过定期的Cisco IOS®流程检索统计信息。系统初始化后,会创建特殊后台进程,将VIP中的自主统计信息作为计划进程处理,而不是在中断级别处理,以最大限度地减少系统中断。
启用后,当VIP CPU向RSP发送消息以报告VC统计信息时,debug atm events命令将显示类似以下的输出。
received CCB_CMD_ATM_GET_VC_STATS command vcd #
VIP将更新的统计信息以12秒的间隔发送到RSP。因此,show命令输出中显示的值可能不是瞬时值。
在VIP控制台上使用debug atm event命令来隔离问题。调试输出可用于指示VIP是否向RSP发送错误的VC统计信息,或在VIP CPU与RSP CPU通信期间是否损坏正确的信息。有关详细信息,请参阅了解ATM路由器接口上的debug atm event输出。
注意:在发出debug命令之前,请参阅有关debug命令的重要信息。debug atm events命令可能会在生产路由器上打印大量中断性调试输出,具体取决于需要报告统计信息的VC数量以及VC相关事件的数量。
注意:在Cisco 12000系列上,引擎0和引擎1线卡每10秒发送一次更新,而其他引擎型号(如引擎2)则以更快的速率发送更新。4xOC3 ATM线卡使用引擎0架构。
在主接口的show interface命令输出中,“input packets”字段计算已成功接收并交换到出口接口的数据包数。
在虚电路(VC)的show atm vc {vcd#}命令输出中,“InPkts”字段计算正确接收并传递到IOS交换引擎的数据包数。如果IOS交换引擎无法处理数据包并将其丢弃在接口保持队列中,它会将这些数据包计为仅丢弃,而不会增加输入数据包计数器。因此,虚电路的“InPkts”计数值将等于主接口的“输入数据包”计数器和输入队列丢弃计数器之和。show atm vc {vcd#}命令输出还显示“InPktDrops”字段,用于计算VC级别的丢包数。单独的输入丢弃计数用于确定丢弃是在VC级别还是在接口级别发生。
子接口的show interface atm命令输出表示该子接口上每个VC计数器的总和。PA-A3上子接口的show interface atm命令的以下输出示例说明仅显示第2层信息,如ATM适配第5层(AAL5)计数器和操作、管理和维护(OAM)信元计数。
7206#show int atm 4/0.1 ATM4/0.1 is administratively down, line protocol is down Hardware is ENHANCED ATM PA MTU 4470 bytes, BW 149760 Kbit, DLY 80 usec, reliability 0/255, txload 1/255, rxload 1/255 Encapsulation ATM 0 packets input, 0 bytes 0 packets output,0 bytes 0 OAM cells input, 0 OAM cells output AAL5 CRC errors : 0 AAL5 SAR Timeouts : 0 AAL5 Oversized SDUs : 0
由于子接口计数器仅反映第2层信息,因此主接口和子接口上的计数器可能不同。请注意,这种差异增强了确定数据包丢弃位置的能力。例如,到达的数据包可能会通过第2层检查,例如AAL5循环冗余检查(CRC),并被转发到主接口,其中入站IP ACL为源或目标IP地址指定丢弃操作。此数据包只会在VC和子接口上增加丢弃计数器,而不是在主接口上增加丢弃计数器。
本节介绍在ATM端口适配器上报告接口和VC计数器统计信息时出现的一些最常见问题。讨论了几种症状,并提供了每种症状的解决方案。最常见的症状包括:
计算的接口速率高于物理线速。
输入队列的负计数器。
将计数器值加倍或加倍。
PVC上具有QoS服务策略的“InBytes”值不正确。
ATM子接口上的统计信息不正确或没有统计信息。
这些问题中的大多数是Cisco IOS软件不同版本中已解决的软件问题。
以下Cisco Bug ID中已发现并解决了此症状:
Cisco Bug ID | 描述 |
---|---|
CSCdt49209 | 当64位SNMP计数器在Cisco IOS软件版本12.0(15)S中引入时,ATM接口报告计算出的输出接口速率高于物理线速。此问题不影响流量。 |
CSCdv13285 | 当使用封装al5mux ppp终止ATM上的PPP(PPPoA)会话时,启用Cisco快速转发(CEF)的Cisco 7200系列路由器可能会报告极高的输入数据速率。此问题的根本原因是计数错误的PPP回应请求或应答数据包(65000字节)。 |
思科路由器上的所有接口都使用输入队列来存储无法与具有快速交换的路由缓存条目或CEF表中条目匹配的数据包。此类数据包在传入接口的输入队列中排队以进行处理。一些数据包总是要进行处理,但是需带上适当的配置并在稳定的网络中进行,已处理的信息包速率不应导致输入队列拥塞。如果输入队列已满,数据包将被丢弃。
在极少数情况下,show interface atm输出中显示的输入队列计数器可能变成负值,如下所示:
7206_B#show int atm 1/0 ATM1/0 is up, line protocol is up Hardware is ENHANCED ATM PA Description: DNEC.678475.ATI 1/40 MTU 4470 bytes, sub MTU 4470, BW 44209 Kbit, DLY 190 usec, reliability 255/255, txload 6/255, rxload 1/255 Encapsulation ATM, loopback not set Keepalive not supported Encapsulation(s): AAL5 4096 maximum active VCs, 170 current VCCs VC idle disconnect time: 300 seconds 0 carrier transitions Last input 00:00:00, output 00:00:00, output hang never Last clearing of "show interface" counters 01:31:25 Input queue: -6/75/0/0 (size/max/drops/flushes); Total output drops: 0
此问题在以下Cisco Bug ID中报告并解决:
Cisco Bug ID | 症状和解决方法 |
---|---|
CSCdj73443 | 为了支持在600到1524字节之间的进程交换数据包更快的交换速度,在SRAM中添加了一个(连续的)大缓冲区池。从此特殊池分配缓冲区时,输入队列计数不会递增。输入队列计数最终变为大的正数,600 - 1524字节范围外的数据包因完整输入队列而被拒绝。通过删除大型SRAM连续缓冲池解决了此问题。 |
CSCdm44539 | 由于将输入队列计数器减去两个ATM和其他接口类型(包括串行接口),因此产生了负输入队列计数。 |
在某些情况下,启用Cisco IOS功能或更改IOS交换路径会导致数据包计数器或计算的比特率翻倍。已针对各种接口类型和各种功能报告并解决了此类“双重记帐”问题。
此问题在以下Cisco Bug ID中报告并解决:
Cisco Bug ID | 症状和解决方法 |
---|---|
CSCds23924 | 作为QoS服务策略的一部分,将调用两次输入策略功能。结果包括输入数据包的双重记帐,以及数据包值的膨胀和超额丢弃。但是,此修复的最重要方面是QoS功能重新排序。由于重新排序,我们现在有:
|
例如,Cisco Bug ID CSCds23924解决了双重记帐问题,即当数据包沿CEF交换路径传输时,由于执行此功能两次而导致的输入CAR或基于类的策略。(CEF定义IOS交换机制,该机制将数据包从入口转发到出口路由接口。) 结果包括输入数据包的双重记帐,以及数据包值的膨胀和超额丢弃。
使用PA-A3,启用IP记帐使计算出的输出比特率翻倍,如show interface atm命令所示。此问题是由分布式思科快速转发(dCEF)不支持的IP记帐引起的。 因此,启用IP记帐会改变路由器内数据包的路径并导致输出比特率过高。此问题通过Cisco Bug ID CSCdv59172记录。
在Cisco 7500系列上,将QoS服务策略应用到ATM VC可能导致错误的“InBytes”值,如show atm vc {vcd#}命令的输出所示。仅当数据包在启用了dCEF的同一物理接口上的PVC之间分发交换时,问题才会出现。
此问题通过Cisco Bug ID CSCdu17025解决。
PA-A3接口驱动程序负责更新VC计数器,并将其发送到ATM代码的公用或平台无关的块。在show atm pvc x/y或show interface atm.subint命令中显示的计数器显示为公用ATM代码所报告的值,该代码会添加该子接口上的所有VC计数器。
如果您看到正确的VC计数器和子接口计数器的非递增(或零)值,则ATM公用代码可能不会将所有VC计数器相加。要解决此问题,请捕获以下信息:
出现问题的子接口的show interface atm x/y/z.a。
在该子接口下配置的VC的show atm pvc {vpi/vci}。
此问题在以下Cisco Bug ID中报告并解决:
Cisco Bug ID | 描述 |
---|---|
CSCdu41673 | 子接口计数器是64位计数器。更新VC统计信息时,VIP仅发送32位计数器。通过确保VIP在向RSP发送统计信息时也更新64位计数器,此问题得以解决。 |
CSCdt60738 | 带有网络服务引擎(NSE-1)的路由器在主接口和子接口上显示不同的输出数据包值。 |
注意:计算的比特率仅在主接口上可用。
思科建议在联系思科TAC之前,对PA-A3或其他ATM接口上的错误计数器进行以下故障排除:
捕获计数器的多个输出。计数器跟踪输出还是输入数据?
问题出在哪个物理接口或逻辑接口上?可能的答案包括:
输入或输出队列
子接口
VC
ATM驱动程序仅负责报告输入和输出字节计数。确定问题是由PA-A3引起还是特定于平台。首先确定“数据包输入”和“数据包输出”计数器以及输入和输出字节计数器是否正确。
如果是,请调查平台特定问题。
如果否,请调查PA特定问题。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
18-Dec-2007 |
初始版本 |