How to configure symmetric RSS of ConnectX-5 Ex Dual Port 100GbE Network Adapter with DPDK using only IP source and destination fields?

Hi,

I am trying to combine DPDK with your ConnectX-5 Ex Dual Port 100GbE Network Adapter.

The problem I am experiencing is with the RSS configuration.

I would like to configure the RSS to be symmetric for IPv4 source and destination IP address. Meaning that packet from A->B and its reply from B->A would be passed to the same RX queue.

This works for instance for ICMP packets, however it behaves asymmetrically if there is a symmetric UDP layer present even though I have only ETH_RSS_IPV4 specified in RSS hash function.

If I add ETH_RSS_NONFRAG_IPV4_UDP field to the hash function, the same data (symmetric in terms of IP addresses and UDP ports) starts working well.

However, some protocol packet streams (e.g., VXLAN) do not have symmetric UDP ports, therefore I would like to use only IP addresses in the hash key.

Is it possible to achieve symmetric RSS based solely on IP addresses?

Any documentation on how to set the RSS and its behavior would be most welcomed.

Thank you.

Not sure the meaning when you said " Meaning that packet from A->B and its reply from B->A would be passed to the same RX queue. ".

In my opinon, you can refer testpmd code. Testpmd can use ‘–rss-ip’, ‘–rss-udp’ and so on. If you want to base on IP only, you can use ETH_RSS_IP flag.

Thanks.

I think Tomas might want to treat an IP session (all packet from host A and B regardless, regardless A to B or B to A). I’m also curious about the possible solutions for that.

Besides, is that possible to have the NIC match a custom field? For example, a field starting from an offset and is n bit long.

Thanks,

Wendi