Introduzione
Questo documento descrive come scolpire Nexus 9000 ternary content-addressable memory (TCAM).
Premesse
Questo documento non intende essere un elenco esaustivo delle numerose combinazioni di TCAM. Lo scopo di questo documento è quello di aiutare gli utenti a comprendere il funzionamento dell'allocazione TCAM in modo da poter determinare configurazioni valide che soddisfino le loro esigenze. Il documento tratta i concetti, la configurazione e i messaggi di errore correnti e più comuni.
Per utilizzare una funzione non predefinita per gli switch Nexus serie 9000, è necessario liberare manualmente lo spazio TCAM per le funzioni. Per impostazione predefinita, viene allocato tutto lo spazio TCAM.
NOTA:
Il dispositivo su cui è basato questo documento non è su scala cloud o Cisco Silicon One. Pertanto, possono esistere variazioni nei nomi delle regioni, nei valori di default e in altri elementi correlati.
Terminologia
- Larghezza feature (Feature Width) - Sono disponibili feature a larghezza singola e doppia. Una feature a larghezza singola richiede almeno una sezione. Una feature a larghezza doppia richiede almeno due fette.
Per le funzioni a larghezza singola e doppia, la dimensione totale, se maggiore di 256, deve essere un multiplo di 512. Una sezione può essere allocata a una sola area.
Ad esempio, non potete usare una sezione di 512 dimensioni per configurare due funzionalità di 256 dimensioni ciascuna, né potete usare una sezione di 512 dimensioni per configurare una singola funzione di larghezza doppia.
- Slice - Unità di allocazione della memoria. Le sezioni possono avere dimensioni 256 o 512, misurate in byte.
- TCAM - Ternary Content Addressable Memory (memoria indirizzabile al contenuto ternario). Questo è lo spazio nell'hardware in cui sono memorizzati gli elenchi degli accessi (ACL). Si tratta di una memoria speciale che memorizza dati tabulari complessi e supporta ricerche parallele molto rapide.
Aree TCAM ACL
È possibile modificare le dimensioni delle aree TCAM degli ACL nell'hardware. La dimensione TCAM in uscita è di 1K, divisa in quattro 256 voci. Il formato TCAM in entrata è di 4K, diviso in otto 256 fette e quattro 512 fette.
Le aree TCAM IPv4 sono di larghezza singola. Le aree IPv6, Quality of Service (QoS), MAC, Control-Plane Policing (CoPP) e System TCAM sono due volte più ampie e consumano il doppio delle voci TCAM fisiche.
Ad esempio, una dimensione di area logica di 256 voci consuma 512 voci TCAM fisiche.
È possibile creare IPv6, ACL di porta (PACL), ACL VLAN (VACL) e ACL di router (RACL), nonché abbinare indirizzi IPv6 e MAC per QoS. Tuttavia, Cisco NX-OS non è in grado di supportarle tutte contemporaneamente.
Per abilitare le aree TCAM IPv6 e MAC è necessario rimuovere o ridurre le dimensioni delle aree TCAM correnti. Per ogni comando di configurazione dell'area TCAM, il sistema valuta se la nuova modifica può essere contenuta nell'area TCAM.
In caso contrario, viene restituito un errore e il comando viene rifiutato. È necessario rimuovere o ridurre le dimensioni delle aree TCAM correnti per fare spazio ai nuovi requisiti.
Le dimensioni delle aree TCAM ACL sono soggette alle seguenti linee guida e limitazioni:
- Sugli switch Cisco Nexus serie 9500, la configurazione predefinita della regione TCAM in entrata prevede una slice gratuita da 256 ingressi in Cisco NX-OS versione 6.1(2)I1(1).
Questa slice viene allocata all'area SPAN (Switch Port Analyzer) in Cisco NX-OS versione 6.1(2)I2(1). Analogamente, la regione RACL è ridotta da 2K a 1,5K in Cisco NX-OS versione 6.1(2)I2(1) per fare spazio alla regione di convergenza del canale della porta virtuale (vPC) con 512 voci.
- Sugli switch Cisco Nexus serie 9300, la scheda di linea foglia ACI (Application Centric Infrastructure) viene utilizzata per applicare i criteri di classificazione QoS applicati alle porte 40G. Dispone di 768 voci TCAM disponibili per scavare in granularità di 256 voci. I nomi di queste aree sono preceduti dal prefisso ns-.
- Per la scheda di linea foglia ACI sugli switch Cisco Nexus serie 9300, solo le aree TCAM IPv6 utilizzano voci a larghezza doppia. Il resto delle regioni TCAM consuma voci singole.
- Quando viene configurata una regione VACL, viene configurata con le stesse dimensioni sia in entrata che in uscita. Se le dimensioni della regione non possono essere adattate in nessuna direzione, la configurazione viene rifiutata.
Entrambi gli switch Nexus serie 9300 e 9500 dispongono di quattro slice di dimensioni di 512 byte e di otto slice di dimensioni di 256 byte. Per impostazione predefinita, vengono utilizzate tutte le sezioni e tutto lo spazio, anche se l'allocazione predefinita è diversa tra Nexus serie 9300 e serie 9500.
Nota: Nexus 9332PQ utilizza la stessa allocazione predefinita di Nexus 9500.
Allocazione TCAM Nexus serie 9500
Per impostazione predefinita, agli switch Nexus serie 9500 è assegnato questo numero di TCAM:
Nexus9500# show system internal access-list globals
slot 1
=======
Atomic Update : ENABLED
Default ACL : DENY
Bank Chaining : DISABLED
Fabric path DNL : DISABLED
NS Buffer Profile: Mesh optimized
Min Buffer Profile: all
EOQ Class Stats: qos-group-0
NS MCQ3 Alias: qos-group-3
Ing PG Share: ENABLED
LOU Threshold Value : 5
----------------------------------------------------------------------
INSTANCE 0 TCAM Region Information:
----------------------------------------------------------------------
Ingress:
----------
Region GID Base Size Width
----------------------------------------------------------------------
IPV4 PACL [ifacl] 3 0 0 1
IPV6 PACL [ipv6-ifacl] 4 0 0 2
MAC PACL [mac-ifacl] 5 0 0 2
IPV4 Port QoS [qos] 6 0 0 2
IPV6 Port QoS [ipv6-qos] 7 0 0 2
MAC Port QoS [mac-qos] 8 0 0 2
FEX IPV4 PACL [fex-ifacl] 9 0 0 1
FEX IPV6 PACL [fex-ipv6-ifacl] 10 0 0 2
FEX MAC PACL [fex-mac-ifacl] 11 0 0 2
FEX IPV4 Port QoS [fex-qos] 12 0 0 2
FEX IPV6 Port QoS [fex-ipv6-qos] 13 0 0 2
FEX MAC Port QoS [fex-mac-qos] 14 0 0 2
IPV4 VACL [vacl] 15 0 0 1
IPV6 VACL [ipv6-vacl] 16 0 0 2
MAC VACL [mac-vacl] 17 0 0 2
IPV4 VLAN QoS [vqos] 18 0 0 2
IPV6 VLAN QoS [ipv6-vqos] 19 0 0 2
MAC VLAN QoS [mac-vqos] 20 0 0 2
IPV4 RACL [racl] 21 0 1536 1
IPV6 RACL [ipv6-racl] 22 0 0 2
IPV4 Port QoS Lite [qos-lite] 61 0 0 1
FEX IPV4 Port QoS Lite [fex-qos-lite] 62 0 0 1
IPV4 VLAN QoS Lite [vqos-lite] 63 0 0 1
IPV4 L3 QoS Lite [l3qos-lite] 64 0 0 1
IPV4 L3 QoS [l3qos] 37 3072 256 2
IPV6 L3 QoS [ipv6-l3qos] 38 0 0 2
MAC L3 QoS [mac-l3qos] 39 0 0 2
Ingress System 1 2048 256 2
SPAN [span] 2 4096 256 1
Ingress COPP [copp] 40 2560 256 2
Ingress Flow Counters [flow] 43 0 0 1
Ingress SVI Counters [svi] 45 0 0 1
Redirect [redirect] 46 3840 256 1
NS IPV4 Port QoS [ns-qos] 47 0 0 1
NS IPV6 Port QoS [ns-ipv6-qos] 48 0 0 2
NS MAC Port QoS [ns-mac-qos] 49 0 0 1
NS IPV4 VLAN QoS [ns-vqos] 50 0 0 1
NS IPV6 VLAN QoS [ns-ipv6-vqos] 51 0 0 2
NS MAC VLAN QoS [ns-mac-vqos] 52 0 0 1
NS IPV4 L3 QoS [ns-l3qos] 53 0 0 1
NS IPV6 L3 QoS [ns-ipv6-l3qos] 54 0 0 2
NS MAC L3 QoS [ns-mac-l3qos] 55 0 0 1
VPC Convergence [vpc-convergence] 57 1536 512 1
----------------------------------------------------------------------
* - allocated 512 entry slice due to unavailability of 256 entry slices
----------------------------------------------------------------------
Total: 4096
----------------------------------------------------------------------
Egress
----------
Region GID Base Size Width
----------------------------------------------------------------------
Egress IPV4 VACL [vacl] 31 0 0 1
Egress IPV6 VACL [ipv6-vacl] 32 0 0 2
Egress MAC VACL [mac-vacl] 33 0 0 2
Egress IPV4 RACL [e-racl] 34 4352 768 1
Egress IPV6 RACL [e-ipv6-racl] 35 0 0 2
Egress System 24 3584 256 1
Egress Flow Counters [e-flow] 44 0 0 1
----------------------------------------------------------------------
Total: 1024
----------------------------------------------------------------------
L'allocazione delle porzioni è quella mostrata per l'entrata:
Sezione 1 (512): RACL
Sezione 2 (512): RACL
Sezione 3 (512): RACL
Sezione 4 (512): Convergenza VPC
Sezione 5 (256): QOS Layer 3
Sezione 6 (256): QOS Layer 3
Sezione 7 (256): SPAN
Sezione 8 (256): REINDIRIZZAMENTO
Sezione 9 (256): CoPP in ingresso
Sezione 10 (256): CoPP in ingresso
Sezione 11 (256): Sistema in ingresso
Sezione 12 (256): Sistema in ingresso
Utilizzo in ingresso concettualizzato:

