はじめに
このドキュメントでは、巡回冗長検査(CRC)エラーが発生した場合のDDFリロードイベントについて説明します。このイベントは、Simple Network Management Protocol(SNMP)トラップのDDFreloadで報告されます。トラップは、操作およびメンテナンス機能のCRCエラー再起動通知で導入されます。
問題
DDF Field-Programmable Gate Array(FPGA):DPCおよびDPC2上のDMAエンジンです。DDF FPGAは、CRC_ERRORを受け取る可能性があります。DDF FPGAドライバは、エラーを回復できるかどうかを判断します。この決定は、これらのエラーが発生する回数とレートに基づいて行われます。ドライバは、これらのエラーが回復可能であると判断すると、このようなエラーが発生したことをアプリケーションプログラムに示す。
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
sessmgrがdhdr.bdh_magicを使用してクラッシュする場合は、次の例を参照してください。
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解決方法
DDFリロードによってCRC_ERRORの問題は解決し、通常はそれ以上のアクションは必要ありません。このような場合、手動によるカード移行でトラフィックの問題が解決すると、DDFのリロード後にサブスクライバへの影響が報告されることがあります。
# card migrate from <affected card> to <standby card>
リリース21.19(以降)では、この機能によりFPGAの内部パイプラインが監視され、DDFのリロード後に問題が検出された場合に回復がトリガーされます。