snmp_pdus
snmp_pdus
模块
snmp_pdus
模块摘要
SNMP PDU的编解码功能
描述
在使用这个模块之前,应该仔细研究RFC1157,RFC1905和/或RFC2272 snmp_pdus
。
模块snmp_pdus
包含SNMP协议数据单元%28PDU%29的编码和解码功能。简而言之,这个模块将字节列表转换为Erlang记录表示,反之亦然。可以在文件中找到记录定义。snmp/include/snmp_types.hrl
如果使用snmpv 3,则包括snmp_types.hrl
必须定义常量SNMP_USE_V3
在头文件包含之前。例子:
-define(SNMP_USE_V3, true).
-include_lib("snmp/include/snmp_types.hrl").
在编写您自己的Net if进程时,必须显式地进行编码和解码。
出口
dec_message([byte()]) -> Message
类型
将字节列表解码为SNMP消息。注意,如果有v3消息,则msgSecurityParameters
没有解码。它们必须通过对特定于安全模型的解码功能的调用来显式解码。dec_usm_security_parameters/1
也请注意,如果scopedPDU
被加密,则八进制字符串被编码。encryptedPDU
将出现在data
场。
dec_message_only([byte()]) -> Message
类型
将字节列表解码为SNMP消息,但不解码消息的数据部分。这意味着,数据仍然是一个字节列表,通常是一个编码的PDU
(v1和V2)或一个编码的和可能加密的scopedPDU
(v3)。
dec_pdu([byte()]) -> Pdu
类型
将字节列表解码为SNMP PDU。
dec_scoped_pdu([byte()]) -> ScopedPdu
类型
将字节列表解码为SNMP ScopedPdu。
dec_scoped_pdu_data([byte()]) -> ScopedPduData
类型
将字节列表解码为范围PDU记录,或者(如果范围PDU被加密)为字节列表。
dec_usm_security_parameters([byte()]) -> UsmSecParams
类型
将字节列表解码为SNMP UsmSecurityParameters
enc_encrypted_scoped_pdu(EncryptedScopedPdu) -> [byte()]
类型
将加密的SNMP ScopedPdu编码为可用作记录中data
字段的OCTET STRING message
,以后可以通过调用进行编码enc_message_only/1
。
函数的任何时候都应该使用此函数。ScopedPDU
被加密了。
enc_message(Message) -> [byte()]
类型
将消息记录编码为字节列表。
enc_message_only(Message) -> [byte()]
类型
Message
是data
假定字段被编码的记录(字节列表)。如果存在v1或v2消息,则该data
字段是编码的PDU
,并且如果存在v3消息,data
则是编码的并且可能是加密的scopedPDU
。
enc_pdu(Pd) -> [byte()]
类型
将SNMP PDU编码为字节列表。
enc_scoped_pdu(ScopedPdu) -> [byte()]
类型
将SNMP ScopedPdu编码成可以加密的字节列表,并在加密后通过呼叫编码enc_encrypted_scoped_pdu/1
; 或者它可以用作记录中的data
字段message
,然后可以用它来编码enc_message_only/1
。
enc_usm_security_parameters(UsmSecParams) -> [byte()]
类型
将SNMP UsmSecurityParameters编码为字节列表。