snmpa_mpd(3erl)
π snmpa_mpd(3erl) π
okay bestie, this is the Erlang Module Definition page for snmpa_mpd β the Message Processing and Dispatch module for the SNMP agent. periodt. π
π 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). no cap, that's the whole vibe. π¦
π DATA TYPES π
See the data types in snmpa_conf.
π¦ EXPORTS π¦
okay so here's the export menu β every function, no skips, no cap:
π
init π
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. lowkey doing setup main character work. β¨
π
process_packet π
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. it's giving "packet goes in, agent gets the answer" energy. π
Note: Note that the use of theLocalEngineIDargument is only intended for special cases, if the agent is to "emulate" multiple EngineIDs! By default, the agent uses the value ofSnmpEngineID(seeSNMP-FRAMEWORK-MIB).
π
generate_response_msg π
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. response packet slay. π₯
Note: Note that the use of theLocalEngineIDargument is only intended for special cases, if the agent is to "emulate" multiple EngineIDs! By default, the agent uses the value ofSnmpEngineID(seeSNMP-FRAMEWORK-MIB).
π
generate_msg π
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 through process_taddrs before passed to this function. iykyk, the address list is doing its little transformation moment. π«Ά
Note: Note that the use of theLocalEngineIDargument is only intended for special cases, if the agent is to "emulate" multiple EngineIDs! By default, the agent uses the value ofSnmpEngineID(seeSNMP-FRAMEWORK-MIB).
π
process_taddrs π
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 π
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. counter increment realness. πβ¨
π okay that's the whole snmpa_mpd(3erl) page, bestie! cute footer sign-off: Ericsson AB, snmp 5.13.5, and the snmpa_mpd(3erl) manual tag. the original footer doesn't list a date, so we're not inventing one β periodt. mwah! ππ
π¦ where this page comes from
- ubuntu noble: erlang-manpages 1:25.3.2.8+dfsg-1ubuntu4 Β· Apache-2.0
- ubuntu noble: erlang-manpages 1:25.3.2.8+dfsg-1ubuntu4.8 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms