DOCS-PNM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Unsigned32
             FROM SNMPv2-SMI         -- RFC 2578
    TEXTUAL-CONVENTION,
    TruthValue,
    MacAddress
             FROM SNMPv2-TC          -- RFC 2579
    OBJECT-GROUP,
    MODULE-COMPLIANCE
             FROM SNMPv2-CONF        -- RFC 2580
    SnmpAdminString
             FROM SNMP-FRAMEWORK-MIB -- RFC 3411
    ifIndex
             FROM IF-MIB             -- RFC 2863
    docsIf3CmSpectrumAnalysisCtrlCmd
             FROM DOCS-IF3-MIB
    InetAddressType,
    InetAddress
             FROM INET-ADDRESS-MIB   -- RFC 4001
    TenthdB
             FROM DOCS-IF-MIB        -- RFC 4546
    DsOfdmModulationType
             FROM DOCS-IF31-MIB
    clabProjDocsis
             FROM CLAB-DEF-MIB;


docsPnmMIB MODULE-IDENTITY
    LAST-UPDATED    "201511040000Z" -- November 4, 2015
    ORGANIZATION    "Cable Television Laboratories, Inc."
    CONTACT-INFO
        "
        Postal: Cable Television Laboratories, Inc.
        858 Coal Creek Circle
        Louisville, Colorado 80027-9750
        U.S.A.
        Phone: +1 303-661-9100
        Fax:   +1 303-661-9199
        E-mail: mibs@cablelabs.com"
    DESCRIPTION
       "This MIB module contains management objects for the
       management of DOCSIS 3.1 Proactive Network Maintenance.
       Copyright 2015 Cable Television Laboratories, Inc.
       All rights reserved."
    REVISION "201511040000Z" -- November 4, 2015
    DESCRIPTION
       "Updated per CM-OSSIv3.1-N-1386-1, which rolls up changes from the following ECNs;
       CCAP-OSSIv3.1-N-15.1343-2: Update default file names for PNM test generated
       files to replace use of CCAP MAC Address(not unique), with any unique CCAP
       identifier. Also added requirement to insert a row in PNM tables for each
       ifIndex.
       CM-OSSIv3.1-N-15.1351-2: Add Capture Time, CM MAC Address to all file headers
       CM-OSSIv3.1-N-15.1365-1: Clarify fixed point usage for complexData Type "
    REVISION "201505200000Z" -- May 20, 2015
    DESCRIPTION
       "Updates per ECN CM-OSSIv3.1-N-15.1310-2 to synchronize with
       CM-SP-CM-OSSIv3.1-I04 and
       CM-SP-CCAP-OSSIv3.1-I04"
    REVISION "201504210000Z" -- April 21, 2015
    DESCRIPTION
       "Initial version, per ECN CM-OSSIv3.1-N-14.1221-6."
    ::= {  clabProjDocsis 27 }

-- ---------------------------------------------------------------------
-- Textual Conventions
-- ---------------------------------------------------------------------
MeasStatusType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "This data type is used to determine the state of a measurement.
       The enumerated values associated with MeasStatusType are:
        'other'
           Indicates any state not described below.
       'inactive'
           Indicates that a test is not started or in progress.
       'busy'
           Indicates that a test has been started and is in progress.
       'sampleReady'
           Indicates that a test has completed and that the measurement
           data is ready.
       'error'
           Indicates that there was an error starting or during the test and
           any test data, if available, may not be valid.
       'resourceUnavailable'
           Indicates that the test could not be started due to lack of test
           platform resources.
       'sampleTruncated'
           Indicates that the size of the requested data exceeded file size
           supported.
        "
    REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
        Specification CM-SP-CM-OSSIv3.1, PNM section."
    SYNTAX      INTEGER {other(1),
                         inactive(2),
                         busy(3),
                         sampleReady(4),
                         error(5),
                         resourceUnavailable(6),
                         sampleTruncated(7)
                        }

UsOfdmaWindowingSizeType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
       "This data type is defined to specify the eight possible values for the
       upstream windowing roll-off period samples. The Roll-Off Period Samples
       (NRP) are given in number of samples using the sample rate of 102.4
       Msamples/s. Reference: PHYv3.1] Table 7-5 - Roll-Off Period (RP) Values "
    REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
        Specification CM-SP-CM-OSSIv3.1, PNM section."
    SYNTAX      Unsigned32 (0 | 32 | 64 | 96 | 128 | 160 | 192 | 224)




-- Administrative assignments
docsPnmNotifications   OBJECT IDENTIFIER ::= { docsPnmMIB 0 }
docsPnmMibObjects      OBJECT IDENTIFIER ::= { docsPnmMIB 1 }
docsPnmMibConformance  OBJECT IDENTIFIER ::= { docsPnmMIB 2 }

docsPnmMibCompliances  OBJECT IDENTIFIER ::= { docsPnmMibConformance 1 }
docsPnmMibGroups       OBJECT IDENTIFIER ::= { docsPnmMibConformance 2 }

-- No Notifications are defined for this MIB

docsPnmBulkData      OBJECT IDENTIFIER ::= { docsPnmMibObjects 1 }
docsPnmCmObjects     OBJECT IDENTIFIER ::= { docsPnmMibObjects 2 }
docsPnmCmtsObjects   OBJECT IDENTIFIER ::= { docsPnmMibObjects 3 }


-- ---------------------------------------------------------------------
-- Bulk Data
-- ---------------------------------------------------------------------
docsPnmBulkCtl       OBJECT IDENTIFIER ::= { docsPnmBulkData 1 }


docsPnmBulkDestIpAddrType  OBJECT-TYPE
   SYNTAX      InetAddressType
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      "This object represents the IP address type of the 'docsPnmBulkDestIpAddr'
      object. This value is of type InetAddressType which is defined by RFC4001.

      Allowed values for this object are: 'unknown', 'ipv4', 'ipv6'.

      A successful connection depends on the value of this attribute being set
      to an IP Family supported by the device. For example, if this value is set
      to IPv6 and the device is operating in an IPv4-only mode, a successful
      upload will not be possible. In this case the 'docsPnmBulkFileUploadStatus'
      object would reflect the error. The CM must NOT allow the value of
      docsPnmBulkDestIpAddrType to change if the value of PnmCmCtlStatus is any
      value other than 'ready'. "
   DEFVAL { unknown }
   ::= { docsPnmBulkCtl 1 }

docsPnmBulkDestIpAddr  OBJECT-TYPE
   SYNTAX      InetAddress
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      "This object represents the IP address of the server to which the
      bulk data file is to be sent. This attribute is further defined by
      the 'docsPnmBulkDestIpAddrType' object. The CM must NOT allow the
      value of docsPnmBulkDestIpAddr to change if the value of PnmCmCtlStatus
      is any value other than 'ready'.  "
   REFERENCE
      "DOCSIS 3.1 Cable Modem Operations Support System Interface
      Specification CM-SP-CM-OSSIv3.1, Bulk Data section. "
   DEFVAL { "" }
   ::= { docsPnmBulkCtl 2 }

docsPnmBulkDestPath  OBJECT-TYPE
   SYNTAX      SnmpAdminString
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      "This object represents the path, excluding the filename, at the server
      to which the captured data file is to be sent. The CM must NOT allow the
      value of docsPnmBulkDestPath to change if the value of PnmCmCtlStatus
      is any value other than 'ready'. By default, the value of this object is
      an empty string. If used, this value must include all expected delimiters.
      The following examples, are valid values:
                   /Directory1/directory2/
                   /pnm/
      "
   REFERENCE
      "DOCSIS 3.1 Cable Modem Operations Support System Interface
       Specification CM-SP-CM-OSSIv3.1, Bulk Data section. "
   DEFVAL { "" }
   ::= { docsPnmBulkCtl 3 }

docsPnmBulkUploadControl  OBJECT-TYPE
   SYNTAX      INTEGER {other(1),
                        noAutoUpload(2),
                        autoUpload(3)
                       }
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      " This attribute controls the action taken by the device when a new bulk
      data file is generated. The possible values are defined below.

          noAutoUpload - Bulk Data files are not automatically uploaded by the
          device. All bulk data files are available to be uploaded, on demand,
          by manipulating the FileControl attribute in the BulkDataFile object
          for that file's row instance.

          autoUpload - When this option is selected, the device must
          automatically uploaded bulk data files as they become available. A
          file becomes available when a file-generation application completes
          the file and creates a row in the BulkDataFileTable. If this value is
          set, the bulk data file is automatically uploaded to the parameters
          defined by the DestIpAddr, DestIpAddrType, and DestPath. If the upload
          fails or additional uploads are desired, the file can be re-uploaded
          by manipulating the FileControl attribute in the BulkDataFile object
          for that file's row instance. "
   DEFVAL { autoUpload }
   ::= { docsPnmBulkCtl 4 }

-- ---------------------------------------------------------------------
-- The BulkDataFile Table
-- ---------------------------------------------------------------------
docsPnmBulkFileTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmBulkFileEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "This table provides the objects needed for the device to upload
        a bulk data file to the Server. This object is a table with a row for
        each file that is available in the device for upload. The parameters
        used for the upload are provided under the 'docsPnmBulkCtl' object. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, Bulk Data section. "
     ::= { docsPnmBulkData 2}

docsPnmBulkFileEntry OBJECT-TYPE
     SYNTAX      DocsPnmBulkFileEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the 'docsPnmBulkFileTable'. An instance
         is dynamically created and exists for each file that is available
         for upload.

         The device must create a row for each file that is available for
         upload. The device could have have limited resources to save captured
         data files. Therefore, if the number of files exceeds the minimum
         supported number of files requirements for the device, newly created
         rows can overwrite/replace existing rows as new data files become
         available. If a bulk data file is no longer available for upload, the
         device must remove that file's details from the BulkDataFile table.

         The conceptual rows do not persist across device resets. "
     INDEX { docsPnmBulkFileIndex }
     ::= { docsPnmBulkFileTable 1 }

DocsPnmBulkFileEntry ::=
    SEQUENCE {
        docsPnmBulkFileIndex         Unsigned32,
        docsPnmBulkFileName          SnmpAdminString,
        docsPnmBulkFileControl       INTEGER,
        docsPnmBulkFileUploadStatus  INTEGER
     }

docsPnmBulkFileIndex OBJECT-TYPE
     SYNTAX      Unsigned32 (1..255)
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "This object is the index for the table. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
          Specification CM-SP-CM-OSSIv3.1, Bulk Data section. "
     ::= { docsPnmBulkFileEntry 1 }

docsPnmBulkFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object contains the name of the bulk data file stored in the
        device, that is available to be uploaded to the server. Filenames
        are defined by the application that creates them. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
          Specification CM-SP-CM-OSSIv3.1, Bulk Data section. "
     ::= { docsPnmBulkFileEntry 2 }

docsPnmBulkFileControl OBJECT-TYPE
     SYNTAX      INTEGER {other(1),
                          tftpUpload(2),
                          cancelUpload(3),
                          deleteFile(4)
                         }
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object controls the action taken by the device regarding the
        file specified by the 'docsPnmBulkFileName' object. When a value is
        written to this object for a given row instance, the device is
        required to take that action on the specified bulk data file. The
        possible actions are:

             other(1) - This value is returned when the object is read.
             This value is not writeable.

             tftpUpload(2)
                The device must initiate a TFTP-Write to the server with
                the parameters specified in the 'docsPnmBulkDestIpAddr',
                'docsPnmBulkDestIpAddrType', and 'docsPnmBulkDestPath' objects.
                This action will change the value of the
                'docsPnmBulkFileUploadStatus' to 'uploadInProgress' while the
                transfer is ongoing. This object can only be set to 'tftpUpload'
                when the value of the 'docsPnmBulkFileUploadStatus' object is not
                set to a value of 'uploadInProgress' for this row OR for any row
                in the table. This limits the upload process to one upload at a
                time. This object will return 'inconsistentValue' for this case.

             cancelUpload(3)
                The device must cancel a pending upload or an upload currently in
                progress on this bulk data file. The value of
                'docsPnmBulkFileUploadStatus' will be changed to 'uploadCancelled'.

             deleteFile(4)
                The device must delete the file from its memory and from this table.
                This object can not be set to 'deleteFile' while an upload is in progress.
             "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
          Specification CM-SP-CM-OSSIv3.1, Bulk Data section. "
     DEFVAL { other }
     ::= { docsPnmBulkFileEntry 3 }

docsPnmBulkFileUploadStatus  OBJECT-TYPE
   SYNTAX      INTEGER {other(1),
                        availableForUpload(2),
                        uploadInProgress(3),
                        uploadCompleted(4),
                        uploadPending(5),
                        uploadCancelled(6),
                        error(7)
                       }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This attribute reflects the status of the bulk data file. The possible
       values are listed below.

        other(1) - Any condition not covered by the other defined values.

        availableForUpload(2) - The file is available to be uploaded.

        uploadInProgress(3) - The file is currently being uploaded.

        uploadCompleted(4) - The file was successfully uploaded.

        uploadPending(5) - The file has been selected for upload but a
            condition does not allow the upload to take place. The upload will
            start when the condition blocking uploads has been removed. For
            example, another upload that is currently in progress could cause
            this value to be returned.

        uploadCancelled(6) - An upload was cancelled before it completed.

        error(7) - An error occurred and the file was not successfully uploaded.
       "
   ::= { docsPnmBulkFileEntry 4 }

--
--
--
--                        docsPnmCMObjects
--
--
--

-- ---------------------------------------------------------------------
-- The CM PNM Control Objects
-- ---------------------------------------------------------------------
docsPnmCmControlObjects       OBJECT IDENTIFIER ::= { docsPnmCmObjects 1 }

docsPnmCmCtlTest   OBJECT-TYPE
     SYNTAX      INTEGER {other(1),
                          dsSpectrumAnalyzer(2),
                          dsOfdmSymbolCapture(3),
                          dsOfdmChanEstCoef(4),
                          dsConstellationDisp(5),
                          dsOfdmRxMERPerSubCar(6),
                          dsOfdmCodewordErrorRate(7),
                          dsHistogram(8),
                          usPreEqualizerCoef(9)
                         }
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the current test. The value could represent
        the current test in-progress or if no test is running, the last test
        that was attempted.

        Any test that is not specifically covered by the enumeration for this
        object, but manipulates the 'PnmCmCtlStatus' object, the CM must set this
        object to a value of 'other' and will update the 'PnmCmCtlTestDuration'
        object. The value of this object is not required to persist across
        device resets. After a reset and before any test is run, the object
        will return a value of 'other'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmControlObjects 1 }

docsPnmCmCtlTestDuration   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "seconds"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the number of seconds that the test
        specified in 'PnmCmCtlTest' spent with a 'PnmCmCtlStatus' of
        'testInProgress'. This serves to provide a rough (seconds resolution)
        estimate of the time spent under test. If this object is read while
        the value of 'PnmCmCtlStutus' is 'testInProgress', then this object
        will return the number of seconds since the test started. This value
        is informative only and is not a guarantee of future performance. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmControlObjects 2 }

docsPnmCmCtlStatus   OBJECT-TYPE
     SYNTAX      INTEGER {other(1),
                          ready(2),
                          testInProgress(3),
                          tempReject(4)
                         }
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the overall status of the PNM test platform.
        Individual tests, within the PNM test suite, have their own specific
        objects to start and stop. For each test defined by the data-type
        enumeration for 'PnmCmCtlTest', the CM must first check the status of this
        object before starting. If this object is set to any value other than
        'ready', the CM must not start the test. If the CM was not able to start
        the test and the test has a 'MeasStatusType' object, the CM must set the
        'MeasStatusType' to a value of 'resourceUnavailable'.

        If the test is allowed to start, the CM must change the value of this
        object to 'testInProgress'. When the test is no longer in progress, the
        CM must change the value of this object to a value other than
        'testInProgress'.

        This mechanism serves to allow only one instance of only one test to
        run at a time. There may be some tests that are not included by
        this control object. That is, if any test is not defined by the
        data-type enumeration for 'PnmCmCtlTest', then it is not included
        (unless otherwise stated by the test definition) and is not required to
        check or to change this object. If a test is not included or covered by
        this set of objects, then it is allowed to run regardless of any
        other tests in progress.

        The possible values for this object are:
          'other' - Any condition not otherwise defined
          'ready' - The PNM platform is capable and ready to support a test.
                    A test can be initiated
          'testInProgress' - A PNM test is currently in progress
          'tempReject' - A temporary condition exists that prohibits a test
                         from starting, e.g., DBC
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmControlObjects 3 }


-- ---------------------------------------------------------------------
-- The CmDsOfdmSymbolCapture Table
-- ---------------------------------------------------------------------
docsPnmCmDsOfdmSymCapTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmDsOfdmSymCapEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of downstream symbol capture is to provide partial
        functionality of a network analyzer to analyze the response of the
        cable plant from the CM's perspective.

        At the CM, the received I and Q time-domain samples of one full OFDM
        symbol before the FFT, not including the guard interval, are captured
        and made available for analysis. This capture will result in a number
        of data points equal to the FFT length in use, time aligned for receiver
        FFT processing. The number of captured samples can be reduced for
        narrower channels if the sampling rate, which is implementation dependent,
        is reduced. The capture includes a bit indicating if receiver windowing
        effects are present in the data. The time domain samples are expressed
        as 16 bit two's complement numbers using s3.12 format. The CM samples are
        scaled such that the average power of the samples is approximately 1, in
        order to avoid excessive clipping and quantization noise.

        Capturing the input and output of the cable plant is equivalent to a
        wideband sweep of the channel, which permits full characterization of
        the linear and nonlinear response of the downstream plant. The MAC
        provides signaling via the PLC Trigger Message to ensure that the same
        symbol is captured at the CMTS and CM.

        The Downstream Symbol Capture is controlled by setting the
        'docsPnmCmDsOfdmSymTrigEnable' object. The status of the capture is
        obtained by reading the value of the 'docsPnmCmDsOfdmSymMeasStatus'
        object.

        This table will have a row for each ifIndex for the modem. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmObjects 2}

docsPnmCmDsOfdmSymCapEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmDsOfdmSymCapEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmDsOfdmSymCapTable. An instance
         is dynamically created and exists for an associated ifIndex of the
         physical downstream channel upon which the test defined by this table
         can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex  }
     ::= { docsPnmCmDsOfdmSymCapTable 1 }

DocsPnmCmDsOfdmSymCapEntry ::=
    SEQUENCE {
        docsPnmCmDsOfdmSymTrigEnable            TruthValue,
        docsPnmCmDsOfdmSymTrigEnableTimeout     Unsigned32,
        docsPnmCmDsOfdmSymTrigGroupId           Unsigned32,
        docsPnmCmDsOfdmSymRxWindowing           TruthValue,
        docsPnmCmDsOfdmSymPlcExtTimestamp       OCTET STRING,
        docsPnmCmDsOfdmSymTransactionId         Unsigned32,
        docsPnmCmDsOfdmSymSampleRate            Unsigned32,
        docsPnmCmDsOfdmSymFftLength             Unsigned32,
        docsPnmCmDsOfdmSymMeasStatus            MeasStatusType,
        docsPnmCmDsOfdmSymCaptFileName          SnmpAdminString
     }

docsPnmCmDsOfdmSymTrigEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "If this attribute is set to a value of 'true' the CM must begin
        looking for the presence of the Trigger Message Block in the PLC with
        a Group ID matching the CM's 'docsPnmCmDsOfdmSymTrigGroupId'. The
        TrigEnable is a one-shot enable and the attribute is internally
        disabled when a PLC containing a Group ID matching the CM's
        'docsPnmCmDsOfdmSymTrigGroupId' in a Trigger Message Block is received.

        If this attribute is set to a value of 'false' the CM must stop
        looking for the presence of the Trigger Message Block in the PLC with
        a Group ID matching the CM's 'docsPnmCmDsOfdmSymTrigGroupId'. In this
        case the value of the 'docsPnmCmDsOfdmSymMeasStatus' attribute will be
        set to 'inactive'.

        When read, the CM must return a value of 'true' if the CM is actively
        looking for the presence of the Trigger Message Block in the PLC with
        a Group ID matching the CM's 'docsPnmCmDsOfdmSymTrigGroupId'. Otherwise
        the CM must return 'false'.

        Interaction with other table rows:

        - This object is subject to the rules specified by the
        'docsPnmCmCtlStatus' object. Therefore this object returns
        'inconsistentValue' if set to 'true' while the value of
        'docsPnmCmCtlStatus' is any value other than 'ready'.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - Default values for 'docsPnmCmDsOfdmSymCaptFileName',
        'docsPnmCmDsOfdmSymTrigEnableTimeout', and 'docsPnmCmDsOfdmSymTrigGroupId'
        objects are defined; thus, this object may be set to 'true' without
        explicitly setting these values. Care should be taken to insure these values
        are correct for the desired test case.

        - Setting this attribute to a value of 'true' will change the value of the
        'docsPnmCmDsOfdmSymMeasStatus' attribute to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmDsOfdmSymCapEntry 1 }

docsPnmCmDsOfdmSymTrigEnableTimeout OBJECT-TYPE
     SYNTAX      Unsigned32 (0..3600)
     UNITS       "seconds"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used to disable the TrigEnable if no PLC
        containing a Group ID matching the CM's TrigGroupId in a Trigger
        Message Block is received within the timeout period. The CM must
        timeout the test after TriggerEnableTimeout seconds from the time
        when the TriggerEnable was set to 'true'. A value of 0 indicates
        that no timeout is enforced, in this case the CM must enable the
        test until it completes, note in this case, the trigger could be
        enabled indefinitely.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsOfdmSymMeasStatus' is
        'busy' will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 600 }
     ::= { docsPnmCmDsOfdmSymCapEntry 2 }

docsPnmCmDsOfdmSymTrigGroupId OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used to associate a CM with a group of CMs expected
        to perform Symbol Capture measurements for the designated symbol.

        This value can only be changed while a test is not in progress. If the CM
        receives an attempt to set this value while the value of
        'docsPnmCmDsOfdmSymMeasStatus' is 'busy' it will return
        'inconsistentValue'. for this attribute."
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
         DEFVAL { 0 }
     ::= { docsPnmCmDsOfdmSymCapEntry 3 }

docsPnmCmDsOfdmSymRxWindowing OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is a flag indicating if vendor proprietary receiver
        windowing was enabled during the capture. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmSymCapEntry 4}

docsPnmCmDsOfdmSymPlcExtTimestamp OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (8))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the 64 bit value of the Timestamp that was sent by
        the CMTS in the PLC frame containing the Trigger Message Block.

        This attribute is a copy of the 64-bit DOCSIS 3.1 extended timestamp
        defined in [MULPI3.1 paragraph 7.1.5, Extended Timestamp]. Bit 0 is
        the LSB and bit 63 is the MSB. For this measurement, the accuracy in
        reading the timestamp by the CM is expected to be 100 ms or better.
        Hence for practical purposes, bits 0-20 may not be meaningful. Bit 21
        provides a resolution (not accuracy) of 0.4 ms, and bit 63 has a rollover
        period of approximately 112 years. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmSymCapEntry 5 }

docsPnmCmDsOfdmSymTransactionId OBJECT-TYPE
     SYNTAX      Unsigned32 (0..255)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the Transaction ID sent by the CMTS in the Trigger
        Message Block. The CMTS increments this field by one on each trigger
        message that is sent, rolling over at value 255. Prior to completion of
        a measurement this attribute has no meaning. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmSymCapEntry 6 }

docsPnmCmDsOfdmSymSampleRate OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "Hz"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the FFT sample rate in use by the CM for the
        channel. Typically the sample rate for the downstream channel will
        be 204.8MHz. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmSymCapEntry 7 }

docsPnmCmDsOfdmSymFftLength OBJECT-TYPE
     SYNTAX      Unsigned32 (512  | 1024 | 2048 |4096 | 8192)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the FFT length in use by the CM for the channel;
        typically this value is 4096 or 8192 for the Downstream Channel. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmSymCapEntry 8 }

docsPnmCmDsOfdmSymMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the file
        is ready for transfer. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmSymCapEntry 9 }

docsPnmCmDsOfdmSymCaptFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file, at the CM and containing captured
        symbol data, which is to be downloaded by the PNM server.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsOfdmSymMeasStatus' is
        'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus the CM MAC Address plus the 'epoch time'. The epoch time (also known
        as 'unix time') is defined as the number of seconds that have elapsed
        since midnight Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMSymCap_<CM MAC address>_<epoch>

        For example:  PNMSymCap_0010181A2D11_1403405123

        The data file is comprised of a header plus the Symbol Capture Data.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary, the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D01' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         DS Channel Id                                         1 byte
         CM MAC Address                                        6 bytes
         Subcarrier zero Frequency in Hz                       4 bytes
         PlcExtendedTimeStamp                                  8 bytes
         SampleRate in Hz                                      4 bytes
         FFT Size                                              4 bytes
         TriggerGroupId                                        2 bytes
         Transaction ID                                        1 byte
         Length in bytes of Capture Data that follows          4 bytes
         Symbol Capture Data                                   ComplexData
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmDsOfdmSymCapEntry 10 }


-- ---------------------------------------------------------------------
-- The OFDM Downstream Channel Estimate Coefficients Table
-- ---------------------------------------------------------------------
docsPnmCmOfdmChanEstCoefTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmOfdmChanEstCoefEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of this table is for the CM to report its estimate of the
        downstream channel response. The reciprocals of the channel response
        coefficients are typically used by the CM as its frequency-domain
        downstream equalizer coefficients. The channel estimate consists of a
        single complex valued coefficient per subcarrier. The channel response
        coefficients are expressed as 16 bit two's complement numbers using s2.13
        format. The CM samples are scaled such that the average power of the
        samples is approximately 1, in order to avoid excessive clipping and
        quantization noise.
        Summary metrics (tilt, ripple, and group delay) are defined in order to
        avoid having to send all coefficients on every query. The summary metrics
        are calculated when the corresponding MIB is queried. A Coefficient
        filename and trigger are provided to obtain the channel coefficients.
        This table will have a row for each ifIndex for the modem. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmObjects 3}

docsPnmCmOfdmChanEstCoefEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmOfdmChanEstCoefEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmOfdmChanEstCoefTable. An instance
         is dynamically created and exists for an associated ifIndex of the
         physical downstream channel upon which the test defined by this table
         can take place.

         The conceptual rows do not persist across device resets. "

     INDEX { ifIndex }
     ::= { docsPnmCmOfdmChanEstCoefTable 1 }

DocsPnmCmOfdmChanEstCoefEntry ::=
    SEQUENCE {
        docsPnmCmOfdmChanEstCoefTrigEnable       TruthValue,
        docsPnmCmOfdmChEstRipplePkToPk           Unsigned32,
        docsPnmCmOfdmChEstRippleRms              Unsigned32,
        docsPnmCmOfdmChEstTiltDbPerMhz           Integer32,
        docsPnmCmOfdmChEstGrpDelayVarPkToPk      Unsigned32,
        docsPnmCmOfdmChEstGrpDelayVarRms         Unsigned32,
        docsPnmCmOfdmChEstCoefMeasStatus         MeasStatusType,
        docsPnmCmOfdmChEstCoefFileName           SnmpAdminString
     }

docsPnmCmOfdmChanEstCoefTrigEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "Setting this object to a value of 'true' instructs the CM to begin
        collection and storing the channel estimate coefficients into the
        file specified by the 'docsPnmCmOfdmChEstCoefFileName' object.

        Setting this object to a value of 'false' instructs the CM to stop
        storing channel estimate coefficients in the file.

        When read, this object returns 'true' if the CM is actively storing
        channel estimate coefficients in the file. Otherwise it returns
        'false'.

        Interaction with other table rows:

        - This object is subject to the rules specified by the
        'docsPnmCmCtlStatus' object. Therefore this object returns
        'inconsistentValue' if set to 'true' while the value of
        'docsPnmCmCtlStatus' is any value other than 'ready'.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - A default value for 'docsPnmCmOfdmChEstCoefFileName' is defined; thus,
        this object may be set to 'true' without explicitly setting this value.

        - Setting this object to a value of 'true' will change the value of
        'docsPnmCmOfdmChEstCoefMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmOfdmChanEstCoefEntry 1 }

docsPnmCmOfdmChEstRipplePkToPk OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "dB"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the value of the peak to peak ripple in
        the magnitude of the equalizer coefficients [PHYv3.1]. The tilt
        calculated for the TiltDbPerMHz is subtracted from the frequency domain
        data and the peak to peak Ripple is calculated from the resultant data.
        This attribute represents the ripple across the entire OFDM channel.

        Note: An algorithm for calculating the ripple and tilt for these
        measurements is provided in sections 6.5 and 6.6 of the SCTE Measurement
        Recommended Practices, Fourth Edition. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmOfdmChanEstCoefEntry 2 }

docsPnmCmOfdmChEstRippleRms OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "dB"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the value of the RMS ripple in the magnitude
        of the equalizer coefficients. The tilt calculated for the TiltDbPerMHz
        is subtracted from the frequency domain data the RMS Ripple is
        calculated from the resultant data. This attribute represents the ripple
        across the entire OFDM channel. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmOfdmChanEstCoefEntry 3 }

docsPnmCmOfdmChEstTiltDbPerMhz OBJECT-TYPE
     SYNTAX      Integer32
     UNITS       "dB"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the tilt in dB per MHz in the magnitude of
        the equalizer coefficients. The tilt is calculated as the slope of a
        linear least squares fit of the frequency domain data. This attribute
        represents the tilt across the entire OFDM channel.

        Note: An algorithm for calculating the ripple and tilt for these
        measurements is provided in sections 6.5 and 6.6 of the SCTE Measurement
        Recommended Practices, Fourth Edition. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmOfdmChanEstCoefEntry 4 }

docsPnmCmOfdmChEstGrpDelayVarPkToPk OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "nS"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the peak to peak group delay variation in units
        of nS. This attribute represents the group delay variation across the entire
        OFDM channel. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmOfdmChanEstCoefEntry 5 }

docsPnmCmOfdmChEstGrpDelayVarRms OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "nS"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the RMS value of the group delay variation
        expressed in units of nS. This attribute represents the group delay
        variation across the entire OFDM channel. This attribute is not stored
        in the data file. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmOfdmChanEstCoefEntry 6  }

docsPnmCmOfdmChEstCoefMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the file
        is ready for transfer. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmOfdmChanEstCoefEntry 7 }

docsPnmCmOfdmChEstCoefFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file at the CM which is to be
        transferred to the PNM server. The data is stored as 16 bit integers
        for the I and Q data.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmOfdmChEstCoefMeasStatus' is
        'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus the CM MAC Address plus the 'epoch time'. The epoch time (also known
        as 'unix time') is defined as the number of seconds that have elapsed
        since midnight Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMChEstCoef_<CM MAC address>_<epoch>

        For example:  PNMChEstCoef_0010181A2D11_1403405123

        The data file is comprised of a header plus the Chan Estimate
        Coefficient Data.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D02' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         DS Channel Id                                         1 byte
         CM MAC Address                                        6 bytes
         Subcarrier zero frequency inHz                        4 bytes
         Subcarrier spacing in kHz                             1 byte
         Length in bytes of Chan Estimate Data that follows    4 bytes
         Channel estimate coefficient Data                     ComplexData
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmOfdmChanEstCoefEntry 8 }

-- ---------------------------------------------------------------------
-- The Downstream Constellation Display Measurement Table
-- ---------------------------------------------------------------------
docsPnmCmDsConstDispMeasTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmDsConstDispMeasEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The downstream constellation display provides received QAM
        constellation points for display. Equalized soft decisions (I and Q)
        at the slicer input are collected over time, possibly subsampling to
        reduce complexity, and made available for analysis. This measurement is
        intended for data subcarriers only. Up to 8192 samples are provided for
        each query; additional queries can be made to further fill in the plot.
        The complex Constellation Display values are expressed as 16 bit two's
        complement numbers using s2.13 format. The CM samples are scaled such
        that the average power of the QAM constellation is approximately 1, in
        order to avoid excessive clipping and quantization noise.

        The object controls the CM capturing and reporting of received
        soft-decision samples, for a single selected constellation
        from the set of profiles it is receiving, within a single OFDM
        downstream channel.

        This table will have a row for each ifIndex for the modem. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmObjects 4}

docsPnmCmDsConstDispMeasEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmDsConstDispMeasEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmDsConstDispMeasTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex }
     ::= { docsPnmCmDsConstDispMeasTable 1 }

DocsPnmCmDsConstDispMeasEntry ::=
    SEQUENCE {
        docsPnmCmDsConstDispTrigEnable         TruthValue,
        docsPnmCmDsConstDispModOrderOffset     Unsigned32,
        docsPnmCmDsConstDispNumSampleSymb      Unsigned32,
        docsPnmCmDsConstDispSelModOrder        DsOfdmModulationType,
        docsPnmCmDsConstDispMeasStatus         MeasStatusType,
        docsPnmCmDsConstDispFileName           SnmpAdminString
     }

docsPnmCmDsConstDispTrigEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "Setting this object to a value of 'true' instructs the CM to begin
        collection and storing the constellation points into the
        file specified by the 'docsPnmCmDsConstDispFileName' object.

        Setting this object to a value of 'false' instructs the CM to stop
        storing constellation points in the file.

        When read, this object returns 'true' if the CM is actively storing
        constellation points in the file. Otherwise it returns
        'false'.

        Interaction with other table rows:

        - This object is subject to the rules specified by the
        'docsPnmCmCtlStatus' object. Therefore this object returns
        'inconsistentValue' if set to 'true' while the value of
        'docsPnmCmCtlStatus' is any value other than 'ready'.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - A default value for 'docsPnmCmDsConstDispFileName' is defined; thus,
        this object may be set to 'true' without explicitly setting this value.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmDsConstDispMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmDsConstDispMeasEntry 1 }

docsPnmCmDsConstDispModOrderOffset OBJECT-TYPE
     SYNTAX      Unsigned32 (0..10)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute specifies an offset from the lowest order modulation
        for the data subcarriers in any of the profiles in the downstream
        channel. If the lowest order modulation order that the CM was receiving
        was 1024-QAM and the ModulationOrderOffset was zero, then the CM would
        capture the soft decision samples for all of the subcarriers which were
        using 1024-QAM modulation order. If the ModulationOrderOffset was 1,
        then the CM would capture the soft decision samples for all of the
        subcarriers using the next highest modulation order in use for the
        profiles in the downstream channel.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsConstDispMeasStatus' is
        'busy' will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
         DEFVAL { 0 }
     ::= { docsPnmCmDsConstDispMeasEntry 2 }

docsPnmCmDsConstDispNumSampleSymb OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute tells the CM how many OFDM symbols including the cyclic
        prefix, for which soft decision samples of the specified modulation
        order are captured.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsConstDispMeasStatus' is
        'busy' will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
         DEFVAL { 8192 }
     ::= { docsPnmCmDsConstDispMeasEntry 3 }

docsPnmCmDsConstDispSelModOrder OBJECT-TYPE
     SYNTAX      DsOfdmModulationType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object provides the actual Modulation Order that will be used for
        the Constellation display based on the selected ModulationOrderOffset. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsConstDispMeasEntry 4 }

docsPnmCmDsConstDispMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement. The
        PNM server will query this value to determine when the file is ready
        for transfer. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsConstDispMeasEntry 5}

docsPnmCmDsConstDispFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file at the CM which is to be
        transferred to the PNM server. The data is stored as 16 bit integers
        for the I and Q data.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsConstDispMeasStatus' is
        'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus the CM MAC Address plus the 'epoch time'. The epoch time (also known
        as 'unix time') is defined as the number of seconds that have elapsed
        since midnight Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMDSConDisp_<CM MAC address>_<epoch>

        For example:  PNMDSConDisp_0010181A2D11_1403405123

        The data file is comprised of a header plus the Constellation Display
        Data.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D03' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         DS Channel Id                                         1 byte
         CM MAC Address                                        6 bytes
         Subcarrier zero frequency in Hz                       4 bytes
         Actual Modulation Order (DsOfdmModulationType enum)   2 bytes
         NumSampleSymbols                                      1 byte
         Subcarrier Spacing in kHz                             1 byte
         Length in bytes of Constellation Data that follows    4 bytes
         Constellation Display Data                            ComplexData
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmDsConstDispMeasEntry 6 }

