Introducción
Este documento describe el evento de recarga DDF cuando ocurrió el error de verificación por redundancia cíclica (CRC). El evento se notifica 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 DDF son susceptibles de recibir un CRC_ERROR. El controlador FPGA DDF decide si el error puede o no ser recuperado. 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 estos errores se pueden recuperar, indica al programa de aplicación que se ha producido un error de este 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
Los fallos de sessmgr con dhdr.bdh_magic se pueden observar 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=0xffd28a68Solución
La recarga de DDF soluciona el problema CRC_ERROR y normalmente no se requieren más acciones. Rara vez se informa del impacto en el suscriptor después de la recarga de DDF, en tal caso la migración manual de la tarjeta soluciona el problema de 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 detecta algún problema después de la recarga del DDF.