On Sun, 2015-03-22 at 21:01 +0200, Vlad Zolotarov wrote: > 82599 and x540 VFs and PF share the same RSS redirection table (RETA). > Therefore we > just return it for all VFs. x550 on the other hand provides a separate > redirection > table for each VF (there is a per-pool RETA table). > > For 82599 and x540 RETA table is an array of 32 registers (128 bytes) > and the maximum number of > registers that may be delivered in a single VF-PF channel command is > 15. Therefore > we will deliver the whole table in 3 steps: 12, 12 and 8 registers in > each > step correspondingly. > > For x550 VFs RETA is a 64 byte array, so we may deliver it in two > steps: 12 and 4 registers > correspondingly. > > Thus this patch does the following: > > - Adds a new API version (to specify a new commands set). > - Adds the IXGBE_VF_GET_RETA command to the VF-PF commands set. > > Signed-off-by: Vlad Zolotarov > --- > New in v5: > - Use the newly added netdev op to allow/prevent the RETA query on > a per-VF basis. > > New in v4: > - Deleted an empty line in ixgbe_get_vf_reta() switch-case. > > New in v3: > - Pass the number of dwords and offset in RETA in the > IXGBE_VF_GET_RETA request message. > This allows to reduce the added command set to a single command. > - Added a support for all devices supported by the ixgbe driver > that have > SR-IOV functions support: 82599, x540 and x550. The original code > supported > only 82599 and x540. > - Added the masking of the RETA entries according to the > PSRTYPE[n].RQPL > value. > > New in v1 (compared to RFC): > - Use "if-else" statement instead of a "switch-case" for a single > option case > (in ixgbe_get_vf_reta()). > --- > drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h | 8 ++++ > drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 65 > ++++++++++++++++++++++++++ > 2 files changed, 73 insertions(+) Thanks Vlad, I have applied your patch to my next-queue tree -- git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git dev-queue