Introduction
Ce document décrit l'événement de rechargement DDF lorsque l'erreur Cyclic Redundancy Check (CRC) s'est produite. L'événement est signalé avec Simple Network Management Protocol (SNMP) trap DDFreload. Le déroutement est introduit avec la fonctionnalité CRC Error Restart Notification for Operation and Maintenance.
Problème
Le FPGA (DDF Field-Programmable Gate Array) est un moteur DMA sur le DPC et le DPC2. Les FPGA DDF sont susceptibles de recevoir une erreur 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=0xffd28a68Solution
Le rechargement DDF corrige le problème CRC_ERROR et aucune autre action n'est généralement requise. Dans de rares cas, l'impact sur l'abonné est signalé après le rechargement du répartiteur principal. Dans ce cas, la migration manuelle de la carte résout le problème de trafic.
# card migrate from <affected card> to <standby card>
Dans la version 21.19 (ou ultérieure), une fonctionnalité supplémentaire est introduite, la fonctionnalité surveille le pipeline interne du FPGA et déclenche la récupération si des problèmes sont détectés après le rechargement DDF.