blob: 6ce03238f9259d21bd43a314069208e44d381d1a [file] [log] [blame]
developer69bcd592024-03-25 14:26:39 +08001/* FILE NAME: air_mib.h
2 * PURPOSE:
3 * Define the MIB counter function in AIR SDK.
4 *
5 * NOTES:
6 * None
7 */
8
9#ifndef AIR_MIB_H
10#define AIR_MIB_H
11
12/* INCLUDE FILE DECLARATIONS
13*/
14#define MIB_ALL_ITEM 0xFFFFFFFF
15#define AIR_MIB_MAX_ACL_EVENT_NUM (64)
16#define CSR_ACL_MIB_SEL_OFFSET (4)
17
18/* NAMING CONSTANT DECLARATIONS
19*/
20typedef struct AIR_MIB_CNT_TX_S
21{
22 UI32_T TDPC; /* TX Drop Packet */
23 UI32_T TCRC; /* TX CRC Packet */
24 UI32_T TUPC; /* TX Unicast Packet */
25 UI32_T TMPC; /* TX Multicast Packet */
26 UI32_T TBPC; /* TX Broadcast Packet */
27 UI32_T TCEC; /* TX Collision Event Count */
28 UI32_T TSCEC; /* TX Single Collision Event Count */
29 UI32_T TMCEC; /* TX Multiple Conllision Event Count */
30 UI32_T TDEC; /* TX Deferred Event Count */
31 UI32_T TLCEC; /* TX Late Collision Event Count */
32 UI32_T TXCEC; /* TX Excessive Collision Event Count */
33 UI32_T TPPC; /* TX Pause Packet */
34 UI32_T TL64PC; /* TX Packet Length 64 bytes */
35 UI32_T TL65PC; /* TX Packet Length 65 ~ 127 bytes */
36 UI32_T TL128PC; /* TX Packet Length 128 ~ 255 bytes */
37 UI32_T TL256PC; /* TX Packet Length 256 ~ 511 bytes */
38 UI32_T TL512PC; /* TX Packet Length 512 ~ 1023 bytes */
39 UI32_T TL1024PC; /* TX Packet Length 1024 ~ 1518 bytes */
40 UI32_T TL1519PC; /* TX Packet Length 1519 ~ max bytes */
41 UI32_T TODPC; /* TX Oversize Drop Packet */
42 UI64_T TOC; /* TX Octets good or bad packtes determined by TX_OCT_CNT_GOOD or TX_OCT_CNT_BAD(64 bit-width)*/
43 UI64_T TOC2; /* TX Octets bad packets (64 bit-width)*/
44}AIR_MIB_CNT_TX_T;
45
46typedef struct AIR_MIB_CNT_RX_S
47{
48 UI32_T RDPC; /* RX Drop Packet */
49 UI32_T RFPC; /* RX filtering Packet */
50 UI32_T RUPC; /* RX Unicast Packet */
51 UI32_T RMPC; /* RX Multicast Packet */
52 UI32_T RBPC; /* RX Broadcast Packet */
53 UI32_T RAEPC; /* RX Alignment Error Packet */
54 UI32_T RCEPC; /* RX CRC Packet */
55 UI32_T RUSPC; /* RX Undersize Packet */
56 UI32_T RFEPC; /* RX Fragment Error Packet */
57 UI32_T ROSPC; /* RX Oversize Packet */
58 UI32_T RJEPC; /* RX Jabber Error Packet */
59 UI32_T RPPC; /* RX Pause Packet */
60 UI32_T RL64PC; /* RX Packet Length 64 bytes */
61 UI32_T RL65PC; /* RX Packet Length 65 ~ 127 bytes */
62 UI32_T RL128PC; /* RX Packet Length 128 ~ 255 bytes */
63 UI32_T RL256PC; /* RX Packet Length 256 ~ 511 bytes */
64 UI32_T RL512PC; /* RX Packet Length 512 ~ 1023 bytes */
65 UI32_T RL1024PC; /* RX Packet Length 1024 ~ 1518 bytes */
66 UI32_T RL1519PC; /* RX Packet Length 1519 ~ max bytes */
67 UI32_T RCDPC; /* RX_CTRL Drop Packet */
68 UI32_T RIDPC; /* RX Ingress Drop Packet */
69 UI32_T RADPC; /* RX ARL Drop Packet */
70 UI32_T FCDPC; /* FLow Control Drop Packet */
71 UI32_T WRDPC; /* WRED Drop Packtet */
72 UI32_T MRDPC; /* Mirror Drop Packet */
73 UI32_T SFSPC; /* RX sFlow Sampling Packet */
74 UI32_T SFTPC; /* Rx sFlow Total Packet */
75 UI32_T RXC_DPC; /* Port Control Drop Packet */
76 UI64_T ROC; /* RX Octets good or bad packtes determined by TX_OCT_CNT_GOOD or TX_OCT_CNT_BAD (64 bit-width)*/
77 UI64_T ROC2; /* RX Octets bad packets (64 bit-width)*/
78
79}AIR_MIB_CNT_RX_T;
80
81/* MACRO FUNCTION DECLARATIONS
82*/
83
84/* DATA TYPE DECLARATIONS
85*/
86
87/* EXPORTED SUBPROGRAM SPECIFICATIONS
88*/
89/* FUNCTION NAME: air_mib_setEnable
90 * PURPOSE:
91 * Enable or Disable mib count fucntion.
92 *
93 * INPUT:
94 * unit -- Device ID
95 * mib_en -- enable or disable mib_en
96 *
97 * OUTPUT:
98 * None
99 *
100 * RETURN:
101 * AIR_E_OK
102 * AIR_E_BAD_PARAMETER
103 *
104 * NOTES:
105 * None
106 */
107AIR_ERROR_NO_T
108air_mib_setEnable(
109 const UI32_T unit,
110 const BOOL_T mib_en);
111/* FUNCTION NAME: air_mib_getEnable
112 * PURPOSE:
113 * Enable or Disable mib count fucntion.
114 *
115 * INPUT:
116 * unit -- Device ID
117 *
118 * OUTPUT:
119 * mib_en -- enable or disable mib_en
120
121 *
122 * RETURN:
123 * AIR_E_OK
124 * AIR_E_BAD_PARAMETER
125 *
126 * NOTES:
127 * None
128 */
129AIR_ERROR_NO_T
130air_mib_getEnable(
131 const UI32_T unit,
132 BOOL_T *mib_en);
133
134/* FUNCTION NAME: air_mib_clear
135 * PURPOSE:
136 * Clear all counters of all MIB counters.
137 *
138 * INPUT:
139 * unit -- Device ID
140 *
141 * OUTPUT:
142 * None
143 *
144 * RETURN:
145 * AIR_E_OK
146 * AIR_E_BAD_PARAMETER
147 *
148 * NOTES:
149 * None
150 */
151AIR_ERROR_NO_T
152air_mib_clear(
153 const UI32_T unit);
154
155/* FUNCTION NAME: air_mib_clear_by_port
156 * PURPOSE:
157 * Clear all counters of all MIB counters.
158 *
159 * INPUT:
160 * unit -- Device ID
161 * port -- clear port number
162 *
163 * OUTPUT:
164 * None
165 *
166 * RETURN:
167 * AIR_E_OK
168 * AIR_E_BAD_PARAMETER
169 *
170 * NOTES:
171 * None
172 */
173AIR_ERROR_NO_T
174air_mib_clear_by_port(
175 const UI32_T unit,
176 const UI32_T port);
177
178/* FUNCTION NAME: air_mib_clearAclEvent
179 * PURPOSE:
180 * Clear all counters of ACL event
181 *
182 * INPUT:
183 * unit -- Device ID
184 *
185 * OUTPUT:
186 * None
187 *
188 * RETURN:
189 * AIR_E_OK
190 * AIR_E_BAD_PARAMETER
191 *
192 * NOTES:
193 * None
194 */
195
196/* FUNCTION NAME: air_mib_get
197 * PURPOSE:
198 * Get the structure of MIB counter for a specific port.
199 *
200 * INPUT:
201 * unit -- Device ID
202 * port -- Index of port number
203 *
204 * OUTPUT:
205 * ptr_rx_mib -- MIB Counters of Rx Event
206 * ptr_tx_mib -- MIB Counters of Tx Event
207 *
208 * RETURN:
209 * AIR_E_OK
210 * AIR_E_BAD_PARAMETER
211 *
212 * NOTES:
213 * None
214 */
215AIR_ERROR_NO_T
216air_mib_get(
217 const UI32_T unit,
218 const UI32_T port,
219 AIR_MIB_CNT_RX_T *ptr_rx_mib,
220 AIR_MIB_CNT_TX_T *ptr_tx_mib);
221
222AIR_ERROR_NO_T
223air_mib_clearAclEvent(
224 const UI32_T unit);
225
226/* FUNCTION NAME: air_mib_getAclEvent
227 * PURPOSE:
228 * Get the total number of ACL event occurred.
229 *
230 * INPUT:
231 * unit -- Device ID
232 * idx -- Index of ACL event
233 *
234 * OUTPUT:
235 * ptr_cnt -- The total number of ACL event occured
236 *
237 * RETURN:
238 * AIR_E_OK
239 * AIR_E_BAD_PARAMETER
240 *
241 * NOTES:
242 * None
243 */
244AIR_ERROR_NO_T
245air_mib_getAclEvent(
246 const UI32_T unit,
247 const UI32_T idx,
248 UI32_T *ptr_cnt);
249
250#endif /* End of AIR_MIB_H */