# snmpm_mpd

### MODULE

snmpm_mpd

### MODULE SUMMARY

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).

### EXPORTS

`init_mpd(Vsns) -> mpd_state()`

Types:

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

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

It also initializes some SNMP counters.

`process_msg(Msg, TDomain, Addr, Port, State, NoteStore, Logger) -> {ok, Vsn, Pdu, PduMS, MsgData} | {discarded, Reason}`

Types:

`Msg = binary()`
`TDomain = snmpUDPDomain`
`Addr = {integer(), integer(), integer(), integer()}`
`Port = integer()`
`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. Thes value is received from the process_msg function.

### AUTHORS

Micael Karlberg - support@erlang.ericsson.se

snmp 4.8.2
Copyright © 1991-2006 Ericsson AB