Skip to contentSkip to conversation

iavf: cannot create 2 rte_flows with E810 VF, but can with E810 PF

Bug 1205 [email protected] 1 participant 1 message Mar 30, 2023

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1205

Bug ID: 1205
Summary: iavf: cannot create 2 rte_flows with E810 VF, but can
with E810 PF
Product: DPDK
Version: 23.03
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: ethdev
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---

Environnement
-------------

distribution for host/vm: Ubuntu 22.04.2 LTS, kernel 5.15.0-67-generic kernel driver: 1.10.1.2.2
firmware-version: 4.10 0x80015191 1.3310.0
COMMS DDP: 1.3.37
ICE OS Default Package version 1.3.30.0
testpmd cmdline: ./build/app/dpdk-testpmd --log-level=.*ice.*,debug --legacy-mem -c 7 -a 17:00.0 -a 0000:17:00.1 -- -i --nb-cores=2 --nb-ports=2 --total-num-mbufs=2048
dpdk version: 23.03.0-rc4
NIC: Intel Corporation Ethernet Controller E810-C for QSFP

With PF (ice pmd)
-----------------

Working case, no sriov, no VM.

ICE PMD is able to create the following flows:

./build/app/dpdk-testpmd --log-level=.*ice.*,debug --legacy-mem -c 7 -a 17:00.0 -a 0000:17:00.1 -- -i --nb-cores=2 --nb-ports=2 --total-num-mbufs=2048 testpmd> flow create 0 ingress pattern eth / ipv4 proto is 1 / end actions queue index 0 / end
ice_flow_create(): Succeeded to create (2) flow
Flow rule #0 created
testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 22 / end actions queue index 0 / end
ice_flow_create(): Succeeded to create (2) flow
Flow rule #1 created

With VF (iavf pmd)
------------------

No working case sriov with a VM on the same device/hardware.

sriov devices:
On PF : echo 1 > "/sys/bus/pci/devices/0000:17:00.0/sriov_numvfs" -> for VF
17.01.0
On PF : echo 1 > "/sys/bus/pci/devices/0000:17:00.1/sriov_numvfs" -> for VF
17.11.0

QEMU ARGS: -device vfio-pci,host=0000:17:01.0,addr=04 -device vfio-pci,host=0000:17:11.0,addr=05

./build/app/dpdk-testpmd --log-level=.*iavf.*,debug -c 0x6 -a 0000:00:04.0 -a
0000:00:05.0 -- -i --total-num-mbufs=2048
testpmd> flow create 0 ingress pattern eth / ipv4 proto is 1 / end actions queue index 0 / end
iavf_handle_virtchnl_msg(): adminq response is received, opcode = 47 iavf_fdir_add(): Succeed in adding rule request by PF iavf_flow_create(): Succeeded to create (2) flow
Flow rule #0 created
testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 22 / end actions queue index 0 / end
iavf_handle_virtchnl_msg(): adminq response is received, opcode = 47 iavf_fdir_add(): Failed to add rule request due to the rule is conflict with existing rule
iavf_flow_create(): Failed to create flow
port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Failed to create parser engine.: Invalid argument

Conclusion
----------
IAVF is not able to create the second flow. Because the kernel driver 1.10.1.2.2 rejects the creation of second flow. There are no such issue with ICE pmd of dpdk 23.03.0-rc4.

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.