blob: 009f3a4d29f600fc5819747dde4724933cff4c77 [file] [log] [blame]
Forest Bond5449c682009-04-25 10:30:44 -04001/*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * File: mib.h
20 *
21 * Purpose: Implement MIB Data Structure
22 *
23 * Author: Tevin Chen
24 *
25 * Date: May 21, 1996
26 *
27 */
28
29#ifndef __MIB_H__
30#define __MIB_H__
31
Forest Bond5449c682009-04-25 10:30:44 -040032#include "ttype.h"
Forest Bond5449c682009-04-25 10:30:44 -040033#include "tether.h"
Forest Bond5449c682009-04-25 10:30:44 -040034#include "desc.h"
Forest Bond5449c682009-04-25 10:30:44 -040035
36/*--------------------- Export Definitions -------------------------*/
37//
38// 802.11 counter
39//
40
41typedef struct tagSDot11Counters {
Charles Clémente3fd16d2010-06-02 09:52:02 -070042 unsigned long Length; // Length of structure
Charles Clémentb2e876b2010-06-02 09:52:03 -070043 unsigned long long TransmittedFragmentCount;
44 unsigned long long MulticastTransmittedFrameCount;
45 unsigned long long FailedCount;
46 unsigned long long RetryCount;
47 unsigned long long MultipleRetryCount;
48 unsigned long long RTSSuccessCount;
49 unsigned long long RTSFailureCount;
50 unsigned long long ACKFailureCount;
51 unsigned long long FrameDuplicateCount;
52 unsigned long long ReceivedFragmentCount;
53 unsigned long long MulticastReceivedFrameCount;
54 unsigned long long FCSErrorCount;
55 unsigned long long TKIPLocalMICFailures;
56 unsigned long long TKIPRemoteMICFailures;
57 unsigned long long TKIPICVErrors;
58 unsigned long long TKIPCounterMeasuresInvoked;
59 unsigned long long TKIPReplays;
60 unsigned long long CCMPFormatErrors;
61 unsigned long long CCMPReplays;
62 unsigned long long CCMPDecryptErrors;
63 unsigned long long FourWayHandshakeFailures;
64// unsigned long long WEPUndecryptableCount;
65// unsigned long long WEPICVErrorCount;
66// unsigned long long DecryptSuccessCount;
67// unsigned long long DecryptFailureCount;
Jim Lieba8848472009-08-12 14:54:07 -070068} SDot11Counters, *PSDot11Counters;
Forest Bond5449c682009-04-25 10:30:44 -040069
70
71//
72// MIB2 counter
73//
74typedef struct tagSMib2Counter {
Charles Clémentb83cc2ed2010-06-01 12:38:57 -070075 long ifIndex;
Jim Lieba8848472009-08-12 14:54:07 -070076 char ifDescr[256]; // max size 255 plus zero ending
Forest Bond5449c682009-04-25 10:30:44 -040077 // e.g. "interface 1"
Charles Clémentb83cc2ed2010-06-01 12:38:57 -070078 long ifType;
79 long ifMtu;
Charles Clément0f4c60d2010-06-24 11:02:25 -070080 unsigned long ifSpeed;
Charles Clément3fc9b582010-06-24 11:02:27 -070081 unsigned char ifPhysAddress[ETH_ALEN];
Charles Clémentb83cc2ed2010-06-01 12:38:57 -070082 long ifAdminStatus;
83 long ifOperStatus;
Charles Clément0f4c60d2010-06-24 11:02:25 -070084 unsigned long ifLastChange;
85 unsigned long ifInOctets;
86 unsigned long ifInUcastPkts;
87 unsigned long ifInNUcastPkts;
88 unsigned long ifInDiscards;
89 unsigned long ifInErrors;
90 unsigned long ifInUnknownProtos;
91 unsigned long ifOutOctets;
92 unsigned long ifOutUcastPkts;
93 unsigned long ifOutNUcastPkts;
94 unsigned long ifOutDiscards;
95 unsigned long ifOutErrors;
96 unsigned long ifOutQLen;
97 unsigned long ifSpecific;
Jim Lieba8848472009-08-12 14:54:07 -070098} SMib2Counter, *PSMib2Counter;
Forest Bond5449c682009-04-25 10:30:44 -040099
100// Value in the ifType entry
101//#define ETHERNETCSMACD 6 //
102#define WIRELESSLANIEEE80211b 6 //
103
104// Value in the ifAdminStatus/ifOperStatus entry
105#define UP 1 //
106#define DOWN 2 //
107#define TESTING 3 //
108
109
110//
111// RMON counter
112//
113typedef struct tagSRmonCounter {
Charles Clémentb83cc2ed2010-06-01 12:38:57 -0700114 long etherStatsIndex;
Charles Clément0f4c60d2010-06-24 11:02:25 -0700115 unsigned long etherStatsDataSource;
116 unsigned long etherStatsDropEvents;
117 unsigned long etherStatsOctets;
118 unsigned long etherStatsPkts;
119 unsigned long etherStatsBroadcastPkts;
120 unsigned long etherStatsMulticastPkts;
121 unsigned long etherStatsCRCAlignErrors;
122 unsigned long etherStatsUndersizePkts;
123 unsigned long etherStatsOversizePkts;
124 unsigned long etherStatsFragments;
125 unsigned long etherStatsJabbers;
126 unsigned long etherStatsCollisions;
127 unsigned long etherStatsPkt64Octets;
128 unsigned long etherStatsPkt65to127Octets;
129 unsigned long etherStatsPkt128to255Octets;
130 unsigned long etherStatsPkt256to511Octets;
131 unsigned long etherStatsPkt512to1023Octets;
132 unsigned long etherStatsPkt1024to1518Octets;
133 unsigned long etherStatsOwners;
134 unsigned long etherStatsStatus;
Jim Lieba8848472009-08-12 14:54:07 -0700135} SRmonCounter, *PSRmonCounter;
Forest Bond5449c682009-04-25 10:30:44 -0400136
137//
138// Custom counter
139//
140typedef struct tagSCustomCounters {
Charles Clémente3fd16d2010-06-02 09:52:02 -0700141 unsigned long Length;
Forest Bond5449c682009-04-25 10:30:44 -0400142
Charles Clémentb2e876b2010-06-02 09:52:03 -0700143 unsigned long long ullTsrAllOK;
Forest Bond5449c682009-04-25 10:30:44 -0400144
Charles Clémentb2e876b2010-06-02 09:52:03 -0700145 unsigned long long ullRsr11M;
146 unsigned long long ullRsr5M;
147 unsigned long long ullRsr2M;
148 unsigned long long ullRsr1M;
Forest Bond5449c682009-04-25 10:30:44 -0400149
Charles Clémentb2e876b2010-06-02 09:52:03 -0700150 unsigned long long ullRsr11MCRCOk;
151 unsigned long long ullRsr5MCRCOk;
152 unsigned long long ullRsr2MCRCOk;
153 unsigned long long ullRsr1MCRCOk;
Forest Bond5449c682009-04-25 10:30:44 -0400154
Charles Clémentb2e876b2010-06-02 09:52:03 -0700155 unsigned long long ullRsr54M;
156 unsigned long long ullRsr48M;
157 unsigned long long ullRsr36M;
158 unsigned long long ullRsr24M;
159 unsigned long long ullRsr18M;
160 unsigned long long ullRsr12M;
161 unsigned long long ullRsr9M;
162 unsigned long long ullRsr6M;
Forest Bond5449c682009-04-25 10:30:44 -0400163
Charles Clémentb2e876b2010-06-02 09:52:03 -0700164 unsigned long long ullRsr54MCRCOk;
165 unsigned long long ullRsr48MCRCOk;
166 unsigned long long ullRsr36MCRCOk;
167 unsigned long long ullRsr24MCRCOk;
168 unsigned long long ullRsr18MCRCOk;
169 unsigned long long ullRsr12MCRCOk;
170 unsigned long long ullRsr9MCRCOk;
171 unsigned long long ullRsr6MCRCOk;
Forest Bond5449c682009-04-25 10:30:44 -0400172
Jim Lieba8848472009-08-12 14:54:07 -0700173} SCustomCounters, *PSCustomCounters;
Forest Bond5449c682009-04-25 10:30:44 -0400174
175
176//
177// Custom counter
178//
179typedef struct tagSISRCounters {
Charles Clémente3fd16d2010-06-02 09:52:02 -0700180 unsigned long Length;
Forest Bond5449c682009-04-25 10:30:44 -0400181
Charles Clément0f4c60d2010-06-24 11:02:25 -0700182 unsigned long dwIsrTx0OK;
183 unsigned long dwIsrAC0TxOK;
184 unsigned long dwIsrBeaconTxOK;
185 unsigned long dwIsrRx0OK;
186 unsigned long dwIsrTBTTInt;
187 unsigned long dwIsrSTIMERInt;
188 unsigned long dwIsrWatchDog;
189 unsigned long dwIsrUnrecoverableError;
190 unsigned long dwIsrSoftInterrupt;
191 unsigned long dwIsrMIBNearfull;
192 unsigned long dwIsrRxNoBuf;
Forest Bond5449c682009-04-25 10:30:44 -0400193
Charles Clément0f4c60d2010-06-24 11:02:25 -0700194 unsigned long dwIsrUnknown; // unknown interrupt count
Forest Bond5449c682009-04-25 10:30:44 -0400195
Charles Clément0f4c60d2010-06-24 11:02:25 -0700196 unsigned long dwIsrRx1OK;
197 unsigned long dwIsrATIMTxOK;
198 unsigned long dwIsrSYNCTxOK;
199 unsigned long dwIsrCFPEnd;
200 unsigned long dwIsrATIMEnd;
201 unsigned long dwIsrSYNCFlushOK;
202 unsigned long dwIsrSTIMER1Int;
Forest Bond5449c682009-04-25 10:30:44 -0400203 /////////////////////////////////////
Jim Lieba8848472009-08-12 14:54:07 -0700204} SISRCounters, *PSISRCounters;
Forest Bond5449c682009-04-25 10:30:44 -0400205
206
207// Value in the etherStatsStatus entry
208#define VALID 1 //
209#define CREATE_REQUEST 2 //
210#define UNDER_CREATION 3 //
211#define INVALID 4 //
212
213//#define MAX_RATE 12
214//
215// statistic counter
216//
217typedef struct tagSStatCounter {
218 //
219 // ISR status count
220 //
221
222
223 // RSR status count
224 //
Charles Clément0f4c60d2010-06-24 11:02:25 -0700225 unsigned long dwRsrFrmAlgnErr;
226 unsigned long dwRsrErr;
227 unsigned long dwRsrCRCErr;
228 unsigned long dwRsrCRCOk;
229 unsigned long dwRsrBSSIDOk;
230 unsigned long dwRsrADDROk;
231 unsigned long dwRsrBCNSSIDOk;
232 unsigned long dwRsrLENErr;
233 unsigned long dwRsrTYPErr;
Forest Bond5449c682009-04-25 10:30:44 -0400234
Charles Clément0f4c60d2010-06-24 11:02:25 -0700235 unsigned long dwNewRsrDECRYPTOK;
236 unsigned long dwNewRsrCFP;
237 unsigned long dwNewRsrUTSF;
238 unsigned long dwNewRsrHITAID;
239 unsigned long dwNewRsrHITAID0;
Forest Bond5449c682009-04-25 10:30:44 -0400240
Charles Clément0f4c60d2010-06-24 11:02:25 -0700241 unsigned long dwRsrLong;
242 unsigned long dwRsrRunt;
Forest Bond5449c682009-04-25 10:30:44 -0400243
Charles Clément0f4c60d2010-06-24 11:02:25 -0700244 unsigned long dwRsrRxControl;
245 unsigned long dwRsrRxData;
246 unsigned long dwRsrRxManage;
Forest Bond5449c682009-04-25 10:30:44 -0400247
Charles Clément0f4c60d2010-06-24 11:02:25 -0700248 unsigned long dwRsrRxPacket;
249 unsigned long dwRsrRxOctet;
250 unsigned long dwRsrBroadcast;
251 unsigned long dwRsrMulticast;
252 unsigned long dwRsrDirected;
Forest Bond5449c682009-04-25 10:30:44 -0400253 // 64-bit OID
Charles Clémentb2e876b2010-06-02 09:52:03 -0700254 unsigned long long ullRsrOK;
Forest Bond5449c682009-04-25 10:30:44 -0400255
256 // for some optional OIDs (64 bits) and DMI support
Charles Clémentb2e876b2010-06-02 09:52:03 -0700257 unsigned long long ullRxBroadcastBytes;
258 unsigned long long ullRxMulticastBytes;
259 unsigned long long ullRxDirectedBytes;
260 unsigned long long ullRxBroadcastFrames;
261 unsigned long long ullRxMulticastFrames;
262 unsigned long long ullRxDirectedFrames;
Forest Bond5449c682009-04-25 10:30:44 -0400263
Charles Clément0f4c60d2010-06-24 11:02:25 -0700264 unsigned long dwRsrRxFragment;
265 unsigned long dwRsrRxFrmLen64;
266 unsigned long dwRsrRxFrmLen65_127;
267 unsigned long dwRsrRxFrmLen128_255;
268 unsigned long dwRsrRxFrmLen256_511;
269 unsigned long dwRsrRxFrmLen512_1023;
270 unsigned long dwRsrRxFrmLen1024_1518;
Forest Bond5449c682009-04-25 10:30:44 -0400271
272 // TSR status count
273 //
Charles Clément0f4c60d2010-06-24 11:02:25 -0700274 unsigned long dwTsrTotalRetry[TYPE_MAXTD]; // total collision retry count
275 unsigned long dwTsrOnceRetry[TYPE_MAXTD]; // this packet only occur one collision
276 unsigned long dwTsrMoreThanOnceRetry[TYPE_MAXTD]; // this packet occur more than one collision
277 unsigned long dwTsrRetry[TYPE_MAXTD]; // this packet has ever occur collision,
Forest Bond5449c682009-04-25 10:30:44 -0400278 // that is (dwTsrOnceCollision0 + dwTsrMoreThanOnceCollision0)
Charles Clément0f4c60d2010-06-24 11:02:25 -0700279 unsigned long dwTsrACKData[TYPE_MAXTD];
280 unsigned long dwTsrErr[TYPE_MAXTD];
281 unsigned long dwAllTsrOK[TYPE_MAXTD];
282 unsigned long dwTsrRetryTimeout[TYPE_MAXTD];
283 unsigned long dwTsrTransmitTimeout[TYPE_MAXTD];
Forest Bond5449c682009-04-25 10:30:44 -0400284
Charles Clément0f4c60d2010-06-24 11:02:25 -0700285 unsigned long dwTsrTxPacket[TYPE_MAXTD];
286 unsigned long dwTsrTxOctet[TYPE_MAXTD];
287 unsigned long dwTsrBroadcast[TYPE_MAXTD];
288 unsigned long dwTsrMulticast[TYPE_MAXTD];
289 unsigned long dwTsrDirected[TYPE_MAXTD];
Forest Bond5449c682009-04-25 10:30:44 -0400290
291 // RD/TD count
Charles Clément0f4c60d2010-06-24 11:02:25 -0700292 unsigned long dwCntRxFrmLength;
293 unsigned long dwCntTxBufLength;
Forest Bond5449c682009-04-25 10:30:44 -0400294
Charles Clément3fc9b582010-06-24 11:02:27 -0700295 unsigned char abyCntRxPattern[16];
296 unsigned char abyCntTxPattern[16];
Forest Bond5449c682009-04-25 10:30:44 -0400297
298
299
300 // Software check....
Charles Clément0f4c60d2010-06-24 11:02:25 -0700301 unsigned long dwCntRxDataErr; // rx buffer data software compare CRC err count
302 unsigned long dwCntDecryptErr; // rx buffer data software compare CRC err count
303 unsigned long dwCntRxICVErr; // rx buffer data software compare CRC err count
Charles Clémentb6e95cd2010-06-02 09:52:01 -0700304 unsigned int idxRxErrorDesc[TYPE_MAXRD]; // index for rx data error RD
Forest Bond5449c682009-04-25 10:30:44 -0400305
306 // 64-bit OID
Charles Clémentb2e876b2010-06-02 09:52:03 -0700307 unsigned long long ullTsrOK[TYPE_MAXTD];
Forest Bond5449c682009-04-25 10:30:44 -0400308
309 // for some optional OIDs (64 bits) and DMI support
Charles Clémentb2e876b2010-06-02 09:52:03 -0700310 unsigned long long ullTxBroadcastFrames[TYPE_MAXTD];
311 unsigned long long ullTxMulticastFrames[TYPE_MAXTD];
312 unsigned long long ullTxDirectedFrames[TYPE_MAXTD];
313 unsigned long long ullTxBroadcastBytes[TYPE_MAXTD];
314 unsigned long long ullTxMulticastBytes[TYPE_MAXTD];
315 unsigned long long ullTxDirectedBytes[TYPE_MAXTD];
Forest Bond5449c682009-04-25 10:30:44 -0400316
Charles Clément0f4c60d2010-06-24 11:02:25 -0700317// unsigned long dwTxRetryCount[8];
Forest Bond5449c682009-04-25 10:30:44 -0400318 //
319 // ISR status count
320 //
321 SISRCounters ISRStat;
322
323 SCustomCounters CustomStat;
324
325 #ifdef Calcu_LinkQual
326 //Tx count:
Charles Clémente3fd16d2010-06-02 09:52:02 -0700327 unsigned long TxNoRetryOkCount; //success tx no retry !
328 unsigned long TxRetryOkCount; //success tx but retry !
329 unsigned long TxFailCount; //fail tx ?
Forest Bond5449c682009-04-25 10:30:44 -0400330 //Rx count:
Charles Clémente3fd16d2010-06-02 09:52:02 -0700331 unsigned long RxOkCnt; //success rx !
332 unsigned long RxFcsErrCnt; //fail rx ?
Forest Bond5449c682009-04-25 10:30:44 -0400333 //statistic
Charles Clémente3fd16d2010-06-02 09:52:02 -0700334 unsigned long SignalStren;
335 unsigned long LinkQuality;
Forest Bond5449c682009-04-25 10:30:44 -0400336 #endif
Jim Lieba8848472009-08-12 14:54:07 -0700337} SStatCounter, *PSStatCounter;
Forest Bond5449c682009-04-25 10:30:44 -0400338
339/*--------------------- Export Classes ----------------------------*/
340
341/*--------------------- Export Variables --------------------------*/
342
343/*--------------------- Export Functions --------------------------*/
Forest Bond5449c682009-04-25 10:30:44 -0400344
345void STAvClearAllCounter(PSStatCounter pStatistic);
346
Charles Clément0f4c60d2010-06-24 11:02:25 -0700347void STAvUpdateIsrStatCounter(PSStatCounter pStatistic, unsigned long dwIsr);
Forest Bond5449c682009-04-25 10:30:44 -0400348
349void STAvUpdateRDStatCounter(PSStatCounter pStatistic,
Charles Clément3fc9b582010-06-24 11:02:27 -0700350 unsigned char byRSR, unsigned char byNewRSR, unsigned char byRxRate,
Charles Clément2989e962010-06-05 15:13:47 -0700351 unsigned char *pbyBuffer, unsigned int cbFrameLength);
Forest Bond5449c682009-04-25 10:30:44 -0400352
353void STAvUpdateRDStatCounterEx(PSStatCounter pStatistic,
Charles Clément3fc9b582010-06-24 11:02:27 -0700354 unsigned char byRSR, unsigned char byNewRsr, unsigned char byRxRate,
Charles Clément2989e962010-06-05 15:13:47 -0700355 unsigned char *pbyBuffer, unsigned int cbFrameLength);
Forest Bond5449c682009-04-25 10:30:44 -0400356
Charles Clément3fc9b582010-06-24 11:02:27 -0700357void STAvUpdateTDStatCounter(PSStatCounter pStatistic, unsigned char byTSR0, unsigned char byTSR1,
Charles Clément2989e962010-06-05 15:13:47 -0700358 unsigned char *pbyBuffer, unsigned int cbFrameLength, unsigned int uIdx);
Forest Bond5449c682009-04-25 10:30:44 -0400359
360void STAvUpdateTDStatCounterEx(
361 PSStatCounter pStatistic,
Charles Clément2989e962010-06-05 15:13:47 -0700362 unsigned char *pbyBuffer,
Charles Clément0f4c60d2010-06-24 11:02:25 -0700363 unsigned long cbFrameLength
Forest Bond5449c682009-04-25 10:30:44 -0400364 );
365
366void STAvUpdate802_11Counter(
367 PSDot11Counters p802_11Counter,
368 PSStatCounter pStatistic,
Charles Clément0f4c60d2010-06-24 11:02:25 -0700369 unsigned long dwCounter
Forest Bond5449c682009-04-25 10:30:44 -0400370 );
371
372void STAvClear802_11Counter(PSDot11Counters p802_11Counter);
373
Forest Bond5449c682009-04-25 10:30:44 -0400374#endif // __MIB_H__
375
376
377