Erlang 20

snmpm_network_interface_filter

snmpm_network_interface_filter

模块

snmpm_network_interface_filter

模块摘要

行为模块用于SNMP管理器网络接口过滤器.

描述

该模块定义了管理器网络接口过滤器的行为。一个snmpm_network_interface_filter兼容的模块必须导出以下功能:

  • accept_recv/2

  • accept_send/2

  • accept_recv_pdu/3

  • accept_send_pdu/2

他们的语义和他们的确切签名解释如下。

网络接口过滤器的目的是允许过滤消息(接受或拒绝)接收和发送。这是在两个层面上完成的:

  • 第一级在UDP入口/出口点,即紧接着接收到消息之后,在完成任何消息处理之前(accept_recv),并且在所有消息处理完成(accept_send)之后立即在发送消息之前。

  • 第二级位于MPD进入/退出点,即紧接在基本消息处理(accept_recv_pdu)之后/紧接在基本消息处理(accept_send_pdu)之前。

请注意,网络接口过滤器由应用程序(snmpm_net_ifsnmpm_net_if_mt)提供的网络接口实现使用。默认过滤器接受所有消息。

例如,网络接口过滤器可用于测试或负载调节。

传统的网络接口过滤器模块在表单上使用参数(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 | trappdu

另见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(Domain, Addr, PduType) -> boolean()

类型

在完成基本消息处理(MPD)之前调用从主代理接收到的pdu。

为了消息被拒绝,函数必须返回false