RDN-CMTS-MIB DEFINITIONS ::= BEGIN

  IMPORTS

        riverdelta
                FROM RDN-MIB

        NOTIFICATION-TYPE,
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        IpAddress,
        Counter32,
        Counter64
                FROM SNMPv2-SMI

        MacAddress, TruthValue
                FROM SNMPv2-TC
                
        ifIndex, ifAdminStatus, ifOperStatus
                FROM IF-MIB
                
        docsIfCmtsCmStatusIndex,
        docsIfCmtsCmStatusMacAddress,
        docsIfUpChannelId,
        docsIfCmtsCmStatusEntry,
        docsIfDownChannelId
                FROM DOCS-IF-MIB            -- RFC2670

        rdnSpectrumGroupName
                FROM RDN-CABLE-SPECTRUM-GROUP-MIB
        DisplayString
                FROM RFC1213-MIB

        docsIfCmtsCmStatusDocsisMode
                FROM DOCS-IF-EXT-MIB;

rdnCmts MODULE-IDENTITY
        LAST-UPDATED    "200206250000Z" -- June 25, 2002
        ORGANIZATION    "Motorola"
        CONTACT-INFO
                    "Peng Luo
                     Three HighWood Drive East
                     Tewksbury, MA
                     U.S.A.      
             Phone:  +1 978 858 2451
             E-mail: pluo@riverdelta.com"
        DESCRIPTION
            "This is the enterprise MIB Module for Motorola's 
             Cable Modem Termination Systems (CMTS)."
        REVISION "0004030000Z"
        DESCRIPTION
            "Initial Version.
             1/30/01 add rdnCmtsCpeToCmTable . XQ
             Updated by JP Brahma
             May-28-2002 add rdmIfCmtsCmStatusTable"

        ::= { riverdelta 2  }


rdnCmtsIfObjects  OBJECT IDENTIFIER ::= { rdnCmts 1 }
rdnCmtsMiscObjects   OBJECT IDENTIFIER ::= { rdnCmts 2 }
rdnCmtsRedunObjects  OBJECT IDENTIFIER ::= { rdnCmts 3 }
rdnCmtsStpObjects    OBJECT IDENTIFIER ::= { rdnCmtsIfObjects 3 }
-- rdnCmtsSaveConfig   OBJECT IDENTIFIER ::= { rdnCmtsMiscObjects 1 }


--
-- Upstream GROUP
--

--
-- The following table is implemented on 
-- the Cable Modem Termination System (CMTS).
--

rdnCmtsDownstreamChannelTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RdnCmtsDownstreamChannelEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table describes the attributes of downstream 
            channel in addition to those specified by the docsIfMib."
        REFERENCE
            "Proprietary MIB."
        ::= { rdnCmtsIfObjects 1 }

rdnCmtsDownstreamChannelEntry OBJECT-TYPE
        SYNTAX      RdnCmtsDownstreamChannelEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry provides a list of attributes for a single
             Downstream channel.
             An entry in this table exists for each ifEntry with an
             ifType of docsCableDownstream(128)."
        INDEX { ifIndex }
        ::= { rdnCmtsDownstreamChannelTable 1 }

RdnCmtsDownstreamChannelEntry ::= SEQUENCE {
            cmtsDSModulation               TruthValue
        }

cmtsDSModulation OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The attribute to control the down stream modulation. When this 
             object is set to FALSE(2), the downstream transmitter will output
             a CW, or tonal signal at the tuned RF frequency."
        ::= { rdnCmtsDownstreamChannelEntry 1 }



--
-- The following table is implemented for the upstream control.
--

rdnCmtsUpstreamChannelTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RdnCmtsUpstreamChannelEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table describes the attributes of upstream 
            channel in addition to those specified by the docsIfMib."
        ::= { rdnCmtsIfObjects 2 }

rdnCmtsUpstreamChannelEntry OBJECT-TYPE
        SYNTAX      RdnCmtsUpstreamChannelEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "List of attributes for a single upstream channel.
             An entry in this table exists for each ifEntry with an
             ifType of docsCableUpstream(129)."
        INDEX { ifIndex }
        ::= { rdnCmtsUpstreamChannelTable 1 }

