<?xml version="1.0" encoding="gb2312"?>
<xs:schema targetNamespace="http://www.h3c.com/netconf/config:1.0"
                  elementFormDefault="qualified"
                  xmlns="http://www.h3c.com/netconf/config:1.0"
                  xmlns:base="http://www.h3c.com/netconf/base:1.0"
                  xmlns:netconf ="urn:ietf:params:xml:ns: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 schemaLocation="netconf.xsd" namespace="urn:ietf:params:xml:ns:netconf:base:1.0"/>
  <xs:annotation>
    <xs:documentation>
      MACA module config definition
    </xs:documentation>
  </xs:annotation>
  <xs:complexType name="MACAVLANID">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:maxInclusive value="4094"/>
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  <xs:element name="MACA">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Common" minOccurs="0">
          <xs:annotation>
            <xs:documentation>MAC authentication global paramenters</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="Enable" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Global MAC authentication  feature.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:Boolean"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="Domain" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Authentication domain of the user</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:String">
                      <xs:minLength value ="1"></xs:minLength>
                      <xs:maxLength value ="255"></xs:maxLength>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="UserNameFormat" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>
                    Format of user's name:
                      1--Fixed; 2--Individual MAC address.
                  </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:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="UserName" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Fixed user name of the device.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:String">
                      <xs:minLength value ="1"></xs:minLength>
                      <xs:maxLength value ="55"></xs:maxLength>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="UserPassword" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Password for fixed user name.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:String"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="IdleInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of user idle detection timer.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:minInclusive value="60"></xs:minInclusive>
                      <xs:maxInclusive value="2147483647"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="QuietInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of Quiet timer.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:minInclusive value="1"></xs:minInclusive>
                      <xs:maxInclusive value="3600"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="ServerInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of server response timer.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:minInclusive value="100"></xs:minInclusive>
                      <xs:maxInclusive value="300"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="Interfaces" minOccurs="0">
          <xs:annotation>
            <xs:documentation>MAC authentication interface's information</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Interface" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IfIndex" nillable="true" type="base:NameAndIndexUnion" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Interface index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Enable" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Enable MAC authentication.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Boolean"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AuthDelayInterval" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Period value of delay authentication timer.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="180"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MaxUser" type="base:UnsignedInteger32" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Maximum user number on this interface.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ReauthUnreachableMode" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>
                          Status of user online or offline when the AAA server is not available during re-authenticating.
                        </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:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MultiVLAN" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Allow authenticated user in multi-VLANs on this interfaces.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="0"></xs:enumeration>
                            <xs:enumeration value="1"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="CriticalVLAN" type="MACAVLANID" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>VLAN for users as the server is unreachable.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="GuestVLAN" type="MACAVLANID" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>VLAN for users failed in authentication.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Domain" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Authentication domain of user on the interface</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value ="255"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </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>
