Troubleshooting a CoS Classifier Configuration for a TCAM Space Error
Problem
Description
When a CoS classifier configuration exceeds the amount of available ternary content addressable memory (TCAM) space, the switch returns the following system log message:
<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>)
The switch returns this message during the commit operation if the number of classifiers defined in the CoS configuration or the number of bind points (interfaces) to which classifiers are bound causes the CoS configuration to exceed the amount of available TCAM space. However, the commit operation for the CoS configuration is completed in the CLI module.
Solution
When a CoS configuration exceeds the amount of available TCAM table space, you must either define fewer classifiers or bind them to fewer interfaces, or both, so that the space requirements for the CoS configuration do not exceed the available space in TCAM.
To delete classifier definitions and bind points in a CoS configuration, and to apply a new CoS classifier definition to fewer bind points:
Delete either the CoS classifier definition or the bind points:
-
To delete the CoS classifier definition:
-
For behavioral classifiers:
[edit class-of-service] user@switch# delete classifier dscp d1
-
For multifield classifiers:
[edit] user@switch# delete interfaces ge-3/0/2 unit 0 family ethernet-switching filter input ipacl
This command deletes a multifield classifier defined for a port. Similarly, you can delete a multifield classifier defined for a VLAN or router.
You can also delete terms defined in a single multifield classifier:
[edit] user@switch# delete firewall family inet filter f1 term t1
In both these examples (for behavioral and multifield classifiers), the assumption is that too many classifier definitions resulted in the error message.
-
To delete the bind points:
[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
Here the assumption is that too many bind points (nine) in the configuration resulted in the error message.
-
Commit the operation:
[edit] user@switch# commit
Define fewer classifiers in the CoS configuration or bind classifiers to fewer interfaces, or both, so that the CoS classifier configuration does not exceed the amount of available TCAM space on the switch:
To define CoS classifiers:
For behavioral classifiers:
[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
For multifield Classifiers:
[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
To bind classifiers to fewer interfaces:
[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
Commit the operation:
[edit] user@switch# commit
Check system log for an error message. If an error message is not logged, then your classifier configuration has not exceeded the TCAM space limit.
If an error message is logged, then repeat this procedure by defining fewer classifiers or binding classifiers to fewer bind points.