AxoNet SNMP Embedded Agent
AxoNet SNMP is an embedded trilingual (v1/v2c/v3) SNMP agent fully independent of processor, RTOS and development tools. It is an extensible agent allowing adding an unlimited number of MIBs to the code automatically by running AxoNetCG Automatic Code Generator.
AxoNet is fully compliant to the following RFCs:
• RFC 1155: SNMP and SNMP MIB
• RFC 1157: SNMP, version 1
• RFC 1212: Concise MIB definitions
• RFC 1213: MIB II for TCP/IP
• RFC 1215: Convention for defining traps for use with the SNMP
• RFC 1901: Introduction to Community-based SNMPv2
• RFC 2578: Structure of Management Information (SMI), v2
• RFC 2579: Textual Conventions
• RFC 2580: Conformance Statements
• RFC 3416: Protocol Operations
• RFC 3417: Transport Mappings
• RFC 3418: Management Information Base
• RFC 3584: Co-existence between Version 1 and Version 2
• RFC 3411: An Architecture for Describing SNMP Management Frameworks
• RFC 3412: Message Processing and Dispatching for SNMP
• RFC 3414: User-based Security Model (USM) for SNMPv3
• RFC 3415: View-based Access Control Model
The agent can be compiled as v1 only, or as a bilingual v1/v2c, or as a trilingual v1/v2c/v3. When compiled as v1, the agent accepts only SNMP v1 messages and issues v1 traps. When compiled as bilingual, it accepts v1 as well as v2 messages and issues responses accordingly. It sends both v1 and v2 traps to the configured trap sinks. In the trilingual mode it accepts all three version messages and issues traps in all three formats.
AxoNet supports two architectural models of operation:
• Non-blocking SNMP Agent: Incoming SNMP packets are delivered to the SNMP agent in-line, which means the UDP directly calls the SNMP via a subroutine call. The SNMP parses the SNMP packet, and returns a response immediately, in a single pass through the TCP/IP stack. Note that this also forces a non-blocking implementation of the SNMP agent. This architecture is well suited to implementations in which all variables managed via SNMP are readily available, which is typical of single-board systems.
• Multi-tasking Agent: Requires an SNMP task to process SNMP messages. The operating system or RTOS starts a task that binds itself to the SNMP port. Once an SNMP packet is parsed by UDP stack, it is put on the receive queue of the SNMP socket. The SNMP task is put in a ready-to-run state. The SNMP task reads the SNMP packet off the receive queue, processes the request, and calls the UDP transmit routines to send the response. This decouples the SNMP processing from the operating system processing, and thus simplifies debugging.