AGENT++ is a set of C++ classes which provides a complete protocol engine and dispatch table for the development of SNMP agents.  AGENT++ is a multilingual API which supports SNMPv1, SNMPv2c, and SNMPv3. It provides various C++ classes implementing prototypes for scalar and table SNMP managed objects that can be customized by derivation. Additional classes support the development of proxy agents as well as sending notifications.

Supported platforms are Linux, Solaris (2.6 or above), Digital Unix (True64), HPUX, and Windows NT/2000/XP. Since AGENT++ is ANSI C++ compliant it may be used with other platforms like AIX or many embedded OS as well.

AGENT++ can be used with SNMP++ version 3.x and above. AGENT++ includes ready to use classes which implement a lot of (system independent) standard MIBs:

 

Description

Dependencies

Protocol Versions

SNMPv2-MIB
(i.e., basic parts of MIBII)

Implementations of the system and the SNMP group.

 

1 / 2c / 3

USM-MIB

User security model information

 

3

VACM-MIB

View access model information

USM-MIB

3

SNMP-TARGET-MIB

Information for notification originators about trap targets and for proxy applications about proxy targets

 

1 / 2c / 3

SNMP-NOTIFICATION-MIB

Notification filtering and target selection

SNMP-TARGET-MIB

1 / 2c / 3

SNMP-COMMUNITY-MIB

Maps v3 security information to communities and provides extension to SNMP-TARGET-MIB to allow source address filtering

SNMP-TARGET-MIB

3

SNMP-PROXY-MIB

Translation parameters used by proxy forwarder applications for forwarding SNMP messages

SNMP-TARGET-MIB, SNMP-COMMUNITY-MIB

3

NOTIFICATION-LOG-MIB

Logs notifications (traps) and informs. Provides user defined logs and limits.

SNMP-NOTIFICATION-MIB

1 / 2c / 3

AGENTPP-SIMULATION-MIB

Allows creation and setting of otherwise “read-only” MIB objects and the deletion of one or all rows of an arbitrary simulated MIB table

 

1 / 2c / 3

Support of SNMP v1, v2c, and v3

AGENT++ v3.5 is a trilingual API and thus supports all major SNMP versions. It can be configured at compile time whether to support SNMPv3 features or not. By disabling SNMPv3 support the View Access Model and the User based Security Model are also disabled. In this case AGENT++ only supports one read and one write community providing only weak security. However, there might be a situation where security is not needed, but the performance and resources gained from disabling SNMPv3 are more valuable.

The following table shows how different versions of AGENT++ and SNMP++ can be combined to support different sets of SNMP protocol versions:

SNMP++[1]

AGENT++[2]

Supported SNMP versions

2.8

AGENT++ no longer supports SNMP++v2.x

not available

3.1 without _SNMPv3

3.5 without _SNMPv3

1, 2c

3.1 with _SNMPv3

3.5 with _SNMPv3

1, 2c, v3


[1] In SNMP++v3.x SNMPv3 support can be enabled/disabled through defining or undefining _SNMPv3 within the config_snmp_pp.h include file.

[2] In AGENT++v3.5 SNMPv3 support can be enabled/disabled through defining or undefining _SNMPv3 within the agent++.h include file.

 

Copyright © Frank Fock 2001-2008