我正在编写MIB和SNMP代理。我似乎对DISPLAY-HINT和UNITS之间明显的冲突感到困惑。 NMS是否更适合拥有DISPLAY-HINT或UNITS的知识?
此问题的背景如下:MIB中的一个对象是mPowerVoltage:
FixedDiv10 ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d-1"
STATUS current
DESCRIPTION "Fixed point, one decimal"
SYNTAX Integer32
mPowerVoltage OBJECT-TYPE
SYNTAX FixedDiv10
UNITS "V/10"
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Power Voltage in desiVolts"
::= { mPowerEntry 2 } -- an entry in a table with integer index
我理解的值在线上的实际传输,例如10.8 V在Integer32中传输为108。这是我将UNITS设置为“V / 10”的动机,并将对象描述为desiVolts中的电源电压。但是,当我使用snmpget时,我得到:
snmpget -c public -v 1 -m -MY-MIB 192.168.1.3 mPowerVoltage.1
MY-MIB::mPowerVoltage.1 = INTEGER: 10.8 V/10
这确实是我指定的,但显然是错误的。
但我很难将UNITS改为“V”?因此,问题是,我应该删除DISPLAY-HINT,还是应该删除UNITS?
作何感想
答案 0 :(得分:1)
据我所知,它们是两个不同的东西,所以两者都没有预见性。
DISPLAY-HINT告诉调用者如何放置小数点 - 所以在你的例子中,它打印出“线上”值108为10.8。
UNITS只是在数字之后附加的一些文本,与您输入的完全相同。在这种情况下,你肯定应该将单位改为“V”,因为你已告诉来电者用V除以10来显示数字。
然而,一个是文本约定的一部分似乎有点不一致,而另一个是对象定义的一部分。