--****************************************************************************
--
-- 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-cm-mgmt.mib
--    Author:   Kevin O'Neal
--    Creation Date: April 18, 2005
--
--****************************************************************************
--    Description:
--
--		private MIB for runtime (not factory) CM management
--		
--****************************************************************************
--    Revision History:
--
--****************************************************************************

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

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Unsigned32,
    Counter32,
    Integer32,
    Gauge32
        FROM SNMPv2-SMI
    TruthValue,
    DisplayString,
    RowStatus,
    StorageType
        FROM SNMPv2-TC
    OBJECT-GROUP,
    MODULE-COMPLIANCE,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    IANAifType
        FROM IANAifType-MIB
    ifPhysAddress,
    ifIndex
        FROM IF-MIB
    docsDevEvLevel,
    docsDevEvId,
    docsDevEvText
        FROM DOCS-CABLE-DEVICE-MIB
    docsIfCmCmtsAddress,
    docsIfDocsisBaseCapability,
    docsIfCmStatusDocsisOperMode,
    docsIfCmStatusModulationType,
    TenthdBmV
        FROM DOCS-IF-MIB
    cableDataMgmtMIBObjects
        FROM BRCM-CABLEDATA-MGMT-MIB;
                
cablemodemMgmt MODULE-IDENTITY
    LAST-UPDATED "201104260000Z"
    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 cablemodem devices." 
    REVISION      "201104260000Z"
    DESCRIPTION
        "Added object cmExtendedUsTxPowerCapability."
    REVISION      "201104130000Z"
    DESCRIPTION
        "Added object cmOverrideUcdMaxBurst."
    REVISION      "201008130000Z"
    DESCRIPTION
        "Added object cmStartDsidLearningWhenDccRspArriveSent."
    REVISION      "200911090000Z"
    DESCRIPTION
        "Obsoleted autonomous1x1 value and added disabled value for 
         cmChannelBondingPowerSaveStrategy object."
    REVISION      "200911030000Z"
    DESCRIPTION
        "Added object cmUcastDsidAllowNonZeroInitialPsn."    
    REVISION      "200910190000Z"
    DESCRIPTION
        "Added object cmForwardingHwAssistEnable."    
    REVISION      "200909090000Z"
    DESCRIPTION
        "Added objects cmDsChanInfoTuner and cmDsChanInfoTunerChannel."    
    REVISION      "200908260000Z"
    DESCRIPTION
        "Added cmServiceQueueTable."    
    REVISION      "200908070000Z"
    DESCRIPTION
        "Added cmChannelBondingUpstreamTable."    
    REVISION      "200907310000Z"
    DESCRIPTION
        "Added cmIpProvisioningMode object."    
    REVISION      "200906180000Z"
    DESCRIPTION
        "Added cmChannelBondingPowerSaveStrategy object."    
    REVISION      "200904010000Z"
    DESCRIPTION
        "Added cmDownstreamChannelInfoTable with cmDsChanInfoCodewordErrorRate 
        and cmDsChanInfoMeanSquareError objects."    
    REVISION      "200806120000Z"
    DESCRIPTION
        "Added conformances & compliances."
    REVISION      "200708140000Z"
    DESCRIPTION
        "Added node cmEmbeddedDevices for location of other modules which 
         control CM features specific only to embedded devices (such as 
         EMTA, EPS, etc)."    
    REVISION      "200702050000Z"
    DESCRIPTION
        "Compilability issues were cleaned up: 
         - Chronological order of revision history was corrected.
         - Missing imports were added.
         - Case of object CmHostIpFilterEntry was corrected.
         - Defval syntax for object cmHostIpFilterInterfaces was corrected."    
    REVISION      "200701040030Z"
    DESCRIPTION
        "Added cmMDDTimeoutTrap notification."
    REVISION      "200701040000Z"
    DESCRIPTION
        "Added cmNotification group and cmDocsDevEventTrap notification."        
    REVISION      "200611030000Z"
    DESCRIPTION
        "Added cmHostIpFilterTable object."        
    REVISION      "200610060000Z"
    DESCRIPTION
        "Added cmTodRefreshInterval object."        
    REVISION      "200605030000Z"
    DESCRIPTION
        "Added cmResetFactoryDefaults object."
    REVISION      "200603070000Z"
    DESCRIPTION
        "Added cmCpeInterface object."
    REVISION      "200510280000Z"
    DESCRIPTION
        "Added cmDsdExtendedRetryEnable object."
    REVISION      "200505090000Z"
    DESCRIPTION
        "Added cmMiniFirewallEnable object."                
    REVISION      "200504180000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { cableDataMgmtMIBObjects 2 }
    
