378 lines
12 KiB
C
378 lines
12 KiB
C
/*
|
|
* Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* File: mib.h
|
|
*
|
|
* Purpose: Implement MIB Data Structure
|
|
*
|
|
* Author: Tevin Chen
|
|
*
|
|
* Date: May 21, 1996
|
|
*
|
|
*/
|
|
|
|
#ifndef __MIB_H__
|
|
#define __MIB_H__
|
|
|
|
#include "ttype.h"
|
|
#include "tether.h"
|
|
#include "desc.h"
|
|
|
|
/*--------------------- Export Definitions -------------------------*/
|
|
//
|
|
// 802.11 counter
|
|
//
|
|
|
|
typedef struct tagSDot11Counters {
|
|
unsigned long Length; // Length of structure
|
|
unsigned long long TransmittedFragmentCount;
|
|
unsigned long long MulticastTransmittedFrameCount;
|
|
unsigned long long FailedCount;
|
|
unsigned long long RetryCount;
|
|
unsigned long long MultipleRetryCount;
|
|
unsigned long long RTSSuccessCount;
|
|
unsigned long long RTSFailureCount;
|
|
unsigned long long ACKFailureCount;
|
|
unsigned long long FrameDuplicateCount;
|
|
unsigned long long ReceivedFragmentCount;
|
|
unsigned long long MulticastReceivedFrameCount;
|
|
unsigned long long FCSErrorCount;
|
|
unsigned long long TKIPLocalMICFailures;
|
|
unsigned long long TKIPRemoteMICFailures;
|
|
unsigned long long TKIPICVErrors;
|
|
unsigned long long TKIPCounterMeasuresInvoked;
|
|
unsigned long long TKIPReplays;
|
|
unsigned long long CCMPFormatErrors;
|
|
unsigned long long CCMPReplays;
|
|
unsigned long long CCMPDecryptErrors;
|
|
unsigned long long FourWayHandshakeFailures;
|
|
// unsigned long long WEPUndecryptableCount;
|
|
// unsigned long long WEPICVErrorCount;
|
|
// unsigned long long DecryptSuccessCount;
|
|
// unsigned long long DecryptFailureCount;
|
|
} SDot11Counters, *PSDot11Counters;
|
|
|
|
|
|
//
|
|
// MIB2 counter
|
|
//
|
|
typedef struct tagSMib2Counter {
|
|
long ifIndex;
|
|
char ifDescr[256]; // max size 255 plus zero ending
|
|
// e.g. "interface 1"
|
|
long ifType;
|
|
long ifMtu;
|
|
unsigned long ifSpeed;
|
|
unsigned char ifPhysAddress[ETH_ALEN];
|
|
long ifAdminStatus;
|
|
long ifOperStatus;
|
|
unsigned long ifLastChange;
|
|
unsigned long ifInOctets;
|
|
unsigned long ifInUcastPkts;
|
|
unsigned long ifInNUcastPkts;
|
|
unsigned long ifInDiscards;
|
|
unsigned long ifInErrors;
|
|
unsigned long ifInUnknownProtos;
|
|
unsigned long ifOutOctets;
|
|
unsigned long ifOutUcastPkts;
|
|
unsigned long ifOutNUcastPkts;
|
|
unsigned long ifOutDiscards;
|
|
unsigned long ifOutErrors;
|
|
unsigned long ifOutQLen;
|
|
unsigned long ifSpecific;
|
|
} SMib2Counter, *PSMib2Counter;
|
|
|
|
// Value in the ifType entry
|
|
//#define ETHERNETCSMACD 6 //
|
|
#define WIRELESSLANIEEE80211b 6 //
|
|
|
|
// Value in the ifAdminStatus/ifOperStatus entry
|
|
#define UP 1 //
|
|
#define DOWN 2 //
|
|
#define TESTING 3 //
|
|
|
|
|
|
//
|
|
// RMON counter
|
|
//
|
|
typedef struct tagSRmonCounter {
|
|
long etherStatsIndex;
|
|
unsigned long etherStatsDataSource;
|
|
unsigned long etherStatsDropEvents;
|
|
unsigned long etherStatsOctets;
|
|
unsigned long etherStatsPkts;
|
|
unsigned long etherStatsBroadcastPkts;
|
|
unsigned long etherStatsMulticastPkts;
|
|
unsigned long etherStatsCRCAlignErrors;
|
|
unsigned long etherStatsUndersizePkts;
|
|
unsigned long etherStatsOversizePkts;
|
|
unsigned long etherStatsFragments;
|
|
unsigned long etherStatsJabbers;
|
|
unsigned long etherStatsCollisions;
|
|
unsigned long etherStatsPkt64Octets;
|
|
unsigned long etherStatsPkt65to127Octets;
|
|
unsigned long etherStatsPkt128to255Octets;
|
|
unsigned long etherStatsPkt256to511Octets;
|
|
unsigned long etherStatsPkt512to1023Octets;
|
|
unsigned long etherStatsPkt1024to1518Octets;
|
|
unsigned long etherStatsOwners;
|
|
unsigned long etherStatsStatus;
|
|
} SRmonCounter, *PSRmonCounter;
|
|
|
|
//
|
|
// Custom counter
|
|
//
|
|
typedef struct tagSCustomCounters {
|
|
unsigned long Length;
|
|
|
|
unsigned long long ullTsrAllOK;
|
|
|
|
unsigned long long ullRsr11M;
|
|
unsigned long long ullRsr5M;
|
|
unsigned long long ullRsr2M;
|
|
unsigned long long ullRsr1M;
|
|
|
|
unsigned long long ullRsr11MCRCOk;
|
|
unsigned long long ullRsr5MCRCOk;
|
|
unsigned long long ullRsr2MCRCOk;
|
|
unsigned long long ullRsr1MCRCOk;
|
|
|
|
unsigned long long ullRsr54M;
|
|
unsigned long long ullRsr48M;
|
|
unsigned long long ullRsr36M;
|
|
unsigned long long ullRsr24M;
|
|
unsigned long long ullRsr18M;
|
|
unsigned long long ullRsr12M;
|
|
unsigned long long ullRsr9M;
|
|
unsigned long long ullRsr6M;
|
|
|
|
unsigned long long ullRsr54MCRCOk;
|
|
unsigned long long ullRsr48MCRCOk;
|
|
unsigned long long ullRsr36MCRCOk;
|
|
unsigned long long ullRsr24MCRCOk;
|
|
unsigned long long ullRsr18MCRCOk;
|
|
unsigned long long ullRsr12MCRCOk;
|
|
unsigned long long ullRsr9MCRCOk;
|
|
unsigned long long ullRsr6MCRCOk;
|
|
|
|
} SCustomCounters, *PSCustomCounters;
|
|
|
|
|
|
//
|
|
// Custom counter
|
|
//
|
|
typedef struct tagSISRCounters {
|
|
unsigned long Length;
|
|
|
|
unsigned long dwIsrTx0OK;
|
|
unsigned long dwIsrAC0TxOK;
|
|
unsigned long dwIsrBeaconTxOK;
|
|
unsigned long dwIsrRx0OK;
|
|
unsigned long dwIsrTBTTInt;
|
|
unsigned long dwIsrSTIMERInt;
|
|
unsigned long dwIsrWatchDog;
|
|
unsigned long dwIsrUnrecoverableError;
|
|
unsigned long dwIsrSoftInterrupt;
|
|
unsigned long dwIsrMIBNearfull;
|
|
unsigned long dwIsrRxNoBuf;
|
|
|
|
unsigned long dwIsrUnknown; // unknown interrupt count
|
|
|
|
unsigned long dwIsrRx1OK;
|
|
unsigned long dwIsrATIMTxOK;
|
|
unsigned long dwIsrSYNCTxOK;
|
|
unsigned long dwIsrCFPEnd;
|
|
unsigned long dwIsrATIMEnd;
|
|
unsigned long dwIsrSYNCFlushOK;
|
|
unsigned long dwIsrSTIMER1Int;
|
|
/////////////////////////////////////
|
|
} SISRCounters, *PSISRCounters;
|
|
|
|
|
|
// Value in the etherStatsStatus entry
|
|
#define VALID 1 //
|
|
#define CREATE_REQUEST 2 //
|
|
#define UNDER_CREATION 3 //
|
|
#define INVALID 4 //
|
|
|
|
//#define MAX_RATE 12
|
|
//
|
|
// statistic counter
|
|
//
|
|
typedef struct tagSStatCounter {
|
|
//
|
|
// ISR status count
|
|
//
|
|
|
|
|
|
// RSR status count
|
|
//
|
|
unsigned long dwRsrFrmAlgnErr;
|
|
unsigned long dwRsrErr;
|
|
unsigned long dwRsrCRCErr;
|
|
unsigned long dwRsrCRCOk;
|
|
unsigned long dwRsrBSSIDOk;
|
|
unsigned long dwRsrADDROk;
|
|
unsigned long dwRsrBCNSSIDOk;
|
|
unsigned long dwRsrLENErr;
|
|
unsigned long dwRsrTYPErr;
|
|
|
|
unsigned long dwNewRsrDECRYPTOK;
|
|
unsigned long dwNewRsrCFP;
|
|
unsigned long dwNewRsrUTSF;
|
|
unsigned long dwNewRsrHITAID;
|
|
unsigned long dwNewRsrHITAID0;
|
|
|
|
unsigned long dwRsrLong;
|
|
unsigned long dwRsrRunt;
|
|
|
|
unsigned long dwRsrRxControl;
|
|
unsigned long dwRsrRxData;
|
|
unsigned long dwRsrRxManage;
|
|
|
|
unsigned long dwRsrRxPacket;
|
|
unsigned long dwRsrRxOctet;
|
|
unsigned long dwRsrBroadcast;
|
|
unsigned long dwRsrMulticast;
|
|
unsigned long dwRsrDirected;
|
|
// 64-bit OID
|
|
unsigned long long ullRsrOK;
|
|
|
|
// for some optional OIDs (64 bits) and DMI support
|
|
unsigned long long ullRxBroadcastBytes;
|
|
unsigned long long ullRxMulticastBytes;
|
|
unsigned long long ullRxDirectedBytes;
|
|
unsigned long long ullRxBroadcastFrames;
|
|
unsigned long long ullRxMulticastFrames;
|
|
unsigned long long ullRxDirectedFrames;
|
|
|
|
unsigned long dwRsrRxFragment;
|
|
unsigned long dwRsrRxFrmLen64;
|
|
unsigned long dwRsrRxFrmLen65_127;
|
|
unsigned long dwRsrRxFrmLen128_255;
|
|
unsigned long dwRsrRxFrmLen256_511;
|
|
unsigned long dwRsrRxFrmLen512_1023;
|
|
unsigned long dwRsrRxFrmLen1024_1518;
|
|
|
|
// TSR status count
|
|
//
|
|
unsigned long dwTsrTotalRetry[TYPE_MAXTD]; // total collision retry count
|
|
unsigned long dwTsrOnceRetry[TYPE_MAXTD]; // this packet only occur one collision
|
|
unsigned long dwTsrMoreThanOnceRetry[TYPE_MAXTD]; // this packet occur more than one collision
|
|
unsigned long dwTsrRetry[TYPE_MAXTD]; // this packet has ever occur collision,
|
|
// that is (dwTsrOnceCollision0 + dwTsrMoreThanOnceCollision0)
|
|
unsigned long dwTsrACKData[TYPE_MAXTD];
|
|
unsigned long dwTsrErr[TYPE_MAXTD];
|
|
unsigned long dwAllTsrOK[TYPE_MAXTD];
|
|
unsigned long dwTsrRetryTimeout[TYPE_MAXTD];
|
|
unsigned long dwTsrTransmitTimeout[TYPE_MAXTD];
|
|
|
|
unsigned long dwTsrTxPacket[TYPE_MAXTD];
|
|
unsigned long dwTsrTxOctet[TYPE_MAXTD];
|
|
unsigned long dwTsrBroadcast[TYPE_MAXTD];
|
|
unsigned long dwTsrMulticast[TYPE_MAXTD];
|
|
unsigned long dwTsrDirected[TYPE_MAXTD];
|
|
|
|
// RD/TD count
|
|
unsigned long dwCntRxFrmLength;
|
|
unsigned long dwCntTxBufLength;
|
|
|
|
unsigned char abyCntRxPattern[16];
|
|
unsigned char abyCntTxPattern[16];
|
|
|
|
|
|
|
|
// Software check....
|
|
unsigned long dwCntRxDataErr; // rx buffer data software compare CRC err count
|
|
unsigned long dwCntDecryptErr; // rx buffer data software compare CRC err count
|
|
unsigned long dwCntRxICVErr; // rx buffer data software compare CRC err count
|
|
unsigned int idxRxErrorDesc[TYPE_MAXRD]; // index for rx data error RD
|
|
|
|
// 64-bit OID
|
|
unsigned long long ullTsrOK[TYPE_MAXTD];
|
|
|
|
// for some optional OIDs (64 bits) and DMI support
|
|
unsigned long long ullTxBroadcastFrames[TYPE_MAXTD];
|
|
unsigned long long ullTxMulticastFrames[TYPE_MAXTD];
|
|
unsigned long long ullTxDirectedFrames[TYPE_MAXTD];
|
|
unsigned long long ullTxBroadcastBytes[TYPE_MAXTD];
|
|
unsigned long long ullTxMulticastBytes[TYPE_MAXTD];
|
|
unsigned long long ullTxDirectedBytes[TYPE_MAXTD];
|
|
|
|
// unsigned long dwTxRetryCount[8];
|
|
//
|
|
// ISR status count
|
|
//
|
|
SISRCounters ISRStat;
|
|
|
|
SCustomCounters CustomStat;
|
|
|
|
#ifdef Calcu_LinkQual
|
|
//Tx count:
|
|
unsigned long TxNoRetryOkCount; //success tx no retry !
|
|
unsigned long TxRetryOkCount; //success tx but retry !
|
|
unsigned long TxFailCount; //fail tx ?
|
|
//Rx count:
|
|
unsigned long RxOkCnt; //success rx !
|
|
unsigned long RxFcsErrCnt; //fail rx ?
|
|
//statistic
|
|
unsigned long SignalStren;
|
|
unsigned long LinkQuality;
|
|
#endif
|
|
} SStatCounter, *PSStatCounter;
|
|
|
|
/*--------------------- Export Classes ----------------------------*/
|
|
|
|
/*--------------------- Export Variables --------------------------*/
|
|
|
|
/*--------------------- Export Functions --------------------------*/
|
|
|
|
void STAvClearAllCounter(PSStatCounter pStatistic);
|
|
|
|
void STAvUpdateIsrStatCounter(PSStatCounter pStatistic, unsigned long dwIsr);
|
|
|
|
void STAvUpdateRDStatCounter(PSStatCounter pStatistic,
|
|
unsigned char byRSR, unsigned char byNewRSR, unsigned char byRxRate,
|
|
unsigned char *pbyBuffer, unsigned int cbFrameLength);
|
|
|
|
void STAvUpdateRDStatCounterEx(PSStatCounter pStatistic,
|
|
unsigned char byRSR, unsigned char byNewRsr, unsigned char byRxRate,
|
|
unsigned char *pbyBuffer, unsigned int cbFrameLength);
|
|
|
|
void STAvUpdateTDStatCounter(PSStatCounter pStatistic, unsigned char byTSR0, unsigned char byTSR1,
|
|
unsigned char *pbyBuffer, unsigned int cbFrameLength, unsigned int uIdx);
|
|
|
|
void STAvUpdateTDStatCounterEx(
|
|
PSStatCounter pStatistic,
|
|
unsigned char *pbyBuffer,
|
|
unsigned long cbFrameLength
|
|
);
|
|
|
|
void STAvUpdate802_11Counter(
|
|
PSDot11Counters p802_11Counter,
|
|
PSStatCounter pStatistic,
|
|
unsigned long dwCounter
|
|
);
|
|
|
|
void STAvClear802_11Counter(PSDot11Counters p802_11Counter);
|
|
|
|
#endif // __MIB_H__
|
|
|
|
|
|
|