Hello Alexander, On Tue, Jun 7, 2016 at 11:31 PM, Alexander Duyck <alexander.duyck at gmail.com> wrote:
> On Tue, Jun 7, 2016 at 1:49 PM, Mauricio V?squez > <mauricio.vasquezbernal at studenti.polito.it> wrote: > > Dear All, > > > > I implemented a program that uses flow director to forward packets to a > > specific virtual function, however I faced the problem that I did not > know > > which queue belongs to a VF. I found in [1] that in the case of Intel > > 82599, queues 0-7 belongs to VF0, 8-15 to VF1 and so on, I tested it but > it > > did not work, using the trial and error method I found that queue 0 is in > > VF0, queue 4 in VF1 and so on. > > > > My question is: is there a standard way to know which queues belong to a > > specific VF? > > > > Thanks in advance > > > > Mauricio V, > > > > [1] > > > http://www.intel.it/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf > , > > Table 7-72 > > If you are using the kernel driver the way the queues are laid out > depends on the number of VFs allocated and what features are enabled > in the kernel. I forgot to mention that I am using the DPDK ixgbe PMD. > Assuming you are not using DCB you should be able to > figure out how many queues are being allocated via VF by looking at > the output of "ethtool -l <iface>". The upper limit on RSS is t he > number of queues each pool is allocated. > > So for example if you only enable up to 31 VFs then the PF driver > allocates 4 queues per VF so you would have queues 0 - 3 allocated to > VF0, queues 4-7 allocated to VF1, etc all the way through to the PF > occupying (num_vfs * 4) to 127. If you enable 32 or more VFs then the > number of queues drops to 2 per VF and RSS on the PF will be limited > to the 2 queues following the block reserved for the VFs. > > I found that the behavior of the DPDK PMD is almost the same you described: 1 - 15 VFs -> 8 queues per VF 16 - 31 VFs -> 4 queues per VF >= 32 VFs -> 2 queues per VF But, according to the datasheet it should be 16 VFs -> 8 queues per VF 32 VFs -> 4 queues per VF 64 VFs -> 2 queues per VF Am I missing something? One extra thing that I am not understanding, in the case I assign the maximum number of possible VFs, the PF remains without queues? There are a few other configurations such as if DCB is enabled I > believe it is possible to get 8 queues per VF if less than 16 VFs are > allocated but in such a case you would not have access to RSS. In > this case if the maximum combined queue count reported is 1 you would > need to check to see how many TCs are being supported by the PF in > order to determine if the queue count is 4 or 8 per VF. > > - Alex > Thank you very much, Mauricio V,