mediatek: mt7622: add Linux 5.10 support
[openwrt/staging/rmilecki.git] / target / linux / mediatek / files-5.10 / drivers / net / phy / rtk / rtl8367c / include / oam.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 * $Revision: 76306 $
11 * $Date: 2017-03-08 15:13:58 +0800 (週三, 08 三月 2017) $
12 *
13 * Purpose : RTL8367/RTL8367C switch high-level API
14 *
15 * Feature : The file includes the following modules and sub-modules
16 * (1) OAM (802.3ah) configuration
17 *
18 */
19
20 #ifndef __RTK_OAM_H__
21 #define __RTK_OAM_H__
22
23 /*
24 * Symbol Definition
25 */
26
27
28 /*
29 * Data Declaration
30 */
31
32
33 /*
34 * Macro Declaration
35 */
36
37 typedef enum rtk_oam_parser_act_e
38 {
39 OAM_PARSER_ACTION_FORWARD = 0,
40 OAM_PARSER_ACTION_LOOPBACK,
41 OAM_PARSER_ACTION_DISCARD,
42 OAM_PARSER_ACTION_END,
43
44 } rtk_oam_parser_act_t;
45
46 typedef enum rtk_oam_multiplexer_act_e
47 {
48 OAM_MULTIPLEXER_ACTION_FORWARD = 0,
49 OAM_MULTIPLEXER_ACTION_DISCARD,
50 OAM_MULTIPLEXER_ACTION_CPUONLY,
51 OAM_MULTIPLEXER_ACTION_END,
52
53 } rtk_oam_multiplexer_act_t;
54
55
56 /*
57 * Function Declaration
58 */
59
60 /* Function Name:
61 * rtk_oam_init
62 * Description:
63 * Initialize oam module.
64 * Input:
65 * None
66 * Output:
67 * None
68 * Return:
69 * RT_ERR_OK
70 * RT_ERR_FAILED
71 * Note:
72 * Must initialize oam module before calling any oam APIs.
73 */
74 extern rtk_api_ret_t rtk_oam_init(void);
75
76 /* Function Name:
77 * rtk_oam_state_set
78 * Description:
79 * This API set OAM state.
80 * Input:
81 * enabled -OAMstate
82 * Output:
83 * None.
84 * Return:
85 * RT_ERR_OK - OK
86 * RT_ERR_FAILED - Failed
87 * RT_ERR_SMI - SMI access error
88 * RT_ERR_INPUT - Error parameter
89 * Note:
90 * This API set OAM state.
91 */
92 extern rtk_api_ret_t rtk_oam_state_set(rtk_enable_t enabled);
93
94 /* Function Name:
95 * rtk_oam_state_get
96 * Description:
97 * This API get OAM state.
98 * Input:
99 * None.
100 * Output:
101 * pEnabled - H/W IGMP state
102 * Return:
103 * RT_ERR_OK - OK
104 * RT_ERR_FAILED - Failed
105 * RT_ERR_SMI - SMI access error
106 * RT_ERR_INPUT - Error parameter
107 * Note:
108 * This API set current OAM state.
109 */
110 extern rtk_api_ret_t rtk_oam_state_get(rtk_enable_t *pEnabled);
111
112
113 /* Module Name : OAM */
114
115 /* Function Name:
116 * rtk_oam_parserAction_set
117 * Description:
118 * Set OAM parser action
119 * Input:
120 * port - port id
121 * action - parser action
122 * Output:
123 * None
124 * Return:
125 * RT_ERR_OK
126 * RT_ERR_FAILED
127 * RT_ERR_PORT_ID - invalid port id
128 * Note:
129 * None
130 */
131 extern rtk_api_ret_t rtk_oam_parserAction_set(rtk_port_t port, rtk_oam_parser_act_t action);
132
133 /* Function Name:
134 * rtk_oam_parserAction_set
135 * Description:
136 * Get OAM parser action
137 * Input:
138 * port - port id
139 * Output:
140 * pAction - parser action
141 * Return:
142 * RT_ERR_OK
143 * RT_ERR_FAILED
144 * RT_ERR_PORT_ID - invalid port id
145 * Note:
146 * None
147 */
148 extern rtk_api_ret_t rtk_oam_parserAction_get(rtk_port_t port, rtk_oam_parser_act_t *pAction);
149
150
151 /* Function Name:
152 * rtk_oam_multiplexerAction_set
153 * Description:
154 * Set OAM multiplexer action
155 * Input:
156 * port - port id
157 * action - parser action
158 * Output:
159 * None
160 * Return:
161 * RT_ERR_OK
162 * RT_ERR_FAILED
163 * RT_ERR_PORT_ID - invalid port id
164 * Note:
165 * None
166 */
167 extern rtk_api_ret_t rtk_oam_multiplexerAction_set(rtk_port_t port, rtk_oam_multiplexer_act_t action);
168
169 /* Function Name:
170 * rtk_oam_multiplexerAction_set
171 * Description:
172 * Get OAM multiplexer action
173 * Input:
174 * port - port id
175 * Output:
176 * pAction - parser action
177 * Return:
178 * RT_ERR_OK
179 * RT_ERR_FAILED
180 * RT_ERR_PORT_ID - invalid port id
181 * Note:
182 * None
183 */
184 extern rtk_api_ret_t rtk_oam_multiplexerAction_get(rtk_port_t port, rtk_oam_multiplexer_act_t *pAction);
185
186
187 #endif /* __RTK_OAM_H__ */
188