-- -------------------------------------------------------------------------
-- The Downstream OFDM Receive Modulation Error Ratio (RxMER) Per Subcarrier
-- -------------------------------------------------------------------------
docsPnmCmDsOfdmRxMerTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmDsOfdmRxMerEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "This item provides measurements of the receive modulation error ratio
        (RxMER) for each subcarrier. Each subcarrier RxMER value consists of one
        byte which represents the RxMER value with range 0 to 63.5 dB in 0.25 dB
        steps. If some subcarriers (such as exclusion bands) cannot be measured
        by the CM, the CM indicates that condition by reporting a value of 0xFF
        for the RxMER for those subcarriers. Any measured RxMER value below 0 dB
        is clipped to 0 dB (0x00), and any measured value above 63.5 dB is clipped
        to 63.5 dB (0xFE).

        Mathematical notation for the calculation of RxMER is provided in [PHYv3.1]:
        'Downstream Receive Modulation Error Ratio (RxMER) Per Subcarrier'.

        This table will have a row for each ifIndex for the modem. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmObjects 5}

docsPnmCmDsOfdmRxMerEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmDsOfdmRxMerEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmDsOfdmRxMerTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex }
     ::= { docsPnmCmDsOfdmRxMerTable 1 }

DocsPnmCmDsOfdmRxMerEntry ::=
    SEQUENCE {
        docsPnmCmDsOfdmRxMerFileEnable          TruthValue,
        docsPnmCmDsOfdmRxMerPercentile          Unsigned32,
        docsPnmCmDsOfdmRxMerMean                Unsigned32,
        docsPnmCmDsOfdmRxMerStdDev              Unsigned32,
        docsPnmCmDsOfdmRxMerThrVal              Unsigned32,
        docsPnmCmDsOfdmRxMerThrHighestFreq      Unsigned32,
        docsPnmCmDsOfdmRxMerMeasStatus          MeasStatusType,
        docsPnmCmDsOfdmRxMerFileName            SnmpAdminString
     }

docsPnmCmDsOfdmRxMerFileEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute causes the CM to begin the RxMer measurement for the
        purpose of creating a file of RxMer data. When the measurement is
        complete the FileEnable attribute is set internally to 'false' by the CM.

        Interaction with other table rows:

        - This object is subject to the rules specified by the
        'docsPnmCmCtlStatus' object. Therefore this object returns
        'inconsistentValue' if set to 'true' while the value of
        'docsPnmCmCtlStatus' is any value other than 'ready'.

        - Setting this value to 'true' will change the value of the
        'docsPnmCmDsOfdmRxMerMeasStatus' to 'busy' while the test is in progress.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - A default value for 'docsPnmCmDsOfdmRxMerFileName' is defined; thus,
        this object may be set to 'true' without explicitly setting this this value.

        - Setting this object to a value of 'false' instructs the CM to stop
        the measurement.

        - This object returns 'true' if the CM is actively taking a measurement.
        Otherwise it returns 'false'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmDsOfdmRxMerEntry 1 }

docsPnmCmDsOfdmRxMerPercentile OBJECT-TYPE
     SYNTAX      Unsigned32 (0..255)
     UNITS       "percent"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute specifies the percentile (such as 2nd percentile or 5th
        percentile) of all active subcarriers in an OFDM channel at which the
        ThresholdRxMerValue occurs. That is, (Percentile) % of the subcarriers
        have RxMER <= ThresholdRxMerValue. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 2 }
     ::= { docsPnmCmDsOfdmRxMerEntry 2 }

docsPnmCmDsOfdmRxMerMean OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     UNITS       "hundredthDb"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the mean of the dB values of the RxMER measurements
        of all active subcarriers. The mean is computed directly on the dB
        values as follows:
              Mean = sum of (RxMER dB values) / number of RxMER values
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmRxMerEntry 3 }

docsPnmCmDsOfdmRxMerStdDev OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     UNITS       "hundredthDb"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the standard deviation of the dB values of the RxMER
        measurements of all active subcarriers. The standard deviation is
        computed directly on the dB values as follows:
          StdDev = sqrt(sum of (RxMER dB values - RxMER_mean)^2 / number of RxMER values)
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmRxMerEntry 4 }

docsPnmCmDsOfdmRxMerThrVal OBJECT-TYPE
     SYNTAX      Unsigned32 (0..255)
     UNITS       "quarterDb"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the RxMER value corresponding to the specified
        Percentile value. The CM sorts the subcarriers in ascending order of
        RxMER, resulting in a post-sorting subcarrier index ranging from 1 to
        the number of active subcarriers. If the percentile value corresponds
        to a non-integer post-sorting subcarrier index, the post-sorting index
        is truncated (floor function is applied), that is, the post-sorting
        index is selected which is the greatest integer less than or equal to
        the corresponding percentile value. For example, if there are 3677
        active subcarriers and the 2nd percentile is specified, the CM computes
        floor(3677*0.02) = 73. That is, the RxMER value of the 73rd subcarrier
        in the sorted list is associated with the 2nd percentile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmRxMerEntry 5 }

docsPnmCmDsOfdmRxMerThrHighestFreq OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "Hz"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the frequency in Hz of the highest-frequency
        subcarrier having RxMER = ThresholdRxMerValue. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmRxMerEntry 6 }

docsPnmCmDsOfdmRxMerMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the file
        is ready for transfer. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmRxMerEntry 7 }

docsPnmCmDsOfdmRxMerFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file at the CM which is to be
        downloaded by the PNM server.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsOfdmRxMerMeasStatus' is
        'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus the CM MAC Address plus the 'epoch time'. The epoch time (also known
        as 'unix time') is defined as the number of seconds that have elapsed
        since midnight Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMDsMer_<CM MAC address>_<epoch>

        For example:  PNMDsMer_0010181A2D11_1403405123

        The data file is comprised of a header plus the Subcarrier RxMER Data
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D04' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         DS Channel Id                                         1 byte
         CM MAC Address                                        6 bytes
         Subcarrier zero frequency in Hz                       4 bytes
         FirstActiveSubcarrierIndex                            2 bytes
         Subcarrier Spacing in kHz                             1 byte
         Length in bytes of RxMerData that follows             4 bytes
         Subcarrier RxMER Data                                 RxMerData
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmDsOfdmRxMerEntry 8 }


-- ---------------------------------------------------------------------
-- The CM Downstream OFDM MER for Candidate Profile Table
-- ---------------------------------------------------------------------
docsPnmCmDsOfdmMerMarTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmDsOfdmMerMarEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of this item is to provide an estimate of the MER margin
        available on the downstream data channel with respect to a candidate
        modulation profile. This is similar to the MER Margin reported in the
        OPT-RSP Message [MULPIv3.1].

        The CM calculates the Required Average MER based on the bit loading for
        the profile and the Required MER per Modulation Order provided in the
        RequiredDsOfdmQamMer Table. The CM then measures the RxMER per
        subcarrier and calculates the Average MER for the Active Subcarriers
        used in the Profile and stores the value as MeasuredAvgMer.

        The CM also counts the number of MER per Subcarrier values that are
        below the threshold determined by the Required MER for the Modulation
        Order and the ThrshldOffset. The CM reports that value as
        NumSubcarriersBelowThrshld.

        This table will have a row for each ifIndex for the modem. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmObjects 6}

docsPnmCmDsOfdmMerMarEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmDsOfdmMerMarEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmDsOfdmMerMarTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "

     INDEX { ifIndex }
     ::= { docsPnmCmDsOfdmMerMarTable 1 }

DocsPnmCmDsOfdmMerMarEntry ::=
    SEQUENCE {
        docsPnmCmDsOfdmMerMarProfileId                Unsigned32,
        docsPnmCmDsOfdmMerMarThrshldOffset            Unsigned32,
        docsPnmCmDsOfdmMerMarMeasEnable               TruthValue,
        docsPnmCmDsOfdmMerMarNumSymPerSubCarToAvg     Unsigned32,
        docsPnmCmDsOfdmMerMarReqAvgMer                Unsigned32,
        docsPnmCmDsOfdmMerMarNumSubCarBelowThrshld    Unsigned32,
        docsPnmCmDsOfdmMerMarMeasuredAvgMer           Unsigned32,
        docsPnmCmDsOfdmMerMarAvgMerMargin             Unsigned32,
        docsPnmCmDsOfdmMerMarMeasStatus               MeasStatusType
     }

docsPnmCmDsOfdmMerMarProfileId OBJECT-TYPE
     SYNTAX      Unsigned32 (0..15)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the Downstream Profile ID of the candidate
        Profile.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsOfdmMerMarMeasStatus' is
        'busy' will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmDsOfdmMerMarEntry 1 }

docsPnmCmDsOfdmMerMarThrshldOffset OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterDb"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the number of dB below the
        RequiredDsOfdmQamMer value which is likely to cause uncorrectable
        errors. Measurements of Subcarrier MER that are this number of dB or
        more below the RequiredDsOfdmQamMer for the Subcarrier for the profile
        being tested, will cause the CM to increment the count of the
        'docsPnmCmDsOfdmMerMarNumSubCarBelowThrshld' attribute.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsOfdmMerMarMeasStatus' is
        'busy' will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmDsOfdmMerMarEntry 2 }

docsPnmCmDsOfdmMerMarMeasEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute causes the CM to begin the measurement. When the
        measurement is complete the MeasEnable attribute is set internally to
        'false' by the CM.

        Setting this object to a value of 'false' instructs the CM to stop
        the measurement.

        This object returns 'true' if the CM is actively taking a measurement.
        Otherwise it returns 'false'.

        Interaction with other table rows:

        - This object returns 'inconsistentValue' if set to 'true' while the
        value of 'docsPnmCmDsOfdmMerMarMeasStatus' is a value of 'busy' for this row
        OR for any row in the table. That is, ONLY ONE ROW IN THE TABLE MAY BE
        ALLOWED TO BE 'true' AT THE SAME TIME.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmDsOfdmMerMarMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmDsOfdmMerMarEntry 3 }

docsPnmCmDsOfdmMerMarNumSymPerSubCarToAvg OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the number of symbols that will be used in
        the calculation of the average MER per subcarrier.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsOfdmMerMarMeasStatus' is
        'busy' will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 8 }
     ::= { docsPnmCmDsOfdmMerMarEntry 4 }

docsPnmCmDsOfdmMerMarReqAvgMer  OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterDb"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required average MER. The CM
        subtracts this value from the MeasuredAvgMer to obtain the
        AverageMerMargin. If this value is not provided by the PNM server
        (i.e., it is the default value of zero), the CM computes the value as
        the average of the required MER for all of the subcarriers, based on
        the values in the RequiredDsOfdmQamMer table, for the Modulation order
        used for each of the subcarriers for the profile being analyzed. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmDsOfdmMerMarEntry 5 }

docsPnmCmDsOfdmMerMarNumSubCarBelowThrshld  OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object represents the number of subcarriers which were counted
        due to satisfying the criteria defined for the
        'docsPnmCmDsOfdmMerMarThrshldOffset' object. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmMerMarEntry 6 }

docsPnmCmDsOfdmMerMarMeasuredAvgMer  OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "hundrethdB"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the average of all MER dB values measured over all of
        the subcarriers. That is, the average is taken of all the dB values."
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmMerMarEntry 7 }

docsPnmCmDsOfdmMerMarAvgMerMargin  OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "hundrethdB"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the difference between the
        'docsPnmCmDsOfdmMerMarMeasuredAvgMer' and the 'docsPnmCmDsOfdmMerMarReqAvgMer'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmMerMarEntry 8 }

docsPnmCmDsOfdmMerMarMeasStatus  OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the data is ready
        for evaluation. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmMerMarEntry 9 }

-- ---------------------------------------------------------------------
-- The CM Downstream OFDM Codeword Error Summary Per Profile
-- ---------------------------------------------------------------------
docsPnmCmDsOfdmFecTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmDsOfdmFecEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of the table is to provide a series of codword error rate
        measurements on a per profle basis over a set period of time.

        This table will have a row for each ifIndex for the modem. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmObjects 7}

docsPnmCmDsOfdmFecEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmDsOfdmFecEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmDsOfdmFecTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex }
     ::= { docsPnmCmDsOfdmFecTable 1 }

DocsPnmCmDsOfdmFecEntry ::=
    SEQUENCE {
        docsPnmCmDsOfdmFecSumType        INTEGER,
        docsPnmCmDsOfdmFecFileEnable     TruthValue,
        docsPnmCmDsOfdmFecMeasStatus     MeasStatusType,
        docsPnmCmDsOfdmFecFileName       SnmpAdminString
     }

docsPnmCmDsOfdmFecSumType OBJECT-TYPE
     SYNTAX      INTEGER {other(1),
                          interval10min(2),
                          interval24hr(3)
                         }
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the type of summary test to be performed. If set to
        'interval10min(2)', when enabled the CM must perform a test of 10
        minutes in duration recording codeword data every second for a total of
        600 measurements. If set to 'interval24hr(3)', when enabled the CM must
        perform a test of 24hours in duration recording codeword data every 60
        seconds for a total of 1440 measurements. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { interval10min }
     ::= { docsPnmCmDsOfdmFecEntry 1 }

docsPnmCmDsOfdmFecFileEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "When this attribute is set to 'true' the CM must begin the SummaryType
        codeword error summary test. While the test is in progress, the CM must
        return a MeasStatus value of 'busy'. When the measurement is complete
        the CM must set the MeasEnable attribute to 'false'. If this attribute
        is set to 'false' during a test, the CM must stop the test.

        Interaction with other table rows:

        - This object is subject to the rules specified by the
        'docsPnmCmCtlStatus' object. Therefore this object returns
        'inconsistentValue' if set to 'true' while the value of
        'docsPnmCmCtlStatus' is any value other than 'ready'.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - A default value for 'docsPnmCmDsOfdmFecFileName' is defined; thus,
        this object may be set to 'true' without explicitly setting this value.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmDsOfdmFecMeasStatus' to 'busy'.

        The CM must return the value of 'true' if it is actively taking a
        measurement; otherwise it must return 'false'."
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmDsOfdmFecEntry 2 }

docsPnmCmDsOfdmFecMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the file
        is ready for transfer. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsOfdmFecEntry 3 }

docsPnmCmDsOfdmFecFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file at the CM which is to be
        transferred to the PNM server.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmDsOfdmFecMeasStatus' is
        'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus the CM MAC Address plus the 'epoch time'. The epoch time (also known
        as 'unix time') is defined as the number of seconds that have elapsed
        since midnight Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMFecSum_<CM MAC address>_<epoch>

        For example:  PNMFecSum_0010181A2D11_1403405123

        The data file is comprised of a header plus the Chan Estimate
        Coefficient Data.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D08' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         DS Channel Id                                         1 byte
         CM MAC Address                                        6 bytes
         TestStartTimestamp                                    4 bytes
         TestEndTimestamp                                      4 bytes
         SummaryType                                           1 byte
         Number of Profiles                                    1 byte
         Profile Id                                            1 byte
         Length (in bytes) of the per Profile FEC Data         2 bytes
         Total Codewords                        (600 | 1440) * 4 bytes
         Corrected Codewords                    (600 | 1440) * 4 bytes
         Uncorrectable Codewords                (600 | 1440) * 4 bytes

         "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmDsOfdmFecEntry 4 }

-- ---------------------------------------------------------------------
-- The CM OFDM Downstream Required QAM MER
-- ---------------------------------------------------------------------
docsPnmCmDsOfdmReqMERObjects       OBJECT IDENTIFIER ::= { docsPnmCmObjects 8 }

docsPnmCmDsOfdmReqMerQam16   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 60 }
     ::= { docsPnmCmDsOfdmReqMERObjects 1 }

docsPnmCmDsOfdmReqMerQam64   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 84 }
     ::= { docsPnmCmDsOfdmReqMERObjects 2 }

docsPnmCmDsOfdmReqMerQam128   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 96 }
     ::= { docsPnmCmDsOfdmReqMERObjects 3 }

docsPnmCmDsOfdmReqMerQam256   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 108 }
     ::= { docsPnmCmDsOfdmReqMERObjects 4 }

docsPnmCmDsOfdmReqMerQam512   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 122 }
     ::= { docsPnmCmDsOfdmReqMERObjects 5 }

docsPnmCmDsOfdmReqMerQam1024   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 136 }
     ::= { docsPnmCmDsOfdmReqMERObjects 6 }

docsPnmCmDsOfdmReqMerQam2048   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 148 }
     ::= { docsPnmCmDsOfdmReqMERObjects 7 }

docsPnmCmDsOfdmReqMerQam4096   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
      DEFVAL { 164 }
     ::= { docsPnmCmDsOfdmReqMERObjects 8 }

docsPnmCmDsOfdmReqMerQam8192   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 184 }
     ::= { docsPnmCmDsOfdmReqMERObjects 9 }

docsPnmCmDsOfdmReqMerQam16384   OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "quarterdB"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the minimum required MER value for this
        Modulation Order. It is used in determining the SNR Margin for the
        Candidate Downstream Profile. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 208 }
     ::= { docsPnmCmDsOfdmReqMERObjects 10 }


-- ---------------------------------------------------------------------
-- The Downstream Histogram Table
-- ---------------------------------------------------------------------
docsPnmCmDsHistTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmDsHistEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of the downstream histogram is to provide a measurement of
        nonlinear effects in the channel such as amplifier compression and laser
        clipping. For example, laser clipping causes one tail of the histogram
        to be truncated and replaced with a spike. The CM captures the histogram
        of time domain samples at the wideband front end of the receiver (full
        downstream band). The histogram is two-sided; that is, it encompasses
        values from far-negative to far-positive values of the samples. The
        histogram has either 256 or 255 equally spaced bins. These bins typically
        correspond to the 8 MSBs of the wideband analog-to-digital converter (ADC).
        The histogram dwell count, a 32-bit unsigned integer, is the number of
        samples observed while counting hits for a given bin, and may have the
        same value for all bins. The histogram hit count, a 32-bit unsigned
        integer, is the number of samples falling in a given bin. The CM
        reports the dwell count per bin and the hit count per bin. When
        enabled, the CM computes a histogram with a dwell of at least 10
        million samples at each bin in 30 seconds or less. The CM continues
        accumulating histogram samples until it is restarted, disabled or times
        out. If the highest dwell count approaches its 32-bit overflow value,
        the CM stops counting and sets the docsPnmCmDsHistMeasStatus attribute to
        'sampleReady'. The CM reports the start and end time of the histogram
        measurement using bits 21-52 of the extended timestamp, which provides
        a 32-bit timestamp value with resolution of 0.4 ms and range of 20 days.

        This table will have a row for each ifIndex for the modem. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmObjects 9}

docsPnmCmDsHistEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmDsHistEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmDsHistTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "

     INDEX { ifIndex }
     ::= { docsPnmCmDsHistTable 1 }

DocsPnmCmDsHistEntry ::=
    SEQUENCE {
        docsPnmCmDsHistEnable                  TruthValue,
        docsPnmCmDsHistRestart                 TruthValue,
        docsPnmCmDsHistTimeOut                 Unsigned32,
        docsPnmCmDsHistSymmetry                TruthValue,
        docsPnmCmDsHistDwellCnts               OCTET STRING,
        docsPnmCmDsHistHitCnts                 OCTET STRING,
        docsPnmCmDsHistCntStartTime            Unsigned32,
        docsPnmCmDsHistCntEndTime              Unsigned32,
        docsPnmCmDsHistMeasStatus              MeasStatusType,
        docsPnmCmDsHistFileName                SnmpAdminString
     }

docsPnmCmDsHistEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "Setting this object to a value of 'true' instructs the CM to begin
        collection of histogram data and when enabled, the CM continues
        producing new data at its own rate.

        Setting this object to a value of 'false' instructs the CM to stop
        the collection of histogram data.

        This object returns 'true' if the CM is actively collecting histogram
        data. Otherwise it returns 'false'.

        Interaction with other table rows:

        - This object is subject to the rules specified by the
        'docsPnmCmCtlStatus' object. Therefore this object returns
        'inconsistentValue' if set to 'true' while the value of
        'docsPnmCmCtlStatus' is any value other than 'ready'.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmDsHistMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmDsHistEntry 1 }

docsPnmCmDsHistRestart OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used to restart collection of histogram data.
        If 'docsPnmCmDsHistEnable' is 'true' then setting this object to
        'true' clears the old data and starts collecting a new set of
        histogram data. No action is taken if this object is set to 'true'
        and 'docsPnmCmDsHistEnable' is 'false'.

        Setting this object to a value of 'false' has no action.
        This object always returns 'false'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmDsHistEntry 2 }

docsPnmCmDsHistTimeOut OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     UNITS       "seconds"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object sets a seconds time-out timer for capturing histogram data.

        When the timeout expires the 'docsPnmCmDsHistEnable' object will be set to
        'false' and the capture will stop. When this happens, the data collected up
        to this point will be saved in the the file defined by the
        'docsPnmCmDsHistFileName', and the value of 'docsPnmCmDsHistMeasStatus'
        will be set to 'sampleReady'.

        Setting this value does not start a capture. Captures can only be started by
        setting the 'docsPnmCmDsHistEnable' object.

        If this object is written while the 'docsPnmCmDsHistEnable' object is 'true',
        the timer is restarted.

        If this object is set to a value of 'zero', there is no timeout and the
        collection of data will continue indefinitely.

        This object returns the value that it was last set with. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { 1800 }
     ::= { docsPnmCmDsHistEntry 3 }

docsPnmCmDsHistSymmetry OBJECT-TYPE
     SYNTAX      TruthValue
     UNITS       "Bins"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used to indicate whether 256 or 255 bins were used
        for the measurement.

        Even Symmetry = 'false' (default):
        The histogram has even symmetry about the origin. There is no bin center
        lying directly at the origin; rather, two bin centers straddle the origin
        at 0.5. All bins with indices 0-255 contain valid hit-count data.
        The histogram bin centers are offset from the corresponding 8-bit
        twos-complement integer values by 1/2, that is, bin center = twos complement
        value + 0.5.

        Odd Symmetry = 'true':
        The histogram has odd symmetry about the origin. There is a bin center
        lying at the origin. The bin with index 0 is not used and returns the
        value 0. The bins with indices 1 to 255 contain valid hit-count data.
        The histogram bin centers are located on the corresponding 8-bit
        twos-complement integer values.

        The following table shows the defined histogram bin centers for the
        cases of even and odd symmetry.

        Bin      Bin Center       Bin Center
        Index    Even Symmetry    Odd Symmetry

         0          -127.5        Bin not used
         1          -126.5         -127
         2          -125.5         -126
         ...          ...          ...
         127          -0.5           -1
         128           0.5            0
         129           1.5            1
         ...          ...          ...
         253         125.5          125
         254         126.5          126
         255         127.5          127

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmDsHistMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmDsHistEntry 4 }

docsPnmCmDsHistDwellCnts OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (1..4096))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the total number Dwell Counts for each
        bin for the Current capture. If the dwell count for all bins is the
        same then only a single value is reported. The value for each bin is
        reported as a 32 bit hex value. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsHistEntry 5 }

docsPnmCmDsHistHitCnts OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (1..4096))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the total number Hit Counts for each bin
        for the Current capture. If odd symmetry is used then there will be 255 bins.
        The value for each bin is reported as a 32 bit hex value. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsHistEntry 6 }

docsPnmCmDsHistCntStartTime OBJECT-TYPE
     SYNTAX      Unsigned32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the time when the collection of
        histogram data was started.

        This value is the 'epoch time'. The epoch time (also known as
        'unix time') is defined as the number of seconds that have
        elapsed since midnight Coordinated Universal Time (UTC),
        Thursday, 1 January 1970. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsHistEntry 7 }

docsPnmCmDsHistCntEndTime OBJECT-TYPE
     SYNTAX      Unsigned32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the time when the collection of
        histogram data was stopped.

        This value is the 'epoch time'. The epoch time (also known as
        'unix time') is defined as the number of seconds that have
        elapsed since midnight Coordinated Universal Time (UTC),
        Thursday, 1 January 1970. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsHistEntry 8 }

docsPnmCmDsHistMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the file
        is ready for transfer. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmDsHistEntry 9 }

docsPnmCmDsHistFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object is the name of the file at the CM which is to be
        transferred to the PNM server. The data is stored as 32 bit integers
        for the hit and dwell count values.

        This value can only be changed while a test is not in progress. An
        attempt to set this value while the value of 'docsPnmCmDsHistMeasStatus'
        is 'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a
        default filename value will be used. Otherwise the value set will be
        used as the filename.

        If a default filename value is used, it is generated as the test name
        plus the CM MAC Address plus the 'epoch time'. The epoch time (also known
        as 'unix time') is defined as the number of seconds that have elapsed
        since midnight Coordinated Universal Time (UTC),Thursday, 1 January 1970.
        Hence, the format would be:

            PNMHist_<CM MAC address>_<epoch>

        For example:  PNMHist_0010181A2D11_1403405123

        The data file is comprised of a header plus the Histogram Data. The header
        is comprised of ordered fixed-length fields. Unless otherwise specified,
        the header fields contain hex values that are right-justified within the
        field. If necessary the field is left-padded with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D05' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         Channel Id                                            1 byte
         CM MAC Address                                        6 bytes
         CntStartTime                                          4 bytes
         CntEndTime                                            4 bytes
         Length in bytes of Dwell Count values that follows    4 bytes
         DwellCount Values                                     (1-4096)*4 bytes each
         Length in bytes of HitCount values that follow        4 bytes
         HitCount Values                                       (1-4096)*4 bytes each
         "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
         DEFVAL { "" }
     ::= { docsPnmCmDsHistEntry 10 }

-- ---------------------------------------------------------------------
-- The Upstream Pre Equalizer Coefficients Table
-- ---------------------------------------------------------------------
docsPnmCmUsPreEqTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmUsPreEqEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "This object provides access to CM upstream pre-equalizer coefficients.
        The CM pre-equalizer coefficients and the CMTS upstream adaptive
        equalizer coefficient update values, when taken together describe the
        linear response of the upstream cable plant for a given CM. During the
        ranging process, the CMTS computes adaptive equalizer coefficients based
        on upstream probes; these coefficients describe the residual channel
        remaining after any pre-equalization. The CMTS sends these equalizer
        coefficients to the CM as a set of Transmit Equalization Adjust
        coefficients as part of the ranging process.

        The CM Pre-Equalizer coefficients are expressed as 16 bit two's
        complement numbers using s2.13 format. The power averaged over all
        coefficients approximately 1, in order to avoid excessive clipping and
        quantization noise. The Pre-Equalizer coefficient update values sent to
        the CM by the CMTS in the RNG-RSP are expressed as 16 bit two's
        complement numbers using s1.14 format.

        The CM provides the capability to report its upstream pre-equalizer
        coefficients (full set or summary) upon request. The CM also provides
        the capability to also report the most recent set of Transmit
        Equalization Adjust coefficients which were applied to produce the
        reported set of upstream pre-equalizer coefficients. The CM indicates
        the status of the most recent Transmit Equalization Adjust coefficients
        sent to it by the CMTS. If the CM was able to apply the coefficients it
        sets the status to success(2). If the CM was unable to fully apply the
        adjustments (for example, due to excess tilt or ripple in the channel),
        and it was necessary for the CM to clip the coefficients, it sets the
        status to clipped(3). If the CM modified the coefficients other than by
        simply clipping them, it sets the status to other(1). If for
        some reason the CM is unable to apply the adjustments at all, it sets
        the status to rejected(4).

        The 'docsPnmCmUsPreEqFileEnable' object is used to create files. Other
        objects are updated as read.

        This table will have a row for each ifIndex for the modem. "
     REFERENCE
        "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmObjects 10}

docsPnmCmUsPreEqEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmUsPreEqEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmUsPreEqTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex }
     ::= { docsPnmCmUsPreEqTable 1 }

DocsPnmCmUsPreEqEntry ::=
    SEQUENCE {
        docsPnmCmUsPreEqFileEnable               TruthValue,
        docsPnmCmUsPreEqRipplePkToPk             TenthdB,
        docsPnmCmUsPreEqRippleRms                TenthdB,
        docsPnmCmUsPreEqTiltDbPerMhz             TenthdB,
        docsPnmCmUsPreEqGrpDelayVarPkToPk        Unsigned32,
        docsPnmCmUsPreEqGrpDelayVarRms           Unsigned32,
        docsPnmCmUsPreEqPreEqCoAdjStatus         INTEGER,
        docsPnmCmUsPreEqMeasStatus               MeasStatusType,
        docsPnmCmUsPreEqLastUpdateFileName       SnmpAdminString,
        docsPnmCmUsPreEqFileName                 SnmpAdminString
     }

docsPnmCmUsPreEqFileEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object causes the files defined by the 'docsPnmCmUsPreEqFileName' and
        the 'docsPnmCmUsPreEqlastUpdateFileName' objects to be created. The files,
        once created, are available via the 'docsPnmBulkFileTable' mechanism.
        The 'docsPnmCmUsPreEqMeasStatus' object can be checked to determine the
        outcome of setting this object.

        Interaction with other table rows:

        - This object is subject to the rules specified by the
        'docsPnmCmCtlStatus' object. Therefore this object returns
        'inconsistentValue' if set to 'true' while the value of
        'docsPnmCmCtlStatus' is any value other than 'ready'.

        - Setting this value to 'true' will change the value of the
        'docsPnmCmUsPreEqMeasStatus' to 'busy' while the file generation is in
        progress.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - Default values for 'docsPnmCmUsPreEqFileName' and
        'docsPnmCmUsPreEqLastUpdateFileName' are defined; thus, this object may be set
        to 'true' without explicitly setting these values.

        - This object returns 'true' if the CM is actively generating the files.
        Otherwise it returns 'false'.
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmUsPreEqEntry 1 }

docsPnmCmUsPreEqRipplePkToPk OBJECT-TYPE
     SYNTAX      TenthdB
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the value of the peak to peak ripple in the
        magnitude of the equalizer coefficients. This attribute represents the
        ripple across the entire OFDMA channel. This attribute is not stored in
        the data files.

        Note: An algorithm for calculating the ripple and tilt for these
        measurements is provided in sections 6.5 and 6.6 of the SCTE Measurement
        Recommended Practices, Fourth Edition. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmUsPreEqEntry 2 }

docsPnmCmUsPreEqRippleRms OBJECT-TYPE
     SYNTAX      TenthdB
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the value of the RMS ripple in the magnitude
        of the equalizer coefficients. This attribute represents the ripple
        across the entire OFDMA channel. This attribute is not stored in the
        data files.

        Note: An algorithm for calculating the ripple and tilt for these
        measurements is provided in sections 6.5 and 6.6 of the SCTE
        Measurement Recommended Practices, Fourth Edition. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmUsPreEqEntry 3 }

docsPnmCmUsPreEqTiltDbPerMhz OBJECT-TYPE
     SYNTAX      TenthdB
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the tilt in dB per MHz in the magnitude of
        the equalizer coefficients. This attribute represents the tilt across
        the entire OFDMA channel. This attribute is not stored in the data files.

        Note: An algorithm for calculating the ripple and tilt for these
        measurements is provided in sections 6.5 and 6.6 of the SCTE Measurement
        Recommended Practices, Fourth Edition. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmUsPreEqEntry 4 }

docsPnmCmUsPreEqGrpDelayVarPkToPk OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "nSeconds"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the pk to pk GroupDelayVariation
        expressed in units of nSec. This attribute represents the group
        delay variation across the entire OFDMA channel. This attribute is
        not stored in the data files. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmUsPreEqEntry 5 }

docsPnmCmUsPreEqGrpDelayVarRms OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "nSeconds"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the pk to pk GroupDelayVariation expressed
        in units of nSec. This attribute represents the group delay variation
        across the entire OFDMA channel. This attribute is not stored in the
        data files. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmUsPreEqEntry 6 }

docsPnmCmUsPreEqPreEqCoAdjStatus OBJECT-TYPE
     SYNTAX      INTEGER {other(1),
                          success(2),
                          clipped(3),
                          rejected(4)
                         }
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object represents whether the last set of Pre-Equalization
        coefficient adjustments that were fully applied or were only partially
        applied due to excessive ripple or tilt in the Pre-Equalization
        coefficient values. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmUsPreEqEntry 7 }

docsPnmCmUsPreEqMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the file
        is ready for transfer.
        Summary Metrics: These values are not calculated unless a specific
        query of any of the summary metrics has been performed. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsPnmCmUsPreEqEntry 8 }

docsPnmCmUsPreEqLastUpdateFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file at the CM which is to be
        transferred to the PNM server. The data represents the values sent
        to the CM by the CMTS in the last RNG-RSP that contained
        Pre-Equalization updates and is stored as 16 bit integers for the I
        and Q data.

        This object cannot be changed while a file generation is in progress.
        It will return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmUsPreEqMeasStatus' is set to a value of 'busy'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus the CM MAC Address plus the 'epoch time'. The epoch time (also known
        as 'unix time') is defined as the number of seconds that have elapsed
        since midnight Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMUsPreEqLastUpdate_<CM MAC address>_<epoch>

        For example:  PNMUsPreEqLastUpdate_0010181A2D11_1403405123

        The data file is comprised of a header plus the Pre-EQ Data.
        The header is composed of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D07' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         Upstream Channel Id                                   1 byte
         CM MAC Address                                        6 bytes
         CMTS MAC Address                                      6 bytes
         Subcarrier zero frequency in Hz                       4 bytes
         FirstActiveSubcarrierIndex                            4 bytes
         Subcarrier spacing in kHz                             1 byte
         Length in bytes of Pre-EQ Data that follows           4 bytes
         Pre-EQ coefficient Data                               ComplexData
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmUsPreEqEntry 9 }

docsPnmCmUsPreEqFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file at the CM which is to be
        transferred to the PNM server. The data represents the current value of
        the Pre-Equalization values for all of the active subcarriers and is
        stored as 16 bit integers for the I and Q data.

        This object cannot be changed while a file generation is in progress.
        It will return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmUsPreEqMeasStatus' is set to a value of 'busy'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus the CM MAC Address plus the 'epoch time'. The epoch time (also known
        as 'unix time') is defined as the number of seconds that have elapsed
        since midnight Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMUsPreEq_<CM MAC address>_<epoch>

        For example:  PNMUsPreEq_0010181A2D11_1403405123

        The data file is comprised of a header plus the Pre-EQ Data
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D06' (without the quotes)      4 bytes
         Collection Time                                       4 bytes
         Upstream Channel Id                                   1 byte
         CM MAC Address                                        6 bytes
         CMTS MAC Address                                      6 bytes
         Subcarrier zero frequency in Hz                       4 bytes
         FirstActiveSubcarrierIndex                            4 bytes
         Subcarrier spacing in Hz                              1 bytes
         Length in bytes of Pre-EQ Data that follows           4 bytes
         Pre-EQ Coefficient Update Data                        ComplexData
         "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmUsPreEqEntry 10 }

