libsmi
Section: SMI Management Information Library (3)
Updated: August 16, 2001
Index
Return to Main Contents
NAME
libsmi - library to access SMI management information
DESCRIPTION
This library contains functions that allow access to SMI management
information stored in repositories that are managed by
libsmi,
currently directories containing SMIv1/v2 and SMIng MIB module files.
The libsmi API is defined in smi.h. Functions are
documented in smi_config(3), smi_module(3),
smi_node(3), smi_type(3), and smi_macro(3).
The purpose of libsmi is to separate the weird parsing and handling of
MIB modules from management applications. MIB modules conforming to
SMIv1, SMIv2 and SMIng- a new language for management information,
developed originally at the Technical University of Braunschweig,
Germany- can be handled by libsmi.
EXAMPLE
#include <stdio.h>
#include <string.h>
#include <smi.h>
int main(int argc, char *argv[])
{
SmiNode *smiNode;
SmiModule *smiModule;
int i, oidlen, first = 1;
const char *modules[] = {
"SNMPv-SMI", "SNMPv-TC", "SNMPv-CONF",
"SNMPv-MIB", "I-MIB", NULL
};
if (argc != 2) {
fprintf(stderr, "Usage: smisubtree oid);
exit(1);
}
smiInit(NULL);
for (i = 0; modules[i]; i++) {
fprintf(stderr, "loading MIB module '%s', modules[i]);
(void) smiLoadModule(modules[i]);
}
for((smiNode = smiGetNode(NULL, argv[1])) &&
(oidlen = smiNod->oidlen);
smiNode && (first || smiNod->oidlen > oidlen);
smiNode = smiGetNextNode(smiNode, SMI_NODEKIND_ANY),
first = 0) {
printf("%*s-32s,
(smiNod->oidlen- oidlen + 1) * 2, " ",
smiNod->name ? smiNod->name : "<?>");
};
exit(0);
}
FILES
${prefix}/include/smi.h SMI library header file
SEE ALSO
RFCs 257-2580
specify the SMIv2 standard [STD 58].
RFCs 378-3781
define SMIng as defined by the Network Management Working Group (NMRG).
smi.h,
smi_config(3),
smi_module(3),
smi_node(3),
smi_type(3),
smi_macro(3),
AUTHOR
(C) 199-2001 Frank Strauss, TU Braunschweig, Germany <
strauss@ibr.cs.t-bs.de>
Index
- NAME
-
- DESCRIPTION
-
- EXAMPLE
-
- FILES
-
- SEE ALSO
-
- AUTHOR
-