Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_all bug

NAME

       snmpa_mpd - Message Processing and Dispatch module for the SNMP agent

DESCRIPTION

       The  module  snmpa_mpd  implements the version independent Message Processing and Dispatch
       functionality in SNMP for the agent. It is supposed to be used from  a  Network  Interface
       process (Definition of Agent Net if).

DATA TYPES

       See the  data types in snmpa_conf.

EXPORTS

       init(Vsns) -> mpd_state()

              Types:

                 Vsns = [Vsn]
                 Vsn = v1 | v2 | v3

              This  function  can be called from the net_if process at start-up. The options list
              defines which versions to use.

              It also initializes some SNMP counters.

       process_packet(Packet, From, State, NoteStore, Log) -> {ok, Vsn, Pdu,  PduMS,  ACMData}  |
       {discarded, Reason} | {discovery, DiscoPacket}
       process_packet(Packet,  From,  LocalEngineID,  State,  NoteStore,  Log)  -> {ok, Vsn, Pdu,
       PduMS, ACMData} | {discarded, Reason} | {discovery, DiscoPacket}

              Types:

                 Packet = binary()
                 From = {TDomain, TAddr}
                 TDomain = transportDomainUdpIpv4 | transportDomainUdpIpv6
                 TAddr = {IpAddr, IpPort}
                 LocalEngineID = string()
                 IpAddr = inet:ip_address()
                 IpPort = inet:port_number()
                 State = mpd_state()
                 NoteStore = pid()
                 Log = snmp_log()
                 Vsn = 'version-1' | 'version-2' | 'version-3'
                 Pdu = #pdu
                 PduMs = integer()
                 ACMData = acm_data()
                 Reason = term()
                 DiscoPacket = binary()

              Processes an incoming packet. Performs authentication and decryption as  necessary.
              The return values should be passed to the agent.

          Note:
              Note that the use of the LocalEngineID argument is only intended for special cases,
              if the agent is to "emulate" multiple EngineIDs! By default,  the  agent  uses  the
              value of SnmpEngineID (see SNMP-FRAMEWORK-MIB).

       generate_response_msg(Vsn,  RePdu,  Type,  ACMData,  Log)  ->  {ok,  Packet} | {discarded,
       Reason}
       generate_response_msg(Vsn, RePdu, Type, ACMData, LocalEngineID, Log)  ->  {ok,  Packet}  |
       {discarded, Reason}

              Types:

                 Vsn = 'version-1' | 'version-2' | 'version-3'
                 RePdu = #pdu
                 Type = atom()
                 ACMData = acm_data()
                 LocalEngineID = string()
                 Packet = binary()

              Generates  a  possibly encrypted response packet to be sent to the network. Type is
              the #pdu.type of the original request.

          Note:
              Note that the use of the LocalEngineID argument is only intended for special cases,
              if  the  agent  is  to "emulate" multiple EngineIDs! By default, the agent uses the
              value of SnmpEngineID (see SNMP-FRAMEWORK-MIB).

       generate_msg(Vsn, NoteStore, Pdu, MsgData, To) -> {ok, PacketsAndAddresses} |  {discarded,
       Reason}
       generate_msg(Vsn, NoteStore, Pdu, MsgData, LocalEngineID, To) -> {ok, PacketsAndAddresses}
       | {discarded, Reason}

              Types:

                 Vsn = 'version-1' | 'version-2' | 'version-3'
                 NoteStore = pid()
                 Pdu = #pdu
                 MsgData = msg_data()
                 LocalEngineID = string()
                 To = [dest_addrs()]
                 PacketsAndAddresses = [{TDomain, TAddress, Packet}]
                 TDomain = snmpUDPDomain
                 TAddress = {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 destination addresses and their corresponding security parameters.
              This value is received in the same message from  the  agent  and  then  transformed
              trough process_taddrs before passed to this function.

          Note:
              Note that the use of the LocalEngineID argument is only intended for special cases,
              if the agent is to "emulate" multiple EngineIDs! By default,  the  agent  uses  the
              value of SnmpEngineID (see SNMP-FRAMEWORK-MIB).

       process_taddrs(TDests) -> Dests

              Types:

                 TDests = [TDest]
                 TDest = {{TDomain, TAddr}, SecData} | {TDomain, TAddr}
                 TDomain = term() % Not at tuple
                 TAddr = term()
                 SecData = term()
                 Dests = [Dest]
                 Dest = {{Domain, Addr}, SecData} | {Domain, Addr}
                 Domain = transportDomain()
                 Addr = transportAddress() % Depends on Domain

              Transforms addresses from internal MIB format to one more useful to Agent Net if.

              See also generate_msg.

       discarded_pdu(Variable) -> void()

              Types:

                 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.