--
-- DOCS-IF3-MIB extension
--
-- This section of objects extends the Spectrum Analyzer objects that are
-- defined in the DOCS-IF-MIB. These objects allow the Spectrum Analyzer Test
-- function to take advantage of the bulk-data collection mechanism and the
-- docsPnmCmCtlStatus objects defined by this MIB.
--
-- FileName, FileEnable, and MeasStatus objects are added to the
-- 'docsIf3CmSpectrumAnalysisCtrlCmd' set of attributes from the IF3 MIB.
-- Additionally, since this MIB adds the 'dsSpectrumAnalyzer' enumeration to
-- the 'docsnmCmCtlTest' object, it is expected that any Spectrum Analyzer Test
-- (defined here or by the DOCS-IF3-MIB, will now be controlled by the
-- 'docsPnmCmCtlStatus' object. This serves to limit the ability of the CM to run
-- only one test at a time.


-- ---------------------------------------------------------------------
-- The CM Spectrum Analysis Extension Objects
-- ---------------------------------------------------------------------

docsIf3CmSpectrumAnalysisCtrlCmdFileEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute, when set to 'true', causes the CM to begin a Spectrum
        Analysis measurement with the parameters defined by the
        docsIf3CmSpectrumAnalysisCtrlCmd set of attributes. In order to set
        this object to 'true', the Enable must already be set to 'true'.

        When the measurement is completed successfully, a file is generated
        and is made available for transfer and the MeasStatus attribute is set to
        'sampleReady'. The file will contain one complete snapshot of the spectrum
         data.

        Setting this object to a value of 'false' instructs the CM to stop
        the measurement.

        Interaction with other table rows:

         - This object is subject to the rules specified by the
        'docsPnmCmCtlStatus' object. Therefore this object returns
        'inconsistentValue' if set to 'true' while the value of
        'docsPnmCmCtlStatus' is any value other than 'ready'.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is unable to perform a spectrum measurement for any reason. Examples
        might include DOCSIS Light Sleep (DLS) mode or battery-backup mode.

       - A default value for 'docsIf31CmSpectrumAnalysisCtrlCmdFileName' is defined;
        thus, this object may be set to 'true' without explicitly setting this value.

        - Setting this object to a value of 'true' will change the value of the
        'docsIf31CmSpectrumAnalysisCtrlCmdMeasStatus' to 'busy'. After completion,
        'docsIf31CmSpectrumAnalysisCtrlCmdMeasStatus' will be changed to reflect
        the status of the test.

        -This object will return a value of 'true' if it is actively taking a
        measurement; otherwise it returns 'false'.
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsIf3CmSpectrumAnalysisCtrlCmd 10 }

docsIf3CmSpectrumAnalysisCtrlCmdMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        An application server will query this value to determine when the file
        is ready for transfer. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     ::= { docsIf3CmSpectrumAnalysisCtrlCmd 11 }

docsIf3CmSpectrumAnalysisCtrlCmdFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
         "This attribute is the name of the file containing the spectrum
         analysis data.

         This value can only be changed while a test is not in progress.
         An attempt to set this value while the value of MeasStatus is
         'busy' will return 'inconsistentValue'.

         If the value of this object is the DEFVAL (empty string), then
         a default filename value will be used. Otherwise, the value set
         will be used as the filename.

         If a default filename value is used, it is generated as the test
         name plus the CM MAC Address plus the 'epoch time'. The epoch
         time (also known as 'unix time') is defined as the number of
         seconds that have elapsed since midnight Coordinated Universal
         Time (UTC), Thursday, 1 January 1970.
         Hence, the format would be:

                PNMSpecAnData_<CM MAC address>_<epoch>

         For example: PNMSpecAnData_0010181A2D11_1403405123

        The data file is comprised of a header plus the Spectrum Analysis
        Data.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D09' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         Channel Id (use zero for this test)                   1 byte
         CM MAC Address                                        6 bytes
         FirstSegmentCenterFrequency                           4 bytes
         LastSegmentCenterFrequency                            4 bytes
         SegmentFrequencySpan                                  4 bytes
         NumBinsPerSegment                                     2 bytes
         EquivalentNoiseBandWidth                              2 bytes
         WindowFunction(SpectrumAnalysisWindowFunction enum)   2 bytes
         Length in bytes of SpecAnData that follows            4 bytes
         Spectrum Analysis Data                   BinAmplitudeFileData

        If the size of the data the CM is commanded to collect would exceed the
        maximum file-size limit of the data collection mechanism, the CM will
        limit the file size accordingly and set the 'MeasStatus' attribute to a
        value of 'sampleTruncated'. If this occurs, the file will contain valid
        data, from the beginning of the capture, but will represent fewer bins
        than configured for the measurement.
        "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         Specification CM-SP-CM-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsIf3CmSpectrumAnalysisCtrlCmd 12 }



--
--
--
--                        docsPnmCMTSObjects
--
--
--

-- ---------------------------------------------------------------------
-- The CMTS Symbol Capture
-- ---------------------------------------------------------------------
docsPnmCmtsDsOfdmSymCapTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmtsDsOfdmSymCapEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of downstream symbol capture is to provide partial
        functionality of a network analyzer to analyze the response of the
        cable plant.

        At the CMTS, the transmitted frequency-domain modulation values of one
        full OFDM symbol before the IFFT are captured and made available for
        analysis. The frequency domain samples are expressed as 16-bit two's
        complement numbers using s3.12 format. This includes the I and Q
        modulation values of all subcarriers in the active bandwidth of the
        OFDM channel, including data subcarriers, pilots, PLC preamble symbols
        and excluded subcarriers. This capture will result in a number of
        samples that depends on the OFDM channel width.

        As examples, for 50 kHz subcarrier spacing in a 192 MHz channel with 204.8
        MHz sampling rate, 3800 samples will be captured; for 25 kHz subcarrier
        spacing in a 192 MHz channel with 204.8 MHz sampling rate, 7600 samples
        will be captured; for 50 kHz subcarrier spacing in a 24 MHz channel with
        a reduced sampling rate of 25.6 MHz, 475 samples would be captured. Note:
        Excluded subcarriers in the guard band on either side of the encompassed
        spectrum are not captured.

        Capturing the input and output of the cable plant
        is equivalent to a wideband sweep of the channel, which permits full
        characterization of the linear and nonlinear response of the downstream
        plant. The MAC provides signaling via the PLC Trigger Message to ensure
        that the same symbol is captured at the CMTS and CM.

        The Downstream Symbol Capture is controlled by setting the
        'docsPnmCmtsDsOfdmSymTrigEnable' object. The status of the capture is
        obtained by reading the value of the 'docsPnmCmDsOfdmSymMeasStatus'
        object. "
     REFERENCE
        "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsObjects 1}

docsPnmCmtsDsOfdmSymCapEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmtsDsOfdmSymCapEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the 'docsPnmCmtsDsOfdmSymCapTable'. An instance
         is dynamically created and exists for an associated ifIndex of the
         physical downstream channel upon which the test defined by this table
         can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex  }
     ::= { docsPnmCmtsDsOfdmSymCapTable 1 }

DocsPnmCmtsDsOfdmSymCapEntry ::=
    SEQUENCE {
        docsPnmCmtsDsOfdmSymTrigEnable            TruthValue,
        docsPnmCmtsDsOfdmSymTrigGroupId           Unsigned32,
        docsPnmCmtsDsOfdmSymFirstActSubCarIdx     Unsigned32,
        docsPnmCmtsDsOfdmSymLastActSubCarIdx      Unsigned32,
        docsPnmCmtsDsOfdmSymRxWindowing           TruthValue,
        docsPnmCmtsDsOfdmSymPlcExtTimestamp       OCTET STRING,
        docsPnmCmtsDsOfdmSymTransactionId         Unsigned32,
        docsPnmCmtsDsOfdmSymSampleRate            Unsigned32,
        docsPnmCmtsDsOfdmSymFftLength             Unsigned32,
        docsPnmCmtsDsOfdmSymMeasStatus            MeasStatusType,
        docsPnmCmtsDsOfdmSymCaptFileName          SnmpAdminString
     }

docsPnmCmtsDsOfdmSymTrigEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "Setting this object to a value of 'true' instructs the CMTS to insert
        a Trigger Message Block in the PLC with a Group ID matching the CM's
        TriggerGroupID. The CMTS captures the Symbol that it designated in the
        Trigger Message Block. The TriggerEnable is a one-shot enable and the
        attribute is disabled when the CMTS has completed the acquisition of
        the designated Symbol.

        Interaction with other table rows:

        - This object returns 'inconsistentValue' if set to 'true' while the
        value of 'docsPnmCmtsDsOfdmSymTrigMeasStatus' is a value of 'busy' for
        this row OR for any row in the table. That is, ONLY ONE ROW IN THE TABLE
        MAY BE ALLOWED TO BE 'true' AT THE SAME TIME.

        - Default values for 'docsPnmCmtsDsOfdmSymCaptFileName',
        and 'docsPnmCmtsDsOfdmSymTrigGroupId' objects are defined; thus, this
        object may be set to 'true' without explicitly setting these values.
        Care should be taken to insure these values are correct for the desired
        test case.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmtsDsOfdmSymTrigMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsDsOfdmSymCapEntry 1 }

docsPnmCmtsDsOfdmSymTrigGroupId OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used by the CMTS to be inserted in the PLC Trigger
        Message Block to identify a CM or a group of CMs expected to perform
        Symbol Capture measurements for the designated symbol.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmtsDsOfdmSymMeasStatus' is
        'busy' will return 'inconsistentValue'."
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmtsDsOfdmSymCapEntry 2 }

docsPnmCmtsDsOfdmSymFirstActSubCarIdx OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object is used to denote the subcarrier index of the lowest
        frequency of the Encompassed Spectrum for the OFDM channel. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmSymCapEntry 3 }

docsPnmCmtsDsOfdmSymLastActSubCarIdx OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object is used to denote the subcarrier index of the highest
        frequency of the Encompassed Spectrum for the OFDM channel. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmSymCapEntry 4 }

docsPnmCmtsDsOfdmSymRxWindowing OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is a flag indicating if vendor proprietary
        windowing was enabled during the capture. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmSymCapEntry 5 }

docsPnmCmtsDsOfdmSymPlcExtTimestamp OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (8))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the 64 bit value of the Timestamp that was sent by
        the CMTS in the PLC frame containing the Trigger Message Block. If the
        exact value of the Extended Timestamp sent in the PLC is unavailable
        at the CMTS, an accuracy of  +/- 100 ms is acceptable. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmSymCapEntry 6 }

docsPnmCmtsDsOfdmSymTransactionId OBJECT-TYPE
     SYNTAX      Unsigned32 (0..255)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the Transaction ID sent by the CMTS in the Trigger
        Message Block. Prior to completion of a measurement this attribute has
        no meaning. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmSymCapEntry 7 }

docsPnmCmtsDsOfdmSymSampleRate OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "Hz"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the FFT sample rate in use by the CM for the
        channel; typically the sample rate for the downstream channel will
        be 204.8MHz. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmSymCapEntry 8 }

docsPnmCmtsDsOfdmSymFftLength OBJECT-TYPE
     SYNTAX      Unsigned32 (512  | 1024 | 2048 |4096 | 8192)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is the FFT length in use by the CM for the channel;
        typically this value is 4096 or 8192 for the Downstream Channel. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmSymCapEntry 9 }

docsPnmCmtsDsOfdmSymMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the measurement
        is complete. "
     REFERENCE
         "DOCSIS 3.1 Cable Modem Operations Support System Interface
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmSymCapEntry 10 }

docsPnmCmtsDsOfdmSymCaptFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file with the captured symbol data at
        the CMTS that is to be downloaded using TFTP by the PNM server.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmtsDsOfdmSymMeasStatus' is
        'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus a unique CCAP identifier (either a loopback address (IPv4 or IPv6)
        or FQDN), plus the 'epoch time'. The epoch time (also known as 'unix time')
        is defined as the number of seconds that have elapsed since midnight
        Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMCcapSymCap_<Unique CCAP Identifier>_<epoch>

        For example: PNMCcapSymCap_ccap1.boulder.cablelabs.com_1403405123

        The data file is comprised of a header plus the Symbol Capture Data.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D65' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         ifIndex                                               4 bytes
         Unique CCAP ID                                      256 bytes
         Subcarrier zero Frequency in Hz                       4 bytes
         PlcExtendedTimeStamp                                  8 bytes
         Subcarrier Spacing in kHz                             1 byte
         FirstActiveSubcarrierIndex                            2 bytes
         LastActiveSubcarrierIndex                             2 bytes
         TriggerGroupId                                        2 bytes
         Transaction ID                                        1 byte
         Length in bytes of Capture Data that follows          4 bytes
         Symbol Capture Data                                   ComplexData
        "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmtsDsOfdmSymCapEntry 11 }

-- ---------------------------------------------------------------------
-- The CMTS Noise Power Ratio Table
-- ---------------------------------------------------------------------
docsPnmCmtsDsOfdmNoisePwrRatioTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmtsDsOfdmNoisePwrRatioEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of downstream NPR measurement is to view the noise,
        interference and intermodulation products underlying a portion of the
        OFDM signal. As an out-of-service test, the CMTS can define an exclusion
        band of zero-valued subcarriers which forms a spectral notch in the
        downstream OFDM signal for all profiles of a given downstream channel.
        The CM provides its normal spectral capture measurements, or symbol
        capture, which permit analysis of the notch depth. A possible use case
        is to observe LTE interference occurring within an OFDM band; another
        is to observe intermodulation products resulting from signal-level
        alignment issues. Since the introduction and removal of a notch affects
        all profiles, causing possible link downtime, this feature is intended
        for infrequent maintenance. "
     REFERENCE
        "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsObjects 2}

docsPnmCmtsDsOfdmNoisePwrRatioEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmtsDsOfdmNoisePwrRatioEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the 'docsPnmCmtsDsOfdmNoisePwrRatioTable'. An instance
         is dynamically created and exists for an associated ifIndex of the
         physical downstream channel upon which the test defined by this table
         can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex  }
     ::= { docsPnmCmtsDsOfdmNoisePwrRatioTable 1 }

DocsPnmCmtsDsOfdmNoisePwrRatioEntry ::=
    SEQUENCE {
        docsPnmCmtsDsOfdmNprStartSubcar     Unsigned32,
        docsPnmCmtsDsOfdmNprStopSubcar      Unsigned32,
        docsPnmCmtsDsOfdmNprEnable          TruthValue,
        docsPnmCmtsDsOfdmNprDuration        Unsigned32
     }

docsPnmCmtsDsOfdmNprStartSubcar OBJECT-TYPE
     SYNTAX      Unsigned32 (0..8191)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the Subcarrier index corresponding to the frequency
        at the start of the spectral notch.

        This value can only be changed while the value of
        'docsPnmCmtsDsOfdmNprEnable' is 'false'. An attempt to set this
        value while the value of 'docsPnmCmtsDsOfdmNprEnable' is 'true'
        will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmNoisePwrRatioEntry 1 }

docsPnmCmtsDsOfdmNprStopSubcar OBJECT-TYPE
     SYNTAX      Unsigned32 (0..8191)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object is the Subcarrier index corresponding to the frequency
        at the upper end of the spectral notch.

        This value can only be changed while the value of
        'docsPnmCmtsDsOfdmNprEnable' is 'false'. An attempt to set this
        value while the value of 'docsPnmCmtsDsOfdmNprEnable' is 'true'
        will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsDsOfdmNoisePwrRatioEntry 2 }

docsPnmCmtsDsOfdmNprEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object is used to enable the CMTS to create the spectral notch.
        The CMTS MAY require the interface to have an ifAdminStatus of 'down'
        before allowing the Enable value to be successfully set to 'true' for
        this test. If the CMTS is unable to create the spectral notch, the
        attempt to set Enable to 'true' must be rejected by the CMTS. The
        Enable flag must be cleared internally by the CMTS when the operation
         is complete.

        Default values for 'docsPnmCmtsDsOfdmNprStartSubcar',
        'docsPnmCmtsDsOfdmNprStopSubcar', and 'docsPnmCmtsDsOfdmNprDuration'
        are defined; thus, this object may be set to 'true' without explicitly
        setting these values. Care should be taken to insure these values are
        correct for the desired test case. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsDsOfdmNoisePwrRatioEntry 3 }

docsPnmCmtsDsOfdmNprDuration OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     UNITS       "seconds"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object indicates the length of time in seconds that the spectral
        notch is to be maintained. The CMTS MAY make the excluded subcarriers
        active after the expiration of the Duration attribute. There is no
        expectation that CMTS will re-activate the excluded subcarriers
        immediately after the expiration of the timer. It is recommended that
        the CMTS use the OCD message to create the spectral notch.

        This value can only be changed while value of
        'docsPnmCmtsDsOfdmNprEnable' is 'false'. An attempt to set this
        value while the value of 'docsPnmCmtsDsOfdmNprEnable' is 'true'
        will return 'inconsistentValue'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 600 }
     ::= { docsPnmCmtsDsOfdmNoisePwrRatioEntry 4 }

-- ---------------------------------------------------------------------
-- The CMTS Upstream Capture for Active and Quiet Probes
-- ---------------------------------------------------------------------
docsPnmCmtsUsOfdmaAQProbeTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmtsUsOfdmaAQProbeEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of upstream capture is to measure plant response and view
        the underlying noise floor, by capturing at least one OFDMA symbol
        during a scheduled active or quiet probe. An active probe provides the
        partial functionality of a network analyzer, since the input is known
        and the output is captured. This permits full characterization of the
        linear and nonlinear response of the upstream cable plant. A quiet probe
        provides an opportunity to view the underlying noise and ingress while
        no traffic is being transmitted in the OFDMA band being measured.

        The PNM server selects an active CM to analyze by specifying its MAC
        address, or performs a quiet probe measurement. When enabled to perform
        the capture, the CMTS selects a specified transmitting CM, or quiet
        period when no CMs are transmitting, for the capture. The CMTS sets up
        the capture as described in MULPIv3.1, selecting either an active SID
        corresponding to the specified MAC address or the idle SID, and defining
        an active or quiet probe. The active probe symbol for this capture
        normally includes all non-excluded subcarriers across the upstream OFDMA
        channel, with pre-equalization on or off as specified in the MIB. The quiet
        probe symbol normally includes all subcarriers, that is, during the quiet
        probe time there are no transmissions in the given upstream OFDMA channel.
        For the quiet probe, the CMTS captures samples of at least one full OFDMA
        symbol including the guard interval. The CMTS begins the capture with the
        first symbol of the specified probe. The sample rate is the FFT sample rate
        (102.4 Msps).

        The CMTS reports the list of excluded subcarriers, the cyclic prefix length,
        and the transmit window rolloff period in order to fully define the
        transmitted waveform. The CMTS also reports the index of the starting sample
        used by the receiver for its FFT. For possible comparison with other events,
        the CMTS reports the timestamp corresponding to the beginning of the probe.
        In the case where the P-MAPs for the OFDMA upstream being analyzed are being
        sent in an OFDM downstream, the timestamp reported is the extended timestamp,
        while in a case with OFDMA upstream channels but no OFDM downstream channels,
        the reported timestamp is the D3.0 timestamp. For an active probe, the CMTS
        reports the contents of the Probe Information Element (P-IE) message
        describing that probe. "
     REFERENCE
        "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsObjects 3}

