ice: refactor filter functions
Move filter functions to separate file. Add functions that prepare suitable ice_fltr_info struct depending on the filter type and add this struct to earlier created list: - ice_fltr_add_mac_to_list - ice_fltr_add_vlan_to_list - ice_fltr_add_eth_to_list This functions are used in adding and removing filters. Create wrappers for functions mentioned above that alloc list, add suitable ice_fltr_info to it and call add or remove function. - ice_fltr_prepare_mac - ice_fltr_prepare_mac_and_broadcast - ice_fltr_prepare_vlan - ice_fltr_prepare_eth Signed-off-by: Michal Swiatkowski <michal.swiatkowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
committed by
Jeff Kirsher
parent
857a4f0e9f
commit
1b8f15b64a
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "ice.h"
|
||||
#include "ice_flow.h"
|
||||
#include "ice_fltr.h"
|
||||
#include "ice_lib.h"
|
||||
#include "ice_dcb_lib.h"
|
||||
|
||||
@@ -676,7 +677,6 @@ static u64 ice_loopback_test(struct net_device *netdev)
|
||||
struct ice_ring *tx_ring, *rx_ring;
|
||||
u8 broadcast[ETH_ALEN], ret = 0;
|
||||
int num_frames, valid_frames;
|
||||
LIST_HEAD(tmp_list);
|
||||
struct device *dev;
|
||||
u8 *tx_frame;
|
||||
int i;
|
||||
@@ -712,16 +712,11 @@ static u64 ice_loopback_test(struct net_device *netdev)
|
||||
|
||||
/* Test VSI needs to receive broadcast packets */
|
||||
eth_broadcast_addr(broadcast);
|
||||
if (ice_add_mac_to_list(test_vsi, &tmp_list, broadcast)) {
|
||||
if (ice_fltr_add_mac(test_vsi, broadcast, ICE_FWD_TO_VSI)) {
|
||||
ret = 5;
|
||||
goto lbtest_mac_dis;
|
||||
}
|
||||
|
||||
if (ice_add_mac(&pf->hw, &tmp_list)) {
|
||||
ret = 6;
|
||||
goto free_mac_list;
|
||||
}
|
||||
|
||||
if (ice_lbtest_create_frame(pf, &tx_frame, ICE_LB_FRAME_SIZE)) {
|
||||
ret = 7;
|
||||
goto remove_mac_filters;
|
||||
@@ -744,10 +739,8 @@ static u64 ice_loopback_test(struct net_device *netdev)
|
||||
lbtest_free_frame:
|
||||
devm_kfree(dev, tx_frame);
|
||||
remove_mac_filters:
|
||||
if (ice_remove_mac(&pf->hw, &tmp_list))
|
||||
if (ice_fltr_remove_mac(test_vsi, broadcast, ICE_FWD_TO_VSI))
|
||||
netdev_err(netdev, "Could not remove MAC filter for the test VSI\n");
|
||||
free_mac_list:
|
||||
ice_free_fltr_list(dev, &tmp_list);
|
||||
lbtest_mac_dis:
|
||||
/* Disable MAC loopback after the test is completed. */
|
||||
if (ice_aq_set_mac_loopback(&pf->hw, false, NULL))
|
||||
|
||||
Reference in New Issue
Block a user