1. 概述
lwIP官网介绍snmp
lwip-SNMP移植
LwIP的SNMP学习笔记
RT论坛上的“LWIP下的SNMP协议”
lwip下SNMP的移植实现,表的获取问题
How to make lwip SNMP work【转载】
snmp数据类型及读写函数
2.添加mib2
2.1 步骤
1、在你的 lwipopts.h中定义使用snmp
#define LWIP_SNMP 1
2、使用mib2,初始化snmp
//必须----
snmp_mib2_set_syscontact() //设置联系人节点指针
snmp_mib2_set_syslocation() //设置结点物理位置的指针
snmp_set_auth_traps_enabled() //使能发送验证失败报告
snmp_set_write_callback() //设置写回调函数
//不是必须--
snmp_mib2_set_sysdescr()
snmp_set_device_enterprise_oid()
snmp_mib2_set_sysname()
//设置trap目的地址
snmp_trap_dst_enable()
snmp_trap_dst_ip_set()
//设置mib、初始化snmp----
snmp_set_mibs() //设置mib
snmp_init() //snmp初始化
2.2 core模块
2.3 Traps模块
2.4 MIB2模块
2.5 Options模块
#define LWIP_SNMP 0
#define SNMP_COMMUNITY "public"
#define SNMP_COMMUNITY_TRAP "public"
#define SNMP_COMMUNITY_WRITE "private"
#define SNMP_DEBUG LWIP_DBG_OFF
#define SNMP_DEVICE_ENTERPRISE_OID {1, 3, 6, 1, 4, 1, SNMP_LWIP_ENTERPRISE_OID}
#define SNMP_DEVICE_ENTERPRISE_OID_LEN 7
#define SNMP_LWIP_ENTERPRISE_OID 26381
#define SNMP_LWIP_GETBULK_MAX_REPETITIONS 0
#define SNMP_LWIP_MIB2 LWIP_SNMP
#define SNMP_LWIP_MIB2_SYSCONTACT ""
#define SNMP_LWIP_MIB2_SYSDESC "lwIP"
#define SNMP_LWIP_MIB2_SYSLOCATION ""
#define SNMP_LWIP_MIB2_SYSNAME "FQDN-unk"
#define SNMP_MAX_COMMUNITY_STR_LEN LWIP_MAX(LWIP_MAX(sizeof(SNMP_COMMUNITY), sizeof(SNMP_COMMUNITY_WRITE)), sizeof(SNMP_COMMUNITY_TRAP))
#define SNMP_MAX_OBJ_ID_LEN 50
#define SNMP_MAX_OCTET_STRING_LEN 127
#define SNMP_MAX_VALUE_SIZE LWIP_MAX(LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN), sizeof(u32_t)*(SNMP_MAX_OBJ_ID_LEN)), SNMP_MIN_VALUE_SIZE)
#define SNMP_MIB_DEBUG LWIP_DBG_OFF
#define SNMP_MIN_VALUE_SIZE (2 * sizeof(u32_t*)) /* size required to store the basic types (8 bytes for counter64) */
#define SNMP_SAFE_REQUESTS 1
#define SNMP_STACK_SIZE DEFAULT_THREAD_STACKSIZE
#define SNMP_THREAD_PRIO DEFAULT_THREAD_PRIO
#define SNMP_TRAP_DESTINATIONS 1
#define SNMP_USE_NETCONN 0
#define SNMP_USE_RAW 1