📄 mib2.c
字号:
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
23,
ip_ids,
ip_nodes
};
/** index root node for atTable */
struct mib_list_rootnode arptree_root = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_LR,
0,
NULL,
NULL,
0
};
const s32_t atentry_ids[3] = { 1, 2, 3 };
struct mib_node* const atentry_nodes[3] = {
(struct mib_node* const)&arptree_root,
(struct mib_node* const)&arptree_root,
(struct mib_node* const)&arptree_root
};
const struct mib_array_node atentry = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
3,
atentry_ids,
atentry_nodes
};
const s32_t attable_id = 1;
struct mib_node* const attable_node = (struct mib_node* const)&atentry;
const struct mib_array_node attable = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
1,
&attable_id,
&attable_node
};
/* at .1.3.6.1.2.1.3 */
s32_t at_id = 1;
struct mib_node* mib2_at_node = (struct mib_node* const)&attable;
struct mib_ram_array_node at = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_RA,
0,
&at_id,
&mib2_at_node
};
/** index root node for ifTable */
struct mib_list_rootnode iflist_root = {
&ifentry_get_object_def,
&ifentry_get_value,
#if SNMP_SAFE_REQUESTS
&noleafs_set_test,
&noleafs_set_value,
#else /* SNMP_SAFE_REQUESTS */
&ifentry_set_test,
&ifentry_set_value,
#endif /* SNMP_SAFE_REQUESTS */
MIB_NODE_LR,
0,
NULL,
NULL,
0
};
const s32_t ifentry_ids[22] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 };
struct mib_node* const ifentry_nodes[22] = {
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root,
(struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root
};
const struct mib_array_node ifentry = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
22,
ifentry_ids,
ifentry_nodes
};
s32_t iftable_id = 1;
struct mib_node* iftable_node = (struct mib_node* const)&ifentry;
struct mib_ram_array_node iftable = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_RA,
0,
&iftable_id,
&iftable_node
};
/* interfaces .1.3.6.1.2.1.2 */
const mib_scalar_node interfaces_scalar = {
&interfaces_get_object_def,
&interfaces_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_SC,
0
};
const s32_t interfaces_ids[2] = { 1, 2 };
struct mib_node* const interfaces_nodes[2] = {
(struct mib_node* const)&interfaces_scalar, (struct mib_node* const)&iftable
};
const struct mib_array_node interfaces = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
2,
interfaces_ids,
interfaces_nodes
};
/* 0 1 2 3 4 5 6 */
/* system .1.3.6.1.2.1.1 */
const mib_scalar_node sys_tem_scalar = {
&system_get_object_def,
&system_get_value,
&system_set_test,
&system_set_value,
MIB_NODE_SC,
0
};
const s32_t sys_tem_ids[7] = { 1, 2, 3, 4, 5, 6, 7 };
struct mib_node* const sys_tem_nodes[7] = {
(struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar,
(struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar,
(struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar,
(struct mib_node* const)&sys_tem_scalar
};
/* work around name issue with 'sys_tem', some compiler(s?) seem to reserve 'system' */
const struct mib_array_node sys_tem = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
7,
sys_tem_ids,
sys_tem_nodes
};
/* mib-2 .1.3.6.1.2.1 */
#if LWIP_TCP
#define MIB2_GROUPS 8
#else
#define MIB2_GROUPS 7
#endif
const s32_t mib2_ids[MIB2_GROUPS] =
{
1,
2,
3,
4,
5,
#if LWIP_TCP
6,
#endif
7,
11
};
struct mib_node* const mib2_nodes[MIB2_GROUPS] = {
(struct mib_node* const)&sys_tem,
(struct mib_node* const)&interfaces,
(struct mib_node* const)&at,
(struct mib_node* const)&mib2_ip,
(struct mib_node* const)&icmp,
#if LWIP_TCP
(struct mib_node* const)&tcp,
#endif
(struct mib_node* const)&udp,
(struct mib_node* const)&snmp
};
const struct mib_array_node mib2 = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
MIB2_GROUPS,
mib2_ids,
mib2_nodes
};
/* mgmt .1.3.6.1.2 */
const s32_t mgmt_ids[1] = { 1 };
struct mib_node* const mgmt_nodes[1] = { (struct mib_node* const)&mib2 };
const struct mib_array_node mgmt = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
1,
mgmt_ids,
mgmt_nodes
};
/* internet .1.3.6.1 */
#if SNMP_PRIVATE_MIB
s32_t internet_ids[2] = { 2, 4 };
struct mib_node* const internet_nodes[2] = { (struct mib_node* const)&mgmt, (struct mib_node* const)&private };
const struct mib_array_node internet = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
2,
internet_ids,
internet_nodes
};
#else
const s32_t internet_ids[1] = { 2 };
struct mib_node* const internet_nodes[1] = { (struct mib_node* const)&mgmt };
const struct mib_array_node internet = {
&noleafs_get_object_def,
&noleafs_get_value,
&noleafs_set_test,
&noleafs_set_value,
MIB_NODE_AR,
1,
internet_ids,
internet_nodes
};
#endif
/** mib-2.system.sysObjectID */
static struct snmp_obj_id sysobjid = {SNMP_SYSOBJID_LEN, SNMP_SYSOBJID};
/** enterprise ID for generic TRAPs, .iso.org.dod.internet.mgmt.mib-2.snmp */
static struct snmp_obj_id snmpgrp_id = {7,{1,3,6,1,2,1,11}};
/** mib-2.system.sysServices */
static const s32_t sysservices = SNMP_SYSSERVICES;
/** mib-2.system.sysDescr */
static const u8_t sysdescr_len_default = 4;
static const u8_t sysdescr_default[] = "lwIP";
static u8_t* sysdescr_len_ptr = (u8_t*)&sysdescr_len_default;
static u8_t* sysdescr_ptr = (u8_t*)&sysdescr_default[0];
/** mib-2.system.sysContact */
static const u8_t syscontact_len_default = 0;
static const u8_t syscontact_default[] = "";
static u8_t* syscontact_len_ptr = (u8_t*)&syscontact_len_default;
static u8_t* syscontact_ptr = (u8_t*)&syscontact_default[0];
/** mib-2.system.sysName */
static const u8_t sysname_len_default = 8;
static const u8_t sysname_default[] = "FQDN-unk";
static u8_t* sysname_len_ptr = (u8_t*)&sysname_len_default;
static u8_t* sysname_ptr = (u8_t*)&sysname_default[0];
/** mib-2.system.sysLocation */
static const u8_t syslocation_len_default = 0;
static const u8_t syslocation_default[] = "";
static u8_t* syslocation_len_ptr = (u8_t*)&syslocation_len_default;
static u8_t* syslocation_ptr = (u8_t*)&syslocation_default[0];
/** mib-2.snmp.snmpEnableAuthenTraps */
static const u8_t snmpenableauthentraps_default = 2; /* disabled */
static u8_t* snmpenableauthentraps_ptr = (u8_t*)&snmpenableauthentraps_default;
/** mib-2.interfaces.ifTable.ifEntry.ifSpecific (zeroDotZero) */
static const struct snmp_obj_id ifspecific = {2, {0, 0}};
/** mib-2.ip.ipRouteTable.ipRouteEntry.ipRouteInfo (zeroDotZero) */
static const struct snmp_obj_id iprouteinfo = {2, {0, 0}};
/* mib-2.system counter(s) */
static u32_t sysuptime = 0;
/* mib-2.ip counter(s) */
static u32_t ipinreceives = 0,
ipinhdrerrors = 0,
ipinaddrerrors = 0,
ipforwdatagrams = 0,
ipinunknownprotos = 0,
ipindiscards = 0,
ipindelivers = 0,
ipoutrequests = 0,
ipoutdiscards = 0,
ipoutnoroutes = 0,
ipreasmreqds = 0,
ipreasmoks = 0,
ipreasmfails = 0,
ipfragoks = 0,
ipfragfails = 0,
ipfragcreates = 0,
iproutingdiscards = 0;
/* mib-2.icmp counter(s) */
static u32_t icmpinmsgs = 0,
icmpinerrors = 0,
icmpindestunreachs = 0,
icmpintimeexcds = 0,
icmpinparmprobs = 0,
icmpinsrcquenchs = 0,
icmpinredirects = 0,
icmpinechos = 0,
icmpinechoreps = 0,
icmpintimestamps = 0,
icmpintimestampreps = 0,
icmpinaddrmasks = 0,
icmpinaddrmaskreps = 0,
icmpoutmsgs = 0,
icmpouterrors = 0,
icmpoutdestunreachs = 0,
icmpouttimeexcds = 0,
icmpoutparmprobs = 0,
icmpoutsrcquenchs = 0,
icmpoutredirects = 0,
icmpoutechos = 0,
icmpoutechoreps = 0,
icmpouttimestamps = 0,
icmpouttimestampreps = 0,
icmpoutaddrmasks = 0,
icmpoutaddrmaskreps = 0;
/* mib-2.tcp counter(s) */
static u32_t tcpactiveopens = 0,
tcppassiveopens = 0,
tcpattemptfails = 0,
tcpestabresets = 0,
tcpinsegs = 0,
tcpoutsegs = 0,
tcpretranssegs = 0,
tcpinerrs = 0,
tcpoutrsts = 0;
/* mib-2.udp counter(s) */
static u32_t udpindatagrams = 0,
udpnoports = 0,
udpinerrors = 0,
udpoutdatagrams = 0;
/* mib-2.snmp counter(s) */
static u32_t snmpinpkts = 0,
snmpoutpkts = 0,
snmpinbadversions = 0,
snmpinbadcommunitynames = 0,
snmpinbadcommunityuses = 0,
snmpinasnparseerrs = 0,
snmpintoobigs = 0,
snmpinnosuchnames = 0,
snmpinbadvalues = 0,
snmpinreadonlys = 0,
snmpingenerrs = 0,
snmpintotalreqvars = 0,
snmpintotalsetvars = 0,
snmpingetrequests = 0,
snmpingetnexts = 0,
snmpinsetrequests = 0,
snmpingetresponses = 0,
snmpintraps = 0,
snmpouttoobigs = 0,
snmpoutnosuchnames = 0,
snmpoutbadvalues = 0,
snmpoutgenerrs = 0,
snmpoutgetrequests = 0,
snmpoutgetnexts = 0,
snmpoutsetrequests = 0,
snmpoutgetresponses = 0,
snmpouttraps = 0;
/* prototypes of the following functions are in lwip/src/include/lwip/snmp.h */
/**
* Copy octet string.
*
* @param dst points to destination
* @param src points to source
* @param n number of octets to copy.
*/
void ocstrncpy(u8_t *dst, u8_t *src, u8_t n)
{
while (n > 0)
{
n--;
*dst++ = *src++;
}
}
/**
* Copy object identifier (s32_t) array.
*
* @param dst points to destination
* @param src points to source
* @param n number of sub identifiers to copy.
*/
void objectidncpy(s32_t *dst, s32_t *src, u8_t n)
{
while(n > 0)
{
n--;
*dst++ = *src++;
}
}
/**
* Initializes sysDescr pointers.
*
* @param str if non-NULL then copy str pointer
* @param len points to string length, excluding zero terminator
*/
void snmp_set_sysdesr(u8_t *str, u8_t *len)
{
if (str != NULL)
{
sysdescr_ptr = str;
sysdescr_len_ptr = len;
}
}
void snmp_get_sysobjid_ptr(struct snmp_obj_id **oid)
{
*oid = &sysobjid;
}
/**
* Initializes sysObjectID value.
*
* @param oid points to stuct snmp_obj_id to copy
*/
void snmp_set_sysobjid(struct snmp_obj_id *oid)
{
sysobjid = *oid;
}
/**
* Must be called at regular 10 msec interval from a timer interrupt
* or signal handler depending on your runtime environment.
*/
void snmp_inc_sysuptime(void)
{
sysuptime++;
}
void snmp_add_sysuptime(u32_t value)
{
sysuptime+=value;
}
void snmp_get_sysuptime(u32_t *value)
{
SNMP_GET_SYSUPTIME(sysuptime);
*value = sysuptime;
}
/**
* Initializes sysContact pointers,
* e.g. ptrs to non-volatile memory external to lwIP.
*
* @param ocstr if non-NULL then copy str pointer
* @param ocstrlen points to string length, excluding zero terminator
*/
void snmp_set_syscontact(u8_t *ocstr, u8_t *ocstrlen)
{
if (ocstr != NULL)
{
syscontact_ptr = ocstr;
syscontact_len_ptr = ocstrlen;
}
}
/**
* Initializes sysName pointers,
* e.g. ptrs to non-volatile memory external to lwIP.
*
* @param ocstr if non-NULL then copy str pointer
* @param ocstrlen points to string length, excluding zero terminator
*/
void snmp_set_sysname(u8_t *ocstr, u8_t *ocstrlen)
{
if (ocstr != NULL)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -