libsmi(3)

πŸ’– libsmi(3) β€” SMI Management Information Library πŸ’–

✨ NAME ✨

libsmi β€” library to access SMI management information

🌸 DESCRIPTION 🌸

okay so bestie, libsmi is the library that gives you access to SMI management information stored in repositories that are managed by libsmi β€” and right now those repositories are directories containing SMIv1/v2 and SMIng MIB module files. πŸ’…

The libsmi API is defined in smi.h. The functions are documented in smi_config(3), smi_module(3), smi_node(3), smi_type(3), and smi_macro(3). 🫢

The whole 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 πŸŽ€

here's the example, bestie β€” keeping every character exactly as the page gives it, no cap:

#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 🌈

πŸ‘‘ AUTHOR πŸ‘‘

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


this iconic page was brought to you by IBR, dated August 16, 2001, for libsmi(3). periodt. πŸ’…
πŸ“¦ where this page comes from