2 * Copyright (C) 2013 Realtek Semiconductor Corp.
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
10 * Purpose : RTL8367/RTL8367C switch high-level API
12 * Feature : The file includes Mirror module high-layer API defination
16 #ifndef __RTK_API_MIRROR_H__
17 #define __RTK_API_MIRROR_H__
19 typedef enum rtk_mirror_keep_e
21 MIRROR_FOLLOW_VLAN
= 0,
28 * rtk_mirror_portBased_set
30 * Set port mirror function.
32 * mirroring_port - Monitor port.
33 * pMirrored_rx_portmask - Rx mirror port mask.
34 * pMirrored_tx_portmask - Tx mirror port mask.
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.
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.
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
);
51 * rtk_mirror_portBased_get
53 * Get port mirror function.
57 * pMirroring_port - Monitor port.
58 * pMirrored_rx_portmask - Rx mirror port mask.
59 * pMirrored_tx_portmask - Tx mirror port mask.
62 * RT_ERR_FAILED - Failed
63 * RT_ERR_SMI - SMI access error
64 * RT_ERR_INPUT - Invalid input parameters.
66 * The API is to get mirror function of source port and mirror port.
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
);
71 * rtk_mirror_portIso_set
73 * Set mirror port isolation.
75 * enable |Mirror isolation status.
80 * RT_ERR_FAILED - Failed
81 * RT_ERR_SMI - SMI access error
82 * RT_ERR_ENABLE - Invalid enable input
84 * The API is to set mirror isolation function that prevent normal forwarding packets to miror port.
86 extern rtk_api_ret_t
rtk_mirror_portIso_set(rtk_enable_t enable
);
89 * rtk_mirror_portIso_get
91 * Get mirror port isolation.
95 * pEnable |Mirror isolation status.
98 * RT_ERR_FAILED - Failed
99 * RT_ERR_SMI - SMI access error
100 * RT_ERR_INPUT - Invalid input parameters.
102 * The API is to get mirror isolation status.
104 extern rtk_api_ret_t
rtk_mirror_portIso_get(rtk_enable_t
*pEnable
);
107 * rtk_mirror_vlanLeaky_set
109 * Set mirror VLAN leaky.
111 * txenable -TX leaky enable.
112 * rxenable - RX leaky enable.
117 * RT_ERR_FAILED - Failed
118 * RT_ERR_SMI - SMI access error
119 * RT_ERR_ENABLE - Invalid enable input
121 * The API is to set mirror VLAN leaky function forwarding packets to miror port.
123 extern rtk_api_ret_t
rtk_mirror_vlanLeaky_set(rtk_enable_t txenable
, rtk_enable_t rxenable
);
127 * rtk_mirror_vlanLeaky_get
129 * Get mirror VLAN leaky.
133 * pTxenable - TX leaky enable.
134 * pRxenable - RX leaky enable.
137 * RT_ERR_FAILED - Failed
138 * RT_ERR_SMI - SMI access error
139 * RT_ERR_INPUT - Invalid input parameters.
141 * The API is to get mirror VLAN leaky status.
143 extern rtk_api_ret_t
rtk_mirror_vlanLeaky_get(rtk_enable_t
*pTxenable
, rtk_enable_t
*pRxenable
);
146 * rtk_mirror_isolationLeaky_set
148 * Set mirror Isolation leaky.
150 * txenable -TX leaky enable.
151 * rxenable - RX leaky enable.
156 * RT_ERR_FAILED - Failed
157 * RT_ERR_SMI - SMI access error
158 * RT_ERR_ENABLE - Invalid enable input
160 * The API is to set mirror VLAN leaky function forwarding packets to miror port.
162 extern rtk_api_ret_t
rtk_mirror_isolationLeaky_set(rtk_enable_t txenable
, rtk_enable_t rxenable
);
165 * rtk_mirror_isolationLeaky_get
167 * Get mirror isolation leaky.
171 * pTxenable - TX leaky enable.
172 * pRxenable - RX leaky enable.
175 * RT_ERR_FAILED - Failed
176 * RT_ERR_SMI - SMI access error
177 * RT_ERR_INPUT - Invalid input parameters.
179 * The API is to get mirror isolation leaky status.
181 extern rtk_api_ret_t
rtk_mirror_isolationLeaky_get(rtk_enable_t
*pTxenable
, rtk_enable_t
*pRxenable
);
184 * rtk_mirror_keep_set
186 * Set mirror packet format keep.
188 * mode - -mirror keep mode.
193 * RT_ERR_FAILED - Failed
194 * RT_ERR_SMI - SMI access error
195 * RT_ERR_ENABLE - Invalid enable input
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
203 extern rtk_api_ret_t
rtk_mirror_keep_set(rtk_mirror_keep_t mode
);
207 * rtk_mirror_keep_get
209 * Get mirror packet format keep.
213 * pMode -mirror keep mode.
216 * RT_ERR_FAILED - Failed
217 * RT_ERR_SMI - SMI access error
218 * RT_ERR_INPUT - Invalid input parameters.
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
226 extern rtk_api_ret_t
rtk_mirror_keep_get(rtk_mirror_keep_t
*pMode
);
229 * rtk_mirror_override_set
231 * Set port mirror override function.
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
240 * RT_ERR_FAILED - Failed
241 * RT_ERR_SMI - SMI access error
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.
247 extern rtk_api_ret_t
rtk_mirror_override_set(rtk_enable_t rxMirror
, rtk_enable_t txMirror
, rtk_enable_t aclMirror
);
250 * rtk_mirror_override_get
252 * Get port mirror override function.
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
261 * RT_ERR_FAILED - Failed
262 * RT_ERR_SMI - SMI access error
263 * RT_ERR_NULL_POINTER - Null Pointer
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.
269 extern rtk_api_ret_t
rtk_mirror_override_get(rtk_enable_t
*pRxMirror
, rtk_enable_t
*pTxMirror
, rtk_enable_t
*pAclMirror
);
271 #endif /* __RTK_API_MIRROR_H__ */