DPDK testpmd cannot attach flow rules

Hi,

I’m trying to use dpdk with Mellanox ConnectX-3 Pro NIC.

I built PMD for it according to instructions on

"http://dpdk.org/doc/guides/nics/mlx4.html http://dpdk.org/doc/guides/nics/mlx4.html " and tried to launch

testpmd app but got following error:

[tim@centos]$ sudo ./testpmd -c 0x03 -n 2 -w 0000:b3:00.0 – --rxq=2 --txq=2 -i

EAL: Detected 36 lcore(s)

EAL: Probing VFIO support…

EAL: PCI device 0000:b3:00.0 on NUMA socket 0

EAL: probe driver: 15b3:1007 net_mlx4

PMD: net_mlx4: PCI information matches, using device “mlx4_0” (VF: false)

PMD: net_mlx4: 1 port(s) detected

PMD: net_mlx4: port 1 MAC address is ec:0d:9a:17:4a:00

Interactive-mode selected

USER1: create a new mbuf pool <mbuf_pool_socket_0>: n=155456,

size=2176, socket=0

Configuring Port 0 (socket 0)

PMD: net_mlx4: 0xda13c0: cannot attach flow rules (code 95, "Operation

not supported"), flow error type 2, cause 0x7f2869cdab80, message:

flow rule rejected by device

Fail to start port 0

Please stop the ports first

Done

testpmd> quit

Additional information:

OS: CentOs 7.4

kernel: 4.14.13-1.el7.elrepo.x86_64

rdma-core v16 has been built from sources with rpmbuild and installed:

ibacm-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 21680 янв 16 14:24 iwpmd-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 11044 янв 16 14:24 libibcm-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 18008 янв 16 14:24

libibumad-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 220272 янв 16 14:24

libibverbs-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 53096 янв 16 14:24

libibverbs-utils-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 58020 янв 16 14:24

librdmacm-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 78184 янв 16 14:24

librdmacm-utils-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 55308 янв 16 14:24

rdma-core-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 1883624 янв 16 14:24

rdma-core-debuginfo-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 211728 янв 16 14:24

rdma-core-devel-16.1-1.el7.centos.x86_64.rpm

-rw-r–r-- 1 root root 35484 янв 16 14:24

srp_daemon-16.1-1.el7.centos.x86_64.rpm


output of lspci command for mellanox:

*-network

description: Ethernet interface

product: MT27520 Family [ConnectX-3 Pro]

vendor: Mellanox Technologies

physical id: 0

bus info: pci@0000:b3:00.0

logical name: eth5

version: 00

serial: ec:0d:9a:17:4a:00

size: 10Gbit/s

width: 64 bits

clock: 33MHz

capabilities: bus_master cap_list rom ethernet physical fibre

configuration: autonegotiation=off broadcast=yes driver=mlx4_en

driverversion=4.0-0 duplex=full firmware=2.40.5030 latency=0 link=yes

multicast=yes port=fibre slave=yes speed=10Gbit/s

resources: iomemory:38ff0-38fef irq:38 memory:fbe00000-fbefffff

memory:38ffff800000-38ffffffffff memory:fbd00000-fbdfffff

[tim@centos]$ ibv_devinfo

hca_id: i40iw1

transport: iWARP (1)

fw_ver: 0.2

node_guid: ac1f:6b0a:4a2f:0000

sys_image_guid: ac1f:6b0a:4a2f:0000

vendor_id: 0x8086

vendor_part_id: 14290

hw_ver: 0x0

board_id: I40IW Board ID

phys_port_cnt: 1

port: 1

state: PORT_ACTIVE (4)

max_mtu: 4096 (5)

active_mtu: 1024 (3)

sm_lid: 0

port_lid: 1

port_lmc: 0x00

link_layer: Ethernet

hca_id: mlx4_0

transport: InfiniBand (0)

fw_ver: 2.40.5030

node_guid: ec0d:9a03:0017:4a00

sys_image_guid: ec0d:9a03:0017:4a00

vendor_id: 0x02c9

vendor_part_id: 4103

hw_ver: 0x0

board_id: MT_1200111023

phys_port_cnt: 1

port: 1

state: PORT_ACTIVE (4)

max_mtu: 4096 (5)

active_mtu: 1024 (3)

sm_lid: 0

port_lid: 0

port_lmc: 0x00

link_layer: Ethernet

hca_id: i40iw0

transport: iWARP (1)

fw_ver: 0.2

node_guid: ac1f:6b0a:4a2e:0000

sys_image_guid: ac1f:6b0a:4a2e:0000

vendor_id: 0x8086

vendor_part_id: 14290

hw_ver: 0x0

board_id: I40IW Board ID

phys_port_cnt: 1

port: 1

state: PORT_ACTIVE (4)

max_mtu: 4096 (5)

active_mtu: 1024 (3)

sm_lid: 0

port_lid: 1

port_lmc: 0x00

link_layer: Ethernet

What can be the reason of testpmd does not start correctly?

Finally I managed to run testpmd normally after updating a kernel to

4.14.14 and installing rdma-core_v17 from sources and setting

parameter log_num_mgm_entry_size" to “-1” in file /etc/modprobe.d/mlx4.conf