armvirt: switch to Kernel 5.10
[openwrt/staging/chunkeey.git] / target / linux / mediatek / files-5.4 / drivers / net / phy / rtk / rtl8367c / include / stat.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 MIB module high-layer API defination
13 *
14 */
15
16 #ifndef __RTK_API_STAT_H__
17 #define __RTK_API_STAT_H__
18
19 /*
20 * Data Type Declaration
21 */
22 typedef rtk_u_long_t rtk_stat_counter_t;
23
24 /* global statistic counter structure */
25 typedef struct rtk_stat_global_cntr_s
26 {
27 rtk_uint64 dot1dTpLearnedEntryDiscards;
28 }rtk_stat_global_cntr_t;
29
30 typedef enum rtk_stat_global_type_e
31 {
32 DOT1D_TP_LEARNED_ENTRY_DISCARDS_INDEX = 58,
33 MIB_GLOBAL_CNTR_END
34 }rtk_stat_global_type_t;
35
36 /* port statistic counter structure */
37 typedef struct rtk_stat_port_cntr_s
38 {
39 rtk_uint64 ifInOctets;
40 rtk_uint32 dot3StatsFCSErrors;
41 rtk_uint32 dot3StatsSymbolErrors;
42 rtk_uint32 dot3InPauseFrames;
43 rtk_uint32 dot3ControlInUnknownOpcodes;
44 rtk_uint32 etherStatsFragments;
45 rtk_uint32 etherStatsJabbers;
46 rtk_uint32 ifInUcastPkts;
47 rtk_uint32 etherStatsDropEvents;
48 rtk_uint64 etherStatsOctets;
49 rtk_uint32 etherStatsUndersizePkts;
50 rtk_uint32 etherStatsOversizePkts;
51 rtk_uint32 etherStatsPkts64Octets;
52 rtk_uint32 etherStatsPkts65to127Octets;
53 rtk_uint32 etherStatsPkts128to255Octets;
54 rtk_uint32 etherStatsPkts256to511Octets;
55 rtk_uint32 etherStatsPkts512to1023Octets;
56 rtk_uint32 etherStatsPkts1024toMaxOctets;
57 rtk_uint32 etherStatsMcastPkts;
58 rtk_uint32 etherStatsBcastPkts;
59 rtk_uint64 ifOutOctets;
60 rtk_uint32 dot3StatsSingleCollisionFrames;
61 rtk_uint32 dot3StatsMultipleCollisionFrames;
62 rtk_uint32 dot3StatsDeferredTransmissions;
63 rtk_uint32 dot3StatsLateCollisions;
64 rtk_uint32 etherStatsCollisions;
65 rtk_uint32 dot3StatsExcessiveCollisions;
66 rtk_uint32 dot3OutPauseFrames;
67 rtk_uint32 dot1dBasePortDelayExceededDiscards;
68 rtk_uint32 dot1dTpPortInDiscards;
69 rtk_uint32 ifOutUcastPkts;
70 rtk_uint32 ifOutMulticastPkts;
71 rtk_uint32 ifOutBrocastPkts;
72 rtk_uint32 outOampduPkts;
73 rtk_uint32 inOampduPkts;
74 rtk_uint32 pktgenPkts;
75 rtk_uint32 inMldChecksumError;
76 rtk_uint32 inIgmpChecksumError;
77 rtk_uint32 inMldSpecificQuery;
78 rtk_uint32 inMldGeneralQuery;
79 rtk_uint32 inIgmpSpecificQuery;
80 rtk_uint32 inIgmpGeneralQuery;
81 rtk_uint32 inMldLeaves;
82 rtk_uint32 inIgmpLeaves;
83 rtk_uint32 inIgmpJoinsSuccess;
84 rtk_uint32 inIgmpJoinsFail;
85 rtk_uint32 inMldJoinsSuccess;
86 rtk_uint32 inMldJoinsFail;
87 rtk_uint32 inReportSuppressionDrop;
88 rtk_uint32 inLeaveSuppressionDrop;
89 rtk_uint32 outIgmpReports;
90 rtk_uint32 outIgmpLeaves;
91 rtk_uint32 outIgmpGeneralQuery;
92 rtk_uint32 outIgmpSpecificQuery;
93 rtk_uint32 outMldReports;
94 rtk_uint32 outMldLeaves;
95 rtk_uint32 outMldGeneralQuery;
96 rtk_uint32 outMldSpecificQuery;
97 rtk_uint32 inKnownMulticastPkts;
98 rtk_uint32 ifInMulticastPkts;
99 rtk_uint32 ifInBroadcastPkts;
100 rtk_uint32 ifOutDiscards;
101 }rtk_stat_port_cntr_t;
102
103 /* port statistic counter index */
104 typedef enum rtk_stat_port_type_e
105 {
106 STAT_IfInOctets = 0,
107 STAT_Dot3StatsFCSErrors,
108 STAT_Dot3StatsSymbolErrors,
109 STAT_Dot3InPauseFrames,
110 STAT_Dot3ControlInUnknownOpcodes,
111 STAT_EtherStatsFragments,
112 STAT_EtherStatsJabbers,
113 STAT_IfInUcastPkts,
114 STAT_EtherStatsDropEvents,
115 STAT_EtherStatsOctets,
116 STAT_EtherStatsUnderSizePkts,
117 STAT_EtherOversizeStats,
118 STAT_EtherStatsPkts64Octets,
119 STAT_EtherStatsPkts65to127Octets,
120 STAT_EtherStatsPkts128to255Octets,
121 STAT_EtherStatsPkts256to511Octets,
122 STAT_EtherStatsPkts512to1023Octets,
123 STAT_EtherStatsPkts1024to1518Octets,
124 STAT_EtherStatsMulticastPkts,
125 STAT_EtherStatsBroadcastPkts,
126 STAT_IfOutOctets,
127 STAT_Dot3StatsSingleCollisionFrames,
128 STAT_Dot3StatsMultipleCollisionFrames,
129 STAT_Dot3StatsDeferredTransmissions,
130 STAT_Dot3StatsLateCollisions,
131 STAT_EtherStatsCollisions,
132 STAT_Dot3StatsExcessiveCollisions,
133 STAT_Dot3OutPauseFrames,
134 STAT_Dot1dBasePortDelayExceededDiscards,
135 STAT_Dot1dTpPortInDiscards,
136 STAT_IfOutUcastPkts,
137 STAT_IfOutMulticastPkts,
138 STAT_IfOutBroadcastPkts,
139 STAT_OutOampduPkts,
140 STAT_InOampduPkts,
141 STAT_PktgenPkts,
142 STAT_InMldChecksumError,
143 STAT_InIgmpChecksumError,
144 STAT_InMldSpecificQuery,
145 STAT_InMldGeneralQuery,
146 STAT_InIgmpSpecificQuery,
147 STAT_InIgmpGeneralQuery,
148 STAT_InMldLeaves,
149 STAT_InIgmpInterfaceLeaves,
150 STAT_InIgmpJoinsSuccess,
151 STAT_InIgmpJoinsFail,
152 STAT_InMldJoinsSuccess,
153 STAT_InMldJoinsFail,
154 STAT_InReportSuppressionDrop,
155 STAT_InLeaveSuppressionDrop,
156 STAT_OutIgmpReports,
157 STAT_OutIgmpLeaves,
158 STAT_OutIgmpGeneralQuery,
159 STAT_OutIgmpSpecificQuery,
160 STAT_OutMldReports,
161 STAT_OutMldLeaves,
162 STAT_OutMldGeneralQuery,
163 STAT_OutMldSpecificQuery,
164 STAT_InKnownMulticastPkts,
165 STAT_IfInMulticastPkts,
166 STAT_IfInBroadcastPkts,
167 STAT_IfOutDiscards,
168 STAT_PORT_CNTR_END
169 }rtk_stat_port_type_t;
170
171 typedef enum rtk_logging_counter_mode_e
172 {
173 LOGGING_MODE_32BIT = 0,
174 LOGGING_MODE_64BIT,
175 LOGGING_MODE_END
176 }rtk_logging_counter_mode_t;
177
178 typedef enum rtk_logging_counter_type_e
179 {
180 LOGGING_TYPE_PACKET = 0,
181 LOGGING_TYPE_BYTE,
182 LOGGING_TYPE_END
183 }rtk_logging_counter_type_t;
184
185 typedef enum rtk_stat_lengthMode_e
186 {
187 LENGTH_MODE_EXC_TAG = 0,
188 LENGTH_MODE_INC_TAG,
189 LENGTH_MODE_END
190 }rtk_stat_lengthMode_t;
191
192
193
194 /* Function Name:
195 * rtk_stat_global_reset
196 * Description:
197 * Reset global MIB counter.
198 * Input:
199 * None
200 * Output:
201 * None
202 * Return:
203 * RT_ERR_OK - OK
204 * RT_ERR_FAILED - Failed
205 * RT_ERR_SMI - SMI access error
206 * Note:
207 * Reset MIB counter of ports. API will use global reset while port mask is all-ports.
208 */
209 extern rtk_api_ret_t rtk_stat_global_reset(void);
210
211 /* Function Name:
212 * rtk_stat_port_reset
213 * Description:
214 * Reset per port MIB counter by port.
215 * Input:
216 * port - port id.
217 * Output:
218 * None
219 * Return:
220 * RT_ERR_OK - OK
221 * RT_ERR_FAILED - Failed
222 * RT_ERR_SMI - SMI access error
223 * Note:
224 *
225 */
226 extern rtk_api_ret_t rtk_stat_port_reset(rtk_port_t port);
227
228 /* Function Name:
229 * rtk_stat_queueManage_reset
230 * Description:
231 * Reset queue manage MIB counter.
232 * Input:
233 * None
234 * Output:
235 * None
236 * Return:
237 * RT_ERR_OK - OK
238 * RT_ERR_FAILED - Failed
239 * RT_ERR_SMI - SMI access error
240 * Note:
241 *
242 */
243 extern rtk_api_ret_t rtk_stat_queueManage_reset(void);
244
245 /* Function Name:
246 * rtk_stat_global_get
247 * Description:
248 * Get global MIB counter
249 * Input:
250 * cntr_idx - global counter index.
251 * Output:
252 * pCntr - global counter value.
253 * Return:
254 * RT_ERR_OK - OK
255 * RT_ERR_FAILED - Failed
256 * RT_ERR_SMI - SMI access error
257 * RT_ERR_INPUT - Invalid input parameters.
258 * Note:
259 * Get global MIB counter by index definition.
260 */
261 extern rtk_api_ret_t rtk_stat_global_get(rtk_stat_global_type_t cntr_idx, rtk_stat_counter_t *pCntr);
262
263 /* Function Name:
264 * rtk_stat_global_getAll
265 * Description:
266 * Get all global MIB counter
267 * Input:
268 * None
269 * Output:
270 * pGlobal_cntrs - global counter structure.
271 * Return:
272 * RT_ERR_OK - OK
273 * RT_ERR_FAILED - Failed
274 * RT_ERR_SMI - SMI access error
275 * RT_ERR_INPUT - Invalid input parameters.
276 * Note:
277 * Get all global MIB counter by index definition.
278 */
279 extern rtk_api_ret_t rtk_stat_global_getAll(rtk_stat_global_cntr_t *pGlobal_cntrs);
280
281 /* Function Name:
282 * rtk_stat_port_get
283 * Description:
284 * Get per port MIB counter by index
285 * Input:
286 * port - port id.
287 * cntr_idx - port counter index.
288 * Output:
289 * pCntr - MIB retrived counter.
290 * Return:
291 * RT_ERR_OK - OK
292 * RT_ERR_FAILED - Failed
293 * RT_ERR_SMI - SMI access error
294 * Note:
295 * Get per port MIB counter by index definition.
296 */
297 extern rtk_api_ret_t rtk_stat_port_get(rtk_port_t port, rtk_stat_port_type_t cntr_idx, rtk_stat_counter_t *pCntr);
298
299 /* Function Name:
300 * rtk_stat_port_getAll
301 * Description:
302 * Get all counters of one specified port in the specified device.
303 * Input:
304 * port - port id.
305 * Output:
306 * pPort_cntrs - buffer pointer of counter value.
307 * Return:
308 * RT_ERR_OK - OK
309 * RT_ERR_FAILED - Failed
310 * RT_ERR_SMI - SMI access error
311 * RT_ERR_INPUT - Invalid input parameters.
312 * Note:
313 * Get all MIB counters of one port.
314 */
315 extern rtk_api_ret_t rtk_stat_port_getAll(rtk_port_t port, rtk_stat_port_cntr_t *pPort_cntrs);
316
317 /* Function Name:
318 * rtk_stat_logging_counterCfg_set
319 * Description:
320 * Set the type and mode of Logging Counter
321 * Input:
322 * idx - The index of Logging Counter. Should be even number only.(0,2,4,6,8.....30)
323 * mode - 32 bits or 64 bits mode
324 * type - Packet counter or byte counter
325 * Output:
326 * None.
327 * Return:
328 * RT_ERR_OK - OK
329 * RT_ERR_OUT_OF_RANGE - Out of range.
330 * RT_ERR_FAILED - Failed
331 * RT_ERR_SMI - SMI access error
332 * RT_ERR_INPUT - Invalid input parameters.
333 * Note:
334 * Set the type and mode of Logging Counter.
335 */
336 extern rtk_api_ret_t rtk_stat_logging_counterCfg_set(rtk_uint32 idx, rtk_logging_counter_mode_t mode, rtk_logging_counter_type_t type);
337
338 /* Function Name:
339 * rtk_stat_logging_counterCfg_get
340 * Description:
341 * Get the type and mode of Logging Counter
342 * Input:
343 * idx - The index of Logging Counter. Should be even number only.(0,2,4,6,8.....30)
344 * Output:
345 * pMode - 32 bits or 64 bits mode
346 * pType - Packet counter or byte counter
347 * Return:
348 * RT_ERR_OK - OK
349 * RT_ERR_OUT_OF_RANGE - Out of range.
350 * RT_ERR_FAILED - Failed
351 * RT_ERR_NULL_POINTER - NULL Pointer
352 * RT_ERR_SMI - SMI access error
353 * RT_ERR_INPUT - Invalid input parameters.
354 * Note:
355 * Get the type and mode of Logging Counter.
356 */
357 extern rtk_api_ret_t rtk_stat_logging_counterCfg_get(rtk_uint32 idx, rtk_logging_counter_mode_t *pMode, rtk_logging_counter_type_t *pType);
358
359 /* Function Name:
360 * rtk_stat_logging_counter_reset
361 * Description:
362 * Reset Logging Counter
363 * Input:
364 * idx - The index of Logging Counter. (0~31)
365 * Output:
366 * None.
367 * Return:
368 * RT_ERR_OK - OK
369 * RT_ERR_OUT_OF_RANGE - Out of range.
370 * RT_ERR_FAILED - Failed
371 * RT_ERR_SMI - SMI access error
372 * Note:
373 * Reset Logging Counter.
374 */
375 extern rtk_api_ret_t rtk_stat_logging_counter_reset(rtk_uint32 idx);
376
377 /* Function Name:
378 * rtk_stat_logging_counter_get
379 * Description:
380 * Get Logging Counter
381 * Input:
382 * idx - The index of Logging Counter. (0~31)
383 * Output:
384 * pCnt - Logging counter value
385 * Return:
386 * RT_ERR_OK - OK
387 * RT_ERR_OUT_OF_RANGE - Out of range.
388 * RT_ERR_FAILED - Failed
389 * RT_ERR_SMI - SMI access error
390 * Note:
391 * Get Logging Counter.
392 */
393 extern rtk_api_ret_t rtk_stat_logging_counter_get(rtk_uint32 idx, rtk_uint32 *pCnt);
394
395 /* Function Name:
396 * rtk_stat_lengthMode_set
397 * Description:
398 * Set Legnth mode.
399 * Input:
400 * txMode - The length counting mode
401 * rxMode - The length counting mode
402 * Output:
403 * None.
404 * Return:
405 * RT_ERR_OK - OK
406 * RT_ERR_INPUT - Out of range.
407 * RT_ERR_FAILED - Failed
408 * RT_ERR_SMI - SMI access error
409 * Note:
410 *
411 */
412 extern rtk_api_ret_t rtk_stat_lengthMode_set(rtk_stat_lengthMode_t txMode, rtk_stat_lengthMode_t rxMode);
413
414 /* Function Name:
415 * rtk_stat_lengthMode_get
416 * Description:
417 * Get Legnth mode.
418 * Input:
419 * None.
420 * Output:
421 * pTxMode - The length counting mode
422 * pRxMode - The length counting mode
423 * Return:
424 * RT_ERR_OK - OK
425 * RT_ERR_INPUT - Out of range.
426 * RT_ERR_FAILED - Failed
427 * RT_ERR_SMI - SMI access error
428 * Note:
429 */
430 extern rtk_api_ret_t rtk_stat_lengthMode_get(rtk_stat_lengthMode_t *pTxMode, rtk_stat_lengthMode_t *pRxMode);
431
432 #endif /* __RTK_API_STAT_H__ */
433