<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.cablelabs.com/namespaces/DOCSIS/3.0/xsd/ipdr/DOCSIS-SERVICE-FLOW"
        xmlns:DOCSIS-SERVICE-FLOW="http://www.cablelabs.com/namespaces/DOCSIS/3.0/xsd/ipdr/DOCSIS-SERVICE-FLOW"
        xmlns:ipdr="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        version="3.7-A.1.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-SERVICE-FLOW is an auxiliary schema which defines Service Flow
      information.

      Revision History:
      3.5.1-A.1 Initial version.
      3.7-A.1.0.0 Add semantic versioning. Remove ipdr.org references. Fix import versions.
                  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>
  <element name="ServiceTrafficPriority" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the relative priority assigned to this service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceMaxSustained" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the maximum rate int bits/sec assigned to this service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceMaxBurst" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the maximum burst in bytes assigned to this service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceMinReservedRate" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the minimum reserved rate in bits/second assigned to this
        service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceMinReservedPktSize" type="unsignedInt">
    <annotation>
      <documentation>
        The value of the assumed minimum packet size in bytes for which the
        ServiceMinReservedRate will be provided.
        .
      </documentation>
    </annotation>
  </element>
  <element name="ServiceIpTos" type="hexBinary">
    <annotation>
      <documentation>
        The value of the IP Type of Service (DSCP) Overwrite assigned to this
        service flow. This is encoded as hexBinary in 2 bytes. The first byte is
        encoding the tos-and-mask, the second byte is encoding the tos-or-mask.
      </documentation>
    </annotation>
  </element>
  <element name="ServicePeakRate" type="unsignedInt">
    <annotation>
      <documentation>
        Contains value of the Peak Traffic Rate in bits/sec assigned to this
        Service Flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceSchedule">
    <annotation>
      <documentation>
        Contains value of the Type of Service assigned to this Service Flow.
      </documentation>
    </annotation>
    <simpleType>
      <restriction base="integer">
        <enumeration value="0">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Reserved</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="1">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Undefined</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="2">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Best Effort</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="3">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Non-Real-Time Polling Service</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="4">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Real-Time Polling Service</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="5">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>
                Unsolicited Grant Service with Activity Detection
              </ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="6">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Unsolicited Grant Service</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceNomPollInterval" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the value of the Nominal Polling Interval in microseconds
        assigned to this service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceTolPollJitter" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the value of the Tolerated Polling Interval in microseconds
        assigned to this service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceUGSize" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the value of the Unsolicated Grant Size in bytes assigned to
        this service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceNomGrantInterval" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the Nominal Grant Interval in microseconds assigned to this
        service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceTolGrantJitter" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the value of the Tolerated Grant Jitter in microseconds
        assigned to this service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServiceGrantsPerInterval" type="unsignedInt">
    <annotation>
      <documentation>
        Contains the value of Grants Per Interval as integer (0-127) assigned to
        this service flow.
      </documentation>
    </annotation>
  </element>
  <element name="ServicePacketClassifiers" type="hexBinary">
    <annotation>
      <documentation>
        Contains classifiers assigned to this service flow. Each classifier is
        encoded in hexBinary according to the TLV encoding. When multiple
        classifiers exist for the same service flow then they are encoded as the
        concatenated sequence of encodings of each classifier.
      </documentation>
    </annotation>
  </element>
</schema>
