Hello,
I am playing with DPDK to capture packets on two 10GbE interfaces (Intel XL710
card).
Receiving packets with DPDK (with the igb_uio driver) works fine using the
example l2fwd program with small minor changes.
However when I try to load the original Linux i40e driver with:
sudo -s python3 ~/dpdk-17.02/usertools/dpdk-devbind.py -b i40e 0f:00.0
The i40e module loads, but I get the following error in the kernel logs:
i40e 0000:0f:00.0 enp15s0f0: the driver failed to link because an
unqualified module was detected.
And the interfaces stay in "NO_CARRIER" state, which prevents them from
sending/receiving anything:
$ ip link show enp15s0f0
243: enp15s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq
portid 3cfdfe151da0 state DOWN mode DEFAULT group default qlen 1000
link/ether 3c:fd:fe:15:1d:a0 brd ff:ff:ff:ff:ff:ff
The only way to fix this is a complete reboot.
The optical modules I am using are Intel E10GSFPSR, as recommended by Intel
(https://www-ssl.intel.com/content/www/us/en/support/network-and-i-o/ethernet-products/000007045.html),
and are definitely not "unqualified".
Normally, I would tend to think this is a bug in the i40e driver and not in
DPDK, however this problem *only occurs after having used DPDK*, so this is
suspicious.
If I load/unload the i40e module hundreds of time with traffic in between I
never get this issue.
I tried DPDK v17.02 and v16.11.1 and the same error occurs. I also tried
different i40e Intel driver versions, same thing.
Currently I'm on Ubuntu 16.04 x86_64 with kernel 4.4 and i40e driver v1.4.25-k
(the one shipped with the Ubuntu kernel).
Maybe DPDK is doing something on the hardware that causes the interface to be
stuck in NO_CARRIER state, any ideas?
Thank you