Using Cricket to Monitor the LinkSys WAP11

| | Comments (1)
I stumbled on cricket when working with oracle SNMP. It's a nice graphing package that's a lot more flexible and modular compared to MRTG. I'm switching. But the point is I've finally unlocked the code that will let you SNMP monitor ATMEL AT76C510 wireless access points. I'm going to post my configuration to the cricket-developers list to have it put on the contrib page. But if you want it now...

You can download the current version here. The rest of this is cut and pasted from the readme.


Jim Weller
8/3/2003 10:36PM

Introduction
------------------------------------------------------------------------------
This is a sample config directory for cricket to monitor wireless access points 
based on the AT76C510. I'm working with the linksys wap 11, but it should work 
with comparable smc and netgear devices.

readme.txt - this file
atmel2cricket.pl - script to querty atmel device via snmp and print cricket values
AT76C510.mib - the mib that came with the "Access Point SNMP Manager"
wireless/ - a sample cricket config directory
wireless/Defaults - sample cricket data defaults file
wireless/Targets - sample cricket targets file for two wap11's

The linksys's use some bastardized SNMP values. Normally datums about 
interfaces come as single objects via SNMP. Atmel's take multiple datums and 
pack them into a single SNMP object. So their is no way to use cricket's 
smoothie OID mechanism to get to the data (without perl trickery). 

There are many versions of the AT76C510.mib file floating around the net. Most 
of them don't compile properly in ucd-snmp/net-snmp, but are functional enough 
for exploring. Many have been edited. The one from linksys in particular has 
been butchered. The version from ATMEL in the "Access Point SNMP Manager" 
application is kind enough to document the format of the packed values. 

Many of the values have been removed or changed on the device by the vendor. 
Plus, much about the SNMP implementations vary by firmware revision. Whether from 
MIB compilation problems or differing implementations, either way you'll find it 
difficult to 'snmpwalk' these devices. 'snmpget's seem to work fine.


Installation
------------------------------------------------------------------------------
Copy the atmel2cricket.pl script to your $CRICKET_HOME/util folder. Make sure it 
is executable by whatever user runs your cricket's jobs. Also make sure that 
snmpUtil.pm (a cricket snmp_utils wrapper) is available in $CRICKET_HOM/lib.

The atmel2cricket.pl script takes two arguments (Usage: 
/usr/share/cricket/util/atmel2cricket.pl host community) that it will get from 
your 'Targets' file. Your host will be the IP of your WAP, use the USB/SNMP 
config utilities to set this. You're community can be set via the same utility.

Copy the 'wireless' folder into your cricket config directory. Then edit the 
wireless/Targets file to suit your needs.

Recompile the cricket directory.

Reference
------------------------------------------------------------------------------
Just some snippets to help show what I learned.

These are the OID's that "Access Point SNMP Manager" fetched on 
connection/refresh. I found this using tcpdump on a hub.

.1.3.6.1.4.1.410.1.2.1.3.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.wireless.OperationalSettingsGRP.operESSID.0
.1.3.6.1.4.1.410.1.1.2.2.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.atmelSys.operBridgingLevel.operIPMask.0
.1.3.6.1.4.1.410.1.1.4.1.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.atmelSys.operBridgeOperationalMode.bridgeOperationalMode.0
.1.3.6.1.4.1.410.1.1.7.1.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.atmelSys.EthStatisticsGRP.EthRxStatistics.0
.1.3.6.1.4.1.410.1.2.3.1.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.wireless.WLstatisticsGRP.wirelessStatistics.0
.1.3.6.1.4.1.410.1.1.8.8.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.atmelSys.TestModeSettingsGRP.TestModeRadioConfiguration.0
.1.3.6.1.4.1.410.1.1.1.5.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.atmelSys.sysCtrlGRP.sysDeviceInfo.0
.1.3.6.1.4.1.410.1.2.5.1.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.wireless.AssociatedStationsGRP.AssociatedSTAsNum.0
.1.3.6.1.4.1.410.1.1.1.3.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.atmelSys.sysCtrlGRP.sysTrapSwitch.0
.1.3.6.1.4.1.410.1.1.3.1.0 = .iso.org.dod.internet.private.enterprises.atmel.atmelmib.atmelSys.operFiltering.operIPFilter.0


These are the packs of long integers from the ATMEL snmp implementation. (Why 
god, why, why?).

wirelessStatistics
------------------------------------
UnicastTransmittedPackets
BroadcastTransmittedpackets
MulticastTransmittedPackets
TransmittedBeacon
TransmittedACK
TransmittedRTS
TransmittedCTS
UnicastReceivedPackets
BroadcastReceivedPackets
MulticastReceivedPackets
ReceivedBeacon
ReceivedACK
ReceivedRTS
ReceivedCTS
ACKFailure
CTSFailure
RetryPackets
ReceivedDuplicate
FailedPackets
AgedPackets
FCSError
InvalidPLCP

EthernetRxStatistics
------------------------------------
TotalBytesRx
TotalPacketsRx
PacketCRCErrorRx
MulticastPacketRx
BroadcastPacketRx
ControlFramesRx
PauseFramesRx
UnknownOPCodeRx
AlignmentRxError
LengthOutOfRangeRx
CodeErrorRx
FalseCarrierRx
UndersizePacketsRx
OversizePacketsRx
TotalFragmentsRx
TotalJabberRx

EthernetTxStatistics
------------------------------------
TotalBytesTx
TotalPacketsTx
PacketCRCErrorTx
MulticastPacketTx
BroadcastPacketTx
UnicastPacketTx
PauseFramesTx
SingleDeferPacketTx
MultiDeferPacketsTx
SingleCollisionsTx
MultiCollisionsTx
LateCollisionsTx
ExcessiveCollisionTx
TotalCollisionsTx

1 Comments

Notice there is no datum for UnicastPacketRx on the ethernet. What is that about?