== 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:

 0. Go to the `modules` sources directory of BSNMPd:

  `% ` '''`cd /usr/src/usr.sbin/bsnmpd/modules`'''

 0. Now fetch the !EtherLike-MIB module source:

  `% ` '''`svn checkout http://rnsanchez.wait4.org/snmp_etherlike/trunk snmp_etherlike`''' <<BR>> `...` <<BR>> `Checked out revision NNN.`

 0. 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`'''<<BR>>`%` '''` make`'''

 0. Install it (as super-user):

  `# ` '''`make install`'''

 0. 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"`

 0. Still as super-user, start BSNMPd:

  `# ` '''`bsnmpd`'''

 0. 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 ||<#ffffcc> Not Started || ? || -- ||
|| etherMIB group ||<#ffffcc> Not Started || ? || -- ||
|| PAUSE table ||<#ffffcc> Not Started || ? || -- ||
|| Per-frame collision table ||<#ffffcc> Not Started || ? || -- ||
|| Statistics table ||<#99ccff> 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:
  [[http://rnsanchez.wait4.org/snmp_etherlike]]

''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.


----
CategorySnmp CategoryStale