Introducción
Este documento describe el evento de recarga de DDF cuando ocurrió el error de Verificación por redundancia cíclica (CRC). El evento se informa con la trampa DDFreload del protocolo simple de administración de red (SNMP). La trampa se introduce con la función CRC Error Restart Notification for Operation and Maintenance.
Problema
DDF Field-Programmable Gate Array (FPGA) es un motor DMA en DPC y DPC2. Los FPGA de DDF son susceptibles de recibir un CRC_ERROR. El controlador DDF FPGA decide si el error puede ser recuperado o no. Esta decisión se basa en el número de veces y la velocidad a la que se producen estos errores. Cuando el controlador decide que se pueden recuperar estos errores, indica al programa de la aplicación que se ha producido tal error.
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
El sessmgr cae con dhdr.bdh_magic puede verse aquí:
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
Solución
La recarga de DDF corrige el problema CRC_ERROR y normalmente no se requieren más acciones. Rara vez se informa del impacto del suscriptor después de la recarga de DDF en tal caso, la migración manual de la tarjeta corrige el problema del tráfico.
# card migrate from <affected card> to <standby card>
En la versión 21.19 (o posterior) se introduce una función adicional, la función monitorea la canalización interna del FPGA y activa la recuperación si se detectan problemas después de la recarga del DDF.