Hello,

I am trying to offload egress flow rule with mark in the matching pattern to nvidia NICs ConnectX-5 and ConnectX-6, but I keep getting the same results. I am using DPDK 21.11.1.

If I try to offload this rule to mlx5 NIC, without any device arguments, it says that I need to enable extended metadata feature:


# dpdk-testpmd -a 65:00.0 -- -i
EAL: Detected CPU lcores: 40
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No free 1048576 kB hugepages reported on node 0
EAL: No available 1048576 kB hugepages reported
EAL: Probe PCI driver: mlx5_pci (15b3:1017) device: 0000:65:00.0 (socket 0)
TELEMETRY: No legacy callbacks, legacy socket not created
Interactive-mode selected
testpmd: create a new mbuf pool <mb_pool_0>: n=459456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 0)
Port 0: 1C:34:DA:41:66:1C
Checking link statuses...
Done
testpmd> flow create 0 egress group 0 pattern eth / mark id spec 4 id mask 4 / end actions set_mac_dst mac_addr FE:FE:CA:FE:FE:FE / end port_flow_complain(): Caught PMD error type 13 (specific pattern item): cause: 0x7ffc030aa198, extended metadata feature isn't enabled: Operation not supported


If I try to run testpmd with dv_xmeta_en set to 1 or 2, I can only create that rule in group that does not equal 0. But I cannot offload a rule which contains JUMP action, so I cannot jump to group, where the rule with mark in the matching pattern can be offloaded.


# dpdk-testpmd -a 65:00.0,dv_xmeta_en=1 -- -i
EAL: Detected CPU lcores: 40
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No free 1048576 kB hugepages reported on node 0
EAL: No available 1048576 kB hugepages reported
EAL: Probe PCI driver: mlx5_pci (15b3:1017) device: 0000:65:00.0 (socket 0)
TELEMETRY: No legacy callbacks, legacy socket not created
Interactive-mode selected
testpmd: create a new mbuf pool <mb_pool_0>: n=459456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 0)
Port 0: 1C:34:DA:41:66:1C
Checking link statuses...
Done
testpmd> flow create 0 egress group 0 pattern eth / mark id spec 4 id mask 4 / end actions set_mac_dst mac_addr FE:FE:CA:FE:FE:FE / end port_flow_complain(): Caught PMD error type 1 (cause unspecified): cannot create modification action: Cannot allocate memory testpmd> flow create 0 egress group 1 pattern eth / mark id spec 4 id mask 4 / end actions set_mac_dst mac_addr FE:FE:CA:FE:FE:FE / end
Flow rule #0 created
testpmd> flow create 0 egress pattern eth / end actions jump group 1 / end
port_flow_complain(): Caught PMD error type 1 (cause unspecified): cannot create modification action: Cannot allocate memory


Is there any way how can I work this out or do I need to start using similar pattern items such as meta?

Thank you,

David

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to