libsmi(3) SMI Management Information Library libsmi(3)
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, cur- rently 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, Ger- many - 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[] = { "SNMPv2-SMI", "SNMPv2-TC", "SNMPv2-CONF", "SNMPv2-MIB", "IF-MIB", NULL }; if (argc != 2) { fprintf(stderr, "Usage: smisubtree oid0); exit(1); } smiInit(NULL); for (i = 0; modules[i]; i++) { fprintf(stderr, "loading MIB module '%s'0, modules[i]); (void) smiLoadModule(modules[i]); } for((smiNode = smiGetNode(NULL, argv[1])) && (oidlen = smiNode->oidlen); smiNode && (first || smiNode->oidlen > oidlen); smiNode = smiGetNextNode(smiNode, SMI_NODEKIND_ANY), first = 0) { printf("%*s%-32s0, (smiNode->oidlen - oidlen + 1) * 2, " ", smiNode->name ? smiNode->name : "<?>"); }; exit(0); }
FILES
${prefix}/include/smi.h SMI library header file
SEE ALSO
RFCs 2578-2580 specify the SMIv2 standard [STD 58]. RFCs 3780-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) 1999-2001 Frank Strauss, TU Braunschweig, Germany <strauss@ibr.cs.tu-bs.de> IBR August 16, 2001 libsmi(3)
libsmi 0.5.0 - Generated Sun Apr 12 14:41:36 CDT 2015