<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:DOCSIS-CM="http://www.cablelabs.com/namespaces/DOCSIS/3.0/xsd/ipdr/DOCSIS-CM"
        xmlns:ipdr="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/"
        targetNamespace="http://www.cablelabs.com/namespaces/DOCSIS/3.0/xsd/ipdr/DOCSIS-CM"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        version="3.7-A.4.0.0">
  <import namespace="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/" schemaLocation="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/IPDRDoc3.5.1.xsd"/>
  <include schemaLocation="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/IPDRTypes.xsd"/>
  <annotation>
    <documentation>
      DOCSIS-CM is an auxiliary schema which defines CM information.

      Revision History:
      3.5.1-A.1 Initial version.
      3.5.1-A.2 Revised version includes ECN OSSIv3.0-N-12.1073-3 and published as I20.
      3.5.1-A.3 Revised version includes ECN OSSIv3.0-N-12.1083 and published as I21.
      3.7-A.4.0.0 OSSIDM-17 - fix CmRegStatus 5 and 12 values. Add semantic versioning.
                  Remove ipdr.org references. Fix import versions. Add contact info.
                  Error corrections announced via errata sheet attached to CM-SP-OSSIv3.0-C01-171207.

      Contact:
        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
        Email: data-model-support@cablelabs.com

      Copyright 2019-2026 Cable Television Laboratories, Inc.
        All rights reserved.
    </documentation>
    <documentation>
      <ipdr:reference>
        DOCSIS 3.0 Operations Support System Interface Specification
        CM-SP-OSSIv3.0-C01-171207.
      </ipdr:reference>
    </documentation>
  </annotation>
  <simpleType name = "cmRegStatus">
    <restriction base="integer">
      <enumeration value="1">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>other</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="2">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>initialRanging</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="4">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>rangingAutoAdjComplete</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="10">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>startEae</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="11">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>startDhcpv4</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="5">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>dhcpv4Complete</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="12">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>startDhcpv6</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="13">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>dhcpv6Complete</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="14">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>startConfigFileDownload</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="15">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>configFileDownloadComplete</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="16">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>startRegistration</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="6">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>registrationComplete</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="8">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>operational</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="9">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>bpiInit</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="17">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>forwardingDisabled</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
      <enumeration value="18">
        <annotation>
          <documentation>
            <ipdr:enumMeaning>rfMuteAll</ipdr:enumMeaning>
          </documentation>
        </annotation>
      </enumeration>
    </restriction>
  </simpleType>
  <element name="CmMacAddr" type="ipdr:macAddress">
    <annotation>
      <documentation>
        This attribute demotes the MAC address of the CM.
        If the CM has multiple MAC addresses, this is the MAC address
        associated with the MAC Domain interface. When the record is a
        Group Service Flow, the MAC address should contain a multicast
        address compliant with either [RFC 2464] or
        [RFC 1112] as applicable
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::MacAddr
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="CmRegStatusId">
    <annotation>
      <documentation>
        This attribute uniquely identifies a CM.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::Id
        </ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedInt">
        <minInclusive value="1"/>
        <maxInclusive value="4294967295"/>
      </restriction>
    </simpleType>
  </element>
  <element name="CmIpv4Addr" type="ipdr:ipV4Addr">
    <annotation>
      <documentation>
        This attribute demotes the IPv4 address of the CM. If the CM has no IP
        address assigned, or the IP address is unknown, this object returns
        0.0.0.0. If the CM has multiple IPv4 addresses, it contains the
        IPv4 address associated with the Cable (i.e., RF MAC) interface.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::Ipv4Addr
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="CmIpv6Addr" type="ipdr:ipV6Addr">
    <annotation>
      <documentation>
        This attribute denotes the IPv6 address of the CM. If the CM has no
        Internet
        address assigned, or the Internet address is unknown, the value of this
        attribute is the
        all zeros address.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::Ipv6Addr
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="CmIpv6LinkLocalAddr" type="ipdr:ipV6Addr">
    <annotation>
      <documentation>
        This attribute denotes the IPv6 local scope address of the CM.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::Ipv6LinkLocal
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="CmQosVersion">
    <annotation>
      <documentation>
        This attribute denotes the queuing services the CM registered. Non
        DOCSIS 3.0 CMs will always report DOCSIS 1.1 QoS mode since DOCSIS 1.0
        CoS mode
        was deprecated in DOCSIS 3.1.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::QosVersion
        </ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="integer">
        <enumeration value="1">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>DOCSIS 1.0 CoS mode</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="2">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>DOCSIS 1.1 QoS mode</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
      </restriction>
    </simpleType>
  </element>
  <element name="CmRegStatusValue" type="DOCSIS-CM:cmRegStatus">
    <annotation>
      <documentation>
        This attribute denotes the current CM connectivity state.
        Returned status information is the CM status as assumed by the CMTS.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::Value
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="CmLastRegTime" type="dateTime">
    <annotation>
      <documentation>
        This attribute denotes the last time the CM registered.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::LastRegTime
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="CmEnergyMgtEnabled" type="hexBinary">
    <annotation>
      <documentation>
        This attribute indicates which, if any, of the
        Energy Management Features are enabled for this CM. If this
        attribute returns em1x1Mode(0) bit set, the CM is configured with
        the Energy Management 1x1 Feature enabled. If this attribute
        returns all bits cleared, the CM will not request to operate in
        any Energy Management mode of operation. Note: This attribute
        only indicates if an Energy Management Feature is
        enabled/disabled via the CM config file and registration
        request/response exchange and does not indicate whether the CM is
        actively operating in an Energy Management
        Mode.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::EnergyMgtEnabled
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="CmEnergyMgtOperStatus" type="hexBinary">
    <annotation>
      <documentation>
        This attribute indicates whether the CM is
        currently operating in an Energy Management Mode. If this
        attribute returns em1x1Mode(0) bit set, the CM is operating in
        Energy Management 1x1 Mode. If this attribute returns all bits
        cleared, the CM is not operating in any Energy Management Mode.
        This attribute always returns 0x00 (no bits set) in the case when
        EnergyMgtEnabled is set to
        0x00 (no Energy Management Features enabled).
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmRegStatus::EnergyMgtOperStatus
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="CmEnergyMgt1x1ModeTotalDuration" type="unsignedInt">
    <annotation>
      <documentation>
        This attribute indicates the total time
        duration, in seconds since registration, the CM identified by
        CmRegStatusId has been in Energy Management 1x1 mode, as
        controlled by the DBC-REQ Energy Management 1x1 Mode Indicator TLV.
      </documentation>
      <appinfo>
        <ipdr:units>seconds</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          CmtsCmEmStats::Em1x1ModeTotalDuration
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
</schema>
