<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://mibs.cablelabs.com/namespaces/DOCSIS/3.1/xsd/ipdr/DOCSIS-QOS" 
        xmlns:DOCSIS-QOS="http://mibs.cablelabs.com/namespaces/DOCSIS/3.1/xsd/ipdr/DOCSIS-QOS" 
        xmlns:ipdr="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/" version="3.7-B.1.0.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <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.

        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-2023 Cable Television Laboratories, Inc.
            All rights reserved.
        </documentation>
        <documentation>
        <ipdr:reference>DOCSIS 3.1 Operations Support System Interface Specification 
            CM-SP-CCAP-OSSIv3.1-I26-230613.
        </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>
