net/sfc/base: honour packed stream RSS restriction
authorIvan Malov <ivan.malov@oktetlabs.ru>
Wed, 25 Apr 2018 17:51:40 +0000 (18:51 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 27 Apr 2018 17:00:55 +0000 (18:00 +0100)
commit3c97590830b404f1d1f6af1c70355caed23ec683
treecba1224e4c064ee580b350acfa4b4e4981142222
parent7a1ab3f8db76fd9e42a6c6ffaa164abb3d0ff2ca
net/sfc/base: honour packed stream RSS restriction

Packed stream firmware variant on EF10 adapters has a
number of properties which must be taken into account:

 - Only one exclusive RSS context is available per port.
 - Only IP addresses can contribute to the hash value.

Huntington and Medford have one more limitation which
is important for the drivers capable of packed stream:

 - Hash algorithm is non-standard (i.e. non-Toeplitz).
   This implies XORing together source + destination
   IP addresses (or last four bytes in the case of IPv6)
   and using the result as the input to a Toeplitz hash.

This patch provides a number of improvements in order
to treat the mentioned limitations in the common code.

If the firmware variant is packed stream, the list of
supported hash tuples will include less variants, and
the maximum number of RSS contexts will be set to one.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/base/ef10_nic.c
drivers/net/sfc/base/ef10_rx.c
drivers/net/sfc/base/efx.h
drivers/net/sfc/base/efx_rx.c
drivers/net/sfc/base/siena_nic.c