<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.cablelabs.com/namespaces/DOCSIS/3.1/xsd/ipdr/DOCSIS-QOS"
        xmlns:DOCSIS-QOS="http://www.cablelabs.com/namespaces/DOCSIS/3.1/xsd/ipdr/DOCSIS-QOS"
        xmlns:ipdr="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        version="3.7-B.1.0.1">
  <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-QOS is an auxiliary schema which defines Quality of Service
      (QOS) information.

      Revision History:
      3.5.1-A.1 Initial version.
      3.7-B.1 Revised with additional Service Flow data
      3.7-B.1.0.0 New revision naming convention.
      3.7-B.1.0.1 Update namespace from mibs to www. Fix import versions.
                  Revised version includes ECN CCAP-OSSIv3.1-26.2430-1.

      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.1 CCAP Operations Support System Interface Specification
        CCAP-OSSIv3.1-26.2430-1
      </ipdr:reference>
    </documentation>
  </annotation>
  <element name="ServiceFlowChSet">
    <annotation>
      <documentation>
        Contains the set of channels
        configured for the service flow. Each octet represents the
        channel id of a channel.
      </documentation>
    </annotation>
    <simpleType>
      <restriction base="hexBinary">
        <maxLength value="255"/>
        <minLength value="1"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceAppId" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the application identifier associated
        with the service flow.
      </documentation>
    </annotation>
  </element>
  <element name="AggregateServiceFlowId">
    <annotation>
      <documentation>
        This attribute represents the ASF Identifier
        for the Aggregate Service Flow.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::Id
        </ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedInt">
        <maxInclusive value="4294967295"/>
        <minInclusive value="1"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceDsMulticast" type="boolean">
    <annotation>
      <documentation>
        Indicates whether the service flow
        is multicast or unicast. A value of 'true' indicates a multicast
        service flow. A value of 'false' indicates a unicast service flow
      </documentation>
    </annotation>
  </element>
  <element name="ServiceIdentifier" type="unsignedInt">
    <annotation>
      <documentation>
        Contains a 32-bit Service Flow ID of the SF, in decimal notation.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlow::Id
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceGateId" type="unsignedInt">
    <annotation>
      <documentation>
        Contains a 32-bit GateID of the SF, or zero if not applicable,
        in decimal notation.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceClassName">
    <annotation>
      <documentation>
        Contains the Service Class Name (SCN) of the Service Flow.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::ServiceClassName
        </ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="string">
        <maxLength value="15"/>
        <minLength value="0"/>
      </restriction>
    </simpleType>
  </element>
  <element name="AsfQosProfileName">
    <annotation>
      <documentation>
        This attribute indicates the ASF QoS Profile Name associated
        with this object instance.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::AsfQosProfileName
        </ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="string">
        <maxLength value="16"/>
        <minLength value="1"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceDirection">
    <annotation>
      <documentation>
        Contains the direction of the SF from the CMTS cable interface.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlow::Direction
        </ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="integer">
        <enumeration value="1">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Downstream</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="2">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Upstream</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceFlowType">
    <annotation>
      <documentation>
        This attribute reports the type of the Service Flow.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlow::Type
        </ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="integer">
        <enumeration value="1">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Other</ipdr:enumMeaning>
            </documentation>
            <documentation>
              Other represents an undefined Service Flow type.
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="2">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Standalone</ipdr:enumMeaning>
            </documentation>
            <documentation>
              Standalone represents a standalone Service Flow that is
              not associated with an ASF.
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="3">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Classic</ipdr:enumMeaning>
            </documentation>
            <documentation>
              Classic represents a classic Service Flow associated with
              a Low Latency ASF.
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="4">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>LowLatency</ipdr:enumMeaning>
            </documentation>
            <documentation>
              LowLatency represents a Low Latency Service Flow
              associated with a Low Latency ASF.
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="5">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>NonLldHqos</ipdr:enumMeaning>
            </documentation>
            <documentation>
              NonLldHqos represents a Service Flow that is a constituent
              of an Aggregate Service Flow (ASF) but the ASF is not a Low
              Latency
              ASF.
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="6">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>AggregateServiceFlow</ipdr:enumMeaning>
            </documentation>
            <documentation>
              AggregateServiceFlow represents an Aggregate Service Flow.
            </documentation>
          </annotation>
        </enumeration>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceOctetsPassed" type="unsignedLong">
    <annotation>
      <documentation>
        Contains a 64-bit absolute counter value of octets passed by this SF.
      </documentation>
      <appinfo>
        <ipdr:units>bytes</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlowStats::Octets
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServicePktsPassed" type="unsignedLong">
    <annotation>
      <documentation>
        Contains a 64-bit absolute counter value of octets passed by this SF.
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlowStats::Pkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceSlaDropPkts" type="unsignedInt">
    <annotation>
      <documentation>
        Contains a 32-bit absolute counter value of packets dropped
        exceeding SLA by this SF (Downstream only).
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlowStats::PolicedDropPkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceSlaDelayPkts" type="unsignedInt">
    <annotation>
      <documentation>
        Contains a 32-bit absolute counter value of packets delayed
        exceeding SLA by this SF (Downstream only).
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlowStats::PolicedDelayPkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceFlowStatsAqmDroppedPkts" type="unsignedLong">
    <annotation>
      <documentation>
        For downstream service flows on which Active Queue Management
        is enabled, this attribute reports the count of the number of Packet
        Data PDUs classified to this service flow dropped due to
        Active Queue Management drop decisions. Counts of classified
        packets dropped due to other reasons are reported in either
        PolicedDropPkts or ifOutDiscards for the interface of this
        service flow, depending on the reason for the discard. The CCAP reports
        zero for this attribute for upstream service flows.
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlowStats::AqmDroppedPkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="SfCongestionStatsSanctionedPkts" type="unsignedLong">
    <annotation>
      <documentation>
        This attribute counts the number of packets redirected from the
        Low Latency Service Flow to the Classic Service Flow. For other Service
        Flow
        types in the CCAP, this counter reports 0.
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          SfCongestionStats::SanctionedPkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="SfCongestionStatsArrivedEct0Pkts" type="unsignedLong">
    <annotation>
      <documentation>
        This attribute reports the count of packets that arrived
        marked as ECT0. This attribute includes only those packets classified
        into
        the Service Flow, not those sanctioned into the Service Flow.
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          SfCongestionStats::ArrivedEct0Pkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="SfCongestionStatsArrivedEct1Pkts" type="unsignedLong">
    <annotation>
      <documentation>
        This attribute reports the count of packets that arrived
        marked as ECT1. This attribute includes only those packets classified
        into
        the Service Flow, not those sanctioned into the Service Flow.
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          SfCongestionStats::ArrivedEct1Pkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="SfCongestionStatsCeMarkedEct1Pkts" type="unsignedLong">
    <annotation>
      <documentation>
        This attribute reports the count of packets that arrived
        marked as ECT1 and were re-marked as Congestion Experienced (CE) by the
        CCAP. This attribute includes only those packets classified into the
        Service Flow, not those sanctioned into the Service Flow.
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          SfCongestionStats::CeMarkedEct1Pkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="SfCongestionStatsArrivedCePkts" type="unsignedLong">
    <annotation>
      <documentation>
        This attribute reports the count of packets that arrived
        marked as Congestion Experienced (CE). This attribute includes only
        those packets classified into the Service Flow, not those
        sanctioned into the
        Service Flow.
      </documentation>
      <appinfo>
        <ipdr:units>packets</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          SfCongestionStats::ArrivedCePkts
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceTimeCreated" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the value of CmtsSysUpTime when the Service
        Flow was created for DOCSIS QOS CM provisioning. For DOCSIS
        COS CM provisioning (optionally supported only by 3.0 CMTSs), it
        is the time the non-temporary SID is created. For downstream
        CM traffic it indicates the time the CM registers.
      </documentation>
      <appinfo>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlowLog::TimeCreated
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceTimeActive" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the total time that the Service Flow was active,
        specified in seconds.
      </documentation>
      <appinfo>
        <ipdr:units>seconds</ipdr:units>
        <ipdr:reference>
          Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ServiceFlowLog::TimeActive
        </ipdr:reference>
      </appinfo>
    </annotation>
  </element>
</schema>
