• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/staging/vt6655/
1/*
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
32#include "ttype.h"
33#include "tether.h"
34#include "desc.h"
35
36/*---------------------  Export Definitions -------------------------*/
37//
38// 802.11 counter
39//
40
41typedef struct tagSDot11Counters {
42    unsigned long Length;             // Length of structure
43    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;
68} SDot11Counters, *PSDot11Counters;
69
70
71//
72// MIB2 counter
73//
74typedef struct tagSMib2Counter {
75    long    ifIndex;
76    char    ifDescr[256];               // max size 255 plus zero ending
77                                        // e.g. "interface 1"
78    long    ifType;
79    long    ifMtu;
80    unsigned long ifSpeed;
81    unsigned char ifPhysAddress[ETH_ALEN];
82    long    ifAdminStatus;
83    long    ifOperStatus;
84    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;
98} SMib2Counter, *PSMib2Counter;
99
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 {
114    long    etherStatsIndex;
115    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;
135} SRmonCounter, *PSRmonCounter;
136
137//
138// Custom counter
139//
140typedef struct tagSCustomCounters {
141    unsigned long Length;
142
143    unsigned long long   ullTsrAllOK;
144
145    unsigned long long   ullRsr11M;
146    unsigned long long   ullRsr5M;
147    unsigned long long   ullRsr2M;
148    unsigned long long   ullRsr1M;
149
150    unsigned long long   ullRsr11MCRCOk;
151    unsigned long long   ullRsr5MCRCOk;
152    unsigned long long   ullRsr2MCRCOk;
153    unsigned long long   ullRsr1MCRCOk;
154
155    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;
163
164    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;
172
173} SCustomCounters, *PSCustomCounters;
174
175
176//
177// Custom counter
178//
179typedef struct tagSISRCounters {
180    unsigned long Length;
181
182    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;
193
194    unsigned long dwIsrUnknown;               // unknown interrupt count
195
196    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;
203    /////////////////////////////////////
204} SISRCounters, *PSISRCounters;
205
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    //
225    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;
234
235    unsigned long dwNewRsrDECRYPTOK;
236    unsigned long dwNewRsrCFP;
237    unsigned long dwNewRsrUTSF;
238    unsigned long dwNewRsrHITAID;
239    unsigned long dwNewRsrHITAID0;
240
241    unsigned long dwRsrLong;
242    unsigned long dwRsrRunt;
243
244    unsigned long dwRsrRxControl;
245    unsigned long dwRsrRxData;
246    unsigned long dwRsrRxManage;
247
248    unsigned long dwRsrRxPacket;
249    unsigned long dwRsrRxOctet;
250    unsigned long dwRsrBroadcast;
251    unsigned long dwRsrMulticast;
252    unsigned long dwRsrDirected;
253    // 64-bit OID
254    unsigned long long   ullRsrOK;
255
256    // for some optional OIDs (64 bits) and DMI support
257    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;
263
264    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;
271
272    // TSR status count
273    //
274    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,
278                                         // that is (dwTsrOnceCollision0 + dwTsrMoreThanOnceCollision0)
279    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];
284
285    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];
290
291    // RD/TD count
292    unsigned long dwCntRxFrmLength;
293    unsigned long dwCntTxBufLength;
294
295    unsigned char abyCntRxPattern[16];
296    unsigned char abyCntTxPattern[16];
297
298
299
300    // Software check....
301    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
304    unsigned int idxRxErrorDesc[TYPE_MAXRD]; // index for rx data error RD
305
306    // 64-bit OID
307    unsigned long long   ullTsrOK[TYPE_MAXTD];
308
309    // for some optional OIDs (64 bits) and DMI support
310    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];
316
317//    unsigned long dwTxRetryCount[8];
318    //
319    // ISR status count
320    //
321    SISRCounters ISRStat;
322
323    SCustomCounters CustomStat;
324
325   #ifdef Calcu_LinkQual
326       //Tx count:
327    unsigned long TxNoRetryOkCount;         //success tx no retry !
328    unsigned long TxRetryOkCount;              //success tx but retry !
329    unsigned long TxFailCount;                      //fail tx ?
330      //Rx count:
331    unsigned long RxOkCnt;                          //success rx !
332    unsigned long RxFcsErrCnt;                    //fail rx ?
333      //statistic
334    unsigned long SignalStren;
335    unsigned long LinkQuality;
336   #endif
337} SStatCounter, *PSStatCounter;
338
339/*---------------------  Export Classes  ----------------------------*/
340
341/*---------------------  Export Variables  --------------------------*/
342
343/*---------------------  Export Functions  --------------------------*/
344
345void STAvClearAllCounter(PSStatCounter pStatistic);
346
347void STAvUpdateIsrStatCounter(PSStatCounter pStatistic, unsigned long dwIsr);
348
349void STAvUpdateRDStatCounter(PSStatCounter pStatistic,
350                              unsigned char byRSR, unsigned char byNewRSR, unsigned char byRxRate,
351                              unsigned char *pbyBuffer, unsigned int cbFrameLength);
352
353void STAvUpdateRDStatCounterEx(PSStatCounter pStatistic,
354                              unsigned char byRSR, unsigned char byNewRsr, unsigned char byRxRate,
355                              unsigned char *pbyBuffer, unsigned int cbFrameLength);
356
357void STAvUpdateTDStatCounter(PSStatCounter pStatistic, unsigned char byTSR0, unsigned char byTSR1,
358		unsigned char *pbyBuffer, unsigned int cbFrameLength, unsigned int uIdx);
359
360void STAvUpdateTDStatCounterEx(
361    PSStatCounter   pStatistic,
362    unsigned char *pbyBuffer,
363    unsigned long cbFrameLength
364    );
365
366void STAvUpdate802_11Counter(
367    PSDot11Counters p802_11Counter,
368    PSStatCounter   pStatistic,
369    unsigned long dwCounter
370    );
371
372void STAvClear802_11Counter(PSDot11Counters p802_11Counter);
373
374#endif // __MIB_H__
375