檢視原始碼 snmpm_network_interface_filter 行為 (snmp v5.18)
SNMP 管理器網路介面篩選器的行為模組。
此模組定義了管理器網路介面篩選器的行為。符合 snmpm_network_interface_filter
的模組必須匯出以下函式
它們的語意和確切簽名將在下面解釋。
網路介面篩選器的目的是允許篩選(接受或拒絕)接收和傳送的訊息。這在兩個層次上完成
- 第一層是在 UDP 的進入/退出點,即在收到訊息後立即進行,在任何訊息處理完成之前 (accept_recv),以及在傳送訊息之前,在所有訊息處理完成之後 (accept_send)。
- 第二層是在 MPD 的進入/退出點,即在基本訊息處理完成後立即進行 (accept_recv_pdu) / 在基本訊息處理之前立即進行 (accept_send_pdu)。
請注意,網路介面篩選器是由應用程式提供的網路介面實作(snmpm_net_if
和 snmpm_net_if_mt
)使用。預設篩選器接受所有訊息。
網路介面篩選器例如可用於測試或負載調節。
舊版網路介面篩選器模組使用的引數格式為 (IpAddr, PortNumber,...)
而不是 (Domain, Addr, ...)
,如果 SNMP 管理器在未變更設定以使用傳輸網域的情況下執行,則網路介面篩選器仍會取得舊的引數並像以前一樣運作。
摘要
回呼
在接收到訊息時呼叫(在任何處理完成之前)。
在基本訊息處理 (MPD) 完成後呼叫,但在將 pdu 交給伺服器進行主要處理之前。
在傳送訊息之前呼叫(在所有處理完成之後)。
當從主代理接收到 pdu 時,在完成基本訊息處理 (MPD) 之前呼叫。
類型
-type pdu_type() :: snmpm:pdu_type().
-type transportAddressWithPort() :: snmpa_conf:transportAddressWithPort().
-type transportDomain() :: snmpa_conf:transportDomain().
回呼
-callback accept_recv(Domain, Addr) -> boolean() when Domain :: transportDomain(), Addr :: transportAddressWithPort().
在接收到訊息時呼叫(在任何處理完成之前)。
若要拒絕訊息,函式必須傳回 false。
-callback accept_recv_pdu(Domain, Addr, PduType) -> boolean() when Domain :: transportDomain(), Addr :: transportAddressWithPort(), PduType :: pdu_type().
在基本訊息處理 (MPD) 完成後呼叫,但在將 pdu 交給伺服器進行主要處理之前。
若要拒絕 pdu,函式必須傳回 false。
-callback accept_send(Domain, Addr) -> boolean() when Domain :: transportDomain(), Addr :: transportAddressWithPort().
在傳送訊息之前呼叫(在所有處理完成之後)。
若要拒絕訊息,函式必須傳回 false。
-callback accept_send_pdu(Domain, Addr, PduType) -> boolean() when Domain :: transportDomain(), Addr :: transportAddressWithPort(), PduType :: pdu_type().
當從主代理接收到 pdu 時,在完成基本訊息處理 (MPD) 之前呼叫。
若要拒絕訊息,函式必須傳回 false。