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