]> git.proxmox.com Git - ceph.git/blob - ceph/src/dpdk/drivers/net/qede/base/ecore_vf_api.h
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / dpdk / drivers / net / qede / base / ecore_vf_api.h
1 /*
2 * Copyright (c) 2016 QLogic Corporation.
3 * All rights reserved.
4 * www.qlogic.com
5 *
6 * See LICENSE.qede_pmd for copyright and licensing details.
7 */
8
9 #ifndef __ECORE_VF_API_H__
10 #define __ECORE_VF_API_H__
11
12 #include "ecore_sp_api.h"
13 #include "ecore_mcp_api.h"
14
15 #ifdef CONFIG_ECORE_SRIOV
16 /**
17 * @brief Read the VF bulletin and act on it if needed
18 *
19 * @param p_hwfn
20 * @param p_change - ecore fills 1 iff bulletin board has changed, 0 otherwise.
21 *
22 * @return enum _ecore_status
23 */
24 enum _ecore_status_t ecore_vf_read_bulletin(struct ecore_hwfn *p_hwfn,
25 u8 *p_change);
26
27 /**
28 * @brief Get link parameters for VF from ecore
29 *
30 * @param p_hwfn
31 * @param params - the link params structure to be filled for the VF
32 */
33 void ecore_vf_get_link_params(struct ecore_hwfn *p_hwfn,
34 struct ecore_mcp_link_params *params);
35
36 /**
37 * @brief Get link state for VF from ecore
38 *
39 * @param p_hwfn
40 * @param link - the link state structure to be filled for the VF
41 */
42 void ecore_vf_get_link_state(struct ecore_hwfn *p_hwfn,
43 struct ecore_mcp_link_state *link);
44
45 /**
46 * @brief Get link capabilities for VF from ecore
47 *
48 * @param p_hwfn
49 * @param p_link_caps - the link capabilities structure to be filled for the VF
50 */
51 void ecore_vf_get_link_caps(struct ecore_hwfn *p_hwfn,
52 struct ecore_mcp_link_capabilities *p_link_caps);
53
54 /**
55 * @brief Get number of Rx queues allocated for VF by ecore
56 *
57 * @param p_hwfn
58 * @param num_rxqs - allocated RX queues
59 */
60 void ecore_vf_get_num_rxqs(struct ecore_hwfn *p_hwfn,
61 u8 *num_rxqs);
62
63 /**
64 * @brief Get port mac address for VF
65 *
66 * @param p_hwfn
67 * @param port_mac - destination location for port mac
68 */
69 void ecore_vf_get_port_mac(struct ecore_hwfn *p_hwfn,
70 u8 *port_mac);
71
72 /**
73 * @brief Get number of VLAN filters allocated for VF by ecore
74 *
75 * @param p_hwfn
76 * @param num_rxqs - allocated VLAN filters
77 */
78 void ecore_vf_get_num_vlan_filters(struct ecore_hwfn *p_hwfn,
79 u8 *num_vlan_filters);
80
81 /**
82 * @brief Get number of MAC filters allocated for VF by ecore
83 *
84 * @param p_hwfn
85 * @param num_mac_filters - allocated MAC filters
86 */
87 void ecore_vf_get_num_mac_filters(struct ecore_hwfn *p_hwfn,
88 u32 *num_mac_filters);
89
90 void ecore_vf_get_num_sbs(struct ecore_hwfn *p_hwfn,
91 u32 *num_sbs);
92
93 /**
94 * @brief Check if VF can set a MAC address
95 *
96 * @param p_hwfn
97 * @param mac
98 *
99 * @return bool
100 */
101 bool ecore_vf_check_mac(struct ecore_hwfn *p_hwfn, u8 *mac);
102
103 #ifndef LINUX_REMOVE
104 /**
105 * @brief Copy forced MAC address from bulletin board
106 *
107 * @param hwfn
108 * @param dst_mac
109 * @param p_is_forced - out param which indicate in case mac
110 * exist if it forced or not.
111 *
112 * @return bool - return true if mac exist and false if
113 * not.
114 */
115 bool ecore_vf_bulletin_get_forced_mac(struct ecore_hwfn *hwfn, u8 *dst_mac,
116 u8 *p_is_forced);
117
118 /**
119 * @brief Check if force vlan is set and copy the forced vlan
120 * from bulletin board
121 *
122 * @param hwfn
123 * @param dst_pvid
124 * @return bool
125 */
126 bool ecore_vf_bulletin_get_forced_vlan(struct ecore_hwfn *hwfn, u16 *dst_pvid);
127
128 /**
129 * @brief Check if VF is based on PF whose driver is pre-fp-hsi version;
130 * This affects the fastpath implementation of the driver.
131 *
132 * @param p_hwfn
133 *
134 * @return bool - true iff PF is pre-fp-hsi version.
135 */
136 bool ecore_vf_get_pre_fp_hsi(struct ecore_hwfn *p_hwfn);
137
138 #endif
139
140 /**
141 * @brief Set firmware version information in dev_info from VFs acquire
142 * response tlv
143 *
144 * @param p_hwfn
145 * @param fw_major
146 * @param fw_minor
147 * @param fw_rev
148 * @param fw_eng
149 */
150 void ecore_vf_get_fw_version(struct ecore_hwfn *p_hwfn,
151 u16 *fw_major,
152 u16 *fw_minor,
153 u16 *fw_rev,
154 u16 *fw_eng);
155 #endif
156 #endif