nasnmpv3: Secure SNMP Application

This application demonstrates:
    - The SNMP version 3 API

This example should work on all development boards.


The SNMPv3 API allows applications to add, delete, and
update entries in the SNMP agent's security tables.  These
tables determine what operations remote consoles are 
allowed to perform.  See RFCs 3411-3415 for details.

The example application implements a simple command line
interface (CLI) that can be used to modify the agent's 
security tables.  The CLI uses stdin and stdout.  Set 
BSP_STDIO_PORT in bsp_sys.h to the serial port to be
used for the CLI.  

show versions       list the versions of the SNMP protocol that
                    are permitted by the agent.

set versions        set the versions of the SNMP protocol that
                    are permitted by the agent.

show engineInfo     list the engine ID, the number of times the
                    agent has been booted, and the number of 
                    seconds the agent has been running
                    
set id              set the engine ID

set boots n         set the number of boots to n

set vacm s2g        Create or update a Security-to-Group table
                    entry.
                    
set vacm vtf        Create or update a view tree family entry.

set vacm access     Create or update a VACM access entry.

create              Create a new user entry.

update              Update an existing user entry.

delete user         Delete a user entry.

delete vacm s2g     Delete a security-to-group table entry.

delete vacm vtf     Delete a vew tree family entry.

delete vacm access  Delete a VACM access entry.

start               Start the SNMP agent.  Creates some default users.

list users          List the user entries.

list groups         List the groups.

list vacm vtf       List the view tree family table.

list vacm s2g       List the security-to-group table.

list vacm access group-name
                    List the VACM access entries associated with 'group-name'.

sendTrap genericTrap interfaceIndex     Send a trap                 


One GNU make file is provided.  Build the target 'image' to
generate an image that can be debugged with gdb, and the file 
image.bin which can be written to flash if the bootloader is used.
Build the target 'rom.bin' to create the file rom.bin which 
can be written to ROM if the bootloader is not used.

The following files are provided in this template.

appconf.h         sets application configuration settings
makefile          Make file for the GNU toolset.
readme            this file
root.c            contains applicationStart() function
cli.c             implements the command line interface.


In addition, the following files in the BSP directory are built
as part of this application.

reset.s         contains the reset code
appconf_api.c   contains code used to read settings in appconf.h


*************************************************
*                                               *
*   Usage of SNMP and IPSEC.                    *
*                                               *
*************************************************

Any aplication that uses an SNMP agent and IPSEC must: 
- Use the libtcpip.a library
- Use the libsnmp.a or the libsnmpv3.a library
- Define VPN_ENABLED in the application makefile.

Any aplication that uses an SNMP agent but no IPSEC must 
- Use the libtcpip_no_ipsec.a library
- Use the libsnmp_no_ipsec.a or the libsnmpv3_no_ipsec.a library
- Not define VPN_ENABLED in the application makefile.

Any mismatch between libraries with and without IPSEC and the the 
definition of VPN_ENABLED will cause memory corruptions.

By default all SNMP samples are built without IPSEC. Use the following command to build 
SNMP samples with IPSEC on a command line:	make USE_IPSEC=yes
