Erlang logo
User's Guide
Reference Manual
Release Notes

Simple Network Management Protocol (SNMP)
Reference Manual
Version 4.22.1

Expand All
Contract All

Table of Contents





SNMP MIB compiler frontend


The snmpc program provides a way to run the SNMP MIB compiler of the Erlang system.


snmpc [options] file.mib | file.bin

snmpc compile a SNMP MIB file, see compile/1,2 for more info.

It can also be used to generate a header file (.hrl) with definitions of Erlang constants for the objects in the MIB, see mib_to_hrl/1.

Compiler options

The following options are supported (note that most of these relate to the compilation of the MIB file):


Prints help info.


Prints application and mib format version.

--verbosity verbosity

Print debug info.

verbosity = trace | debug | log | info | silence

Defaults to silence.

--warnings | --W

Print warning messages.

--wae | --Werror

Warnings as errors. Indicates that warnings shall be treated as errors.

--o directory

The directory where the compiler should place the output files. If not specified, output files will be placed in the current working directory.

--i Directory

Specifies the path to search for imported (compiled) MIB files. By default, the current working directory is always included.

This option can be present several times, each time specifying one path.

--il Directory

This option (include_lib), 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.


This option (skip group check), if present, disables the group check of the mib compiler. That is, should the OBJECT-GROUP and the NOTIFICATION-GROUP macro(s) be checked for correctness or not.


Keep deprecated definition(s). If not specified the compiler will ignore deprecated definitions.


The DESCRIPTION field will be included.


The REFERENCE field will be included.


The IMPORTS field will be included.


The MODULE-IDENTITY field will be included.


The MODULE-COMPLIANCE field will be included.


The AGENT-CAPABILITIES field will be included.

--mod module

The module which implements all the instrumentation functions.

The name of all instrumentation functions must be the same as the corresponding managed object it implements.


The default instrumentation functions will not be used if a managed object have no instrumentation function. Instead this will be reported as an error, and the compilation aborts.


This option, 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.