Re: [tkined] High volume SNMP poller

From: Juergen Schoenwaelder (
Date: Tue Feb 15 2000 - 16:15:09 MET

>>>>> Szokoli Gabor writes:

Szokoli> Well, the web works from as far away from Hawaii as Hungary
Szokoli> ... :-) Not real fast, though. And the papers do not seem to
Szokoli> be published yet :-)

I guess you have to order the proceedings to get the paper. Anyway,
the paper I am talking about is in session 12 and titled "Efficient
Instrumentation of Management Information Models with SNMP". It
discussed some optimizations one can implement to optimize SNMP
polling operations. You may want to contact the authors
<> and <> and ask them
to send you a pre-print. (But don't tell them I told you to do
that. ;-)

Szokoli> How does scotty integrate with such extensions?

I hope that "package require TclX" is all you need to do to get things
working (after installing TclX on your system).

Szokoli> There goes my hands-on-Tnm project... No, mine still has a
Szokoli> feature, it can get sysUpTime with every row :-)

OK, I will not put that into the C code today - just to keep you and
your code happy. ;-)
Szokoli> Does the 3.0.0 walk work for columns from different sized
Szokoli> tables?

No. I think the loop terminates as soon as one varbind leaves the
subtree defined by the arguments. The walk function is not a gettable
which I would expect should handle these cases.

Szokoli> What other errors should a walk be prepared to handle? Right
Szokoli> now my only idea is end of MIB, but I have little experince
Szokoli> with SNMP so far.

You can get tooBig, genErr and noSuchName (SNMPv1) or tooBig, genErr
and endOfMibView exceptions (SNMPv2c/SNMPv3). Some broken agents may
send you other errors as well. ;-)

Szokoli> I do not have the FAQ at hand, so I should not ask, but, I
Szokoli> didn't get this packing/unpackig part...

Instance identifier contain lots of information that you do not need
to retrieve via getnext/getbulk. The bad news is that it is usually
hard to unpack this information from the instance identifier,
especially if you have complex things like multiple variable length
strings. 3.0.0 therefore has commands that do the packing/unpacking of
data into/from instance identifiers for you. An example:

  % Tnm::mib unpack 9 0

The long and nasty OID is the value for tcpConnState, indexed by an IP
address, a port number, another IP address and another port number.
The unpack command takes the OID and returns the four values that are
encoded in the instance identifier as a Tcl list. Similarily, you can

  % Tnm::mib pack tcpConnState 80 localhost 1234

and you get back the valid OID for this instance (note the DNS name
conversions that were done automatically).

Szokoli> What happens with tkined, when scotty goes 3.0.0? I'm
Szokoli> worried about the tools already written for it. (Anyway, is
Szokoli> there an archive of such tools submitted by all the happy
Szokoli> users?)

I usually do not touch tkined except for some bug fixed. Tkined is
therefor very stable and scripts should run fine, except of the Tnm
API changes which of course requires to adjust some things here and


Juergen Schoenwaelder      Technical University Braunschweig
<>  Dept. Operating Systems & Computer Networks
Phone: +49 531 391 3289    Bueltenweg 74/75, 38106 Braunschweig, Germany
Fax:   +49 531 391 5936    <URL:>

-- !! This message is brought to you via the `tkined & scotty' mailing list. !! Please do not reply to this message to unsubscribe. To subscribe or !! unsubscribe, send a mail message to <>. !! See for more information.

This archive was generated by hypermail 2b29 : Mon Jan 08 2001 - 15:27:35 MET