Hello, 


Our application uses the net_netvsc driver in DPDK 21.08 on Azure. We found an issue where RSS doesn’t deliver packets to the correct rx queue. The instance type we use is Standard_L80s_v3 with MT27800 Family [ConnectX-5 Virtual Function] NICs. The NIC is configured with 40 rx queues and the RETA table is configured (confirmed by rte_eth_dev_rss_reta_query()) as below.

 

  0:       0    1    2    3    4    5    6    7   

  8:       8    9   10   11   12   13   14   15  

 16:      16   17   18   19   20   21   22   23

24:      24   25   26   27   28   29   30   31

32:      32   33   34   35   36   37   38   39

40:       0    1    2    3    4    5    6    7

48:       8    9   10   11   12   13   14   15

56:      16   17   18   19   20   21   22   23

64:      24   25   26   27   28   29   30   31

72:      32   33   34   35   36   37   38   39

80:       0    1    2    3    4    5    6    7

88:       8    9   10   11   12   13   14   15

96:      16   17   18   19   20   21   22   23

104:      24   25   26   27   28   29   30   31

112:      32   33   34   35   36   37   38   39

120:       0    1    2    3    4    5    6    7

 

One example is a packet received with rss key 0xEDE25D84 was incorrectly delivered to rx queue 12. We expect it to be queue 4 as 0xEDE25D84 & 0x7F = 4 assuming seven of the least significant bits (LSBs) are used for indexing into the RETA table.  Is it a bug or we made a wrong assumption on how the RETA table is accessed with that device?


Thank you.

Yang