docsPnmCmtsUsOfdmaAQProbeEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmtsUsOfdmaAQProbeEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the 'docsPnmCmtsUsOfdmaAQProbeTable'. An
         instance is dynamically created and exists for an associated ifIndex
         of the physical upstream channel upon which the test defined by this
         table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex  }
     ::= { docsPnmCmtsUsOfdmaAQProbeTable 1 }

DocsPnmCmtsUsOfdmaAQProbeEntry ::=
    SEQUENCE {
        docsPnmCmtsUsOfdmaAQProbeCmMacAddr        MacAddress,
        docsPnmCmtsUsOfdmaAQProbeUseIdleSid       TruthValue,
        docsPnmCmtsUsOfdmaAQProbePreEqOn          TruthValue,
        docsPnmCmtsUsOfdmaAQProbeEnable           TruthValue,
        docsPnmCmtsUsOfdmaAQProbeTimeout          Unsigned32,
        docsPnmCmtsUsOfdmaAQProbeNumSymToCapt     Unsigned32,
        docsPnmCmtsUsOfdmaAQProbeMaxCaptSymbols   Unsigned32,
        docsPnmCmtsUsOfdmaAQProbeNumSamples       Unsigned32,
        docsPnmCmtsUsOfdmaAQProbeTimeStamp        OCTET STRING,
        docsPnmCmtsUsOfdmaAQProbeMeasStatus       MeasStatusType,
        docsPnmCmtsUsOfdmaAQProbeFileName         SnmpAdminString
     }

docsPnmCmtsUsOfdmaAQProbeCmMacAddr OBJECT-TYPE
     SYNTAX      MacAddress
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the MAC address of the CM transmitting the
        probe to be measured.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaAQProbeMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { '000000000000'H }
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 1 }

docsPnmCmtsUsOfdmaAQProbeUseIdleSid OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute, when enabled, causes the CMTS to measure the channel
        during a quiet period when no CM is transmitting.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaAQProbeMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 2 }

docsPnmCmtsUsOfdmaAQProbePreEqOn OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute, when enabled, causes the CMTS to enable
        pre-equalization in the Probe Information Element for the CM
        transmitting the probe to be measured.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaAQProbeMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 3 }

docsPnmCmtsUsOfdmaAQProbeEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute causes the CMTS to begin the measurement of a probe for
        the selected CM or for a quiet period if the UseIdleSid attribute is
        enabled. The Enable attribute is cleared internally by the CMTS when
        the measurement has been completed.

        Setting this object to a value of 'false' instructs the CMTS to stop
        the measurement. In this case the value of 'docsPnmCmtsUsOfdmaAQProbeMeasStatus'
        will be set to 'inactive'.

        When read, this object returns 'true' if the CMTS is actively taking a
        measurement, otherwise it returns 'false'.


        Interaction with other table rows:

        - This object returns 'inconsistentValue' if set to 'true' while the
        value of 'docsPnmCmtsUsOfdmaAQProbeMeasStatus' is a value of 'busy'.

        - Default values are provided for read-write objects in this table; thus,
         this object may be set to 'true' without explicitly setting these values.
         However, the default values may not be appropriate and care should be
         taken to insure these values are correct for the desired test case.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmDsOfdmSymMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 4 }

docsPnmCmtsUsOfdmaAQProbeTimeout OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     UNITS       "seconds"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute provides a timeout for the measurement if the CMTS is
        unable to perform the measurement for some reason. A value of zero for
        the Timeout attribute means that the measurement continues to be active
        until the measurement is completed or until the Enable attribute is cleared.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaAQProbeMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 1800 }
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 5 }

docsPnmCmtsUsOfdmaAQProbeNumSymToCapt OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     UNITS       "symbols"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object represents the number of symbols the CMTS is to capture
        for the modem whose probe is being measured or the number of symbol
        times to measure for the idle Sid.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaAQProbeMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section. "
     DEFVAL { 1 }
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 6 }

docsPnmCmtsUsOfdmaAQProbeMaxCaptSymbols OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object represents the number of symbols the CMTS can capture for
        one measurement. Typically for a 50kHz Subcarrier Spacing the CMTS can
        capture two symbols and for 25kHz, the CMTS can capture one symbol. In
        order to capture more than one symbol the CMTS would need to schedule
        multiple probe opportunities for the CM whose probe is being measured. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 7 }

docsPnmCmtsUsOfdmaAQProbeNumSamples OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     UNITS       "samples"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object represents the number of FFT samples used for the
        measurement. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 8 }

docsPnmCmtsUsOfdmaAQProbeTimeStamp OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (8))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This object represents the timestamp corresponding to the time when the
        measurement was performed. In the case in which the Primary Downstream
        is an OFDM channel this is the 64 bit timestamp. In the case in which
        the Primary Downstream is an SC-QAM channel this is the 32 bit timestamp.
        If the 32 bit timestamp is used, the 32 most significant bits of the
        timestamp are set to zero. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 9 }

docsPnmCmtsUsOfdmaAQProbeMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        When the Status = 'SampleReady', the CCAP has completed the measurement
        and the Enable attribute has been cleared. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 10 }

docsPnmCmtsUsOfdmaAQProbeFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file, with the captured probe data,
        at the CMTS that is to be downloaded using TFTP to the PNM server.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmtsUsOfdmaAQProbeMeasStatus'
        is 'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus a unique CCAP identifier (either a loopback address (IPv4 or IPv6)
        or FQDN), plus the 'epoch time'. The epoch time (also known as 'unix time')
        is defined as the number of seconds that have elapsed since midnight
        Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMCcapAQProbe_<Unique CCAP Identifier>_<epoch>

        For example: PNMCcapAQProbe_cap1.boulder.cablelabs.com_1403405123

        The data file is comprised of a header plus the Probe Capture Data.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D66' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         ifIndex                                               4 bytes
         Unique CCAP ID                                      256 bytes
         Subcarrier zero frequency in Hz                       4 bytes
         Subcarrier Spacing in kHz                             1 byte
         Length in bytes of Excluded Subcarrier data           4 bytes
         Excluded subcarrier data                              ExclSubCarrierType
         Length in bytes of Probe Capture data                 4 bytes
         Probe Capture data                                    CompexData
        "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL {""}
     ::= { docsPnmCmtsUsOfdmaAQProbeEntry 11 }

-- ---------------------------------------------------------------------
-- The CMTS Upstream Impulse Noise Statistics
-- ---------------------------------------------------------------------
docsPnmCmtsUsImpNoiseTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmtsUsImpNoiseEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "This table provides statistics of burst/impulse noise occurring in a
        selected narrow band. A bandpass filter is positioned in an unoccupied
        upstream band. A threshold is set, energy exceeding the threshold
        triggers the measurement of an event, and energy falling below the
        threshold ends the event. An optional feature allows the threshold to
        be set to zero, in which case the average power in the band will be
        measured. The measurement is time-stamped using the D3.0 field of the
        64-bit extended timestamp (bits 9-40, where bit 0 is the LSB), which
        provides a resolution of 98 ns and a range of 7 minutes.

        The CMTS provides the capability to capture the following statistics
        in a selected band up to 5.12 MHz wide: Timestamp of event, Duration of
        event, Average power of event.
        The CMTS provides a time history buffer of up to 1024 events. In steady
        state operation, a ring buffer provides the measurements of the last 1024
        events that occurred while the measurement was enabled. "
     REFERENCE
        "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsObjects 4}

docsPnmCmtsUsImpNoiseEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmtsUsImpNoiseEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmtsUsImpNoiseTable. An instance
         is dynamically created and exists for an associated ifIndex of the
         physical upstream channel upon which the test defined by this table
         can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex  }
     ::= { docsPnmCmtsUsImpNoiseTable 1 }

DocsPnmCmtsUsImpNoiseEntry ::=
    SEQUENCE {
        docsPnmCmtsUsImpNoiseEnable            TruthValue,
        docsPnmCmtsUsImpNoiseFreeRunDuration   Unsigned32,
        docsPnmCmtsUsImpNoiseStTrigLvl         Unsigned32,
        docsPnmCmtsUsImpNoiseEndTrigLvl        Unsigned32,
        docsPnmCmtsUsImpNoiseCenterFrq         Unsigned32,
        docsPnmCmtsUsImpNoiseMeasBw            Unsigned32,
        docsPnmCmtsUsImpNoiseNumEvtsCnted      Unsigned32,
        docsPnmCmtsUsImpNoiseLastEvtTimeStamp  OCTET STRING,
        docsPnmCmtsUsImpNoiseLastEvtDuration   Unsigned32,
        docsPnmCmtsUsImpNoiseLastEvtAvgPwr     Integer32,
        docsPnmCmtsUsImpNoiseMeasStatus        MeasStatusType,
        docsPnmCmtsUsImpNoiseFileName          SnmpAdminString
     }

docsPnmCmtsUsImpNoiseEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object causes the CMTS to begin the measurement of a probe for
        the selected CM or for a quiet period if the UseIdleSid attribute is
        enabled. The Enable attribute is cleared internally if the
        StartTriggerLevel is set to zero and the FreeRunDuration has expired.
        If the StartTriggerLevel is greater than zero, clearing the Enable
        causes the CMTS to generate the file of impulse noise data. If the
        NumEventsCounted is zero when the Enable is cleared, no file will be
        created.

        Interaction with other table rows:

        - This object returns 'inconsistentValue' if set to 'true' while the
        value of 'docsPnmCmtsUsImpNoiseMeasStatus' is a value of 'busy'.

        - Default values are provided for read-write objects in this table; thus,
         this object may be set to 'true' without explicitly setting these values.
         However, the default values may not be appropriate and care should be
         taken to insure these values are correct for the desired test case.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmtsUsImpNoiseMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsImpNoiseEntry 1 }

docsPnmCmtsUsImpNoiseFreeRunDuration OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65536)
     UNITS       "seconds"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute provides length of time to perform the measurement if
        the StartTriggerLevel is set to zero.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsImpNoiseMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    DEFVAL { 60 }
     ::= { docsPnmCmtsUsImpNoiseEntry 2 }

docsPnmCmtsUsImpNoiseStTrigLvl OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "microvolts"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "An individual burst event starts when the burst noise exceeds the
        StartTriggerLevel. If the StartTriggerLevel is set to zero then the
        free run measurement starts when the Enable is set and free runs for
        the FreeRunDuration or until the Enable is cleared.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsImpNoiseMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    DEFVAL { 300 }
     ::= { docsPnmCmtsUsImpNoiseEntry 3 }

docsPnmCmtsUsImpNoiseEndTrigLvl OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "microvolts"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "The measurement of an individual burst event ends when the burst noise
        falls below the EndTriggerLevel. If the StartTriggerLevel is set to zero
        then the EndTriggerLevel is not used and the measurement free runs for
        the FreeRunDuration.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsImpNoiseMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 150 }
     ::= { docsPnmCmtsUsImpNoiseEntry 4 }

docsPnmCmtsUsImpNoiseCenterFrq OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "Hz"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute defines the center frequency for the noise power measurement.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsImpNoiseMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 7000000 }
     ::= { docsPnmCmtsUsImpNoiseEntry 5 }

docsPnmCmtsUsImpNoiseMeasBw OBJECT-TYPE
     SYNTAX      Unsigned32 (160 |320 |640 |1280 |2560 |5120)
     UNITS       "kHz"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute defines the bandwidth for the noise power measurement.
        The MeasurementBw is the -3 dB bandwidth; the occupied bandwidth is
        typically 1.25 times the measurement bandwidth.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsImpNoiseMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    DEFVAL { 2560 }
     ::= { docsPnmCmtsUsImpNoiseEntry 6 }

docsPnmCmtsUsImpNoiseNumEvtsCnted OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to indicate how many impulse noise events have
        been recorded since the enable was set to true. This value will be 1024
        in steady state, after the ring buffer has filled with measurements. If
        the StartTriggerLevel is set to zero then the NumEventsCounted will be
        set to 1 when the FreeRunDuration has expired and the Enable has been
        internally cleared. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    ::= { docsPnmCmtsUsImpNoiseEntry 7 }

docsPnmCmtsUsImpNoiseLastEvtTimeStamp OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (8))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute provides represents the timestamp corresponding to the
        start of the last recorded event. The measurement is time-stamped using
        the 64-bit extended timestamp. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    ::= { docsPnmCmtsUsImpNoiseEntry 8 }

docsPnmCmtsUsImpNoiseLastEvtDuration OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "nanoseconds"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute provides represents the time corresponding to the
        duration of the last recorded event. The EventDuration is expressed in
        ns."
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    ::= { docsPnmCmtsUsImpNoiseEntry 9 }

docsPnmCmtsUsImpNoiseLastEvtAvgPwr OBJECT-TYPE
     SYNTAX      Integer32
     UNITS       "dBmV"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the average power measured during the last
        recorded event. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    ::= { docsPnmCmtsUsImpNoiseEntry 10 }

docsPnmCmtsUsImpNoiseMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        When the Status = SampleReady, the CCAP has completed the measurement
        and the Enable attribute has been cleared. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    ::= { docsPnmCmtsUsImpNoiseEntry 11 }

docsPnmCmtsUsImpNoiseFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file with the captured impulse noise
        data at the CMTS that is to be downloaded using TFTP to the PNM server.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmtsUsImpNoiseMeasStatus'
        is 'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus a unique CCAP identifier (either a loopback address (IPv4 or IPv6)
        or FQDN), plus the 'epoch time'. The epoch time (also known as 'unix time')
        is defined as the number of seconds that have elapsed since midnight
        Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMCcapImpNoise_<Unique CCAP Identifier>_<epoch>

        For example: PNMCcapImpNoise_ccap1.boulder.cablelabs.com_1403405123

        The data file is created when the Enable is cleared by the PNM server.
        If the NumEventsCounted attribute is zero when the Enable is cleared,
        then no file will be created by the CMTS.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D67' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         ifIndex                                               4 bytes
         Unique CCAP ID                                      256 bytes
         Start trigger level                                   4 bytes
         End trigger level                                     4 bytes
         Number of events being reported                       4 bytes
         Length (in bytes) of Impulse Event Data               4 bytes
         Impulse Noise Capture Data                            ImpulseNoiseEventType
        "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
    DEFVAL { "" }
    ::= { docsPnmCmtsUsImpNoiseEntry 12 }

-- ---------------------------------------------------------------------
-- The CMTS Upstream Histogram
-- ---------------------------------------------------------------------
docsPnmCmtsUsHistTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmtsUsHistEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of the upstream histogram is to provide a measurement of
        nonlinear effects in the channel such as amplifier compression and
        laser clipping. For example, laser clipping causes one tail of the
        histogram to be truncated and replaced with a spike. When the
        UpstreamHistogram Enable attribute is set to 'true', the CMTS will begin
        capturing the histogram of time domain samples at the wideband front
        end of the receiver (full upstream band). The histogram is two-sided;
        that is, it encompasses values from far-negative to far-positive values
        of the samples. The histogram will have 256 equally spaced bins. These
        bins typically correspond to the 8 MSBs of the wideband analog-to-digital
        converter (ADC). The histogram dwell count, a 32-bit unsigned integer,
        is the number of samples observed while counting hits for a given bin,
        and may have the same value for all bins. The histogram hit count, a
        32-bit unsigned integer, is the number of samples falling in a given bin.
        The CMTS will report the dwell count per bin and the hit count per bin.
        When enabled, the CMTS will compute a histogram with a dwell of at least
        10 million samples at each bin in 30 seconds or less. The CMTS will
        continue accumulating histogram samples until it is restarted, disabled
        or times out. If the highest dwell count approaches its 32-bit overflow
        value, the CMTS will save the current set of histogram values and reset
        the histogram, so that in a steady-state condition a complete measurement
        is always available. The CMTS will be capable of reporting the start and
        end time of the histogram measurement using bits 21-52 of the extended
        timestamp, which provides a 32-bit timestamp value with resolution of
        0.4 ms and range of 20 days. "
     REFERENCE
        "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsObjects 5}

docsPnmCmtsUsHistEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmtsUsHistEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmtsUsHistTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex }
     ::= { docsPnmCmtsUsHistTable 1 }

DocsPnmCmtsUsHistEntry ::=
    SEQUENCE {
        docsPnmCmtsUsHistEnable          TruthValue,
        docsPnmCmtsUsHistRestart         TruthValue,
        docsPnmCmtsUsHistTimeOut         Unsigned32,
        docsPnmCmtsUsHistSymmetry        TruthValue,
        docsPnmCmtsUsHistDwellCnts       OCTET STRING,
        docsPnmCmtsUsHistHitCnts         OCTET STRING,
        docsPnmCmtsUsHistCntStartTime    OCTET STRING,
        docsPnmCmtsUsHistCntEndTime      OCTET STRING,
        docsPnmCmtsUsHistMeasStatus      MeasStatusType,
        docsPnmCmtsUsHistFileName        SnmpAdminString
     }

docsPnmCmtsUsHistEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "Setting this object to a value of 'true' instructs the CMTS to begin
        collection of histogram data and when enabled, the CMTS continues
        producing new data at its own rate.

        This value is only allowed to be set to 'true' if the value of
        'docsPnmCmtsUsHistMeasStatus' is a value other than 'busy'. Setting
        this value to 'true' will change the value of the
        'docsPnmCmtsUsHistMeasStatus' to 'busy'.

        Setting this object to a value of 'false' instructs the CM to stop
        the collection of histogram data.

        This object returns 'true' if the CMTS is actively collecting histogram
        data. Otherwise it returns 'false'.


        Interaction with other table rows:

        - This object returns 'inconsistentValue' if set to 'true' while the
        value of 'docsPnmCmtsUsHistMeasStatus' is a value of 'busy' for this row
        OR for any row in the table. That is, ONLY ONE ROW IN THE TABLE MAY BE
        ALLOWED TO BE 'true' AT THE SAME TIME.

        - This object returns 'inconsistentValue' if set to 'true' while the
        CM is in DOCSIS Light Sleep (DLS) mode or the CM is in battery-backup mode.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmtsUsHistMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsHistEntry 1 }

