EtherLike-MIB BSNMPd Module Status Page
Here you'll find development status for the EtherLike-MIB BSNMPd module and installation instructions, in the To-Do List + Changes and How to Get It sections which follow, respectivelly.
Note that the module is currently sub-alpha quality, it will probably disappoint you unless you're willing to test it and/or help with its development. Please do not deploy it under production environment yet!
Supported Drivers
As statistics are provided by the drivers, a listing of drivers was created in order to track which ones offer the data. The list is available at EtherLike-MIB/DriverStatus.
Reporting Errors/Bugs
In case you encounter some bug, error or anything else you think that may not be what really should be, get in touch with me (RicardoSanchez), and describe your issue. Don't forget to tell me what NIC type (the driver name) you're trying to get data, and the usual environment details (which FreeBSD version, BSNMPd version, patches you may have applied, etc.).
I'd be glad to check it and get back to you, so don't be shy.
How to Get It
Currently, you have to check it out from its SVN repository, and place it under /usr/src/usr.sbin/bsnmpd/modules/snmp_etherlike. It's very easy to do:
Go to the modules sources directory of BSNMPd:
% cd /usr/src/usr.sbin/bsnmpd/modules
Now fetch the EtherLike-MIB module source:
% svn checkout http://rnsanchez.wait4.org/snmp_etherlike/trunk snmp_etherlike
...
Checked out revision NNN.
- Compile it:
This step may fail if you're not under -CURRENT: you will need to update your gensnmptree(1) fetching its sources from -CURRENT, recompiling and installing it over the one distributed with -STABLE (this is what I did, as I'm using -STABLE).
% cd snmp_etherlike
% make
- Install it (as super-user):
# make install
Edit, as super-user, /etc/snmpd.config and add the following line to somewhere in the end of the file (ie, after the other modules):
begemotSnmpdModulePath."etherlike" = "/usr/lib/snmp_etherlike.so"
- Still as super-user, start BSNMPd:
# bsnmpd
Query it with GET queries -- it wail abort() on GETNEXT queries, at the moment. As an example, how to get dot3StatsAlignmentErrors for interface 4 (on ifTable), within dot3StatsTable, using snmpget(1):
% snmpget -v 2c -c <your_readonly_community> <host_to_query> .1.3.6.1.2.1.10.7.2.1.2.4
SNMPv2-SMI::transmission.7.2.1.2.4 = Counter32: 0
In case of any issue related to the EtherLike-MIB, contact me (contact info available here -> RicardoSanchez). Although HartiBrandt is the maintainer of BSNMPd, he's a very busy guy and will probably tell you to contact me, as I am the author of this module.
To-Do List
A much more eye-candy and detailed To-Do list is available at http://rnsanchez.wait4.org/FreeBSD/EtherLike-MIB/. This one is a summarized version.
Task |
Status |
Expected |
Finished |
Control table |
Not Started |
? |
-- |
etherMIB group |
Not Started |
? |
-- |
PAUSE table |
Not Started |
? |
-- |
Per-frame collision table |
Not Started |
? |
-- |
Statistics table |
Started |
End of July ? |
-- |
Note: the implementation is temporarily halted, as I just started my (Computer Science) B-Tech project. As soon as things settle up, I'll restart it.
Changes
2006-07-20
Committed the last changeset on which I did some real testing, polling information in the dot3StatsTable group. Tested in both -STABLE and -CURRENT, and they worked. Only GETs work by now, GETNEXTs (snmpwalk(1)) make the module abort the BSNMP daemon. I'm learning how to handle GETNEXTs yet.
2006-07-18
The module can be built already, and I'm debugging it in order to verify that it is doing what it was programmed to do. Only the stats (dot3StatsTable) table has useful code, the others just do a plain return SNMP_ERR_NOERROR; in order to successfully compile. Also, HartiBrandt explained me that the issue with the split design of the MIB is not problem for BSNMPd -- it seems like all it needs to do is to register 2 subtrees.
2006-07-14
The dot3Stats table is almost ready for testing, and the module registration hooks were created in the new file etherlike_module.c. Also discovered that EtherLike-MIB doesn't have a unique root; there's the transmission (.1.3.6.1.2.1.10) and the etherMIB (.1.3.6.1.2.1.35) nodes within it. This can complicate things, as I understand BSNMPd assumes the module is responsible for a single sub-tree.
2006-07-13
Whoa! No additional code yet, but I finally found the correct OID to pass for sysctl(3), after digging in a lot of sources. Also discovered that I indeed have an ed(4) NIC (a UMC9008 NE2000 16bit), which is awesome as the ed driver provide the data I need for testing. Moreover, I discovered that I was going on the wrong direction -- only 2 drivers gatter the data needed by EtherLike-MIB, so there will be plenty of stuff to do directly in the drivers that don't. Good, good!!
2006-07-12
After studying lots of forms that could be used to fetch statistics, I decided to use a sample code available in ifmib(4). Contacted Garrett Wollman about his code, but no response yet. Also, created a SVN repository in order to track development:
2006-06-05
- The basic file-structure skeleton for the implementation was created, based on working modules available in the CVS (-CURRENT). It successfully builds, but doesn't offer anything yet.