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.