1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2018, Intel Corporation. */
9 const char *ice_vsi_type_str(enum ice_vsi_type vsi_type
);
12 ice_add_mac_to_list(struct ice_vsi
*vsi
, struct list_head
*add_list
,
15 void ice_free_fltr_list(struct device
*dev
, struct list_head
*h
);
17 void ice_update_eth_stats(struct ice_vsi
*vsi
);
19 int ice_vsi_cfg_rxqs(struct ice_vsi
*vsi
);
21 int ice_vsi_cfg_lan_txqs(struct ice_vsi
*vsi
);
23 void ice_vsi_cfg_msix(struct ice_vsi
*vsi
);
25 int ice_vsi_add_vlan(struct ice_vsi
*vsi
, u16 vid
);
27 int ice_vsi_kill_vlan(struct ice_vsi
*vsi
, u16 vid
);
29 int ice_vsi_manage_vlan_insertion(struct ice_vsi
*vsi
);
31 int ice_vsi_manage_vlan_stripping(struct ice_vsi
*vsi
, bool ena
);
33 int ice_vsi_start_all_rx_rings(struct ice_vsi
*vsi
);
35 int ice_vsi_stop_all_rx_rings(struct ice_vsi
*vsi
);
38 ice_vsi_stop_lan_tx_rings(struct ice_vsi
*vsi
, enum ice_disq_rst_src rst_src
,
41 int ice_vsi_cfg_xdp_txqs(struct ice_vsi
*vsi
);
43 int ice_vsi_stop_xdp_tx_rings(struct ice_vsi
*vsi
);
45 bool ice_vsi_is_vlan_pruning_ena(struct ice_vsi
*vsi
);
47 int ice_cfg_vlan_pruning(struct ice_vsi
*vsi
, bool ena
, bool vlan_promisc
);
49 void ice_cfg_sw_lldp(struct ice_vsi
*vsi
, bool tx
, bool create
);
51 void ice_vsi_delete(struct ice_vsi
*vsi
);
53 int ice_vsi_clear(struct ice_vsi
*vsi
);
56 int ice_vsi_cfg_tc(struct ice_vsi
*vsi
, u8 ena_tc
);
57 #endif /* CONFIG_DCB */
60 ice_vsi_setup(struct ice_pf
*pf
, struct ice_port_info
*pi
,
61 enum ice_vsi_type vsi_type
, u16 vf_id
);
63 void ice_napi_del(struct ice_vsi
*vsi
);
65 int ice_vsi_release(struct ice_vsi
*vsi
);
67 void ice_vsi_close(struct ice_vsi
*vsi
);
69 int ice_ena_vsi(struct ice_vsi
*vsi
, bool locked
);
71 void ice_dis_vsi(struct ice_vsi
*vsi
, bool locked
);
73 int ice_free_res(struct ice_res_tracker
*res
, u16 index
, u16 id
);
76 ice_get_res(struct ice_pf
*pf
, struct ice_res_tracker
*res
, u16 needed
, u16 id
);
78 int ice_vsi_rebuild(struct ice_vsi
*vsi
, bool init_vsi
);
80 bool ice_is_reset_in_progress(unsigned long *state
);
82 void ice_vsi_put_qs(struct ice_vsi
*vsi
);
84 void ice_vsi_dis_irq(struct ice_vsi
*vsi
);
86 void ice_vsi_free_irq(struct ice_vsi
*vsi
);
88 void ice_vsi_free_rx_rings(struct ice_vsi
*vsi
);
90 void ice_vsi_free_tx_rings(struct ice_vsi
*vsi
);
92 int ice_vsi_manage_rss_lut(struct ice_vsi
*vsi
, bool ena
);
94 void ice_update_tx_ring_stats(struct ice_ring
*ring
, u64 pkts
, u64 bytes
);
96 void ice_update_rx_ring_stats(struct ice_ring
*ring
, u64 pkts
, u64 bytes
);
98 void ice_vsi_cfg_frame_size(struct ice_vsi
*vsi
);
100 u32
ice_intrl_usec_to_reg(u8 intrl
, u8 gran
);
103 ice_vsi_cfg_mac_fltr(struct ice_vsi
*vsi
, const u8
*macaddr
, bool set
);
105 bool ice_is_safe_mode(struct ice_pf
*pf
);
107 bool ice_is_dflt_vsi_in_use(struct ice_sw
*sw
);
109 bool ice_is_vsi_dflt_vsi(struct ice_sw
*sw
, struct ice_vsi
*vsi
);
111 int ice_set_dflt_vsi(struct ice_sw
*sw
, struct ice_vsi
*vsi
);
113 int ice_clear_dflt_vsi(struct ice_sw
*sw
);
114 #endif /* !_ICE_LIB_H_ */