--****************************************************************************
--
-- Copyright (c) 2003-2011 Broadcom Corporation
--
-- This program is the proprietary software of Broadcom Corporation and/or
-- its licensors, and may only be used, duplicated, modified or distributed
-- pursuant to the terms and conditions of a separate, written license
-- agreement executed between you and Broadcom (an "Authorized License").
-- Except as set forth in an Authorized License, Broadcom grants no license
-- (express or implied), right to use, or waiver of any kind with respect to
-- the Software, and Broadcom expressly reserves all rights in and to the
-- Software and all intellectual property rights therein.  IF YOU HAVE NO
-- AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY,
-- AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE
-- SOFTWARE.  
--
-- Except as expressly set forth in the Authorized License,
--
-- 1.     This program, including its structure, sequence and organization,
-- constitutes the valuable trade secrets of Broadcom, and you shall use all
-- reasonable efforts to protect the confidentiality thereof, and to use this
-- information only in connection with your use of Broadcom integrated circuit
-- products.
--
-- 2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED
-- "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS
-- OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
-- RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL
-- IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR
-- A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET
-- ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME
-- THE ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE.
--
-- 3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM
-- OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
-- INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY
-- RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM
-- HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN
-- EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1,
-- WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY
-- FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
--
--****************************************************************************
--    Filename: brcm-bfc-mgmt.mib
--    Author:   Kevin O'Neal
--    Creation Date: 4-december-2003
--
--****************************************************************************
--    Description:
--
--		private MIB for runtime (not factory) BFC management
--		
--****************************************************************************
--    Revision History:
--
--****************************************************************************

BRCM-BFC-MGMT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Unsigned32,
    Gauge32
        FROM SNMPv2-SMI
    DisplayString,
    AutonomousType,
    DateAndTime,
    TruthValue
        FROM SNMPv2-TC
    cableDataMgmtMIBObjects
        FROM BRCM-CABLEDATA-MGMT-MIB;
                
bfcMgmt MODULE-IDENTITY
    LAST-UPDATED "201104200000Z"
    ORGANIZATION "Broadcom Corporation"
    CONTACT-INFO
        "	BANANA-CABLEDATA
                (cableData branch of the
                Broadcom Assigned Numbers and Naming Authority)
                Broadcom Corporation

        Postal: 4385 River Green Parkway
                Duluth, GA  30096
                USA

           Tel: +1 770 232-0018

        E-mail: banana-cabledata@broadcom.com"
    DESCRIPTION
        "Broadcom proprietary MIB for runtime management of objects common
         to the BFC software architecture."
    REVISION      "201104200000Z"
    DESCRIPTION
        "Changed syntax of bfcEventText and bfcEventLogTransientEvent from
         OCTET STRING to DisplayString.  The DisplayString syntax is more
         convenient to use with many SNMP tools and libraries."
    REVISION      "201002010000Z"
    DESCRIPTION
        "Added object bfcEventLogTransientEvent"
    REVISION      "200908260000Z"
    DESCRIPTION
        "Added objects bfcMemoryAvailable, bfcMemoryLargestBlock, 
         bfcMemoryLowWater, and bfcMemoryFragmentation."
    REVISION      "200906300000Z"
    DESCRIPTION
        "Added objects bfcSwImageName and bfcSwImagePath."
    REVISION      "200806300000Z"
    DESCRIPTION
        "Added group bfcEventLog."
    REVISION      "200702050000Z"
    DESCRIPTION
        "Module description was updated. 
         Compilability issues were cleaned up: 
         - Chronological order of revision history was corrected.
         - Range restriction was added to object bfcAppIndex."
    REVISION      "200609050000Z"
    DESCRIPTION
        "Added object bfcSerialConsoleMode."
    REVISION      "200505050000Z"
    DESCRIPTION
        "Added object bfcSwNumBoots."        
    REVISION      "200312040000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { cableDataMgmtMIBObjects 9 }
    
bfcMgmtBase OBJECT IDENTIFIER ::= { bfcMgmt 1 }

bfcSoftware OBJECT IDENTIFIER ::= { bfcMgmtBase 1 }

-- Global system information.

bfcSwDateTime  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time that this image was built."
    ::= { bfcSoftware 1 }

bfcSwBuiltBy  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The user ID of the individual who built this image."
    ::= { bfcSoftware 2 }
    
bfcSwOperatingSystem  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the operating system used for this image."
    ::= { bfcSoftware 3 }

bfcSwSnmpAgent  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the SNMP agent core used by this image."
    ::= { bfcSoftware 4 }
    
-- bfcApplicationTable includes info for each application component.
    
bfcApplicationTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BfcApplicationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of BFC system components, or applications.  A BFC system
         may contain zero or more of these components."
    ::= { bfcSoftware 5 }
    
bfcApplicationEntry OBJECT-TYPE
    SYNTAX      BfcApplicationEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing the characteristics of a single BFC application
         from this image."
    INDEX   { bfcAppIndex }
    ::= { bfcApplicationTable 1 }
    
BfcApplicationEntry ::= 
    SEQUENCE    {
                bfcAppIndex           Integer32,
                bfcAppName            DisplayString,
                bfcAppVersion         DisplayString,
                bfcAppReleaseState    INTEGER,
                bfcAppFeatures        DisplayString
    }

bfcAppIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..128)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Identifies the instance number of this BFC system component."
    ::= { bfcApplicationEntry 1 }
    
bfcAppName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of this BFC sytem component."
    ::= { bfcApplicationEntry 2 }
    
bfcAppVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The version identifier for this BFC system component."
    ::= { bfcApplicationEntry 3 }
    
