Net-snmp安装开发流程:
Net-snmp安装开发流程_cao849861802的博客-CSDN博客
mib文件构建,标量,一维表量,二维表量:
mib文件构建,标量,一维表量,二维表量_cao849861802的博客-CSDN博客
Mib2c构建.C和.H文件,标量,一维表量,二维表量,表量索引:
Mib2c构建.C和.H文件,标量,一维表量,二维表量,表量索引_cao849861802的博客-CSDN博客
修改mib2c生成的.c文件:
修改mib2c生成的.c文件_cao849861802的博客-CSDN博客
为net-snmp添加新的节点.c,添加私有节点:
为net-snmp添加新的节点.c,添加私有节点_cao849861802的博客-CSDN博客
------------------------------------------------------------------------------------------------
1.标量文件修改
如果是read-only节点的话,直接将需要的值付给对应的接口;read的case为:MODE_GET
需要注意所有标注XXX的地方,是修改的地方;
int value;
snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
/* XXX: a pointer to the scalar's data */&value,
/* XXX: the length of the data in bytes */sizeof(value));
如果是read-write节点的话,read的修改和上述一样;
Write执行的case是:MODE_SET_ACTION,其他的case只要保证不报错可以随便注释掉即可;
2.表量文件修改
如果有字符串变量的节点的话需要定义NNN
#define NNN 128
理解create函数:switchCardInfoTable_createEntry
这个函数是直接创建表项,看自己需要,就是创建多少个index的项,这个是用来创建行的,创建多少行。这个函数的参数会代码预留,如果需要设置就加入参数,不需要把逗号删除就可以了。
这里添加函数如下,我准备添加两行,为我的表。
void switchCardInfoTableInit(void )
{
int i = 0;
for(i = 0; i < 2; i++)
{
switchCardInfoTable_createEntry(i + 1);
}
}
将函数switchCardInfoTableInit添加到init_switchCardInfoTable中
Void init_switchCardInfoTable(void)
{
/* here we initialize all the tables we're planning on supporting */
initialize_table_switchCardInfoTable();
switchCardInfoTableInit();
}
表量剩下的修改和标量的内容就一致了。