<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:DOCSIS-SERVICE-FLOW="http://mibs.cablelabs.com/namespaces/DOCSIS/3.1/xsd/ipdr/DOCSIS-SERVICE-FLOW" xmlns:ipdr="http://mibs.cablelabs.com/namespaces/DOCSIS/tmforum/xsd/ipdr/" targetNamespace="http://mibs.cablelabs.com/namespaces/DOCSIS/3.1/xsd/ipdr/DOCSIS-SERVICE-FLOW" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.7-B.2.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.5.1-B.1 Revised with some 64-bit data types per DOCSIS 3.1 OSSI
      3.7-B.2 Revised with additional Service Flow + Aggregate Service Flow data
      3.7-B.2.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 CCAP Operations Support System Interface Specification 
        CM-SP-CCAP-OSSIv3.1-I25-220819
      </ipdr:reference>
    </documentation>
  </annotation>
  <element name="ServiceTrafficPriority">
    <annotation>
      <documentation>For Service Flows, this attribute represents the relative priority of
      the Service Flow. Higher numbers indicate higher priority. This priority should
      only be used to differentiate Service Flow from identical parameter sets. This attribute
      returns 0 if the referenced parameter is not present in the corresponding DOCSIS QoS
      Parameter Set or if the parameter is not applicable.
      For Aggregate Service Flows, this attribute represents the relative priority of the
      Aggregate Service Flow.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::Priority</ipdr:reference>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::Priority</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedByte">
        <minInclusive value="0"/>
        <maxInclusive value="7"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceMaxSustained">
    <annotation>
      <documentation>For Service Flows, this attribute represents the 4-byte value of the
      maximum sustained traffic rate allowed for the Service Flow. It represents all MAC frame
      data PDUs from the bytes following the MAC header HCS to the end of the CRC. The number
      of bytes forwarded is limited during any time interval. The value 0 means no maximum
      traffic rate is enforced. This attribute applies to both upstream and downstream
      Service Flows. This attribute returns 0 if the referenced parameter is not present in the
      corresponding DOCSIS QoS Parameter Set, or if the parameter is not applicable.
      For Aggregate Service Flows, this attribute represents the 4-byte value of the maximum
      sustained traffic rate allowed for this Aggregate Service Flow.
      
      The value of the ParamSetDataRateUnitSetting attribute defines the units of
      ServiceMaxSustained.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::MaxTrafficRate</ipdr:reference>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::MaxAggregateTrafficRate</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedInt">
        <minInclusive value="0"/>
        <maxInclusive value="4294967295"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceMaxBurst" type="unsignedInt">
    <annotation>
      <documentation>For Service Flows, this attribute specifies the token bucket size in bytes
      for this parameter set. The value is calculated from the byte following the MAC header HCS
      to the end of the CRC. This object is applied in conjunction with ServiceMaxSustained to
      calculate maximum sustained traffic rate. If the referenced parameter is not present in
      the corresponding DOCSIS QoS Parameter Set, this attribute returns 3044 for scheduling
      types 'Best Effort', 'Non-Real-Time Polling Service' and 'Real-Time Polling Service'. If
      this parameter is not applicable, it is reported as 0.
      For Aggregate Service Flows, this attribute represents the MaxTrafficBurst attribute of
      the Aggregate Service Flow.</documentation>
      <appinfo>
        <ipdr:units>bytes</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::MaxTrafficBurst</ipdr:reference>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::MaxTrafficBurst</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceMinReservedRate">
    <annotation>
      <documentation>For Service Flows, this attribute represents the 4-byte value of the
      guaranteed minimum rate allowed for this Service Flow. The value is calculated from the
      byte following the MAC header HCS to the end of the CRC. The value of 0 indicates that no
      bandwidth is reserved. If the referenced parameter is not present in the corresponding
      DOCSIS QoS Parameter Set, this attribute returns 0. If the parameter is not applicable, it
      is reported as 0.
      For Aggregate Service Flows, this attribute represents the 4-byte value of the guaranteed
      minimum rate allowed for this Aggregate Service Flow.
      
      The value of the ParamSetDataRateUnitSetting attribute defines the units of
      ServiceMinReservedRate.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::MinReservedRate</ipdr:reference>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::MinReservedRate</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedInt">
        <minInclusive value="0"/>
        <maxInclusive value="4294967295"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceMinReservedPktSize" type="unsignedShort">
    <annotation>
      <documentation>For Service Flows, this attribute specifies an assumed minimum packet size
      in bytes for which the ServiceMinReservedRate will be provided. The value is calculated
      from the byte following the MAC header HCS to the end of the CRC. If the referenced
      parameter is omitted from a DOCSIS QoS parameter set, the used and reported value is CMTS
      implementation and the CM reports a value of 0. If the referenced parameter is not
      applicable to the direction or scheduling type of the Service Flow, both CMTS and CM report
      the value 0.
      For Aggregate Service Flows, this attribute represents the Assumed Minimum Reserved Rate
      Packet Size of the Aggregate Service Flow.
      </documentation>
      <appinfo>
        <ipdr:units>bytes</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::MinReservedPkt</ipdr:reference>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::MinReservedPkt</ipdr:reference>
      </appinfo>
    </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>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::TosAndMask</ipdr:reference>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::TosOrMask</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServicePeakRate">
    <annotation>
      <documentation>For Service Flows, this attribute represents the 4-byte value of the rate
      parameter 'P' of a token-bucket-based peak rate limiter for packets of a service flow. A
      value of 0 signifies no Peak Traffic Rate is enforced. If the referenced parameter is not
      present in the corresponding DOCSIS QoS Parameter Set, this attribute returns 0.
      For Aggregate Service Flows, this attribute represents the 4-byte value of the Peak Traffic
      Rate allowed for this Aggregate Service Flow. A value of 0 means the peak traffic rate is
      not limited.
      
      The value of the ParamSetDataRateUnitSetting attribute defines the units of
      ServicePeakRate.</documentation>
      <appinfo>
      <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
        ParamSet::PeakTrafficRate</ipdr:reference>
      <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
        AggregateServiceFlow::PeakTrafficRate</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedInt">
        <minInclusive value="0"/>
        <maxInclusive value="4294967295"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceSchedule">
    <annotation>
      <documentation>This attribute specifies the upstream scheduling service used for upstream
      Service Flow. If the referenced parameter is not present in the corresponding DOCSIS QoS
      Parameter Set of an upstream Service Flow, this attribute returns the value of
      'Best Effort'. For QoS parameter sets of downstream Service Flows, this attribute's value
      is reported as 'Undefined'.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::SchedulingType</ipdr:reference>
      </appinfo>
    </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>
        <enumeration value="7">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Proactive Grant Service</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
      </restriction>
    </simpleType>
  </element>
  <element name="ServiceNomPollInterval" type="unsignedInt">
    <annotation>
      <documentation>This attribute specifies the nominal interval in microseconds between
      successive unicast request opportunities on an upstream Service Flow. This attribute
      applies only to upstream Service Flows with ServiceSchedule of value
      'Non-Real-Time Polling Service', 'Real-Time Polling Service', and 'Unsolicited Grant
      Service with Activity Detection'. The parameter is mandatory for 'Real-Time Polling
      Service'. If the parameter is omitted with 'Non-Real-Time Polling Service', the CMTS uses
      an implementation-dependent value. If the parameter is omitted with 'Unsolicited Grant
      Service with Activity Detection' the CMTS uses the value of the Nominal Grant Interval
      parameter. In all cases, the CMTS reports the value it is using when the parameter is
      applicable. The CM reports the signaled parameter value if it was signaled. Otherwise, it
      returns 0. If the referenced parameter is not applicable to the direction or scheduling
      type of the corresponding DOCSIS QoS Parameter Set, both CMTS and CM report this
      attribute's value as 0.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::NomPollInterval</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceTolPollJitter" type="unsignedInt">
    <annotation>
      <documentation>This attribute specifies the maximum amount of time in microseconds that the
        unicast request interval may be delayed from the nominal periodic schedule on an upstream
        Service Flow. This parameter is applicable only to upstream Service Flows with a
        ServiceSchedule of 'Real-Time Polling Service' or 'Unsolicited Grant Service with Activity
        Detection'. If the referenced parameter is applicable but not present in the
        corresponding DOCSIS QoS Parameter Set, the CMTS uses an implementation-dependent value
        and reports the value it is using. The CM reports a value of 0 in this case. If the 
        parameter is not applicable to the direction or upstream scheduling type of the Service
        Flow, both CMTS and CM report this attribute's value as 0.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::TolPollJitter</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceUGSize" type="unsignedShort">
    <annotation>
      <documentation>This attribute specifies the unsolicited grant size in bytes. The grant size
        includes the entire MAC frame data PDU from the Frame Control byte to the end of the MAC
        frame. The referenced parameter is applicable only for upstream flows with a
        ServiceSchedule of 'Unsolicited Grant Service with Activity Detection' or 'Unsolicited
        Grant Service', and it is mandatory when applicable. Both CMTS and CM report the signaled
        value of the parameter in this case. If the referenced parameter is not applicable to the
        direction or scheduling type of the corresponding DOCSIS QoS Parameter Set, both CMTS and
        CM report this attribute's value as 0.</documentation>
      <appinfo>
        <ipdr:units>bytes</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::UnsolicitGrantSize</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceNomGrantInterval" type="unsignedInt">
    <annotation>
      <documentation>This attribute specifies the nominal interval in microseconds between
        successive data grant opportunities on an upstream Service Flow. The referenced parameter
        is applicable only for upstream flows with a ServiceSchedule of 'Unsolicited Grant Service
        with Activity Detection' or 'Unsolicited Grant Service', and it is mandatory when
        applicable. Both CMTS and CM report the signaled value of the parameter in this case. If
        the referenced parameter is not applicable to the direction or scheduling type of the
        corresponding DOCSIS QoS Parameter Set, both CMTS and CM report this attribute's value as
        0.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::NomGrantInterval</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceTolGrantJitter" type="unsignedInt">
    <annotation>
      <documentation>This attribute specifies the maximum amount of time in microseconds that the
        transmission opportunities may be delayed from the nominal periodic schedule. The
        referenced parameter is applicable only for upstream flows with a ServiceSchedule of
        'Unsolicited Grant Service with Activity Detection' or 'Unsolicited Grant Service', and
        it is mandatory when applicable. Both CMTS and CM report the signaled value of the
        parameter in this case. If the referenced parameter is not applicable to the direction or
        scheduling type of the corresponding DOCSIS QoS Parameter Set, both CMTS and CM report
        this attribute's value as 0.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::TolGrantJitter</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ServiceGrantsPerInterval">
    <annotation>
      <documentation>This attribute specifies the number of data grants per Nominal Grant
        Interval (NomGrantInterval). The referenced parameter is applicable only for upstream
        flows with a ServiceSchedule of 'Unsolicited Grant Service with Activity Detection' or
        'Unsolicited Grant Service', and it is mandatory when applicable. Both CMTS and CM report
        the signaled value of the parameter in this case. If the referenced parameter is not
        applicable to the direction or scheduling type of the corresponding DOCSIS QoS Parameter
        Set, both CMTS and CM report this attribute's value as 0.</documentation>
      <appinfo>
        <ipdr:units>dataGrants</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::GrantsPerInterval</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedByte">
        <minInclusive value="0"/>
        <maxInclusive value="127"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ServicePacketClassifiers" type="hexBinary">
    <annotation>
      <documentation>For Low Latency Aggregate QoS Profiles, this object specifies packet
      classifiers assigned to the Low Latency service flow. Each classifier is encoded in
      hexBinary according to the TLV encoding. When multiple classifiers are specified, they are
      encoded as the concatenated sequence of encodings for each classifier</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AsfQosProfile::LowLatencyClassifierList</ipdr:reference>
        <ipdr:reference>MAC and Upper Layer Protocols Interface Specification,
          CM-SP-MULPIv3.1-I25-230419, April 19, 2023, Cable Television Laboratories, Inc.
          Quality-of-Service-Related Encodings annex</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="AggregateServiceFlowLowLatencyAsf" type="boolean">
    <annotation>
      <documentation>For Aggregate Service Flows, this attribute indicates if the Aggregate
      Service Flow is being used for Low Latency services. This implies the ASF is describing a
      Dual Queue SF setup underneath the ASF.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::LowLatencyAsf</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="AggregateServiceFlowAqmCouplingFactor">
    <annotation>
      <documentation>For Aggregate Service Flows, this attribute represents the coupling factor
      for the AQMs between the Classic service flow and the Latency service flow.</documentation>
      <appinfo>
        <ipdr:units>log2(bytes/second)</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::AqmCouplingFactor</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedByte">
        <minInclusive value="0"/>
        <maxInclusive value="255"/>
      </restriction>
    </simpleType>
  </element>
  <element name="AggregateServiceFlowSchedulingWeight" type="unsignedByte">
    <annotation>
      <documentation>For Aggregate Service Flows, this attribute represents the scheduling
      weight, as the implied ratio (out of 256), for the Latency Queue/Service Flow (within the
      ASF).</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::SchedulingWeight</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="AggregateServiceFlowQpEnable">
    <annotation>
      <documentation>For Aggregate Service Flows, this attribute indicates the Queue Protection
      status of this Aggregated Service Flow. If AggregateServiceFlowQpEnable is set to
      QueueProtectionDisabled(0), Queue Protection is disabled. If AggregateServiceFlowQpEnable
      is set to QueueProtectionEnabled(1), Queue Protection is enabled.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::QpEnable</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="integer">
        <enumeration value="0">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>QueueProtectionDisabled</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="1">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>QueueProtectionEnabled</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
      </restriction>
    </simpleType>
  </element>
  <element name="AggregateServiceFlowQpLatencyThreshold" type="unsignedShort">
    <annotation>
      <documentation>For Aggregate Service Flows, this attribute represents the latency threshold
      for the Queue Protection function in the Low Latency Service Flow.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::QpLatencyThreshold</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="AggregateServiceFlowQpQueuingScoreThreshold" type="unsignedShort">
    <annotation>
      <documentation>For Aggregate Service Flows, this attribute represents the Queuing Score
      Threshold for the Queue Protection function in the Low Latency Service Flow.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::QpQueuingScoreThreshold</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="AggregateServiceFlowQpDrainRateExponent" type="unsignedByte">
    <annotation>
      <documentation>For Aggregate Service Flows, this attribute represents the drain rate
      exponent for the Queue Protection function in the Low Latency Service Flow.</documentation>
      <appinfo>
        <ipdr:units>log2(bytes/second)</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::QpDrainRateExponent</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetMinimumBuffer" type="unsignedInt">
    <annotation>
      <documentation>For Service Flows, this attribute represents the configured minimum buffer
      size for the service flow.</documentation>
      <appinfo>
        <ipdr:units>bytes</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::MinimumBuffer</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetTargetBuffer" type="unsignedInt">
    <annotation>
      <documentation>For Service Flows, this attribute represents the configured target buffer size
      for the service flow. The value 0 indicates that no target buffer size was configured, and
      the device will use a vendor specific value.</documentation>
      <appinfo>
        <ipdr:units>bytes</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::TargetBuffer</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetMaximumBuffer" type="unsignedInt">
    <annotation>
      <documentation>For Service Flows, this attribute represents the configured maximum buffer
      size for the service flow. The value 4294967295 indicates that no maximum buffer size was
      configured, and thus there is no limit to the buffer size.</documentation>
      <appinfo>
        <ipdr:units>bytes</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::MaximumBuffer</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetAqmDisabled" type="boolean">
    <annotation>
      <documentation>For Service Flows, if this attribute is set to 'true', AQM is disabled on
      the upstream or downstream service flow specified by ServiceFlowId.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::AqmDisabled</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetClassicAqmLatencyTarget">
    <annotation>
      <documentation>For Service Flows, this attribute provides the target latency for this
        service flow when operating under Classic Active Queue Management (e.g., DOCSIS-PIE).
        This parameter will be ignored if the AQM Algorithm used by the Service Flow is
        ImmediateAqm. For downstream service flows, the value 256 indicates an unknown latency
        target.</documentation>
        <appinfo>
          <ipdr:units>milliseconds</ipdr:units>
          <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
            ParamSet::ClassicAqmLatencyTarget</ipdr:reference>
        </appinfo>
      </annotation>
      <simpleType>
        <restriction base="unsignedShort">
          <minInclusive value="0"/>
          <maxInclusive value="256"/>
        </restriction>
      </simpleType>
  </element>
  <element name="ParamSetAqmAlgInUse">
    <annotation>
      <documentation>For Service Flows, this attribute specifies the AQM algorithm in use for
      this service flow. </documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::AqmAlgInUse</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="integer">
        <enumeration value="1">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Unknown</ipdr:enumMeaning>
            </documentation>
            <documentation>The value Unknown(1) is reported for downstream service flows or when
            AQM is disabled.</documentation>
          </annotation>
        </enumeration>
        <enumeration value="2">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>Other</ipdr:enumMeaning>
            </documentation>
            <documentation>The value Other(2) indicates a vendor proprietary algorithm for
            upstream queue management.</documentation>
          </annotation>
        </enumeration>
        <enumeration value="3">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>DocsisPIE</ipdr:enumMeaning>
            </documentation>
            <documentation>The value DocsisPIE(3) indicates the upstream queue management
              Proportional Integral controller Enhanced (PIE) algorithm.</documentation>
          </annotation>
        </enumeration>
        <enumeration value="4">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>ImmediateAqm</ipdr:enumMeaning>
            </documentation>
            <documentation>The value ImmediateAqm(4) indicates the Immediate Active Queue
            Management algorithm.</documentation>
          </annotation>
        </enumeration>
      </restriction>
    </simpleType>
  </element>
  <element name="ParamSetGuaranteedGrantInterval" type="unsignedShort">
    <annotation>
      <documentation>For Service Flows, this attribute specifies the maximum interval between
      successive data transmission opportunities for a PGS Service Flow. The valid range of this
      parameter is specific to the CMTS. If the referenced parameter is not applicable to the
      direction or scheduling type of the corresponding DOCSIS QoS Parameter Set, both CMTS and
      CM report this attribute's value as 0.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::GuaranteedGrantInterval</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetGuaranteedGrantRate">
    <annotation>
      <documentation>For Service Flows, the value of this parameter specifies the minimum
      granting rate for an upstream PGS service flow. The valid range of this parameter is
      specific to the CMTS. The value of the ParamSetDataRateUnitSetting attribute defines the
      units of ParamSetGuaranteedGrantRate.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::GuaranteedGrantRate</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="unsignedInt">
        <minInclusive value="0"/>
        <maxInclusive value="4294967295"/>
      </restriction>
    </simpleType>
  </element>
  <element name="ParamSetGuaranteedRequestInterval" type="unsignedShort">
    <annotation>
      <documentation>For Service Flows, this attribute specifies the maximum interval (in units
      of microseconds) between successive request opportunities (including unicast request
      opportunities and piggyback request opportunities) for an upstream PGS service
      flow.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::GuaranteedRequestInterval</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetImmedAqmMaxThreshold" type="unsignedShort">
    <annotation>
      <documentation>For Service Flows, this attribute specifies the maximum threshold in
      microseconds of the ramp function used by the Immediate AQM algorithm and the Queue
      Protection algorithm.</documentation>
      <appinfo>
        <ipdr:units>microseconds</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::ImmedAqmMaxThreshold</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetImmedAqmRangeExponentRampFunc" type="unsignedByte">
    <annotation>
      <documentation>For Service Flows, this attribute specifies the range in nanoseconds of the
      ramp function used by the Immediate AQM algorithm and the Queue Protection algorithm. It is
      expressed as an exponent of 2, e.g., a value of 19 means the range of the ramp will be
      2^19 = 524288 ns (roughly 524 µs).</documentation>
      <appinfo>
        <ipdr:units>log2(nanoseconds)</ipdr:units>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::ImmedAqmRangeExponentRampFunc</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetPgsActivityDetectionDisable" type="boolean">
    <annotation>
      <documentation>For Service Flows, this attribute indicates whether the activity detection
      function for an upstream service flow with the Proactive Grant Service scheduling type is
      enabled or disabled. The value 'false' is reported if the upstream PGS service flow is
      configured to switch between a polling mode and a granting mode based on detection of
      upstream activity. The value 'true' is reported if the upstream PGS service flow is
      configured to continuously provide grants regardless of upstream activity.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::PgsActivityDetectionDisable</ipdr:reference>
      </appinfo>
    </annotation>
  </element>
  <element name="ParamSetDataRateUnitSetting">
    <annotation>
      <documentation>For Service Flows, this attribute indicates the base unit for the Service
        Flow traffic rate attributes Maximum Sustained Traffic Rate (ServiceMaxSustained), Minimum
        Reserved Traffic Rate (ServiceMinReservedRate), and Peak Traffic Rate (ServicePeakRate).
        For Aggregate Service Flows, this attribute indicates the base unit for the
        AggregateServiceFlow traffic rate attributes Maximum Aggregate Traffic Rate
        (ServiceMaxSustained), Minimum Reserved Traffic Rate (ServiceMinReservedRate), and Peak
        Traffic Rate (ServicePeakRate).
        
        The value of this attribute allows for their interpretation in units of bps, kbps, mbps,
        or gbps. The default value for ParamSetDataRateUnitSetting is bps.</documentation>
      <appinfo>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          ParamSet::DataRateUnitSetting</ipdr:reference>
        <ipdr:reference>Information Model Mapping: CM-SP-CCAP-OSSIv3.1
          AggregateServiceFlow::DataRateUnitSetting</ipdr:reference>
      </appinfo>
    </annotation>
    <simpleType>
      <restriction base="integer">
        <enumeration value="0">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>bps</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="1">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>kbps</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="2">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>mbps</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
        <enumeration value="3">
          <annotation>
            <documentation>
              <ipdr:enumMeaning>gbps</ipdr:enumMeaning>
            </documentation>
          </annotation>
        </enumeration>
      </restriction>
    </simpleType>
  </element>
</schema>