bfcAppReleaseState OBJECT-TYPE
    SYNTAX      INTEGER {
                release(1),
                preRelease(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates whether this BFC system component is has been 
         officially released, or if this component is in a pre-release state."
    ::= { bfcApplicationEntry 4 }
    
bfcAppFeatures OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Identifies any features in this BFC system component."
    ::= { bfcApplicationEntry 5 }
    
bfcSwNumBoots  OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object provides a counter of the number of times that the board
         has booted.  This value is stored in non-volatile memory and is
         incremented on each boot."
    ::= { bfcSoftware 6 }
    
bfcSwImageName  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The filename of this image."
    ::= { bfcSoftware 7 }
    
bfcSwImagePath  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The path to the build directory in which this image was built."
    ::= { bfcSoftware 8 }
    
--
-- General system level settings
--    
    
bfcSystem OBJECT IDENTIFIER ::= { bfcMgmtBase 2 }
    
bfcSerialConsoleMode  OBJECT-TYPE
    SYNTAX      INTEGER {
                disabled(0),
                readOnly(1),
                readWrite(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Controls the operation of the serial console on this device.  If set
         to disabled(0), serial console input and output will be disabled.  If
         set to readOnly(1), serial console output will be enabled but input 
         will be disabled.  If set to readWrite(2), both serial input and 
         output will be enabled."
    ::= { bfcSystem 1 }
    
bfcMemoryAvailable  OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "Bytes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The amount, in bytes, of total RAM currently available to the system
         heap."
    ::= { bfcSystem 2 }

bfcMemoryLargestBlock  OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "Bytes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The size, in bytes, of the largest contiguous block of memory 
         currently available in the system heap."
    ::= { bfcSystem 3 }
    
bfcMemoryLowWater  OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "Bytes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The amount, in bytes, of system heap available at the point in time
         at which the most memory was in use since system boot."
    ::= { bfcSystem 4 }

bfcMemoryFragmentation  OBJECT-TYPE
    SYNTAX      Integer32 (0..100)
    UNITS       "percent"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A measure of the extent to which system heap is fragmented.  This
         value is calculated from the total heap available and the largest
         block of heap available in the following way:
         
            Fragmentation = 100 * (1 - (LargestBlock / TotalAvailable))
         
         Thus if the largest block available is equal to the total amount of
         memory available, fragmentation would be said to equal 0%.  
         Fragmentation increases as the ratio of largest available block to
         total memory available decreases."
    ::= { bfcSystem 5 }


    
bfcEventLog OBJECT IDENTIFIER ::= { bfcMgmtBase 3 }

--
-- Values for the bfcEventId field for various events are defined below the
-- bfcEvents node.  Other values for this field which pertain to specific
-- devices or systems may be defined in other MIBs as appropriate.
--

bfcEvents OBJECT IDENTIFIER ::= { bfcEventLog 1 }

bfcSystemEvents OBJECT IDENTIFIER ::= { bfcEvents 1 }

bfcSystemEvent OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
        "A generic system event - this identity may be used for events which
         do not have a more specific identity defined."
    ::= { bfcSystemEvents 1 }

bfcSystemResetEvent OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
        "An event giving details related to a system reset."
    ::= { bfcSystemEvents 2 }
    
bfcSystemTransientEvent OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
        "An event which was explicitly logged via management and which is not
         stored to non-volatile storage."
    ::= { bfcSystemEvents 3 }
   
--
-- The event log is contained within the bfcEventLogTable
--

bfcEventLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BfcEventLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Contains a log of network and device events that may be
         of interest in fault isolation and troubleshooting."
    ::= {  bfcEventLog 2 }

bfcEventLogEntry OBJECT-TYPE
    SYNTAX      BfcEventLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Describes a network or device event that may be of
         interest in fault isolation and troubleshooting.
         
         Events are identified by an AutonomousType (OBJECT
         IDENTIFIER), bfcEventId, to allow a single table to
         contain events defined in this MIB plus events defined by a
         particular implementation - for example, as documented in the
         private enterprise MIB definition for a particular device
         or system feature.  
         
         Although multiple rows may have the same value of bfcEventId,
         no two such rows will have the same value of bfcEventIndex,
         allowing for multiple instances of a given event ID to exist
         in the table simultaneously."
    INDEX { bfcEventId, bfcEventIndex }
    ::= { bfcEventLogTable 1 }

BfcEventLogEntry ::= 
    SEQUENCE       {
        bfcEventId      AutonomousType,
        bfcEventIndex   Integer32,
        bfcEventTime    DateAndTime,
        bfcEventText    DisplayString
    }
        
bfcEventId OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A reference to an object which defines a particular event type.
         The object referenced should not be accessible, but rather be used 
         to provide a unique identifier of the event type.  Some such 
         objects are defined under the bfcEvents node of this MIB."
    ::= { bfcEventLogEntry 1 }
        
bfcEventIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Provides relative ordering of the objects in the event log for a given 
         value of bfcEventId."
    ::= { bfcEventLogEntry 2 }
        
bfcEventTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The local system time at the time this event was logged."
    ::= { bfcEventLogEntry 3 }
        
bfcEventText OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Provides a description of the event.  The exact nature of the 
         description depends on the type of event being logged."
    ::= { bfcEventLogEntry 4 }
    
bfcEventLogReset  OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object will clear the contents of the bfcEventLogTable if set to
         true(1).  Always returns false(2) when read."
    ::= { bfcEventLog 3 }
    
bfcEventLogTransientEvent OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Setting this object will result in an entry being placed into the 
         bfcEventLogTable with a value of bfcEventId equal to 
         bfcSystemTransientEvent and a bfcEventText value equal to the value
         written to this object.  The text will also be logged to the serial 
         console.  
         
         This event will not be written to non-volatile storage and will not 
         persist across a system reboot.  When read, this object always returns 
         an empty string."
    ::= { bfcEventLog 4 }
        
END