docsPnmCmtsUsHistRestart OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used to restart collection of histogram data.
        If 'docsPnmCmtsUsHistEnable' is 'true' then the setting this object to
        'true' clears the old data and starts collecting a new set of
        histogram data. The Restart attribute is cleared when the
        'docsPnmCmtsUsHistEnable'attribute is transitions from 'false' to 'true'.
        No action is taken if this object is set to 'true' and
        'docsPnmCmtsUsHistEnable' is 'false'.

        Setting this object to a value of 'false' has no action.
        This object always returns 'false'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsHistEntry 2 }

docsPnmCmtsUsHistTimeOut OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     UNITS       "seconds"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object sets a seconds time-out timer for capturing histogram data.

        When the timeout expires the 'docsPnmCmtsUsHistEnable' object will be set to
        'false' and the capture will stop. When this happens, the data collected up
        to this point will be saved in the the file defined by the
        'docsPnmCmtsUsHistFileName', and the value of 'docsPnmCmtsUsHistMeasStatus'
        will be set to 'sampleReady'.

        Setting this value does not start a capture. Captures can only be started by
        setting the 'docsPnmCmtsUsHistEnable' object.

        If this object is written while the 'docsPnmCmtsUsHistEnable' object is 'true',
        the timer is restarted.

        If this object is set to a value of 'zero', there is no timeout and the
        collection of data will continue indefinitely.

        This object returns the value that it was last set with. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 1800 }
     ::= { docsPnmCmtsUsHistEntry 3 }

docsPnmCmtsUsHistSymmetry OBJECT-TYPE
     SYNTAX      TruthValue
     UNITS       "Bins"
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to indicate whether 256 or 255 bins were used
        for the measurement.

        Even Symmetry = 'false' (default):
        The histogram has even symmetry about the origin. There is no bin center
        lying directly at the origin; rather, two bin centers straddle the origin
        at 0.5. All bins with indices 0-255 contain valid hit-count data.
        The histogram bin centers are offset from the corresponding 8-bit
        twos-complement integer values by 1/2, that is, bin center = twos complement
        value + 0.5.

        Odd Symmetry = 'true':
        The histogram has odd symmetry about the origin. There is a bin center
        lying at the origin. The bin with index 0 is not used and returns the
        value 0. The bins with indices 1 to 255 contain valid hit-count data.
        The histogram bin centers are located on the corresponding 8-bit
        twos-complement integer values.

        The following table shows the defined histogram bin centers for the
        cases of even and odd symmetry.

        Bin      Bin Center       Bin Center
        Index    Even Symmetry    Odd Symmetry

         0          -127.5        Bin not used
         1          -126.5         -127
         2          -125.5         -126
         ...          ...          ...
         127         -0.5           -1
         128          0.5            0
         129          1.5            1
         ...          ...          ...
         253         125.5          125
         254         126.5          126
         255         127.5          127

        This object cannot be changed while a capture is in progress. The CMTS
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsHistMeasStatus' is 'busy'.
        "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsHistEntry 4 }

docsPnmCmtsUsHistDwellCnts OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (1..1024))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the total number Dwell Counts for each
        bin for the Current capture. If the dwell count for all bins is the
        same then only a single value is reported. The value for each bin is
        reported as a 32 bit hex value. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsHistEntry 5 }

docsPnmCmtsUsHistHitCnts OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (1..1024))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the total number Hit Counts for each bin
        for the Current capture. If odd symmetry is used then there will 255 bins.
        The value for each bin is reported as a 32 bit hex value. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsHistEntry 6 }

docsPnmCmtsUsHistCntStartTime OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (8))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the time when the collection of
        histogram data was started. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsHistEntry 7 }

docsPnmCmtsUsHistCntEndTime OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (8))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the time when the collection of
        histogram data was stopped. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsHistEntry 8 }

docsPnmCmtsUsHistMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the file
        is ready for transfer. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsHistEntry 9 }

docsPnmCmtsUsHistFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This object is the name of the file at the CMTS which is to be
        transferred to the PNM server. The data is stored as 32 bit integers
        for the hit and dwell count values. This value can only be changed
        while a test is not in progress. An attempt to set this value while the
        value of 'docsPnmCmtsUsHistMeasStatus' is 'busy' will return
        'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a
        default filename value will be used. Otherwise the value set will be
        used as the filename.

        If a default filename value is used, it is generated as the test name
        plus a unique CCAP identifier (either a loopback address (IPv4 or IPv6)
        or FQDN), plus the 'epoch time'. The epoch time (also known as 'unix time')
        is defined as the number of seconds that have elapsed since midnight
        Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMCcapHist_<Unique CCAP Identifier>_<epoch>

        For example:  PNMCcapHist_ccap1.boulder.cablelabs.com_1403405123

        The data file is comprised of a header plus the Histogram Data. The header
        is comprised of ordered fixed-length fields. Unless otherwise specified,
        the header fields contain hex values that are right-justified within the
        field. If necessary the field is left-padded with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D68' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         ifIndex                                               4 bytes
         Unique CCAP ID                                      256 bytes
         CntStartTime                                          4 bytes
         CntEndTime                                            4 bytes
         Length in bytes of Dwell Count values that follows    4 bytes
         DwellCount Values                                     (1-4096)*4 bytes each
         Length in bytes of HitCount values that follow        4 bytes
         HitCount Values                                       (1-4096)*4 bytes each
         "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmtsUsHistEntry 10 }

-- ---------------------------------------------------------------------
-- The CMTS Upstream OFDMA Channel Receive Power
-- ---------------------------------------------------------------------
docsPnmCmtsUsOfdmaRxPwrTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmtsUsOfdmaRxPwrEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The purpose of the upstream channel power metric is to provide an
        estimate of the total received power in a specified OFDMA channel at
        the F connector input of the CMTS line card for a given user. The
        measurement is based on upstream probes, which are typically the same
        probes used for pre-equalization adjustment.

        The CMTS measures the total power of the probe subcarriers received
        from the CM.

        For channels without boosted pilots, the CCAP calculates the average
        power per subcarrier (Paverage) and then calculates the power normalized
        to 1.6 MHz as a)Paverage + 10 * log10(32) for 50 kHz subcarrier spacing,
        or as b)Paverage + 10 *log10(64) for 25 kHz subcarrier spacing.

        For channels with boosted pilots, the CCAP calculates the average power
        per subcarrier (Paverage) and then calculates the power normalized to
        1.6 MHz as a)Paverage + 10 * log10(32) + 1 dB for 50 kHz subcarrier
        spacing, or as b)Paverage + 10 *log10(64) + 0.5 dB for 25 kHz subcarrier
        spacing.

        NOTE: The CMTS would also use that adjusted value for comparison with the
        Target Receive Power for the purposes of transmit power adjustments in the
        RNG-RSP. "
     REFERENCE
        "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsObjects 6}

docsPnmCmtsUsOfdmaRxPwrEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmtsUsOfdmaRxPwrEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmtsUsOfdmaRxPwrTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex }
     ::= { docsPnmCmtsUsOfdmaRxPwrTable 1 }

DocsPnmCmtsUsOfdmaRxPwrEntry ::=
    SEQUENCE {
        docsPnmCmtsUsOfdmaRxPwrEnable           TruthValue,
        docsPnmCmtsUsOfdmaRxPwrCmMac            MacAddress,
        docsPnmCmtsUsOfdmaRxPwrPreEq            TruthValue,
        docsPnmCmtsUsOfdmaRxPwrNumAvgs          Unsigned32,
        docsPnmCmtsUsOfdmaRxPwrOnePtSix         TenthdB,
        docsPnmCmtsUsOfdmaRxPwrMeasStatus       MeasStatusType
     }

docsPnmCmtsUsOfdmaRxPwrEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute causes the CMTS to begin a measurement of the received
        upstream channel power for the CM whose MAC address was specified in
        the CmMac attribute.

        Interaction with other table rows:

        - This object returns 'inconsistentValue' if set to 'true' while the
        value of 'docsPnmCmtsUsOfdmaRxPwrMeasStatus' is a value of 'busy'.

        - Default values are provided for read-write objects in this table; thus,
         this object may be set to 'true' without explicitly setting these values.
         However, the default values may not be appropriate and care should be
         taken to insure these values are correct for the desired test case.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmtsUsOfdmaRxPwrMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsOfdmaRxPwrEntry 1 }

docsPnmCmtsUsOfdmaRxPwrCmMac OBJECT-TYPE
     SYNTAX      MacAddress
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the MAC address of the CM whose Received
        upstream channel power is being measured.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaRxPwrMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { '000000000000'H }
     ::= { docsPnmCmtsUsOfdmaRxPwrEntry 2 }

docsPnmCmtsUsOfdmaRxPwrPreEq OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used by the CMTS to enable or disable pre-equalization
        of the probe. The pre-equalization is controlled by a bit in the Probe
        Information Element sent in a MAP to the CM.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaRxPwrMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsOfdmaRxPwrEntry 3 }

docsPnmCmtsUsOfdmaRxPwrNumAvgs OBJECT-TYPE
     SYNTAX      Unsigned32 (0..255)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute controls the time average over the number of probes the
        CCAP will use to calculate the docsPnmCmtsUsOfdmaRxPwrOnePtSix. The
        average is simply the sum of the docsPnmCmtsUsOfdmaRxPwrOnePtSix values
        divided by the NumAverages.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaRxPwrMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 1 }
     ::= { docsPnmCmtsUsOfdmaRxPwrEntry 4 }

docsPnmCmtsUsOfdmaRxPwrOnePtSix OBJECT-TYPE
     SYNTAX      TenthdB
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute represents the average power of the probe measured by
        the CMTS, reported as the Power Spectral Density in an equivalent
        6.4 MHz spectrum, for the CM whose MAC address was specified in the
        CmMac attribute. If the NumberOfAverages attribute was greater than one,
        then this attribute represents the accumulated average 6.4 MHz PSD. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsOfdmaRxPwrEntry 5 }

docsPnmCmtsUsOfdmaRxPwrMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        When the Status = SampleReady, the CCAP is ready for the Upstream
        Power data to be read. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsOfdmaRxPwrEntry 6 }

-- ---------------------------------------------------------------------
-- The CMTS Upstream Receive Modulation Error Ratio (RxMER) Per Subcarrier
-- ---------------------------------------------------------------------
docsPnmCmtsUsOfdmaRxMerTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmtsUsOfdmaRxMerEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "This item provides measurements of the upstream receive modulation
        error ratio (RxMER) for each subcarrier. The CMTS measures the RxMER
        using an upstream probe, which is not subject to symbol errors as data
        subcarriers would be. The probes used for RxMER measurement are typically
        distinct from the probes used for pre-equalization adjustment. For the
        purposes of this measurement, RxMER is defined as the ratio of the average
        power of the ideal QAM constellation to the average error-vector power.
        The error vector is the difference between the equalized received probe
        value and the known correct probe value. If some subcarriers (such as
        exclusion bands) cannot be measured by the CMTS, the CMTS indicates that
        condition in the measurement data for those subcarriers. "
     REFERENCE
        "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsObjects 7}

docsPnmCmtsUsOfdmaRxMerEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmtsUsOfdmaRxMerEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmtsUsOfdmaRxMerTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex }
     ::= { docsPnmCmtsUsOfdmaRxMerTable 1 }

DocsPnmCmtsUsOfdmaRxMerEntry ::=
    SEQUENCE {
        docsPnmCmtsUsOfdmaRxMerEnable         TruthValue,
        docsPnmCmtsUsOfdmaRxMerCmMac          MacAddress,
        docsPnmCmtsUsOfdmaRxMerPreEq          TruthValue,
        docsPnmCmtsUsOfdmaRxMerNumAvgs        Unsigned32,
        docsPnmCmtsUsOfdmaRxMerMeasStatus     MeasStatusType,
        docsPnmCmtsUsOfdmaRxMerFileName       SnmpAdminString
     }

docsPnmCmtsUsOfdmaRxMerEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute causes the CMTS to begin a measurement of the received
        MER per subcarrier for the CM whose MAC address was specified in the
        CmMac attribute.

        Interaction with other table rows:

        - This object returns 'inconsistentValue' if set to 'true' while the
        value of 'docsPnmCmtsUsOfdmaRxMerMeasStatus' is a value of 'busy'.

        - Default values are provided for read-write objects in this table; thus,
         this object may be set to 'true' without explicitly setting these values.
         However, the default values may not be appropriate and care should be
         taken to insure these values are correct for the desired test case.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmtsUsOfdmaRxMerMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsOfdmaRxMerEntry 1 }

docsPnmCmtsUsOfdmaRxMerCmMac OBJECT-TYPE
     SYNTAX      MacAddress
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute represents the MAC address of the CM whose Rx MER is
        being measured.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaRxMerMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { '000000000000'H }
     ::= { docsPnmCmtsUsOfdmaRxMerEntry 2 }

docsPnmCmtsUsOfdmaRxMerPreEq OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used by the CMTS to enable or disable Pre
        Equalization of the probe. The Pre Equalization is controlled by a
        bit in the Probe Information Element sent in a MAP to the CM.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaRxMerMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsOfdmaRxMerEntry 3 }

docsPnmCmtsUsOfdmaRxMerNumAvgs OBJECT-TYPE
     SYNTAX      Unsigned32 (0..255)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute controls the number of probes the CMTS will use to
        calculate the Rx MER per subcarrier. The average will be computed
        using the 'leaky integrator' method, where reported Rx MER per
        subcarrier value = alpha*accumulated values + (1-alpha)*current value.
        Alpha is one minus the reciprocal of the number of averages. For
        example, if N=25, then alpha = 0.96. A value of 1 indicates no
        averaging. Re-writing the number of averages will restart the
        averaging process.  If there are no accumulated values, the
        accumulators are made equal to the first measured bin amplitudes.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsOfdmaRxMerMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsOfdmaRxMerEntry 4 }

docsPnmCmtsUsOfdmaRxMerMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        When the MeasStatus = SampleReady, the CMTS is ready for the RxMER
        data to be read. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsOfdmaRxMerEntry 5 }

docsPnmCmtsUsOfdmaRxMerFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file with the RxMER data for a
        specified CM at the CMTS that is to be downloaded using TFTP to the
        PNM server. This value can only be changed while a test is not in
        progress. An attempt to set this value while the value of
        'docsPnmCmtsUsOfdmaRxMerMeasStatus' is 'busy' will return
        'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a
        default filename value will be used. Otherwise the value set will be
        used as the filename.

        If a default filename value is used, it is generated as the test name
        plus a unique CCAP identifier (either a loopback address (IPv4 or IPv6)
        or FQDN), plus the 'epoch time'. The epoch time (also known as 'unix time')
        is defined as the number of seconds that have elapsed since midnight
        Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMCcapRxMER_<Unique CCAP Identifier>_<epoch>

        For example: PNMCcapRxMER_ccap1.boulder.cablelabs.com_1403405123

        The data file is comprised of a header plus the Histogram Data. The header
        is comprised of ordered fixed-length fields. Unless otherwise specified,
        the header fields contain hex values that are right-justified within the
        field. If necessary the field is left-padded with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D69' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         ifIndex                                               4 bytes
         Unique CCAP ID                                      256 bytes
         CM MAC Address                                        6 bytes
         Number of Averages                                    2 bytes
         PreEq On or Off                                       1 byte
         Subcarrier zero center frequency                      4 bytes
         FirstActiveSubcarrierIndex                            2 bytes
         Subcarrier Spacing in kHz                             1 byte
         Length in bytes of RxMERData                          4 bytes
         Subcarrier RxMER data                                 RxMerData
         "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmtsUsOfdmaRxMerEntry 6 }

-- ---------------------------------------------------------------------
-- The CMTS OFDMA Upstream Triggered Spectrum Capture
-- ---------------------------------------------------------------------
docsPnmCmtsUsSpecAnTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF DocsPnmCmtsUsSpecAnEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
        "The upstream triggered spectrum analysis measurement provides a
        wideband spectrum analyzer function in the CMTS which can be triggered
        to examine desired upstream transmissions as well as underlying
        noise/interference during a quiet period.

        The CMTS provides wideband upstream spectrum analysis capability
        covering the full upstream spectrum of the cable plant. The CMTS can
        be made to use 100 kHz or better resolution (bin spacing) in the
        wideband upstream spectrum measurement.

        Depending on the particular CMTS implementation, variable
        upstream spectrum analysis span is possible.

        It is also possible that the CMTS will provide the collection of
        time-domain input samples as an alternative to the frequency-domain
        upstream spectrum results.

        In pre-DOCSIS-3.1 mode, the CMTS provides the ability to trigger the
        spectrum sample capture and perform spectrum analysis using the
        following modes:
            - Free running
            - Trigger on minislot count
            - Trigger on SID (service identifier)
            - Trigger during quiet period (idle SID)

        In DOCSIS 3.1 mode, the CMTS provides the ability to trigger spectrum
        sample capture and perform spectrum analysis using the following modes:
            - Free running
            - A specified timestamp value
            - Minislot Number
            - A specified MAC address defining a SID, triggering at the beginning
            of the first minislot granted to that SID
            - The idle SID, triggering at the beginning of the first minislot
            granted to that SID
            - A specified active or quiet probe symbol, triggering at the beginning
            of the probe symbol "
     REFERENCE
        "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsObjects 8}

docsPnmCmtsUsSpecAnEntry OBJECT-TYPE
     SYNTAX      DocsPnmCmtsUsSpecAnEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The conceptual row of the docsPnmCmtsUsSpecAnTable. An instance
         is dynamically created and exists for an associated ifIndex upon
         which the test defined by this table can take place.

         The conceptual rows do not persist across device resets. "
     INDEX { ifIndex }
     ::= { docsPnmCmtsUsSpecAnTable 1 }

