1

I am working with Intel 82599ES 10-Gigabit SFI/SFP+ NIC with linux 4.4.0-116-generic native ixgbe driver. I am wondering about flow indirection table coming with NIC which has 16 fdir queues.

Those queues can be reflected as output of command


sudo ethtool -x enp2s0f1

RX flow hash indirection table for enp2s0f1 with 40 RX ring(s):
    0:      0     1     2     3     4     5     6     7
    8:      8     9    10    11    12    13    14    15
   16:      0     1     2     3     4     5     6     7
   24:      8     9    10    11    12    13    14    15
   32:      0     1     2     3     4     5     6     7
   40:      8     9    10    11    12    13    14    15
   48:      0     1     2     3     4     5     6     7
   56:      8     9    10    11    12    13    14    15
   64:      0     1     2     3     4     5     6     7
   72:      8     9    10    11    12    13    14    15
   80:      0     1     2     3     4     5     6     7
   88:      8     9    10    11    12    13    14    15
   96:      0     1     2     3     4     5     6     7
  104:      8     9    10    11    12    13    14    15
  112:      0     1     2     3     4     5     6     7
  120:      8     9    10    11    12    13    14    15
RSS hash key:
98:66:ff:44:ee:dd:32:dd:16:d3:e3:c0:16:b7:0d:11:1c:3d:e3:a6:1d:f1:44:14:36:8d:32:b1:4a:75:ae:d8:f2:97:7c:aa:7c:4c:9e:fb

So based on hash, incoming traffic gets divided into 16 fdir queues but later it gets mapped into 40 ring buffers aka RSS queues.

I can tweak fdir queues with various ethtool -X commands for its processing weight. At the same time, with help of /proc/irq/IRQ_NUMBER/smp_affinity we can control scheduling of RSS interrupts to particular CPUs.

But I am not able to figure out, how traffic maps between fdir queues to rss queues when their count mismatch.

Thanks in advance for help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.