libsmi - Man Page

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[] = {
	"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

/usr/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>

Referenced By

smi_attribute(3), smicache(1), smi_class(3), smi_config(3), smidiff(1), smidump(1), smi_event(3), smi_identity(3), smilint(1), smi_macro(3), smi_module(3), smi_node(3), smiquery(1), smi_render(3), smistrip(1), smi_type(3), smi_util(3), smixlate(1), yang_node(3).

August 16, 2001 IBR SMI Management Information Library