DocsPnmCmtsUsSpecAnEntry ::=
    SEQUENCE {
        docsPnmCmtsUsSpecAnEnable           TruthValue,
        docsPnmCmtsUsSpecAnTrigMode         INTEGER,
        docsPnmCmtsUsSpecAnMiniSlotCnt      Unsigned32,
        docsPnmCmtsUsSpecAnSid              Unsigned32,
        docsPnmCmtsUsSpecAnMiniSlotNum      Unsigned32,
        docsPnmCmtsUsSpecAnCmMac            MacAddress,
        docsPnmCmtsUsSpecAnCenterFreq       Unsigned32,
        docsPnmCmtsUsSpecAnSpan             Unsigned32,
        docsPnmCmtsUsSpecAnNumberOfBins     Unsigned32,
        docsPnmCmtsUsSpecAnMeasStatus       MeasStatusType,
        docsPnmCmtsUsSpecAnFileName         SnmpAdminString
     }

docsPnmCmtsUsSpecAnEnable OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute causes the CMTS to begin the measurement of a probe
        for the selected CM or for a quiet period if the UseIdleSid attribute
        is enabled. The Enable attribute is cleared when the measurement has
        been completed. If the TriggerMode is FreeRunning then the Enable
        attribute will remain true until cleared by the PNM server.

        Interaction with other table rows:

        - This object returns 'inconsistentValue' if set to 'true' while the
        value of 'docsPnmCmtsUsSpecAnMeasStatus' is a value of 'busy'.

        - Default values are provided for read-write objects in this table; thus,
         this object may be set to 'true' without explicitly setting these values.
         However, the default values may not be appropriate and care should be
         taken to insure these values are correct for the desired test case.

        - Setting this object to a value of 'true' will change the value of the
        'docsPnmCmtsUsSpecAnMeasStatus' to 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { false }
     ::= { docsPnmCmtsUsSpecAnEntry 1 }

docsPnmCmtsUsSpecAnTrigMode OBJECT-TYPE
     SYNTAX      INTEGER {other(1),
                          freeRunning(2),
                          miniSlotCount(3),
                          sid(4),
                          idleSid(5),
                          minislotNumber(6),
                          cmMac(7),
                          quietProbeSymbol(8)
                         }
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used to control the trigger mode for the Spectrum
        Analysis capture.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsSpecAnMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsSpecAnEntry 2 }

docsPnmCmtsUsSpecAnMiniSlotCnt OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute controls the numbe rof minislots the CMTS capturs
        during the Spectrum Analysis capture.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsSpecAnMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmtsUsSpecAnEntry 3 }

docsPnmCmtsUsSpecAnSid OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the SID corresponding to the CM which is granted a
        burst opportunity for the purpose of Spectrum Analysis. Typically the
        CMTS will schedule a unicast Station Maintenance opportunity for the
        CM with a grant size much longer than a normal Station Maintenance grant.
        This attribute is used when the TriggerMode is Sid.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsSpecAnMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmtsUsSpecAnEntry 4 }

docsPnmCmtsUsSpecAnMiniSlotNum OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute provides a mechanism by which the CMTS can begin the
        Spectrum Analysis at a subcarrier frequency corresponding to the
        MiniSlotNumber. This attribute is used when the TriggerMode is
        MiniSlotNumber.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsSpecAnMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmtsUsSpecAnEntry 5 }

docsPnmCmtsUsSpecAnCmMac OBJECT-TYPE
     SYNTAX      MacAddress
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is used by the CCAP to trigger on a grant for any SID
        assigned to the CM and to perform the Spectrum Analysis Capture when
        the burst corresponding to that grant is received by the CCAP. This
        attribute is used when the TriggerMode is CmMac and is an alternative
        to using Sid for the TriggerMode.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsSpecAnMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { '000000000000'H }
     ::= { docsPnmCmtsUsSpecAnEntry 6 }

docsPnmCmtsUsSpecAnCenterFreq OBJECT-TYPE
     SYNTAX      Unsigned32
     UNITS       "Hz"
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute determines the center frequency of the Spectrum Analysis
        capture if the trigger mode is FreeRunning. If the trigger mode is not
        FreeRunning, the CMTS determines the value for the CenterFrequency
        attribute.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsSpecAnMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmtsUsSpecAnEntry 7 }

docsPnmCmtsUsSpecAnSpan OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute determines the frequency span of the Spectrum Analysis
        capture if the trigger mode is FreeRunning. If the trigger mode is not
        FreeRunning, the CMTS determines the value for the Span attribute.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsSpecAnMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmtsUsSpecAnEntry 8 }

docsPnmCmtsUsSpecAnNumberOfBins OBJECT-TYPE
     SYNTAX      Unsigned32 (0..65535)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute determines the number of bins for the Spectrum Analysis
        capture if the trigger mode is FreeRunning. If the trigger mode is not
        FreeRunning, the CMTS determines the value for the NumberOfBins attribute.

        This object cannot be changed while a capture is in progress. It will
        return a value of 'inconsistentValue' if set while the value of
        'docsPnmCmtsUsSpecAnMeasStatus' is set to a value of 'busy'. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { 0 }
     ::= { docsPnmCmtsUsSpecAnEntry 9 }

docsPnmCmtsUsSpecAnMeasStatus OBJECT-TYPE
     SYNTAX      MeasStatusType
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
        "This attribute is used to determine the status of the measurement.
        The PNM server will query this value to determine when the file
        is ready for transfer. "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     ::= { docsPnmCmtsUsSpecAnEntry 10 }

docsPnmCmtsUsSpecAnFileName OBJECT-TYPE
     SYNTAX      SnmpAdminString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "This attribute is the name of the file with the Spectrum Analysis data
        at the CMTS that is to be downloaded using TFTP to the PNM server.

        This value can only be changed while a test is not in progress. An attempt
        to set this value while the value of 'docsPnmCmtsUsSpecAnMeasStatus' is
        'busy' will return 'inconsistentValue'.

        If the value of this object is the DEFVAL (empty string), then a default
        filename value will be used. Otherwise the value set will be used as
        the filename.

        If a default filename value is used, it is generated as the test name
        plus a unique CCAP identifier (either a loopback address (IPv4 or IPv6)
        or FQDN), plus the 'epoch time'. The epoch time (also known as 'unix time')
        is defined as the number of seconds that have elapsed since midnight
        Coordinated Universal Time (UTC), Thursday, 1 January 1970.
        Hence, the format would be:

            PNMCcapSpecAn_<Unique CCAP Identifier>_<epoch>

        For example: PNMCcapSpecAn_ccap1.boulder.cablelabs_1403405123

        The data file is comprised of a header plus the Spectrum Analyzer Data.
        The header is comprised of ordered fixed-length fields. Unless
        otherwise specified, the header fields contain hex values that are
        right-justified within the field. If necessary the field is left-padded
        with zero values.

        Syntax of the file is as follows:
         File Type set to '504E4D6A' (without the quotes)      4 bytes
         Capture Time                                          4 bytes
         ifIndex                                               4 bytes
         Unique CCAP ID                                      256 bytes
         Center Frequency in Hz                                4 bytes
         Frequency Span in Hz                                  4 bytes
         Number of Bins                                        2 bytes
         Length in bytes of Spectrum Analysis data             4 bytes
         Spectrum Analysis Bin Amplitude Data                  BinAmplitudeData
         "
     REFERENCE
         "DOCSIS 3.1 CCAP Operations Support System Interface Specification,
         CM-SP-CCAP-OSSIv3.1, PNM section."
     DEFVAL { "" }
     ::= { docsPnmCmtsUsSpecAnEntry 11 }

-- ---------------------------------------------------------------------
-- Compliance Statements
-- ---------------------------------------------------------------------

docsPnmCmtsCompliance MODULE-COMPLIANCE
STATUS      current
DESCRIPTION
        "The compliance statement for the CMTS."

    MODULE -- this MODULE
MANDATORY-GROUPS {
     docsPnmBulkDataGroup,
     docsPnmCmtsGroup
     }
::= { docsPnmMibCompliances 1 }

docsPnmCmCompliance MODULE-COMPLIANCE
STATUS      current
DESCRIPTION
        "The compliance statement for the CM."

    MODULE -- this MODULE
MANDATORY-GROUPS {
     docsPnmBulkDataGroup,
     docsPnmCmGroup
     }
::= { docsPnmMibCompliances 2 }


--
-- Compliance Groups
--

docsPnmBulkDataGroup OBJECT-GROUP
    OBJECTS {
        docsPnmBulkDestIpAddrType,
        docsPnmBulkDestIpAddr,
        docsPnmBulkDestPath,
        docsPnmBulkUploadControl,
        docsPnmBulkFileName,
        docsPnmBulkFileControl,
        docsPnmBulkFileUploadStatus
     }
    STATUS      current
    DESCRIPTION
         "Group of objects implemented For Bulk-Data support"
    ::= { docsPnmMibGroups 1 }


docsPnmCmtsGroup OBJECT-GROUP
    OBJECTS {
        docsPnmCmtsDsOfdmSymTrigEnable,
        docsPnmCmtsDsOfdmSymTrigGroupId,
        docsPnmCmtsDsOfdmSymFirstActSubCarIdx,
        docsPnmCmtsDsOfdmSymLastActSubCarIdx,
        docsPnmCmtsDsOfdmSymRxWindowing,
        docsPnmCmtsDsOfdmSymPlcExtTimestamp,
        docsPnmCmtsDsOfdmSymTransactionId,
        docsPnmCmtsDsOfdmSymSampleRate,
        docsPnmCmtsDsOfdmSymFftLength,
        docsPnmCmtsDsOfdmSymMeasStatus,
        docsPnmCmtsDsOfdmSymCaptFileName,

        docsPnmCmtsDsOfdmNprStartSubcar,
        docsPnmCmtsDsOfdmNprStopSubcar,
        docsPnmCmtsDsOfdmNprEnable,
        docsPnmCmtsDsOfdmNprDuration,

        docsPnmCmtsUsOfdmaAQProbeCmMacAddr,
        docsPnmCmtsUsOfdmaAQProbeUseIdleSid,
        docsPnmCmtsUsOfdmaAQProbePreEqOn,
        docsPnmCmtsUsOfdmaAQProbeEnable,
        docsPnmCmtsUsOfdmaAQProbeTimeout,
        docsPnmCmtsUsOfdmaAQProbeNumSymToCapt,
        docsPnmCmtsUsOfdmaAQProbeMaxCaptSymbols,
        docsPnmCmtsUsOfdmaAQProbeNumSamples,
        docsPnmCmtsUsOfdmaAQProbeTimeStamp,
        docsPnmCmtsUsOfdmaAQProbeMeasStatus,
        docsPnmCmtsUsOfdmaAQProbeFileName,

        docsPnmCmtsUsImpNoiseEnable,
        docsPnmCmtsUsImpNoiseFreeRunDuration,
        docsPnmCmtsUsImpNoiseStTrigLvl,
        docsPnmCmtsUsImpNoiseEndTrigLvl,
        docsPnmCmtsUsImpNoiseCenterFrq,
        docsPnmCmtsUsImpNoiseMeasBw,
        docsPnmCmtsUsImpNoiseNumEvtsCnted,
        docsPnmCmtsUsImpNoiseLastEvtTimeStamp,
        docsPnmCmtsUsImpNoiseLastEvtDuration,
        docsPnmCmtsUsImpNoiseLastEvtAvgPwr,
        docsPnmCmtsUsImpNoiseMeasStatus,
        docsPnmCmtsUsImpNoiseFileName,

        docsPnmCmtsUsHistEnable,
        docsPnmCmtsUsHistRestart,
        docsPnmCmtsUsHistTimeOut,
        docsPnmCmtsUsHistSymmetry,
        docsPnmCmtsUsHistDwellCnts,
        docsPnmCmtsUsHistHitCnts,
        docsPnmCmtsUsHistCntStartTime,
        docsPnmCmtsUsHistCntEndTime,
        docsPnmCmtsUsHistMeasStatus,
        docsPnmCmtsUsHistFileName,

        docsPnmCmtsUsOfdmaRxPwrEnable,
        docsPnmCmtsUsOfdmaRxPwrCmMac,
        docsPnmCmtsUsOfdmaRxPwrPreEq,
        docsPnmCmtsUsOfdmaRxPwrNumAvgs,
        docsPnmCmtsUsOfdmaRxPwrOnePtSix,
        docsPnmCmtsUsOfdmaRxPwrMeasStatus,

        docsPnmCmtsUsOfdmaRxMerEnable,
        docsPnmCmtsUsOfdmaRxMerCmMac,
        docsPnmCmtsUsOfdmaRxMerPreEq,
        docsPnmCmtsUsOfdmaRxMerNumAvgs,
        docsPnmCmtsUsOfdmaRxMerMeasStatus,
        docsPnmCmtsUsOfdmaRxMerFileName,

        docsPnmCmtsUsSpecAnEnable,
        docsPnmCmtsUsSpecAnTrigMode,
        docsPnmCmtsUsSpecAnMiniSlotCnt,
        docsPnmCmtsUsSpecAnSid,
        docsPnmCmtsUsSpecAnMiniSlotNum,
        docsPnmCmtsUsSpecAnCmMac,
        docsPnmCmtsUsSpecAnCenterFreq,
        docsPnmCmtsUsSpecAnSpan,
        docsPnmCmtsUsSpecAnNumberOfBins,
        docsPnmCmtsUsSpecAnMeasStatus,
        docsPnmCmtsUsSpecAnFileName

     }
    STATUS      current
    DESCRIPTION
         "Group of objects implemented in the CMTS"
    ::= { docsPnmMibGroups 2 }

docsPnmCmGroup OBJECT-GROUP
    OBJECTS {
        docsPnmCmCtlTest,
        docsPnmCmCtlTestDuration,
        docsPnmCmCtlStatus,

        docsPnmCmDsOfdmSymTrigEnable,
        docsPnmCmDsOfdmSymTrigEnableTimeout,
        docsPnmCmDsOfdmSymTrigGroupId,
        docsPnmCmDsOfdmSymRxWindowing,
        docsPnmCmDsOfdmSymPlcExtTimestamp,
        docsPnmCmDsOfdmSymTransactionId,
        docsPnmCmDsOfdmSymSampleRate,
        docsPnmCmDsOfdmSymFftLength,
        docsPnmCmDsOfdmSymMeasStatus,
        docsPnmCmDsOfdmSymCaptFileName,

        docsPnmCmOfdmChanEstCoefTrigEnable,
        docsPnmCmOfdmChEstCoefFileName,
        docsPnmCmOfdmChEstCoefMeasStatus,
        docsPnmCmOfdmChEstRipplePkToPk,
        docsPnmCmOfdmChEstRippleRms,
        docsPnmCmOfdmChEstTiltDbPerMhz,
        docsPnmCmOfdmChEstGrpDelayVarPkToPk,
        docsPnmCmOfdmChEstGrpDelayVarRms,

        docsPnmCmDsConstDispTrigEnable,
        docsPnmCmDsConstDispModOrderOffset,
        docsPnmCmDsConstDispNumSampleSymb,
        docsPnmCmDsConstDispSelModOrder,
        docsPnmCmDsConstDispMeasStatus,
        docsPnmCmDsConstDispFileName,

        docsPnmCmDsOfdmRxMerFileEnable,
        docsPnmCmDsOfdmRxMerPercentile,
        docsPnmCmDsOfdmRxMerMean,
        docsPnmCmDsOfdmRxMerStdDev,
        docsPnmCmDsOfdmRxMerThrVal,
        docsPnmCmDsOfdmRxMerThrHighestFreq,
        docsPnmCmDsOfdmRxMerMeasStatus,
        docsPnmCmDsOfdmRxMerFileName,

        docsPnmCmDsOfdmMerMarProfileId,
        docsPnmCmDsOfdmMerMarThrshldOffset,
        docsPnmCmDsOfdmMerMarMeasEnable,
        docsPnmCmDsOfdmMerMarNumSymPerSubCarToAvg,
        docsPnmCmDsOfdmMerMarReqAvgMer,
        docsPnmCmDsOfdmMerMarNumSubCarBelowThrshld,
        docsPnmCmDsOfdmMerMarMeasStatus,
        docsPnmCmDsOfdmMerMarMeasuredAvgMer,
        docsPnmCmDsOfdmMerMarAvgMerMargin,

        docsPnmCmDsOfdmFecSumType,
        docsPnmCmDsOfdmFecFileEnable,
        docsPnmCmDsOfdmFecMeasStatus,
        docsPnmCmDsOfdmFecFileName,

        docsPnmCmDsOfdmReqMerQam16,
        docsPnmCmDsOfdmReqMerQam64,
        docsPnmCmDsOfdmReqMerQam128,
        docsPnmCmDsOfdmReqMerQam256,
        docsPnmCmDsOfdmReqMerQam512,
        docsPnmCmDsOfdmReqMerQam1024,
        docsPnmCmDsOfdmReqMerQam2048,
        docsPnmCmDsOfdmReqMerQam4096,
        docsPnmCmDsOfdmReqMerQam8192,
        docsPnmCmDsOfdmReqMerQam16384,

        docsPnmCmDsHistEnable,
        docsPnmCmDsHistRestart,
        docsPnmCmDsHistTimeOut,
        docsPnmCmDsHistSymmetry,
        docsPnmCmDsHistDwellCnts,
        docsPnmCmDsHistHitCnts,
        docsPnmCmDsHistCntStartTime,
        docsPnmCmDsHistCntEndTime,
        docsPnmCmDsHistMeasStatus,
        docsPnmCmDsHistFileName,

        docsPnmCmUsPreEqFileEnable,
        docsPnmCmUsPreEqRipplePkToPk,
        docsPnmCmUsPreEqRippleRms,
        docsPnmCmUsPreEqTiltDbPerMhz,
        docsPnmCmUsPreEqGrpDelayVarPkToPk,
        docsPnmCmUsPreEqGrpDelayVarRms,
        docsPnmCmUsPreEqPreEqCoAdjStatus,
        docsPnmCmUsPreEqMeasStatus,
        docsPnmCmUsPreEqLastUpdateFileName,
        docsPnmCmUsPreEqFileName,

        docsIf3CmSpectrumAnalysisCtrlCmdFileEnable,
        docsIf3CmSpectrumAnalysisCtrlCmdMeasStatus,
        docsIf3CmSpectrumAnalysisCtrlCmdFileName
     }
    STATUS      current
    DESCRIPTION
         "Group of objects implemented in the CM"
    ::= { docsPnmMibGroups 3 }

END