查看源代码 snmpc (snmp v5.18)

SNMP 工具包 MIB 编译器的接口函数

模块 snmpc 包含 SNMP 工具包 MIB 编译器的接口函数。

另请参阅

erlc(1)

snmpc(命令)

摘要

函数

等同于 compile/2

编译指定的 MIB 文件 <FileName>.mib。 编译后的文件 BinFileName 被命名为 <FileName>.bin

检查 MIB 之间对象标识符和陷阱的多次使用。

生成一个 .hrl 文件,其中包含 MIB 中对象的 Erlang 常量定义。 .hrl 文件被命名为 <MibName>.hrl。 MIB 必须已编译,并且存在于当前目录中。

函数

-spec compile(AtomFileNames | FileName) -> {ok, BinFileName} | {error, Reason}
                 when
                     AtomFileNames :: [atom()],
                     FileName :: string(),
                     BinFileName :: string(),
                     Reason :: term().

等同于 compile/2

链接到此函数

compile(FileName, Options)

查看源代码
-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().

编译指定的 MIB 文件 <FileName>.mib。 编译后的文件 BinFileName 被命名为 <FileName>.bin

  • 如果存在选项 agent_capabilities,则指定 MIB 的 AGENT-CAPABILITIES 语句应包含在已编译的 mib 中(带有 mib-entry 记录)。agent-capabilitie 的 mib-entry 记录将包含 referencemodules 部分(此信息在 assocList 字段中)。

  • 选项 db 指定默认检测应使用哪个数据库。

    默认值为 volatile

  • 选项 deprecated 指定是否应保留已弃用的定义。如果该选项为 false,则 MIB 编译器将忽略所有已弃用的定义。

    默认值为 true

  • 选项 description 指定是否包含 DESCRIPTION 字段的文本。

    默认情况下不包含,但是如果存在此选项,则会包含。

  • 选项 group_check 指定 MIB 编译器是否应检查 OBJECT-GROUP 宏和 NOTIFICATION-GROUP 宏的正确性。

    默认值为 true

  • 选项 i 指定搜索导入(已编译)MIB 文件的路径。目录应为带有尾部目录分隔符的字符串。

    默认值为 ["./"]

  • 选项 il (include_lib) 也指定要搜索导入的 MIB 的目录列表。它假定目录名称中的第一个元素对应于一个 OTP 应用程序。编译器将找到当前安装的版本。例如,值 ["snmp/mibs/"] 将被替换为 ["snmp-3.1.1/mibs/"](或者系统中当前版本可能是什么)。当前目录和 <snmp-home>/priv/mibs/ 始终列在包含路径的最后。

  • 如果存在选项 imports,则指定 MIB 的 IMPORT 语句应包含在已编译的 mib 中。

  • 如果存在选项 module,则指定一个模块的名称,该模块为 MIB 实现所有检测函数。

    所有检测函数的名称必须与其实现的相应被管理对象相同。

  • 如果存在选项 module_identity,则指定 MIB 的 MODULE-IDENTITY 语句的 info 部分应包含在已编译的 mib 中。

  • 如果存在选项 module_compliance,则指定 MIB 的 MODULE-COMPLIANCE 语句应包含在已编译的 mib 中(带有 mib-entry 记录)。module-compliance 的 mib-entry 记录将包含 referencemodule 部分(此信息在 assocList 字段中)。

  • 如果存在选项 no_defs,则指定如果被管理对象没有检测函数,则不应使用默认检测函数,而是将其报告为错误,并且编译中止。

  • 选项 reference 指定是否包含在表定义中找到的 REFERENCE 字段的文本。

    默认情况下不包含,但是如果存在此选项,则会包含。引用文本将放置在表的 mib-entry 记录 (#me{}) 的 allocList 字段中。

  • 如果存在选项 relaxed_row_name_assign_check,则指定行名称分配检查不应严格按照 SMI(仅允许值 1)执行。使用此选项,允许所有大于零的值(>= 1)。这意味着该错误将转换为警告。

    默认情况下不包含,但是如果存在此选项,则会包含。

  • 选项 verbosity 指定 SNMP mib 编译器的详细程度。即,是否应显示警告、信息、日志、调试和跟踪消息。

    默认值为 silence

    请注意,如果选项 warningstrue 且选项 verbositysilence,则仍会显示警告消息。

  • 选项 warnings 指定是否应显示警告消息。

    默认值为 true

  • 如果存在选项 warnings_as_errors,则指定是否应将警告视为错误。

MIB 编译器理解 SMIv1 和 SMIv2 MIB。它使用 MODULE-IDENTITY 语句来确定 MIB 是版本 1 还是版本 2。

也可以通过以下两个命令从 OS 命令行调用 MIB 编译器: erlcsnmpc

  • erlc - erlc 识别扩展名 .mib,并为具有该扩展名的文件调用 SNMP MIB 编译器。选项 dbgroup_checkdeprecateddescriptionverbosityimportsmodule_identity 必须使用语法 +term 指定给 erlc

    有关详细信息,请参阅 erlc(1)

  • snmpc - snmpc 是一个 escript,它为 MIB 编译器提供更传统的接口。

    有关详细信息,请参阅 snmpc(命令)

链接到此函数

is_consistent(FileNames)

查看源代码
-spec is_consistent(FileNames) -> ok | {error, Reason}
                       when FileNames :: [MibName], MibName :: string(), Reason :: term().

检查 MIB 之间对象标识符和陷阱的多次使用。

生成一个 .hrl 文件,其中包含 MIB 中对象的 Erlang 常量定义。 .hrl 文件被命名为 <MibName>.hrl。 MIB 必须已编译,并且存在于当前目录中。

可以使用命令 erlc 从 OS 命令行调用 mib_to_hrl 生成器。 erlc 识别扩展名 .bin,并为具有该扩展名的文件调用此函数。