我有一个包含表结构的MIB,我在mib2c命令的帮助下生成了代码
mib2c -c mib2c.create-dataset.conf IPsTable
它生成两个文件IPsTable.c和IPsTable.h。
实际上当我发送snmpwalk命令时
snmpwalk -v2c -c public localhost -Ci IPsTable
它给出一个输出状态"错误:OID没有增加"
我已经跟踪了日志并且知道我们只收到GET NEXT请求,并且每次收到请求时列字段的值都会增加。
case MODE_GETNEXT:
var = request->requestvb;
table_info = netsnmp_extract_table_info(request);
snmp_log(LOG_INFO,"column : %d\n",table_info->colnum);
snmp_log(LOG_INFO,"index : %d\n",*(table_info->indexes->val.integer));
if (table_info->colnum > RESULT_COLUMN){
table_info->colnum=0;
return SNMP_ERR_NOERROR;
}
x=*(table_info->indexes->val.integer);
netsnmp_table_build_result(reginfo, requests,
table_info, ASN_INTEGER,
(u_char *) & result,
sizeof(result));
break;
当列的值超出我们在MIB的行中的列数并且它继续增加时出现问题。我无法增加索引值。
有没有办法让我可以重置列的值并输入index的值(意味着指向下一行)?