View Source snmpc (snmp v5.18)
Interface Functions to the SNMP toolkit MIB compiler
The module snmpc
contains interface functions to the SNMP toolkit MIB
compiler.
See Also
erlc(1)
snmpc(command)
Summary
Functions
Checks for multiple usage of object identifiers and traps between MIBs.
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.
Functions
-spec compile(AtomFileNames | FileName) -> {ok, BinFileName} | {error, Reason} when AtomFileNames :: [atom()], FileName :: string(), BinFileName :: string(), Reason :: term().
Equivalent to compile/2
.
-spec compile(FileName, Options) -> {ok, BinFileName} | {error, Reason} when FileName :: string(), Options :: [Option], Option :: agent_capabilities | {db, volatile | persistent | mnesia} | {deprecated, boolean()} | description | {group_check, boolean()} | {i, [snmp:dir()]} | {il, [snmp:dir()]} | imports | {module, module()} | module_identity | module_compliance | no_defs | {outdir, snmp:dir()} | reference | relaxed_row_name_assign_check | {verbosity, snmp:verbosity()} | {warnings, boolean()} | {warnings_as_errors, boolean()}, BinFileName :: string(), Reason :: term().
Compiles the specified MIB file <FileName>.mib
. The
compiled file BinFileName
is called <FileName>.bin
.
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 containreference
andmodules
part(s) this info in theassocList
field).The option
db
specifies which database should be used for the default instrumentation.Default is
volatile
.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.Default is
true
.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
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
.The option
i
specifies the path to search for imported (compiled) MIB files. The directories should be strings with a trailing directory delimiter.Default is
["./"]
.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 containreference
andmodule
part(s) this info in theassocList
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
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
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
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
istrue
and the optionverbosity
issilence
, warning messages will still be shown.The option
warnings
specifies whether warning messages should be shown.Default is
true
.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 also be invoked from the OS command line by these two
commands; erlc
and snmpc
.
erlc
-erlc
recognizes the extension.mib
, and invokes the SNMP MIB compiler for files with that extension. The optionsdb
,group_check
,deprecated
,description
,verbosity
,imports
andmodule_identity
have to be specified toerlc
using the syntax+term
.See
erlc(1)
for details.snmpc
-snmpc
is an escript that provides a more traditional interface to the MIB compiler.See snmpc(command) for details.
-spec is_consistent(FileNames) -> ok | {error, Reason} when FileNames :: [MibName], MibName :: string(), Reason :: term().
Checks for multiple usage of object identifiers and traps between MIBs.
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.