manpagez: man pages & more
man libsmi(3)
Home | html | info | man
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
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.