mediatek: mt7622: add Linux 5.10 support
[openwrt/staging/chunkeey.git] / target / linux / mediatek / files-5.10 / drivers / net / phy / rtk / rtl8367c / include / mirror.h
1 /*
2 * Copyright (C) 2013 Realtek Semiconductor Corp.
3 * All Rights Reserved.
4 *
5 * Unless you and Realtek execute a separate written software license
6 * agreement governing use of this software, this software is licensed
7 * to you under the terms of the GNU General Public License version 2,
8 * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
9 *
10 * Purpose : RTL8367/RTL8367C switch high-level API
11 *
12 * Feature : The file includes Mirror module high-layer API defination
13 *
14 */
15
16 #ifndef __RTK_API_MIRROR_H__
17 #define __RTK_API_MIRROR_H__
18
19 typedef enum rtk_mirror_keep_e
20 {
21 MIRROR_FOLLOW_VLAN = 0,
22 MIRROR_KEEP_ORIGINAL,
23 MIRROR_KEEP_END
24 }rtk_mirror_keep_t;
25
26
27 /* Function Name:
28 * rtk_mirror_portBased_set
29 * Description:
30 * Set port mirror function.
31 * Input:
32 * mirroring_port - Monitor port.
33 * pMirrored_rx_portmask - Rx mirror port mask.
34 * pMirrored_tx_portmask - Tx mirror port mask.
35 * Output:
36 * None
37 * Return:
38 * RT_ERR_OK - OK
39 * RT_ERR_FAILED - Failed
40 * RT_ERR_SMI - SMI access error
41 * RT_ERR_PORT_ID - Invalid port number
42 * RT_ERR_PORT_MASK - Invalid portmask.
43 * Note:
44 * The API is to set mirror function of source port and mirror port.
45 * The mirror port can only be set to one port and the TX and RX mirror ports
46 * should be identical.
47 */
48 extern rtk_api_ret_t rtk_mirror_portBased_set(rtk_port_t mirroring_port, rtk_portmask_t *pMirrored_rx_portmask, rtk_portmask_t *pMirrored_tx_portmask);
49
50 /* Function Name:
51 * rtk_mirror_portBased_get
52 * Description:
53 * Get port mirror function.
54 * Input:
55 * None
56 * Output:
57 * pMirroring_port - Monitor port.
58 * pMirrored_rx_portmask - Rx mirror port mask.
59 * pMirrored_tx_portmask - Tx mirror port mask.
60 * Return:
61 * RT_ERR_OK - OK
62 * RT_ERR_FAILED - Failed
63 * RT_ERR_SMI - SMI access error
64 * RT_ERR_INPUT - Invalid input parameters.
65 * Note:
66 * The API is to get mirror function of source port and mirror port.
67 */
68 extern rtk_api_ret_t rtk_mirror_portBased_get(rtk_port_t* pMirroring_port, rtk_portmask_t *pMirrored_rx_portmask, rtk_portmask_t *pMirrored_tx_portmask);
69
70 /* Function Name:
71 * rtk_mirror_portIso_set
72 * Description:
73 * Set mirror port isolation.
74 * Input:
75 * enable |Mirror isolation status.
76 * Output:
77 * None
78 * Return:
79 * RT_ERR_OK - OK
80 * RT_ERR_FAILED - Failed
81 * RT_ERR_SMI - SMI access error
82 * RT_ERR_ENABLE - Invalid enable input
83 * Note:
84 * The API is to set mirror isolation function that prevent normal forwarding packets to miror port.
85 */
86 extern rtk_api_ret_t rtk_mirror_portIso_set(rtk_enable_t enable);
87
88 /* Function Name:
89 * rtk_mirror_portIso_get
90 * Description:
91 * Get mirror port isolation.
92 * Input:
93 * None
94 * Output:
95 * pEnable |Mirror isolation status.
96 * Return:
97 * RT_ERR_OK - OK
98 * RT_ERR_FAILED - Failed
99 * RT_ERR_SMI - SMI access error
100 * RT_ERR_INPUT - Invalid input parameters.
101 * Note:
102 * The API is to get mirror isolation status.
103 */
104 extern rtk_api_ret_t rtk_mirror_portIso_get(rtk_enable_t *pEnable);
105
106 /* Function Name:
107 * rtk_mirror_vlanLeaky_set
108 * Description:
109 * Set mirror VLAN leaky.
110 * Input:
111 * txenable -TX leaky enable.
112 * rxenable - RX leaky enable.
113 * Output:
114 * None
115 * Return:
116 * RT_ERR_OK - OK
117 * RT_ERR_FAILED - Failed
118 * RT_ERR_SMI - SMI access error
119 * RT_ERR_ENABLE - Invalid enable input
120 * Note:
121 * The API is to set mirror VLAN leaky function forwarding packets to miror port.
122 */
123 extern rtk_api_ret_t rtk_mirror_vlanLeaky_set(rtk_enable_t txenable, rtk_enable_t rxenable);
124
125
126 /* Function Name:
127 * rtk_mirror_vlanLeaky_get
128 * Description:
129 * Get mirror VLAN leaky.
130 * Input:
131 * None
132 * Output:
133 * pTxenable - TX leaky enable.
134 * pRxenable - RX leaky enable.
135 * Return:
136 * RT_ERR_OK - OK
137 * RT_ERR_FAILED - Failed
138 * RT_ERR_SMI - SMI access error
139 * RT_ERR_INPUT - Invalid input parameters.
140 * Note:
141 * The API is to get mirror VLAN leaky status.
142 */
143 extern rtk_api_ret_t rtk_mirror_vlanLeaky_get(rtk_enable_t *pTxenable, rtk_enable_t *pRxenable);
144
145 /* Function Name:
146 * rtk_mirror_isolationLeaky_set
147 * Description:
148 * Set mirror Isolation leaky.
149 * Input:
150 * txenable -TX leaky enable.
151 * rxenable - RX leaky enable.
152 * Output:
153 * None
154 * Return:
155 * RT_ERR_OK - OK
156 * RT_ERR_FAILED - Failed
157 * RT_ERR_SMI - SMI access error
158 * RT_ERR_ENABLE - Invalid enable input
159 * Note:
160 * The API is to set mirror VLAN leaky function forwarding packets to miror port.
161 */
162 extern rtk_api_ret_t rtk_mirror_isolationLeaky_set(rtk_enable_t txenable, rtk_enable_t rxenable);
163
164 /* Function Name:
165 * rtk_mirror_isolationLeaky_get
166 * Description:
167 * Get mirror isolation leaky.
168 * Input:
169 * None
170 * Output:
171 * pTxenable - TX leaky enable.
172 * pRxenable - RX leaky enable.
173 * Return:
174 * RT_ERR_OK - OK
175 * RT_ERR_FAILED - Failed
176 * RT_ERR_SMI - SMI access error
177 * RT_ERR_INPUT - Invalid input parameters.
178 * Note:
179 * The API is to get mirror isolation leaky status.
180 */
181 extern rtk_api_ret_t rtk_mirror_isolationLeaky_get(rtk_enable_t *pTxenable, rtk_enable_t *pRxenable);
182
183 /* Function Name:
184 * rtk_mirror_keep_set
185 * Description:
186 * Set mirror packet format keep.
187 * Input:
188 * mode - -mirror keep mode.
189 * Output:
190 * None
191 * Return:
192 * RT_ERR_OK - OK
193 * RT_ERR_FAILED - Failed
194 * RT_ERR_SMI - SMI access error
195 * RT_ERR_ENABLE - Invalid enable input
196 * Note:
197 * The API is to set -mirror keep mode.
198 * The mirror keep mode is as following:
199 * - MIRROR_FOLLOW_VLAN
200 * - MIRROR_KEEP_ORIGINAL
201 * - MIRROR_KEEP_END
202 */
203 extern rtk_api_ret_t rtk_mirror_keep_set(rtk_mirror_keep_t mode);
204
205
206 /* Function Name:
207 * rtk_mirror_keep_get
208 * Description:
209 * Get mirror packet format keep.
210 * Input:
211 * None
212 * Output:
213 * pMode -mirror keep mode.
214 * Return:
215 * RT_ERR_OK - OK
216 * RT_ERR_FAILED - Failed
217 * RT_ERR_SMI - SMI access error
218 * RT_ERR_INPUT - Invalid input parameters.
219 * Note:
220 * The API is to get mirror keep mode.
221 * The mirror keep mode is as following:
222 * - MIRROR_FOLLOW_VLAN
223 * - MIRROR_KEEP_ORIGINAL
224 * - MIRROR_KEEP_END
225 */
226 extern rtk_api_ret_t rtk_mirror_keep_get(rtk_mirror_keep_t *pMode);
227
228 /* Function Name:
229 * rtk_mirror_override_set
230 * Description:
231 * Set port mirror override function.
232 * Input:
233 * rxMirror - 1: output mirrored packet, 0: output normal forward packet
234 * txMirror - 1: output mirrored packet, 0: output normal forward packet
235 * aclMirror - 1: output mirrored packet, 0: output normal forward packet
236 * Output:
237 * None
238 * Return:
239 * RT_ERR_OK - OK
240 * RT_ERR_FAILED - Failed
241 * RT_ERR_SMI - SMI access error
242 * Note:
243 * The API is to set mirror override function.
244 * This function control the output format when a port output
245 * normal forward & mirrored packet at the same time.
246 */
247 extern rtk_api_ret_t rtk_mirror_override_set(rtk_enable_t rxMirror, rtk_enable_t txMirror, rtk_enable_t aclMirror);
248
249 /* Function Name:
250 * rtk_mirror_override_get
251 * Description:
252 * Get port mirror override function.
253 * Input:
254 * None
255 * Output:
256 * pRxMirror - 1: output mirrored packet, 0: output normal forward packet
257 * pTxMirror - 1: output mirrored packet, 0: output normal forward packet
258 * pAclMirror - 1: output mirrored packet, 0: output normal forward packet
259 * Return:
260 * RT_ERR_OK - OK
261 * RT_ERR_FAILED - Failed
262 * RT_ERR_SMI - SMI access error
263 * RT_ERR_NULL_POINTER - Null Pointer
264 * Note:
265 * The API is to Get mirror override function.
266 * This function control the output format when a port output
267 * normal forward & mirrored packet at the same time.
268 */
269 extern rtk_api_ret_t rtk_mirror_override_get(rtk_enable_t *pRxMirror, rtk_enable_t *pTxMirror, rtk_enable_t *pAclMirror);
270
271 #endif /* __RTK_API_MIRROR_H__ */
272