<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
  targetNamespace="urn:ietf:params:xml:ns:yang:ietf-routing"
  elementFormDefault="qualified" attributeFormDefault="unqualified"
  xml:lang="en" version="2011-09-23"
  xmlns:ncx="http://netconfcentral.org/ns/yuma-ncx"
  xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
  xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types"
  xmlns:ianaaf="urn:ietf:params:xml:ns:yang:iana-afn-safi">
  <xs:annotation>
    <xs:documentation>Converted from YANG file 'ietf-routing.yang' by yangdump version 2.2.1724
      
      Module: ietf-routing
      Organization: IETF NETMOD (NETCONF Data Modeling Language) Working Group
      Version: 2011-09-23
      Contact: WG Web: &lt;http://tools.ietf.org/wg/netmod/&gt;
      WG List: &lt;mailto:netmod@ietf.org&gt;
      
      WG Chair: David Kessens
      &lt;mailto:david.kessens@nsn.com&gt;
      
      WG Chair: Juergen Schoenwaelder
      &lt;mailto:j.schoenwaelder@jacobs-university.de&gt;
      
      Editor: Ladislav Lhotka
      &lt;mailto:lhotka@cesnet.cz&gt;
      </xs:documentation>
    <xs:documentation>This module contains YANG definitions of essential components
      that may be used for configuring a routing subsystem.
      
      Copyright (c) 2011 IETF Trust and the persons identified as
      authors of the code. All rights reserved.
      
      Redistribution and use in source and binary forms, with or
      without modification, is permitted pursuant to, and subject to
      the license terms contained in, the Simplified BSD License set
      forth in Section 4.c of the IETF Trust's Legal Provisions
      Relating to IETF Documents
      (http://trustee.ietf.org/license-info).
      
      This version of this YANG module is part of RFC XXXX; see the
      RFC itself for full legal notices.
      </xs:documentation>
    <xs:appinfo>
      <ncx:source>/usr/share/yuma/modules/ietf/ietf-routing.yang</ncx:source>
      <ncx:organization>IETF NETMOD (NETCONF Data Modeling Language) Working Group</ncx:organization>
      <ncx:contact>WG Web: &lt;http://tools.ietf.org/wg/netmod/&gt;
        WG List: &lt;mailto:netmod@ietf.org&gt;
        
        WG Chair: David Kessens
        &lt;mailto:david.kessens@nsn.com&gt;
        
        WG Chair: Juergen Schoenwaelder
        &lt;mailto:j.schoenwaelder@jacobs-university.de&gt;
        
        Editor: Ladislav Lhotka
        &lt;mailto:lhotka@cesnet.cz&gt;
        </ncx:contact>
    </xs:appinfo>
    <xs:appinfo>
      <ncx:revision>
        <ncx:version>2011-09-23</ncx:version>
        <ncx:description>Initial revision.</ncx:description>
      </ncx:revision>
    </xs:appinfo>
  </xs:annotation>
  <xs:simpleType name="router-ref">
    <xs:annotation>
      <xs:documentation>This type is used for leafs that reference a router
        instance.</xs:documentation>
      <xs:appinfo>
        <ncx:path>/rt:routing/rt:router/rt:name</ncx:path>
      </xs:appinfo>
    </xs:annotation>
  </xs:simpleType>
  <xs:group name="afn-safi">
    <xs:annotation>
      <xs:documentation>This grouping provides two parameters specifying address
        family and subsequent address family.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="address-family" type="ianaaf:address-family"
        default="ipV4" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Address family of routes in the routing table.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="safi" type="ianaaf:subsequent-address-family"
        default="nlri-unicast" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Subsequent address family identifier of routes in the
            routing table.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:group name="route-content">
    <xs:annotation>
      <xs:documentation>Generic parameters of routes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="source-protocol" type="xs:string" minOccurs="0">
        <xs:annotation>
          <xs:documentation>The name of the routing protocol instance from which the
            route comes. This routing protocol must be configured
            (automatically or manually) in the device.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="last-modified" type="yang:date-and-time"
        minOccurs="0">
        <xs:annotation>
          <xs:documentation>Time stamp of the last modification of the route. If the
            route was never modified, it is the time when the route was
            inserted to the routing table.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="get-route_output_type__">
    <xs:complexContent>
      <xs:extension base="nc:dataInlineType">
        <xs:sequence>
          <xs:element name="route">
            <xs:annotation>
              <xs:documentation>Contents of the reply specific for each address family
                should be defined through augmenting.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="address-family"
                  type="ianaaf:address-family" default="ipV4"
                  minOccurs="0">
                  <xs:annotation>
                    <xs:documentation>Address family of routes in the routing table.</xs:documentation>
                  </xs:annotation>
                </xs:element>
                <xs:element name="safi"
                  type="ianaaf:subsequent-address-family"
                  default="nlri-unicast" minOccurs="0">
                  <xs:annotation>
                    <xs:documentation>Subsequent address family identifier of routes in the
                      routing table.</xs:documentation>
                  </xs:annotation>
                </xs:element>
                <xs:element name="source-protocol" type="xs:string"
                  minOccurs="0">
                  <xs:annotation>
                    <xs:documentation>The name of the routing protocol instance from which the
                      route comes. This routing protocol must be configured
                      (automatically or manually) in the device.</xs:documentation>
                  </xs:annotation>
                </xs:element>
                <xs:element name="last-modified"
                  type="yang:date-and-time" minOccurs="0">
                  <xs:annotation>
                    <xs:documentation>Time stamp of the last modification of the route. If the
                      route was never modified, it is the time when the route was
                      inserted to the routing table.</xs:documentation>
                  </xs:annotation>
                </xs:element>
                <xs:any minOccurs="0" maxOccurs="unbounded"
                  namespace="##other" processContents="lax"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:any minOccurs="0" maxOccurs="unbounded"
            namespace="##other" processContents="lax"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="get-route" substitutionGroup="nc:rpcOperation">
    <xs:annotation>
      <xs:documentation>Query the forwarding information base of a router instance
        whose name is given as the first parameter 'router-name'. The
        second parameter 'destination-address' should be augmented in
        order to support destination addresses of all supported
        address families. The server returns the route which is
        currently used for forwarding datagrams to that destination
        address, or an error message, if no such route exists.</xs:documentation>
      <xs:appinfo>
        <ncx:rpc-output>get-route_output_type__</ncx:rpc-output>
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="nc:rpcOperationType">
          <xs:sequence>
            <xs:element name="router-name" type="router-ref">
              <xs:annotation>
                <xs:documentation>First parameter: name of the router instance whose
                  forwarding information base is queried.</xs:documentation>
                <xs:appinfo>
                  <ncx:mandatory>true</ncx:mandatory>
                </xs:appinfo>
              </xs:annotation>
            </xs:element>
            <xs:element name="destination-address">
              <xs:annotation>
                <xs:documentation>Second parameter: destination address.
                  
                  AFN/SAFI-specific modules must augment this container with
                  a leaf named 'address'.
                  </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="address-family"
                    type="ianaaf:address-family" default="ipV4"
                    minOccurs="0">
                    <xs:annotation>
                      <xs:documentation>Address family of routes in the routing table.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:element name="safi"
                    type="ianaaf:subsequent-address-family"
                    default="nlri-unicast" minOccurs="0">
                    <xs:annotation>
                      <xs:documentation>Subsequent address family identifier of routes in the
                        routing table.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                  <xs:any minOccurs="0" maxOccurs="unbounded"
                    namespace="##other" processContents="lax"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:any minOccurs="0" maxOccurs="unbounded"
              namespace="##other" processContents="lax"/>
          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="routing">
    <xs:annotation>
      <xs:documentation>Routing parameters.</xs:documentation>
      <xs:appinfo>
        <ncx:config>true</ncx:config>
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="router" minOccurs="0" maxOccurs="unbounded">
          <xs:annotation>
            <xs:documentation>Each list entry is a container for configuration and
              operational state data of a single (logical) router.</xs:documentation>
            <xs:appinfo>
              <ncx:ordered-by>system</ncx:ordered-by>
            </xs:appinfo>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The unique router name.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="description" type="xs:string"
                minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Textual description of the router.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="enabled" type="xs:boolean"
                default="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Enable or disable the router. The default value is 'true',
                    which means that the router is enabled.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="routing-protocols">
                <xs:annotation>
                  <xs:documentation>Container for the list of configured routing protocol
                    instances.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="routing-protocol" minOccurs="0"
                      maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>An instance of a routing protocol.</xs:documentation>
                        <xs:appinfo>
                          <ncx:ordered-by>system</ncx:ordered-by>
                        </xs:appinfo>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="name" type="xs:string">
                            <xs:annotation>
                              <xs:documentation>The name of the routing protocol instance.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="description"
                            type="xs:string" minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Textual description of the routing protocol
                                instance.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="type" type="xs:QName">
                            <xs:annotation>
                              <xs:documentation>Type of the routing protocol - an identity derived
                                from the 'routing-protocol' base identity.</xs:documentation>
                              <xs:appinfo>
                                <ncx:mandatory>true</ncx:mandatory>
                              </xs:appinfo>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="connected-routing-tables">
                            <xs:annotation>
                              <xs:documentation>Container for connected routing tables.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element
                                  name="connected-routing-table"
                                  minOccurs="0" maxOccurs="unbounded">
                                  <xs:annotation>
                                    <xs:documentation>List of routing tables to which the routing protocol
                                      instance is connected. No more than one routing
                                      table may be configured for each AFN/SAFI pair.
                                      
                                      Implementation may provide default routing tables
                                      for some AFN/SAFI pairs, which are used if the
                                      corresponding entry is not configured.
                                      </xs:documentation>
                                    <xs:appinfo>
                                      <ncx:ordered-by>system</ncx:ordered-by>
                                    </xs:appinfo>
                                  </xs:annotation>
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="name"
                                        type="xs:string">
                                        <xs:annotation>
                                          <xs:documentation>This must be the name of an existing routing
                                            table.</xs:documentation>
                                        </xs:annotation>
                                      </xs:element>
                                      <xs:element name="import-filter"
                                        type="xs:string" minOccurs="0">
                                        <xs:annotation>
                                          <xs:documentation>Reference to a route filter that is used for
                                            filtering routes passed from this routing protocol
                                            instance to the routing table specified by the
                                            'name' sibling node. If this leaf is not present,
                                            the behavior is protocol-specific, but typically
                                            it means that all routes are accepted.</xs:documentation>
                                        </xs:annotation>
                                      </xs:element>
                                      <xs:element name="export-filter"
                                        type="xs:string" minOccurs="0">
                                        <xs:annotation>
                                          <xs:documentation>Reference to a route filter that is used for
                                            filtering routes passed from the routing table
                                            specified by the 'name' sibling node to this
                                            routing protocol instance. If this leaf is not
                                            present, the behavior is protocol-specific -
                                            typically it means that all routes are accepted,
                                            except for the 'direct' and 'static'
                                            pseudo-protocols which accept no routes from any
                                            routing table.</xs:documentation>
                                        </xs:annotation>
                                      </xs:element>
                                      <xs:any minOccurs="0"
                                        maxOccurs="unbounded"
                                        namespace="##other"
                                        processContents="lax"/>
                                    </xs:sequence>
                                  </xs:complexType>
                                  <xs:key
                                    name="connected-routing-tablekey36">
                                    <xs:selector xpath="."/>
                                    <xs:field xpath="name"/>
                                  </xs:key>
                                </xs:element>
                                <xs:any minOccurs="0"
                                  maxOccurs="unbounded"
                                  namespace="##other"
                                  processContents="lax"/>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:any minOccurs="0" maxOccurs="unbounded"
                            namespace="##other" processContents="lax"/>
                        </xs:sequence>
                      </xs:complexType>
                      <xs:key name="routing-protocolkey37">
                        <xs:selector xpath="."/>
                        <xs:field xpath="name"/>
                      </xs:key>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"
                      namespace="##other" processContents="lax"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="route-filters">
                <xs:annotation>
                  <xs:documentation>Container for configured route filters.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="route-filter" minOccurs="0"
                      maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>Route filters are used for filtering and/or manipulating
                          routes that are passed between a routing protocol and a
                          routing table or vice versa, or between two routing
                          tables. It is expected that other modules augment this
                          list with contents specific for a particular route
                          filter type.</xs:documentation>
                        <xs:appinfo>
                          <ncx:ordered-by>system</ncx:ordered-by>
                        </xs:appinfo>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="name" type="xs:string">
                            <xs:annotation>
                              <xs:documentation>The name of the route filter.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="description"
                            type="xs:string" minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Textual description of the route filter.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="type" type="xs:QName"
                            default="deny-all-route-filter"
                            minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Type of the route-filter - an identity derived from
                                the 'route-filter' base identity. The default value
                                represents an all-blocking filter.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:any minOccurs="0" maxOccurs="unbounded"
                            namespace="##other" processContents="lax"/>
                        </xs:sequence>
                      </xs:complexType>
                      <xs:key name="route-filterkey38">
                        <xs:selector xpath="."/>
                        <xs:field xpath="name"/>
                      </xs:key>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"
                      namespace="##other" processContents="lax"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="routing-tables">
                <xs:annotation>
                  <xs:documentation>Container for configured routing tables.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="routing-table" minOccurs="0"
                      maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>Each entry represents a routing table identified by the
                          'name' key. All routes in a routing table must have the
                          same AFN and SAFI.</xs:documentation>
                        <xs:appinfo>
                          <ncx:ordered-by>system</ncx:ordered-by>
                        </xs:appinfo>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="name" type="xs:string">
                            <xs:annotation>
                              <xs:documentation>The name of the routing table.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="address-family"
                            type="ianaaf:address-family" default="ipV4"
                            minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Address family of routes in the routing table.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="safi"
                            type="ianaaf:subsequent-address-family"
                            default="nlri-unicast" minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Subsequent address family identifier of routes in the
                                routing table.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="description"
                            type="xs:string" minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Textual description of the routing table.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="routes">
                            <xs:annotation>
                              <xs:documentation>Current contents of the routing table (operational
                                state data).</xs:documentation>
                              <xs:appinfo>
                                <ncx:config>false</ncx:config>
                              </xs:appinfo>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="route" minOccurs="0"
                                  maxOccurs="unbounded">
                                  <xs:annotation>
                                    <xs:documentation>A routing table entry. It is expected that this data
                                      node will be augmented with information specific for
                                      routes of each address family.</xs:documentation>
                                    <xs:appinfo>
                                      <ncx:ordered-by>system</ncx:ordered-by>
                                    </xs:appinfo>
                                  </xs:annotation>
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element
                                        name="source-protocol"
                                        type="xs:string" minOccurs="0">
                                        <xs:annotation>
                                          <xs:documentation>The name of the routing protocol instance from which the
                                            route comes. This routing protocol must be configured
                                            (automatically or manually) in the device.</xs:documentation>
                                        </xs:annotation>
                                      </xs:element>
                                      <xs:element name="last-modified"
                                        type="yang:date-and-time"
                                        minOccurs="0">
                                        <xs:annotation>
                                          <xs:documentation>Time stamp of the last modification of the route. If the
                                            route was never modified, it is the time when the route was
                                            inserted to the routing table.</xs:documentation>
                                        </xs:annotation>
                                      </xs:element>
                                      <xs:any minOccurs="0"
                                        maxOccurs="unbounded"
                                        namespace="##other"
                                        processContents="lax"/>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:any minOccurs="0"
                                  maxOccurs="unbounded"
                                  namespace="##other"
                                  processContents="lax"/>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="recipient-routing-tables"
                            minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                              <xs:documentation>A list of routing tables that receive routes from this
                                routing table.</xs:documentation>
                              <xs:appinfo>
                                <ncx:ordered-by>system</ncx:ordered-by>
                              </xs:appinfo>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="recipient-name"
                                  type="xs:string">
                                  <xs:annotation>
                                    <xs:documentation>The name of the recipient routing table.</xs:documentation>
                                  </xs:annotation>
                                </xs:element>
                                <xs:element name="filter"
                                  type="xs:string" minOccurs="0">
                                  <xs:annotation>
                                    <xs:documentation>A route filter which is applied to the routes passed
                                      on to the recipient routing table.</xs:documentation>
                                  </xs:annotation>
                                </xs:element>
                                <xs:any minOccurs="0"
                                  maxOccurs="unbounded"
                                  namespace="##other"
                                  processContents="lax"/>
                              </xs:sequence>
                            </xs:complexType>
                            <xs:key
                              name="recipient-routing-tableskey39">
                              <xs:selector xpath="."/>
                              <xs:field xpath="recipient-name"/>
                            </xs:key>
                          </xs:element>
                          <xs:any minOccurs="0" maxOccurs="unbounded"
                            namespace="##other" processContents="lax"/>
                        </xs:sequence>
                      </xs:complexType>
                      <xs:key name="routing-tablekey40">
                        <xs:selector xpath="."/>
                        <xs:field xpath="name"/>
                      </xs:key>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"
                      namespace="##other" processContents="lax"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:any minOccurs="0" maxOccurs="unbounded"
                namespace="##other" processContents="lax"/>
            </xs:sequence>
          </xs:complexType>
          <xs:key name="routerkey41">
            <xs:selector xpath="."/>
            <xs:field xpath="name"/>
          </xs:key>
        </xs:element>
        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
          processContents="lax"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