RdnCmtsUpstreamChannelEntry ::= SEQUENCE {
            cmtsUSNominalRxPower                  Integer32,
            cmtsUSInvitedRangingInterval          Integer32,
            cmtsUSRangingResponseControl          INTEGER,
            cmtsUSRangingPowerOverride            TruthValue,
            rdnCmtsUSNominalRxPowerMode           INTEGER
        }


cmtsUSNominalRxPower OBJECT-TYPE
        SYNTAX      Integer32 (-160..260)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The attribute to program the target, or nominal, receive power of
             each upstream RF port. The range is channel width dependent:

             Power Level     Channel Width
             -160,+140        200 kHz
             -130,+170        400 kHz
             -100,+200        800 kHz
             -70,+230        1600 kHz
             -40,+260        3200 kHz"

        ::= { rdnCmtsUpstreamChannelEntry 1 }


rdnCmtsUSNominalRxPowerMode OBJECT-TYPE
    SYNTAX      INTEGER {
                              default(0),
                              absolute(1)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object describes the setting mode for rdnCmtsUSNomialRxPower.
        The default setting is the absolute mode."
    ::= { rdnCmtsUpstreamChannelEntry 2 }

cmtsUSInvitedRangingInterval OBJECT-TYPE
        SYNTAX      Integer32 ( 0..30000 )
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "To fix Invited(Periodic) Ranging Intervals as in input to the 
             Bandwidth Allocator algorithm."
        DEFVAL { 0 }
        ::= { rdnCmtsUpstreamChannelEntry 3 }

cmtsUSRangingResponseControl OBJECT-TYPE
        SYNTAX      INTEGER {
        normal(0),
        override(1)
    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The attribute to force all RNG-Resp messages to issue a 'Continue' 
             Ranging Status indefinitely regardless of timing, power, etc. accuracy
             of previous incoming Ranging Request. Value 0 means Normal Ranging Mode,
             value 1 means Status Override"
        ::= { rdnCmtsUpstreamChannelEntry 4 }

cmtsUSRangingPowerOverride  OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The attribute overrides upstream power adjustments performed by the 
             CMTS to CM's. When this object is set to TRUE(1), the  override is
             activated, all Ranging Response message will be transmitted with 
             ZERO power adjustment, regardless of received upstream power 
             levels."
        ::= { rdnCmtsUpstreamChannelEntry 5 }          

--
-- STP control group
-- The below two mibs will be used to control the operation of the MIB
--

rdnCmtsStpEnable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object controls the activation of DOCSIS Spanning Tree Protocol
             Bridging functionality. The Spanning Tree Bridging is disabled/enabled
             by setting this object to FALSE/TRUE."
        ::= { rdnCmtsStpObjects  1 }

rdnCmtsStpTCNEnable OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object controls the generation of Topology Change Notification
             messages for DOCSIS Spanning Tree Protocol Bridge. "
        ::= { rdnCmtsStpObjects  2 }



rdnCmtsLinkUpdownTrapEnableTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RdnCmtsLinkUpdownTrapEnableEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table has the object to enable or disable the generation of
             LinkUp and Link Down traps." 
        ::= { rdnCmtsIfObjects 4 }

rdnCmtsLinkUpdownTrapEnableEntry OBJECT-TYPE
        SYNTAX      RdnCmtsLinkUpdownTrapEnableEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
             "An entry in this table exists for each ifEntry with an
             ifType of docsCableUpstream(129)."
        INDEX { ifIndex }
        ::= { rdnCmtsLinkUpdownTrapEnableTable 1 }

RdnCmtsLinkUpdownTrapEnableEntry ::= SEQUENCE {
             rdnLinkUpDownTrapEnable        INTEGER
        }

rdnLinkUpDownTrapEnable  OBJECT-TYPE
        SYNTAX       INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION "Indicates whether linkUp and LinkDown traps should be 
                     generated for this interface.  By default, this object
                     should have the value disabled(2) for interfaces which do
                     not operate on 'top' of any other interface (as defined in
                     the ifStackTable), and enabled(1) otherwise. These traps
                     are convenient for knowing the Spectrum Group Name whenever
                     the link state changes. So the trap is only limited to the
                     ifIndex values related to upstream."
        ::= { rdnCmtsLinkUpdownTrapEnableEntry 1 }





--
-- This entry is used to save the current configuration into the flash
--
rdnCmtsSaveConfig OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object when set to TRUE will save the current configuration of 
         the CMTS.  When this object is read it will return FALSE"
    ::= { rdnCmtsMiscObjects  1 }

--
-- The following three entries are used to control the CM reset through CMTS
--
rdnCmtsCmResetByMacAddr OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The CM MAC address that the operator wants to reset. When this object 
         is set, it will cause the CMTS to reset that CM.  When this object is 
         read it will return zero"
    ::= { rdnCmtsMiscObjects  2 }

rdnCmtsCmResetByIpAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The CM IP address that the operator wants to reset. When this object 
         is set, it will cause the CMTS to reset that CM.  When this object is 
         read it will return zero"
    ::= { rdnCmtsMiscObjects  3 }

rdnCmtsCmResetAll OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object when set to TRUE will cause the CMTS to reset all the CM that
         are registered with this CMTS. When this object is read it will return 
         FALSE"
    ::= { rdnCmtsMiscObjects  4 }

rdnCmtsHostAuthControl OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (17))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to add or delete entry in CMTS host authorization
         table. The first octet is for action, add (1) or delete (2), the rest
         are composed with CM MAC address (6 octets), CPE MAC address (6 octets), 
         and the CPE IP address (4 octets).
         Zero is returned for read on this object"
    ::= { rdnCmtsMiscObjects  5 }


rdnCmtsModemAgingTimer OBJECT-TYPE
    SYNTAX      Integer32 (10..30240)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The Time in minutes of modem inactivity after which the modem is
                 deleted from the registration table. The minimum is 10 minutes
                 and the maximum is 21 days. A value of '0' will disable the 
                 aging timer"
    ::= { rdnCmtsMiscObjects  6 }


rdnCmtsCpeToCmObject OBJECT IDENTIFIER ::= { rdnCmtsMiscObjects 7 }

--
-- CMTS CPE table
--

rdnCmtsCpeToCmTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF RdnCmtsCpeToCmEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
      "This table describes the mapping between CPE's MAC address
       and MAC address of the cable modem these CPEs are attached to.
       This table does not support the walk/getNext. It is not intended
       to use this mib to walk the list of cpe's in the system."
  REFERENCE
      " "
  ::= { rdnCmtsCpeToCmObject 1 }

rdnCmtsCpeToCmEntry OBJECT-TYPE
  SYNTAX            RdnCmtsCpeToCmEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
      "An entry describes the mapping between one CPE's MAC address
       and MAC address of the cable modem this CPE is attached to."
  INDEX { rdnCmtsCpeMac }
  ::= { rdnCmtsCpeToCmTable 1 }

RdnCmtsCpeToCmEntry ::= SEQUENCE {
        rdnCmtsCpeMac     MacAddress,
        rdnCmtsCmMac      MacAddress
      }

rdnCmtsCpeMac OBJECT-TYPE
  SYNTAX      MacAddress
  MAX-ACCESS  not-accessible 
  STATUS      current
  DESCRIPTION
      "This object is the MAC address of the CPE (host) that a cable
       modem is attached to."
  ::= { rdnCmtsCpeToCmEntry  1 }

rdnCmtsCmMac OBJECT-TYPE
  SYNTAX      MacAddress
  MAX-ACCESS  read-only 
  STATUS      current
  DESCRIPTION
      "This object returns the MAC address of the cable modem that a CPE
       (host) is attached to. If the CPE is not found being attached to any
       cable modem registered on this CMTS, the read of this object will 
       return zero."
  ::= { rdnCmtsCpeToCmEntry  2 }


--
-- End of CMTS CPE table
--





--
-- Start of rdnIfCmtsCmStatusTable
--

rdnIfCmtsCmStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RdnIfCmtsCmStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table is an extension of the docsIfCmtsCmStatusTable. It
                 provides additional information about the CM."
    ::={ rdnCmtsMiscObjects  8 }

rdnIfCmtsCmStatusEntry OBJECT-TYPE
    SYNTAX      RdnIfCmtsCmStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry of the table rdnIfCmtsCmStatusTable. Each entry provides
                 some additonal information about the CM."
    AUGMENTS    { docsIfCmtsCmStatusEntry }
    ::= { rdnIfCmtsCmStatusTable 1 }

RdnIfCmtsCmStatusEntry ::= SEQUENCE
    {
        rdnIfCmtsCmStatusRegistrationTime  Integer32,
        rdnIfCmtsCmStatusTxUnicastBytes    Counter64,
        rdnIfCmtsCmStatusRxUnicastBytes    Counter64,
        rdnIfCmtsCmStatusSpectrumGroupName DisplayString,
        rdnIfCmtsCmStatusUpstreamPort      INTEGER,
        rdnIfCmtsCmStatusDownStreamPort    INTEGER
    }

rdnIfCmtsCmStatusRegistrationTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When read, this object will return the time in seconds since
                 the modem registered. If the modem is unregistered, it will
                 return ZERO"
    ::= { rdnIfCmtsCmStatusEntry 1 }
                 
rdnIfCmtsCmStatusTxUnicastBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When read, this object will return the number of unicast bytes
                 the modem has transmitted. For offline modems this value is the
                 the total number of unicast bytes when it was online. This
                 object is never reset as long as the CMTS is up. It does not
                 need to be restored across reboots . However, when the CM
                 reregisters into a new spectrum group, this data must be
                 restored."
    ::= { rdnIfCmtsCmStatusEntry 2 }
                 
rdnIfCmtsCmStatusRxUnicastBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When read, this object will return the number of unicast bytes
                 the modem has Received. For offline modems this value is the
                 the total number of unicast bytes when it was online. This
                 Object is never reset as long as the CMTS is up. It does not
                 need to be restored across reboots.  However, when the CM
                 reregisters into a new spectrum group, this data must be
                 restored."
    ::= { rdnIfCmtsCmStatusEntry 3 }

rdnIfCmtsCmStatusSpectrumGroupName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When read, this object will return the spectrum group name. If
                 data not available, return NULL string"
    ::= { rdnIfCmtsCmStatusEntry 4 }

rdnIfCmtsCmStatusUpstreamPort  OBJECT-TYPE
    SYNTAX      INTEGER (0..7)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Upstream Port Number the modem is using. For offline modems
                 this value is meaningless."
    ::= { rdnIfCmtsCmStatusEntry 5 }

rdnIfCmtsCmStatusDownStreamPort  OBJECT-TYPE
    SYNTAX      INTEGER (0..7)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The downstream port number the modem is using, For offline
                 modems this value is meaningless."
    ::= { rdnIfCmtsCmStatusEntry 6 }
                 
--
-- End of rdnIfCmtsCmStatusTable
--


--
-- Start of rdnCmToCpeTable
--

rdnCmToCpeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RdnCmToCpeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table provides the information about the CPEs attached to the
                 CM."
    ::={ rdnCmtsMiscObjects  12 }

rdnCmToCpeEntry OBJECT-TYPE
    SYNTAX      RdnCmToCpeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry of the table rdnCmToCpeTable. Each entry provides the 
                 CPE Mac and IP addresses."
    INDEX       { docsIfCmtsCmStatusIndex,
                  rdnCmToCpeIndex }
    ::= { rdnCmToCpeTable 1 }

RdnCmToCpeEntry ::= SEQUENCE
    {
        rdnCmToCpeIndex          Integer32,
        rdnCmToCpeMacAddress     MacAddress,
        rdnCmToCpeIpAddress      IpAddress
    }

rdnCmToCpeIndex   OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Index Value for an individual CPE, This index value is not
                 guarenteed to remain same during CMTS uptime.  "
    ::= { rdnCmToCpeEntry 1 }

rdnCmToCpeMacAddress  OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Mac Address of the CPE attached to the CM"
    ::= { rdnCmToCpeEntry 2 }
    

rdnCmToCpeIpAddress   OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP Address of the CPE attached to the CM"
    ::= { rdnCmToCpeEntry 3 }

--
-- End of rdnCmToCpeTable
--



rdnModemDeregReason OBJECT-TYPE
   SYNTAX       INTEGER {
                   normal(1),
                   operatorReset(2),
                   operatorDisabled(3),
                   operatorDeleted(4),
                   transmissionFailed(5),
                   transmissionDisabled(6),
                   transmissionDeleted(7),
                   servingGroupChanged(8),
                   receiverFailed(9),
                   receiverDisabled(10),
                   receiverDeleted(11),
                   channelDeleted(12),
                   channelErrors(13),
                   incompleteReg(14),
                   profileUpdateComplete(15),
                   skeyFailure(16),
                   dnChanChangeFailure(17),
                   noDeregReason(18),
                   powerTolerance(19),
                   freqTolerance(20),
                   timingTolerance(21),
                   rangingTolerance(22),
                   noResponseUCC(23)
                }
   MAX-ACCESS   read-only
   STATUS       current
   DESCRIPTION
   "Modem Deregistration Reason 
    normal                - the CMTS has lost contact witht the modem.
    operatorReset         - reset by the operator
    operatorDisabled      - operator has disabled the modem
    operatorDeleted       - was removed from the system 
    transmissionFailed    - the transmitter communicating to the modem
                            has failed
    transmissionDisabled  - the transmitter communicating to the modem
                            has been disabled
    transmissionDeleted   - the transmitter communicating to the modem
                            has been deleted
    servingGroupChanged   - the assignment of the serving groups for the
                            modem has changed
    receiverFailed        - the receiver communicating with the modem has
                            failed
    receiverDisabled      - the receiver communicating with the modem has
                            been disabled
    receiverDeleted       - the receiver communicating with the modem has
                            beeb deleted
    channelDeleted        - a channel has changed on the reciver that has
                            caused the modem to deregister
    channelErrors         - deregistered due to unacceptable amount of channel
                            errors
    incompleteReg         - deregistered due to incomplete registration
    profileUpdateComplete - deregistered after profile update
    skeyFailure           - deregistered due to session key failure
    dnChanChangeFailure   - due to downstream transmission channel change failure
    noDeregReason         - no deregistration reason available
    powerTolerance        - power ranging corrections were out of tolerance
    freqTolerance         - frequency ranging corrections were out of tolerance
    timingTolerance       - timing ranging correction were out of tolerance
    rangingTolerance      - multiple ranging corrections were out of tolerance
    noResponseUCC         - modem did not respond to the UCC request


    This is a place holder for the modem deregistration reason. This should
    return ZERO when read. This just allows us to include a deregistration
    reason in the modem deregistration trap varbind.
   " 
   ::= { rdnCmtsMiscObjects 9 }
                       

rdnDevCmtsTraps OBJECT IDENTIFIER ::= { rdnCmtsMiscObjects 10 }

rdnModemRegIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This is place holder for CMId which is the index to the CM table.
                 This table WILL contain the CM information. Right now the table is
                 not implemented yet. When read it returns ZERO.  But in future this
                 should be part of the CM information table and this should be
                 removed from here. This is required now to support the varbind
                 in Registration and Deregistration Traps. "
    ::= { rdnCmtsMiscObjects 11 }



rdnDevCmtsCmRegisteredTrap NOTIFICATION-TYPE
    OBJECTS  { docsIfCmtsCmStatusDocsisMode,
               docsIfCmtsCmStatusMacAddress,
               docsIfUpChannelId,
               docsIfDownChannelId,
               rdnModemRegIndex,
               rdnSpectrumGroupName }
    STATUS   current
    DESCRIPTION
             "An event to report the registration of a modem. The
              values of docsDevEvLevel, docsDevId, and DocsDevEvText
              are from the entry which logs this event in the
              docsDevEventTable, DocsIfCmtsCmStatusDocsisMode and
              docsIfCmtsCmStatusMacAddress indicate the docsis
              version and the MAC address of the registered CM.
              docsIfDocsisCapability indicate the docsis version of
              the CMTS , docsIfUpChannelId, docsIfDownChannelId gives
              the upstream and downstream channel id respectively
              for the CM.  rdnSpectrumGroupName gives the spectrum
              group name."
    ::= { rdnDevCmtsTraps 1 }


rdnDevCmtsCmDeregisteredTrap NOTIFICATION-TYPE
    OBJECTS  { docsIfCmtsCmStatusDocsisMode,
               docsIfCmtsCmStatusMacAddress,
               docsIfUpChannelId,
               docsIfDownChannelId,
               rdnModemRegIndex,
               rdnModemDeregReason,
               rdnSpectrumGroupName }
    STATUS   current
    DESCRIPTION
             "An event to report the registration of a modem. The
              values of docsDevEvLevel, docsDevId, and DocsDevEvText
              are from the entry which logs this event in the
              docsDevEventTable, DocsIfCntsCmStatusDocsisMode and
              docsIfCmtsCmStatusMacAddress indicate the docsis
              version and the MAC address of the registered CM.
              docsIfDocsisCapability indicate the docsis version of
              the CMTS , docsIfUpChannelId, docsIfDownChannelId gives
              the upstream and downstream channel id respectively
              for the CM.  rdnSpectrumGroupId gives the spectrum
              group name."
    ::= { rdnDevCmtsTraps 2 }


rdnLinkUpTrap NOTIFICATION-TYPE
    OBJECTS   { ifIndex, ifAdminStatus, ifOperStatus, rdnSpectrumGroupName }
    STATUS    current
    DESCRIPTION
              "The standard linkUp traps don't give out the spectrum group name.
               So this is the trap that will extend the varbind to include the
               spectrum group name. "
    ::= { rdnDevCmtsTraps 3 }

 
rdnLinkDownTrap NOTIFICATION-TYPE
    OBJECTS   { ifIndex, ifAdminStatus, ifOperStatus, rdnSpectrumGroupName }
    STATUS    current
    DESCRIPTION
              "The standard linkDown traps don't give out the spectrum group
               name. So this is the trap that will extend the varbind to
               include the spectrum group name. "
    ::= { rdnDevCmtsTraps 4 }






rdnCmtsRedundancyEnable OBJECT-TYPE
  SYNTAX      TruthValue
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION
      "This object enables or disables the redundant CM
      card support. "
  ::= { rdnCmtsRedunObjects 1 }

rdnCmtsRedundancySlot OBJECT-TYPE
  SYNTAX      Integer32 (1..15)
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION
      "This object selects which CMTS card to use as the 
      redundant hot-standby. "
  ::= { rdnCmtsRedunObjects 2 }

rdnCmtsRedundancyRevertTimeout OBJECT-TYPE
  SYNTAX      Integer32 (0..86400)
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION
      "The number of seconds to wait before reverting from 
      the redundant standby back to the CMTS card.  If 0 is 
      specified then reverting is disabled."
  ::= { rdnCmtsRedunObjects 3 }

rdnCmtsRedundancySwitchover OBJECT-TYPE
  SYNTAX      Integer32 (1..15)
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION
      "Writing to this object forces the specified CMTS card
      to  switchover to the redundant standby.  Reading this
      object does nothing and provides no information."
  ::= { rdnCmtsRedunObjects 4 }

--rdnCmtsRedundancyAssociateTable OBJECT-TYPE
--  SYNTAX  SEQUENCE OF RdnCmtsRedunAssocTableEntry
--  MAX-ACCESS  not-accessible
--  STATUS  current
--  DESCRIPTION
--      "Cmts redundancy association table"
--  ::= { rdnCmtsRedunObjects 5 }

--
-- start of cmts redundancy association table
--

--rdnCmtsRedunAssocEntry OBJECT-TYPE
--  SYNTAX RdnCmtsRedunAssocTableEntry
--  MAX-ACCESS  not-accessible
--  STATUS  current
--  DESCRIPTION
--      "Cmts redundancy association table."
--  INDEX { rdnCmtsRedunIndex }
--  ::= {rdnCmtsRedundancyAssociateTable  1 }

--RdnCmtsRedunAssocTableEntry ::=
--  SEQUENCE {
--      rdnCmtsRedunIndex    INTEGER,
--      rdnCmtsRedunCardNum  INTEGER
--  }

--rdnCmtsRedunIndex OBJECT-TYPE
--  SYNTAX  INTEGER
--  MAX-ACCESS  read-only
--  STATUS  current
--  DESCRIPTION
--      "Index into rdnCmtsRedundancyAssociateTable"
--  ::= { rdnCmtsRedunAssocEntry 1 }

--rdnCmtsRedunCardNum OBJECT-TYPE
--  SYNTAX INTEGER
--  MAX-ACCESS read-write
--  STATUS current
--  DESCRIPTION
--      "Then slot number of the redundant standby card
--      that this CMTS card is associated with."
--::= { rdnCmtsRedunAssocEntry 2 }

END

