SNMP MIB中的表中的RowStatus

时间:2012-04-30 06:08:36

标签: 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”之后)吗?

1 个答案:

答案 0 :(得分:0)

将条目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也是如此。