BN-LOG-MESSAGE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    TimeTicks,
    IpAddress,
    Integer32
        FROM SNMPv2-SMI
    bnLogMsg
        FROM S5-ROOT-MIB
    DisplayString,
    TruthValue,
    DateAndTime
        FROM SNMPv2-TC;

bnLogMsgMIB       MODULE-IDENTITY
    LAST-UPDATED "200505040000Z"
    ORGANIZATION "Nortel Networks"
    CONTACT-INFO "Global Optical Customer Service
                        Tel:   1-800 (ASK-TRAN) or
                               1-800 (ASK-ETAS)"
    DESCRIPTION  "The management information definitions for the
                  Bay Networks log message facility."

    REVISION "200505040000Z" -- 04 May 2005
    DESCRIPTION "v4:  Added ranges to INDEX objects."

    REVISION "200504270000Z" -- 25 April 2005
    DESCRIPTION "v3:  Added msgBufferSizeVeryLarge to bnLogMsgBufferMaxSize"

    REVISION "200302241200Z" -- 24 February 2003
    DESCRIPTION
        "v002:  Updated by David Levi:
              - formatting cleanup
              - removed conformance/compliance sections, not needed
                for a proprietary MIB
              - added enumerations to bnLogMsgSaveTargets to reverse
                selection of log levels to save
              - added bnLogMsgRemoteSyslogEnabled
              - added bnLogMsgRemoteSyslogAddress
              - added bnLogMsgRemoteSyslogSaveTargets
              - added bnLogMsgClearMessageBuffers
              - added bnLogMsgBufferMsgUtcTime to bnLogMsgBufferTable"

    ::= { bnLogMsg 1 }


-- Administrative assignments ****************************************
--
-- Do not assign anything under bnLogMsgMIBConformance
--

bnLogMsgMIBObjects      OBJECT IDENTIFIER ::= { bnLogMsgMIB 1 }
bnLogMsgMIBTraps        OBJECT IDENTIFIER ::= { bnLogMsgMIB 2 }
bnLogMsgMIBConformance  OBJECT IDENTIFIER ::= { bnLogMsgMIB 3 }


bnLogMsgBufferOperaton OBJECT-TYPE
    SYNTAX       INTEGER {
                     on(1),    -- store log messages
                     off(2)    -- do not store log messages
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "The decision to store or discard generated log
                 messages is determined by the value of this object.
                 Specifying on(1) causes log messages to be stored
                 in the log message buffer facility according to the
                 parameters specified by related management objects
                 in this module. Specifying off(2) discontinues log
                 message accumulation. Previously collected log
                 messages remained stored in the buffer facility
                 until they are manually cleared or the system is
                 reset. Resets do not clear log messages that have
                 been saved in non-volatile storage.

                 Note that this object does not affect operation
                 of the remote syslog facility, it only determines
                 whether log messages are stored locally."
    DEFVAL       { on }
    ::= { bnLogMsgMIBObjects 1 }

bnLogMsgBufferMaxSize OBJECT-TYPE
    SYNTAX       INTEGER {
                     msgBufferSizeSmall(50),
                     msgBufferSizeMedium(100),
                     msgBufferSizeLarge(200),
                     msgBufferSizeVeryLarge(400)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This object determines the overall size of the log
                 message buffer facilities. Changing the value of this
                 object causes all messages currently being stored in
                 the buffer to be lost. Note that attempts to set this
                 object to a larger value (e.g., msgBufferSizeSmall(50)
                 to msgBufferSizeLarge(200)) may be rejected due to
                 current resource utiliztion within the running system.

                 Note that this object only applies to the buffering
                 capabilities that are volatile. Messages that are
                 classified as volatile are lost upon system
                 reinitialization. This object has no affect on
                 non-volatile message logging capacity."
    DEFVAL       { msgBufferSizeSmall }
    ::= { bnLogMsgMIBObjects 2 }

bnLogMsgBufferCurSize OBJECT-TYPE
    SYNTAX       INTEGER (0..200)
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The current number of log messages in the volatile
                 portion of the system log message facility. Messages
                 that are classified as volatile are lost upon system
                 reinitialization."
    ::= { bnLogMsgMIBObjects 3 }

bnLogMsgBufferFullAction OBJECT-TYPE
    SYNTAX       INTEGER {
                     overwrite(1),
                     latch(2)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "The amount of buffer space allocated for log messages,
                 as determined by the object bnLogMsgBufferMaxSize, is
                 finite and thus only a limited amount of log messages
                 may be saved on the device. This object specifies the
                 action to take when this space is exhausted. Selecting
                 overwrite(1) will cause previous messages to be over-
                 written. Messages are overwritten based on FIFO.
                 Specifying latch(2) causes no more messages to be
                 saved until this object is changed to overwrite(1) or
                 until the buffer space is made available through some
                 other means (e.g., clearing the buffer).

                 Note that this object only pertains to messages that
                 are maintained in volatile storage.  Messages that are
                 saved in non-volatile storage are never overwritten.
                 They must be cleared manually using the object
                 bnLogMsgBufferClearTargets."
    DEFVAL       { overwrite }
    ::= { bnLogMsgMIBObjects 4 }

bnLogMsgBufferSaveTargets OBJECT-TYPE
    SYNTAX       INTEGER {
                     msgTypeCritical(1),
                     msgTypeSerious(2),
                     msgTypeInformational(3),
                     msgTypeNone(4)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This object determines the type of log messages that
                 will be saved in the log message buffer facilities.

                 Messages are classified based on their type

                 Selecting a type of msgTypeCritical(1), msgTypeSerious(2),
                 or msgTypeInformational(3), causes all log messages that
                 have an associated value less than or equal to the type
                 value specified to be saved when the log message is
                 entered into the system. For example, specifying
                 the value msgTypeCritical(1) causes only messages
                 classified as 'critical' to be saved to non-volatile
                 storage. Specifying msgTypeSerious(2) causes 'critical'
                 and 'serious' messages to be saved.

                 Specifying a value of msgTypeNone(4) means no log messages
                 will be stored in volatile memory."
    DEFVAL       { msgTypeCritical }
    ::= { bnLogMsgMIBObjects 5 }

bnLogMsgBufferClearTargets OBJECT-TYPE
    SYNTAX       INTEGER {
                     msgTypeCritical(1),
                     msgTypeSerious(2),
                     msgTypeInformational(3),
                     msgTypeAllVolatile(4),
                     msgTypeNonVolatile(5)   -- all vol/non-vol msgs
                 }
    MAX-ACCESS   read-write
    STATUS       deprecated
    DESCRIPTION "This object determines the type of log messages that
                 will be deleted from the log message buffer facilities
                 when the action object bnLogMsgBufferClearMsgs is set.
                 Messages are classified based on their type. Specifying
                 msgTypeAllVolatile(4) causes all messages in volatile
                 storage to be deleted. Specifying msgTypeNonVolatile(5)
                 causes all messages, including those in non-volatile
                 storage, to be discarded."
    DEFVAL       { msgTypeAllVolatile }
    ::= { bnLogMsgMIBObjects 6 }

bnLogMsgBufferClearMsgs OBJECT-TYPE
    SYNTAX       INTEGER {
                     clearMsgs(1),
                     savingMsgs(2)
                 }
    MAX-ACCESS   read-write
    STATUS       deprecated
    DESCRIPTION "Setting this object to clearMsgs(1) causes messages
                 currently saved in the log message buffer facilities
                 to be deleted. The type of entries to be deleted is
                 determined by the bnLogMsgBufferClearTargets object.
                 This object always returns the value savingMsgs(2)
                 upon retrieval."
    DEFVAL       { savingMsgs }
    ::= { bnLogMsgMIBObjects 7 }

bnLogMsgBufferNonVolCurSize OBJECT-TYPE
    SYNTAX       INTEGER (0..50)
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The current number of log messages that are present
                 in the non-volatile portion of the system log message
                 facility. Messages that are classified as non-
                 volatile are saved across system reinitializations."
    ::= { bnLogMsgMIBObjects 8 }

bnLogMsgBufferNonVolSaveTargets OBJECT-TYPE
    SYNTAX       INTEGER {
                     msgTypeCritical(1),
                     msgTypeSerious(2),
                     msgTypeInformational(3),
                     msgTypeNone(4)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This object determines the type of log messages that
                 will be saved to non-volatile storage when they occur.
                 Messages are classified based on their type. Selecting
                 a type value causes all log messages that have an
                 associated value less than or equal to the type
                 value specified to be saved when the log message is
                 entered into the system. For example, specifying
                 the value msgTypeCritical(1) causes only messages
                 classified as 'critical' to be saved to non-volatile
                 storage. Specifying msgTypeSerious(2) causes 'critical'
                 and 'serious' messages to be saved. Specifying
                 msgTypeNone(4) causes no messages to be saved.

                 Note that non-volatile storage space is quite limited
                 in many systems such that the user should exercise
                 caution when specifying the type of log messages that
                 are to be saved in non-volatile storage. Messages are
                 no longer saved in non-volatile storage when this
                 space is exhausted.  A log message is automatically
                 generated to alert the user of this situation."
    DEFVAL       { msgTypeNone }
    ::= { bnLogMsgMIBObjects 9 }

bnLogMsgBufferTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF BnLogMsgBufferEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Locally held information about log messages."
    ::= { bnLogMsgMIBObjects 10 }

bnLogMsgBufferEntry OBJECT-TYPE
    SYNTAX       BnLogMsgBufferEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Information on a particular event as described by
                 a log message and related information."
    INDEX       { bnLogMsgBufferMsgOrig,
                  bnLogMsgBufferMsgTime,
                  bnLogMsgBufferMsgIndex
                }
    ::= { bnLogMsgBufferTable 1 }

BnLogMsgBufferEntry ::= SEQUENCE
    {
        bnLogMsgBufferMsgIndex       Integer32,
        bnLogMsgBufferMsgOrig        Integer32,
        bnLogMsgBufferMsgTime        TimeTicks,
        bnLogMsgBufferMsgSrc         INTEGER,
        bnLogMsgBufferMsgCode        Integer32,
        bnLogMsgBufferMsgString      DisplayString,
        bnLogMsgBufferMsgParam1      Integer32,
        bnLogMsgBufferMsgParam2      Integer32,
        bnLogMsgBufferMsgParam3      Integer32,
        bnLogMsgBufferMsgUtcTime     DateAndTime
    }

bnLogMsgBufferMsgIndex OBJECT-TYPE
    SYNTAX       Integer32 (0..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The arbitrary integer index assigned to the log
                 message upon entry into the message facility."
    ::= { bnLogMsgBufferEntry 1 }

bnLogMsgBufferMsgOrig OBJECT-TYPE
    SYNTAX       Integer32 (0..2147483647)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The originator of the log message. Typically, this
                 value represents the slot or unit on which this
                 message originated."
    ::= { bnLogMsgBufferEntry 2 }

bnLogMsgBufferMsgTime OBJECT-TYPE
    SYNTAX       TimeTicks
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The time (in hundredths of a second) between system
                 initialization and the time this log message was
                 entered into the system. This object is the second
                 component in an index into this table to support
                 retrieving messages ordered by time of occurrence."
    ::= { bnLogMsgBufferEntry 3 }

bnLogMsgBufferMsgSrc OBJECT-TYPE
    SYNTAX       INTEGER {
                     msgSrcRunning(1),
                     msgSrcNonVol(2)
                 }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The message source indicates whether this message
                 was loaded from non-volatile storage at system
                 initialization or whether the message has been
                 generated since this time."
    ::= { bnLogMsgBufferEntry 4 }

bnLogMsgBufferMsgCode OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The message code indicating the originator of and
                 the reason why a log message has been generated.
                 This code, coupled with the log message parameters
                 that are associated with the message, should provide
                 a thorough understanding of the log message."
    ::= { bnLogMsgBufferEntry 5 }

bnLogMsgBufferMsgString OBJECT-TYPE
    SYNTAX       DisplayString
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "A printable string indicating the originator of and
                 the reason why a log message has been generated.
                 This string, coupled with the log message parameters
                 that are associated with the message, should provide
                 a thorough understanding of the log message."
    ::= { bnLogMsgBufferEntry 6 }

bnLogMsgBufferMsgParam1 OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "A parameter that is used to convey additional
                 information about a particular occurrence that
                 has initiated the generation of a log message.
                 The value of this is object is pertinent only
                 under the context of additional information in
                 the log entry (i.e., bnLogMsgBufferMsgCode)."
    ::= { bnLogMsgBufferEntry 7 }

bnLogMsgBufferMsgParam2 OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "A parameter that is used to convey additional
                 information about a particular occurrence that
                 has initiated the generation of a log message.
                 The value of this is object is pertinent only
                 under the context of additional information in
                 the log entry (i.e., bnLogMsgBufferMsgCode)."
    ::= { bnLogMsgBufferEntry 8 }

bnLogMsgBufferMsgParam3 OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "A parameter that is used to convey additional
                 information about a particular occurrence that
                 has initiated the generation of a log message.
                 The value of this is object is pertinent only
                 under the context of additional information in
                 the log entry (i.e., bnLogMsgBufferMsgCode)."
    ::= { bnLogMsgBufferEntry 9 }

bnLogMsgBufferMsgUtcTime OBJECT-TYPE
    SYNTAX       DateAndTime
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "Contains the system's local value of UTC (Universal
                 Coordinated Time) when the log entry was created."
    ::= { bnLogMsgBufferEntry 10 }


bnLogMsgRemoteSyslogEnabled OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object controls whether remote logging of
                     log messages using the remote syslog facility
                     is enabled.  The value of this object may not
                     be true(2) if the value of the remote syslog
                     address object is 0.0.0.0."
        DEFVAL { false }
        ::= { bnLogMsgMIBObjects 11 }

bnLogMsgRemoteSyslogAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The IP address to which log messages are sent
                     using the remote syslog facility.  The value
                     of this object may not be 0.0.0.0 if the value
                     of bnLogMsgRemoteSyslogEnabled is true(2)."
        DEFVAL { '00000000'H }
        ::= { bnLogMsgMIBObjects 12 }

bnLogMsgRemoteSyslogSaveTargets OBJECT-TYPE
    SYNTAX       INTEGER {
                     msgTypeCritical(1),
                     msgTypeSerious(2),
                     msgTypeInformational(3),
                     msgTypeNone(4)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This object determines the type of log messages that
                 will be sent to a remote syslog server when they occur.
                 Messages are classified based on their type. Selecting
                 a type value causes all log messages that have an
                 associated value less than or equal to the type
                 value specified to be sent when the log message is
                 entered into the system. For example, specifying
                 the value msgTypeCritical(1) causes only messages
                 classified as 'critical' to be sent to the remote
                 syslog server. Specifying msgTypeSerious(2) causes
                 'critical' and 'serious' messages to be sent.
                 Specifying msgTypeNone(4) means that no log messages
                 will be sent to the remote syslog server."
    DEFVAL       { msgTypeCritical }
    ::= { bnLogMsgMIBObjects 13 }

bnLogMsgClearMessageBuffers OBJECT-TYPE
    SYNTAX       BITS {
                     volCritical(1),
                     volSerious(2),
                     volInformational(3),
                     nonVolCritical(4),
                     nonVolSerious(5),
                     nonVolInformational(6)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "Setting this objects causes messages currently saved in
                 the log message buffer facilities to be deleted.  All
                 messages of types matching the specified bits will be
                 deleted.  For example, a Set on this object containing bits
                 volSerious(2) and nonVolCritical(4) will delete all
                 'serious' messages from volatile storage, and all 'critical'
                 messages from non-volatile storage."
    ::= { bnLogMsgMIBObjects 14 }




-- System Log Message MIB Trap Definitions

bnLogMsgMIBTrapPrefix OBJECT IDENTIFIER ::= { bnLogMsgMIBTraps 0 }

bnLogMsgBufferFull NOTIFICATION-TYPE
    OBJECTS      { bnLogMsgBufferCurSize,
                   bnLogMsgBufferNonVolCurSize }
    STATUS       current
    DESCRIPTION "A bnLogMsgBufferFull trap is sent when either
                 the volatile log message buffer space or the
                 non-volatile log message buffer space is exhausted.

                 An agent will generate this trap only once when
                 it is determined that the buffer facilities are
                 exhausted.  This trap will not be sent again until
                 the message storage facilities are cleared via the
                 bnLogMsgBufferClearMsgs object. Note that, for
                 example, clearing only the volatile storage space
                 when the non-volatile space is full will result in
                 another trap being generated when the non-volatile
                 space is next found to be full (e.g., when the next
                 log message to be saved in non-volatile storage is
                 generated)."
   ::= { bnLogMsgMIBTrapPrefix 1 }

END
