<?xml version="1.0" encoding="gb2312" ?>
<xs:schema targetNamespace="http://www.h3c.com/netconf/data:1.0"
           elementFormDefault="qualified"
           xmlns="http://www.h3c.com/netconf/data:1.0"
           xmlns:base="http://www.h3c.com/netconf/base:1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="basetype.xsd" namespace="http://www.h3c.com/netconf/base:1.0"></xs:import>

  <xs:annotation>
    <xs:documentation>Hardware-queue data define</xs:documentation>
  </xs:annotation>

  <xs:complexType name="HardwareQueue_Mode">
    <xs:simpleContent >
      <xs:restriction base="base:UnsignedInteger32">
        <xs:annotation>
          <xs:documentation>
            Enumeration: 1(SP) 2(Weight WRR) 3(Bytecount WRR) 4(Weight WFQ) 5(Bytecount WFQ)
          </xs:documentation>
        </xs:annotation>
        <xs:enumeration value="1" />
        <xs:enumeration value="2" />
        <xs:enumeration value="3" />
        <xs:enumeration value="4" />
        <xs:enumeration value="5" />
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="HardwareQueue_QueueID">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:minInclusive value ="0"></xs:minInclusive>
        <xs:maxInclusive value ="15"></xs:maxInclusive>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="HardwareQueue">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="QueueMode">
          <xs:annotation>
            <xs:documentation>Queue mode table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Queue">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IfIndex" type="base:NameAndIndexUnion" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interface index</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Mode" type="HardwareQueue_Mode" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Mode of hardware queue</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="QueueParameter">
          <xs:annotation>
            <xs:documentation>Queue parameter table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Queue">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IfIndex" type="base:NameAndIndexUnion" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interface index</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="QueueID" type="HardwareQueue_QueueID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>ID of a queue</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="GroupID" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Specifies group</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Weight" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Allocates bandwidth to queues based on their weights</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ByteCount" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Allocates bandwidth to queues in terms of bytes</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MinBandwidthKbps" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Set the queue bandwidth</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
	<xs:element name="QueueCapacility">
          <xs:annotation>
            <xs:documentation>Queue Capcility table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Queue">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IfIndex" type="base:NameAndIndexUnion" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interface index</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WrrWeightMin" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WRR min Weight</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WrrWeightMax" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WRR max Weight</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WrrByteMin" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WRR min Byte</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WrrByteMax" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WRR max Byte</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WfqWeightMin" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WFQ min Weight</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WfqWeightMax" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WFQ max Weight</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WfqByteMin" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WFQ min Byte</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WfqByteMax" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WFQ max Byte</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WfqBandWidthMin" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WFQ min bandwidth</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WfqBandWidthMax" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>WFQ max bandwidth</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
      </xs:choice>
      <xs:attributeGroup ref="base:NodeAttributeGroup"></xs:attributeGroup>
    </xs:complexType>
  </xs:element>
</xs:schema>