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