Skip navigation
  • Low memory footprint.
  • Only few SNMP knowledge required.
  • Easy MIB tree setup.
  • Supports SNMPv1 and SNMPv2c.
  • Supports SNMPv1 & SNMPv2 TRAP messages.
  • Supports SNMPv2 INFORM messages.
  • MIB-II support (System and Interfaces branch) for embOS/IP out of the box.
  • Easy to use API for all typical SNMP types (Unsigned32, Counter32, ...).
  • Independent of the TCP/IP stack: any stack with sockets can be used.
  • Can even be used without sockets e.g. with zero-copy API.
  • Demo with custom sample MIB with sockets or zero-copy API included.
  • Project for executable on PC for Microsoft Visual Studio included.

embOS/IP SNMP Agent

The embOS/IP SNMP agent is an optional extension which adds SNMP agent functionality to the stack. It combines a maximum of performance with a small memory footprint. The SNMP agent allows an embedded system to handle SNMP requests from an SNMP manager and sending TRAP and INFORM messages to managers. It comes with all features typically required by embedded systems: Maximum flexibility, easily portable and low RAM usage. RAM usage has been kept to a minimum by smart buffer handling.

Relevant Parts

The SNMP agent implements the relevant parts of the following Request For Comments (RFC).

RFC#Description
[RFC 2578]Structure of Management Information Version 2 (SMIv2)
Direct download: ftp://ftp.rfc-editor.org/in-notes/rfc2578.txt
[RFC 3416]Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP)
Direct download: ftp://ftp.rfc-editor.org/in-notes/rfc3416.txt
[RFC 4181]Guidelines for Authors and Reviewers of MIB Documents
Direct download: ftp://ftp.rfc-editor.org/in-notes/rfc4181.txt


The following table shows the contents of the embOS/IP SNMP client root directory: 

DirectoryContent
ApplicationContains the example application to run the SNMP agent with embOS/IP.
ConfigContains the SNMP agent configuration file. Refer to the documentation for detailed information.
IncContains the required include files.
IPContains the SNMP agent sources and header files.
Windows\IP\SNMP_AgentContains the source, the project files and an executable to run embOS/IP SNMP agent on a Microsoft Windows host.

Requirements

TCP/IP Stack

The embOS/IP SNMP agent requires an UDP/IP stack. It is optimized for embOS/IP, but any  RFC-compliant UDP/IP stack can be used. The shipment includes a Win32 simulation, which uses the standard Winsock API and an implementation which uses the socket API of embOS/IP as well as an implementation which uses the zero-copy API of embOS/IP.

IANA Private Enterprise Number (PEN)

For implementing SNMP in your own product you need to acquire a  Private Enterprise Number (PEN)  from the IANA. A PEN can be requested free of charge at pen.iana.org/pen/app.

The PEN used in the samples (dec. 46410) is the PEN registered for SEGGER Microcontroller  GmbH  &  Co.  KG.  This needs  to  be  be  changed  to  your  own  PEN  in  your product and the content of the MIB is subject to change in the future.

SNMP Backgrounds

The Simple Network Management Protocol is a standard protocol to manage IP based devices  in  a  network. Typical usage is to monitor counters and status in network switches and other network equipment but can also be used for configuration read/write operations. The development of SNMP is coordinated by the IETF (Internet Engineering Task Force) with the widely used SNMPv2c inspired from several other sources. The current protocol version supported by the embOS/IP SNMP agent is v1 and v2c. The latest protocol version is v3.

The SNMP agent is the part that is implemented directly inside a device to fulfill requests like status information and configuration of the device.

Resource Usage

The ROM usage depends on the compiler options, the compiler version and the used CPU. The memory requirements of the SNMP agent module presented in the tables below have been measured on an ARM7 and a Cortex-M3 system. Details about the further configuration can be found in the sections of the specific example.

Configuration used:

#define IP_SNMP_AGENT_WORK_BUFFER  64

ROM Usage on an ARM7 System

The following resource usage has been measured on an ARM7 system using IAR Embedded Workbench V6.30.6, Thumb mode, no interwork, size optimization.

Add-onROM
embOS/IP SNMP agentApproximately 6.5 KByte

ROM Usage on a Cortex-M3 System

The following resource usage has been measured on a Cortex-M3 system using IAR Embedded Workbench V6.30.6, size optimization.

Add-onROM
embOS/IP SNMP agentApproximately 6.0 KByte

RAM Usage

Add-onRAM
embOS/IP SNMP agentApproximately 300 bytes