<?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 namespace="http://www.h3c.com/netconf/base:1.0" schemaLocation="basetype.xsd"></xs:import>

  <xs:annotation>
    <xs:documentation >
      IRF module data definition
    </xs:documentation>
  </xs:annotation>
  <xs:element name="IRF">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Capability" minOccurs="0">
          <xs:annotation>
            <xs:documentation>IRF Capability</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="MaxMemberCount" minOccurs="0" type="base:UnsignedInteger32" nillable="true" >
                <xs:annotation>
                  <xs:documentation>The maximum number of members in a stack.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="MaxPriority" minOccurs ="0" type="base:UnsignedInteger32" nillable="true">
                <xs:annotation>
                  <xs:documentation>The highest priority that can be configured for a member in a stack</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="MaxIfNumPerIRFPort" minOccurs="0" type="base:UnsignedInteger32" nillable="true">
                <xs:annotation >
                  <xs:documentation>The maximum number of physical ports in an IRF port.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SupportedIfTypes" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ifTypeExt"  type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The physical interface type.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
              </xs:element>
              <xs:element name="SupportNormalPortMode" minOccurs="0" type="base:Boolean" nillable="true">
                <xs:annotation>
                  <xs:documentation>Indicates whether support normal port mode.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SupportEnhancedPortMode" minOccurs="0" type="base:Boolean" nillable="true">
                <xs:annotation>
                  <xs:documentation>Indicates whether support enhanced port mode.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SupportExtendedPortMode" minOccurs="0" type="base:Boolean" nillable="true">
                <xs:annotation>
                  <xs:documentation>Indicates whether support extended port mode.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SupportLightIRFMode" minOccurs="0" type="base:Boolean" nillable="true">
                <xs:annotation>
                  <xs:documentation>Indicates whether support light IRF mode.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SupportNormalIRFMode" minOccurs="0" type="base:Boolean" nillable="true">
                <xs:annotation>
                  <xs:documentation>Indicates whether support normal IRF mode.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SupportEnhancedIRFMode" minOccurs="0" type="base:Boolean" nillable="true">
                <xs:annotation>
                  <xs:documentation>Indicates whether support enhanced IRF mode.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SupportIRFModeConvert" minOccurs="0" type="base:Boolean" nillable="true">
                <xs:annotation>
                  <xs:documentation>Indicates whether support mode convert between IRF and stand-alone mode.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="Configuration" minOccurs="0">
          <xs:annotation>
            <xs:documentation>IRF global configuration information</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="AutoMerge" minOccurs="0" type="base:EnableState" nillable="true" >
                <xs:annotation>
                  <xs:documentation>
                    State of the auto merge function: Enabled, Disabled
                  </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="AutoUpgrade" minOccurs ="0" type="base:EnableState" nillable="true">
                <xs:annotation>
                  <xs:documentation>Status of the software auto-update function: Enabled, Disabled</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Domain" minOccurs="0" type="base:UnsignedInteger32" nillable="true">
                <xs:annotation >
                  <xs:documentation>Domain ID for the IRF fabric</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="LinkDelay" minOccurs="0" nillable="true">
                <xs:annotation >
                  <xs:documentation>IRF link down report delay</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:minInclusive value="0"></xs:minInclusive>
                      <xs:maxInclusive value="10000"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="MacPersist" minOccurs="0" nillable="true" >
                <xs:annotation>
                  <xs:documentation>
                    MacIRF bridge MAC persistence setting
                    Enumberation.
                    1 Timer
                    2 Always
                    3 No
                    Default: 1 Timer
                  </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:enumeration value="1"></xs:enumeration>
                      <xs:enumeration value="2"></xs:enumeration>
                      <xs:enumeration value="3"></xs:enumeration>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="BridgeMac" minOccurs="0" type="base:MacAddress" nillable="true">
                <xs:annotation>
                  <xs:documentation>IRF bridge MAC address</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="TopoType" minOccurs="0" nillable="true" >
                <xs:annotation>
                  <xs:documentation>
                    Stack topology
                    Enumeration.
                    1 Chain
                    2 Ring
                    3 Unconverged
                  </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:enumeration value="1"></xs:enumeration>
                      <xs:enumeration value="2"></xs:enumeration>
                      <xs:enumeration value="3"></xs:enumeration>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="StackMode" minOccurs="0" type="base:Boolean" nillable="true">
                <xs:annotation>
                  <xs:documentation>Current stack mode of the device</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="MemberCount" minOccurs="0" type="base:UnsignedInteger32" nillable="true" >
                <xs:annotation>
                  <xs:documentation>The number of members currently in a stack</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="Members" minOccurs="0">
          <xs:annotation>
            <xs:documentation>stack members' infomations</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Member"  maxOccurs="unbounded" minOccurs="0">
                <xs:annotation >
                  <xs:documentation>Rowname</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="MemberID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Stack member identification</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="32"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="NewMemberID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Member ID assigned to the device</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="32"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Description" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>Description for the member device. </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value="127"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Priority" minOccurs="0"  nillable="true">
                      <xs:annotation>
                        <xs:documentation>Member priority</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="32"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="CPUMac" minOccurs="0" type="base:MacAddress" nillable="true">
                      <xs:annotation>
                        <xs:documentation>CPU Mac address of member</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Board" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="Chassis"  type="base:UnsignedShort" minOccurs="0" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Chassis ID of the board, Unsigned integer.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Slot" type="base:UnsignedShort" minOccurs="0"  nillable="true" >
                            <xs:annotation>
                              <xs:documentation> Slot ID of the board, Unsigned integer.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Role"  minOccurs="0"  nillable="true" >
                            <xs:annotation>
                              <xs:documentation>
                                Board role
                                Enumeration.
                                1 master
                                2 standby
                                3 loading
                                4 other
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"></xs:enumeration>
                                  <xs:enumeration value="2"></xs:enumeration>
                                  <xs:enumeration value="3"></xs:enumeration>
                                  <xs:enumeration value="4"></xs:enumeration>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <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="IRFPorts" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Stack ports' infomations</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="IRFPort"  maxOccurs="unbounded" minOccurs="0">
                <xs:annotation >
                  <xs:documentation>Rowname</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="MemberID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Stack member identification</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="32"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Port" minOccurs="0"  nillable="true">
                      <xs:annotation>
                        <xs:documentation>IRF port number</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="2"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Neighbor" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Neighbor member ID of this device</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="32"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="State" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>
                          State of the IRF port
                          Enumeration.
                          1 Up
                          2 Down
                          3 Timeout
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                            <xs:enumeration value="3"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Interface" minOccurs="0" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="IfName" type="base:InterfaceName" minOccurs="0"  nillable="true">
                            <xs:annotation>
                              <xs:documentation>Interface name</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="MDCName" minOccurs="0" nillable="true">
                            <xs:annotation>
                              <xs:documentation>MDC name</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:String">
                                  <xs:minLength value ="1"></xs:minLength>
                                  <xs:maxLength value="15"></xs:maxLength>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="Mode" minOccurs="0" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Physical IRF port mode
                                Enumeration.
                                1 Normal
                                2 Enhanced
                                3 Extended
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"></xs:enumeration>
                                  <xs:enumeration value="2"></xs:enumeration>
                                  <xs:enumeration value="3"></xs:enumeration>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="LinkState" minOccurs="0" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Link state of the interface
                                Enumeration.
                                1 Up
                                2 Down
                                3 ADM
                                4 Absent
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"></xs:enumeration>
                                  <xs:enumeration value="2"></xs:enumeration>
                                  <xs:enumeration value="3"></xs:enumeration>
                                  <xs:enumeration value="4"></xs:enumeration>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <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>
