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, 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 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;
    int oidlen, first = 1;

    if (argc != 2) {
        fprintf(stderr, "Usage: smisubtree oid\n");
        exit(1);
    }

    smiInit(NULL);

    for((smiNode = smiGetNode(NULL, argv[1])) &&
	    (oidlen = smiNode->oidlen);
	smiNode && (first || smiNode->oidlen > oidlen);
        smiNode = smiGetNextNode(smiNode, SMI_NODEKIND_ANY),
	    first = 0) {

        printf("%*s%-32s\n",
	       (smiNode->oidlen - oidlen + 1) * 2, " ",
	       smiNode->name);

    };

    exit(0);
}

FILES
/usr/local/include/smi.h    SMI library header file

SEE ALSO
RFCs 2578-2580 specify the SMIv2 standard [STD 58]. The SMIng specification is a working document of the IRTF Network Management Working Group (NMRG) (draft-irtf-nmrg-sming-02).

smi.h, smi_config(3), smi_module(3), smi_node(3), smi_type(3), smi_macro(3),

AUTHOR
(C) 1999,2000 Frank Strauss, TU Braunschweig, Germany <strauss@ibr.cs.tu-bs.de>