Как определяется индекс таблицы?

Я смотрю на файл MIB VMWare, и он имеет следующую структуру (очевидно, урезанную):

vmwVmTable OBJECT-TYPE SYNTAX      
    SEQUENCE OF VmwVmEntry 
    ....

vmwVmEntry OBJECT-TYPE 
    SYNTAX VmwVmEntry 
    ....
VmwVmEntry ::= SEQUENCE { vmwVmIdx  Integer32, ... 

vmwVmIdx OBJECT-TYPE 
    SYNTAX Integer32 (0..65535) 
    MAX-ACCESS  not-accessible

Итак, vmwVmIdx — это индекс в таблице, но он помечен как недоступный. И, конечно же, если вы попросите об этом, ничего не будет возвращено. Так как же определяется индекс таблицы? Я видел приложения, которые могут отображать эту таблицу, но как?

Все ли приложения просто смотрят на последнее целое число OID для каждого извлеченного объекта и предполагают, что это индекс? И если это так, как это согласуется с моим другим несколько связанным вопросом?


person DougN    schedule 09.10.2012    source источник


Ответы (1)


После некоторых исследований было решено сделать индексный столбец недоступным. Таким образом, вы действительно берете только последний бит OID и используете его для индекса.

Таким образом, при просмотре записей в таблице вы добавляете table.entryName. Ниже у вас будут имена столбцов (и, следовательно, вам нужно иметь MIB, чтобы знать это, что вам нужно знать, что вы все равно просматриваете таблицу).

Если у вас есть table.entryName.columnName, посмотрите, какие записи у вас есть ниже. Все, что у вас есть после этого для OID каждого извлеченного значения, является индексом.

person DougN    schedule 09.10.2012