bionic (3) snmpa_mpd.3erl.gz

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.