ConnectX-5 Support for Inner/Outer RSS

Hello,

I am using a Mellanox ConnectX-5 Ex adapter with DPDK. My application uses GRE for tunneling and the GRE header encapsulates an inner IP and TCP header. Because of the encapsulation I was having an issue with the RSS functionality: different flows are being sent to the same receive queue because the NIC is only using the outer IP headers for hashing. I looked over some of the DPDK and mlx5 docs and from my understanding it should support tunnel hw offloads for inner/outer RSS.

E.g. https://doc.dpdk.org/guides-21.11/nics/mlx5.html

Tunnel HW offloads: packet type, inner/outer RSS, IP and UDP checksum verification.

When I try to run my application and set the DPDK rss_hf in rte_eth_conf to RTE_ETH_RSS_LEVEL_INNERMOST the device doesn’t seem to support it. The hash function is not set properly and when I run my application I receive everything in queue 0. I also tried to use test-pmd to test if things are working and when I do

port config all rss level-inner

The return message says: Port 0 modified RSS hash function based on hardware support,requested:0x8000000000000 configured:0 which indicates that the requested rss hash function was not configured. How can I get the inner TCP header rss offload to work? Documentation seems to suggest this is possible, but I can’t get it to work. This question has been asked a couple of other times in this forum, but it was never really answered.

DPDK version: 21.11
mlx5_core version: 5.0-0
firmware: 16.25.4062
linux kernel version: 5.10

Hi usermuser,

Thank you for posting your query on NVIDIA Community.

Based on the software stack details shared, you are using Inbox driver(that comes with OS) and not MLNX OFED driver. In such situations, OS vendor needs to be involved.

mlx5_core version: 5.0-0

In order for us to debug the issue, the issue needs to be reproduced when using MLNX OFED driver. The latest version can be downloaded from —> Linux InfiniBand Drivers

In addition, if issue is reproduced with MLNX OFED, a support ticket needs to be opened. This will also require a valid support contract.
Support ticket can be opened by emailing Networking-support@nvidia.com

For contracts, please feel free to reach out to Networking-contracts@nvidia.com

Thanks,
Namrata.