linux/drivers/net/ethernet/intel/ice
Brett Creeley f28cd5ce1a ice: Save VF's MAC across reboot
If a VM reboots and/or VF driver is unloaded, its cached hardware MAC
address (hw_lan_addr.addr) is cleared in some cases. If the VF is
trusted, then the PF driver allows the VF to clear its old MAC address
even if this MAC was configured by a host administrator. If the VF is
untrusted, then the PF driver allows the VF to clear its old MAC
address only if the host admin did not set it.

For the trusted VF case, this is unexpected and will cause issues
because the host configured MAC (i.e. via XML) will be cleared on VM
reboot. For the untrusted VF case, this is done to be consistent and it
will allow the VF to keep the same MAC across VM reboot.

Fix this by introducing dev_lan_addr to the VF structure. This will be
the VF's MAC address when it's up and running and in most cases will be
the same as the hw_lan_addr. However, to address the VM reboot and
unload/reload problem, the driver will never allow the hw_lan_addr to be
cleared via VIRTCHNL_OP_DEL_ETH_ADDR. When the VF's MAC is changed, the
dev_lan_addr and hw_lan_addr will always be updated with the same value.
The only ways the VF's MAC can change are the following:

- Set the VF's MAC administratively on the host via iproute2.
- If the VF is trusted and changes/sets its own MAC.
- If the VF is untrusted and the host has not set the MAC via iproute2.

Signed-off-by: Brett Creeley <brett.creeley@intel.com>
Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-06-07 08:30:58 -07:00
..
ice_adminq_cmd.h ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_arfs.c ice: Delay netdev registration 2021-03-31 14:21:27 -07:00
ice_arfs.h ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_base.c ice: refactor ITR data structures 2021-04-14 17:00:06 -07:00
ice_base.h ice: Add support to enable/disable all Rx queues before waiting 2020-02-15 16:39:55 -08:00
ice_common.c ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_common.h ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_controlq.c ice: remove unused struct member 2021-04-14 17:00:06 -07:00
ice_controlq.h ice: remove unused struct member 2021-04-14 17:00:06 -07:00
ice_dcb_lib.c ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_dcb_lib.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb_nl.c ice: remove DCBNL_DEVRESET bit from PF state 2021-03-29 10:37:19 -07:00
ice_dcb_nl.h
ice_dcb.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-17 11:08:07 -07:00
ice_dcb.h ice: replace single-element array used for C struct hack 2020-07-01 16:35:23 -07:00
ice_devids.h ice: fix define for E822 backplane device 2020-02-19 13:39:33 -08:00
ice_devlink.c ice: display stored UNDI firmware version via devlink info 2021-02-05 11:44:16 -08:00
ice_devlink.h ice: refactor devlink_port to be per-VSI 2020-10-09 13:14:19 -07:00
ice_ethtool_fdir.c ice: Drop leading underscores in enum ice_pf_state 2021-04-14 17:00:05 -07:00
ice_ethtool.c ice: Reimplement module reads used by ethtool 2021-04-14 17:00:06 -07:00
ice_fdir.c ice: Fix prototype warnings 2021-03-23 11:34:02 -07:00
ice_fdir.h ice: Add more FDIR filter type for AVF 2021-03-22 11:32:12 -07:00
ice_flex_pipe.c ice: suppress false cppcheck issues 2021-04-14 17:12:17 -07:00
ice_flex_pipe.h ice: Support to separate GTP-U uplink and downlink 2021-03-22 11:32:12 -07:00
ice_flex_type.h ice: cleanup style issues 2021-03-31 14:21:28 -07:00
ice_flow.c ice: Support RSS configure removal for AVF 2021-04-22 09:26:22 -07:00
ice_flow.h ice: Support RSS configure removal for AVF 2021-04-22 09:26:22 -07:00
ice_fltr.c ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fltr.h ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fw_update.c ice: report timeout length for erasing during devlink flash 2021-02-05 09:34:24 -08:00
ice_fw_update.h ice: add support for flash update overwrite mask 2020-09-25 17:20:57 -07:00
ice_hw_autogen.h ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_idc_int.h ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_idc.c ice: Register auxiliary device to provide RDMA 2021-05-28 20:11:13 -07:00
ice_lag.c ice: Initialize RDMA support 2021-05-28 20:11:13 -07:00
ice_lag.h ice: Add initial support framework for LAG 2021-02-08 16:27:01 -08:00
ice_lan_tx_rx.h ice: Check FDIR program status for AVF 2021-03-22 11:32:12 -07:00
ice_lib.c ice: Initialize RDMA support 2021-05-28 20:11:13 -07:00
ice_lib.h ice: Initialize RDMA support 2021-05-28 20:11:13 -07:00
ice_main.c ice: Register auxiliary device to provide RDMA 2021-05-28 20:11:13 -07:00
ice_nvm.c ice: suppress false cppcheck issues 2021-04-14 17:12:17 -07:00
ice_nvm.h ice: display stored UNDI firmware version via devlink info 2021-02-05 11:44:16 -08:00
ice_osdep.h
ice_protocol_type.h ice: Add more advanced protocol support in flow filter 2021-03-22 11:32:12 -07:00
ice_sched.c ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_sched.h ice: Use PSM clock frequency to calculate RL profiles 2021-02-08 16:27:01 -08:00
ice_sriov.c ice: warn about potentially malicious VFs 2021-04-22 09:26:22 -07:00
ice_sriov.h ice: warn about potentially malicious VFs 2021-04-22 09:26:22 -07:00
ice_status.h ice: display stored netlist versions via devlink info 2021-02-05 11:43:37 -08:00
ice_switch.c ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_switch.h ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_txrx_lib.c ice: Fix fall-through warnings for Clang 2021-03-23 11:34:02 -07:00
ice_txrx_lib.h ice: Rename build_ctob to ice_build_ctob 2020-05-21 22:10:04 -07:00
ice_txrx.c ice: refactor ITR data structures 2021-04-14 17:00:06 -07:00
ice_txrx.h ice: refactor ITR data structures 2021-04-14 17:00:06 -07:00
ice_type.h ice: Implement iidc operations 2021-05-28 20:11:13 -07:00
ice_virtchnl_allowlist.c ice: Enable RSS configure for AVF 2021-04-22 09:26:22 -07:00
ice_virtchnl_allowlist.h ice: Allow ignoring opcodes on specific VF 2021-04-22 09:26:22 -07:00
ice_virtchnl_fdir.c ice: Drop leading underscores in enum ice_pf_state 2021-04-14 17:00:05 -07:00
ice_virtchnl_fdir.h ice: Check FDIR program status for AVF 2021-03-22 11:32:12 -07:00
ice_virtchnl_pf.c ice: Save VF's MAC across reboot 2021-06-07 08:30:58 -07:00
ice_virtchnl_pf.h ice: Save VF's MAC across reboot 2021-06-07 08:30:58 -07:00
ice_xsk.c ice: refactor interrupt moderation writes 2021-04-14 17:00:05 -07:00
ice_xsk.h xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
ice.h ice: Register auxiliary device to provide RDMA 2021-05-28 20:11:13 -07:00
Makefile ice: Initialize RDMA support 2021-05-28 20:11:13 -07:00