net-snmp:force table使xxEntry值为2而不是1

时间:2010-08-25 22:18:12

标签: snmp net-snmp mib

使用net-snmp,mib2c -c mib2c.iterate.conf fooBarTable生成的表格代码然后严重入侵。

不幸的是,表的定义是条目2而不是正常的1.(我没有这样做,我试图使其适合现有情况。)MIB看起来像这样:

fooBarTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF FooBarEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION    "blah"
    ::= { fooMIBObjects 8 }

fooBarEntry OBJECT-TYPE
    SYNTAX          FooBarEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "Stuff."
    INDEX { ifIndex }
    ::= { fooBarTable 2 }

当您使用net-snmp注册表时,您只需给它一个类似“......,1,8”的OID(即最多fooBarTable,但不包括Entry)。 Net-snmp隐含地将.1添加到表OID,然后是列,索引等。

是否有半支持方式强制该条目值为2? (即,不要将传递给处理程序的对象中的位进行黑客攻击。)

1 个答案:

答案 0 :(得分:2)

不,抱歉:没有支持的方法可以做到这一点。部分是因为您正在盯着的MIB在SMIv2下是不合法的。

要实现它,您需要更改代理程序/帮助程序目录中的多个位置(从table.c的第328行开始,可能还有其他地方)或者完全从头开始实现表而不使用辅助程序模块

但mib2c没有给你解决这个问题。