目录

简介

常见TCAM错误

硬件ACL资源利用率

选项

原子更新

每个条目的统计信息

碎片处理

ACE扩展阈值

资源池

相关信息

简介

本文档介绍TCAM资源问题解决方法。

常见TCAM错误

%ACLQOS-SLOT3-4-ACLQOS_OVER_THRESHOLD Tcam 0 Bank 0的使用率已达到其阈值

%ACLMGR-3-ACLMGR_VERIFY_FAIL验证失败：客户端8200016E，TCAM银行中没有足够的可用条目

"错误：由于Spanslogic TCAM限制，TCAM条目插入失败" — 仅在XL模块上

有关更多跨领域TCAM限制，请参阅。

硬件ACL资源利用率

命令:

show hardware access-list resource utilization module <mod>

SITE1-AGG1# show hardware access-list resource utilization mod 3

INSTANCE 0x0

-------------

ACL Hardware Resource Utilization (Mod 3)

--------------------------------------------

Used    Free    Percent

Utilization

-----------------------------------------------------

Tcam 0, Bank 0           9       16375   0.05

Tcam 0, Bank 1           2       16382   0.01

Tcam 1, Bank 0           7       16377   0.04

Tcam 1, Bank 1           246     16138   1.50

LOU                       3       101     2.88

Both LOU Operands         2

Single LOU Operands       1

LOU L4 src port:          0

LOU L4 dst port:          1

LOU L3 packet len:        0

LOU IP tos:               0

LOU IP dscp:              0

LOU ip precedence:        0

LOU ip TTL:               0

TCP Flags                 0       16      0.00

Protocol CAM              4       3       57.14

Mac Etype/Proto CAM       9       5       64.28

Non L4op labels, Tcam 0   2       6141    0.03

Non L4op labels, Tcam 1   3       6140    0.04

L4 op labels, Tcam 0      0       2047    0.00

L4 op labels, Tcam 1      1       2046    0.04

Ingress Dest info table   131072  510     0.39

Egress Dest info table    65536   511     0.19

SITE1-AGG1#

选项

以下是TCAM使用率较高时的几个选项。

- 原子更新

命令:no hardware access-list update atomic

- 在所有ACL中禁用每个条目的统计信息

命令:每个条目无统计信息

- 碎片处理

命令:fragments deny-all/permit-all

- ACE扩展阈值

命令:硬件访问列表lou资源阈值

- 资源池（由于不移动现有条目，不会影响服务）

命令:硬件访问列表资源池模块<x>

原子更新

默认情况下，当ACL发生更改时，N7K会对模块执行原子访问控制列表(ACL)更新。  原子更新不会中断更新后的ACL应用的流量。但是，原子更新要求接收ACL更新的I/O模块具有足够的可用资源来存储每个更新的ACL条目以及受影响ACL中所有现有条目。更新发生后，将释放用于更新的其他资源。如果I/O模块缺少所需资源，设备会生成错误消息，并且I/O模块的ACL更新失败。

如果I/O模块缺少原子更新所需的资源，可以使用

no hardware access-list update atomic

但是，在设备删除现有ACL并实施更新的ACL所需的短暂时间内，ACL应用到的流量会默认丢弃。  如果要允许ACL应用的所有流量，同时它接收非原子更新。使用hardware access-list update default-result permit命令。

注意：如果原子和非原子更新都可能（例如，TCAM有足够的可用空间），则原子更可取。如果没有足够的可用空间来进行原子更新，则尝试非原子。因此，即使禁用了原子更新，当前实现始终先尝试原子。但是，当前由于支持逻辑限制而发生故障时，它不会切换到非原子，并且CSCud36802会提交以解决此问题（从今天起将在Freetown中修复）。

注意：当尝试在TCAM使用率较高时删除ACE时，由于总是先尝试如上所述的原子更新，因此仍然可能会触发spanslogic contrans，并且CSCua24513已归档以解决此问题（在5.2.7中修复）。

每个条目的统计信息

默认情况下，N7K在编程TCAM时会尝试合并功能，这有助于保存TCAM资源。配置每个条目的统计信息时，不会合并这些条目以维护每个访问控制条目(ACE)统计信息，在这种情况下，可能会占用更多资源。

由于ACL处理始终在硬件中，因此此命令不会对性能产生任何影响。

显示统计信息有两个选项：

show ip access-list <acl>

注意：仅显示策略类型为PACL/RACL（例如应用于接口的acl）所编程的命中的硬件条目的计数器

show hardware internal access-list input entries detail module <x>

注意：在copp策略内使用的ACL用于数据包的分类。决定是否允许/拒绝/速率限制数据包由控制平面qos策略/类映射配置完成。在ACL中指定的允许/拒绝操作在在复制策略内使用时无效。

如果在copp acl上启用统计信息，并且即使在copp类映射内使用相同的acl，show ip access <acl>也不会因上述原因而反映这一点。本质上，在copp qos策略内使用的acl被编程为策略类型 — QoS。如果希望看到符合copp控制平面qos策略的数据包，可以使用以下命令：

show system internal access-list input entries detail module <x> |b CoPP

碎片处理

默认编程模型在硬件中为每个ACE创建并行非第一分段条目。此条目与原始ACE匹配相同的源/目标IP地址和协议，但没有L4端口信息，并且与非初始分段匹配。

注意：未在非XL转发引擎上编程的L3 ACE的分段条目。

默认分段处理会导致2X CL TCAM利用率。为允许或拒绝所有非初始分段而提供的配置按钮：

fragments {permit-all |拒绝所有}

优化CL TCAM利用率 — 为整个ACL使用单个CL TCAM条目（而每个L4 ACE使用一个条目）

ACE扩展阈值

使用L4运算符的ACE — 范围、gt、lt、neq。软件有两种方法处理L4操作员：

- 分配L4op（硬件资源）和程序LOU寄存器（另一硬件资源）

- 将ACE扩展为多个均衡条目（即CL TCAM条目）

当ACE出现选项1与选项2时，全局命令hardware access-list lou resource threshold controls。扩展阈值控制扩展发生时，默认阈值为5。如果ACE可扩展为<=5 CL TCAM条目，则不分配L4op。

优点/缺点：

- 扩展会导致TCAM条目消耗增加

- L4op/LOU使用受每个标签(10)的L4ops和LOU寄存器(208)的限制

资源池

银行连锁。详细说明

相关信息

Cisco Bug ID CSCtd24377 AD-XL:Spanslogic算法约束

Cisco BUG ID CSCuc98853 ACLQOS不支持XL路由映射的分段deny-all/permit-all

蒂姆·史蒂文斯的分类幻灯片