RowStatus в таблице SNMP MIB

В приведенном ниже примере записи MIB:

--
-- Logging configuration
--

nsLoggingTable     OBJECT-TYPE
  SYNTAX      SEQUENCE OF NsLoggingEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A table of individual logging output destinations, used to control
     where various levels of output from the agent should be directed."
  ::= { nsConfigLogging 1 }

nsLoggingEntry     OBJECT-TYPE
  SYNTAX      NsLoggingEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "A conceptual row within the logging table."
  INDEX       { nsLogLevel, IMPLIED nsLogToken }
  ::= { nsLoggingTable 1 }

NsLoggingEntry ::= SEQUENCE {
  nsLogLevel          INTEGER,
  nsLogToken          DisplayString,
  nsLogType           INTEGER,
  nsLogMaxLevel       INTEGER,
  nsLogStatus         RowStatus
}

Здесь запись RowStatus является последней в NsLoggingEntry, можем ли мы поместить эту запись RowStatus где-нибудь в NsLoggingEntry (например, после "nsLogToken DisplayString")?


person Himanshu Gupta    schedule 30.04.2012    source источник
comment
Чтобы ответить на ваш вопрос, мне нужно понять, почему вы его задаете. Вы спрашиваете, можете ли вы переместить запись nsLogStatus RowStatus выше в списке?   -  person lostriebo    schedule 30.04.2012
comment
да .. это намерение ..   -  person Himanshu Gupta    schedule 01.05.2012
comment
Я добавил ответ, который, как мне кажется, отвечает на ваш вопрос, но я все еще не уверен, что дал вам информацию, которую вы искали. Если мой ответ не отвечает на ваш основной вопрос, не могли бы вы рассказать немного подробнее, почему вы хотите переместить nsLogStatus?   -  person lostriebo    schedule 01.05.2012


Ответы (1)


Перемещение записи nsLogStatus RowStatus в другое место в последовательности NsLoggingEntry возможно, но вам необходимо обновить порядок столбцовых объектов, чтобы он соответствовал порядку последовательности.

Чтобы дать немного больше деталей, NsLoggingEntry ::= SEQUENCE определяет столбцы, которые будут составлять записи в nsLoggingTable. В файле MIB должно быть дополнительное определение для каждого из этих столбцов, которое будет выглядеть примерно так:

nsLogStatus OBJECT-TYPE
  SYNTAX      RowStatus
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION "<Some great description of this column>"
  ::= { nsLoggingEntry 5 }

Ключевой частью этого определения является строка ::= { nsLoggingEntry 5 }, которая утверждает, что nsLogStatus будет пятым столбцом в строках nsLoggingTable. Если вы измените порядок последовательности NsLoggingEntry, вы должны убедиться, что определения отдельных столбцов следуют этой последовательности.

Например, если вы изменили порядок на

NsLoggingEntry ::= SEQUENCE {
  nsLogLevel          INTEGER,
  nsLogToken          DisplayString,
  nsLogStatus         RowStatus,
  nsLogType           INTEGER,
  nsLogMaxLevel       INTEGER
}

назначения OID для каждого из столбцов должны стать,

nsLogLevel    ::= { nsLoggingEntry 1 }
nsLogToken    ::= { nsLoggingEntry 2 }
nsLogStatus   ::= { nsLoggingEntry 3 }
nsLogType     ::= { nsLoggingEntry 4 }
nsLogMaxLevel ::= { nsLoggingEntry 5 }

Есть еще одна вещь, о которой следует помнить: индекс для таблицы должен быть первым столбцом в последовательности, поэтому nsLogLevel должен оставаться в своем текущем местоположении, как и nsLogToken.

person lostriebo    schedule 01.05.2012
comment
Я думаю, что это хороший ответ, даже если исходный постер не оценил (не принял) его. - person U. Windl; 28.01.2021