查看源代码 snmpa_discovery_handler 行为 (snmp v5.18)

SNMP 代理发现处理程序的行为模块。

此模块定义了代理发现处理程序的行为。一个符合 snmpa_discovery_handler 的模块必须导出以下函数

它们的语义和确切签名在下面解释。

概要

回调

此函数在发现过程的第 1 阶段结束时调用。它应该返回原子 ignore{ok, usm_entry() | [usm_entry()]}。有关更多信息,请参阅 usm_entry()usm_entry/1,3

回调

链接到此回调

stage1_finish(TargetName, ManagerEngineID, ExtraInfo)

查看源代码
-callback stage1_finish(TargetName, ManagerEngineID, ExtraInfo) ->
                           ignore | {ok, UsmEntry | [UsmEntry]} | {ok, UsmEntry | [UsmEntry], NewExtraInfo}
                           when
                               TargetName :: snmp_target_mib:name(),
                               ManagerEngineID :: snmp_framework_mib:engine_id(),
                               ExtraInfo :: term(),
                               UsmEntry :: snmp_user_based_sm_mib:usm_entry(),
                               NewExtraInfo :: term().

此函数在发现过程的第 1 阶段结束时调用。它应该返回原子 ignore{ok, usm_entry() | [usm_entry()]}。有关更多信息,请参阅 usm_entry()usm_entry/1,3

如果函数返回 ignore,则假定以下两种情况之一:

  • (发现函数的)调用者将在以后进行所需的更新。
  • 回调函数本身进行了更新。

在任何一种情况下,代理都不会执行任何操作,而是返回检索到的 ManagerEngineID(有关更多信息,请参阅 snmpa:discovery/6)并可能继续发现过程的第 2 阶段。

ExtraInfo 参数从 snmpa:discovery/6 函数传递。

此函数可能会返回更新后的 NewExtraInfo,该信息将在后续对回调函数的调用中使用。 旨在供将来使用。

此函数的目的是生成代理中 usm 处理所需的 usm 相关安全数据。 具体来说,是更新 usmUserTable。

当返回 usm_entry() 元组(或此类元组的列表)时,此数据将被(主)代理添加到 usmUserTable 中。

当返回 usm_entry() 元组(或此类元组的列表)时,此数据将被(主)代理添加到 usmUserTable 中。

注意

请注意,该函数不检查此条目是否已存在。

注意

请注意,此函数在主代理进程的上下文中执行。