主题中讨论的其他器件:J721EXCPXEVM、 J721S2XSOMXEVM、 TDA4VM
工具/软件:
在我们客户的一个网络中、我们注意到 TDA4VE 上的 CPSW 以太网在夜间运行时往往会停止接收帧。 链路保持正常、但无法接收到帧、问题的主要符号是 p0_ALE_vid_negoti_drop 以与 p0_rx_good_frames 相同的速率计数。 我们已将其隔离到驱动程序更新 ALE 表时出现的问题。 通常、该表如下所示:
root@j721s2-evm:~# switch-config -d K3 cpsw dump version (1) len(6328) ALE table dump ents(64): 0 : type: vlan , vid = 0, untag_force = 0x3, reg_mcast = 0x0, unreg_mcast = 0x0, member_list = 0x3 1 : type: ucast, addr = 34:08:e1:81:8c:ef, ucast_type = persistant, port_num = 0x0, Secure 2 : type: mcast, vid = 0, addr = ff:ff:ff:ff:ff:ff, mcast_state = f, no super, port_mask = 0x3 3 : type: mcast, addr = 33:33:00:00:00:01, mcast_state = f, no super, port_mask = 0x1 4 : type: mcast, addr = 01:00:5e:00:00:01, mcast_state = f, no super, port_mask = 0x1 5 : type: mcast, addr = 01:80:c2:00:00:0e, mcast_state = f, no super, port_mask = 0x1 6 : type: mcast, addr = 01:80:c2:00:00:03, mcast_state = f, no super, port_mask = 0x1 7 : type: mcast, addr = 01:80:c2:00:00:00, mcast_state = f, no super, port_mask = 0x1 8 : type: mcast, addr = 33:33:ff:81:8c:ef, mcast_state = f, no super, port_mask = 0x1 9 : type: mcast, addr = 01:00:5e:00:00:fb, mcast_state = f, no super, port_mask = 0x1 10 : type: mcast, addr = 33:33:00:00:00:fb, mcast_state = f, no super, port_mask = 0x1 11 : type: mcast, addr = 01:00:5e:00:ab:cd, mcast_state = f, no super, port_mask = 0x1 12 : type: mcast, addr = 01:00:5e:00:cd:ab, mcast_state = f, no super, port_mask = 0x1
请注意、条目0由 VLAN 类型条目填充。 当接口停止工作时、如下所示:
root@j721s2-evm:~# switch-config -d K3 cpsw dump version (1) len(6328) ALE table dump ents(64): 0 : type: mcast, addr = 33:33:00:00:00:01, mcast_state = f, no super, port_mask = 0x1 1 : type: ucast, addr = 34:08:e1:81:8c:ef, ucast_type = persistant, port_num = 0x0, Secure 2 : type: mcast, vid = 0, addr = ff:ff:ff:ff:ff:ff, mcast_state = f, no super, port_mask = 0x3 3 : type: mcast, addr = 01:00:5e:00:00:01, mcast_state = f, no super, port_mask = 0x1 4 : type: mcast, addr = 01:80:c2:00:00:0e, mcast_state = f, no super, port_mask = 0x1 5 : type: mcast, addr = 01:80:c2:00:00:03, mcast_state = f, no super, port_mask = 0x1 6 : type: mcast, addr = 01:80:c2:00:00:00, mcast_state = f, no super, port_mask = 0x1 7 : type: mcast, addr = 33:33:ff:81:8c:ef, mcast_state = f, no super, port_mask = 0x1 8 : type: mcast, addr = 01:00:5e:00:00:fb, mcast_state = f, no super, port_mask = 0x1 9 : type: mcast, addr = 33:33:00:00:00:fb, mcast_state = f, no super, port_mask = 0x1 10 : type: mcast, addr = 01:00:5e:00:34:12, mcast_state = f, no super, port_mask = 0x1 11 : type: mcast, addr = 01:00:5e:00:cd:ab, mcast_state = f, no super, port_mask = 0x1
现在、条目0中填充了 mcast 类型条目、并且表中没有 VLAN 类型条目。
我们可以在 J721S2XSOMXEVM + J721EXCPXEVM 上重现此问题。 使用此电路板和从 PROCESSOR-SDK-LINUX J721S2-J721S2版本10.01.00.04中新刷写的 SD 卡、此脚本通常会在1-2小时内重现问题:
# insert shebang here while true; do /sbin/ip maddr add 01:00:5e:00:ab:cd dev eth0 & /sbin/ip maddr add 01:00:5e:00:12:34 dev eth0 & /sbin/ip maddr add 01:00:5e:00:cd:ab dev eth0 & /sbin/ip maddr add 01:00:5e:00:34:12 dev eth0 & /sbin/ip maddr del 01:00:5e:00:ab:cd dev eth0 & /sbin/ip maddr del 01:00:5e:00:12:34 dev eth0 & /sbin/ip maddr del 01:00:5e:00:cd:ab dev eth0 & /sbin/ip maddr del 01:00:5e:00:34:12 dev eth0 & wait done
在电路板上运行此脚本时、对电路板执行 Ping 操作、然后等待其停止响应。
有时、脚本不会中断接口、而是在索引32处插入 VLAN 条目。
该问题听起来像 LCPD-38070、但只有 j721e-hsevm 列为受影响。