developer | 69bcd59 | 2024-03-25 14:26:39 +0800 | [diff] [blame^] | 1 | /* 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 | */ |
| 20 | typedef 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 | |
| 46 | typedef 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 | */ |
| 107 | AIR_ERROR_NO_T |
| 108 | air_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 | */ |
| 129 | AIR_ERROR_NO_T |
| 130 | air_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 | */ |
| 151 | AIR_ERROR_NO_T |
| 152 | air_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 | */ |
| 173 | AIR_ERROR_NO_T |
| 174 | air_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 | */ |
| 215 | AIR_ERROR_NO_T |
| 216 | air_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 | |
| 222 | AIR_ERROR_NO_T |
| 223 | air_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 | */ |
| 244 | AIR_ERROR_NO_T |
| 245 | air_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 */ |