在使用DPDK 18时,以下40G网卡适配器有问题:
04:00.3以太网控制器:英特尔公司以太网控制器X710 for 10 rev SFP+ (rev 02)
DPDK使用驱动程序net_i40e。
显然,NIC用它拥有的源MAC掉落广播数据包。
下面是对正在发生的事情的更详细的描述。我有一个有两个路由器的高可用性环境。这两个路由器通过rte_eth_dev_mac_addr_add() Virtual (00:00:5e:00:01:64)注册,以及物理烧毁的MAC。当主路由器发送广播VRRP-将源MAC设置为Virtual的消息时,辅助路由的适配器似乎会丢弃数据包。
这条消息是这样的:
> Ethernet II, Src: 00:00:5e:00:01:64, Dst: ff:ff:ff:ff:ff:ff
> Destination: ff:ff:ff:ff:ff:ff
> Address: ff:ff:ff:ff:ff:ff
> .... ..1. .... .... .... .... = LG bit: Locally administered
> address (this is NOT the factory default)
> .... ...1 .... .... .... .... = IG bit: Group address
> (multicast/broadcast)
> Source: 00:00:5e:00:01:64
> Address: 00:00:5e:00:01:64
> .... ..0. .... .... .... .... = LG bit: Globally unique address
> (factory default)
> .... ...0 .... .... .... .... = IG bit: Individual address
> (unicast)
> Type: IPv4 (0x0800)
> Internet Protocol Version 4, Src: 10.93.0.1, Dst: 255.255.255.255
> 0100 .... = Version: 4
> .... 0101 = Header Length: 20 bytes (5)
> Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
> 0000 00.. = Differentiated Services Codepoint: Default (0)
> .... ..00 = Explicit Congestion Notification: Not ECN-Capable
> Transport (0)
> Total Length: 32
> Identification: 0x0000 (0)
> Flags: 0x0000
> 0... .... .... .... = Reserved bit: Not set
> .0.. .... .... .... = Don't fragment: Not set
> ..0. .... .... .... = More fragments: Not set
> ...0 0000 0000 0000 = Fragment offset: 0
> Time to live: 255
> Protocol: VRRP (112)
> Header checksum: 0x0000 incorrect, should be 0xb110(may be caused by
> "IP checksum offload"?)
> Source: 10.93.0.1
> Destination: 255.255.255.255
> Virtual Router Redundancy Protocol
> Version 3, Packet type 1 (Advertisement)
> 0011 .... = VRRP protocol version: 3
> .... 0001 = VRRP packet type: Advertisement (1)
> Virtual Rtr ID: 100
> Priority: 254 (Non-default backup priority)
> Addr Count: 1
> 0000 .... = Reserved: 0
> .... 0000 0000 0001 = Adver Int: 1
> Checksum: 0xf896 [correct]
> [Checksum Status: Good]
> IP Address: 0.31.205.8
>相同的代码,相同的DPDK版本,但与1G NIC工作完美。
我错过了什么?
谢谢迪马
发布于 2020-07-09 09:54:15
基于chat的编辑-调试问题语句被缩小到当杂乱模式在FF:FF:FF:FF:FF:FF上禁用时无法接收到X710的数据包。
我在DPDK/examples/l2fwd和DPDK/examples/skeleton中禁用了DPDK/examples/l2fwd,用PKT进行了测试,并使用了两种DST-MAC of NIC and FF:FF:FF:FF:FF:FF工作。
要允许mutlicast/boradcast帧x1:xx:xx:xx:xx:xx,需要启用rte_eth_allmulticast_enable
@dimba也可以免费进行测试,并探索rte_eth_dev_mac_addr_add是否导致了问题
https://stackoverflow.com/questions/62792575
复制相似问题