-- *****************************************************************
-- DOCS-DRF-MIB.my:
--
-- Nov 2007 Bo Wu
--
-- Initial Version: Oct 2007: CableLabs ECN M-OSSI-N-07.0562-5
--
-- Copyright (c) 2007-2008 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

DOCS-DRF-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, 
    OBJECT-IDENTITY,
    OBJECT-TYPE, 
    Unsigned32
                            FROM SNMPv2-SMI 
    TruthValue,
    AutonomousType
                            FROM SNMPv2-TC 
    OBJECT-GROUP, 
    MODULE-COMPLIANCE 
                            FROM SNMPv2-CONF

    PhysicalIndexOrZero,
    PhysicalIndex          FROM ENTITY-MIB
    ifIndex,

    InterfaceIndexOrZero
                            FROM IF-MIB
    docsIfDownstreamChannelEntry
                            FROM DOCS-IF-MIB
    clabProjDocsis
                            FROM CLAB-DEF-MIB;

docsDrfMib MODULE-IDENTITY 
    LAST-UPDATED    "200712060000Z" -- December 6, 2007
    ORGANIZATION    "Cable Television Laboratories, Inc" 
    CONTACT-INFO 
            "Postal: Cable Television Laboratories, Inc. 
            858 Coal Creek Circle 
            Louisville, Colorado 80027-9750 
            U.S.A. 
            Phone: +1 303-661-9100 
            Fax:   +1 303-661-9199 
            E-mail: mibs@cablelabs.com" 
    DESCRIPTION 
            "This MIB module contains the management objects for the 
            management of the Downstream RF Interface specification.
            Copyright 1999-2007 Cable Television Laboratories, Inc.
            All rights reserved."
    REVISION "200712060000Z"  -- December 6, 2007
    DESCRIPTION 
            "Initial version,  published as as part of the CableLabs 
            MOSSI specification CM-SP-M-OSSI-I07-YYMMDD via ECN
            M-OSSI-R-07.0562-x"
    ::= { clabProjDocsis 23 }

-- ---------------------------------------------------------
-- Textual Conventions
-- ---------------------------------------------------------

-- ---------------------------------------------------------------------
-- Main Groups
-- ---------------------------------------------------------------------

docsDrfNotifications OBJECT IDENTIFIER ::= { docsDrfMib 0 }
docsDrfObjects       OBJECT IDENTIFIER ::= { docsDrfMib 1 }


-- --------------------------------------------------------------------
-- DOCSIS DRF objects 
-- --------------------------------------------------------------------

-- --------------------------------------------------------------------
--
-- PHY Parameters dependencies OBJECT-IDENTITY definitions
--
-- --------------------------------------------------------------------
 
docsDrfRegistry OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
            "Registration point for M-CMTS characterization of PHY 
            parameters dependencies."
    ::= { docsDrfObjects 1 }

docsDrfPhyParamFixValue OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
            "Indicates that this PHY parameter is fixed and cannot
            be changed."
    ::= { docsDrfRegistry 1 }

docsDrfPhyParamSameValue OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
            "Indicates that the PHY parameter value is the same for
            the elements in a dependency group; thus, a change in 
            the PHY parameter of an element in the group will change
            the PHY parameter value in the other elements of the
            dependency group."
    ::= { docsDrfRegistry 2 }

docsDrfPhyParamAdjacentValues OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
            "Indicates that the PHY parameter has an adjacency or
            sequence pattern for the elements in a dependency group
            e.g., A group of channels all using J.83 Annex A, may set 
            frequencies in the group by setting a 6 MHz spacing 
            between the channels in the group. Vendors may rather
            use a more detailed vendor-specific OBJECT-IDENTITY or a
            table pointer to describe this type of PHY parameter 
            dependency."
    ::= { docsDrfRegistry 3 }

docsDrfPhyParamFrequencyRange OBJECT-IDENTITY
    STATUS      current
    DESCRIPTION
            "This object indicates that the frequency in a TSID Group
            is constrained to a frequency range. Vendors may extend
            the MIB construct containing this reference to detail such 
            constraints or rather use a more detailed vendor-specific 
            OBJECT-IDENTITY or a table pointer to describe the 
            frequency range supported."
    ::= { docsDrfRegistry 4 }

