Sommario

Introduzione

Problema

Soluzione

Introduzione

In questo documento viene descritto l'evento di ricaricamento DDF quando si è verificato l'errore CRC (Cyclic Redundancy Check). L'evento viene segnalato con il comando Simple Network Management Protocol (SNMP) trap DDFreload. La trap viene introdotta con la funzione di notifica di riavvio dell'errore CRC per l'operazione e la manutenzione.

Problema

DDF Field-Programmable Gate Array (FPGA) è un motore DMA su DPC e DPC2. Gli FPGA DDF possono ricevere un errore CRC_ERROR. Il driver FPGA DDF decide se l'errore può essere recuperato o meno. Questa decisione si basa sul numero di volte e sulla frequenza con cui si verificano tali errori. Quando il driver decide che tali errori possono essere recuperati, indica al programma dell'applicazione che si è verificato un errore di questo tipo.

Thu Apr 01 02:54:09 2021 Internal trap notification 1332 (DDFreload) card 3 ddf-dev DDF1

2021-Apr-01+02:54:09.277 card 3-cpu1: Bad dheader magic number. previous=0xf1234567 (p[12345678.123456] mcdma: MDF/DDF FPGA 3 ch6 acket addr: 0xf2

2021-Apr-01+02:54:09.327 card 3-cpu0: [12345678.123789] DF2 Complex-0 Program DDF2 CAF_DF1_PROG_ERR error detected on SAD1234567

In caso di arresto anomalo di sessmgr con dhdr.bdh_magic, è possibile osservare quanto segue:

Assertion failure at midplane/libsn_midplane.c:1845

Function: sn_midplane_dma_buffer_packet_get()

Expression: packet->dhdr.bdh_magic == 0x1974

Proclet: sessmgr (f=87000,i=40)

Process: card=3 cpu=1 arch=X pid=40961 cpu=~18% argv0=sessmgr

Crash time: 2021-Apr-28+14:54:10 UTC

Recent errno: 11 Resource temporarily unavailable

Build_number: 76955

Stack (2680@0x0xffd28000):

[ffffe430/X] __kernel_vsyscall() sp=0xffd28378

[0d0d4c67/X] sn_assert() sp=0xffd283d8

[0d1cef88/X] sn_midplane_dma_buffer_packet_get() sp=0xffd28478

[06b85352/X] sessmgr_med_data_receive() sp=0xffd284f8

[0d15cca4/X] sn_epoll_run_events() sp=0xffd28548

[0d16979a/X] sn_loop_run() sp=0xffd289f8

[0ce5bc25/X] main() sp=0xffd28a68

Soluzione

Il ricaricamento DDF risolve il problema CRC_ERROR e in genere non sono necessarie ulteriori azioni. Raramente l'impatto dell'utente viene segnalato dopo il ricaricamento del DDF in questo caso la migrazione manuale della scheda risolve il problema del traffico.

# card migrate from <affected card> to <standby card>

Nella release 21.19 (o successiva) è stata introdotta una funzionalità aggiuntiva, che controlla la pipeline interna della FPGA e attiva il ripristino in caso di problemi dopo il ricaricamento della DDF.