diff options
author | Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> | 2018-03-20 10:58:19 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2018-03-26 15:41:38 -0400 |
commit | e94d4478669357cd742170c77fc28d6db2040ce4 (patch) | |
tree | 1869dab676385e4292ec32cb4640e0587c9a1de8 /drivers/net/ethernet/intel/ice/ice_common.c | |
parent | 0b28b702e72a6ff90d417689159f72e8891fed78 (diff) |
ice: Implement filter sync, NDO operations and bump version
This patch implements multiple pieces of functionality:
1. Added ice_vsi_sync_filters, which is called through the service task
to push filter updates to the hardware.
2. Add support to enable/disable promiscuous mode on an interface.
Enabling/disabling promiscuous mode on an interface results in
addition/removal of a promisc filter rule through ice_vsi_sync_filters.
3. Implement handlers for ndo_set_mac_address, ndo_change_mtu,
ndo_poll_controller and ndo_set_rx_mode.
This patch also marks the end of the driver addition by bumping up the
driver version.
Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_common.c')
-rw-r--r-- | drivers/net/ethernet/intel/ice/ice_common.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_common.c b/drivers/net/ethernet/intel/ice/ice_common.c index 791f1eba5953..385f5d425d19 100644 --- a/drivers/net/ethernet/intel/ice/ice_common.c +++ b/drivers/net/ethernet/intel/ice/ice_common.c | |||
@@ -1233,6 +1233,34 @@ enum ice_status ice_get_caps(struct ice_hw *hw) | |||
1233 | } | 1233 | } |
1234 | 1234 | ||
1235 | /** | 1235 | /** |
1236 | * ice_aq_manage_mac_write - manage MAC address write command | ||
1237 | * @hw: pointer to the hw struct | ||
1238 | * @mac_addr: MAC address to be written as LAA/LAA+WoL/Port address | ||
1239 | * @flags: flags to control write behavior | ||
1240 | * @cd: pointer to command details structure or NULL | ||
1241 | * | ||
1242 | * This function is used to write MAC address to the NVM (0x0108). | ||
1243 | */ | ||
1244 | enum ice_status | ||
1245 | ice_aq_manage_mac_write(struct ice_hw *hw, u8 *mac_addr, u8 flags, | ||
1246 | struct ice_sq_cd *cd) | ||
1247 | { | ||
1248 | struct ice_aqc_manage_mac_write *cmd; | ||
1249 | struct ice_aq_desc desc; | ||
1250 | |||
1251 | cmd = &desc.params.mac_write; | ||
1252 | ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_manage_mac_write); | ||
1253 | |||
1254 | cmd->flags = flags; | ||
1255 | |||
1256 | /* Prep values for flags, sah, sal */ | ||
1257 | cmd->sah = htons(*((u16 *)mac_addr)); | ||
1258 | cmd->sal = htonl(*((u32 *)(mac_addr + 2))); | ||
1259 | |||
1260 | return ice_aq_send_cmd(hw, &desc, NULL, 0, cd); | ||
1261 | } | ||
1262 | |||
1263 | /** | ||
1236 | * ice_aq_clear_pxe_mode | 1264 | * ice_aq_clear_pxe_mode |
1237 | * @hw: pointer to the hw struct | 1265 | * @hw: pointer to the hw struct |
1238 | * | 1266 | * |