The Multiprotocol SNMP Agent is constructed with NuDesign's Visual xAgent Builder for C++. The developer uses the SNMP MIB grammar to build the Management Information Base objects (using, for example NuDesign's Visual MIBuilder), then using the Visual xAgent Builder for C++ generates the agent's instrumentation code and chooses the desired access protocol agents. The SNMP Agent supports communications over IPv6 protocol.
Supported today are: SNMP v1/v2c, SNMP v1/v2c/v3, HTTP and Simple Development Console access to the MIB objects. If full CLI, Command Line Interface access beyond MIB objects is desired then using NuDesign’s C++ CLI Builder Studio for Embedded RTOS developer generates hierarchical CLI interface with operational and configuration commands that expose access to system resources and functions beyond SNMP.
The Multiprotocol SNMP Agent consists of the following main components:
Figure 1 The Management Information Agent Architecture
The product supports libraries for the following target platforms: MS Windows (Windows 2000, Windows Server 2003 & 2008, Windows XP SP3, Windows Vista 32 bit and 64 bit and Windows 7 32 bit and 64 bit), QNX, Linux brands, OSE, VxWorks and other embedded OSs / RTOSs (please call for information on RTOS-specific ports). These libraries are supplied in a form of xAgent Builder or CLI Builder SDK's.
The generated instrumentation code is OS / RTOS independent. Only the standard ANSI C++ is used, allowing for simple port of the Multiprotocol SNMP and CLI Agent to various target platforms.
The resulting Agent can support any combination of supported access protocols, for example, it could be SNMP v1/v2c/v3 only, or HTTP (the tool will generate the basic HTML pages derived from the MIB) or hierarchical CLI access only. Some other embedded device might require support of all currently available access protocols: SNMP v1/v2c/v3, HTTP and CLI interfaces.
For security, access to MIB variables is controlled by Access Control Module, same for any supported Access Protocol Agents. The View-Based Access Control (VACM) model of SNMP v1/v2c/v3 has been adopted.
MIB Handler maintains the list of subtree handlers. Their code is created by code generator and is protocol independent, i.e. access to MIB variables is the same no matter which protocol agent dispatched the request. This allows for simple extension of Agent with yet another access protocol agent. The new access protocol agent simply has to register with MIB Handler to receive IMIB interface and MIB data could be accessed by that protocol.
The architecture of SNMP Agent is shown in Figure 2. The SNMP Agent is implemented using NDSnmp SNMP C++ framework.
Figure 2 The SNMP Agent Architecture
The agent contains: a Command Responder Application that provides access to management data, a Notification Originator Application that initiates asynchronous messages and optionally a Proxy Forwarder Application that implements Proxy MIB as per rfc3413. The Proxy functionality can be added at code generation time by instructing the NuDesign's wizard to do so.
The Access Control Subsystem is used by MIB Handler module, and it is common to any protocol agent that is part of Multiprotocol SNMP Agent. The access control model used is the View-Based Access Control Model (VACM) of SNMP v1/v2c/v3, specified in RFC 3415.
The Web Agent consists of extensible Web Server. Different HTTP request processors are implemented using the defined API (BGI).
Figure 3 The Web Agent Architecture
The web access to management data is provided through Server Side Includes (SSI) and a set of predefined SHTML files.
Under construction is a SOAP processor, with xSNMP service (XML SNMP, NuDesign defined SNMP for XML/SOAP). It will be added for more versatile access to management data.