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 π
RFCs 2578-2580specify the SMIv2 standard[STD 58].RFCs 3780-3781define 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>
this iconic page was brought to you by IBR, dated August 16, 2001, for libsmi(3). periodt. π
π¦ where this page comes from
- alpine 3.24: libsmi-doc 0.5.0-r5 Β· BSD-3-Clause AND MIT
- nixos 26.05: libsmi 0.5.0
- nixpkgs unstable: libsmi 0.5.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms