Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

snmpa_mpd (3erl)

Name

snmpa_mpd - Message Processing and Dispatch module for the SNMP agent

Synopsis

Please see following description for synopsis

Description

snmpa_mpd(3)               Erlang Module Definition               snmpa_mpd(3)



NAME
       snmpa_mpd - Message Processing and Dispatch module for the SNMP agent

DESCRIPTION
       The  module  snmpa_mpd  implements the version independent Message Pro-
       cessing and Dispatch functionality in SNMP for the agent.  It  is  sup-
       posed  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, Dis-
       coPacket}

              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, PacketsAndAd-
       dresses} | {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 dis-
              carded_pdu message from the agent.



Ericsson AB                        snmp 5.11                      snmpa_mpd(3)