--****************************************************************************
--
-- Copyright (c) 2002-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-cabledata-factory.mib
--    Author:   Kevin O'Neal
--    Creation Date: 19-june-2002
--
--****************************************************************************
--    Description:
--
--		factory MIB for cablemodem factory
--		
--****************************************************************************
--    Revision History:
--
--****************************************************************************

BRCM-CABLEDATA-FACTORY-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32,
    Integer32,
    IpAddress
        FROM SNMPv2-SMI
    TruthValue,
    DisplayString,
    MacAddress
        FROM SNMPv2-TC
    cableDataPrivateMIBObjects
        FROM BRCM-CABLEDATA-PRIVATE-MIB;
                
cableDataFactory MODULE-IDENTITY
    LAST-UPDATED "201105120000Z"
    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 factory configuration and management
         of objects common to many cableData products."
    REVISION      "201105120000Z"
    DESCRIPTION
        "Added object cdFactNonVolOperStatus."
    REVISION      "200702050000Z"
    DESCRIPTION
        "Module description was updated. 
         Compilability issues were cleaned up.
         - Range restriction was added to objects cdSerialNumIndex and 
           cdMacAddrIndex."
    REVISION      "200206190000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { cableDataPrivateMIBObjects 2 }

cableDataFactoryBase OBJECT IDENTIFIER ::= { cableDataFactory 1 }

cdFactCommitSettings OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
       "Setting this object to true(1) causes any factory settings which
        have been provisioned to be committed to permanent storage on the
        device.  Reading this object always returns false(2)."
    ::= { cableDataFactoryBase 1 }

-- 32 bit scratch pad (NEW NV REQUIRED)
cdFactScratchPad OBJECT-TYPE 
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS	    current
    DESCRIPTION
       "This object provides a 32 bit scratch pad which may be used for any
        purpose desired.  Data written to this scratch pad will be permanently
        stored on the device."
    ::= { cableDataFactoryBase 2 }

cdFactSerialNumberTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF CdFactSerialNumberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of serial numbers for this device.  A table is necessary for
         this purpose to accomodate possibly multiple serial numbers for a
         given device - internal vs. published serial numbers, integrated
         devices with multiple components, etc."
    ::= { cableDataFactoryBase 3 }
    
cdFactSerialNumberEntry OBJECT-TYPE
    SYNTAX      CdFactSerialNumberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry defining a single serial number for this device."
    INDEX   { cdSerialNumIndex }
    ::= { cdFactSerialNumberTable 1 }
    
CdFactSerialNumberEntry ::= 
    SEQUENCE    {
                cdSerialNumIndex         Integer32,
                cdSerialNumber           OCTET STRING,
                cdSerialNumDescr         DisplayString
    }
    
cdSerialNumIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..4)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Identifies the instance of this serial number."
    ::= { cdFactSerialNumberEntry 1 }
    
cdSerialNumber  OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of this serial number."
    ::= { cdFactSerialNumberEntry 2 }
    
cdSerialNumDescr  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A textual description of what this serial number is used for."
    ::= { cdFactSerialNumberEntry 3 }    
    
cdFactMacAddressTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF CdFactMacAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of MAC addresses used by this device.  MAC addresses in this
         table may be internal to the device or external, meaning they are
         assigned by the device to an externally attached peripheral."
    ::= { cableDataFactoryBase 4 }
    
cdFactMacAddressEntry OBJECT-TYPE
    SYNTAX      CdFactMacAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry defining a single MAC address for this device."
    INDEX   { cdMacAddrIndex }
    ::= { cdFactMacAddressTable 1 }
    
CdFactMacAddressEntry ::= 
    SEQUENCE    {
                cdMacAddrIndex         Integer32,
                cdMacAddress           MacAddress,
                cdMacAddrType          INTEGER,
                cdMacAddrDescr         DisplayString
    }
    
cdMacAddrIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..8)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Identifies the instance of this MAC address."
    ::= { cdFactMacAddressEntry 1 }
    
cdMacAddress  OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of this serial number."
    ::= { cdFactMacAddressEntry 2 }
    
