linux/drivers/net/ethernet/intel/i40e
Jacob Keller 489a326507 i40e: move all updates for VLAN mode into i40e_sync_vsi_filters
In a similar fashion to how we handled exiting VLAN mode, move the logic
in i40e_vsi_add_vlan into i40e_sync_vsi_filters. Extract this logic into
its own function for ease of understanding as it will become quite
complex.

The new function, i40e_correct_mac_vlan_filters() correctly updates all
filters for when we need to enter VLAN mode, exit VLAN mode, and also
enforces the PVID when assigned.

Call i40e_correct_mac_vlan_filters from i40e_sync_vsi_filters passing it
the number of active VLAN filters, and the two temporary lists.

Remove the function for updating VLAN=0 filters from i40e_vsi_add_vlan.

The end result is that the logic for entering and exiting VLAN mode is
in one location which has the most knowledge about all filters. This
ensures that we always correctly have the non-VLAN filters assigned to
VID=0 or VID=-1 regardless of how we ended up getting to this result.

Additionally this enforces the PVID at sync time so that we know for
certain that an assigned PVID results in only filters with that PVID
will be added to the firmware.

Change-ID: I895cee81e9c92d0a16baee38bd0ca51bbb14e372
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2016-12-06 21:38:24 -08:00
..
i40e.h i40e: use (add|rm)_vlan_all_mac helper functions when changing PVID 2016-12-06 21:34:20 -08:00
i40e_adminq.c i40e: Implementation of ERROR state for NVM update state machine 2016-10-31 14:26:40 -07:00
i40e_adminq.h
i40e_adminq_cmd.h i40e: Add FEC for 25g 2016-12-06 21:01:43 -08:00
i40e_alloc.h
i40e_client.c i40e: reopen client after reset 2016-10-28 23:28:39 -07:00
i40e_client.h i40e: reopen client after reset 2016-10-28 23:28:39 -07:00
i40e_common.c i40e: Add functions which apply correct PHY access method for read and write operation 2016-12-06 21:09:39 -08:00
i40e_dcb.c
i40e_dcb.h
i40e_dcb_nl.c
i40e_debugfs.c i40e: use unsigned printf format specifier for active_filters count 2016-12-06 20:57:18 -08:00
i40e_devids.h i40e: Add support for 25G devices 2016-12-06 20:59:43 -08:00
i40e_diag.c
i40e_diag.h
i40e_ethtool.c i40e: defeature support for PTP L4 frame detection on XL710 2016-12-06 21:17:37 -08:00
i40e_fcoe.c i40e: store MAC/VLAN filters in a hash with the MAC Address as key 2016-10-31 14:26:40 -07:00
i40e_fcoe.h
i40e_hmc.c i40e: fix an uninitialized variable bug 2016-05-14 00:21:51 -07:00
i40e_hmc.h
i40e_lan_hmc.c
i40e_lan_hmc.h
i40e_main.c i40e: move all updates for VLAN mode into i40e_sync_vsi_filters 2016-12-06 21:38:24 -08:00
i40e_nvm.c i40e: Implementation of ERROR state for NVM update state machine 2016-10-31 14:26:40 -07:00
i40e_osdep.h
i40e_prototype.h i40e: Add functions which apply correct PHY access method for read and write operation 2016-12-06 21:09:39 -08:00
i40e_ptp.c i40e: defeature support for PTP L4 frame detection on XL710 2016-12-06 21:17:37 -08:00
i40e_register.h
i40e_status.h
i40e_txrx.c i40e/i40evf: napi_poll must return the work done 2016-12-06 20:46:13 -08:00
i40e_txrx.h i40e: simplify txd use count calculation 2016-12-06 20:40:50 -08:00
i40e_type.h i40e: Add support for 25G devices 2016-12-06 20:59:43 -08:00
i40e_virtchnl.h i40e: group base mode VF offload flags 2016-10-28 23:28:39 -07:00
i40e_virtchnl_pf.c i40e: use (add|rm)_vlan_all_mac helper functions when changing PVID 2016-12-06 21:34:20 -08:00
i40e_virtchnl_pf.h net: Update API for VF vlan protocol 802.1ad support 2016-09-24 08:01:26 -04:00
Makefile