www.LinuxHowtos.org





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