---
name: "snmpm_mpd"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/snmpm_mpd"
---

# snmpm\_mpd(3erl)

Message Processing and Dispatch module for the SNMP manager

## NAME

snmpm\_mpd - Message Processing and Dispatch module for the SNMP manager

## DESCRIPTION

The module *snmpm\_mpd* implements the version independent Message Processing and Dispatch functionality in SNMP for the manager. It is supposed to be used from a Network Interface process (Definition of Manager Net if).

Legacy API function *process\_msg/7* that has got separate *IpAddr* and *PortNumber* arguments still works as before for backwards compatibility reasons.

## 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\_msg(Msg, Domain, Addr, State, NoteStore, Logger) -\> {ok, Vsn, Pdu, PduMS, MsgData} \| {discarded, Reason}**\

Types:

Msg = binary()\
 Domain = transportDomainUdpIpv4 \| transportDomainUdpIpv6\
 Addr = {inet:ip\_address(), inet:port\_number()} \
 State = mpd\_state()\
 NoteStore = pid()\
 Logger = function()\
 Vsn = 'version-1' \| 'version-2' \| 'version-3'\
 Pdu = #pdu\
 PduMs = integer()\
 MsgData = term()\

Processes an incoming message. Performs authentication and decryption as necessary. The return values should be passed the manager server.

*NoteStore* is the *pid()* of the note-store process.

*Logger* is the function used for audit trail logging.

In the case when the pdu type is *report*, *MsgData* is either *ok* or *{error, ReqId, Reason}*.

**generate\_msg(Vsn, NoteStore, Pdu, MsgData, Logger) -\> {ok, Packet} \| {discarded, Reason}**\

Types:

Vsn = 'version-1' \| 'version-2' \| 'version-3'\
 NoteStore = pid()\
 Pdu = #pdu\
 MsgData = term()\
 Logger = function()\
 Packet = binary()\
 Reason = term()\

Generates a possibly encrypted packet to be sent to the network.

*NoteStore* is the *pid()* of the note-store process.

*MsgData* is the message specific data used in the SNMP message. In SNMPv1 and SNMPv2c, this message data is the community string. In SNMPv3, it is the context information.

*Logger* is the function used for audit trail logging.

**generate\_response\_msg(Vsn, Pdu, MsgData, Logger) -\> {ok, Packet} \| {discarded, Reason}**\

Types:

Vsn = 'version-1' \| 'version-2' \| 'version-3'\
 Pdu = #pdu\
 MsgData = term()\
 Logger = function()\
 Packet = binary()\
 Reason = term()\

Generates a possibly encrypted response packet to be sent to the network.

*MsgData* is the message specific data used in the SNMP message. This value is received from the process\_msg function.
