snmpa_network_interface_filter
snmpa_network_interface_filter
模块
snmpa_network_interface_filter
模块摘要
行为模块用于SNMP代理网络-接口过滤器.
描述
该模块定义代理网络接口过滤器的行为。一个snmpa_network_interface_filter
兼容的模块必须导出以下功能:
accept_recv/2
accept_send/2
accept_recv_pdu/3
accept_send_pdu/2
下面将解释它们的语义和它们的确切签名。
网络接口过滤器的目的是允许过滤消息(接受或拒绝)接收和发送。这是在两个层面上完成的:
- 第一级位于传输入口/出口点,即在完成任何消息处理(accept_recv)之前立即收到消息之后,并在所有消息处理完成(accept_send)后立即发送消息之前。
- 第二级位于MPD进入/退出点,即紧接在基本消息处理(accept_recv_pdu)之后/紧接在基本消息处理(accept_send_pdu)之前。
请注意,网络接口过滤器是由application(snmpa_net_if
)提供的网络接口实现使用的。默认过滤器接受所有消息。
网络接口过滤器可以例如在测试或负载调节期间使用。如果预期的用途是负载调节,另请参见req_limit
功能register_notification_filter
。
传统网络接口过滤器模块在表单上使用参数(IpAddr, PortNumber,...)
而不是(Domain, Addr, ...)
,并且如果SNMP代理程序在不更改配置以使用传输域的情况下运行,则网络接口过滤器仍将获得旧参数并且像以前一样工作。
数据类型
port() = integer() > 0
pdu_type() = 'get-request' | 'get-next-request' | 'get-response' |
'set-request' | trap | 'get-bulk-request' | 'inform-request' |
report
另见data types insnmpa_conf
。
输出
accept_recv(Domain, Addr) -> boolean()
类型
在接收到消息时调用(在任何
处理完成之前)。
为了消息被丢弃,函数必须
返回false
。
accept_send(Domain, Addr) -> boolean()
类型
在发送消息之前调用(所有
处理完成后)。
为了消息被丢弃,函数必须
返回false
。
accept_recv_pdu(Domain, Addr, PduType) -> boolean()
类型
在基本消息处理(MPD)完成之后,但在将pdu移交给主代理进行主处理之前调用。
为了丢弃pdu,函数必须
返回false
。
accept_send_pdu(Targets, PduType) -> Reply
类型
在完成基本消息处理(MPD)之前调用从主代理接收到的pdu。
要一起丢弃该消息,该函数必须
返回false
。
请注意,此函数可以通过返回更新的列表()来过滤掉目标(但不
添加自己的目标)。TargetsNewTargets