net/ice/base: add helper function to redirect flags
[dpdk.git] / drivers / net / txgbe / base / txgbe_vf.h
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__ */