---
name: "snmpa_network_interface"
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/snmpa_network_interface"
---

# snmpa\_network\_interface(3erl)

Behaviour module for the SNMP agent network interface.

## NAME

snmpa\_network\_interface - Behaviour module for the SNMP agent network interface.

## DESCRIPTION

This module defines the behaviour of the agent network interface. A *snmpa\_network\_interface* compliant module must export the following functions:

- \*

  start\_link/4

- \*

  info/1

- \*

  get\_log\_type/1

- \*

  set\_log\_type/2

- \*

  verbosity/2

The semantics of them and their exact signatures are explained below.

But this is not enough. There is also a set of *mandatory* messages which the network interface entity must be able to receive and be able to send. This is described in chapter snmp\_agent\_netif.

## EXPORTS

**start\_link(Prio, NoteStore, MasterAgent, Opts) -\> {ok, Pid} \| {error, Reason}**\

Types:

Prio = priority()\
 NoteStore = pid()\
 MasterAgent = pid()\
 Opts = \[opt()\]\
 opt() = {verbosity, verbosity()} \| {versions, versions()} \| term()\
 versions() = \[version()\]\
 version() = v1 \| v2 \| v3\

Start-link the network interface process.

*NoteStore* is the pid of the note-store process and *MasterAgent* is the pid of the master-agent process.

*Opts* is an (basically) implementation dependent list of options to the network interface process. There are however a number of options which *must* be handled: *versions* and *verbosity*.

**info(Pid) -\> \[{Key, Value}\]**\

Types:

Pid = pid()\

The info returned is basically up to the implementer to decide. This implementation provided by the application provides info about memory allocation and various socket information.

The info returned by this function is returned together with other info collected by the agent when the info function is called (tagged with with the key *net\_if*).

**verbosity(Pid, Verbosity) -\> void()**\

Types:

Pid = pid()\
 Verbosity = verbosity()\

Change the verbosity of a running network interface process.

**get\_log\_type(Pid) -\> {ok, LogType} \| {error, Reason}**\

Types:

Pid = pid()\
 LogType = atl\_type()\
 Reason = term()\

The Audit Trail Log is managed by the network interface process. So, it is this process that has to retrieve the actual log-type.

**set\_log\_type(Pid, NewType) -\> {ok, OldType} \| {error, Reason}**\

Types:

Pid = pid()\
 NewType = OldType = atl\_type()\
 Reason = term()\

The Audit Trail Log is managed by the network interface process. So, it is this process that has to do the actual changing of the type.

See set\_log\_type for more info.
