<?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>

  <xs:annotation>
    <xs:documentation >
      StaticRoute module config definition.
    </xs:documentation>
  </xs:annotation>

  <xs:element name="StaticRoute">

    <xs:complexType>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element name="Ipv4StaticRouteConfigurations" minOccurs="0">
          <xs:annotation>
            <xs:documentation>IPv4 static route configuration information.</xs:documentation>
          </xs:annotation>

          <xs:complexType>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
              <xs:element name="RouteEntry" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name of Ipv4StaticRouteConfigurations table.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    
                    <xs:element name="DestVrfIndex"  minOccurs="0"  type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination VRF index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    
                    <xs:element name="DestTopologyIndex"  minOccurs="0"  type="base:UnsignedInteger32" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination topology index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="Ipv4Address"  minOccurs="0"  type="base:Ipv4Address" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="Ipv4PrefixLength"  minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Length of the destination IPv4 address prefix.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedChar">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="32"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>


                    <xs:element name="NexthopVrfIndex"  minOccurs="0"  type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Nexthop VRF index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="NexthopIpv4Address"  minOccurs="0"  type="base:Ipv4Address" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Nexthop IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="IfIndex"  minOccurs="0"  type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Out interface index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="Tag"  minOccurs="0"  nillable="true">
                      <xs:annotation>
                        <xs:documentation>Route tag.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4294967295"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="Preference"  minOccurs="0"  nillable="true">
                      <xs:annotation>
                        <xs:documentation>Route preference.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedChar">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="255"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="Description"  minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Description information.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value="60"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="Permanent"  minOccurs="0"  type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Permanent attribute of route.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="BackupPathAttribute" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Backup path attribute.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all minOccurs="0">

                          <xs:element name="BackupIfIndex"  minOccurs="1"  type="base:NameAndIndexUnion" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Backup interface index.</xs:documentation>
                            </xs:annotation>
                          </xs:element>

                          <xs:element name="BackupNexthopIpv4Address"  minOccurs="0"  type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Backup nexthop IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>

                        </xs:all>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="BfdAttribute" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>BFD attribute.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all minOccurs="0">

                          <xs:element name="BfdWorkMode"  minOccurs="1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                BFD work mode.
                                1: Control-packet mode.
                                2: Echo-packet mode.
                              </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="BfdSourceIpv4Address"  minOccurs="0"  type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>BFD source IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>

                        </xs:all>
                      </xs:complexType>
                    </xs:element>

                  <xs:element name="RecursiveHost"  minOccurs="0" type="base:Boolean" nillable="true">
                    <xs:annotation>
                      <xs:documentation>Recursive look up ARP host route.</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="Ipv6StaticRouteConfigurations" minOccurs="0">
          <xs:annotation>
            <xs:documentation>IPv6 static route configuration information.</xs:documentation>
          </xs:annotation>

          <xs:complexType>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
              <xs:element name="RouteEntry" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name of Ipv6StaticRouteConfigurations table.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>

                    <xs:element name="DestVrfIndex"  minOccurs="0"  type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination VRF index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    
                    <xs:element name="DestTopologyIndex"  minOccurs="0"  type="base:UnsignedInteger32" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination topology index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    
                    <xs:element name="Ipv6Address"  minOccurs="0"  type="base:Ipv6Address" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination IPv6 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="Ipv6PrefixLength"  minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Length of the destination IPv6 address prefix.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedChar">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="128"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>


                    <xs:element name="NexthopVrfIndex"  minOccurs="0"  type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Nexthop VRF index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="NexthopIpv6Address"  minOccurs="0"  type="base:Ipv6Address" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Nexthop IPv6 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="IfIndex"  minOccurs="0"  type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Out interface index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="Tag"  minOccurs="0"  nillable="true">
                      <xs:annotation>
                        <xs:documentation>Route tag.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4294967295"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="Preference"  minOccurs="0"  nillable="true">
                      <xs:annotation>
                        <xs:documentation>Route preference.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedChar">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="255"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="Description"  minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Description information.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value="60"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="Permanent"  minOccurs="0"  type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Permanent attribute of route.</xs:documentation>
                      </xs:annotation>
                    </xs:element>

                    <xs:element name="BfdAttribute" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>BFD attribute.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all minOccurs="0">

                          <xs:element name="BfdWorkMode"  minOccurs="1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                BFD work mode.
                                1: Control-packet mode.
                                2: Echo-packet mode.
                              </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="BfdSourceIpv6Address"  minOccurs="0"  type="base:Ipv6Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>BFD source IPv6 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>

                        </xs:all>
                      </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>
