La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene descritto come risolvere i problemi relativi ai comandi e ai registri per problemi specifici di porte e cavi di stack e ricaricamenti automatici.
Raccogliere e analizzare registri utili (per ogni ASIC e Core). Le principali sono tre:
show platform hardware fed switch active fwd-asic register read register-name <name>
Il primo bit ci dice se l'interfaccia asic è disponibile o meno. È impostato come 0x1. Se è impostato su 0x0, ci sono problemi di inoltro. I contatori o la casella degli errori non sono in grado di recuperare i pacchetti correttamente.
Switch#sh platform hardware fed switch active fwd-asic register read register-name SifInfo For asic 0 core 0 Module 0 - SifInfo[0][0] available : 0x1 <---- should be 0x1 indicating balloting is completed headerVersion : 0x0 nodeAllLinksAvailable : 0x1 nodeId : 0x4 <---- asic ID (unique across all asics in the stack) numNodes : 0x8 <---- how many asics are there in whole stack serdesSpeed : 0x2 sifAllLinksAvailable : 0x1 sifSupStall : 0x0 wrappedAtRac0 : 0x0 <---- If a single stack port is down, 3 of 6 should wrap w/ value wrappedAtRac1 : 0x0 of 0x1. Will appears in groups for 0, 2 and 4 or 1, 3 and 5. wrappedAtRac2 : 0x0 wrappedAtRac3 : 0x0 wrappedAtRac4 : 0x0 wrappedAtRac5 : 0x0
Nota: ogni cavo dello stack ha sei anelli di rack (controllo degli accessi ad anello), tre in uscita e tre in entrata, ciascuno a 40 Gb. WrappedAtRac da zero a cinque indica se un collegamento allo stack è inattivo o meno. Se le cose vanno bene, allora viene mostrato come 0x0 (sei collegamenti per asic, tre in uscita, tre in entrata. Ad esempio, i numeri dispari sono in uscita e i numeri pari in ingresso e viceversa).
Per controllare in dettaglio ogni RCR, vengono visualizzati gli aspetti critici da verificare; i bit active/linkOk/syncOk che ci dicono se il RAC specifico si è collegato o meno (se OK allora viene mostrato come 0x1).
Switch#sh plat hardware fed sw active fwd-asic register read register-name SifRacStatus For asic 0 core 0 Module 0 - SifRacStatus[0][0] active : 0x1 <---- available : 0x1 copyOk : 0x1 disabled : 0x0 insertOk : 0x1 linkOk : 0x1 <---- messageOk : 0x1 noDataOnRing : 0x0 pcsAlignmentOk : 0x1 pcsCodewordSync : 0xf reOrderOk : 0x1 slapId : 0x0 stripOk : 0x1 syncOk : 0x1 <---- toPbcOk : 0x1 transmitOk : 0x1
Verificare se Rac è spento o meno. Controllare il parametro greenPowerDisable. Questo mostra 0x0 per tutti i Rap (almeno per la piattaforma Nyquist). In alcune eccezioni, è previsto che lo spegnimento dei rack o il parametro greenPowerDisable venga visualizzato come 0x1 a causa dei limiti hardware sul cavo dello stack, ad esempio lo switch 3650, che è il dispositivo di livello inferiore. Infine, il cavo dello stack supporta solo due Rack per appliance ASA. Gli altri due Rack sono spenti.
Switch#sh plat hardware fed sw active fwd-asic register read register-name SifRacControl For asic 0 core 0 Module 0 - SifRacControl[0][0] copyEn : 0x1 deployToken : 0x0 disablePmaChecks : 0x0 forceSync : 0x0 greenPowerDisable : 0x0 <---- init : 0x0 initRacInfoLinkedList : 0x0 insertEn : 0x1 messageEn : 0x1 reOrderEn : 0x1 stripEn : 0x1 toPbcEn : 0x1 transmitEn : 0x1
Questa condizione viene attivata a causa di una modifica del collegamento nel sistema (situazione Su/Giù). L'interrupt viene gestito a livello di software. Viene elaborato per verificare se sono presenti modifiche correlate al collegamento e quindi viene pubblicato (generato dal registro).
Switch#sh plat hardware fed sw active fwd-asic register read register-name SifExceptionInterruptA4 For asic 0 core 0 Module 0 - SifExceptionInterruptA4[0][0] sifRac0LinkOkChange : 0x0 sifRac0LinkedListSpill : 0x0 sifRac0SyncOkChange : 0x1 sifRac0TransitFifoSpill : 0x0 sifRac1LinkOkChange : 0x0 sifRac1LinkedListSpill : 0x0 sifRac1SyncOkChange : 0x1 sifRac1TransitFifoSpill : 0x0 sifRac2LinkOkChange : 0x0 sifRac2LinkedListSpill : 0x0 sifRac2SyncOkChange : 0x1 sifRac2TransitFifoSpill : 0x0 sifRac3LinkOkChange : 0x0 sifRac3LinkedListSpill : 0x0 sifRac3SyncOkChange : 0x1 sifRac3TransitFifoSpill : 0x0 sifRac4LinkOkChange : 0x0 sifRac4LinkedListSpill : 0x0 sifRac4SyncOkChange : 0x1 sifRac4TransitFifoSpill : 0x0 sifRac5LinkOkChange : 0x0 sifRac5LinkedListSpill : 0x0 sifRac5SyncOkChange : 0x1 sifRac5TransitFifoSpill : 0x0
Questo è l'interrupt hardware che fornisce i dettagli quando si esegue il ballottaggio (balloting = processo di inizializzazione di base). Dopo aver completato A8, il sistema controlla se il bit disponibile di base è impostato correttamente. In caso contrario, la votazione viene eseguita di nuovo.
Nota: quando viene raggiunto il numero massimo, lo switch viene ricaricato con un messaggio di errore che indica che il bit disponibile non è stato impostato o che la votazione non è stata completata.
Switch#sh plat hardware fed sw active fwd-asic register read register-name SifExceptionInterruptA8 For asic 0 core 0 Module 0 - SifExceptionInterruptA8[0][0] sifBallotDone : 0x0 sifBallotOverallTimerExpires : 0x0 sifBallotPerStateTimerExpires : 0x0 sifBallotSpeedChangeNeeded : 0x0 sifBallotStart : 0x1 sifDebugSent : 0x0 sifEastNeighborChange : 0x1 sifMessageReceiveBufferCreditsEmpty : 0x0 sifMessageReceived : 0x1 sifMessageSent : 0x1 sifNodeIdChanged : 0x1 sifOob3in2DropCntOverflow : 0x0 sifOobFlushDropCntOverflow : 0x0 sifOobStackSifCreditDropCntOverflow : 0x0 sifOobStackSifMtuDropCntOverflow : 0x0 sifOobSupSifMtuDropCntOverflow : 0x0 sifRacInfoLinkedListInitDone0 : 0x1 sifRacInfoLinkedListInitDone1 : 0x1 sifRacInfoLinkedListInitDone2 : 0x1 sifRacInfoLinkedListInitDone3 : 0x1 sifRacInfoLinkedListInitDone4 : 0x1 sifRacInfoLinkedListInitDone5 : 0x1 sifSegmentBuffer0LinkedListSpill : 0x0 sifSegmentBuffer1LinkedListSpill : 0x0 sifSegmentBufferLinkedListInitDone0 : 0x1 sifSegmentBufferLinkedListInitDone1 : 0x1 sifStackTopologyChange : 0x1 sifUnmappedDestIndex : 0x0 sifWestNeighborChange : 0x1
Il comando successivo visualizza i contatori SIF che coinvolgono i messaggi SDP e i messaggi di gestione SIF. Attivare gli eventuali messaggi non riusciti.
Switch#show platform software sif switch active r0 counters Stack Interface (SIF) Counters ------------------------------ Stack Discovery Protocol (SDP) Messages --------------------------------------- Message Tx Success Tx Fail Rx Success Rx Fail ------------------------------------------------------------------------------ Discovery 0 0 0 0 Neighbor 0 0 0 0 Forward 455966 0 1355818 107 --------------------------------------- SIF Management Messages ----------------------- Message Success Fail -------------------------------------------------- Link Status 16 0 Link Management 0 0 Chassis Num 1 0 Topo Change 3 0 Active Declare 1 0 Template set 2 0
È possibile eseguire un comando aggiuntivo che visualizza le informazioni solo quando un interrupt supera la soglia. Il comando è.show platform software sif switch active R0 exceptions Di seguito viene riportato l'output quando non sono presenti problemi sugli interrupt:
Switch#
Switch#show platform software sif switch active R0 exceptions
Switch#
Quando sono presenti interrupt, l'output è simile allo script successivo. Tenere presente che in alcuni scenari sono previsti interrupt (avvio, plug/unplug e così via), quindi se si verifica un problema reale e continui interrupt, eseguire il comando più volte per un periodo di secondi/minuti.
Switch#show platform software sif switch active r0 exceptions
*******************************
Asicnum: 0
SIF INT : SIFEXCEPTIONINTERRUPTA1_SIFRAC5PMARECEIVEFIFOSPILL3_FIELD_IDX
Occurred count: 1
First Time: Fri May 18 08:03:23 2018
Last Time: Fri May 18 08:03:23 2018
---------------------------------
SIF INT : SIFEXCEPTIONINTERRUPTA1_SIFRAC5PMARECEIVEFIFOSPILL2_FIELD_IDX
Occurred count: 1
First Time: Fri May 18 08:03:23 2018
Last Time: Fri May 18 08:03:23 2018
---------------------------------
SIF INT : SIFEXCEPTIONINTERRUPTA1_SIFRAC5PMARECEIVEFIFOSPILL1_FIELD_IDX
Occurred count: 1
First Time: Fri May 18 08:03:23 2018
Last Time: Fri May 18 08:03:23 2018
---------------------------------
SIF INT : SIFEXCEPTIONINTERRUPTA1_SIFRAC5PMARECEIVEFIFOSPILL0_FIELD_IDX
Occurred count: 1
First Time: Fri May 18 08:03:23 2018
Last Time: Fri May 18 08:03:23 2018
In questa tabella vengono descritte le eccezioni SIF più comuni di
show platform software sif switch active R0 exceptions:
N. eccezione | NomeCampo | Gravità | Utilizzo | Descrizione |
0 | sifRac{0:5}PmaTransmitFifoSpill{0:3} | importante | Statistica | Questo si attiva se il comando push-pull FIFO tra l'orologio di sistema e serve a evitare che l'orologio fuoriesca. Questo non può accadere. In caso affermativo, è probabile che l'orologio Serdes sia stato disattivato (a causa di un errore di programmazione o di un guasto). Se ciò non è dovuto a un problema di programmazione, si tratta di un problema importante. Ma il SIF si risolve da solo. E il risultato netto di un piccolo problema è un segmento perso o in casi estremi una reinizializzazione. Se non si trattava di un problema di piccola entità e continua a verificarsi, dopo l'elaborazione di questo CHIEF, il programma viene nuovamente attivato per indicare che a questo punto la condizione è ancora presente. Questo collegamento di trasmissione è un avviso popup. |
1 | sifRac{0:5}PmaReceiveFifoSpill{0:3} | importante | Statistica | Questo si attiva se il comando push-pull FIFO tra l'orologio di sistema e serve a evitare che l'orologio fuoriesca. Questo non può accadere. In caso affermativo, è probabile che l'orologio Serdes sia stato disattivato (a causa di un errore di programmazione o di un guasto). Se ciò non è dovuto a un problema di programmazione, si tratta di un problema importante. Ma il SIF si risolve da solo. E il risultato netto di un piccolo problema è un segmento perso o in casi estremi una reinizializzazione. Se non si trattava di un problema di piccola entità e continua a verificarsi, dopo l'elaborazione di questo CHIEF, il programma viene nuovamente attivato per indicare che a questo punto la condizione è ancora presente. Questo collegamento di trasmissione è un avviso popup. |
2 | sifRac{0:5}SerdesLossOfLock{0:3} | importante | Statistica | Da utilizzare in correlazione con sifRac{0:5}PmaReceiveFifoSpill{0:3} per informare sulla condizione degli orologi Serdes ricevuti con condizione di funzionamento normale. Se sono fuori specifica, il timer IdleDensity non può compensare la differenza. In generale, si tratta di una funzione di verifica dei problemi che consente di verificare se i server di ricezione funzionano correttamente. |
3 | sifRac{0:5}PerditaOrologioBloccato{0:3} | importante | Statistica | Da utilizzare in correlazione con sifRac{0:5}PmaReceiveFifoSpill{0:3} per informare sulla condizione degli orologi Serdes ricevuti con condizione di funzionamento normale. Se sono fuori specifica, il timer IdleDensity non può compensare la differenza. In generale, si tratta di una funzione di verifica dei problemi che consente di verificare se i server di ricezione funzionano correttamente. |
4 | sifRac{0:5}syncOkChange | Minor (Minore) | Monitor (Monitora) | Indicazione di link flap |
sifRac{0:5}collegamentoOkCambia | Minor (Minore) | Monitor (Monitora) | Indicazione di link flap | |
sifRac{0:5}collegatoListSpill | importante | Monitor (Monitora) | Gli elenchi collegati Rac che fanno parte dell'algoritmo di riordino hanno superato il numero massimo di voci consentito. Questo è un problema reale e significa che il riordino ora sta rimuovendo i segmenti di dati e i messaggi OOB su questo RAC. Questo problema può verificarsi solo se lo stack non è configurato correttamente o se nell'elenco collegato si è verificato un errore software. Vedere le eccezioni 9 e 10. | |
sifRac{0:5}transitFifoSpill | importante | Statistica | Il transitFifo, responsabile dello spostamento dei dati dal SIF ad altri nodi, è stato fuoriuscito probabilmente a causa di una configurazione errata di IdleDensityTimer w.r.t. nell'offset effettivo dell'orologio Serdes ppm (parti per milione) per questo switch rispetto a quello adiacente. | |
5 | sifRac{0:5}token mancante | importante | Statistica | Il guscio dello stack è stato perso, danneggiato, ridistribuito e così via. Ciò indica probabilmente che un bit-hit sullo stack ha colpito uno SifTokenDesc. Questa è una cosa molto improbabile che succeda. Il SIF può essere configurato in modo da gestire questa situazione in diversi modi. Ricomporre e ricominciare, ridistribuire un token o permettere alla SIF di ridistribuire. |
sifRac{0:5}duplicatoToken | importante | Statistica | ||
sifRac{0:5}tokenDistribuito | info | Statistica | ||
6 | sifRac{0:5}RwCrcErrorCntOverflow | Minor (Minore) | Statistica | È probabile che tutti gli indicatori del cavo dello stack o della scatola adiacente siano compromessi. Visualizzato in questo dettaglio principalmente per il debug. Nel corso del normale funzionamento, syncOkChange e linkOkChange sono tutto ciò che occorre sapere. Quando si raccolgono i dati LONG-TERM-BER, è necessario monitorarli e contarli quando i contatori si riversano per un corretto conteggio degli errori di bit. È possibile che, quando è presente un invalidRw o pcsCodeWordError, il CRC non venga controllato. In questo modo è possibile sommare tutti questi registri per la registrazione estesa. |
sifRac{0:5}ErroreCrcDatiOverflow | Minor (Minore) | Statistica | ||
sifRac{0:5}InvalidRwErrorCntOverflow | Minor (Minore) | Statistica | ||
sifRac{0:5}CodiceCodiceWordErroreCntOverflow | Minor (Minore) | Statistica | ||
7 | sifRac{0:5}RdispErrorCntOverflow | Minor (Minore) | Statistica | |
sifRac{0:5}PrbsUnLockErrorCntOverflow | info | Statistica | Visualizzare le statistiche da utilizzare per trovare la migliore configurazione delle macro HSS IBM per trovare le programmazioni ottimali. | |
sifRac{0:5}PrbsBitErrorCntOverflow | info | Statistica | ||
sifRac{0:5}ErrorCaptureCntOverflow | info | Laboratorio | Visualizzare le statistiche per l'acquisizione della forma di parole non significative per un'ispezione allo scopo di verificare cosa sta succedendo sullo stack. | |
8 | sifRacInfoLinkedListInitDone{0:5} | info | Monitor (Monitora) | Inizializzazione hardware dell'elenco dei collegamenti RAC completata. |
sifDroppedSegmentContentOverflow | info | Statistica | ||
sifPbcInconsistencySopEopCntOverflow | info | Statistica | Scenario peggiore. Controllare l'arrivo dei dati da PBC, come indicato nel modulo del protocollo. | |
sifPbcErrorCntOverflow | info | Statistica | ||
sifSupInconsistentSopEopCntOverflow | info | Statistica | Scenario peggiore. Controllare l'arrivo dei dati in base al modulo del protocollo da SUP (OOBM). | |
sifSupErrorCntOverflow | info | Statistica | ||
sifReorderInsistentSopEopCntOverflow | info | Statistica | Indica che è stato eseguito il rollover dell'indicatore del segmento mancante. | |
sifDebugInviato | info | Laboratorio | Visualizzare l'indicazione per l'inserimento dei segmenti di debug nello stack. | |
messaggioSIFinviato | info | Laboratorio | Data la natura automatizzata dell'OOBM, queste sono utili solo in situazioni di laboratorio. | |
messaggioSIF ricevuto | info | Laboratorio | ||
sifMessageDropped | info | Laboratorio | ||
SifMessaggioRicezioneBufferCreditiVuoto | Minor (Minore) | Monitor (Monitora) | Aggiornare i crediti se il problema si verifica. Il livello di credito viene monitorato attivamente in modo da evitare che ciò si verifichi. | |
IndiceDestNonMappato | Minor (Minore) | Statistica | Durante la copia/striping, non è stato possibile eseguire il mapping di destIndex e portCopy è stato impostato su '0' e portStrip su '1'. Ciò indica un problema di configurazione. | |
sifSegmentBuffer{0:1}linklistSpill | importante | Monitor (Monitora) | Gli elenchi collegati a segmenti che fanno parte di un riordino hanno superato il numero massimo di voci consentito. Ciò indica che il riordino sta riducendo i segmenti di dati e i messaggi OOB. Questo problema può verificarsi solo se la configurazione dello stack non è corretta o se l'elenco collegato contiene un errore soft. Vedere le eccezioni 9 e 10. | |
sifSegmentBufferLinkedListInitDone{0:1] | info | Monitor (Monitora) | Inizializzazione dell'elenco dei segmenti collegati completata. | |
sifBallotFine | info | Monitor (Monitora) | Segnalazione Segnalazione completata. | |
sifBallotSpeedChangeNecessario | info | Monitor (Monitora) | Dall'ultimo scrutinio andato a buon fine, è richiesta una nuova velocità sul collegamento dello stack. Ciò significa che un nodo inserito nello stack ha modificato la dinamica della velocità dello stack. Sia che la velocità sia inferiore a quella corrente, lo stack deve essere abbassato. O per essere più veloce di prima. Può essere il risultato di un nuovo cavo più corto. | |
sifEastNeighborChange | info | Monitor (Monitora) | Monitoraggio degli scenari di attivazione, unione e avvolgimento dello stack. | |
sifWestNeighborChange | info | Monitor (Monitora) | ||
IdNodoSifModificato | info | Monitor (Monitora) | Indica che, come risultato dell'ultimo scrutinio, il SifInfo.nodeId è stato modificato. | |
sifStackTopologyChange | info | Monitor (Monitora) | Monitoraggio degli scenari di attivazione, unione e avvolgimento dello stack. | |
9 | sifRacInfoBuffer{0:5}Corretto | importante | Monitor (Monitora) | sifRacInfoBuffer{0:5} ha restituito un errore software. Si tratta di un comportamento errato, ma nel peggiore dei casi si possono verificare alcuni pacchetti non funzionanti o pacchetti successivi che vengono ignorati nel percorso di dati in uscita. Non è necessario reimpostare Doppler in questo punto. |
sifRacInfoBuffer{0:5}Rilevato | importante | Monitor (Monitora) | ||
sifRacInfoLinkedListBuffer{0:5}Corretto | importante | Monitor (Monitora) | sifRacInfoLinkedListBuffer{0:5} ha ricevuto un errore software. In base alle linee guida HA generali per il caricamento del software, si desidera reimpostare Doppler. Ciò può causare problemi di prestazioni a SifReorder. | |
sifRacInfoLinkedListBuffer{0:5}Rilevato | importante | Monitor (Monitora) | ||
sifSegmentLinkedListBuffer{0:1}Corretto | importante | Monitor (Monitora) | sifRacInfoLinkedListBuffer{0:5} ha ricevuto un errore software. In base alle linee guida HA generali per il caricamento del software, si desidera reimpostare Doppler. Ciò può causare problemi di prestazioni a SifReorder. | |
sifSegmentLinkedListBuffer{0:1}Rilevato | importante | Monitor (Monitora) | ||
10 | ErroreParitàTabellaIndiceDestinazione | importante | Monitor (Monitora) | Memoria raggiunta con un errore di parità. Ricaricare il contenuto e riconoscere che di conseguenza alcuni pacchetti possono avere errori di copia/striping. Reimpostare Doppler probabilmente non è necessario. |
TabellaPortaLocaleGlobale | importante | Monitor (Monitora) | ||
TabellaIndiceCpu | importante | Monitor (Monitora) | ||
TabellaHashA | importante | Monitor (Monitora) | ||
TabellaHashB | importante | Monitor (Monitora) | ||
AccodamentoMessaggiFifo | importante | Monitor (Monitora) | Le memorie di controllo dei messaggi sono state trovate con un errore software. Si tratta di un problema transitorio che può causare un fuori banda inoltrato o non ordinato. Questa operazione può essere eseguita autonomamente e non richiede la reimpostazione del dupler, in quanto i nuovi utenti delle voci presenti possono sovrascrivere quelle precedenti. | |
BufferCollegamentoCodaMessaggi | importante | Monitor (Monitora) |
Questa condizione si trova nelle specifiche funzionali del software driver EDCS-757121:NG3K SIF.
Altri registri di stack
- StatoSifRac
- Statistiche Sif
- ContInseritoRacSif
- ContCopiatoRacSif
- ControlloPmaSifRac
- SifBallotWatchDogTimer
- SifPbcSifErrorCnt
- StatoMessaggioSif
- ControlloSif
- ControlloInterfacciaStackSup
- SifSifPbcCnt0
- SifSifPbcCnt1
- SifSifPbcDroppedCnt
- SifSerdesHssMacroStatus
- SifSerdesHssChannelStatusRx
- SifSerdesHssChannelStatusTx
per comprendere i dettagli di ciascun registro.
Cli per monitorare lo stato delle porte dello stack:
show platform hardware feed switch <> fwd-asic registro leggere nome registro SifSerdesHssMacroStatus
show platform hardware feed switch <> fwd-asic register read register-name SifInfo
show platform hardware feed switch <> fwd-asic register read register-name SifRacStatus
show platform hardware feed switch <> fwd-asic register read register-name SifRacControl
show platform hardware feed switch <> fwd-asic register read register-name SifExceptionInterruptA8
show platform hardware feed switch <> fwd-asic register read register-name SifExceptionInterruptA4
show platform hardware feed switch <> fwd-asic registro leggere nome registro SifStatistics
show platform hardware feed switch <> fwd-asic register read register-name SifRacInsertedCnt
show platform hardware feed switch <> fwd-asic register read register-name SifRacCopiedCnt
show platform hardware feed switch <> fwd-asic register read register-name SifRacPmaControl
show platform hardware feed switch <> fwd-asic registro leggere nome registro SifBallotWatchDogTimer
show platform hardware feed switch <> fwd-asic register read register-name SifPbcSifErrorCnt
show platform hardware feed switch <> fwd-asic register read register-name SifMessageStatus
show platform hardware feed switch <> fwd-asic register read register-name SifControl
show platform hardware feed switch <> fwd-asic register read register-name SupStackInterfaceControl
show platform hardware feed switch <> fwd-asic registro leggere nome registro SifSifPbcCnt0
show platform hardware feed switch <> fwd-asic register read register-name SifSifPbcCnt<>
show platform hardware feed switch <> fwd-asic registro lettura nome registro SifSifPbcDroppedCnt
show platform hardware feed switch <> fwd-asic register read register-name SifSerdesHssChannelStatusRx
show platform hardware feed switch <> fwd-asic register read register-name SifSerdesHssChannelStatusTx
show platform hardware feed switch <> fwd-asic register read register-name SifRacDataCrcErrorCnt
show platform hardware feed switch <> fwd-asic register read register-name SifgRacRwCrcErrorCnt
show platform software sif switch <> R0 contatori
show platform software sif switch <> R0 eccezioni
Lettura dei registri dal kernel Linux
.
Dopo aver aperto la shell di Linux, procedere con lo script successivo:
[Switch_2_RP_0:~]$ dope.sh Num Asics: 0 Cat9300 platform dope vft **************************************************** DOPpler Examiner http://wwwin-dopplersdk.cisco.com **************************************************** Detecting number of asics...found 1 asics asic-0: phy_addr=0x87f80000000 virt_addr=0x7f84d746f000 Loading Library : libasd2_DL.so ... Success. (null) ASIC Layer libraries successfully loaded!!! ASIC version: 0x448 Starting ASIC Driver create Driver and Device Init Completed. dope[0,0]> rdsp SifControl <------- rdsp <register name>
Modifica dell'ASIC in Dope.sh
Lo script precedente sta leggendo lo switch 1, asic zero. Modifica l'esecuzione dello script:
dope[0,0]> asic 1 <--- changes to asic 1
dope[1,0]>
Nota: Dope.sh (Doppler shell) è il livello più basso della programmazione hardware. In questo modo è possibile leggere i valori degli anelli direttamente dall'hardware. Utilizzare gli altri registri di stack nello script precedente dopo il comandordsp per ottenere i dati più granulari (se necessario).
Problemi di ricaricamento invisibile all'utente
Ogni volta che si verifica un ricaricamento automatico (nessun crashdump/system_report generato), vengono visualizzati dei log di analisi di arresto anomalo in cui vengono visualizzati alcuni file specifici per ottenere ulteriori informazioni sulle possibili cause dell'evento.
Passaggio 1
È possibile iniziare a esaminare prima stack_mgr_R0 e verificare dal suo punto di vista il motivo del ricaricamento. Ad esempio:
Passaggio 2
Ora è possibile passare ai registri PVP. Usare gli indicatori orari estratti da stack_mgr_R0 (in particolare quando si è verificato il ricaricamento) ed esaminare pvp_F0 e pvp_R0 per identificare quando la sequenza di terminazione dei processi è iniziata prima di eseguire tutta la sequenza di ricaricamento. Ad esempio:
Nota: può visualizzare pvp_F0 e pvp_R0.
Nota: accertarsi di controllare entrambi perché si potrebbe vedere il processo linux_iosd_image terminare in pvp_R0, ma un processo diverso all'interno di pvp_F0 è stato terminato in precedenza. Questo è un fattore chiave perché è il primo processo che viene terminato. Quindi può puntare all'innesco del problema.
Passaggio 3
All'interno di pvp_F0 e pvp_R0, è disponibile anche un codice di uscita dopo che il processo è stato interrotto o bloccato. Per arresti anomali di processo reali, vengono utilizzati i codici di uscita 129 e così via. In questo modo il pvp è consapevole della necessità di creare crashdump/system_report. Senza crashdump/system_report, il codice di uscita è in genere zero. Ad esempio:
Passaggio 4
Dopo aver identificato il processo responsabile, andare nei blog relativi al processo e controllare per ulteriori dettagli.
Timeout/ricaricamenti dei membri dello stack - Caso aziendale
È possibile che un singolo cavo errato tra due switch causi il ricaricamento di uno switch nello stack a causa di una perdita dei pacchetti keepalive.
Sintomi
Le tracce dello stack, o switch, che hanno riscontrato attivamente il problema producono i seguenti errori:
- 9300-1# show platform software trace message stack-mgr switch active R0 | inc non risponde
- 2018 <tel:2018>/05/10 13:57:30.397 [stack_mgr] [24459]: UUID: 0, ra: 0, TID: 0 (nota): il peer 4 non risponde, per 8000 <tel:8000> msec. Bookkeep=3EFDD last_msg = 3EFD5
- 2018 <tel:2018>/05/10 13:57:29.396 [stack_mgr] [24459]: UUID: 0, ra: 0, TID: 0 (nota): Peer 6 non risponde, per 8000 <tel:8000> msec. Bookkeep=3EFDC last_msg = 3EFD4
La libreria controlla ogni secondo l'ultima volta che è stata ascoltata da ciascuno switch dello stack (dal punto di vista dello switch che esegue la libreria). Dopo 8000 msec di assenza di keepalive, cominciamo a stampare tracce che i peer non sono stati ascoltati. A 16000 msec, gli switch in questione vengono ricaricati per rilevare i pacchetti keepalive persi.
9300-1#sh switch stack-ports sum Load for five secs: 8%/4%; one minute: 9%; five minutes: 9% Time source is NTP, 11:53:11.196 EDT Thu May 17 2018 Sw#/Port# Port Status Neighbor Cable Length Link OK Link Active Sync OK #Changes to LinkOK In Loopback ------------------------------------------------------------------------------------------------------------------- 1/1 OK 2 100cm Yes Yes Yes 2 No 1/2 OK 8 300cm Yes Yes Yes 143 No <----------- 2/1 OK 3 50cm Yes Yes Yes 1 No 2/2 OK 1 100cm Yes Yes Yes 1 No 3/1 OK 4 50cm Yes Yes Yes 1 No 3/2 OK 2 50cm Yes Yes Yes 1 No 4/1 OK 5 50cm Yes Yes Yes 1 No 4/2 OK 3 50cm Yes Yes Yes 1 No 5/1 OK 6 50cm Yes Yes Yes 1 No 5/2 OK 4 50cm Yes Yes Yes 1 No 6/1 OK 7 50cm Yes Yes Yes 1 No 6/2 OK 5 50cm Yes Yes Yes 1 No 7/1 OK 8 50cm Yes Yes Yes 1 No 7/2 OK 6 50cm Yes Yes Yes 1 No 8/1 DOWN NONE 300cm No No Yes 116 No <---------------- 8/2 OK 7 50cm Yes Yes Yes 1 No
Questo timeout è stato riscontrato anche in presenza di una grande instabilità nel collegamento dello stack tra due switch, con la conseguenza che uno switch ha avuto la sensazione che la porta dello stack fosse attiva e in grado di trasmettere il traffico, mentre l'altro switch ha avuto la sensazione che fosse inattiva.
L'anello dello stack funziona sia in senso orario che in senso antiorario. Il traffico sul ring può prendere entrambi i percorsi indipendentemente dalla loro destinazione. Ciò significa che se lo switch 2 desidera inviare un messaggio keepalive allo switch 1, può passare attraverso gli switch 3, 4, 5, 6, 7, 8 e quindi 1 o solo da 2 direttamente a 1. Il traffico di ritorno dallo switch 1 allo switch 2 che si verifica all'hash verso lo switch 8 sarebbe stato interrotto, determinando i timeout rilevati nello script precedente.
Acronimi
- OOB: fuori banda
- SIF: Stack Interface
- RAC: Ring Access Controller
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
27-Jun-2024 |
Versione iniziale |