2

我正在编写 MIB 和 SNMP 代理。我似乎对 DISPLAY-HINT 和 UNITS 之间的明显冲突感到困惑。NMS 最好有 DISPLAY-HINT 还是了解单位?

这个问题的背景如下: 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

这确实是我指定的,但显然是错误的。

但是我几乎不能将单位更改为“V”?因此问题是,我应该删除 DISPLAY-HINT,还是应该删除 UNITS?

巴尔德

4

1 回答 1

1

据我了解,它们是两个不同的东西,所以两者都不需要。

DISPLAY-HINT 告诉调用者如何放置小数点 - 因此在您的示例中,它将“在线”值 108 打印为 10.8。

UNITS 只是在数字之后附加的一些文本,与您输入的内容完全相同。在这种情况下,您绝对应该将单位更改为“V”,因为您已经告诉调用者将 V 中的数字除以 10 来显示。

然而,一个是文本约定的一部分,而另一个是对象定义的一部分,这似乎有点不一致。

于 2013-09-23T09:17:42.860 回答