Unix and Linux Discussions Tagged with mib |
|
Thread / Thread Starter |
Last Post |
Replies |
Views |
Forum |
|
|
|
6 |
7,785 |
Infrastructure Monitoring |
|
|
|
2 |
2,828 |
IP Networking |
|
|
|
0 |
5,424 |
Infrastructure Monitoring |
|
|
|
10 |
7,756 |
Emergency UNIX and Linux Support |
|
|
|
1 |
14,197 |
Infrastructure Monitoring |
|
|
|
0 |
590 |
Software Releases - RSS News |
|
|
|
0 |
730 |
Software Releases - RSS News |
|
|
|
0 |
765 |
Software Releases - RSS News |
|
|
|
1 |
3,633 |
AIX |
|
|
|
0 |
770 |
Software Releases - RSS News |
|
|
|
0 |
699 |
Software Releases - RSS News |
|
|
|
0 |
619 |
Software Releases - RSS News |
|
|
|
1 |
6,078 |
UNIX for Dummies Questions & Answers |
|
|
|
8 |
9,083 |
UNIX for Dummies Questions & Answers |
|
|
|
12 |
8,714 |
UNIX for Dummies Questions & Answers |
|
|
|
3 |
10,921 |
Cybersecurity |
|
|
|
5 |
6,312 |
UNIX for Dummies Questions & Answers |
|
|
|
5 |
2,545 |
UNIX for Dummies Questions & Answers |
|
|
|
1 |
3,427 |
UNIX for Dummies Questions & Answers |
|
|
|
4 |
14,405 |
UNIX for Dummies Questions & Answers |
|
|
|
2 |
6,336 |
UNIX for Dummies Questions & Answers |
|
|
|
4 |
3,162 |
UNIX for Dummies Questions & Answers |
|
|
|
3 |
3,050 |
UNIX for Dummies Questions & Answers |
|
|
|
5 |
4,557 |
UNIX for Dummies Questions & Answers |
|
|
|
1 |
1,811 |
UNIX for Dummies Questions & Answers |
|
|
|
1 |
2,246 |
UNIX for Dummies Questions & Answers |
|
|
|
2 |
9,944 |
UNIX for Dummies Questions & Answers |
|
|
|
3 |
3,847 |
IP Networking |
|
|
|
3 |
4,913 |
UNIX for Dummies Questions & Answers |
|
|
|
2 |
2,157 |
UNIX for Dummies Questions & Answers |
SNMP::MIB::Compiler(3pm) User Contributed Perl Documentation SNMP::MIB::Compiler(3pm)
NAME
SNMP::MIB::Compiler - a MIB Compiler supporting SMIv1 and SMIv2
SYNOPSIS
use SNMP::MIB::Compiler;
my $mib = new SNMP::MIB::Compiler;
# search MIBs there...
$mib->add_path('./mibs', '/foo/bar/mibs');
# possibly using these extensions...
$mib->add_extension('', '.mib', '.my');
# store the compiled MIBs there..
$mib->repository('./out');
# only accept SMIv2 MIBs
$mib->{'accept_smiv1'} = 0;
$mib->{'accept_smiv2'} = 1;
# no debug
$mib->{'debug_lexer'} = 0;
$mib->{'debug_recursive'} = 0;
# store compiled MIBs into files
$mib->{'make_dump'} = 1;
# read compiled MIBs
$mib->{'use_dump'} = 1;
# follow IMPORTS clause while compiling
$mib->{'do_imports'} = 1;
# load a precompiled MIB
$mib->load('SNMPv2-MIB');
# compile a new MIB
$mib->compile('IF-MIB');
print $mib->resolve_oid('ifInOctets'), "
";
print $mib->convert_oid('1.3.6.1.2.1.31.1.1.1.10'), "
";
print $mib->tree('ifMIB');
DESCRIPTION
SNMP::MIB::Compiler is a MIB compiler that fully supports
both SMI(v1) and SMIv2. This module can be use to compile
MIBs (recursively or not) or load already compiled MIBs for
later use.
Some tasks can be performed by the resulting object such as :
- resolution of object names into object identifiers (OIDs).
e.g. ifInOctets => 1.3.6.1.2.1.2.2.1.10
- convertion of OIDs.
e.g. 1.3.6.1.2.1.2.1 =>
iso.org.dod.internet.mgmt.mib-2.interfaces.ifNumber
- drawing MIB trees.
e.g. ifTestTable => ifTestTable
|
+-- --- ifTestEntry(1)
|
+-- -rw Integer ifTestId(1)
+-- -rw Integer ifTestStatus(2)
+-- -rw ObjectID ifTestType(3)
+-- -r- Integer ifTestResult(4)
+-- -r- ObjectID ifTestCode(5)
+-- -rw String ifTestOwner(6)
The MIB to be compiled requires no modification. Everything legal
according to SMIs is accepted, including MACRO definitions (which
are parsed but ignored).
This module is shipped with the basic MIBs usually needed by IMPORTS
clauses. A lot of IETF MIBs has been successfully tested as well as
some private ones.
Methods
"new"
"SNMP::MIB::Compiler::new()" class method
To create a new MIB, send a new() message to the SNMP::MIB::Compiler class. For example:
my $mib = new SNMP::MIB::Compiler;
This will create an empty MIB ready to accept both SMIv1 and SMIv2 MIBs. A lot of attributes can be (des)activated to obtain a more or
less strict and verbose compiler. The created object is returned.
"add_path"
"SNMP::MIB::Compiler::add_path(p1[,p2[,p3]])" object method
Add one or more directories to the search path. This path is used to locate a MIB file when the 'compile' method is invoqued. The
current list of paths is returned.
Example:
# search MIBs in the "mibs" directory (relative
# to cwd) and in "/foo/bar/mibs" (absolute path)
$mib->add_path('./mibs', '/foo/bar/mibs');
"add_extension"
"SNMP::MIB::Compiler::add_extension(e1[,e2[,e3]])" object method
Add one or more extensions to the extension list. These extensions are used to locate a MIB file when the 'compile' method is invo-
qued. All extensions are tested for each directory specified by the add_path() method until one match. The current list of extensions
is returned.
Example:
$mib->add_path('./mibs', '/foo/bar/mibs');
$mib->add_extension('', '.mib');
$mib->compile('FOO');
The order is "./mibs/FOO", "./mibs/FOO.mib", "/foo/bar/mibs/FOO"
and "/foo/bar/mibs/FOO.mib".
"repository"
"SNMP::MIB::Compiler::repository([dir])" object method
If 'dir' is defined, set the directory where compiled MIBs will be stored (using the compile() method) or loaded (using the load()
method). The repository MUST be initialized before a MIB can be compiled or loaded. The current repository is returned.
Example:
$mib->repository('./out');
print "Current repository is ", $mib->repository, "
";
"compile"
"SNMP::MIB::Compiler::compile(mib)" object method
Compile a MIB given its name. All information contained in this MIB is inserted into the current object and is stored into a file in
the repository (see the 'make_dump' attribute). The choosen name is the same as the real MIB name (defined in the MIB itself). If a
precompiled MIB already exists in the repository and is newer than the given file, it is used instead of a real compilation (see the
'use_dump' attribute). The compiler can be recursive if IMPORTS clauses are followed (see the 'do_imports' attribute) and in that
case, uncompiled MIB names must be explict according to paths and extensions critaeria (see add_path() and add_extensions() methods).
The current object is returned.
"load"
"SNMP::MIB::Compiler::load(mib)" object method
Load a precompiled MIB given its name. All information contained in this MIB is inserted into the current object. The file is searched
in the repository which MUST be initialized. In case of success, returns 1 else returns 0.
Example:
$mib->load('SNMPv2-SMI');
$mib->load('SNMPv2-MIB');
"resolve_oid"
"SNMP::MIB::Compiler::resolve_oid(node)" object method
Example:
print $mib->resolve_oid('ifInOctets'), "
";
"convert_oid"
"SNMP::MIB::Compiler::convert_oid(oid)" object method
Example:
print $mib->convert_oid('1.3.6.1.2.1.31.1.1.1.10'), "
";
"tree"
"SNMP::MIB::Compiler::tree(node)" object method
Example:
print $mib->tree('ifMIB');
Attributes
"do_imports"
"accept_smiv1"
"accept_smiv2"
"allow_underscore"
"allow_lowcase_hstrings"
"allow_lowcase_bstrings"
"make_dump"
"dumpext"
"use_dump"
"debug_lexer"
"debug_recursive"
BUGS
Currently, it is more a TODO list than a bug list.
- not enough documentation
- not enough methods
- not enough test scripts
- find a better name for compiled MIBs than 'dump's.. even if they are no more than dumps.
If your MIBs can't be compiled by this module, please, double check their syntax. If you really think that they are correct, send them to
me including their "uncommon" dependencies.
AUTHOR
Fabien Tassin (fta@oleane.net)
COPYRIGHT
Copyright 1998, 1999, Fabien Tassin. All rights reserved. It may be used and modified freely, but I do request that this copyright notice
remain attached to the file. You may modify this module as you wish, but if you redistribute a modified version, please attach a note list-
ing the modifications you have made.
perl v5.8.8 2002-02-21 SNMP::MIB::Compiler(3pm)