Nexus serie 9300 Allocazione TCAM
Per impostazione predefinita, agli switch Nexus serie 9300 è assegnato questo numero di TCAM:
Nexus9300# show system internal access-list globals
slot 1
=======
Atomic Update : ENABLED
Default ACL : DENY
Bank Chaining : DISABLED
Fabric path DNL : DISABLED
NS Buffer Profile: Burst optimized
Min Buffer Profile: all
EOQ Class Stats: qos-group-0
NS MCQ3 Alias: qos-group-3
Ing PG Share: ENABLED
LOU Threshold Value : 5
----------------------------------------------------------------
INSTANCE 0 TCAM Region Information:
----------------------------------------------------------------
Ingress:
----------
Region GID Base Size Width
----------------------------------------------------------------
IPV4 PACL [ifacl]( 1) 3 0 512 1
IPV6 PACL [ipv6-ifacl]( 2) 4 0 0 2
MAC PACL [mac-ifacl]( 3) 5 0 0 2
IPV4 Port QoS [qos]( 4) 6 3072 256 2
IPV6 Port QoS [ipv6-qos]( 5) 7 0 0 2
MAC Port QoS [mac-qos]( 6) 8 0 0 2
FEX IPV4 PACL [fex-ifacl]( 7) 9 0 0 1
FEX IPV6 PACL [fex-ipv6-ifacl]( 8) 10 0 0 2
FEX MAC PACL [fex-mac-ifacl]( 9) 11 0 0 2
FEX IPV4 Port QoS [fex-qos]( 10) 12 0 0 2
FEX IPV6 Port QoS [fex-ipv6-qos]( 11) 13 0 0 2
FEX MAC Port QoS [fex-mac-qos]( 12) 14 0 0 2
IPV4 VACL [vacl]( 13) 15 512 512 1
IPV6 VACL [ipv6-vacl]( 14) 16 0 0 2
MAC VACL [mac-vacl]( 15) 17 0 0 2
IPV4 VLAN QoS [vqos]( 16) 18 0 0 2
IPV6 VLAN QoS [ipv6-vqos]( 17) 19 0 0 2
MAC VLAN QoS [mac-vqos]( 18) 20 0 0 2
IPV4 RACL [racl]( 19) 21 1024 512 1
IPV6 RACL [ipv6-racl]( 20) 22 0 0 2
IPV4 Port QoS Lite [qos-lite]( 21) 63 0 0 1
FEX IPV4 Port QoS Lite [fex-qos-lite]( 22) 64 0 0 1
IPV4 VLAN QoS Lite [vqos-lite]( 23) 65 0 0 1
IPV4 L3 QoS Lite [l3qos-lite]( 24) 66 0 0 1
IPV4 L3 QoS [l3qos]( 34) 37 0 0 2
IPV6 L3 QoS [ipv6-l3qos]( 35) 38 0 0 2
MAC L3 QoS [mac-l3qos]( 36) 39 0 0 2
Ingress System( 37) 1 2048 256 2
SPAN [span]( 39) 2 3584 256 1
Ingress COPP [copp]( 40) 40 2560 256 2
Ingress Flow Counters [flow]( 41) 43 0 0 1
Ingress SVI Counters [svi]( 43) 45 0 0 1
Redirect [redirect]( 44) 46 1536 512 1
NS IPV4 Port QoS [ns-qos]( 45) 47 0 0 1
NS IPV6 Port QoS [ns-ipv6-qos]( 46) 48 0 0 2
NS MAC Port QoS [ns-mac-qos]( 47) 49 0 0 1
NS IPV4 VLAN QoS [ns-vqos]( 48) 50 0 0 1
NS IPV6 VLAN QoS [ns-ipv6-vqos]( 49) 51 0 0 2
NS MAC VLAN QoS [ns-mac-vqos]( 50) 52 0 0 1
NS IPV4 L3 QoS [ns-l3qos]( 51) 53 0 0 1
NS IPV6 L3 QoS [ns-ipv6-l3qos]( 52) 54 0 0 2
NS MAC L3 QoS [ns-mac-l3qos]( 53) 55 0 0 1
VPC Convergence [vpc-convergence]( 54) 57 4096 256 1
IPSG SMAC-IP bind table [ipsg]( 55) 59 0 0 1
Ingress ARP-Ether ACL [arp-ether]( 56) 62 0 0 1
----------------------------------------------------------------------
* - allocated 512 entry slice due to unavailability of 256 entry slices
----------------------------------------------------------------
Total: 4096
----------------------------------------------------------------
Egress
----------
Region GID Base Size Width
----------------------------------------------------------------
Egress IPV4 QoS [e-qos]( 25) 28 0 0 2
Egress IPV6 QoS [e-ipv6-qos]( 26) 29 0 0 2
Egress MAC QoS [e-mac-qos]( 27) 30 0 0 2
Egress IPV4 VACL [vacl]( 28) 31 4352 512 1
Egress IPV6 VACL [ipv6-vacl]( 29) 32 0 0 2
Egress MAC VACL [mac-vacl]( 30) 33 0 0 2
Egress IPV4 RACL [e-racl]( 31) 34 4864 256 1
Egress IPV6 RACL [e-ipv6-racl]( 32) 35 0 0 2
Egress IPV4 QoS Lite [e-qos-lite]( 33) 36 0 0 1
Egress System( 38) 24 3840 256 1
Egress Flow Counters [e-flow]( 42) 44 0 0 1
----------------------------------------------------------------------
Total: 1024
----------------------------------------------------------------
Sezione 1 (512): PACL IPv4
Sezione 2 (512): VACL
Sezione 3 (512): RACL
Sezione 4 (512): Reindirizzamento
Sezione 5 (256): QOS porta
Sezione 6 (256): QOS porta
Sezione 7 (256): SPAN
Sezione 8 (256): Convergenza VPC
Sezione 9 (256): CoPP in ingresso
Sezione 10 (256): CoPP in ingresso
Sezione 11 (256): Sistema in ingresso
Sezione 12 (256): Sistema in ingresso
Utilizzo in ingresso concettualizzato:

Configurazione
Per riconfigurare una regione TCAM, usare il hardware access-list tcam region
comando nel terminale di configurazione. Una volta modificate le regioni in modo da ottenere le dimensioni desiderate, è necessario ricaricare il dispositivo.
Scenario di esempio
Si dispone di un Nexus 9300 e si desidera allocare lo spazio TCAM per soddisfare al meglio le proprie esigenze. È necessario liberare 512 byte di TCAM. In questo modo è possibile aggiungere altri pacchetti al pacchetto IPv4.
Tuttavia, si decide di non aver bisogno di 512 VACL o 512 RACL, ma di alcuni di entrambi, quindi si decide di non allocare 256 byte da VACL e RACL. In questo modo viene liberato spazio per 512 come mostrato nei seguenti comandi:
Nexus9300(config)# hardware access-list tcam region vacl 256
Warning: Please save config and reload the system for the configuration to take effect
Nexus9300(config)# hardware access-list tcam region racl 256
Warning: Please save config and reload the system for the configuration to take effect
Con 512 byte liberi, si cerca di allocare un ulteriore 512 al PACL IPv4, ma viene visualizzato questo output:
Nexus9300(config)# hardware access-list tcam region ifacl 1024
ERROR: Aggregate TCAM region configuration exceeded the available Ingress TCAM slices.
Please re-configure.
Anche se sono stati liberati 512 byte, sia lo spazio VACL che RACL, da cui sono stati prelevati 256, erano 512 blocchi. Di conseguenza, i comandi precedenti non hanno allocato lo spazio, ma non hanno annullato l'allocazione delle sezioni. Per aumentare le dimensioni del PACL IPv4 a 1024, è necessario prelevare 512 byte da una singola funzione per liberare sia una slice che lo spazio:
Nexus9300(config)# hardware access-list tcam region vacl 512
Warning: Please save config and reload the system for the configuration to take effect
Nexus9300(config)# hardware access-list tcam region racl 0
Warning: Please save config and reload the system for the configuration to take effect
Nexus9300(config)# hardware access-list tcam region ifacl 1024
Warning: Please save config and reload the system for the configuration to take effect
Comandi di verifica
show hardware access-list tcam region
- Verifica la configurazione software corrente.
show system internal access-list globals
- Verifica la configurazione hardware corrente.
show system internal access-list input entries detail -
Mostra gli ACL specifici configurati per ciascuna istanza.
show hardware access-list resource utilization
- Mostra l'utilizzo corrente di ciascuna area TCAM configurata.
show hardware access-list resource entries
- Mostra il numero di voci ACL configurate per ogni istanza
Errori e soluzioni
Di seguito sono riportati gli errori comuni rilevati durante la configurazione TCAM:
ERROR: Aggregate TCAM region configuration exceeded the available
Ingress TCAM slices. Please re-configure.
Questo errore si verifica quando si tenta di configurare una quantità valida di spazio TCAM in relazione al limite di 4k, ma l'allocazione consuma più sezioni di quelle disponibili.
L'unica soluzione per questo errore è rivedere il progetto TCAM complessivo per liberare le sezioni.
Questo errore è più comune quando si tenta di configurare una nuova funzionalità a larghezza doppia, in quanto sono necessarie almeno due sezioni di 256 o 512.
ERROR: Aggregate TCAM region configuration exceeded the available
Ingress TCAM space. Please re-configure.
Analogamente all'errore della sezione, la soluzione consiste nel riconfigurare lo spazio allocato in modo che non superi il limite totale. Questo messaggio di errore viene visualizzato solo quando tutte le slice TCAM sono già state allocate e si cerca di allocare più spazio.
ERROR: TCAM regions with size more than 256, ... have size
in multiple of 512 entries
A causa dei limiti hardware, le dimensioni TCAM maggiori di 256 non possono essere combinate in alcun modo che combini un numero dispari di 256 blocchi con un blocco 512. Per questo motivo, quando configurate un'area TCAM più grande di 512, le uniche dimensioni valide sono multipli di 512.
Linee guida e limitazioni per la progettazione
Lo spazio TCAM è limitato. La scelta del caso più adatto dipende interamente dallo specifico caso di utilizzo. Per impostazione predefinita, tutto lo spazio TCAM è già allocato, quindi è necessario decidere dove allocare lo spazio TCAM per allocarlo altrove.
- Gli utenti non possono ridurre la quantità predefinita di TCAM CoPP e di sistema in ingresso. Questi sono già al valore minimo e non possono essere ridotti.
- Tutte le funzionalità QoS sono a larghezza doppia.
- Le mappe dei criteri SVI non sono supportate.
Informazioni correlate