net snmp:强制表的xxEntry值为2而不是1

net snmp:强制表的xxEntry值为2而不是1,snmp,net-snmp,mib,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

使用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注册该表时,只需给它一个OID,如“…,1,8”(即最多Foobatable,但不包括条目)。Net snmp隐式地将.1添加到表OID,然后添加列、索引等


是否有一种半支持的方法将该输入值强制为2?(也就是说,不需要对传递给处理程序的对象进行黑客攻击。)

不,对不起:没有支持的方法可以做到这一点。部分原因是你所看到的MIB在SMIv2下是不合法的

要实现它,您要么需要更改agent/helper目录中的多个点(从table.c的第328行开始,可能还有其他地方),要么完全从头开始实现一个表,而根本不使用helper模块

但是mib2c给你的任何东西都不能帮你解决这个问题