The module snmpc
contains interface functions to the
SNMP toolkit MIB compiler.
compile(File)
compile(File, Options) -> {ok, BinFileName} | {error, Reason}
Types:
File = string()
Options = [opt()]
opt() = db() | deprecated() | description() | group_check() |
i() | il() | imports() | module() | module_identity() | outdir() |
no_defs() | verbosity() | warnings()
db() = {db, volatile|persistent|mnesia}
deprecated() = {deprecated, bool()}
description() = description
group_check() = {group_check, bool()}
i() = {i, [dir()]}
il() = {il, [dir()]}
imports() = imports
module() = {module, atom()}
module_identity() = module_identity
no_defs() = no_defs
outdir() = {outdir, dir()}
verbosity() = {verbosity, silence|warning|info|log|debug|trace}
warnings() = {warnings, bool()}
dir() = string()
BinFileName = string()
Compiles the specified MIB file <File>.mib
. The
compiled file BinFileName
is called <File>.bin
.
db
specifies which database should
be used for the default instrumentation. Default is
volatile
.
deprecated
specifies if a deprecated
definition should be kept or not. If the option is
false the MIB compiler will ignore all deprecated
definitions. Default is true
.
description
specifies if the text
of the DESCRIPTION field will be included or not. By default
it is not included, but if this option is present it will
be.
group_check
specifies whether the
mib compiler should check the OBJECT-GROUP macro and
the NOTIFICATION-GROUP macro for correctness or not.
Default is true
.
i
specifies the path to search for
imported (compiled) MIB files. The directories should be
strings with a trailing directory delimiter. Default is
["./"]
.
il
(include_lib) also specifies a
list of directories to search for imported MIBs. It
assumes that the first element in the directory name
corresponds to an OTP application. The compiler will find
the current installed version. For example, the value
["snmp/mibs/"] will be replaced by ["snmp-3.1.1/mibs/"]
(or what the current version may be in the system). The
current directory and the <snmp-home>/priv/mibs/
are always listed last in the include path.
imports
, if present, specifies that the
IMPORT statement of the MIB shall be included in the compiled mib.
module
, if present, specifies the
name of a module which implements all instrumentation
functions for the MIB. The name of all instrumentation
functions must be the same as the corresponding managed
object it implements.
module_identity
, if present, specifies
that the info part of the MODULE-IDENTITY statement of the MIB
shall be included in the compiled mib.
no_defs
, if present, specifies
that if a managed object does not have an instrumentation
function, the default instrumentation function should NOT
be used, instead this is reported as an error, and the
compilatoin aborts.
verbosity
specifies the verbosity of
the SNMP mib compiler. I.e. if warning, info, log, debug
and trace messages shall be shown. Default is silence
.
Note that if the option warnings
is true
and the
option verbosity
is silence
, warning messages will
still be shown.
warnings
specifies whether warning
messages should be shown. Default is true
.
The MIB compiler understands both SMIv1 and SMIv2 MIBs. It
uses the MODULE-IDENTITY
statement to determine if the MIB is
version 1 or 2.
The MIB compiler can be invoked from the OS command line by
using the command erlc
. erlc
recognises the
extension .mib
, and invokes the SNMP MIB compiler for
files with that extension. The options db
,
group_check
, deprecated
, description
,
verbosity
, imports
and module_identity
have to be specified to erlc
using the syntax
+term
. See erlc(1)
for details.
is_consistent(Mibs) -> ok | {error, Reason}
Types:
Mibs = [MibName]
MibName = string()
Checks for multiple usage of object identifiers and traps between MIBs.
mib_to_hrl(MibName) -> ok | {error, Reason}
Types:
MibName = string()
Generates a .hrl
file with definitions of Erlang
constants for the objects in the MIB. The .hrl
file is
called <MibName>.hrl
. The MIB must be compiled, and
present in the current directory.
The mib_to_hrl
generator can be invoked from the OS
command line by using the command erlc
. erlc
recognises the extension .bin
, and invokes this function
for files with that extension.
erlc(1)