我正在实施一个SNMP代理,并且不确定我对如何选择“t11ZsZoneMemberIndex”对象(见下文)的值以及谁强制值唯一性的理解是否正确。
我的理解是SNMP管理器会选择“t11ZsZoneMemberIndex”对象的值,并在SET操作中的VarBind的“name”字段中使用它。 SNMP代理在收到SET时强制执行“t11ZsZoneMemberIndex”值的唯一性。它是否正确?如果没有,为什么?
MIB表是SMIv2,带有RowStatus对象。我理解其他索引的值的来源。
t11ZsZoneMemberTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11ZsZoneMemberEntry
MAX-ACCESS not-accessible
::= { t11ZsConfiguration 6 }
t11ZsZoneMemberEntry OBJECT-TYPE
SYNTAX T11ZsZoneMemberEntry
MAX-ACCESS not-accessible
INDEX { fcmInstanceIndex, fcmSwitchIndex,
t11ZsServerFabricIndex, t11ZsZoneMemberParentType,
t11ZsZoneMemberParentIndex, t11ZsZoneMemberIndex }
::= { t11ZsZoneMemberTable 1 }
T11ZsZoneMemberEntry ::= SEQUENCE {
t11ZsZoneMemberParentType INTEGER,
t11ZsZoneMemberParentIndex Unsigned32,
t11ZsZoneMemberIndex Unsigned32,
t11ZsZoneMemberFormat T11ZsZoneMemberType,
t11ZsZoneMemberID OCTET STRING,
t11ZsZoneMemberRowStatus RowStatus
}
t11ZsZoneMemberParentType OBJECT-TYPE
SYNTAX INTEGER {
zone(1), -- member belongs to a Zone
alias(2) -- member belongs to a Zone Alias
}
MAX-ACCESS not-accessible
::= { t11ZsZoneMemberEntry 1 }
t11ZsZoneMemberParentIndex OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295)
MAX-ACCESS not-accessible
::= { t11ZsZoneMemberEntry 2 }
t11ZsZoneMemberIndex OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295)
MAX-ACCESS not-accessible
DESCRIPTION
"An index value that uniquely identifies this Zone
Member amongst all Zone Members in the Zone Set
database of a particular Fabric on a particular switch."
::= { t11ZsZoneMemberEntry 3 }
t11ZsZoneMemberFormat OBJECT-TYPE
SYNTAX T11ZsZoneMemberType
MAX-ACCESS read-create
::= { t11ZsZoneMemberEntry 4 }
t11ZsZoneMemberID OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (1..255))
MAX-ACCESS read-create
::= { t11ZsZoneMemberEntry 5 }
t11ZsZoneMemberRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
::= { t11ZsZoneMemberEntry 6 }
答案 0 :(得分:2)
你说得对,是的。但它稍微复杂一点:SNMP要求是整个MIB索引集合在一起时必须是唯一的。因此,上述MIB具有6个索引,因此表中的每一行对于这6个值的每个组合可以具有单个行。这意味着从技术上讲,只要另一个索引值不同,t11ZsZoneMemberIndex的值就可能重复。
如果要求t11ZsZoneMemberIndex本身是唯一的,那么MIB确实应该以这种方式定义并使其成为MIB INDEX列表中的唯一对象。不需要为索引本身添加多个唯一索引(并且浪费带宽)。
但是如果有多个唯一实例,并且它们可以在管理器执行SET时发生冲突,那么是...由管理员拒绝SET请求并在发送的数据不兼容时返回错误内在的可接受概念。