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 MIB module high-layer API defination
16 #ifndef __RTK_API_STAT_H__
17 #define __RTK_API_STAT_H__
20 * Data Type Declaration
22 typedef rtk_u_long_t rtk_stat_counter_t
;
24 /* global statistic counter structure */
25 typedef struct rtk_stat_global_cntr_s
27 rtk_uint64 dot1dTpLearnedEntryDiscards
;
28 }rtk_stat_global_cntr_t
;
30 typedef enum rtk_stat_global_type_e
32 DOT1D_TP_LEARNED_ENTRY_DISCARDS_INDEX
= 58,
34 }rtk_stat_global_type_t
;
36 /* port statistic counter structure */
37 typedef struct rtk_stat_port_cntr_s
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
;
103 /* port statistic counter index */
104 typedef enum rtk_stat_port_type_e
107 STAT_Dot3StatsFCSErrors
,
108 STAT_Dot3StatsSymbolErrors
,
109 STAT_Dot3InPauseFrames
,
110 STAT_Dot3ControlInUnknownOpcodes
,
111 STAT_EtherStatsFragments
,
112 STAT_EtherStatsJabbers
,
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
,
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
,
137 STAT_IfOutMulticastPkts
,
138 STAT_IfOutBroadcastPkts
,
142 STAT_InMldChecksumError
,
143 STAT_InIgmpChecksumError
,
144 STAT_InMldSpecificQuery
,
145 STAT_InMldGeneralQuery
,
146 STAT_InIgmpSpecificQuery
,
147 STAT_InIgmpGeneralQuery
,
149 STAT_InIgmpInterfaceLeaves
,
150 STAT_InIgmpJoinsSuccess
,
151 STAT_InIgmpJoinsFail
,
152 STAT_InMldJoinsSuccess
,
154 STAT_InReportSuppressionDrop
,
155 STAT_InLeaveSuppressionDrop
,
158 STAT_OutIgmpGeneralQuery
,
159 STAT_OutIgmpSpecificQuery
,
162 STAT_OutMldGeneralQuery
,
163 STAT_OutMldSpecificQuery
,
164 STAT_InKnownMulticastPkts
,
165 STAT_IfInMulticastPkts
,
166 STAT_IfInBroadcastPkts
,
169 }rtk_stat_port_type_t
;
171 typedef enum rtk_logging_counter_mode_e
173 LOGGING_MODE_32BIT
= 0,
176 }rtk_logging_counter_mode_t
;
178 typedef enum rtk_logging_counter_type_e
180 LOGGING_TYPE_PACKET
= 0,
183 }rtk_logging_counter_type_t
;
185 typedef enum rtk_stat_lengthMode_e
187 LENGTH_MODE_EXC_TAG
= 0,
190 }rtk_stat_lengthMode_t
;
195 * rtk_stat_global_reset
197 * Reset global MIB counter.
204 * RT_ERR_FAILED - Failed
205 * RT_ERR_SMI - SMI access error
207 * Reset MIB counter of ports. API will use global reset while port mask is all-ports.
209 extern rtk_api_ret_t
rtk_stat_global_reset(void);
212 * rtk_stat_port_reset
214 * Reset per port MIB counter by port.
221 * RT_ERR_FAILED - Failed
222 * RT_ERR_SMI - SMI access error
226 extern rtk_api_ret_t
rtk_stat_port_reset(rtk_port_t port
);
229 * rtk_stat_queueManage_reset
231 * Reset queue manage MIB counter.
238 * RT_ERR_FAILED - Failed
239 * RT_ERR_SMI - SMI access error
243 extern rtk_api_ret_t
rtk_stat_queueManage_reset(void);
246 * rtk_stat_global_get
248 * Get global MIB counter
250 * cntr_idx - global counter index.
252 * pCntr - global counter value.
255 * RT_ERR_FAILED - Failed
256 * RT_ERR_SMI - SMI access error
257 * RT_ERR_INPUT - Invalid input parameters.
259 * Get global MIB counter by index definition.
261 extern rtk_api_ret_t
rtk_stat_global_get(rtk_stat_global_type_t cntr_idx
, rtk_stat_counter_t
*pCntr
);
264 * rtk_stat_global_getAll
266 * Get all global MIB counter
270 * pGlobal_cntrs - global counter structure.
273 * RT_ERR_FAILED - Failed
274 * RT_ERR_SMI - SMI access error
275 * RT_ERR_INPUT - Invalid input parameters.
277 * Get all global MIB counter by index definition.
279 extern rtk_api_ret_t
rtk_stat_global_getAll(rtk_stat_global_cntr_t
*pGlobal_cntrs
);
284 * Get per port MIB counter by index
287 * cntr_idx - port counter index.
289 * pCntr - MIB retrived counter.
292 * RT_ERR_FAILED - Failed
293 * RT_ERR_SMI - SMI access error
295 * Get per port MIB counter by index definition.
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
);
300 * rtk_stat_port_getAll
302 * Get all counters of one specified port in the specified device.
306 * pPort_cntrs - buffer pointer of counter value.
309 * RT_ERR_FAILED - Failed
310 * RT_ERR_SMI - SMI access error
311 * RT_ERR_INPUT - Invalid input parameters.
313 * Get all MIB counters of one port.
315 extern rtk_api_ret_t
rtk_stat_port_getAll(rtk_port_t port
, rtk_stat_port_cntr_t
*pPort_cntrs
);
318 * rtk_stat_logging_counterCfg_set
320 * Set the type and mode of Logging Counter
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
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.
334 * Set the type and mode of Logging Counter.
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
);
339 * rtk_stat_logging_counterCfg_get
341 * Get the type and mode of Logging Counter
343 * idx - The index of Logging Counter. Should be even number only.(0,2,4,6,8.....30)
345 * pMode - 32 bits or 64 bits mode
346 * pType - Packet counter or byte counter
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.
355 * Get the type and mode of Logging Counter.
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
);
360 * rtk_stat_logging_counter_reset
362 * Reset Logging Counter
364 * idx - The index of Logging Counter. (0~31)
369 * RT_ERR_OUT_OF_RANGE - Out of range.
370 * RT_ERR_FAILED - Failed
371 * RT_ERR_SMI - SMI access error
373 * Reset Logging Counter.
375 extern rtk_api_ret_t
rtk_stat_logging_counter_reset(rtk_uint32 idx
);
378 * rtk_stat_logging_counter_get
380 * Get Logging Counter
382 * idx - The index of Logging Counter. (0~31)
384 * pCnt - Logging counter value
387 * RT_ERR_OUT_OF_RANGE - Out of range.
388 * RT_ERR_FAILED - Failed
389 * RT_ERR_SMI - SMI access error
391 * Get Logging Counter.
393 extern rtk_api_ret_t
rtk_stat_logging_counter_get(rtk_uint32 idx
, rtk_uint32
*pCnt
);
396 * rtk_stat_lengthMode_set
400 * txMode - The length counting mode
401 * rxMode - The length counting mode
406 * RT_ERR_INPUT - Out of range.
407 * RT_ERR_FAILED - Failed
408 * RT_ERR_SMI - SMI access error
412 extern rtk_api_ret_t
rtk_stat_lengthMode_set(rtk_stat_lengthMode_t txMode
, rtk_stat_lengthMode_t rxMode
);
415 * rtk_stat_lengthMode_get
421 * pTxMode - The length counting mode
422 * pRxMode - The length counting mode
425 * RT_ERR_INPUT - Out of range.
426 * RT_ERR_FAILED - Failed
427 * RT_ERR_SMI - SMI access error
430 extern rtk_api_ret_t
rtk_stat_lengthMode_get(rtk_stat_lengthMode_t
*pTxMode
, rtk_stat_lengthMode_t
*pRxMode
);
432 #endif /* __RTK_API_STAT_H__ */