snmpc - Interface Functions to the SNMP toolkit MIB compiler
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() | relaxed_row_name_assign_check() | deprecated() | description() |
reference() | group_check() | i() | il() | imports() | module() |
module_identity() | module_compliance() | agent_capabilities() | outdir() |
no_defs() | verbosity() | warnings() | warnings_as_errors()
db() = {db, volatile|persistent|mnesia}
deprecated() = {deprecated, bool()}
relaxed_row_name_assign_check() = relaxed_row_name_assign_check
description() = description
reference() = reference
group_check() = {group_check, bool()}
i() = {i, [dir()]}
il() = {il, [dir()]}
imports() = imports
module() = {module, atom()}
module_identity() = module_identity
module_compliance() = module_compliance
agent_capabilities() = agent_capabilities
no_defs() = no_defs
outdir() = {outdir, dir()}
verbosity() = {verbosity, silence|warning|info|log|debug|trace}
warnings() = {warnings, bool()}
warnings_as_errors() = warnings_as_errors
dir() = string()
BinFileName = string()
Compiles the specified MIB file <File>.mib. The
compiled file BinFileName is called <File>.bin.
- *
- The option db specifies which database should be used for the
default instrumentation.
- *
- The option deprecated specifies if a deprecated definition should
be kept or not. If the option is false the MIB compiler will ignore all
deprecated definitions.
- *
- The option relaxed_row_name_assign_check, if present, specifies
that the row name assign check shall not be done strictly according to the
SMI (which allows only the value 1). With this option, all values greater
than zero is allowed (>= 1). This means that the error will be
converted to a warning.
By default it is not included, but if this option is present it
will be.
- *
- The option 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.
- *
- The option reference specifies if the text of the REFERENCE field,
when found in a table definition, will be included or not.
By default it is not included, but if this option is present it
will be. The reference text will be placed in the allocList field of the
mib-entry record (#me{}) for the table.
- *
- The option group_check specifies whether the mib compiler should
check the OBJECT-GROUP macro and the NOTIFICATION-GROUP macro for
correctness or not.
- *
- The option i specifies the path to search for imported (compiled)
MIB files. The directories should be strings with a trailing directory
delimiter.
- *
- The option 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.
- *
- The option imports, if present, specifies that the IMPORT statement
of the MIB shall be included in the compiled mib.
- *
- The option 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.
- *
- The option module_identity, if present, specifies that the info
part of the MODULE-IDENTITY statement of the MIB shall be included in the
compiled mib.
- *
- The option module_compliance, if present, specifies that the
MODULE-COMPLIANCE statement of the MIB shall be included (with a mib-entry
record) in the compiled mib. The mib-entry record of the module-compliance
will contain reference and module part(s) this info in the
assocList field).
- *
- The option agent_capabilities, if present, specifies that the
AGENT-CAPABILITIES statement of the MIB shall be included (with a
mib-entry record) in the compiled mib. The mib-entry record of the
agent-capabilitie will contain reference and modules part(s)
this info in the assocList field).
- *
- The option 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
compilation aborts.
- *
- The option verbosity specifies the verbosity of the SNMP mib
compiler. I.e. if warning, info, log, debug and trace messages shall be
shown.
Note that if the option warnings is true and the
option verbosity is silence, warning messages will still be
shown.
- *
- The option warnings specifies whether warning messages should be
shown.
- *
- The option warnings_as_errors, if present, specifies whether
warnings should be treated as errors.
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 recognizes 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 recognizes the extension
.bin, and invokes this function for files with that extension.