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

SNMP 代理通知传递信息接收者的行为模块。

此模块定义了通知传递信息接收者的行为。

当用户发送通知(参见 snmpa:send_notification2/3)时,用户可以选择(可选)接收传递信息(消息是否被目标接收并确认)。此行为描述了用户获取此类(传递)信息的方式。

符合 snmpa_notification_delivery_info_receiver 的模块必须导出以下函数

它们的语义及其确切签名将在下面解释。

旧版本的通知传递信息接收器模块使用 {IpAddr, PortNumber} 形式的目标参数,而不是 {Domain, Addr},如果 SNMP 代理在未更改配置以使用传输域的情况下运行,通知传递信息接收器仍将获取旧参数并像以前一样工作。

摘要

类型

此类型的链接

notification_delivery_info()

查看源码
-type notification_delivery_info() ::
          #snmpa_notification_delivery_info{tag :: term(), mod :: term(), extra :: term()}.

应如何报告(通知)传递信息。

此记录定义与 inform 传递信息相关的信息。也就是说,当发送 inform 时,有关传递(例如是否已确认)的信息将使用此记录中的信息传递。

传递将按照以下方式执行

	Mod:delivery_targets(Tag, Addresses, Extra)
	Mod:delivery_info(Tag, Address, DeliveryResult, Extra)

Extra 是用户提供的任何术语。

此记录的字段具有以下含义

  • tag = term() - 用户选择的值,用于标识此发送

  • mod = module() - 实现 snmpa_notification_delivery_info_receiver 行为的模块。

  • extra = term() - 这是用户希望在调用回调模块中的函数时提供的任何额外信息。在调用发送函数时提供。

此类型的链接

transportAddressWithPort()

查看源码 (未导出)
-type transportAddressWithPort() :: snmpa_conf:transportAddressWithPort().
此类型的链接

transportDomain()

查看源码 (未导出)
-type transportDomain() :: snmpa_conf:transportDomain().

回调

此回调的链接

delivery_info(Tag, Targets, DeliveryResult, Extra)

查看源码
-callback delivery_info(Tag, Targets, DeliveryResult, Extra) -> snmp:void()
                           when
                               Tag :: term(),
                               Targets :: [Target],
                               Target :: {transportDomain(), transportAddressWithPort()},
                               DeliveryResult :: no_response | got_response,
                               Extra :: term().

告知传递结果。

delivery_targets/3 函数的 Targets 参数中的每个目标调用此函数,请参见上文。

目的是告知 receiver 每个目标的传递结果(是否已确认通知)。

此回调的链接

delivery_targets(Tag, Targets, Extra)

查看源码
-callback delivery_targets(Tag, Targets, Extra) -> snmp:void()
                              when
                                  Tag :: term(),
                                  Targets :: [Target],
                                  Target :: {transportDomain(), transportAddressWithPort()},
                                  Extra :: term().

告知目标地址。

这是在通知传递正在进行时调用的第一个函数。它告知 receiver 哪些目标将接收通知。传递的结果将通过连续调用 delivery_info/4 函数提供,请参见下文。