Sommario

Introduzione

Risoluzione dei problemi/Mostra comandi

InfoSif

StatoSifRac

ControlloSifRac

InterruzioneEccezioneSifA4

InterruzioneEccezioneSifA8

Altri registri di stack

Lettura dei registri dal kernel Linux

Modifica dell'ASIC in Dope.sh

Problemi di ricaricamento invisibile all'utente

Passaggio 1

Passaggio 2

Passaggio 3

Passaggio 4

Timeout/ricaricamenti dei membri dello stack - Caso aziendale

Sintomi

Acronimi

Introduzione

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.

Risoluzione dei problemi/Mostra comandi

Raccogliere e analizzare registri utili (per ogni ASIC e Core). Le principali sono tre:

- InfoSif

- StatoSifRac

- ControlloSifRac

show platform hardware fed switch active fwd-asic register read register-name <name>

InfoSif

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).

StatoSifRac

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

ControlloSifRac

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

InterruzioneEccezioneSifA4

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

InterruzioneEccezioneSifA8

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