i40e: refactor Rx filter handling
authorMitch Williams <mitch.a.williams@intel.com>
Mon, 20 Jun 2016 16:10:38 +0000 (09:10 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 22 Jul 2016 07:07:04 +0000 (00:07 -0700)
commitc3c7ea27bec070f46dc95dbfafc032eb1b549c6b
tree6d12fcd60b221de0f504fc85ab2b38996e4a2714
parent9287141292aa5a4a80859436f45f828bb10ea0f9
i40e: refactor Rx filter handling

Properly track filter adds and deletes so the driver doesn't lose filters
during resets and up/down cycles. Add a tracking mechanism so that the
driver knows when to enter and leave promiscuous mode.

Implement a simple state machine so the driver can track the status of
each filter throughout its lifecycle. Properly manage the overflow promiscuous
state for the each VSI, and provide a way for the driver to detect when to exit
overflow promiscuous mode.

Remove all possible default MAC filters that the firmware may have set up so
that the driver can manage these correctly, particularly when VLANs come into
play. Remove the LAA flag for filters; instead just send whatever we get through
set_mac to the firmware as the LAA for wakeup purposes.

Finally, add the state of each filter to debugfs output so we can see what's
going on inside the driver's pointy little head.

Change-ID: I97c5e366fac2254fa01eaff4f65c0af61dcf2e1f
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_debugfs.c
drivers/net/ethernet/intel/i40e/i40e_main.c