对 CoS 分类器配置进行 TCAM 空间错误故障排除
问题
描述
当 CoS 分类器配置超过可用三元内容寻址存储器 (TCAM) 空间量时,交换机将返回以下系统日志消息:
<number_of_rules_being_added> rules for <filter_name> class <filter_class> will not be installed, key: <bind_point>. no space in tcam db(<shared_pool_information>)
如果 CoS 配置中定义的分类器数量或分类器绑定到的绑定点(接口)数量导致 CoS 配置超过可用 TCAM 空间量,交换机将在提交操作期间返回此消息。但是,CoS 配置的提交操作在 CLI 模块中完成。
解决 方案
当 CoS 配置超过可用 TCAM 表空间量时,必须定义较少的分类器或将它们绑定到较少的接口,或同时定义两者,以便 CoS 配置的空间需求不超过 TCAM 中的可用空间。
要删除 CoS 配置中的分类器定义和绑定点,并将新的 CoS 分类器定义应用于较少的绑定点,请执行以下操作:
删除 CoS 分类器定义或绑定点:
-
删除 CoS 分类器定义:
-
对于行为分类器:
[edit class-of-service] user@switch# delete classifier dscp d1
-
对于多字段分类器:
[edit] user@switch# delete interfaces ge-3/0/2 unit 0 family ethernet-switching filter input ipacl
此命令删除为端口定义的多字段分类器。同样,您可以删除为 VLAN 或路由器定义的多域分类器。
您还可以删除在单个多字段分类器中定义的术语:
[edit] user@switch# delete firewall family inet filter f1 term t1
在这两个示例中(对于行为分类器和多字段分类器),假设分类器定义过多会导致错误消息。
-
删除绑定点:
[edit class-of-service] user@switch# delete class-of-service interfaces ge-0/0/0 user@switch# delete class-of-service interfaces ge-0/0/1 user@switch# delete class-of-service interfaces ge-0/0/2 user@switch# delete class-of-service interfaces ge-0/0/3 user@switch# delete class-of-service interfaces ge-0/0/4 user@switch# delete class-of-service interfaces ge-0/0/5 user@switch# delete class-of-service interfaces ge-0/0/6 user@switch# delete class-of-service interfaces ge-0/0/7 user@switch# delete class-of-service interfaces ge-0/0/8
此处的假设是配置中的绑定点过多 (9) 会导致错误消息。
-
提交操作:
[edit] user@switch# commit
在 CoS 配置中定义较少的分类器,或将分类器绑定到较少的接口,或同时定义两者,以便 CoS 分类器配置不超过交换机上的可用 TCAM 空间量:
要定义 CoS 分类器,请执行以下操作:
对于行为分类器:
[edit] user@switch# set class-of-service classifiers dscp d2 forwarding-class fc1 loss-priority low code-points 000001 user@switch# set class-of-service classifiers dscp d2 forwarding-class fc2 loss-priority low code-points 000010 user@switch# set class-of-service classifiers dscp d2 forwarding-class fc3 loss-priority low code-points 000011 user@switch# set class-of-service classifiers dscp d2 forwarding-class fc4 loss-priority low code-points 000100 user@switch# set class-of-service classifiers dscp d2 forwarding-class fc5 loss-priority low code-points 000101 user@switch# set class-of-service classifiers dscp d2 forwarding-class fc6 loss-priority low code-points 000110 user@switch# set class-of-service classifiers dscp d2 forwarding-class fc7 loss-priority low code-points 000111
对于多域分类器:
[edit] user@switch# set firewall family inet filter f1 term t1 from protocol tcp user@switch# set firewall family inet filter f1 term t1 then loss-priority high user@switch# set firewall family inet filter f1 term t1 then forwarding-class best-effort user@switch# set firewall family inet filter f1 term t2 from protocol udp user@switch# set firewall family inet filter f1 term t2 then loss-priority high user@switch# set firewall family inet filter f1 term t2 then forwarding-class assured-forwarding user@switch# set firewall family inet filter f1 term t3 from source-port ssh user@switch# set firewall family inet filter f1 term t3 then loss-priority low user@switch# set firewall family inet filter f1 term t3 then forwarding-class fc8 user@switch#set class-of-service forwarding-classes best-effort, assured-forwarding, fc8
要将分类器绑定到较少的接口,请执行以下操作:
[edit] user@switch# set class-of-service interfaces ge-0/0/0 unit 0 classifiers dscp d2 user@switch# set class-of-service interfaces ge-0/0/1 unit 0 classifiers dscp d2 user@switch# set class-of-service interfaces ge-0/0/2 unit 0 forwarding-class best-effort user@switch# set class-of-service interfaces ge-0/0/3 unit 0 forwarding-class assured-forwarding user@switch# set class-of-service interfaces ge-0/0/4 unit 0 forwarding-class fc8
提交操作:
[edit] user@switch# commit
检查系统日志中是否有错误消息。如果未记录错误消息,则分类器配置未超过 TCAM 空间限制。
如果记录了错误消息,则通过定义较少的分类器或将分类器绑定到较少的绑定点来重复此过程。