SNMP GetNext命令

时间:2015-01-20 08:57:42

标签: c snmp net-snmp

我有一个包含表结构的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的值(意味着指向下一行)?

0 个答案:

没有答案