The Microchip SNMP server is a multilingual implementation which supports SNMPv1, V2c and V3 server features simultaneously. SNMP server is implemented to address the requirements of embedded applications. The SNMPv3 support is added with TCPIP Stack Version 5.31. SNMPv1 and V2c are enabled with single macro #define STACK_USE_SNMP_SERVER. The SNMPv3 server could be selectively enabled with independent macro #define STACK_USE_SNMPV3_SERVER. As SNMPv3 stacks are required to support SNMPv1 and SNMPv2c, enabling the SNMPv3 Server will automatically enable SNMPv1 and SNMPv2c servers in the Microchip TCPIP Stack SNMP agent. These macros are defined in the TCPIP (MAC/PHY).h file located at <Installation Path>:\Microchip Solutions MAIN\TCPIP\Demo App\Configs\.
This series of topics will address the application- and demo-specific implementation of an SNMP server included with the TCP/IP Demo applications. For information describing the SNMP module in general, please see the SNMP API topic.
V2c is implemented with support for the configuration of multiple community names, which are stored in selected non-volatile memory (SPI EEPROM or SPI Flash). The community names can be configured through the TCP/IP Configuration Wizard or through the HTTP/MPFS2 web interface. An access-restricted web page is provided with the demo application to allow dynamic configuration of SNMP communities.
SNMPv3 RFC specifies different types of access mechanism, user security model (USM), authentication and privacy protocols. Microchip SNMPv3 server is implemented with support for USM, AES 128 CFB 128 privacy protocol, and MD5 and SHA1 message authentication protocols. The demo implementation of the server is configured with 3 different types of user names with respective authentication and privacy credentials and authentication types. These credentials and other user information are stored in the global array. The user of the SNMPv3 stack can decide on the number of user names in the User’s data base to be stored with the Server. According to the SNMPv3 recommendation, SNMPv3 server should not be configured with the authentication and privacy passwords. Instead could be configured with the respective localized keys of the password. Microchip SNMPv3 agent is provided with the password information in the database for the “Getting Started” and for understanding purpose only. It is recommended that the SNMPv3 stack should be modified to restrict access to the password OIDs declared in the user data base.
Note that even though SNMPv3 also requires SNMPv1 and SNMPv2c, a layer in the SNMP stack will prevent access to the variables that should be secured by SNMPv3. SNMP variables are structures in a tree in the Management Information Base (MIB). Access to parts of this tree are determined by version. For example, SYSTEM-type variables can be accessed regardless of SNMP version, SNMPv2c requests can access part of the tree, and authenticated SNMPv3 requests can access the complete tree.
Note: For existing Microchip SNMP V1 and V2c users.
• SNMP V1/V2c users wanting to upgrade the Microchip TCP/IP Stack from older versions to the latest version and continue to use SNMP V1/V2c can get the SNMP V1/V2c services from this agent, provided they do not modify the default settings of the SNMP module in v5.25 onward.
• The implementation framework for V1 and V2c remains the same, except for a few new features and functions. The names and parameters of some of the functions have been changed. V1/V2c users may have to make changes to their application-specific code. There should not be any change in the SNMP stack code unless users have incorporated application code in the SNMP stack.
• Users should build a new MPFS image using the MPFS File System Generator utility and upload it to the selected EEPROM or Flash memory, as the AppConfig structure is updated to accommodate community names in V2c and SNMP engine ID for SNMPv3.
Name |
Description |
Describes Management Information Base (MIB) files. | |
Describes SNMP MIB browsers. | |
Describes the SNMP operations supported in this demo. | |
Describes SNMP traps. | |
Describes how to configure SNMP community names via HTTP. | |
The following table lists functions in this documentation. | |
The following table lists variables in this documentation. | |
The following table lists macros in this documentation. |
|
Name |
Description |
|
Prepare, validate remote node which will receive trap and send trap pdu. | |
|
Obtains the current Tick value for the SNMP time stamp. |
|
Name |
Description |
|
| |
|
Update the Non record id OID value which is part of CustomSnmpDemo.c file | |
|
Default STACK_USE_SMIV2 is enabled . For Stack V5.31, STACK_USE_SMIV2 should be disabled. |
|
Name |
Description |
|
This is variable gSendTrapSMstate. | |
|
OLD snmp.mib file with SMIv1 standard | |
|
This is variable gSnmpv3UserSecurityName. | |
|
This is variable gtrapSMStateUpdate. |