查看源代码 snmpa_discovery_handler 行为 (snmp v5.18)
SNMP 代理发现处理程序的行为模块。
此模块定义了代理发现处理程序的行为。一个符合 snmpa_discovery_handler
的模块必须导出以下函数
它们的语义和确切签名在下面解释。
概要
回调
此函数在发现过程的第 1 阶段结束时调用。它应该返回原子 ignore
或 {ok, usm_entry() | [usm_entry()]}
。有关更多信息,请参阅 usm_entry() 和 usm_entry/1,3。
回调
-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
中。
注意
请注意,该函数不检查此条目是否已存在。
注意
请注意,此函数在主代理进程的上下文中执行。