cdMacAddrType OBJECT-TYPE
    SYNTAX      INTEGER {
                internal(1),
                external(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Specifies the use of this MAC address.  A value of internal(1) 
         indicates that this MAC address is used internally by this device.  A
         value of external(2) indicates that this device maintains this MAC
         address, but rather than using it internally, it is assigned to an
         attached peripheral."
    ::= { cdFactMacAddressEntry 3 }
    
cdMacAddrDescr  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A textual description of what this MAC address is used for."
    ::= { cdFactMacAddressEntry 4 }
    
cdFactIpSettingsTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF CdFactIpSettingsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of settings used when provisioning the IP stack(s) on this
         device."
    ::= { cableDataFactoryBase 5 }
    
cdFactIpSettingsEntry OBJECT-TYPE
    SYNTAX      CdFactIpSettingsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry defining the characteristics of a single IP stack on this
         device.  This table is indexed by the cdMacAddrIndex value which
         corresponds to the MAC address associated with this IP stack instance."
    INDEX   { cdMacAddrIndex }
    ::= { cdFactIpSettingsTable 1 }
    
CdFactIpSettingsEntry ::= 
    SEQUENCE    {
                cdIpDescr              DisplayString,
                cdIpProvMethod         INTEGER,
                cdIpStaticAddress      IpAddress,
                cdIpStaticSubnet       IpAddress,
                cdIpStaticGateway      IpAddress
    }
    
cdIpDescr OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A textual description of this IP stack."
    ::= { cdFactIpSettingsEntry 1 }
    
cdIpProvMethod OBJECT-TYPE
    SYNTAX      INTEGER {
                static(0),
                dynamic(1)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates whether this IP stack will provision itself using the static
         configuration from this table, or will be dynamically provisioned via
         DHCP or some other protocol."
    ::= { cdFactIpSettingsEntry 2 }
    
cdIpStaticAddress  OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the IP address that will be assigned to this IP
         stack if cmIpProvMethod is set to static(0)."
    ::= { cdFactIpSettingsEntry 3 }
    
cdIpStaticSubnet  OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the subnet that will be assigned to this IP
         stack if cmIpProvMethod is set to static(0)."
    ::= { cdFactIpSettingsEntry 4 }
    
cdIpStaticGateway  OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the default gateway that will be assigned to this IP
         stack if cmIpProvMethod is set to static(0)."
    ::= { cdFactIpSettingsEntry 5 }

cdFactNonVolOperStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                idle(0),
                readPending(1),
                reading(2),
                writePending(3),
                writing(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object reports the current state of the non volatile storage on
        this device.  If no read or write operation is currently pending or in
        progress, then the object will return a value of idle(0).  If a read or 
        write operation is currently pending or in progress, the appropriate
        value will be returned.  This object may be polled to determine when
        a write operation initiated by cdFactCommitSettings is complete."
    ::= { cableDataFactoryBase 6 }

--
-- List of nodes under the factory node.
--
-- As new nodes are added they should be added to this MIB to provide a central
-- repository of nodes which have been allocated.
--
    

-- BRCM-CM-FACTORY-MIB
-- cablemodemFactory  MODULE-IDENTITY ::= { cableDataFactory 2 }

-- BRCM-CABLEHOME-FACTORY-MIB
-- cableHomeFactory  MODULE-IDENTITY ::= { cableDataFactory 3 }

-- BRCM-V2-FACTORY-MIB
-- v2Factory MODULE-IDENTITY ::= { cableDataFactory 4 }

-- BRCM-80211-MGMT-MIB
-- homeplugFactory MODULE-IDENTITY ::= { cableDataFactory 9 }

-- BRCM-EMTA-FACTORY-MIB
-- emtaFactory MODULE-IDENTITY ::= { cableDataFactory 6 }

-- BRCM-RG-FACTORY-MIB
-- residentialGatewayFactory MODULE-IDENTITY ::= { cableDataFactory 7 }

-- BRCM-USB-FACTORY-MIB
-- usbFactory MODULE-IDENTITY ::= { cableDataFactory 8 }

-- BRCM-HOMEPLUG-FACTORY-MIB
-- homeplugFactory MODULE-IDENTITY ::= { cableDataFactory 9 }


-- This node is provided for vendor extensions to the cableDataFactory MIB.
-- Each vendor may request any objects under a node which is located at
-- cableDataFactoryVendor.vendorEnterpriseNumber.  For example, Broadcom's
-- node would be cableDataFactoryVendor.4413
cableDataFactoryVendor OBJECT IDENTIFIER ::= { cableDataFactory 99 }
    
END