cmMgmtBase OBJECT IDENTIFIER ::= { cablemodemMgmt 1 }

cmNumLLCFiltersSupported OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the number of entries in the docsDevFilterLLCTable 
         which can be supported on this particular device under current 
         operating conditions.  Note that this is a conservative estimate and 
         that the device will generally be able to support more filters than 
         this number returns.  
         
         Further note that this number reflects the number of filters supported 
         if the docsDevFilterIpTable is also simultaneously populated with the 
         number of filters returned by cmNumIpFiltersSupported.  If no IP 
         filters are configured then the the device can be expected to support 
         double the number of LLC filters indicated by this object."
    REFERENCE
         "docsDevFilterLLCTable from DOCS-CABLE-DEVICE-MIB"
    ::= { cmMgmtBase 1 }
    
cmNumIpFiltersSupported OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the number of entries in the docsDevFilterIpTable 
         which can be supported on this particular device under current 
         operating conditions.  Note that this is a conservative estimate and 
         that the device will generally be able to support more filters than 
         this number returns.  
         
         Further note that this number reflects the number of filters supported 
         if the docsDevFilterLLCTable is also simultaneously populated with the 
         number of filters returned by cmNumLLCFiltersSupported.  If no LLC
         filters are configured then the the device can be expected to support 
         double the number of IP filters indicated by this object."
    REFERENCE
         "docsDevFilterIpTable from DOCS-CABLE-DEVICE-MIB"
    ::= { cmMgmtBase 2 }
    
cmMiniFirewallEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies whether the CM mini-firewall will be enabled, provided the
         mini-firewall feature is supported.  If the feature is not supported,
         this object will always report false(2) and an attempt to set it to
         true(1) will be rejected with an incosistentValue error."
    ::= { cmMgmtBase 3 }
    
cmDsdExtendedRetryEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the behavior of the CM with regards to retrying DSD requests
         when no reply is received.  If set to true(1), the CM will continue
         to retry the request until a reply is received or roughly one hour
         of time has passed.  If set to false(2), the CM will stop retrying 
         after three retries as required by the DOCSIS specification.  Note 
         that this setting is not persistent across reboot."
    ::= { cmMgmtBase 4 }
    
cmCpeInterface OBJECT-TYPE
    SYNTAX      IANAifType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "For designs which are not capable of supporting multiple CPE interfaces 
         simultaneously, this object specifies the interface which will be
         used as a CPE interface.  Typical settings for such a design would
         include ethernet(6) and usb(160).  For designs which are capable of 
         supporting multiple CPE interfaces, this object will always return 
         other(1)."
    ::= { cmMgmtBase 5 }
    
cmResetFactoryDefaults OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Setting this object to true(1) will cause the device to reset all
         non-volatile settings to their factory default state, and the device
         to be rebooted.  Note that only dynamic settings will be affected; 
         permanent settings (MAC addresses, etc) will remain unchanged.  When 
         read, this object always returns false(2)."
    ::= { cmMgmtBase 6 }
    
cmTodRefreshInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "hours"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object controls the length of time between periodic updates
         of system time by way of a Time of Day (ToD) refresh.  If set to
         0, time of day will not be refreshed.  Note that in order to comply
         with the DOCSIS requirements for ToD periodocity, a value of 0 should
         be used for this object."
    REFERENCE
         "Time Protocol (RFC-868)"
    ::= { cmMgmtBase 7 }

--   
-- The CM Downstream Parameters Table
--

cmDownstreamChannelInfoTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CmDownstreamChannelInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table describing the characteristics of each downstream channel.  An
         entry exists in this table for each entry in the ifTable with an 
         ifType value of docsCableDownstream (128)."
    ::= { cmMgmtBase 8 }

cmDownstreamChannelInfoEntry OBJECT-TYPE
    SYNTAX      CmDownstreamChannelInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing the attributes of a single downstream channel."
    INDEX  { ifIndex }   
    ::= { cmDownstreamChannelInfoTable 1 } 
    
