问题描述
我正在尝试生成一个完全 smilint 验证的 MIB 文件,但我很难弄清楚如何在 SEQUENCE 块中创建用户定义的文本约定的序列。
以下是我从 smilint 得到的消息(虽然我只关心第一个错误): ( https://www.ibr.cs.tu-bs.de/bin/smitools.cgi )
mibs/table_test.mib:44: [2] {basetype-unkNown} type `TYPEMyEnumTable' of node `myenumTable' does not resolve to a kNown base type
mibs/table_test.mib:18: [5] {group-unref} warning: current group `myObjectGroup' is not referenced in this module
我在 MIB Smithy 网站上读到,某些 MIB 编译器不允许从其他 TEXTUAL-CONVENTION 声明派生 TEXTUAL-CONVENTION 声明,在我看来,这可能是这里问题的根源。但是,如果这不是 smilint-clean,是否有一种替代机制不涉及重建数据以更好地适应 SNMP 的 SEQUENCE-in-SEQUENCE 范式?
我可以看到,如果我将所有数据显示为 SEQUENCE 类型的 SEQUENCE 会更合适,但是我试图用 SNMP 封装的固件并不总是给我那么奢侈,所以我我希望找到一种简洁的替代方案,避免重组我的设备数据的需要。 :-(
这是我一直用作测试平台的独立最小 MIB 文件:
TEST-MIB DEFinitioNS ::= BEGIN
IMPORTS
object-type,MODULE-IDENTITY,enterprises FROM SNMPv2-SMI
TEXTUAL-CONVENTION FROM SNMPv2-TC
OBJECT-GROUP FROM SNMPv2-CONF
;
testBase MODULE-IDENTITY
LAST-UPDATED "202106070000Z"
ORGANIZATION "www.me.com"
CONTACT-INFO "me@me.com"
DESCRIPTION "Test MIB"
REVISION "202106070000Z"
DESCRIPTION "First draft"
::= { enterprises 65535 }
myObjectGroup OBJECT-GROUP
OBJECTS { myenumSingle,myenumTable }
STATUS current
DESCRIPTION "Object conformance group"
::= { testBase 1 }
TYPEMyEnum ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION "My enum (type)"
Syntax INTEGER { myenumThis(65),myenumThat(68),myenumTheOther(69) }
TYPEMyEnumTable ::= SEQUENCE OF TYPEMyEnum
-- Note: the following version also doesn't work
-- TYPEMyEnumTable ::= TEXTUAL-CONVENTION
-- STATUS current
-- DESCRIPTION "My enum table (type)"
-- Syntax SEQUENCE OF INTEGER { myenumThis(65),myenumTheOther(69) }
-- Note: the following version also doesn't work
-- TYPEMyEnumTable ::= TEXTUAL-CONVENTION
-- STATUS current
-- DESCRIPTION "My enum table (type)"
-- Syntax SEQUENCE OF Integer32 { myenumThis(65),myenumTheOther(69) }
TestSEQ ::= SEQUENCE {
myenumSingle TYPEMyEnum,myenumTable TYPEMyEnumTable
}
myenumSingle object-type
Syntax TYPEMyEnum
MAX-ACCESS read-write
STATUS current
DESCRIPTION "My enum (single instance)"
::= { testBase 2 }
myenumTable object-type
Syntax TYPEMyEnumTable
MAX-ACCESS read-write
STATUS current
DESCRIPTION "My enum (table of instances)"
::= { testBase 3 }
END
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)