The module snmp_mpd implements the version independent
Message Processing and
Dispatch functionality in SNMP. It is supposed to be used from
a Network Interface process (net_if).
init_mpd(Options) -> mpd_state()
Options = [Option]Option = v1 | v2 | v3This function can be called from the net_if process at startup. The options list defines which versions to use.
It also initializes some SNMP counters.
Packet = binary()TDomain = snmpUDPDomainTAddress = {Ip, Udp}Ip = {integer(), integer(), integer(), integer()}Udp = integer()State = mpd_state()Vsn = 'version-1' | 'version-2' | 'version-3'Pdu = #pduPduMs = integer()ACMData = acm_data()Processes an incoming packet. Performs authentication and decryption as necessary. The return values should be passed the agent.
generate_response_msg(Vsn, RePdu, Type, ACMData) ->
{ok, Packet} | {discarded, Reason}
Vsn = 'version-1' | 'version-2' | 'version-3'RePdu = #pduType = atom()ACMData = acm_data()Packet = binary()Generates a possibly encrypted response packet to be sent to the
network. Type is the #pdu.type of the original
request.
generate_msg(Vsn, Pdu, MsgData, To) ->
{ok, PacketsAndAddresses} | {discarded, Reason}
Vsn = 'version-1' | 'version-2' | 'version-3'Pdu = #pduMsgData = msg_data()To = [dest_addrs()]PacketsAndAddresses = [{TDomain, TAddress, Packet}]TDomain = snmpUDPDomainTAddress = {Ip, Udp}Ip = {integer(), integer(), integer(), integer()}Udp = integer()Packet = binary()Generates a possibly encrypted request packet to be sent to the network.
MsgData is the message specific data used in
the SNMP message. This value is received in a send_pdu
or send_pdu_req message from the agent. In SNMPv1 and
SNMPv2c, this message data is the community string. In
SNMPv3, it is the context information.
To is a list of the destination addresses and
their corresponding security parameters. This value is
also received from the requests mentioned above.
discarded_pdu(Variable) -> void()
Variable = atom()Increments the variable associated with a discarded pdu.
This function can be used when the net_if process receives a
discarded_pdu message from the agent.