CmDownstreamChannelInfoEntry ::=
    SEQUENCE {
             cmDsChanInfoCodewordErrorRate      DisplayString,
             cmDsChanInfoMeanSquareError        DisplayString,
             cmDsChanInfoTuner                  Integer32,
             cmDsChanInfoTunerChannel           Integer32
             }
   
cmDsChanInfoCodewordErrorRate OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Downstream Codeword Error Rate. (Errored Codewords / Total CodeWords)"
    ::= { cmDownstreamChannelInfoEntry 1 }

cmDsChanInfoMeanSquareError OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Downstream Mean Square Error"
    ::= { cmDownstreamChannelInfoEntry 2 }  
    
cmDsChanInfoTuner OBJECT-TYPE
    SYNTAX      Integer32 (0|1..4)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the tuner to which this downstream channel is mapped.  A 
         value of 0 is a special case which indicates that this channel is not 
         mapped to any tuner - this would generally only be the case under 
         unusual circumstances such as very shortly after bootup before 
         scanning has started."
    ::= { cmDownstreamChannelInfoEntry 3 }
    
cmDsChanInfoTunerChannel OBJECT-TYPE
    SYNTAX      Integer32 (-2..2)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates which channel of the tuner identified by cmDsChanInfoTuner 
         is mapped to this downstream channel.  Values are defined as offsets 
         from the center channel of the tuner, which is represented by a value 
         of 0 for this object.  
         
         Note that allowable values for this object are constrained by the 
         number of channels that this tuner is capable of spanning.  A value of 
         0 - denoting the exact center channel - is only valid if the number of 
         channels spanned by the tuner is odd.  For tuners which span an even 
         number of channels, a value of 0 will never be reported.  Single 
         channel tuners will always report a value of 0.
         
         If cmDsChanInfoTuner has a value of 0 (not associated) then the value
         returned by this object has no meaning; in this case a value of 0
         will be returned."
    ::= { cmDownstreamChannelInfoEntry 4 }
    
