Copyright (c) 1999-2008 Frank Strauss, Technical University of Braunschweig.

See the file "COPYING" for information on usage and redistribution
of this file, and for a DISCLAIMER OF ALL WARRANTIES.

@(#) $Id: README 7795 2008-02-27 10:23:25Z strauss $

This project has been started as part of Frank Strauss' master's
thesis at the Technical University of Braunschweig, Germany in 1999.
Since then numerous people applied very major improvements, fixes, and
new features, namely Juergen Schoenwaelder who also initiated the
whole project and supervised my thesis work, as well as Torsten Klie,
Andreas Mueller, Moritz Bunkus, Jens Mueller, and Klaus Sperner. Many
others contributed lots of patches, improvements, and feature requests.

This software comprises 

 - a library to parse and maintain MIB and PIB modules,

 - a set of tools based on the library to check, convert, and compare
   MIB and PIB modules.

 - a collection of all published IETF and IANA Standards Track MIB
   and PIB modules and some more.

Please read the manual pages and the project's web pages for further


README					this file
COPYING					the libsmi lincense terms
ChangeLog				a rough history of changes
TODO					incomplete list of things to be done
THANKS					a list of people who contributed
configure				configure script
lib/					library source code
tools/					tools source code
doc/					some related documents
mibs/					MIB modules to be installed
pibs/					PIB modules to be installed
test/					some test patterns
win/					Win32 port source code


Requirements: GNU make, gcc, flex, bison, and other things most UNIX
systems have on board. The compiler has to support `long long' types.

To configure libsmi, first check

	./configure --help

output to see, what options are available. Then run

	./configure [options]

with the options of your choice. Choose mibdir, pibdir and smipath
values appripriate for your environment so that users can live without
an SMIPATH environment variable and without configuration files.

On HP-UX platforms the build process is reported to require gcc
and the --disable-shared configure option.

To build libsmi and the tools, run


This should build the library libsmi in lib/ and the tools, namely
tools/smilint, tools/smidump, tools/smiquery, tools/smidiff,
tools/smixlate and the shell script tools/smistrip.

Now, you may run some checks by

	make check

Note that some tests of this test suite may fail, if GNU diff was not

If you wish to install the library, the MIB and PIB modules, the tools
and the man pages, run

	make install

To use libsmi applications you might want to configure its behaviour.
Detailed library options, including per-application options, can
be configured through a global and a user level configuration file.
Additionally the SMIPATH environment variable can be used to configure
paths of module locations. See the smi_config(3) man page.


If you encounter any crashes or feel for any other reasons the need to
debug the libsmi tools, you should link the tools statically. This is
the easiest way to get around the problems when your debugger claims to
be unable to read the libsmi binary files, since they are built using
libtool. You can build the libsmi tools statically by

	make clean
	./configure --enable-static --disable-shared


Read the man pages for library concepts and usage and for the tools.
Please note that SMIng is currently in a quite inconsistent and
outdated state. It does *not* reflect what is being specified in RFCs
3780/3781.  Therefore, SMIng is not enabled by default. See the old
specs in doc/draft-irtf-nmrg-sming-02.txt for details on SMIng as it
is implemented.

You may find further information online, along with the subscription
information on the libsmi mailing list at

	Frank Strauss <>