-- extracted from draft-ietf-ipcdn-bpiplus-mib-05.txt
-- at Fri May 11 06:04:50 2001

   DOCS-BPI2-MIB DEFINITIONS ::= BEGIN

   IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        Counter32,
        Integer32
             FROM SNMPv2-SMI
        SnmpAdminString
             FROM SNMP-FRAMEWORK-MIB
        TEXTUAL-CONVENTION,
        MacAddress,
        RowStatus,
        TruthValue,
        DateAndTime
             FROM SNMPv2-TC
        OBJECT-GROUP,
        MODULE-COMPLIANCE
             FROM SNMPv2-CONF
        ifIndex
             FROM IF-MIB
        docsIfMib
             FROM DOCS-IF-MIB
        InetAddressType,
        InetAddress
             FROM INET-ADDRESS-MIB
   ;

   docsBpi2MIB    MODULE-IDENTITY
        LAST-UPDATED "200104170000Z"
        ORGANIZATION "IETF IPCDN Working Group"
        CONTACT-INFO "---------------------------------------
                   Stuart M. Green
                   Postal:
                   Arris Interactive / Nortel Networks
                   6 Riverside Drive
                   Andover, MA 01810
                   U.S.A.
                   Tel:    +1 978 946 4664
                   Fax:    +1 978 946 4800
                   E-mail: stu.green@ne.arris-i.com
                   ---------------------------------------
                   Kaz Ozawa
                   Postal:
                   Cable Television Laboratories
                   400 Centennial Parkway
                   Louisville, CO 80027
                   U.S.A.
                   Tel:    +1 303 661 3860
                   Fax:    +1 303 661 9199
                   E-mail: k.ozawa@cablelabs.com
                   ---------------------------------------
                   Rich Woundy (BPI MIB)
                   Postal:
                   Cisco Systems
                   300 Apollo Drive
                   Chelmsford, MA 01824
                   U.S.A.
                   Tel:    +1 978 244 8545
                   Fax:    +1 978 244 8917
                   E-mail: rwoundy@cisco.com

           IETF IPCDN Working Group
           General Discussion: ipcdn@ietf.org
           Subscribe: http://www.ietf.org/mailman/listinfo/ipcdn
           Archive: ftp://ftp.ietf.org/ietf-mail-archive/ipcdn
           Co-chairs: Richard Woundy, rwoundy@cisco.com
                      Andrew Valentine, a.valentine@eu.hns.com"

        DESCRIPTION
             "This is the MIB Module for the DOCSIS Baseline Privacy
        Plus Interface (BPI+) at cable modems (CMs) and cable modem
        termination systems (CMTSs)."
        REVISION "200104170000Z"
        DESCRIPTION
        "Modified CM and CMTS IP Multicast table indexing in
            preparation for IPV6.  Obsoleted grace time objects
            from the CMTS portion of the MIB."

        REVISION "200011171930Z"
        DESCRIPTION
        "Replaced DisplayString type with SnmpAdminString type.
            Several object descriptions were also changed."


        ::= { docsIfMib 6 }

   -- Textual conventions

   X509Certificate ::= TEXTUAL-CONVENTION
        STATUS    current
        DESCRIPTION
            "An X509 digital certificate encoded as an ASN.1 DER
        object."
        SYNTAX    OCTET STRING (SIZE (0..1400))


   docsBpi2MIBObjects  OBJECT IDENTIFIER ::= { docsBpi2MIB 1 }

   -- Cable Modem Group

   docsBpi2CmObjects OBJECT IDENTIFIER ::= { docsBpi2MIBObjects 1 }

   --
   -- The BPI+ base and authorization table for CMs, indexed by ifIndex
   --

   docsBpi2CmBaseTable OBJECT-TYPE
        SYNTAX              SEQUENCE OF    DocsBpi2CmBaseEntry
        MAX-ACCESS          not-accessible
        STATUS              current
        DESCRIPTION
             "This table describes the basic and authorization
        related   Baseline Privacy Plus attributes of each CM MAC
        interface."
        ::= { docsBpi2CmObjects 1 }

   docsBpi2CmBaseEntry OBJECT-TYPE
        SYNTAX              DocsBpi2CmBaseEntry
        MAX-ACCESS          not-accessible
        STATUS              current
        DESCRIPTION
             "Each entry contains objects describing attributes of
        one CM MAC interface. An entry in this table exists for each
        ifEntry with an ifType of docsCableMaclayer(127)."
        INDEX               { ifIndex }
        ::= { docsBpi2CmBaseTable 1 }

   DocsBpi2CmBaseEntry ::= SEQUENCE {
        docsBpi2CmPrivacyEnable            TruthValue,
        docsBpi2CmPublicKey           OCTET STRING,
        docsBpi2CmAuthState           INTEGER,
        docsBpi2CmAuthKeySequenceNumber         Integer32,
        docsBpi2CmAuthExpiresOld      DateAndTime,
        docsBpi2CmAuthExpiresNew      DateAndTime,
        docsBpi2CmAuthReset           TruthValue,
        docsBpi2CmAuthGraceTime            Integer32,
        docsBpi2CmTEKGraceTime             Integer32,
        docsBpi2CmAuthWaitTimeout          Integer32,
        docsBpi2CmReauthWaitTimeout        Integer32,
        docsBpi2CmOpWaitTimeout            Integer32,
        docsBpi2CmRekeyWaitTimeout         Integer32,
        docsBpi2CmAuthRejectWaitTimeout         Integer32,
        docsBpi2CmSAMapWaitTimeout         Integer32,
        docsBpi2CmSAMapMaxRetries          Integer32,
        docsBpi2CmAuthentInfos             Counter32,
        docsBpi2CmAuthRequests             Counter32,
        docsBpi2CmAuthReplies              Counter32,
        docsBpi2CmAuthRejects              Counter32,
        docsBpi2CmAuthInvalids             Counter32,
        docsBpi2CmAuthRejectErrorCode      INTEGER,
        docsBpi2CmAuthRejectErrorString         SnmpAdminString,
        docsBpi2CmAuthInvalidErrorCode          INTEGER,
        docsBpi2CmAuthInvalidErrorString   SnmpAdminString
        }

   docsBpi2CmPrivacyEnable  OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "This object identifies whether this CM is
        provisioned to run Baseline Privacy Plus."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1."
        ::= { docsBpi2CmBaseEntry 1 }

   docsBpi2CmPublicKey OBJECT-TYPE
        SYNTAX         OCTET STRING (SIZE (74|106|140|204|270))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is a DER-encoded
        RSAPublicKey ASN.1 type string, as defined in the RSA
        Encryption Standard (PKCS #1) [10], corresponding to the
        public key of the CM. The 74, 106, 140, 204, and 270 byte key
        encoding lengths correspond to 512 bit, 768 bit, 1024 bit,
        1536 bit, and 2048 public moduli respectively."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.4."
        ::= { docsBpi2CmBaseEntry 2 }

   docsBpi2CmAuthState OBJECT-TYPE
        SYNTAX         INTEGER   {
                       start(1),
                       authWait(2),
                       authorized(3),
                       reauthWait(4),
                       authRejectWait(5),
                       silent(6)
                  }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the state of the CM
        authorization FSM.  The start state indicates that FSM is in
        its initial state."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.1.2.1."
        ::= { docsBpi2CmBaseEntry 3 }

   docsBpi2CmAuthKeySequenceNumber    OBJECT-TYPE
        SYNTAX              Integer32 (0..15)
        MAX-ACCESS          read-only
        STATUS              current
        DESCRIPTION
             "The value of this object is the most recent
        authorization key sequence number for this FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.2 and 4.2.2.10."
        ::= { docsBpi2CmBaseEntry 4 }

   docsBpi2CmAuthExpiresOld OBJECT-TYPE
        SYNTAX              DateAndTime
        MAX-ACCESS          read-only
        STATUS              current
        DESCRIPTION
             "The value of this object is the actual clock time for
        expiration of the immediate predecessor of the most recent
        authorization key for this FSM.  If this FSM has only one
        authorization key, then the value is the time of activation
        of this FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.2 and 4.2.2.9."
        ::= { docsBpi2CmBaseEntry 5 }

   docsBpi2CmAuthExpiresNew OBJECT-TYPE
        SYNTAX              DateAndTime
        MAX-ACCESS          read-only
        STATUS              current
        DESCRIPTION
             "The value of this object is the actual clock time for
        expiration of the most recent authorization key for this FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.2 and 4.2.2.9."
        ::= { docsBpi2CmBaseEntry 6 }

   docsBpi2CmAuthReset OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "Setting this object to TRUE generates a Reauthorize
        event in the authorization FSM. Reading this object always
        returns FALSE."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.1.2.3.4."
        ::= { docsBpi2CmBaseEntry 7 }

   docsBpi2CmAuthGraceTime  OBJECT-TYPE
        SYNTAX         Integer32 (1..6047999)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the grace time for an
        authorization key.  A CM is expected to start trying to get a
        new authorization key beginning AuthGraceTime seconds before
        the authorization key actually expires."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.3."
        ::= { docsBpi2CmBaseEntry 8 }

   docsBpi2CmTEKGraceTime   OBJECT-TYPE
        SYNTAX         Integer32 (1..302399)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the grace time for
        the TEK in seconds.  The CM is expected to start trying to
        acquire a new TEK beginning TEK GraceTime seconds before
        the expiration of the most recent TEK."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.6."
        ::= { docsBpi2CmBaseEntry 9 }

   docsBpi2CmAuthWaitTimeout     OBJECT-TYPE
        SYNTAX         Integer32 (1..30)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Authorize Wait
        Timeout."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.1."
        ::= { docsBpi2CmBaseEntry 10 }

   docsBpi2CmReauthWaitTimeout   OBJECT-TYPE
        SYNTAX         Integer32 (1..30)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Reauthorize Wait
        Timeout in seconds."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.2."
        ::= { docsBpi2CmBaseEntry 11 }

   docsBpi2CmOpWaitTimeout  OBJECT-TYPE
        SYNTAX         Integer32 (1..10)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Operational Wait
        Timeout in seconds."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.4."
        ::= { docsBpi2CmBaseEntry 12 }

   docsBpi2CmRekeyWaitTimeout    OBJECT-TYPE
        SYNTAX         Integer32 (1..10)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Rekey Wait Timeout
        in seconds."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.5."
        ::= { docsBpi2CmBaseEntry 13 }

   docsBpi2CmAuthRejectWaitTimeout    OBJECT-TYPE
        SYNTAX         Integer32 (1..600)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Authorization Reject
        Wait Timeout in seconds."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.7."
        ::= { docsBpi2CmBaseEntry 14 }

   docsBpi2CmSAMapWaitTimeout    OBJECT-TYPE
        SYNTAX         Integer32 (1..10)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the retransmission
        interval, in seconds, of SA Map Requests from the MAP Wait
        state."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.8."
        ::= { docsBpi2CmBaseEntry 15 }

   docsBpi2CmSAMapMaxRetries     OBJECT-TYPE
        SYNTAX         Integer32 (0..10)
        UNITS          "count"
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the maximum number of
        Map Request retries allowed."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.9."
        ::= { docsBpi2CmBaseEntry 16 }

   docsBpi2CmAuthentInfos   OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has transmitted an Authentication Information message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.9."
        ::= { docsBpi2CmBaseEntry 17 }

   docsBpi2CmAuthRequests   OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has transmitted an Authorization Request message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.1."
        ::= { docsBpi2CmBaseEntry 18 }

   docsBpi2CmAuthReplies    OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has received an Authorization Reply message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.2."
        ::= { docsBpi2CmBaseEntry 19 }

   docsBpi2CmAuthRejects    OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has received an Authorization Reject message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.3."
        ::= { docsBpi2CmBaseEntry 20 }

   docsBpi2CmAuthInvalids   OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has received an Authorization Invalid message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.7."
        ::= { docsBpi2CmBaseEntry 21 }

   docsBpi2CmAuthRejectErrorCode OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       unauthorizedCm(3),
                       unauthorizedSaid(4),
                       permanentAuthorizationFailure(8),
                       timeOfDayNotAcquired(11)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated
        description of the Error-Code in most recent Authorization
        Reject message received by the CM.  This has value unknown(2)
        if the last Error-Code value was 0, and none(1) if no
        Authorization Reject message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.3 and 4.2.2.15."
        ::= { docsBpi2CmBaseEntry 22 }

   docsBpi2CmAuthRejectErrorString    OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        most recent Authorization Reject message received by the CM.
        This is a zero length string if no Authorization Reject
        message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.3 and 4.2.2.6."
        ::= { docsBpi2CmBaseEntry 23 }

   docsBpi2CmAuthInvalidErrorCode     OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       unauthorizedCm(3),
                       unsolicited(5),
                       invalidKeySequence(6),
                       keyRequestAuthenticationFailure(7)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated
        description of the Error-Code in most recent Authorization
        Invalid message received by the CM.  This has value unknown(2)
        if the last Error-Code value was 0, and none(1) if no
        Authorization Invalid message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.7 and 4.2.2.15."
        ::= { docsBpi2CmBaseEntry 24 }

   docsBpi2CmAuthInvalidErrorString   OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        most recent Authorization Invalid message received by the CM.
        This is a zero length string if no Authorization Invalid
        message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.7 and 4.2.2.6."
        ::= { docsBpi2CmBaseEntry 25 }




   --
   -- The CM TEK Table, indexed by ifIndex and SAID
   --

   docsBpi2CmTEKTable  OBJECT-TYPE
        SYNTAX         SEQUENCE OF    DocsBpi2CmTEKEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table describes the attributes of each CM
        Traffic Encryption Key(TEK) association. The CM maintains (no
        more than) one TEK association per SAID per CM MAC interface."
        ::= { docsBpi2CmObjects 2 }

   docsBpi2CmTEKEntry  OBJECT-TYPE
        SYNTAX         DocsBpi2CmTEKEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "Each entry contains objects describing the TEK
        association attributes of one SAID. The CM MUST create one
        entry per SAID, regardless of whether the SAID was obtained
        from a Registration Response message, from an Authorization
        Reply message, or from any dynamic SAID establishment
        mechanisms."
        INDEX     { ifIndex, docsBpi2CmTEKSAId }
        ::= { docsBpi2CmTEKTable 1 }

   DocsBpi2CmTEKEntry ::= SEQUENCE {
        docsBpi2CmTEKSAId             Integer32,
        docsBpi2CmTEKSAType           INTEGER,
        docsBpi2CmTEKDataEncryptAlg        INTEGER,
        docsBpi2CmTEKDataAuthentAlg        INTEGER,
        docsBpi2CmTEKState            INTEGER,
        docsBpi2CmTEKKeySequenceNumber          Integer32,
        docsBpi2CmTEKExpiresOld            DateAndTime,
        docsBpi2CmTEKExpiresNew            DateAndTime,
        docsBpi2CmTEKKeyRequests      Counter32,
        docsBpi2CmTEKKeyReplies            Counter32,
        docsBpi2CmTEKKeyRejects            Counter32,
        docsBpi2CmTEKInvalids              Counter32,
        docsBpi2CmTEKAuthPends             Counter32,
        docsBpi2CmTEKKeyRejectErrorCode         INTEGER,
        docsBpi2CmTEKKeyRejectErrorString  SnmpAdminString,
        docsBpi2CmTEKInvalidErrorCode      INTEGER,
        docsBpi2CmTEKInvalidErrorString         SnmpAdminString
        }

   docsBpi2CmTEKSAId   OBJECT-TYPE
        SYNTAX         Integer32 (1..16383)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "The value of this object is the DOCSIS Security
        Association ID (SAID)."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.12."
        ::= { docsBpi2CmTEKEntry 1 }

   docsBpi2CmTEKSAType OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0),
                       primary(1),
                       static(2),
                       dynamic(3)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the type of security
        association."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 2.1.3."
        ::= { docsBpi2CmTEKEntry 2 }

   docsBpi2CmTEKDataEncryptAlg   OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0),
                       des56CbcMode(1),
                       des40CbcMode(2)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the data encryption
        algorithm being utilized."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.20."
        ::= { docsBpi2CmTEKEntry 3 }

   docsBpi2CmTEKDataAuthentAlg   OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the data authentication
        algorithm being utilized."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.20."
        ::= { docsBpi2CmTEKEntry 4 }

   docsBpi2CmTEKState  OBJECT-TYPE
        SYNTAX         INTEGER {
                       start(1),
                       opWait(2),
                       opReauthWait(3),
                       operational(4),
                       rekeyWait(5),
                       rekeyReauthWait(6)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the state of the
        indicated TEK FSM.  The start(1) state indicates that FSM is
        in its initial state."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.1.3.1."
        ::= { docsBpi2CmTEKEntry 5 }

   docsBpi2CmTEKKeySequenceNumber     OBJECT-TYPE
        SYNTAX              Integer32 (0..15)
        MAX-ACCESS          read-only
        STATUS              current
        DESCRIPTION
             "The value of this object is the most recent TEK
        key sequence number for this TEK FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.2.10 and 4.2.2.13."
        ::= { docsBpi2CmTEKEntry 6 }

   docsBpi2CmTEKExpiresOld  OBJECT-TYPE
        SYNTAX         DateAndTime
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the actual clock time for
        expiration of the immediate predecessor of the most recent TEK
        for this FSM.  If this FSM has only one TEK, then the value is
        the time of activation of this FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.5 and 4.2.2.9."
        ::= { docsBpi2CmTEKEntry 7 }

   docsBpi2CmTEKExpiresNew  OBJECT-TYPE
        SYNTAX         DateAndTime
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the actual clock time for
        expiration of the most recent TEK for this FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.5 and 4.2.2.9."
        ::= { docsBpi2CmTEKEntry 8 }

   docsBpi2CmTEKKeyRequests OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has transmitted a Key Request message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.4."
        ::= { docsBpi2CmTEKEntry 9 }

   docsBpi2CmTEKKeyReplies  OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has received a Key Reply message, including a message whose
        authentication failed."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.5."
        ::= { docsBpi2CmTEKEntry 10 }

   docsBpi2CmTEKKeyRejects  OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has received a Key Reject message, including a message whose
        authentication failed."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.6."
        ::= { docsBpi2CmTEKEntry 11 }

        docsBpi2CmTEKInvalids    OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the CM
        has received a TEK Invalid message, including a message whose
        authentication failed."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.8."
        ::= { docsBpi2CmTEKEntry 12 }

   docsBpi2CmTEKAuthPends   OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times an
        Authorization Pending (Auth Pend) event occurred in this FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.1.3.3.3."
        ::= { docsBpi2CmTEKEntry 13 }

   docsBpi2CmTEKKeyRejectErrorCode    OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       unauthorizedSaid(4)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated
        description of the Error-Code in most recent Key Reject
        message received by the CM. This has value unknown(2) if the
        last Error-Code value was 0, and none(1) if no Key Reject
        message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.1.2.6 and 4.2.2.15."
        ::= { docsBpi2CmTEKEntry 14 }

   docsBpi2CmTEKKeyRejectErrorString  OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        most recent Key Reject message received by the CM. This is a
        zero length string if no Key Reject message has been received
        since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.1.2.6 and 4.2.2.6."
        ::= { docsBpi2CmTEKEntry 15 }

   docsBpi2CmTEKInvalidErrorCode OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       invalidKeySequence(6)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated
        description of the Error-Code in most recent TEK Invalid
        message received by the CM.  This has value unknown(2) if the
        last Error-Code value was 0, and  none(1) if no TEK Invalid
        message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.1.2.8 and 4.2.2.15."
        ::= { docsBpi2CmTEKEntry 16 }

   docsBpi2CmTEKInvalidErrorString    OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        most recent TEK Invalid message received by the CM. This is a
        zero length string if no TEK Invalid message has been received
        since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.1.2.8 and 4.2.2.6."
        ::= { docsBpi2CmTEKEntry 17 }


   --
   -- The CM Multicast Objects Group
   --

   docsBpi2CmMulticastObjects OBJECT IDENTIFIER
        ::= { docsBpi2CmObjects 3 }

   --
   -- The CM Dynamic IP Multicast Mapping Table, indexed by
   -- docsBpi2CmIpMulticastIndex and by ifindex
   --

   docsBpi2CmIpMulticastMapTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF DocsBpi2CmIpMulticastMapEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table maps multicast IP addresses to SAIDs.
        It is intended to map multicast IP addresses associated
        with SA MAP Request messages."
        ::= { docsBpi2CmMulticastObjects 1 }

   docsBpi2CmIpMulticastMapEntry OBJECT-TYPE
        SYNTAX         DocsBpi2CmIpMulticastMapEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "Each entry contains objects describing the mapping of
        one multicast IP address to one SAID, as well as
        associated state, message counters, and error information."
        INDEX     { ifIndex, docsBpi2CmIpMulticastIndex }
        ::= { docsBpi2CmIpMulticastMapTable 1 }

   DocsBpi2CmIpMulticastMapEntry ::= SEQUENCE {
        docsBpi2CmIpMulticastIndex              Integer32,
        docsBpi2CmIpMulticastAddressType        InetAddressType,
        docsBpi2CmIpMulticastAddress            InetAddress,
        docsBpi2CmIpMulticastSAId               Integer32,
        docsBpi2CmIpMulticastSAMapState              INTEGER,
        docsBpi2CmIpMulticastSAMapRequests      Counter32,
        docsBpi2CmIpMulticastSAMapReplies       Counter32,
        docsBpi2CmIpMulticastSAMapRejects       Counter32,
        docsBpi2CmIpMulticastSAMapRejectErrorCode    INTEGER,
        docsBpi2CmIpMulticastSAMapRejectErrorString  SnmpAdminString
        }

   docsBpi2CmIpMulticastIndex         OBJECT-TYPE
        SYNTAX         Integer32 (1..1000)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "The index of this row."
        ::= { docsBpi2CmIpMulticastMapEntry 1 }

   docsBpi2CmIpMulticastAddressType   OBJECT-TYPE
        SYNTAX         InetAddressType
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The type of internet address for
        docsBpi2CmIpMulticastAddress."
        ::= { docsBpi2CmIpMulticastMapEntry 2 }

   docsBpi2CmIpMulticastAddress  OBJECT-TYPE
        SYNTAX         InetAddress
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "This object represents the IP multicast address
        to be mapped."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 5.4."
        ::= { docsBpi2CmIpMulticastMapEntry 3 }

   docsBpi2CmIpMulticastSAId          OBJECT-TYPE
        SYNTAX         Integer32 (0..16383)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "This object represents the SAID to which the IP
        multicast address has been mapped.  If no SA Map Reply has
        been received for the IP address, this object should have the
        value 0."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.12."
        ::= { docsBpi2CmIpMulticastMapEntry 4 }

   docsBpi2CmIpMulticastSAMapState         OBJECT-TYPE
        SYNTAX         INTEGER {
                       start(1),
                       mapWait(2),
                       mapped(3)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the state of the SA
        Mapping   FSM for this IP."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 5.3.1."
        ::= { docsBpi2CmIpMulticastMapEntry 5 }

   docsBpi2CmIpMulticastSAMapRequests OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CM has transmitted an SA Map Request message for this IP."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,

        Section 4.2.1.10."
        ::= { docsBpi2CmIpMulticastMapEntry 6 }

   docsBpi2CmIpMulticastSAMapReplies  OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CM has received an SA Map Reply message for this IP."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.11."
        ::= { docsBpi2CmIpMulticastMapEntry 7 }

   docsBpi2CmIpMulticastSAMapRejects  OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CM has received an SA MAP Reject message for this IP."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.12."
        ::= { docsBpi2CmIpMulticastMapEntry 8 }

   docsBpi2CmIpMulticastSAMapRejectErrorCode    OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       noAuthForRequestedDSFlow(9),
                       dsFlowNotMappedToSA(10)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated
        description of the Error-Code in the most recent SA Map
        Reject message sent in response to an SA Map Request for this
        IP.  It has value unknown(2) if the last Error-Code value
        was 0, and none(1) if no SA MAP Reject message has been
        received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.12 and 4.2.2.15."
        ::= { docsBpi2CmIpMulticastMapEntry 9 }

   docsBpi2CmIpMulticastSAMapRejectErrorString  OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        the most recent SA Map Reject message sent in response to an
        SA Map Request for this IP.  It is a zero length string if
        no SA Map Reject message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.12 and 4.2.2.6."
        ::= { docsBpi2CmIpMulticastMapEntry 10 }


   --
   -- CM Cert Objects
   --

   docsBpi2CmCertObjects OBJECT IDENTIFIER
        ::= { docsBpi2CmObjects 4 }

   --
   -- CM Device Cert Table
   --

   docsBpi2CmDeviceCertTable     OBJECT-TYPE
        SYNTAX              SEQUENCE OF    DocsBpi2CmDeviceCertEntry
        MAX-ACCESS          not-accessible
        STATUS              current
        DESCRIPTION
             "This table describes the Baseline Privacy Plus
        device certificates for each CM MAC interface."
        ::= { docsBpi2CmCertObjects 1 }

   docsBpi2CmDeviceCertEntry     OBJECT-TYPE
        SYNTAX              DocsBpi2CmDeviceCertEntry
        MAX-ACCESS          not-accessible
        STATUS              current
        DESCRIPTION
             "Each entry contains the device certificates of
        one CM MAC interface. An entry in this table exists for each
        ifEntry with an ifType of docsCableMaclayer(127)."
        INDEX               { ifIndex }
        ::= { docsBpi2CmDeviceCertTable 1 }

   DocsBpi2CmDeviceCertEntry ::= SEQUENCE {
        docsBpi2CmDeviceCmCert        X509Certificate,
        docsBpi2CmDeviceManufCert     X509Certificate
        }

   docsBpi2CmDeviceCmCert   OBJECT-TYPE
        SYNTAX    X509Certificate
        MAX-ACCESS     read-write
        STATUS    current
        DESCRIPTION
             "The X509 DER-encoded cable modem certificate.
        Note:  This object can be set only when the value is the null
        string.  Once the object contains the certificate, its access
        MUST be read-only."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.1."
        ::= { docsBpi2CmDeviceCertEntry 1 }

   docsBpi2CmDeviceManufCert     OBJECT-TYPE
        SYNTAX    X509Certificate
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
             "The X509 DER-encoded manufacturer certificate which
        signed the cable modem certificate."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.1."
        ::= { docsBpi2CmDeviceCertEntry 2 }


   --
   -- CM Crypto Suite Table
   --

   docsBpi2CmCryptoSuiteTable    OBJECT-TYPE
        SYNTAX         SEQUENCE OF    DocsBpi2CmCryptoSuiteEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table describes the Baseline Privacy Plus
        cryptographic suite capabilites for each CM MAC interface."
        ::= { docsBpi2CmObjects 5 }

   docsBpi2CmCryptoSuiteEntry    OBJECT-TYPE
        SYNTAX         DocsBpi2CmCryptoSuiteEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "Each entry contains a cryptographic suite pair
        which this CM MAC supports."
        INDEX     { ifIndex, docsBpi2CmCryptoSuiteIndex }
        ::= { docsBpi2CmCryptoSuiteTable 1 }

   DocsBpi2CmCryptoSuiteEntry ::= SEQUENCE {
        docsBpi2CmCryptoSuiteIndex         Integer32,
        docsBpi2CmCryptoSuiteDataEncryptAlg     INTEGER,
        docsBpi2CmCryptoSuiteDataAuthentAlg     INTEGER
        }

   docsBpi2CmCryptoSuiteIndex OBJECT-TYPE
        SYNTAX    Integer32 (1..1000)
        MAX-ACCESS     not-accessible
        STATUS    current
        DESCRIPTION
             "The index for a cryptographic suite row."
        ::= { docsBpi2CmCryptoSuiteEntry 1 }

   docsBpi2CmCryptoSuiteDataEncryptAlg     OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0),
                       des56CbcMode(1),
                       des40CbcMode(2)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the data encryption
        algorithm for this cryptographic suite capability."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.20."
        ::= { docsBpi2CmCryptoSuiteEntry 2 }

   docsBpi2CmCryptoSuiteDataAuthentAlg     OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the data authentication
        algorithm for this cryptographic suite capability."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.20."
        ::= { docsBpi2CmCryptoSuiteEntry 3 }






   -- Cable Modem Termination System Group

   docsBpi2CmtsObjects OBJECT IDENTIFIER ::= { docsBpi2MIBObjects 2 }


   --
   -- SPECIAL NOTE:  For the following CMTS tables, when a CM is running
   -- in BPI mode, replace SAID (Security Association ID)
   -- with SID (Service ID).  The CMTS is required to map SAIDs and SIDs
   -- to one contiguous space.
   --


   --
   -- The BPI+ base table for CMTSs, indexed by ifIndex
   --

   docsBpi2CmtsBaseTable    OBJECT-TYPE
        SYNTAX         SEQUENCE OF    DocsBpi2CmtsBaseEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table describes the basic Baseline Privacy
        attributes of each CMTS MAC interface."
        ::= { docsBpi2CmtsObjects 1 }

   docsBpi2CmtsBaseEntry    OBJECT-TYPE
        SYNTAX         DocsBpi2CmtsBaseEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "Each entry contains objects describing attributes of
        one CMTS MAC interface.  An entry in this table exists for
        each ifEntry with an ifType of docsCableMaclayer(127)."
        INDEX     { ifIndex }
        ::= { docsBpi2CmtsBaseTable 1 }

   DocsBpi2CmtsBaseEntry ::= SEQUENCE {
        docsBpi2CmtsDefaultAuthLifetime              Integer32,
        docsBpi2CmtsDefaultTEKLifetime               Integer32,
        docsBpi2CmtsDefaultSelfSignedManufCertTrust  INTEGER,
        docsBpi2CmtsCheckCertValidityPeriods         TruthValue,
        docsBpi2CmtsAuthentInfos           Counter32,
        docsBpi2CmtsAuthRequests           Counter32,
        docsBpi2CmtsAuthReplies                 Counter32,
        docsBpi2CmtsAuthRejects                 Counter32,
        docsBpi2CmtsAuthInvalids           Counter32,
        docsBpi2CmtsSAMapRequests               Counter32,
        docsBpi2CmtsSAMapReplies           Counter32,
        docsBpi2CmtsSAMapRejects           Counter32
        }

   docsBpi2CmtsDefaultAuthLifetime    OBJECT-TYPE
        SYNTAX         Integer32 (1..6048000)
        UNITS          "seconds"
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "The value of this object is the default lifetime, in
        seconds, the CMTS assigns to a new authorization key."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.2."
        ::= { docsBpi2CmtsBaseEntry 1 }

   docsBpi2CmtsDefaultTEKLifetime     OBJECT-TYPE
        SYNTAX         Integer32 (1..604800)
        UNITS          "seconds"
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "The value of this object is the default lifetime, in
        seconds, the CMTS assigns to a new Traffic Encryption Key
        (TEK)."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.2."
        ::= { docsBpi2CmtsBaseEntry 2 }

   docsBpi2CmtsDefaultSelfSignedManufCertTrust  OBJECT-TYPE
        SYNTAX    INTEGER {
                  trusted (1),
                  untrusted (2)
                  }
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "This object determines the default trust of all (new)
        self-signed manufacturer certificates obtained after setting
        the object."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.4.1"
        ::= { docsBpi2CmtsBaseEntry 3 }

   docsBpi2CmtsCheckCertValidityPeriods    OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "Setting this object to TRUE causes all certificates
        obtained thereafter to have their validity periods (and their
        chain's validity periods) checked against the current time of
        day.  A FALSE setting will cause all certificates obtained
        thereafter to not have their validity periods (nor their
        chain's validity periods) checked against the current time of
        day."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.4.2"
        ::= { docsBpi2CmtsBaseEntry 4 }

   docsBpi2CmtsAuthentInfos OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has received an Authentication Information message from
        any CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.9."
        ::= { docsBpi2CmtsBaseEntry 5 }

   docsBpi2CmtsAuthRequests OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has received an Authorization Request message from any
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.1."
        ::= { docsBpi2CmtsBaseEntry 6 }

   docsBpi2CmtsAuthReplies  OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an Authorization Reply message to any
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.2."
        ::= { docsBpi2CmtsBaseEntry 7 }

   docsBpi2CmtsAuthRejects  OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an Authorization Reject message to any
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.3."
        ::= { docsBpi2CmtsBaseEntry 8 }

   docsBpi2CmtsAuthInvalids OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an Authorization Invalid message to any
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.7."
        ::= { docsBpi2CmtsBaseEntry 9 }

   docsBpi2CmtsSAMapRequests     OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has received an SA Map Request message from any CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.10."
        ::= { docsBpi2CmtsBaseEntry 10 }

   docsBpi2CmtsSAMapReplies OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an SA Map Reply message to any CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.11."
        ::= { docsBpi2CmtsBaseEntry 11 }

   docsBpi2CmtsSAMapRejects OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an SA Map Reject message to any CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.12."
        ::= { docsBpi2CmtsBaseEntry 12 }

   --
   -- The CMTS Authorization Table, indexed by ifIndex and CM MAC
   -- address
   --

   docsBpi2CmtsAuthTable    OBJECT-TYPE
        SYNTAX         SEQUENCE OF    DocsBpi2CmtsAuthEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table describes the attributes of each CM
        authorization association. The CMTS maintains one
        authorization association with each Baseline Privacy-enabled
        CM on each CMTS MAC interface."
        ::= { docsBpi2CmtsObjects 2 }

   docsBpi2CmtsAuthEntry    OBJECT-TYPE
        SYNTAX         DocsBpi2CmtsAuthEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "Each entry contains objects describing attributes of
        one authorization association. The CMTS MUST create one entry
        per CM per MAC interface, based on the receipt of an
        Authorization Request message, and MUST not delete the entry
        before the CM authorization permanently expires."
        INDEX     { ifIndex, docsBpi2CmtsAuthCmMacAddress }
        ::= { docsBpi2CmtsAuthTable 1 }

   DocsBpi2CmtsAuthEntry ::= SEQUENCE {
        docsBpi2CmtsAuthCmMacAddress       MacAddress,
        docsBpi2CmtsAuthCmBpiVersion       INTEGER,
        docsBpi2CmtsAuthCmPublicKey        OCTET STRING,
        docsBpi2CmtsAuthCmKeySequenceNumber     Integer32,
        docsBpi2CmtsAuthCmExpiresOld       DateAndTime,
        docsBpi2CmtsAuthCmExpiresNew       DateAndTime,
        docsBpi2CmtsAuthCmLifetime         Integer32,
        docsBpi2CmtsAuthCmGraceTime        Integer32,
        docsBpi2CmtsAuthCmReset            INTEGER,
        docsBpi2CmtsAuthCmInfos            Counter32,
        docsBpi2CmtsAuthCmRequests         Counter32,
        docsBpi2CmtsAuthCmReplies          Counter32,
        docsBpi2CmtsAuthCmRejects          Counter32,
        docsBpi2CmtsAuthCmInvalids         Counter32,
        docsBpi2CmtsAuthRejectErrorCode         INTEGER,
        docsBpi2CmtsAuthRejectErrorString  SnmpAdminString,
        docsBpi2CmtsAuthInvalidErrorCode   INTEGER,
        docsBpi2CmtsAuthInvalidErrorString SnmpAdminString,
        docsBpi2CmtsAuthPrimarySAId        Integer32,
        docsBpi2CmtsAuthBpkmCmCertValid         INTEGER,
        docsBpi2CmtsAuthBpkmCmCert         X509Certificate
        }

   docsBpi2CmtsAuthCmMacAddress  OBJECT-TYPE
        SYNTAX         MacAddress
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "The value of this object is the physical address of
        the CM to which the authorization association applies."
        ::= { docsBpi2CmtsAuthEntry 1 }

   docsBpi2CmtsAuthCmBpiVersion  OBJECT-TYPE
        SYNTAX         INTEGER {
                  bpi (0),
                  bpiPlus (1)
                  }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the version of Baseline
        Privacy   for which this CM has registered."
        ::= { docsBpi2CmtsAuthEntry 2 }

   docsBpi2CmtsAuthCmPublicKey   OBJECT-TYPE
        SYNTAX         OCTET STRING (SIZE (0|74|106|140|204|270))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is a DER-encoded
        RSAPublicKey ASN.1 type string, as defined in the RSA
        Encryption Standard (PKCS #1) [10], corresponding to the
        public key of the CM. The 74, 106, 140, 204, and 270 byte key
        encoding lengths correspond to 512 bit, 768 bit, 1024 bit,
        1536 bit, and 2048 public moduli respectively. This is a
        zero-length string if the CMTS does not retain the public
        key."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.4."
        ::= { docsBpi2CmtsAuthEntry 3 }

   docsBpi2CmtsAuthCmKeySequenceNumber     OBJECT-TYPE
        SYNTAX         Integer32 (0..15)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the most recent
        authorization key sequence number for this CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.2 and 4.2.2.10."
        ::= { docsBpi2CmtsAuthEntry 4 }

   docsBpi2CmtsAuthCmExpiresOld  OBJECT-TYPE
        SYNTAX         DateAndTime
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the actual clock time
        for expiration of the immediate predecessor of the most
        recent authorization key for this FSM. If this FSM has only
        one authorization key, then the value is the time of
        activation of this FSM.
        Note: For CMs running in BPI mode, implementation of this
        object is optional and MAY vary."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.2 and 4.2.2.9."
        ::= { docsBpi2CmtsAuthEntry 5 }

   docsBpi2CmtsAuthCmExpiresNew  OBJECT-TYPE
        SYNTAX         DateAndTime
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the actual clock time
        for expiration of the most recent authorization key for this
        FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.2 and 4.2.2.9."
        ::= { docsBpi2CmtsAuthEntry 6 }

   docsBpi2CmtsAuthCmLifetime    OBJECT-TYPE
        SYNTAX         Integer32 (1..6048000)
        UNITS          "seconds"
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "The value of this object is the lifetime, in seconds,
        the CMTS assigns to an authorization key for this CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.2 and Appendix A.2."
        ::= { docsBpi2CmtsAuthEntry 7 }

   -- Note: the following object has been obsoleted

   docsBpi2CmtsAuthCmGraceTime   OBJECT-TYPE
        SYNTAX         Integer32 (1..6047999)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         obsolete
        DESCRIPTION
             "The value of this object is the grace time for the
        authorization key in seconds.  The CM is expected to start
        trying to get a new authorization key beginning AuthGraceTime
        seconds before the authorization key actually expires.
        Note: Tracking this value is optional on certain CMTS
        implementations."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.3."
        ::= { docsBpi2CmtsAuthEntry 8 }

   docsBpi2CmtsAuthCmReset  OBJECT-TYPE
        SYNTAX    INTEGER   {
                  noResetRequested(1),
                  invalidateAuth(2),
                  sendAuthInvalid(3),
                  invalidateTeks(4)
                  }
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "Setting this object to invalidateAuth(2) causes the
        CMTS to invalidate the current CM authorization key(s), but
        not to transmit an Authorization Invalid message nor to
        invalidate unicast TEKs.  Setting this object to
        sendAuthInvalid(3) causes the CMTS to invalidate the current
        CM authorization key(s), and to transmit an Authorization
        Invalid message to the CM, but not to invalidate unicast TEKs.
        Setting this object to invalidateTeks(4) causes the CMTS to
        invalidate the current CM authorization key(s), to transmit an
        Authorization Invalid message to the CM, and to invalidate all
        unicast TEKs associated with this CM authorization. Reading
        this object returns the most-recently-set value of this
        object, or returns noResetRequested(1) if the object has not
        been set since the last CMTS reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.1.2.3.4, 4.1.2.3.5, and 4.1.3.3.5."
        ::= { docsBpi2CmtsAuthEntry 9 }

   docsBpi2CmtsAuthCmInfos       OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has received an Authentication Information message from
        this CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.9."
        ::= { docsBpi2CmtsAuthEntry 10 }

   docsBpi2CmtsAuthCmRequests    OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has received an Authorization Request message from this
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.1."
        ::= { docsBpi2CmtsAuthEntry 11 }

   docsBpi2CmtsAuthCmReplies     OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an Authorization Reply message to this
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.2."
        ::= { docsBpi2CmtsAuthEntry 12 }

   docsBpi2CmtsAuthCmRejects     OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an Authorization Reject message to this
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.3."
        ::= { docsBpi2CmtsAuthEntry 13 }

   docsBpi2CmtsAuthCmInvalids    OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an Authorization Invalid message to this
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.7."
        ::= { docsBpi2CmtsAuthEntry 14 }

   docsBpi2CmtsAuthRejectErrorCode    OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       unauthorizedCm(3),
                       unauthorizedSaid(4),
                       permanentAuthorizationFailure(8),
                       timeOfDayNotAcquired(11)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated
        description of the Error-Code in most recent Authorization
        Reject message transmitted to the CM.  This has value
        unknown(2) if the last Error-Code value was 0, and none(1) if
        no Authorization Reject message has been transmitted to the
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.3 and 4.2.2.15."
        ::= { docsBpi2CmtsAuthEntry 15 }

   docsBpi2CmtsAuthRejectErrorString  OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        most recent Authorization Reject message transmitted to the
        CM.  This is a zero length string if no Authorization Reject
        message has been transmitted to the CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.3 and 4.2.2.6."
        ::= { docsBpi2CmtsAuthEntry 16 }

   docsBpi2CmtsAuthInvalidErrorCode   OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       unauthorizedCm(3),
                       unsolicited(5),
                       invalidKeySequence(6),
                       keyRequestAuthenticationFailure(7)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated
        description of the Error-Code in most recent Authorization
        Invalid message transmitted to the CM.  This has value
        unknown(2) if the last Error-Code value was 0, and none(1) if
        no Authorization Invalid message has been transmitted to the
        CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.7 and 4.2.2.15."
        ::= { docsBpi2CmtsAuthEntry 17 }

   docsBpi2CmtsAuthInvalidErrorString OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        most recent Authorization Invalid message transmitted to the
        CM.  This is a zero length string if no Authorization Invalid
        message has been transmitted to the CM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,

        Sections 4.2.1.7 and 4.2.2.6."
        ::= { docsBpi2CmtsAuthEntry 18 }

   docsBpi2CmtsAuthPrimarySAId   OBJECT-TYPE
        SYNTAX         Integer32 (0..16383)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Primary Security
        Association identifier."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 2.1.3."
        ::= { docsBpi2CmtsAuthEntry 19 }

   docsBpi2CmtsAuthBpkmCmCertValid         OBJECT-TYPE
        SYNTAX    INTEGER {
                  unknown (0),
                  validCmChained (1),
                  validCmTrusted (2),
                  invalidCmUntrusted (3),
                  invalidCAUntrusted (4),
                  invalidCmOther (5),
                  invalidCAOther (6)
                  }
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
             "Contains the reason why a CM's certificate is deemed
        valid or invalid.
             Return unknown if the CM is running BPI mode.
             ValidCmChained means the certificate is valid because
        it chains to a valid certificate.
             ValidCmTrusted means the certificate is valid because
        it has been provisioned (in the docsBpi2CmtsProvisionedCmCert
        table) to be trusted.
             InvalidCmUntrusted means the certificate is invalid
        because it has been provisioned (in the
        docsBpi2CmtsProvisionedCmCert table) to be untrusted.
             InvalidCAUntrusted means the certificate is invalid
        because   it chains to an untrusted certificate.
             InvalidCmOther and InvalidCAOther refer to errors in
        parsing, validity periods, etc, which are attributable to the
        cm certificate or its chain respectively; additional
        information may be found in docsBpi2AuthRejectErrorString for
        these types of errors."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.4.2."
        ::= { docsBpi2CmtsAuthEntry 20 }

   docsBpi2CmtsAuthBpkmCmCert    OBJECT-TYPE
        SYNTAX    X509Certificate
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
             "The X509 CM Certificate sent as part of a BPKM
        Authorization Request.
        Note: The NULL string must be returned if the entire
        certificate is not retained in the CMTS."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.2."
        ::= { docsBpi2CmtsAuthEntry 21 }

   --
   -- The CMTS TEK Table, indexed by ifIndex and SAID
   --

   docsBpi2CmtsTEKTable     OBJECT-TYPE
        SYNTAX         SEQUENCE OF    DocsBpi2CmtsTEKEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table describes the attributes of each
        Traffic Encryption Key (TEK) association. The CMTS maintains
        one TEK association per SAID on each CMTS MAC interface."
        ::= { docsBpi2CmtsObjects 3 }

   docsBpi2CmtsTEKEntry     OBJECT-TYPE
        SYNTAX         DocsBpi2CmtsTEKEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "Each entry contains objects describing attributes of
        one TEK association on a particular CMTS MAC interface. The
        CMTS MUST create one entry per SAID per MAC interface,
        based on the receipt of a Key Request message, and MUST not
        delete the entry before the CM authorization for the SAID
        permanently expires."
        INDEX     { ifIndex, docsBpi2CmtsTEKSAId }
        ::= { docsBpi2CmtsTEKTable 1 }

   DocsBpi2CmtsTEKEntry ::= SEQUENCE {
        docsBpi2CmtsTEKSAId           Integer32,
        docsBpi2CmtsTEKSAType              INTEGER,
        docsBpi2CmtsTEKDataEncryptAlg      INTEGER,
        docsBpi2CmtsTEKDataAuthentAlg      INTEGER,
        docsBpi2CmtsTEKLifetime            Integer32,
        docsBpi2CmtsTEKGraceTime      Integer32,
        docsBpi2CmtsTEKKeySequenceNumber   Integer32,
        docsBpi2CmtsTEKExpiresOld          DateAndTime,
        docsBpi2CmtsTEKExpiresNew          DateAndTime,
        docsBpi2CmtsTEKReset               TruthValue,
        docsBpi2CmtsKeyRequests            Counter32,
        docsBpi2CmtsKeyReplies             Counter32,
        docsBpi2CmtsKeyRejects             Counter32,
        docsBpi2CmtsTEKInvalids            Counter32,
        docsBpi2CmtsKeyRejectErrorCode          INTEGER,
        docsBpi2CmtsKeyRejectErrorString   SnmpAdminString,
        docsBpi2CmtsTEKInvalidErrorCode         INTEGER,
        docsBpi2CmtsTEKInvalidErrorString  SnmpAdminString
   }

   docsBpi2CmtsTEKSAId OBJECT-TYPE
        SYNTAX         Integer32 (1..16383)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "The value of this object is the DOCSIS Security
        Association ID (SAID)."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.12."
        ::= { docsBpi2CmtsTEKEntry 1 }

   docsBpi2CmtsTEKSAType    OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0),
                       primary(1),
                       static(2),
                       dynamic(3)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the type of security
        association.  Dynamic does not apply to CMs running in
        BPI mode."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 2.1.3."
        ::= { docsBpi2CmtsTEKEntry 2 }

   docsBpi2CmtsTEKDataEncryptAlg OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0),
                       des56CbcMode(1),
                       des40CbcMode(2)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the data encryption
        algorithm being utilized."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.20."
        ::= { docsBpi2CmtsTEKEntry 3 }

   docsBpi2CmtsTEKDataAuthentAlg OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the data authentication
        algorithm being utilized."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.20."
        ::= { docsBpi2CmtsTEKEntry 4 }

   docsBpi2CmtsTEKLifetime  OBJECT-TYPE
        SYNTAX         Integer32 (1..604800)
        UNITS          "seconds"
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "The value of this object is the lifetime, in
        seconds, the CMTS assigns to keys for this TEK association."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.5 and Appendix A.2."
        ::= { docsBpi2CmtsTEKEntry 5 }

   -- Note: the following object has been obsoleted

   docsBpi2CmtsTEKGraceTime OBJECT-TYPE
        SYNTAX         Integer32 (1..302399)
        UNITS          "seconds"
        MAX-ACCESS     read-only
        STATUS         obsolete
        DESCRIPTION
             "The value of this object is the grace time for
        the TEK in seconds.  The CM is expected to start trying to
        acquire a new TEK beginning TEK GraceTime seconds before
        the TEK actually expires.
        Note: The value of this object is vendor specific for
        multicast TEKs."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Appendix A.1.1.1.6."
        ::= { docsBpi2CmtsTEKEntry 6 }

   docsBpi2CmtsTEKKeySequenceNumber   OBJECT-TYPE
        SYNTAX              Integer32 (0..15)
        MAX-ACCESS          read-only
        STATUS              current
        DESCRIPTION
             "The value of this object is the most recent TEK
        key sequence number for this SAID."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.2.10 and 4.2.2.13."
        ::= { docsBpi2CmtsTEKEntry 7 }

   docsBpi2CmtsTEKExpiresOld     OBJECT-TYPE
        SYNTAX         DateAndTime
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the actual clock time
        for expiration of the immediate predecessor of the most
        recent TEK for this FSM. If this FSM has only one TEK, then
        the value is the time of activation of this FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.5 and 4.2.2.9."
        ::= { docsBpi2CmtsTEKEntry 8 }

   docsBpi2CmtsTEKExpiresNew     OBJECT-TYPE
        SYNTAX         DateAndTime
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the actual clock time
        for expiration of the most recent TEK for this FSM."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.5 and 4.2.2.9."
        ::= { docsBpi2CmtsTEKEntry 9 }

   docsBpi2CmtsTEKReset     OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
             "Setting this object to TRUE causes the CMTS to
        invalidate the current active TEK(s) (plural due to key
        transition periods), and to generate a new TEK for the
        associated SAID; the CMTS MAY also generate an unsolicited
        TEK Invalid message, to optimize the TEK synchronization
        between the CMTS and the CM. Reading this object always
        returns   FALSE."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.1.3.3.5."
        ::= { docsBpi2CmtsTEKEntry 10 }

   docsBpi2CmtsKeyRequests  OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has received a Key Request message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.4."
        ::= { docsBpi2CmtsTEKEntry 11 }

   docsBpi2CmtsKeyReplies   OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted a Key Reply message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.5."
        ::= { docsBpi2CmtsTEKEntry 12 }

   docsBpi2CmtsKeyRejects   OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted a Key Reject message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.6."
        ::= { docsBpi2CmtsTEKEntry 13 }

   docsBpi2CmtsTEKInvalids  OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted a TEK Invalid message."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.8."
        ::= { docsBpi2CmtsTEKEntry 14 }

   docsBpi2CmtsKeyRejectErrorCode     OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       unauthorizedSaid(4)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated

        description of the Error-Code in the most recent Key Reject
        message sent in response to a Key Request for this SAID.
        This has value unknown(2) if the last Error-Code value
        was 0, and none(1) if no Key Reject message has been received
        since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.6 and 4.2.2.15."
        ::= { docsBpi2CmtsTEKEntry 15 }

   docsBpi2CmtsKeyRejectErrorString   OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        the most recent Key Reject message sent in response to a Key
        Request for this SAID. This is a zero length string if no
        Key Reject message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.6 and 4.2.2.6."
        ::= { docsBpi2CmtsTEKEntry 16 }

   docsBpi2CmtsTEKInvalidErrorCode    OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       invalidKeySequence(6)
                       }
        MAX-ACCESS          read-only
        STATUS              current
        DESCRIPTION
             "The value of this object is the enumerated
        description of the Error-Code in the most recent TEK Invalid
        message sent in association with this SAID.  This has value
        unknown(2) if the last Error-Code value was 0, and none(1) if
        no TEK Invalid message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.8 and 4.2.2.15."
        ::= { docsBpi2CmtsTEKEntry 17 }

   docsBpi2CmtsTEKInvalidErrorString  OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        the most recent TEK Invalid message sent in association with
        this SAID.  This is a zero length string if no TEK Invalid
        message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.8 and 4.2.2.6."
        ::= { docsBpi2CmtsTEKEntry 18 }



   --
   -- The CMTS Multicast Objects Group
   --

   docsBpi2CmtsMulticastObjects OBJECT IDENTIFIER
        ::= { docsBpi2CmtsObjects 4 }

   --
   -- The CMTS IP Multicast Mapping Table, indexed by
   -- docsBpi2CmtsIpMulticastIndex, and by ifindex
   --

   docsBpi2CmtsIpMulticastMapTable         OBJECT-TYPE
        SYNTAX         SEQUENCE OF DocsBpi2CmtsIpMulticastMapEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table maps multicast IP addresses to SAIDs."
        ::= { docsBpi2CmtsMulticastObjects 1 }

   docsBpi2CmtsIpMulticastMapEntry         OBJECT-TYPE
        SYNTAX         DocsBpi2CmtsIpMulticastMapEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "Each entry contains objects describing the mapping of
        a set of multicast IP address and mask to one SAID, as well as
        associated message counters and error information."
        INDEX     { ifIndex, docsBpi2CmtsIpMulticastIndex }
        ::= { docsBpi2CmtsIpMulticastMapTable 1 }

   DocsBpi2CmtsIpMulticastMapEntry ::= SEQUENCE {
        docsBpi2CmtsIpMulticastIndex            Integer32,
        docsBpi2CmtsIpMulticastAddressType      InetAddressType,
        docsBpi2CmtsIpMulticastAddress               InetAddress,
        docsBpi2CmtsIpMulticastMaskType              InetAddressType,
        docsBpi2CmtsIpMulticastMask             InetAddress,
        docsBpi2CmtsIpMulticastSAId             Integer32,
        docsBpi2CmtsIpMulticastSAType           INTEGER,
        docsBpi2CmtsIpMulticastDataEncryptAlg        INTEGER,
        docsBpi2CmtsIpMulticastDataAuthentAlg        INTEGER,
        docsBpi2CmtsIpMulticastSAMapRequests         Counter32,
        docsBpi2CmtsIpMulticastSAMapReplies          Counter32,
        docsBpi2CmtsIpMulticastSAMapRejects          Counter32,
        docsBpi2CmtsIpMulticastSAMapRejectErrorCode  INTEGER,
        docsBpi2CmtsIpMulticastSAMapRejectErrorString     SnmpAdminString,
        docsBpi2CmtsIpMulticastMapControl       RowStatus
        }

   docsBpi2CmtsIpMulticastIndex       OBJECT-TYPE
        SYNTAX         Integer32 (1..10000)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "The index of this row."
        ::= { docsBpi2CmtsIpMulticastMapEntry 1 }

   docsBpi2CmtsIpMulticastAddressType OBJECT-TYPE
        SYNTAX         InetAddressType
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "The type of internet address for
        docsBpi2CmtsIpMulticastAddress."
        DEFVAL { ipv4 }
        ::= { docsBpi2CmtsIpMulticastMapEntry 2 }

   docsBpi2CmtsIpMulticastAddress          OBJECT-TYPE
        SYNTAX         InetAddress
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "This object represents the IP multicast address
        to be mapped, in conjunction with
        docsBpi2CmtsIpMulticastMask."
        ::= { docsBpi2CmtsIpMulticastMapEntry 3 }

   docsBpi2CmtsIpMulticastMaskType         OBJECT-TYPE
        SYNTAX         InetAddressType
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "The type of internet address for
        docsBpi2CmtsIpMulticastMask."
        DEFVAL { ipv4 }
        ::= { docsBpi2CmtsIpMulticastMapEntry 4 }

   docsBpi2CmtsIpMulticastMask        OBJECT-TYPE
        SYNTAX         InetAddress
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
        "This object represents the IP multicast address mask
        for this row.
        An IP multicast address matches this row if it is
        equivalent to the logical AND of
        docsBpi2CmtsIpMulticastAddr with
        docsBpi2CmtsIpMulticastMask."
        ::= { docsBpi2CmtsIpMulticastMapEntry 5 }

   docsBpi2CmtsIpMulticastSAId        OBJECT-TYPE
        SYNTAX         Integer32 (0..16383)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "This object represents the multicast SAID to be
        used in this IP multicast address mapping entry."
        ::= { docsBpi2CmtsIpMulticastMapEntry 6 }

   docsBpi2CmtsIpMulticastSAType OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0),
                       primary(1),
                       static(2),
                       dynamic(3)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "The value of this object is the type of security
        association.  Dynamic does not apply to CMs running in
        BPI mode."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 2.1.3."
        ::= { docsBpi2CmtsIpMulticastMapEntry 7 }

   docsBpi2CmtsIpMulticastDataEncryptAlg   OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0),
                       des56CbcMode(1),
                       des40CbcMode(2)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "The value of this object is the data encryption
        algorithm being utilized."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.20."
        DEFVAL { des56CbcMode }
        ::= { docsBpi2CmtsIpMulticastMapEntry 8 }

   docsBpi2CmtsIpMulticastDataAuthentAlg   OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(0)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "The value of this object is the data authentication
        algorithm being utilized."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.2.20."
        DEFVAL { none }
        ::= { docsBpi2CmtsIpMulticastMapEntry 9 }

   docsBpi2CmtsIpMulticastSAMapRequests    OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has received an SA Map Request message for this IP."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.10."
        ::= { docsBpi2CmtsIpMulticastMapEntry 10 }

   docsBpi2CmtsIpMulticastSAMapReplies     OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an SA Map Reply message for this IP."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.11."
        ::= { docsBpi2CmtsIpMulticastMapEntry 11 }

   docsBpi2CmtsIpMulticastSAMapRejects     OBJECT-TYPE
        SYNTAX         Counter32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the count of times the
        CMTS has transmitted an SA Map Reject message for this IP."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 4.2.1.12."
        ::= { docsBpi2CmtsIpMulticastMapEntry 12 }

   docsBpi2CmtsIpMulticastSAMapRejectErrorCode  OBJECT-TYPE
        SYNTAX         INTEGER {
                       none(1),
                       unknown(2),
                       noAuthForRequestedDSFlow(9),
                       dsFlowNotMappedToSA(10)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the enumerated

        description of the Error-Code in the most recent SA Map
        Reject message sent in response to a SA Map Request for this
        IP.  It has value unknown(2) if the last Error-Code value
        was 0, and none(1) if no SA MAP Reject message has been
        received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.12 and 4.2.2.15."
        ::= { docsBpi2CmtsIpMulticastMapEntry 13 }

   docsBpi2CmtsIpMulticastSAMapRejectErrorString     OBJECT-TYPE
        SYNTAX         SnmpAdminString (SIZE (0..128))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The value of this object is the Display-String in
        the most recent SA Map Reject message sent in response to an
        SA Map Request for this IP.  It is a zero length string if
        no SA Map Reject message has been received since reboot."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Sections 4.2.1.12 and 4.2.2.6."
        ::= { docsBpi2CmtsIpMulticastMapEntry 14 }

   docsBpi2CmtsIpMulticastMapControl  OBJECT-TYPE
        SYNTAX         RowStatus
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "This object controls and reflects the IP multicast
        address mapping entry.  There is no restriction on the ability
        to change values in this row while the row is active.
        Inactive rows need not be timed out."
        ::= { docsBpi2CmtsIpMulticastMapEntry 15 }


   --
   -- The CMTS Multicast SAID Authorization Table, indexed by ifIndex by
   -- multicast SAID by CM MAC address
   --

   docsBpi2CmtsMulticastAuthTable          OBJECT-TYPE
        SYNTAX         SEQUENCE OF DocsBpi2CmtsMulticastAuthEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This table describes the multicast SAID
        authorization for each CM on each CMTS MAC interface."
        ::= { docsBpi2CmtsMulticastObjects 2 }

   docsBpi2CmtsMulticastAuthEntry          OBJECT-TYPE
        SYNTAX         DocsBpi2CmtsMulticastAuthEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "Each entry contains objects describing the key
        authorization of one cable modem for one multicast SAID
        for one CMTS MAC interface."
        INDEX     { ifIndex, docsBpi2CmtsMulticastAuthSAId,
               docsBpi2CmtsMulticastAuthCmMacAddress }
        ::= { docsBpi2CmtsMulticastAuthTable 1 }

   DocsBpi2CmtsMulticastAuthEntry ::= SEQUENCE
        {
        docsBpi2CmtsMulticastAuthSAId           Integer32,
        docsBpi2CmtsMulticastAuthCmMacAddress        MacAddress,
        docsBpi2CmtsMulticastAuthControl        RowStatus
        }

   docsBpi2CmtsMulticastAuthSAId OBJECT-TYPE
        SYNTAX         Integer32 (1..16383)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This object represents the multicast SAID for
        authorization."
        ::= { docsBpi2CmtsMulticastAuthEntry 1 }

   docsBpi2CmtsMulticastAuthCmMacAddress   OBJECT-TYPE
        SYNTAX         MacAddress
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "This object represents the MAC address of the CM
        to which the multicast SAID authorization applies."
        ::= { docsBpi2CmtsMulticastAuthEntry 2 }

   docsBpi2CmtsMulticastAuthControl   OBJECT-TYPE
        SYNTAX         RowStatus
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION
             "This object controls and reflects the CM
        authorization for each multicast SAID.  There is no
        restriction on the ability to change values in this row
        while the row is active.  Inactive rows need not be
        timed out."
        ::= { docsBpi2CmtsMulticastAuthEntry 3 }


   --
   -- CMTS Cert Objects
   --

   docsBpi2CmtsCertObjects OBJECT IDENTIFIER
        ::= { docsBpi2CmtsObjects 5 }

   --
   -- CMTS Provisioned CM Cert Table
   --

   docsBpi2CmtsProvisionedCmCertTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF DocsBpi2CmtsProvisionedCmCertEntry
        MAX-ACCESS     not-accessible
        STATUS    current
        DESCRIPTION
             "A table of CM certificate trust entries provisioned
        to the CMTS.  The trust object for a certificate in this table
        has an overriding effect on the validity object of a
        certificate in the authorization table, as long as the
        entire contents of the two certificates are identical."
        ::= { docsBpi2CmtsCertObjects 1 }

   docsBpi2CmtsProvisionedCmCertEntry OBJECT-TYPE
        SYNTAX    DocsBpi2CmtsProvisionedCmCertEntry
        MAX-ACCESS     not-accessible
        STATUS    current
        DESCRIPTION
             "An entry in the CMTS' provisioned CM certificate
        table."
        INDEX { docsBpi2CmtsProvisionedCmCertMacAddress }
        ::= { docsBpi2CmtsProvisionedCmCertTable 1 }

   DocsBpi2CmtsProvisionedCmCertEntry ::= SEQUENCE
        {
        docsBpi2CmtsProvisionedCmCertMacAddress MacAddress,
        docsBpi2CmtsProvisionedCmCertTrust INTEGER,
        docsBpi2CmtsProvisionedCmCertSource     INTEGER,
        docsBpi2CmtsProvisionedCmCertStatus     RowStatus,
        docsBpi2CmtsProvisionedCmCert      X509Certificate
        }

   docsBpi2CmtsProvisionedCmCertMacAddress OBJECT-TYPE
        SYNTAX         MacAddress
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
             "The index of this row."
        ::= { docsBpi2CmtsProvisionedCmCertEntry 1 }

   docsBpi2CmtsProvisionedCmCertTrust      OBJECT-TYPE
        SYNTAX    INTEGER {
                  trusted (1),
                  untrusted (2)
                  }
        MAX-ACCESS     read-create
        STATUS    current
        DESCRIPTION
             "Trust state for the provisioned CM certificate entry.
        Note: Setting this object need only override the validity of
        CM certificates sent in future authorization requests;
        instantaneous effect need not occur."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.4.1."
        DEFVAL { untrusted }
        ::= { docsBpi2CmtsProvisionedCmCertEntry 2 }

   docsBpi2CmtsProvisionedCmCertSource     OBJECT-TYPE
        SYNTAX    INTEGER {
                  snmp (1),
                  configurationFile (2),
                  externalDatabase (3),
                  other (4)
                  }
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
             "This object indicates how the certificate reached the
        CMTS.  Other means it originated from a source not identified
        above."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.4.1."
        ::= { docsBpi2CmtsProvisionedCmCertEntry 3 }

   docsBpi2CmtsProvisionedCmCertStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
        "    Standard RowStatus object except:
        a) if a row has ever been activated,
        a set to docsBpi2CmtsProvisionedCmCert need not succeed,
        b) inactive rows need not be timed out."
        ::= { docsBpi2CmtsProvisionedCmCertEntry 4 }

   docsBpi2CmtsProvisionedCmCert OBJECT-TYPE
        SYNTAX    X509Certificate
        MAX-ACCESS     read-create
        STATUS    current
        DESCRIPTION
             "An X509 DER-encoded certificate authority
        certificate.
        Note: The NULL string must be returned, on reads, if the
        entire certificate is not retained in the CMTS."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.2."
        ::= { docsBpi2CmtsProvisionedCmCertEntry 5 }


   --
   -- CMTS CA Cert Table
   --

   docsBpi2CmtsCACertTable OBJECT-TYPE
        SYNTAX    SEQUENCE OF DocsBpi2CmtsCACertEntry
        MAX-ACCESS     not-accessible
        STATUS    current
        DESCRIPTION
             "The table of known certificate authority certificates
        acquired by this device."
        ::= { docsBpi2CmtsCertObjects 2 }

   docsBpi2CmtsCACertEntry OBJECT-TYPE
        SYNTAX    DocsBpi2CmtsCACertEntry
        MAX-ACCESS     not-accessible
        STATUS    current
        DESCRIPTION
             "A row in the Certificate Authority certificate
        table."
        INDEX   { docsBpi2CmtsCACertIndex }
        ::= {docsBpi2CmtsCACertTable 1 }

   DocsBpi2CmtsCACertEntry ::= SEQUENCE {
        docsBpi2CmtsCACertIndex       Integer32,
        docsBpi2CmtsCACertSubject     SnmpAdminString,
        docsBpi2CmtsCACertIssuer      SnmpAdminString,
        docsBpi2CmtsCACertSerialNumber     OCTET STRING,
        docsBpi2CmtsCACertTrust       INTEGER,
        docsBpi2CmtsCACertSource INTEGER,
        docsBpi2CmtsCACertStatus RowStatus,
        docsBpi2CmtsCACert       X509Certificate,
        docsBpi2CmtsCACertThumbprint    OCTET STRING
   }

   docsBpi2CmtsCACertIndex OBJECT-TYPE
        SYNTAX    Integer32 (1..10000)
        MAX-ACCESS     not-accessible
        STATUS    current
        DESCRIPTION
             "The index for this row."
        ::= { docsBpi2CmtsCACertEntry 1 }

   docsBpi2CmtsCACertSubject OBJECT-TYPE
        SYNTAX         SnmpAdminString
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The subject name exactly as it is encoded in the
        X509 certificate.
        The organizationName portion of the certificate's subject
        name must be present.  All other fields are optional.  Any
        optional field present must be prepended with CR (carriage
        return) LF (line feed) ASCII characters.
        Ordering of fields present must conform to:

        organizationName
        CR LF
        countryName
        CR LF
        stateOrProvinceName
        CR LF
        localityName
        CR LF
        organizationalUnitName
        CR LF
        organizationalUnitName=<Manufacturing Location>
        CR LF
        commonName
        "
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.2.4"
        ::= { docsBpi2CmtsCACertEntry 2 }

   docsBpi2CmtsCACertIssuer OBJECT-TYPE
        SYNTAX         SnmpAdminString
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The issuer name exactly as it is encoded in the
        X509 certificate.
        The commonName portion of the certificate's issuer
        name must be present.  All other fields are optional.  Any
        optional field present must be prepended with CR (carriage
        return) LF (line feed) ASCII characters.
        Ordering of fields present must conform to:

        commonName
        CR LF
        countryName
        CR LF
        stateOrProvinceName
        CR LF
        localityName
        CR LF
        organizationName
        CR LF
        organizationalUnitName
        CR LF
        organizationalUnitName=<Manufacturing Location>
        "
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.2.4"
        ::= { docsBpi2CmtsCACertEntry 3 }

   docsBpi2CmtsCACertSerialNumber OBJECT-TYPE
        SYNTAX         OCTET STRING (SIZE (1..32))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "This CA certificate's serial number represented as
        an octet string."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.2.2"
        ::= { docsBpi2CmtsCACertEntry 4 }

   docsBpi2CmtsCACertTrust OBJECT-TYPE
        SYNTAX    INTEGER {
                  trusted (1),
                  untrusted (2),
                  chained (3),
                  root (4)
                  }
        MAX-ACCESS     read-create
        STATUS    current
        DESCRIPTION
             "This object controls the trust status of this
        certificate.  Root certificates must be given root trust;
        manufacturer certificates must not be given root trust.
        Trust on root certificates must not change.
        Note: Setting this object need only affect the validity of
        CM certificates sent in future authorization requests;
        instantaneous effect need not occur."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.4.1"
        DEFVAL { chained }
        ::= { docsBpi2CmtsCACertEntry 5 }

   docsBpi2CmtsCACertSource OBJECT-TYPE
        SYNTAX    INTEGER {
                  snmp (1),
                  configurationFile (2),
                  externalDatabase (3),
                  other (4),
                  authentInfo (5),
                  compiledIntoCode (6)
                  }
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
             "This object indicates how the certificate reached
        the CMTS.  Other means it originated from a source not
        identified above."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.4.1"
        ::= { docsBpi2CmtsCACertEntry 6 }

   docsBpi2CmtsCACertStatus OBJECT-TYPE
        SYNTAX    RowStatus
        MAX-ACCESS     read-create
        STATUS    current
        DESCRIPTION
        "    Standard RowStatus objects except:
        a) if a row has ever been activated,
        a set to docsBpi2CmtsCACert need not succeed,
        b) inactive rows need not be timed out,
        c) if a row has ever been activated, a destroy setting need
        not succeed."
        ::= { docsBpi2CmtsCACertEntry 7 }

   docsBpi2CmtsCACert  OBJECT-TYPE
        SYNTAX    X509Certificate
        MAX-ACCESS     read-create
        STATUS    current
        DESCRIPTION
             "An X509 DER-encoded certificate authority
        certificate.
        To help identify certificates, either this object or
        docsBpi2CmtsCACertThumbprint must be returned by a CMTS for
        self-signed CA certificates.

        Note: The NULL string must be returned, on reads, if the
        entire certificate is not retained in the CMTS."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.2."
        ::= { docsBpi2CmtsCACertEntry 8 }

   docsBpi2CmtsCACertThumbprint OBJECT-TYPE
        SYNTAX         OCTET STRING (SIZE (20))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
             "The SHA-1 hash of a CA certificate.
        To help identify certificates, either this object or
        docsBpi2CmtsCACert must be returned by a CMTS for
        self-signed CA certificates.

        Note: The NULL string must be returned if this object is
        not supported by the CMTS."
        REFERENCE
             "DOCSIS Baseline Privacy Plus Interface Specification,
        Section 9.4.3"
        ::= { docsBpi2CmtsCACertEntry 9 }


   --
   -- Authenticated Software Download Objects
   --

   --
   -- Note: the authenticated software download objects are a
   -- CM requirement only.
   --

   docsBpi2CodeDownloadControl OBJECT IDENTIFIER
        ::= { docsBpi2MIBObjects 4 }

   docsBpi2CodeDownloadStatusCode     OBJECT-TYPE
        SYNTAX    INTEGER {
             configFileCvcVerified (1),
             configFileCvcRejected (2),
             snmpCvcVerified (3),
             snmpCvcRejected (4),
             codeFileVerified (5),
             codeFileRejected (6),
             other (7)
        }
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
            "The value indicates the result of the latest config
        file CVC verification, SNMP CVC verification, or code file
        verification."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section D.3.3.2 & D.3.5.1."
        ::= { docsBpi2CodeDownloadControl 1 }

   docsBpi2CodeDownloadStatusString   OBJECT-TYPE
        SYNTAX    SnmpAdminString
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
            "The value of this object indicates the additional
        information to the status code.  The value will include
        the error code and error description which will be defined
        separately."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section TBD (see D.3.7)"
        ::= { docsBpi2CodeDownloadControl 2 }

   docsBpi2CodeMfgOrgName   OBJECT-TYPE
        SYNTAX    SnmpAdminString
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
            "The value of this object is the device manufacturer's
        organizationName."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section D.3.2.2."
        ::= { docsBpi2CodeDownloadControl 3 }

   docsBpi2CodeMfgCodeAccessStart     OBJECT-TYPE
        SYNTAX    DateAndTime
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
            "The value of this object is the device manufacturer's
        current codeAccessStart value referenced to Greenwich Mean
        Time (GMT)."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section D.3.2.2."
        ::= { docsBpi2CodeDownloadControl 4 }

   docsBpi2CodeMfgCvcAccessStart OBJECT-TYPE
        SYNTAX    DateAndTime
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
            "The value of this object is the device manufacturer's
        current cvcAccessStart value referenced to Greenwich Mean
        Time (GMT)."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section D.3.2.2."
        ::= { docsBpi2CodeDownloadControl 5 }

   docsBpi2CodeCoSignerOrgName   OBJECT-TYPE
        SYNTAX    SnmpAdminString
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
            "The value of this object is the Co-Signer's
        organizationName.  The value is a zero length string if
        the co-signer is not specified."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section D.3.2.2."
        ::= { docsBpi2CodeDownloadControl 6 }

   docsBpi2CodeCoSignerCodeAccessStart     OBJECT-TYPE
        SYNTAX    DateAndTime
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
            "The value of this object is the Co-Signer's current
        codeAccessStart value referenced to Greenwich Mean
        Time (GMT).  If docsBpi2CodeCoSignerOrgName is a zero
        length string, the value of this object is meaningless."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section D.3.2.2."
        ::= { docsBpi2CodeDownloadControl 7 }

   docsBpi2CodeCoSignerCvcAccessStart OBJECT-TYPE
        SYNTAX    DateAndTime
        MAX-ACCESS     read-only
        STATUS    current
        DESCRIPTION
            "The value of this object is the Co-Signer's current
        cvcAccessStart value referenced to Greenwich Mean
        Time (GMT).  If docsBpi2CodeCoSignerOrgName is a zero
        length string, the value of this object is meaningless."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section D.3.2.2."
        ::= { docsBpi2CodeDownloadControl 8 }

   docsBpi2CodeCvcUpdate    OBJECT-TYPE
        SYNTAX    X509Certificate
        MAX-ACCESS     read-write
        STATUS    current
        DESCRIPTION
            "Setting a CVC to this object triggers the device
        to verify the CVC and update the cvcAccessStart value.
        If the device is not enabled to upgrade codefiles, or
        the CVC verification fails, the CVC will be rejected.
        Reading this object always returns the null string."
        REFERENCE
            "DOCSIS Baseline Privacy Plus Interface Specification,
        Section D.3.3.2.2."
        ::= { docsBpi2CodeDownloadControl 9 }



   --
   -- The BPI+ MIB Conformance Statements (with a placeholder for
   -- notifications)
   --

   docsBpi2Notification     OBJECT IDENTIFIER
        ::= { docsBpi2MIB 2 }
   docsBpi2Conformance OBJECT IDENTIFIER
        ::= { docsBpi2MIB 3 }
   docsBpi2Compliances OBJECT IDENTIFIER
        ::= { docsBpi2Conformance 1 }
   docsBpi2Groups      OBJECT IDENTIFIER
        ::= { docsBpi2Conformance 2 }

   docsBpi2BasicCompliance MODULE-COMPLIANCE
        STATUS         current
        DESCRIPTION
             "This is the compliance statement for devices which

        implement the DOCSIS Baseline Privacy Interface."

        MODULE  -- docsBpi2MIB

   -- conditionally mandatory group
   GROUP     docsBpi2CmGroup
        DESCRIPTION
        "This group is implemented only in CMs, not in CMTSs."

   -- conditionally mandatory group
   GROUP     docsBpi2CmtsGroup
        DESCRIPTION
        "This group is implemented only in CMTSs, not in CMs."

   -- conditionally mandatory group
   GROUP     docsBpi2CodeDownloadGroup
        DESCRIPTION
        "This group is required in CMs and is optional in CMTSs."

   -- relaxation on mandatory range
   OBJECT    docsBpi2CmtsDefaultAuthLifetime
        SYNTAX    Integer32 (86400..6048000)
        DESCRIPTION
        "The refined range corresponds to the minimum and maximum
        values in operational networks, according to Appendix A.2 in
        [7]."

   -- relaxation on mandatory range
   OBJECT    docsBpi2CmtsDefaultTEKLifetime
        SYNTAX    Integer32 (1800..604800)
        DESCRIPTION
        "The refined range corresponds to the minimum and maximum
        values in operational networks, according to Appendix A.2 in
        [7]."

   -- relaxation on mandatory range
   OBJECT    docsBpi2CmtsAuthCmLifetime
        SYNTAX    Integer32 (86400..6048000)
        DESCRIPTION
        "The refined range corresponds to the minimum and maximum
        values in operational networks, according to Appendix A.2 in
        [7]."

   -- relaxation on mandatory range
   OBJECT    docsBpi2CmtsTEKLifetime
        SYNTAX    Integer32 (1800..604800)
        DESCRIPTION
        "The refined range corresponds to the minimum and maximum
        values in operational networks, according to Appendix A.2 in
        [7]."

   -- relaxation on IP addressing
   OBJECT    docsBpi2CmIpMulticastAddressType
          -- SYNTAX InetAddressType { ipv4(1) }
          DESCRIPTION
          "An implementation is only required to support IPv4
           addresses."

   -- relaxation on IP addressing
   OBJECT    docsBpi2CmIpMulticastAddress
          SYNTAX  InetAddress (SIZE(4))
          DESCRIPTION
          "An implementation is only required to support IPv4
           addresses."

   -- relaxation on IP addressing
   OBJECT    docsBpi2CmtsIpMulticastAddressType
          -- SYNTAX InetAddressType { ipv4(1) }
          DESCRIPTION
          "An implementation is only required to support IPv4
           addresses."

   -- relaxation on IP addressing
   OBJECT    docsBpi2CmtsIpMulticastAddress
          SYNTAX  InetAddress (SIZE(4))
          DESCRIPTION
          "An implementation is only required to support IPv4
           addresses."

   -- relaxation on IP addressing
   OBJECT    docsBpi2CmtsIpMulticastMaskType
          -- SYNTAX InetAddressType { ipv4(1) }
          DESCRIPTION
          "An implementation is only required to support IPv4
           addresses."

   -- relaxation on IP addressing
   OBJECT    docsBpi2CmtsIpMulticastMask
          SYNTAX  InetAddress (SIZE(4))
          DESCRIPTION
          "An implementation is only required to support IPv4
           addresses."

   ::= { docsBpi2Compliances 1 }

   docsBpi2CmGroup     OBJECT-GROUP
        OBJECTS   {
             docsBpi2CmPrivacyEnable,
             docsBpi2CmPublicKey,
             docsBpi2CmAuthState,
             docsBpi2CmAuthKeySequenceNumber,
             docsBpi2CmAuthExpiresOld,
             docsBpi2CmAuthExpiresNew,
             docsBpi2CmAuthReset,
             docsBpi2CmAuthGraceTime,
             docsBpi2CmTEKGraceTime,
             docsBpi2CmAuthWaitTimeout,
             docsBpi2CmReauthWaitTimeout,
             docsBpi2CmOpWaitTimeout,
             docsBpi2CmRekeyWaitTimeout,
             docsBpi2CmAuthRejectWaitTimeout,
             docsBpi2CmSAMapWaitTimeout,
             docsBpi2CmSAMapMaxRetries,
             docsBpi2CmAuthentInfos,
             docsBpi2CmAuthRequests,
             docsBpi2CmAuthReplies,
             docsBpi2CmAuthRejects,
             docsBpi2CmAuthInvalids,
             docsBpi2CmAuthRejectErrorCode,
             docsBpi2CmAuthRejectErrorString,
             docsBpi2CmAuthInvalidErrorCode,
             docsBpi2CmAuthInvalidErrorString,
             docsBpi2CmTEKSAType,
             docsBpi2CmTEKDataEncryptAlg,
             docsBpi2CmTEKDataAuthentAlg,
             docsBpi2CmTEKState,
             docsBpi2CmTEKKeySequenceNumber,
             docsBpi2CmTEKExpiresOld,
             docsBpi2CmTEKExpiresNew,
             docsBpi2CmTEKKeyRequests,
             docsBpi2CmTEKKeyReplies,
             docsBpi2CmTEKKeyRejects,
             docsBpi2CmTEKInvalids,
             docsBpi2CmTEKAuthPends,
             docsBpi2CmTEKKeyRejectErrorCode,
             docsBpi2CmTEKKeyRejectErrorString,
             docsBpi2CmTEKInvalidErrorCode,
             docsBpi2CmTEKInvalidErrorString,
             docsBpi2CmIpMulticastAddressType,
             docsBpi2CmIpMulticastAddress,
             docsBpi2CmIpMulticastSAId,
             docsBpi2CmIpMulticastSAMapState,
             docsBpi2CmIpMulticastSAMapRequests,
             docsBpi2CmIpMulticastSAMapReplies,
             docsBpi2CmIpMulticastSAMapRejects,
             docsBpi2CmIpMulticastSAMapRejectErrorCode,
             docsBpi2CmIpMulticastSAMapRejectErrorString,
             docsBpi2CmDeviceCmCert,
             docsBpi2CmDeviceManufCert,
             docsBpi2CmCryptoSuiteDataEncryptAlg,
             docsBpi2CmCryptoSuiteDataAuthentAlg
             }
        STATUS         current
        DESCRIPTION
        "This collection of objects provides CM BPI+ status and
        control."
   ::= { docsBpi2Groups 1 }

   docsBpi2CmtsGroup   OBJECT-GROUP
        OBJECTS {
             docsBpi2CmtsDefaultAuthLifetime,
             docsBpi2CmtsDefaultTEKLifetime,
             docsBpi2CmtsDefaultSelfSignedManufCertTrust,
             docsBpi2CmtsCheckCertValidityPeriods,
             docsBpi2CmtsAuthentInfos,
             docsBpi2CmtsAuthRequests,
             docsBpi2CmtsAuthReplies,
             docsBpi2CmtsAuthRejects,
             docsBpi2CmtsAuthInvalids,
             docsBpi2CmtsSAMapRequests,
             docsBpi2CmtsSAMapReplies,
             docsBpi2CmtsSAMapRejects,
             docsBpi2CmtsAuthCmBpiVersion,
             docsBpi2CmtsAuthCmPublicKey,
             docsBpi2CmtsAuthCmKeySequenceNumber,
             docsBpi2CmtsAuthCmExpiresOld,
             docsBpi2CmtsAuthCmExpiresNew,
             docsBpi2CmtsAuthCmLifetime,
             docsBpi2CmtsAuthCmReset,
             docsBpi2CmtsAuthCmInfos,
             docsBpi2CmtsAuthCmRequests,
             docsBpi2CmtsAuthCmReplies,
             docsBpi2CmtsAuthCmRejects,
             docsBpi2CmtsAuthCmInvalids,
             docsBpi2CmtsAuthRejectErrorCode,
             docsBpi2CmtsAuthRejectErrorString,
             docsBpi2CmtsAuthInvalidErrorCode,
             docsBpi2CmtsAuthInvalidErrorString,
             docsBpi2CmtsAuthPrimarySAId,
             docsBpi2CmtsAuthBpkmCmCertValid,
             docsBpi2CmtsAuthBpkmCmCert,
             docsBpi2CmtsTEKSAType,
             docsBpi2CmtsTEKDataEncryptAlg,
             docsBpi2CmtsTEKDataAuthentAlg,
             docsBpi2CmtsTEKLifetime,
             docsBpi2CmtsTEKKeySequenceNumber,
             docsBpi2CmtsTEKExpiresOld,
             docsBpi2CmtsTEKExpiresNew,
             docsBpi2CmtsTEKReset,
             docsBpi2CmtsKeyRequests,
             docsBpi2CmtsKeyReplies,
             docsBpi2CmtsKeyRejects,
             docsBpi2CmtsTEKInvalids,
             docsBpi2CmtsKeyRejectErrorCode,
             docsBpi2CmtsKeyRejectErrorString,
             docsBpi2CmtsTEKInvalidErrorCode,
             docsBpi2CmtsTEKInvalidErrorString,
             docsBpi2CmtsIpMulticastAddressType,
             docsBpi2CmtsIpMulticastAddress,
             docsBpi2CmtsIpMulticastMaskType,
             docsBpi2CmtsIpMulticastMask,
             docsBpi2CmtsIpMulticastSAId,
             docsBpi2CmtsIpMulticastSAType,
             docsBpi2CmtsIpMulticastDataEncryptAlg,
             docsBpi2CmtsIpMulticastDataAuthentAlg,
             docsBpi2CmtsIpMulticastSAMapRequests,
             docsBpi2CmtsIpMulticastSAMapReplies,
             docsBpi2CmtsIpMulticastSAMapRejects,
             docsBpi2CmtsIpMulticastSAMapRejectErrorCode,
             docsBpi2CmtsIpMulticastSAMapRejectErrorString,
             docsBpi2CmtsIpMulticastMapControl,
             docsBpi2CmtsMulticastAuthControl,
             docsBpi2CmtsProvisionedCmCertTrust,
             docsBpi2CmtsProvisionedCmCertSource,
             docsBpi2CmtsProvisionedCmCertStatus,
             docsBpi2CmtsProvisionedCmCert,
             docsBpi2CmtsCACertSubject,
             docsBpi2CmtsCACertIssuer,
             docsBpi2CmtsCACertSerialNumber,
             docsBpi2CmtsCACertTrust,
             docsBpi2CmtsCACertSource,
             docsBpi2CmtsCACertStatus,
             docsBpi2CmtsCACert,
             docsBpi2CmtsCACertThumbprint
             }
        STATUS         current
        DESCRIPTION
        "This collection of objects provides CMTS BPI+ status and
        control."
   ::= { docsBpi2Groups 2 }

   docsBpi2CodeDownloadGroup OBJECT-GROUP
           OBJECTS {
             docsBpi2CodeDownloadStatusCode,
             docsBpi2CodeDownloadStatusString,
             docsBpi2CodeMfgOrgName,
             docsBpi2CodeMfgCodeAccessStart,
             docsBpi2CodeMfgCvcAccessStart,
             docsBpi2CodeCoSignerOrgName,
             docsBpi2CodeCoSignerCodeAccessStart,
             docsBpi2CodeCoSignerCvcAccessStart,
             docsBpi2CodeCvcUpdate
             }
        STATUS         current
        DESCRIPTION
        "This collection of objects provide authenticated software
        download support."
   ::= { docsBpi2Groups 3 }

   docsBpi2ObsoleteObjectsGroup  OBJECT-GROUP
        OBJECTS {
             docsBpi2CmtsAuthCmGraceTime,
             docsBpi2CmtsTEKGraceTime
             }
        STATUS         obsolete
        DESCRIPTION
        "This is a collection of obsolete BPI+ objects."
   ::= { docsBpi2Groups 4 }

   END
