2011-11-08 1 views
2

私はSNMPエージェントを実装していますが、 "t11ZsZoneMemberIndex"オブジェクト(下記参照)の値がどのように選択され、値の一意性が強制されるかについて私が理解しているかどうかはわかりません。アクセスできないMIBテーブルのインデックス値を選択するのは誰ですか? SNMPエージェントは値の一意性を強制していますか?

私は、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 } 

答えて

2

はい、はいです。しかし、それはやや複雑です:SNMPの必要条件は、MIBインデックス全体が組み合わされたときに一意でなければならないということです。したがって、上記のMIBには6つのインデックスがあり、テーブル内の各ローはこれらの6つの値のすべての組み合わせに対して1つのローを持つことができます。つまり、技術的には、別のインデックス値が異なる限り、t11ZsZoneMemberIndexの値が重複する可能性があります。

t11ZsZoneMemberIndex自体が一意である必要がある場合、MIBは実際にそのように定義されていて、MIB INDEXリスト内の単一の唯一のオブジェクトにする必要があります。インデックス自体に複数の一意のインデックスを追加する必要はありません(また、帯域幅の無駄です)。

しかし、複数の一意のインスタンスが存在し、マネージャがSETを実行すると競合する可能性があります。はい、マネージャには、SET要求を拒否し、送信されるデータがない場合はエラーを返します受け入れ可能なものの内部概念と互換性があります。

+0

さて、微妙を指摘してくれてありがとう。技術的には、一意の{fcmInstanceIndex、fcmSwitchIndex、t11ZsServerFabricIndex、t11ZsZoneMemberParentType、t11ZsZoneMemberParentIndex}タプルごとにt11ZsZoneMemberIndexの一意性を追跡する必要があります。簿記がたくさんあるように聞こえます。 – user1034804

+0

はい、インデックスキャッシュを備えた優れたソフトウェアコンポーネントが大いに役立ちます。 –

関連する問題