Using Cricket to Monitor the LinkSys WAP11
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
Notice there is no datum for UnicastPacketRx on the ethernet. What is that about?