-- ---------------------------------------------------------------------
-- DOCSIS DRF Interface Extension objects 
-- ---------------------------------------------------------------------

docsDrfDownstreamTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DocsDrfDownstreamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Extensions for the DOCSIS RFI Downstream
            docsIfDownstreamChannelTable."
    ::= { docsDrfObjects 2 }

docsDrfDownstreamEntry OBJECT-TYPE
    SYNTAX      DocsDrfDownstreamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row for this table.
            There is a corresponding entry for each entry of 
            docsIfDownstreamChannelTable."
    AUGMENTS { docsIfDownstreamChannelEntry } 
    ::= { docsDrfDownstreamTable 1 }

DocsDrfDownstreamEntry ::= SEQUENCE
    {
    docsDrfDownstreamPhyDependencies          BITS
    }
 
docsDrfDownstreamPhyDependencies OBJECT-TYPE
    SYNTAX  BITS {
        frequency(0),
        bandwidth(1),
        power(2),
        modulation(3),
        interleaver(4),
        j83Annex(5),
        symbolRate(6),
        mute(7)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The summary of the Downstream Interface 
            dependencies based on the constraints of 
            docsDrfGroupDependencyEntry.
            A BIT position set to '1' indicates the PHY parameter
            belongs to a dependency group.
            A BIT position set to '0', indicates the PHY parameter
            does not belong to a dependency group.
            
            For Interfaces configured via DEPI this information is 
            reflected in the DEPI session as DEPI TSID group 
            dependencies. 
                    
            If this object value is the zero-length string, it indicates 
            this interface is configurable via DEPI but no session is
            currently active."
    ::= { docsDrfDownstreamEntry 1 }

-- ---------------------------------------------------------------------
-- DRF Downstream Interface Capabilities
-- ---------------------------------------------------------------------

docsDrfDownstreamCapabilitiesTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DocsDrfDownstreamCapabilitiesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains the QAM channel capabilities
            for the Downstream Interface PHY parameters."
    ::= { docsDrfObjects 3 }

docsDrfDownstreamCapabilitiesEntry OBJECT-TYPE
    SYNTAX      DocsDrfDownstreamCapabilitiesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row for this table."
    INDEX { ifIndex }
    ::= { docsDrfDownstreamCapabilitiesTable 1 }

DocsDrfDownstreamCapabilitiesEntry ::= SEQUENCE
    {
    docsDrfDownstreamCapabFrequency                    BITS,
    docsDrfDownstreamCapabBandwidth                    BITS,
    docsDrfDownstreamCapabPower                        BITS,
    docsDrfDownstreamCapabModulation                   BITS,
    docsDrfDownstreamCapabInterleaver                  BITS,
    docsDrfDownstreamCapabJ83Annex                     BITS,
    docsDrfDownstreamCapabConcurrentServices           BITS,
    docsDrfDownstreamCapabServicesTransport            BITS,
    docsDrfDownstreamCapabMuting                       BITS
    }

docsDrfDownstreamCapabFrequency OBJECT-TYPE
    SYNTAX      BITS {
        qamDependency(0),
        adjacentChannel(1),
        adjacentChannelOrder(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel frequency capabilities. 
            'qamDependency' BIT set to '1' indicates the QAM channel
            frequency value has dependencies with other QAM channels 
            and an entry that includes this QAM channel is in 
            in docsDrfGroupDependencyTable for the PHY 
            parameter 'frequency'.

            'adjacentChannel' BIT set to '1' indicates the QAM channel
            frequencies in the dependency group (DEPI TSID group) are 
            adjacent and constrained in a frequency range based on 
            the number of QAM channels in the dependency group.
            
            'adjacentChannelOrder' BIT set to '1' indicates the QAM 
            channel frequency adjacency is based in the QAM channel 
            sequence like entPhysicalParentRelPos in EntPhysicalTable
            or other vendor sequence.
            
            e.g., a dependency group of four QAM channels 
            with 'adjacentChannelOrder' BIT set to '1':
            The 4th QAM channel in the sequence gets a frequency
            assignment f + 1*bandwidth when the frequency value of 
            the 3rd QAM channel in the sequence is set to f. 
            Similarly the 1st QAM channel in the sequence gets a 
            frequency assignment of f - 2*bandwidth and the 2nd QAM 
            channels gets a frequency of f -1*bandwidth.

            'adjacentChannel' 'adjacentChannelOrder' BITs may be set to
            '1' when a dependency group includes the QAM channel
            of this M-CMTS Downstream interface and the value of the 
            object docsDrfGroupDependencyType is 
            docsDrfPhyParamAdjacentValues.
            
            'adjacentChannel' BIT may be set to '1' if 
            'qamDependency' BIT is set to '1'. The same way, 
            'adjacentChannelOrder' BIT may be set to '1' and implies
            'adjacentChannel' BIT is set to '1'."
    ::= { docsDrfDownstreamCapabilitiesEntry 1 }

docsDrfDownstreamCapabBandwidth OBJECT-TYPE
    SYNTAX      BITS {
        qamDependency(0),
        chan6Mhz(1),
        chan8Mhz(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel Bandwidth capabilities.
            'qamDependency' BIT set to '1' indicates the QAM channel
            bandwidth value has dependencies with other QAM channels 
            as indicated in docsDrfGroupDependencyTable.

            'chan6Mhz' set to '1' indicates 6 MHz channel width 
            support.
            'chan8Mhz' set to '1' indicates 8 MHz channel width 
            support.
            
            When 'qamDependency' BIT is set to '1', a set to the 
            channel bandwidth PHY parameter of a QAM channels in a
            dependency group (with docsDrfGroupDependencyType
            set to docsDrfPhyParamSameValue), sets the same channel 
            bandwidth  value to all QAM channels in the dependency
            group."
    ::= { docsDrfDownstreamCapabilitiesEntry 2 }

docsDrfDownstreamCapabPower OBJECT-TYPE
    SYNTAX      BITS {
        qamDependency(0)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel Power capabilities.
            'qamDependency' BIT set to '1' indicates the QAM channel
            power value has dependencies with other QAM channels 
            as indicated in docsDrfGroupDependencyTable.

            When 'qamDependency' BIT is set to '1', a set to the 
            power level PHY parameter of a QAM channels in a
            dependency group (with docsDrfGroupDependencyType
            set to docsDrfPhyParamSameValue), sets the same power 
            level to all QAM channels in the dependency group."
    ::= { docsDrfDownstreamCapabilitiesEntry 3 }

docsDrfDownstreamCapabModulation OBJECT-TYPE
    SYNTAX      BITS {
        qamDependency(0),
        qam64(1),
        qam256(2)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel Modulation capabilities.
            'qamDependency' BIT set to '1' indicates the QAM channel
            modulation value has dependencies with other QAM channels
            as indicated in docsDrfGroupDependencyTable.
            
            'qam64' set to '1' indicates 64 QAM modulation support.
            'qam256' set to '1' indicates 256 QAM modulation support.

            When 'qamDependency' BIT is set to '1', a set to the 
            modulation PHY parameter of a QAM channels in a 
            dependency group (with docsDrfGroupDependencyType
            set to docsDrfPhyParamSameValue), sets the same modulation 
            type to all QAM channels in the dependency group."
    ::= { docsDrfDownstreamCapabilitiesEntry 4 }

docsDrfDownstreamCapabInterleaver OBJECT-TYPE
    SYNTAX      BITS {
        qamDependency(0),
        taps8Increment16(1),
        taps16Increment8(2),
        taps32Increment4(3),
        taps64Increment2(4),
        taps128Increment1(5),
        taps12increment17(6),
        taps128increment2(7),
        taps128increment3(8),
        taps128increment4(9),
        taps128increment5(10),
        taps128increment6(11),
        taps128increment7(12),
        taps128increment8(13)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel Interleaver capabilities.
            'qamDependency' BIT set to '1' indicates the QAM channel
            interleave value has dependencies with other QAM channels
            as indicated in docsDrfGroupDependencyTable.
            
             'taps8Increment16'  set to '1' indicates the support of
                                 j = 8, i = 16 interleave.
 
             'taps16Increment8'  set to '1' indicates the support of
                                 j = 16, i = 8 interleave.
 
             'taps32Increment4'  set to '1' indicates the support of
                                 j = 32, i = 4 interleave.
 
             'taps64Increment2'  set to '1' indicates the support of
                                 j = 64, i = 2 interleave.
 
             'taps128Increment1' set to '1' indicates the support of
                                 j = 128, i = 1 interleave.
 
             'taps12increment17' set to '1' indicates the support of
                                 j = 12, i = 17 interleave.
 
             'taps128increment2' set to '1' indicates the support of
                                 j = 128, i = 2 interleave.
 
             'taps128increment3' set to '1' indicates the support of
                                 j = 128, i = 3 interleave.
 
             'taps128increment4' set to '1' indicates the support of
                                 j = 128, i = 4 interleave.
 
             'taps128increment5' set to '1' indicates the support of
                                 j = 128, i = 5 interleave.
 
             'taps128increment6' set to '1' indicates the support of
                                 j = 128, i = 6 interleave.
 
             'taps128increment7' set to '1' indicates the support of
                                 j = 128, i = 7 interleave.
 
             'taps128increment8' set to '1' indicates the support of
                                 j = 128, i = 8 interleave.

            When 'qamDependency' BIT is set to '1', a set to the 
            interleave PHY parameter of a QAM channels in a
            dependency group (with docsDrfGroupDependencyType
            set to docsDrfPhyParamSameValue), sets the same Interleave 
            value to all QAM channels in the dependency group."
    ::= { docsDrfDownstreamCapabilitiesEntry 5 }

docsDrfDownstreamCapabJ83Annex OBJECT-TYPE
    SYNTAX      BITS {
        qamDependency(0),
        annexA(1),
        annexB(2),
        annexC(3)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel J.83 Annex Capabilities.
            'qamDependency' BIT set to '1' indicates the QAM channel
            J.83 Annex value has dependencies with other QAM channels
            as indicated in docsDrfGroupDependencyTable.

            'annexA' set to '1' indicates J.83 Annex A support.
            'annexB' set to '1' indicates J.83 Annex B support.
            'annexC' set to '1' indicates J.83 Annex C support.
            
            When 'qamDependency' BIT is set to '1', a set to the 
            J.83 Annex PHY parameter of a QAM channels in a
            dependency group (with docsDrfGroupDependencyType
            set to docsDrfPhyParamSameValue), sets the same J.83 Annex
            value to all QAM channels in the dependency group."
    ::= { docsDrfDownstreamCapabilitiesEntry 6 }

docsDrfDownstreamCapabConcurrentServices OBJECT-TYPE
    SYNTAX      BITS {
        qamDependency(0),
        videoAndDocsis(1)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel Concurrent Services Capabilities.
            'qamDependency' BIT set to '1' indicates the QAM channel
            is part of a dependency group that supports concurrent 
            services mode as indicated in 
            docsDrfGroupDependencyTable.

            'videoAndDocsis' BIT set to '1' indicates video transport
            and DOCSIS transport can be supported simultaneously.

            Video and DOCSIS transport service types are described in
            docsDrfDownstreamCapabServicesTransport."
    ::= { docsDrfDownstreamCapabilitiesEntry 7 }

docsDrfDownstreamCapabServicesTransport OBJECT-TYPE
    SYNTAX      BITS { 
        qamDependency(0),
        mpeg2OverIP(1),
        dmpt(2),
        psp(3)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel Services transports modes Capabilities.

            'qamDependency' BIT set to '1' indicates the QAM channel
            Service transport type has dependencies with other QAM 
            channels as indicated in 
            docsDrfGroupDependencyTable.

            'mpeg2OverIP' set to '1' indicates video transports as 
            conventional VoD is supported (known as MPT mode, MPEG-2
            transport).
            'dmpt' set to 1 indicates DOCSIS MPT mode (D-MPT) support.
            'psp' set to 1 indicates DOCSIS Packet Streaming Protocol
            mode (PSP) support.

            When 'qamDependency' BIT is set to '1', a request to set
            a QAM channel to a service type in a dependency group 
            (with docsDrfGroupDependencyType set to 
            docsDrfPhyParamSameValue) may be rejected."
    ::= { docsDrfDownstreamCapabilitiesEntry 8 }
 
docsDrfDownstreamCapabMuting OBJECT-TYPE
    SYNTAX      BITS {
        qamDependency(0)
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
            "The QAM channel muting capabilities.
            'qamDependency' BIT set to '1' indicates the QAM Mute
            state has dependencies with other QAM channels as 
            indicated in docsDrfGroupDependencyTable.

            When 'qamDependency' BIT is set to '1', a request to 
            mute a QAM channels in a dependency group (with 
            docsDrfGroupDependencyType set to 
            docsDrfPhyParamSameValue), sets all QAM channels in the 
            dependency group to mute."
    ::= { docsDrfDownstreamCapabilitiesEntry 9 }

-- ---------------------------------------------------------------------
-- DRF Group Dependency of PHY parameters Definitions
-- Defines the group of QAM channels that may be impacted for 
-- individual QAM channels PHY parameters changes. Extends ENTITY-MIB
-- ---------------------------------------------------------------------

docsDrfGroupDependencyTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DocsDrfGroupDependencyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table describes the rules that identify groups of 
            QAM channels with PHY parameters dependencies. 
            A PHY parameter dependency group means that a set to 
            a QAM channel parameter may affect the value of 
            other QAM Channels in the group.

            TSID is a broadcast term borrowed by the M-CMTS 
            architecture to represent a unique identifier of QAM
            channels in the M-CMTS architecture. 
            
            TSID Group is the DEPI concept of a set of QAM channels
            with a PHY parameter dependency. This module refers to 
            TSID group as a PHY dependency Group.
            
            This table uses the ENTITY-MIB physical component structure
            to allows the managed system to describe the QAM channels'
            PHY parameters dependencies. A management entity can use
            the information from this table to generate the DEPI TSID
            Groups.
            
            Examples of PHY dependencies could be usage of adjacent
            frequencies, or QAM channels of RF ports restricted, or 
            same interleaver value, modulation and J.83 Annex value.
            
            Additional details and rules to describe the PHY parameter
            dependency is indicated in 
            docsDrfGroupDependencyType.
            Vendors may extend via other MIB modules the usage of
            docsDrfGroupDependencyType."
    ::= { docsDrfObjects 4 }

docsDrfGroupDependencyEntry OBJECT-TYPE
    SYNTAX      DocsDrfGroupDependencyEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row of this table.
            
            QAM channels are modeled as PhysicalClass 'port' from 
            the ENTITY-MIB.
            An QAM channel can be represented as part of an entity 
            MIB containment tree as follows: 
            chassis(device)
                  .container(Slot)
                        .module(field-replaceable-module) 
                             .module ( Physical RF spigot)
                                 . port (QAM channel) 
            
            PhysicalClass 'stack' is left optional and not included 
            as a reference or examples for this table.
            
            Based on the hardware capabilities the Agent will create
            entries in this table including the entPhysicalEntry of
            the close element to the root (e.g., up to 'chassis' or 
            'stack') including the PHY parameter of the dependency 
            as part of the entry index
            
            The Aggregation is then defined as all the QAM channels
            (entity PhysicalClass = 'port') below the tree as 
            indicated in entyPhysicalContainsTable.

            Logical or software dependencies of the QAM channels PHY
            parameters in addition to the hardware dependency entries
            can be present and MUST persist during system
            re-initialization. The storage realization of hardware 
            dependent entries are 'permanent' or 'readOnly'. The 
            storage realization of logical dependency entries is 
            'nonVolatile'.
            
            PHY parameter dependencies that are logically defined may
            be present in this table but its configuration is outside 
            of the scope of this MIB Module, including the definition 
            of simulated Physical components such backplane types or 
            modules accomplish its logical grouping.
            
            PHY parameters with no Physical entities associated in 
            this table indicate no PHY dependencies for certain groups
            of QAM channels.
            
            Administrative changes to the 
            docsDrfGroupDependencyPhyParamLock are preserved in
            non-volatile memory upon system re-initialization.
            
            Note that any change in the system due to the
            insertion or removal or components will reset to factory
            default the entries associated with those components.
            
            An entry in this table is reflected in the MIB object
            docsIfMExtDownstreamTSIDGroupPhyParamFlag for individual
            QAM channels.
            
            A recursive method to find the PHY dependency group of an
            QAM channel A, PHY parameter X is as follows:
            
            The parent tree of QAM channel A is recursively calculated
            by navigating entyPhysicalContainsTable from bottom to top
            Pi(P1..Pn)
            
            The list Mj (M1..Mn) of 
            docsDrfGroupDependencyPhysicalIndex represents the 
            values from this table with PHY parameter 
            docsDrfGroupDependencyPhyParam X and/or 'all' 
            
            The list Qi (Q1..n) is the list of matches of Mi in Pi

            Qi with the lower position in the entyPhysicalContainsTable
            is selected Qy and My is the group criteria selected.
            
            All QAM channels Bi below My are candidates for inclusion
            in the dependency group.

            Each Bi is verified as A for its own BPi parent tree to
            verify that in effect My is the lowest denominator in Mi 
            BPi intersection to become part of the Dependency Group 
            of A."
    INDEX { docsDrfGroupDependencyPhyParam, 
            docsDrfGroupDependencyPhysicalIndex }
    ::= { docsDrfGroupDependencyTable 1 }

DocsDrfGroupDependencyEntry ::= SEQUENCE
    {
    docsDrfGroupDependencyPhyParam         INTEGER,
    docsDrfGroupDependencyPhysicalIndex    PhysicalIndexOrZero,
    docsDrfGroupDependencyGroupID          Unsigned32, 
    docsDrfGroupDependencyType             AutonomousType
    }

docsDrfGroupDependencyPhyParam OBJECT-TYPE
    SYNTAX      INTEGER {
        noDependencies(0),
        all(1),
        frequency(2),
        bandwidth(3),
        power(4),
        modulation(5),
        interleave(6),
        annex(7),
        symbolRate(8),
        mute(9)
        }
    MAX-ACCESS  not-accessible 
    STATUS      current 
    DESCRIPTION 
            "This object represents the type of PHY parameter 
            that may have dependencies when setting an individual 
            object in the dependency group.
            The value 'all' may be used as a wildcard to indicate
            all PHY parameters have dependencies. The other 
            enumeration values are common QAM PHY parameters.
            
            The opposite to 'all' is 'noDependencies', which indicates
            no dependencies in PHY parameters, but is only used to 
            indicate no dependencies across all the device. Thus,
            when used, 'noDependencies' is accompanied by 
            docsDrfGroupDependencyPhysicalIndex '0' as the only
            entry in the table. 
            In this way it is clearly distinguished when a device
            has dependencies instead of an empty table." 
    ::= { docsDrfGroupDependencyEntry 1 }

docsDrfGroupDependencyPhysicalIndex OBJECT-TYPE
    SYNTAX      PhysicalIndexOrZero
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
            "Indicates the physical element from where the PHY 
            parameter dependency for QAM channels is derived.
            All the QAM channels elements under this Physical index
            will belong to a dependency group of the specified PHY 
            parameter." 
    ::= { docsDrfGroupDependencyEntry 2 }

docsDrfGroupDependencyGroupID OBJECT-TYPE 
    SYNTAX      Unsigned32 (1..127) 
    MAX-ACCESS  read-only 
    STATUS      current 
    DESCRIPTION 
            "The internal ID assigned for the QAM channels in the 
            dependency group. 
            The value of this object is unique in the scope of the
            PHY parameter being mapped." 
    ::= { docsDrfGroupDependencyEntry 3 } 

docsDrfGroupDependencyType OBJECT-TYPE 
    SYNTAX      AutonomousType
    MAX-ACCESS  read-only 
    STATUS      current 
    DESCRIPTION 
            "The description of the type of dependency associated 
            with this dependency group.
            Basic type of dependencies are docsDrfPhyParamSameValue, 
            docsDrfPhyParamAdjacentValues, docsDrfPhyParamFrequencyRange. 
            Vendors may define their own rules and policies to describe
            their implementation dependency definitions such as
            RowPointers to table entries or OBJECT-IDENTITY clauses.
            If the dependency is not described this object is set to
            zeroDotZero, although the dependency does exist."
    ::= { docsDrfGroupDependencyEntry 4 } 

-- ---------------------------------------------------------------------
-- DRF Channel Block configuration 
-- Configuration and diagnostic of block Channels.
-- This table is only for Channels Blocks Physical containments
-- Other configuration parameters (PHY) applicable to all channes in a 
-- QAM Channel Block are set through the DS (QAM) channel interface and 
-- configuration objects
-- ---------------------------------------------------------------------

docsDrfChannelBlockTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DocsDrfChannelBlockEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table configure attributes of block channels and
             Controls channel Block Tests.
            A channel block is an ENTITY-MIB containment of 
            PhysicalClass 'module' that represent an RF connector."
    ::= { docsDrfObjects  5 }

docsDrfChannelBlockEntry OBJECT-TYPE
    SYNTAX      DocsDrfChannelBlockEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The conceptual row of this table. 
            Entries in this table are created at system 
            Initialization for Block Channels compliant to DRFI 
            Specification.
            Sets in entries of this table persist after system
            initialization."
    INDEX { docsDrfChannelBlockPhysicalIndex }
    ::= { docsDrfChannelBlockTable 1 }

DocsDrfChannelBlockEntry::= SEQUENCE
    {
    docsDrfChannelBlockPhysicalIndex     PhysicalIndex,
    docsDrfChannelBlockNumberChannels    Unsigned32,
    docsDrfChannelBlockCfgNumberChannels Unsigned32,
    docsDrfChannelBlockMute              TruthValue,
    docsDrfChannelBlockTestType        INTEGER,
    docsDrfChannelBlockTestIfIndex     InterfaceIndexOrZero
    }

docsDrfChannelBlockPhysicalIndex OBJECT-TYPE
    SYNTAX      PhysicalIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The Physical Index of the QAM Channel Block."
    ::= { docsDrfChannelBlockEntry 1 }

docsDrfChannelBlockNumberChannels OBJECT-TYPE 
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The Number of QAM Channels N associated with this entry.
             
            The value of this attribute corresponds to the number
            of channels that can be transmitted from this block"
    ::= { docsDrfChannelBlockEntry 2 }

docsDrfChannelBlockCfgNumberChannels OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Number of QAM Channels N' to configure for the 
            QAM block. 
            
            This number corresponds to the number of channels that
            are configured to be currently transmitted by the block.
            
            The maximum number of channels per block follows the 
            consideration of maximum number of digital channels in 
            a headend described in the DRFI specification.
            As a rule N' is valid if it is less than or equal to N. 
            In addition N minimal requirements consist of even 
            numbers and 1 (one QAM channel per Block Channel). Odd 
            number of QAM channels per Block Channel are optional 
            for implementation.
            A Set to an invalid value or not supported value returns
            Error 'wrongValue'."
    ::= { docsDrfChannelBlockEntry 3 }


docsDrfChannelBlockMute OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The Mute control object for the Block Channel
            A set to this object to 'true' is reflected in 
            ifOperStatus set to 'down' of the QAM channels 
            associated to the block Channel.
            The opposite, a set to this object to 'false', is not 
            necessarily reflected as ifOperStatus set to 'up' since
            other interface conditions might prevent such status."
    ::= { docsDrfChannelBlockEntry 4 }

docsDrfChannelBlockTestType OBJECT-TYPE
    SYNTAX      INTEGER {
                 noTest(1),
                 offOthersNormal(2),
                 allOff(3),
                 onOthersOff(4),
                 cwOnOthersOff(5),
                 cwOnOthersNormal(6),
                 clockTest(7)    
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A set of in-service and out-of-service test modes.
             The value 'noTest'(1) is the normal condition after
             reinitialization where the QAM channels are expected in
             operation.

             'noTest' 
             It is also used to take out of testing mode
             a QAM channel within the block.
             
             In-service tests modes:
             'offOthersNormal'
             It is the condition where the QAM Channel indicated in
             docsDrfChannelBlockTestIfIndex has its carrier 
             suppressed and the other channels in the 
             Block Channel are operational.
             'allOff'
             All QAM channel carriers in the channel block are
             Suppressed. 
             'onOthersOff'
             It is the condition where the QAM channel indicated in
             docsDrfChannelBlockTestIfIndex is in operation
             and the other QAM channels in the channel Block have
             their carriers suppressed.

             Out-of-service test modes:
             'cwOnOthersOff'
             It is the condition where the QAM channel indicated in 
             docsDrfChannelBlockTestIfIndex transmits a 
             continuous wave (CW) while the other QAM 
             channels in the channel Block have their carriers 
             suppressed.
             'cwOnOthersNormal'
             It is the condition where the QAM channel indicated
             in docsDrfChannelBlockTestIfIndex transmits a 
             continuous wave (CW) while the other QAM channels in
             the channel Block are operational.
              
             'clockTest'
             It is the condition where the QAM channel indicated in
             docsDrfChannelBlockTestIfIndex transmits a sequence 
             of alternating -1 and 1 symbols.

             This object value does not persist after system 
             Reinitialization.
             The value of this object is meaningless if 
             docsDrfChannelBlockTestIfIndex is set to zero."
    ::= { docsDrfChannelBlockEntry 5 }

docsDrfChannelBlockTestIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndexOrZero
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The ifIndex of the QAM channel to perform the QAM
             channel test.
             A Set to a value that does not correspond to a QAM 
             Channel within the Block channel returns error 
             'wrongValue'.
             A set to zero stops a current test execution."
    ::= { docsDrfChannelBlockEntry 6 }



-- ---------------------------------------------------------
-- Conformance definitions 
-- ---------------------------------------------------------

docsDrfConformance OBJECT IDENTIFIER ::= { docsDrfMib 2 }
docsDrfCompliances OBJECT IDENTIFIER ::= { docsDrfConformance 1 }
docsDrfGroups      OBJECT IDENTIFIER ::= { docsDrfConformance 2 }

docsDrfDeviceCompliance MODULE-COMPLIANCE 
    STATUS      current 
    DESCRIPTION 
            "The compliance statement DOCSIS DRFI compliant 
            devices."

    MODULE -- this MODULE

-- conditionally mandatory groups

    MANDATORY-GROUPS {
        docsDrfGroup
        }
::= { docsDrfCompliances 1}

docsDrfCmtsCompliance MODULE-COMPLIANCE 
    STATUS      current 
    DESCRIPTION 
            "The compliance statement for CMTS compliant 
            devices."

MODULE -- this MODULE

-- conditionally mandatory groups

MANDATORY-GROUPS {
        docsDrfGroup,
        docsDrfCmtsGroup
    }

    ::= { docsDrfCompliances 2}

docsDrfGroup OBJECT-GROUP
    OBJECTS {
        docsDrfDownstreamCapabFrequency,
        docsDrfDownstreamCapabBandwidth,
        docsDrfDownstreamCapabPower,
        docsDrfDownstreamCapabModulation,
        docsDrfDownstreamCapabInterleaver,
        docsDrfDownstreamCapabJ83Annex,
        docsDrfDownstreamCapabConcurrentServices,
        docsDrfDownstreamCapabServicesTransport,
        docsDrfDownstreamCapabMuting,
        docsDrfGroupDependencyGroupID,
        docsDrfGroupDependencyType,
        docsDrfChannelBlockNumberChannels,
        docsDrfChannelBlockCfgNumberChannels,
        docsDrfChannelBlockMute,
        docsDrfChannelBlockTestType,
        docsDrfChannelBlockTestIfIndex
        }
    STATUS      current
    DESCRIPTION
            "Group of objects implemented in M-CMTS compliant devices."
    ::= { docsDrfGroups 1 }


docsDrfCmtsGroup OBJECT-GROUP
    OBJECTS {
        docsDrfDownstreamPhyDependencies
        }
    STATUS      current
    DESCRIPTION
            "Group of objects speficic for CMTS."
    ::= { docsDrfGroups 2 }


END


