Ethereal-dev: Re: [ethereal-dev] packet-snmp.c and libsmi

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Juergen Schoenwaelder <schoenw@xxxxxxxxxxxxxxx>
Date: Mon, 26 Jun 2000 11:15:45 +0200
>>>>> Jochen Friedrich writes:

Jochen> When adding SNMPv3 and SMUX to ethereal, i also patched it up
Jochen> to use libsmi instead of UCD SNMP. However, there have been 2
Jochen> yet unresolved concerns (quoting Guy Harris):

Jochen> 1. (this was due to the API change between libsmi 0.1 and
Jochen> 0.2):

Jochen> Is the API (and the ABI!) likely to change in an incompatible
Jochen> fashion in a future release?  If so, that could cause this
Jochen> problem to show up again.

We hope to keep the API (and the ABI) stable. But the truth is that
changes might happen, especially if work on SMI issues resumes in the
IETF. Anyway, we have started to make proper use of library version
numbers. It is now easy to spot whether you have the right libsmi
version number at configure time and you can of course have multiple
versions of the shared library around in case that is necessary.

But again, we do not intent to make more API/ABI changes unless this
is really necessary. (And I think you will face the same problem with
UCD, right?)

Jochen> 2.

Jochen> ...except that it takes significantly *more* time with libsmi
Jochen> than with UCD SNMP; perhaps that's just because there are
Jochen> fewer MIBs that come with UCD SNMP, but, on my 450 MHz
Jochen> PII/128MB memory machine, it takes several seconds longer for
Jochen> an Ethereal linked against libsmi to start up than it takes
Jochen> for an Ethereal linked against UCD SNMP to start up (even
Jochen> after all the pages of the executable and the MIB files are
Jochen> cached in memory after having run both programs once).

Jochen> Any comments on this concerns from your side?

Loading all IETF MIBs during startup is costly and usually not
necessary. I think the default MIB set that people really need is
pretty small and the loading time at startup should be mostly
irrelevant. I guess that the UCD parser will also take significantly
more time if you feed all the ~ 6.5 MB of IETF MIB definitions into
it.

We have improved the libsmi performance about 2 months ago. There are
some additional "tricks" you can do from the hosting applications
(e.g. setting libsmi flags to discard descriptions and setting the
error checking level to a small number) to gain additional speedups.
Anyway, if there are significant problems that can be identified by
looking at gprof output, then we are more than interested to fix them.

/js

-- 
Juergen Schoenwaelder      Technical University Braunschweig
<schoenw@xxxxxxxxxxxxxxx>  Dept. Operating Systems & Computer Networks
Phone: +49 531 391 3289    Bueltenweg 74/75, 38106 Braunschweig, Germany
Fax:   +49 531 391 5936    <URL:http://www.ibr.cs.tu-bs.de/~schoenw/>