Introduction
Ce document décrit l'événement de rechargement DDF lorsque l'erreur CRC (Cyclic Redundancy Check) s'est produite. L'événement est signalé avec le déroutement DDFreload du protocole SNMP (Simple Network Management Protocol). Le déroutement est introduit avec la fonction CRC Error Restart Notification for Operation and Maintenance.
Problème
DDF Field-Programmable Gate Array (FPGA) est un moteur DMA sur DPC et DPC2. Les FPGA DDF sont susceptibles de recevoir un CRC_ERROR. Le pilote FPGA DDF décide si l'erreur peut être récupérée ou non. Cette décision est basée sur le nombre de fois et le taux auquel ces erreurs se produisent. Lorsque le pilote décide que ces erreurs peuvent être récupérées, il indique au programme d'application qu'une telle erreur s'est produite.
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
Les plantages de sessmgr avec dhdr.bdh_magic peuvent être observés ici :
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
Solution
Le rechargement DDF corrige le problème CRC_ERROR et aucune autre action n'est généralement requise. Rarement l'impact de l'abonné est signalé après le rechargement du répartiteur principal (DDF) dans un tel cas, la migration manuelle de la carte corrige le problème de trafic.
# card migrate from <affected card> to <standby card>
Dans la version 21.19 (ou une version ultérieure), la fonctionnalité surveille le pipeline interne du FPGA et déclenche la récupération si des problèmes surviennent après le rechargement du DDF sont détectés.