如果您在使用DPDK的testpmd例程时遇到了“收到255就不动”的问题,可能是因为DPDK在收到一个未知类型的以太网帧时会将其视为特殊控制帧,并且默认情况下testpmd例程会暂停处理所有的特殊控制帧。
要解决这个问题,可以尝试以下几种方法:
- 通过testpmd命令行选项
--ignore-config
来忽略配置文件中的特殊控制帧设置。例如:
./testpmd -c 0x1 -n 4 -- --ignore-config
- 在testpmd中手动配置特殊控制帧。例如,在交换机模式下,可以使用如下命令来允许LACP和LLDP协议:
set fwd mac
start
set fwd rxonly
set promisc all off
port config all l2-tunnel-filter on
port config 0 l2-tunnel-filter-offload on
flow_director_filter add dst-port tcp:6653,udp:6653 action rss queues 0 end_queues vxlan-0 end_actions drop /end
flow_director_filter add ether-type IPv4 src-ipv4-mask 0.0.0.0 dst-ipv4-mask 255.255.255.255 action rss queues 1 end_queues vxlan-1 end_actions drop /end
以上方法均可尝试解决该问题。如果仍然无法解决,请检查您的DPDK版本是否存在已知的问题,并尝试升级到最新版本。