# 3 Manager Functional Description

###
3.1 Features

The manager provided with the tool is a lightweight manager that basically provides a means to communicate with agents.

It does not really implement any management capabilities by itself. That is up to the user.

A user in this context is basically a module implementing the snmpm_user behaviour. A user can issue snmp requests and receive notification/traps.

Agents to be accessed by the manager needs to be registered by a user. Once registered, they can be accessed by all registered users.

Notifications/traps from an agent is delivered to the user that did the registration.

Any message from an agent that is not registered is delivered to the default user.

By default, the default user is set to the snmpm_user_default module, which simply sends an info message to the error_logger. It is however highly recommended that this module be replaced by another that does something useful (see configuration params for more info).

When using version 3, then (at least one) usm user has to be registered.

Requests can be issued in two different ways. Synchronous (see sync_set, sync_get, sync_get_next and sync_get_bulk) and asynchronous (see async_set, async_get, async_get_next and async_get_bulk). With synchronous the snmp reply is returned by the function. With asynchronous, the reply will instead be delivered through a call to one of the handle_pdu callback function defined by the handle_pdu behaviour.

###
3.2 Operation

The following steps are needed to get the manager running:

1. [optional] Implement the default user.

2. Implement the user(s).

3. Configure the application (manager).

4. Start the application (manager).

5. Register the user(s).

6. The user(s) register their agents.

###
3.3 MIB loading

It is possible to load mibs into the manager, but this is not necessary for normal operation, and not recommended.