cmIpProvisioningMode OBJECT-TYPE
    SYNTAX      INTEGER {
                mdd(0),
                ipV4Only(1),
                ipV6Only(2),
                apm(3),
                dualStack(4)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of this object determines the mode used by the CM for IP 
         provisioning.  
        
         If set to the default value of mdd(0), the CM will comply with the 
         DOCSIS 3.0 specification and use the mode identified in the IP 
         provisioning mode field of the MDD message received from the CMTS.
        
         If set to any other value, the CM will ignore the IP provisioning mode
         field of the MDD message and use the mode specified by this object
         instead.
         
         If the DOCSIS config file contains a TLV which changes the value of 
         this object from its current value, the CM will abandon its current IP 
         settings and restart the IP provisioning and registration process using 
         the new mode.  Setting this object using SNMP does not cause a 
         restart; in the case of an SNMP set, the new mode will take effect 
         the next time the CM registers with a CMTS.
         
         Note that this object may also be used to invoke IPv6 or dual-stack 
         operation when using a pre-DOCSIS 3.0 CMTS, provided the network 
         hosting the CM is IPv6 capable.
         
         Further note that a CM which does not support IPv6 will always report
         ipV4Only(1) for this object, and an attempt to set the object to any
         other value will be rejected with an inconsistentValue error.
         
         If this object is set to a value which is incompatible with the 
         capabilities of the associated CMTS or network, then IP provisioning 
         may fail.  This setting is persistent across reboots."
    REFERENCE
        "DOCSIS 3.0 MAC and Upper Layer Protocols Interface Specification 
         CM-SP-MULPIv3.0-I10-090529, sections 6.4.28.1.5 'IP Initialization 
         Parameters TLV' and 10.2.5 'Establishing IP Connectivity'"
    DEFVAL { mdd }
    ::= { cmMgmtBase 9 }
    
cmServiceQueueTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CmServiceQueueEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "This table describes attributes of each upstream service queue on
         a CM."
    ::= { cmMgmtBase 10 }

cmServiceQueueEntry OBJECT-TYPE
    SYNTAX      CmServiceQueueEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION     
        "Describes the attributes of a single service queue.  An entry exists
         in this table exists for each service queue.  The ifIndex refers to 
         the entry in the ifTable with an ifType value of 
         docsCableMaclayer(127)."
    INDEX { ifIndex, cmServiceQueueId }
    ::= { cmServiceQueueTable 1 }

CmServiceQueueEntry ::= 
    SEQUENCE    {
                cmServiceQueueId                 Integer32,
                cmServiceQueueMaxQueueDepth      Gauge32,
                cmServiceQueueCurrentQueueDepth  Gauge32
    }
    
cmServiceQueueId OBJECT-TYPE
     SYNTAX      Integer32 (1..16383)
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "Identifies a service queue for upstream bandwidth.  This value is 
          equal to the SID for this service queue."
     ::= { cmServiceQueueEntry 1 }

cmServiceQueueMaxQueueDepth  OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "Indicates the maximum number of packets which can be enqueued on this
         service queue.

         Note that for DOCSIS 3.0 devices operating in QoS mode, max queue depth 
         is now specified in terms of bytes, not packets.  Thus, for such a 
         configuration, this object will return 0.  The maximum queue depth for
         such a configuration may be read from docsQosServiceFlowBufferSize."
    ::= { cmServiceQueueEntry 2 }

cmServiceQueueCurrentQueueDepth  OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "Indicates the number of packets currently enqueued on this service 
         queue."
    ::= { cmServiceQueueEntry 3 }
    
cmForwardingHwAssistEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies whether the hardware forwarding assist engine is enabled,
         for devices which support such assistace.  
         
         For devices which do not have hardware forwarding assist support,
         this object will always return false(2), and an attempt to set this
         object to true(1) will result in an inconsistentValue error."
    DEFVAL { true }
    ::= { cmMgmtBase 11 }

cmOverrideUcdMaxBurst OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    UNITS       "mini-slots"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object may be used to override the max burst value specified in
         the burst descriptor corresponding to the long data grant IUC from the 
         upstream channel descriptor (UCD).

         If set to the default value of 0, the CM will conform to the DOCSIS
         specification requirements and abide by the max burst values as
         specified in the UCD.

         If set to any other value, the CM will limit burst sizes to either the
         value specified by this object or the UCD specified value, whichever
         is larger.

         Setting this object to a value of 255 effectively means that the burst
         size will be unlimited.  This setting will maximize upstream 
         throughput.

         Note that the value of this object has no effect on burst limitations
         as configured by service flow parameter sets."
     REFERENCE
        "Data-Over-Cable Service Interface Specifications Docsis 3.0: Physical 
         Layer Specification CM-SP-PHYv3.0-I09-101008, Table 6-11"
     DEFVAL { 0 }
    ::= { cmMgmtBase 12 }

cmExtendedUsTxPowerCapability  OBJECT-TYPE
    SYNTAX      Integer32 (0|205..244)
    UNITS       "quarter dBmV" 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Specifies the maximum extended upstream transmit power of which this 
          device is capable.  A value of zero indicates that the device has no 
          extended upstream power capability.  The value specified in this 
          object will be advertised in TLV 5.40 of the CM's modem capability
          message."
    REFERENCE 
         "Data-Over-Cable Service Interface Specifications DOCSIS 3.0 MAC and 
          Upper Layer Protocols Interface Specification 
          CM-SP-MULPIv3.0-I15-110210 section 6.4.28.1.15" 
    ::= { cmMgmtBase 13 }
    
cmFilter OBJECT IDENTIFIER ::= { cablemodemMgmt 2 }
    
cmHostIpFilterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CmHostIpFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of IP filters to be applied to traffic originating from
         or destined to this device.  The fields in this table are loosely 
         based on a subset of the fields in the docsDevFilterIpTable as defined 
         in the DOCS-CABLE-DEVICE-MIB.  The key difference is that the filters 
         described by the cmHostIpFilterTable are not applied to bridged  
         traffic, but rather to traffic which is sent from or received by the 
         cablemodem itself, acting in a role as a host.
         
         This table may be used to restrict certain IP traffic (eg SNMP, 
         TFTP, telnet, etc.) from being accessible via the CPE and / or HFC
         interfaces.  Note that all filters will be applied to all IP
         addresses associated with this host.
         
         Caution must be exercised in the use of this table.  For example, it 
         is possible to render the device unmanageable if SNMP is prohibited 
         over both CPE and CM interfaces."
    REFERENCE
         "docsDevFilterIpTable from the DOCS-CABLE-DEVICE-MIB"
    ::= { cmFilter 1 }
    
cmHostIpFilterEntry OBJECT-TYPE
    SYNTAX      CmHostIpFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An instance of an IP filter.  Entries in the cmHostIpFilterTable are 
         created and deleted using the cmHostIpFilterStatus object.
         
         Each filter describes a set of criteria against which each IP packet
         will be compared.  Any packet which matches the filter will be
         discarded.
         
         Note that these filters are not applied to bridged traffic, only
         to traffic which is sent from or received by the cablemodem itself."
    INDEX   { cmHostIpFilterIndex }
    ::= { cmHostIpFilterTable 1 }
    
CmHostIpFilterEntry ::= 
    SEQUENCE    {
                cmHostIpFilterIndex                 Integer32,
                cmHostIpFilterStatus                RowStatus,
                cmHostIpFilterStorageType           StorageType,
                cmHostIpFilterMatches               Counter32,
                cmHostIpFilterInterfaces            BITS, 
                cmHostIpFilterDirection             INTEGER,
                cmHostIpFilterDestPortLow           Integer32,
                cmHostIpFilterDestPortHigh          Integer32
    }
    
cmHostIpFilterIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Identifies the instance number of this conceptual row."
    ::= { cmHostIpFilterEntry 1 }
    
cmHostIpFilterStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this conceptual row.

         To create a row in this table, a manager must set this object to 
         either createAndGo(4) or createAndWait(5).

         Until instances of all corresponding columns are appropriately 
         configured, the value of the corresponding instance of the 
         cmHostIpFilterStatus column is 'notReady'.

         In particular, a newly created row cannot be made active until the 
         corresponding instances of cmHostIpFilterDestPortLow and 
         cmHostIpFilterDestPortHigh have been set.
         
         Only filters with a status of active(1) will be applied."
    ::= { cmHostIpFilterEntry 2 }
    
cmHostIpFilterStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The storage type for this conceptual row.  Conceptual rows having the 
         value 'permanent' need not allow write-access to any columnar objects 
         in the row."
    DEFVAL { volatile }
    ::= { cmHostIpFilterEntry 3 }
    
cmHostIpFilterMatches OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Counts the number of times this filter was matched."
    ::= { cmHostIpFilterEntry 4 }
    
cmHostIpFilterInterfaces OBJECT-TYPE
    SYNTAX      BITS {
                cpe(0), -- All CPE interfaces
                cm(1)   -- HFC interface
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Identifies the interfaces to which this filter applies."
    DEFVAL { { cpe } }
    ::= { cmHostIpFilterEntry 5 }
    
cmHostIpFilterDirection OBJECT-TYPE
    SYNTAX      INTEGER {
                inbound(1),
                outbound(2),
                both(3)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Determines whether the filter is applied to inbound(1) traffic, 
         outbound(2) traffic, or traffic in both(3) directions."
    DEFVAL { inbound }
    ::= { cmHostIpFilterEntry 6 }
    
cmHostIpFilterDestPortLow OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The inclusive lower bound of the transport-layer destination
         port range that is to be matched."
    ::= { cmHostIpFilterEntry 7 }
    
cmHostIpFilterDestPortHigh OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The inclusive upper bound of the transport-layer destination
         port range that is to be matched."
    ::= { cmHostIpFilterEntry 8 }

cmChannelBonding OBJECT IDENTIFIER ::= { cablemodemMgmt 3 }    

cmChannelBondingPowerSaveStrategy OBJECT-TYPE
    SYNTAX      INTEGER {
                disabled(-1),
                cmStatus(0),
                autonomous1x1(1) -- obsolete
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Determines the channel bonding strategy used by the CM upon transition         
         to power save mode.
         
         When set to a value of disabled(-1), there will be no channel bonding
         response to power save mode and the device will continue to operate
         in the bonding mode that was in effect at the time power save was
         entered.
         
         When set to the default value of cmStatus(0), the CM will conform to 
         DOCSIS 3.0 requirements by dispatching a CM-STATUS message to the CMTS 
         indicating a transition to battery power.  The CMTS is then expected 
         to initiate a DBC which will reduce the number of channels used by the
         CM.
         
         The autonomous1x1 value is obsolete.  If this object is set to 
         autonomous1x1(1), then channel bonding power save will be disabled and
         a subsequent read of this object will return a value of disabled(-1)."
    DEFVAL { cmStatus }
    ::= { cmChannelBonding 1 }
    
cmChannelBondingUpstreamTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CmChannelBondingUpstreamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table defining management extensions for DOCSIS 3.0 upstream channels."
    ::= { cmChannelBonding 2 }

cmChannelBondingUpstreamEntry OBJECT-TYPE
    SYNTAX      CmChannelBondingUpstreamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry describing the characteristics of a single upstream channel.  
         An entry exists in this table for each entry in the ifTable with an 
         ifType value of docsCableUpstream(129)."
    INDEX  { ifIndex }
    ::= { cmChannelBondingUpstreamTable 1 } 
    
CmChannelBondingUpstreamEntry ::=
    SEQUENCE {
             cmBondedUsDRWTop           TenthdBmV,
             cmBondedUsDRWBottom        TenthdBmV,
             cmBondedUsDRWViolations    Counter32
    }
    
cmBondedUsDRWTop OBJECT-TYPE
    SYNTAX      TenthdBmV
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object reports an absolute power level which is the top of the 
         dynamic range window for this upstream channel.  
         
         This value is calculated by applying the value for Pload_min_set,
         specified  by the dynamic range window upper edge TLV in the RNG-RSP 
         or TCC encodings, to the max allowable power level (Phi) of this 
         particular channel.
         
         This object will return zero if no dynamic range window upper edge TLV
         has been specified in either the RNG-RSP or TCC encodings."
    REFERENCE
        "DOCSIS 3.0 MAC and Upper Layer Protocols Interface Specification 
         CM-SP-MULPIv3.0-I10-090529, sections 8.3.3 'Dynamic Range Window' and
         C.1.5.1.9 'Dynamic Range Window'"
    ::= { cmChannelBondingUpstreamEntry 1 }
    
cmBondedUsDRWBottom OBJECT-TYPE
    SYNTAX      TenthdBmV
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object reports an absolute power level which is the bottom of 
         the dynamic range window for this upstream channel.  
         
         This value is calculated by applying the value for Pload_min_set,
         specified  by the dynamic range window upper edge TLV in the RNG-RSP 
         or TCC encodings, and the fixed 12dB range of transmit power levels 
         defined by the DRW, to the max allowable power level (Phi) of this 
         particular channel.
         
         This object will return zero if no dynamic range window upper edge TLV
         has been specified in either the RNG-RSP or TCC encodings."
    REFERENCE
        "DOCSIS 3.0 MAC and Upper Layer Protocols Interface Specification 
         CM-SP-MULPIv3.0-I10-090529, sections 8.3.3 'Dynamic Range Window' and
         C.1.5.1.9 'Dynamic Range Window'"
    ::= { cmChannelBondingUpstreamEntry 2 }
   
cmBondedUsDRWViolations OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object counts the number of RNG-RSP power adjustments made by the
         CMTS which would cause the CM to violate the constraints of the dynamic 
         ranging window.  
         
         Such adjustments (if any) will have been ignored by the CM in 
         compliance with DOCSIS 3.0 requirements."
    REFERENCE
        "DOCSIS 3.0 MAC and Upper Layer Protocols Interface Specification 
         CM-SP-MULPIv3.0-I10-090529, section 8.3.3.5 'Power Offset in RNG-RSP 
         Causing Dynamic Range Window Violation'."
    ::= { cmChannelBondingUpstreamEntry 3 }
    
cmUcastDsidAllowNonZeroInitialPsn OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Setting this object to true(1) allows the CM to disregard the 
         requirement that the packet sequence number for a newly created
         unicast resequencing DSID must begin at zero.  This allows the CM
         to recover more quickly when an invalid initial PSN is received for
         a unicast DSID.
         
         Note that in order to comply with DOCSIS 3.0 requirements, this
         object MUST be set to a value of false(2)."
    REFERENCE
        "DOCSIS 3.0 MAC and Upper Layer Protocols Interface Specification 
         CM-SP-MULPIv3.0-I10-090529, section 8.2.3 'Sequenced Downstream 
         Packets'."
    DEFVAL { false }
    ::= { cmChannelBonding 3 }

cmStartDsidLearningWhenDccRspArriveSent OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Setting this object to true(1) causes the CM to discard the next 
         expected sequence number for all DSIDs when a DCC-RSP (arrive) message 
         is sent, in case the PSNs are reset by the CMTS at this time.  This 
         allows the CM to bypass the two minute out of range PSN window and 
         reset the next expected sequence numbers immediately.
         
         Note that in order to comply with DOCSIS 3.0 requirements, this object 
         MUST be set to a value of false(2)."
    REFERENCE
        "DOCSIS 3.0 MAC and Upper Layer Protocols Interface Specification 
         CM-SP-MULPIv3.0-I13-100611, sections 8.2.31 'Downstream Sequencing'"
    DEFVAL { false }
    ::= { cmChannelBonding 4 }
    
cmEmbeddedDevices OBJECT IDENTIFIER ::= { cablemodemMgmt 98 }
    
--
-- Notifications, aka traps.
--
    
cmNotification OBJECT IDENTIFIER ::= { cablemodemMgmt 99 }

cmNotificationBase OBJECT IDENTIFIER ::= { cmNotification 1 }

cmDocsDevEventTrap NOTIFICATION-TYPE
    OBJECTS { 
              docsDevEvLevel,
              docsDevEvId,
              docsDevEvText,
              ifPhysAddress,
              docsIfCmCmtsAddress,
              docsIfDocsisBaseCapability,
              docsIfCmStatusDocsisOperMode,
              docsIfCmStatusModulationType
            }
    STATUS current
    DESCRIPTION
        "A notification with the standard DOCSIS event log variable bindings.
         This notification may be used for vendor-specific events which do not
         have a suitable notification defined among the standard DOCSIS traps."
    ::= { cmNotificationBase 1 }
    
cmNotificationDocsis30 OBJECT IDENTIFIER ::= { cmNotification 3 }

cmMDDTimeoutTrap NOTIFICATION-TYPE
    OBJECTS { 
              docsDevEvLevel,
              docsDevEvId,
              docsDevEvText,
              ifPhysAddress,
              docsIfCmCmtsAddress,
              docsIfDocsisBaseCapability,
              docsIfCmStatusDocsisOperMode,
              docsIfCmStatusModulationType
            }
    STATUS current
    DESCRIPTION
        "An event to report that no MDDs are being received on one or more
         of the secondary downstream channels."
    ::= { cmNotificationDocsis30 1 }
    
--
-- Conformance definitions
--
cmConformance      OBJECT IDENTIFIER ::= { cablemodemMgmt 100 }

--
-- Compliance Statements
--
cmCompliances  OBJECT IDENTIFIER ::= { cmConformance 1 }
cmGroups       OBJECT IDENTIFIER ::= { cmConformance 2 }

cmCompliance  MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for cablemodem devices."
    MODULE
    MANDATORY-GROUPS {
               cmBaseGroup
    }
    ::= { cmCompliances 1 }
         
cmBaseGroup OBJECT-GROUP
    OBJECTS {
        cmNumLLCFiltersSupported,
        cmNumIpFiltersSupported,
        cmMiniFirewallEnable,
        cmDsdExtendedRetryEnable,
        cmCpeInterface,
        cmResetFactoryDefaults,
        cmTodRefreshInterval,
        cmDsChanInfoCodewordErrorRate,
        cmDsChanInfoMeanSquareError,
        cmIpProvisioningMode
    }
    STATUS      current
    DESCRIPTION
        "A set of objects supported by all agents which implement this MIB."
    ::= { cmGroups 1 }
    
cmFilterGroup OBJECT-GROUP
    OBJECTS {
        cmHostIpFilterStatus,
        cmHostIpFilterStorageType,
        cmHostIpFilterMatches,
        cmHostIpFilterInterfaces,
        cmHostIpFilterDirection,
        cmHostIpFilterDestPortLow,
        cmHostIpFilterDestPortHigh
    }
    STATUS      current
    DESCRIPTION
        "A set of objects supported by agents which support CM extended
         filtering as described by this MIB."
    ::= { cmGroups 2 }
    
cmChannelBondingGroup OBJECT-GROUP
    OBJECTS {
        cmChannelBondingPowerSaveStrategy 
    }
    STATUS      current
    DESCRIPTION
        "A set of objects supported by agents which support channel bonding."
    ::= { cmGroups 3 }
    
cmNotificationGroup NOTIFICATION-GROUP
	NOTIFICATIONS { 
        cmDocsDevEventTrap, 
		cmMDDTimeoutTrap
    }
	STATUS current
	DESCRIPTION
		"CM notifications"
    ::= { cmGroups 99 }
    
END
