# Performance Impact and Scalability Considerations

The following sections describe how the memory usage and performance of the line modules on which the variable-sized CAM entries are supported is affected, and also of the maximum number of policies that can be supported with variable-sized CAM entries.

## Performance Impact

Some performance impact might occur due to the variable size of the CAM entries. This performance impact is caused by CAM addressing, which works on 72 bits. 576-bit classification requests now require up to 8 lookups to the CAM hardware (8 * 72 = 576). The CAM device has a search rate of up to 83 million per second for 144 bit entries.

## Scalability Considerations

One CAM entry is required per classifier for each unique policy on each line module. Regardless of the classifier definition for an IPv4 policy, each IPv4 classifier consumes 144 bits (one 144-bit CAM entry). However, default classifiers do not consume CAM entries.

As described in Variable-Sized CAM Classification for IPv6 Policies Examples, an IPv6 CAM entry size is 144 bits, 288 bits, or 576 bits, depending on the sum of the classification fields in the policy definition. However, all IPv6 classifiers consume the same CAM entry size in a policy.

The following factors are used to determine the CAM resources available for policies when variable-sized CAM entries are present:

- CAM Device Block Size and CAM Entry Allocation
- Number of CAM Entries Per Allocation and Free Entries

### CAM Device Block Size and CAM Entry Allocation

Using GE-2 line modules, for example, we can demonstrate how the number of CAM entries it supports is divided into different blocks to store policies. GE-2 line modules contain 64,000 144-bit CAM entries. Each entry is divided into eight 8000 144-bit blocks. Each block can hold equal-sized CAM entries only—144-bit, 288-bit, and 576-bit CAM entries. If no more IPv6 policies are created and when the remaining seven blocks are used, the 576-bit CAM block is not available to store IPv4 policies that require 144-bit CAM entries only.

A default classifier within a policy also consumes the same sized CAM entry as the size computed for the policy. In lower numbered releases, a single 144-bit entry was reserved for default classifiers. In this release, the number of 144-bit entries reserved for default classifiers depends on the number of blocks assigned for such CAM entries and whether the attached policy contains 288-bit or 576-bit entries. For example, if the first block is used by the 576-bit CAM entry, four 144-bit entries are reserved for the default classifier.

### Number of CAM Entries Per Allocation and Free Entries

The total number of CAM blocks is divided into two equal partitions. The first or lower half of the CAM blocks is reserved for 144-bit CAM entries, and the second or higher half of CAM blocks is reserved for the combination of 288-bit and 576-bit CAM entries, when an IPv6 policy that contains 288-bit or 576-bit CAM entries is attached to an interface. If IPv6 policies do not contain 288-bit or 576-bit CAM entries, all the blocks are used for 144-bit entries.

Assume that, on a GE-2 line module, out of the total of eight blocks, four blocks are completely used for 144-bit CAM entries and the remaining four blocks are allocated in common for 144-bit, 288-bit, and 576-bit entries. Each of the blocks reserved exclusively for 144-bit entries can contain 8000 entries, while each of the blocks reserved for the combination of the variable-sized entries can either contain 2000 576-bit entries or 4000 288-bit entries. The block that is common to the variable-sized entries is available for 144-bit entries only if an IPv6 policy does not contain 288-bit or 576-bit entries. Otherwise, when the first IPv6 policy that contains 288-bit or 576-bit entries is attached to an interface and if previously configured policies consumes more than 4 blocks, the IPv6 policy attachment fails.

The block that is common to the variable-sized entries is not available for 144-bit CAM entries when you configure any 288-bit or 576-bit entries, even though you remove them later. It is also not available for any 288-bit or 576-bit entries when the 144-bit entries spill into this block, even though you remove the 144-bit entries later.

| Note: ES2 4G LMs contain a total of 32 blocks, of which 16 blocks are assigned for 144-bit entries. The remaining 16 blocks are assigned for the combination of 144-bit, 288-bit, and 576-bit entries (pool common to these three variable-sized entries).

Table 28 lists the maximum policies supported with variable length IPv6 CAM classification and one classifier per policy. The following note is referred to in Table 28.

1. The number of unique policies supported depends on the line module and the numbers used are to illustrate the impact with CAM entries. The actual policies vary according to the line module.

Table 28: Maximum Policies with One Classifier per Policy for GE-2 LMs

Number/Type of Policies | Total 144-bit CAM entries | Number of IPv4 policies (144-bit) with one CLACL (See Note 1) | Number of IPv6 policies (144-bit) with one CLACL | Number of IPv6 policies (288-bit) with one CLACL (See Note 1) | Number of IPv6 policies (576-bit) with one CLACL (See Note 1) | Number of maximum policies per LM (one CLACL per policy) (See Note 1)
--- | --- | --- | --- | --- | --- | ---
All IPv4 policies | 64,000 | 64,000 | 0 | 0 | 0 | 64,000
All IPv6 policies | 64,000 | 0 | 64,000 | 0 | 0 | 64,000
All IPv6 policies | 64,000 | 0 | 0 | 16,000 | 0 | 16,000
All IPv6 policies | 64,000 | 0 | 0 | 0 | 8000 | 8000
Equal number of identical IPv4/IPv6 policies | 64,000 | 32,000 | 32,000 | 0 | 0 | 64,000
Equal number of identical IPv4/IPv6 policies | 64,000 | 16,000 | 0 | 16,000 | 0 | 32,000 (+ 16,000 144-bit entries available)
Equal number of identical IPv4/IPv6 policies | 64,000 | 8000 | 0 | 0 | 8000 | 16,000 (+ 24,000 144-bit entries available)

Table 29 lists the maximum policies supported with variable length IPv6 CAM classification and four classifiers per policy.

Table 29: Maximum Policies with Four Classifiers per Policy for GE-2 LMs

Number/Type of Policies | Total 144-bit CAM entries | Number of IPv4 policies (144-bit) with four CLACLs | Number of IPv6 policies (144-bit) with four CLACL s | Number of IPv6 policies (288-bit) with four CLACLs | Number of IPv6 policies (576-bit) with four CLACLs | Number of maximum policies per LM (four CLACLs per policy)
--- | --- | --- | --- | --- | --- | ---
All IPv4 policies | 64,000 | 16,000 | 0 | 0 | 0 | 16,000
All IPv6 policies | 64,000 | 0 | 16,000 | 0 | 0 | 16,000
All IPv6 policies | 64,000 | 0 | 0 | 4000 | 0 | 4000
All IPv6 policies | 64,000 | 0 | 0 | 0 | 2000 | 2000
Equal number of identical IPv4/IPv6 policies | 64,000 | 8000 | 8000 | 0 | 0 | 16,000
Equal number of identical IPv4/IPv6 policies | 64,000 | 4000 | 0 | 4000 | 0 | 8000 (+ 16,000 144-bit entries available)
Equal number of identical IPv4/IPv6 policies | 64,000 | 2000 | 0 | 0 | 2000 | 4000 (+ 24,000 144-bit entries available)

#### Related Documentation

- Variable-Sized CAM Classification for IPv6 Policies Examples
- Size Limit for IP and IPv6 CAM Hardware Classifiers