e1000e: add Receive Packet Steering (RPS) support
Enable RPS by default. Disallow jumbo frames when both receive checksum and receive hashing are enabled because the hardware cannot do both IP payload checksum (enabled when receive checksum is enabled when using packet split which is used for jumbo frames) and provide RSS hash at the same time. v2: added ethtool command to query flow hashing behavior per Ben Hutchings and changed the type of rsskey to cleanup the setting of the register array and avoid unnecessary casts (as pointed out by Joe Perches). The long error messages are not changed since there is nothing in the kernel ./Documentation that suggests the preferred method for dealing with long messages other than to never break strings; leaving them as-is for now. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:

committed by
Jeff Kirsher

parent
afd12939a0
commit
70495a500d
@@ -204,6 +204,7 @@ enum e1e_registers {
|
||||
E1000_WUC = 0x05800, /* Wakeup Control - RW */
|
||||
E1000_WUFC = 0x05808, /* Wakeup Filter Control - RW */
|
||||
E1000_WUS = 0x05810, /* Wakeup Status - RO */
|
||||
E1000_MRQC = 0x05818, /* Multiple Receive Control - RW */
|
||||
E1000_MANC = 0x05820, /* Management Control - RW */
|
||||
E1000_FFLT = 0x05F00, /* Flexible Filter Length Table - RW Array */
|
||||
E1000_HOST_IF = 0x08800, /* Host Interface */
|
||||
@@ -219,6 +220,10 @@ enum e1e_registers {
|
||||
E1000_SWSM = 0x05B50, /* SW Semaphore */
|
||||
E1000_FWSM = 0x05B54, /* FW Semaphore */
|
||||
E1000_SWSM2 = 0x05B58, /* Driver-only SW semaphore */
|
||||
E1000_RETA_BASE = 0x05C00, /* Redirection Table - RW */
|
||||
#define E1000_RETA(_n) (E1000_RETA_BASE + ((_n) * 4))
|
||||
E1000_RSSRK_BASE = 0x05C80, /* RSS Random Key - RW */
|
||||
#define E1000_RSSRK(_n) (E1000_RSSRK_BASE + ((_n) * 4))
|
||||
E1000_FFLT_DBG = 0x05F04, /* Debug Register */
|
||||
E1000_PCH_RAICC_BASE = 0x05F50, /* Receive Address Initial CRC */
|
||||
#define E1000_PCH_RAICC(_n) (E1000_PCH_RAICC_BASE + ((_n) * 4))
|
||||
|
Reference in New Issue
Block a user