1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2015-2020 Beijing WangXun Technology Co., Ltd. 3 * Copyright(c) 2010-2017 Intel Corporation 4 */ 5 6 #ifndef _TXGBE_VF_H_ 7 #define _TXGBE_VF_H_ 8 9 #include "txgbe_type.h" 10 11 #define TXGBE_VF_MAX_TX_QUEUES 8 12 #define TXGBE_VF_MAX_RX_QUEUES 8 13 14 struct txgbevf_hw_stats { 15 u64 base_vfgprc; 16 u64 base_vfgptc; 17 u64 base_vfgorc; 18 u64 base_vfgotc; 19 u64 base_vfmprc; 20 21 struct{ 22 u64 last_vfgprc; 23 u64 last_vfgptc; 24 u64 last_vfgorc; 25 u64 last_vfgotc; 26 u64 last_vfmprc; 27 u64 vfgprc; 28 u64 vfgptc; 29 u64 vfgorc; 30 u64 vfgotc; 31 u64 vfmprc; 32 } qp[8]; 33 34 u64 saved_reset_vfgprc; 35 u64 saved_reset_vfgptc; 36 u64 saved_reset_vfgorc; 37 u64 saved_reset_vfgotc; 38 u64 saved_reset_vfmprc; 39 }; 40 41 s32 txgbe_init_ops_vf(struct txgbe_hw *hw); 42 s32 txgbe_start_hw_vf(struct txgbe_hw *hw); 43 s32 txgbe_reset_hw_vf(struct txgbe_hw *hw); 44 s32 txgbe_stop_hw_vf(struct txgbe_hw *hw); 45 s32 txgbe_get_mac_addr_vf(struct txgbe_hw *hw, u8 *mac_addr); 46 s32 txgbe_check_mac_link_vf(struct txgbe_hw *hw, u32 *speed, 47 bool *link_up, bool autoneg_wait_to_complete); 48 s32 txgbe_set_rar_vf(struct txgbe_hw *hw, u32 index, u8 *addr, u32 vmdq, 49 u32 enable_addr); 50 s32 txgbevf_set_uc_addr_vf(struct txgbe_hw *hw, u32 index, u8 *addr); 51 s32 txgbe_update_mc_addr_list_vf(struct txgbe_hw *hw, u8 *mc_addr_list, 52 u32 mc_addr_count, txgbe_mc_addr_itr next, 53 bool clear); 54 s32 txgbevf_update_xcast_mode(struct txgbe_hw *hw, int xcast_mode); 55 s32 txgbe_set_vfta_vf(struct txgbe_hw *hw, u32 vlan, u32 vind, 56 bool vlan_on, bool vlvf_bypass); 57 s32 txgbevf_rlpml_set_vf(struct txgbe_hw *hw, u16 max_size); 58 int txgbevf_negotiate_api_version(struct txgbe_hw *hw, int api); 59 int txgbevf_get_queues(struct txgbe_hw *hw, unsigned int *num_tcs, 60 unsigned int *default_tc); 61 62 #endif /* __TXGBE_VF_H__ */ 63