---
name: "snmpa_discovery_handler"
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_discovery_handler"
---

# snmpa\_discovery\_handler(3erl)

Behaviour module for the SNMP agent discovery handler.

## NAME

snmpa\_discovery\_handler - Behaviour module for the SNMP agent discovery handler.

## DESCRIPTION

This module defines the behaviour of the agent discovery handler. A *snmpa\_discovery\_handler* compliant module must export the following functions:

- \*

  stage1\_finish/2

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

## EXPORTS

**stage1\_finish(TargetName, ManagerEngineID, ExtraInfo) -\> ignore \| {ok, usm\_entry() \| \[usm\_entry()\]} \| {ok, usm\_entry() \| \[usm\_entry()\], NewExtraInfo}**\

Types:

TargetName = string()\
 ManagerEngineID = string()\
 ExtraInfo = term()\
 usm\_entry() = tuple() compatible with usm.conf\
 NewExtraInfo = term()\

This function is called at the end of stage 1 of the discovery process. It should return either the atom *ignore* or *{ok, usm\_entry() \| \[usm\_entry()\]}*. See usm\_entry() and usm\_entry/13 for more info.

If the function returns *ignore*, then it is assumed that either:

- \*

  The caller (of the discovery function) will make the needed updates later.

- \*

  The callback function itself did the updates.

In either case, the agent will do nothing, but return the retrieved ManagerEngineID (see discovery for more info) and possible continue with stage 2 of the discovery process.

The *ExtraInfo* argument is passed on from the discovery function.

This function may return an updated *NewExtraInfo* that will be used in subsequent calls to the callback functions. Intended for future use.

The purpose of this function is to generate the usm- related security data needed for usm processing in the agent. Specifically, updating the usmUserTable.

When an *usm\_entry()* tuple (or a list of such tuples) is returned, this data is then added to the *usmUserTable* by the (master-) agent.

When an *usm\_entry()* tuple (or a list of such tuples) is returned, this data is then added to the *usmUserTable* by the (master-) agent.

**Note:**

Note that the function does not check if this entry already exists.

**Note:**

Note that this function is executed in the context of the master-agent process.
