Skip to main content

A YANG Data Model for Routing Management
draft-ietf-netmod-routing-cfg-19

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 8022.
Authors Ladislav Lhotka , Acee Lindem
Last updated 2015-10-14 (Latest revision 2015-05-25)
Replaces draft-lhotka-netmod-routing-cfg
RFC stream Internet Engineering Task Force (IETF)
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state Submitted to IESG for Publication
Document shepherd Thomas Nadeau
Shepherd write-up Show Last changed 2014-06-03
IESG IESG state Became RFC 8022 (Proposed Standard)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD Benoît Claise
Send notices to (None)
draft-ietf-netmod-routing-cfg-19
>false</ip:create-global-addresses>
        </ip:autoconf>
       </ip:ipv6>
      </if:interface>
      <if:interface>
       <if:name>eth1</if:name>
       <if:type>ianaift:ethernetCsmacd</if:type>
       <if:description>
        Interface to the internal network.
       </if:description>
       <ip:ipv4>
        <ip:address>
         <ip:ip>198.51.100.1</ip:ip>
         <ip:prefix-length>24</ip:prefix-length>
        </ip:address>
        <ip:forwarding>true</ip:forwarding>
       </ip:ipv4>
       <ip:ipv6>
        <ip:address>
         <ip:ip>2001:0db8:0:2::1</ip:ip>
         <ip:prefix-length>64</ip:prefix-length>
        </ip:address>
        <ip:forwarding>true</ip:forwarding>
        <ip:autoconf>
         <ip:create-global-addresses>false</ip:create-global-addresses>
        </ip:autoconf>
       </ip:ipv6>
      </if:interface>
     </if:interfaces>
     <if:interfaces-state>
      <if:interface>
       <if:name>eth0</if:name>
       <if:type>ianaift:ethernetCsmacd</if:type>
       <if:phys-address>00:0C:42:E5:B1:E9</if:phys-address>
       <if:oper-status>up</if:oper-status>
       <rt:routing-instance>rtr0</rt:routing-instance>

Lhotka & Lindem         Expires November 26, 2015              [Page 57]
Internet-Draft           YANG Routing Management                May 2015

       <if:statistics>
        <if:discontinuity-time>
         2014-10-24T17:11:27+00:58
        </if:discontinuity-time>
       </if:statistics>
       <ip:ipv4>
        <ip:forwarding>true</ip:forwarding>
        <ip:mtu>1500</ip:mtu>
        <ip:address>
         <ip:ip>192.0.2.1</ip:ip>
         <ip:prefix-length>24</ip:prefix-length>
        </ip:address>
       </ip:ipv4>
       <ip:ipv6>
        <ip:forwarding>true</ip:forwarding>
        <ip:mtu>1500</ip:mtu>
        <ip:address>
         <ip:ip>2001:0db8:0:1::1</ip:ip>
         <ip:prefix-length>64</ip:prefix-length>
        </ip:address>
        <v6ur:ipv6-router-advertisements>
         <v6ur:send-advertisements>true</v6ur:send-advertisements>
         <v6ur:prefix-list>
          <v6ur:prefix>
           <v6ur:prefix-spec>2001:db8:0:2::/64</v6ur:prefix-spec>
          </v6ur:prefix>
         </v6ur:prefix-list>
        </v6ur:ipv6-router-advertisements>
       </ip:ipv6>
      </if:interface>
      <if:interface>
       <if:name>eth1</if:name>
       <if:type>ianaift:ethernetCsmacd</if:type>
       <if:phys-address>00:0C:42:E5:B1:EA</if:phys-address>
       <if:oper-status>up</if:oper-status>
       <rt:routing-instance>rtr0</rt:routing-instance>
       <if:statistics>
        <if:discontinuity-time>
         2014-10-24T17:11:27+00:59
        </if:discontinuity-time>
       </if:statistics>
       <ip:ipv4>
        <ip:forwarding>true</ip:forwarding>
        <ip:mtu>1500</ip:mtu>
        <ip:address>
         <ip:ip>198.51.100.1</ip:ip>
         <ip:prefix-length>24</ip:prefix-length>
        </ip:address>

Lhotka & Lindem         Expires November 26, 2015              [Page 58]
Internet-Draft           YANG Routing Management                May 2015

       </ip:ipv4>
       <ip:ipv6>
        <ip:forwarding>true</ip:forwarding>
        <ip:mtu>1500</ip:mtu>
        <ip:address>
         <ip:ip>2001:0db8:0:2::1</ip:ip>
         <ip:prefix-length>64</ip:prefix-length>
        </ip:address>
        <v6ur:ipv6-router-advertisements>
         <v6ur:send-advertisements>true</v6ur:send-advertisements>
         <v6ur:prefix-list>
          <v6ur:prefix>
           <v6ur:prefix-spec>2001:db8:0:2::/64</v6ur:prefix-spec>
          </v6ur:prefix>
         </v6ur:prefix-list>
        </v6ur:ipv6-router-advertisements>
       </ip:ipv6>
      </if:interface>
     </if:interfaces-state>
     <rt:routing>
      <rt:routing-instance>
       <rt:name>rtr0</rt:name>
       <rt:description>Router A</rt:description>
       <rt:router-id>192.0.2.1</rt:router-id>
       <rt:interfaces>
        <rt:interface>eth0</rt:interface>
        <rt:interface>eth1</rt:interface>
       </rt:interfaces>
       <rt:routing-protocols>
        <rt:routing-protocol>
         <rt:type>rt:static</rt:type>
         <rt:name>st0</rt:name>
         <rt:description>
          Static routing is used for the internal network.
         </rt:description>
         <rt:static-routes>
          <v4ur:ipv4>
           <v4ur:route>
            <v4ur:destination-prefix>
         0.0.0.0/0
        </v4ur:destination-prefix>
            <v4ur:next-hop>
         <v4ur:next-hop-address>192.0.2.2</v4ur:next-hop-address>
        </v4ur:next-hop>
           </v4ur:route>
          </v4ur:ipv4>
          <v6ur:ipv6>
           <v6ur:route>

Lhotka & Lindem         Expires November 26, 2015              [Page 59]
Internet-Draft           YANG Routing Management                May 2015

            <v6ur:destination-prefix>::/0</v6ur:destination-prefix>
            <v6ur:next-hop>
         <v6ur:next-hop-address>
          2001:db8:0:1::2
         </v6ur:next-hop-address>
        </v6ur:next-hop>
           </v6ur:route>
          </v6ur:ipv6>
         </rt:static-routes>
        </rt:routing-protocol>
       </rt:routing-protocols>
      </rt:routing-instance>
     </rt:routing>
     <rt:routing-state>
      <rt:routing-instance>
       <rt:name>rtr0</rt:name>
       <rt:interfaces>
        <rt:interface>eth0</rt:interface>
        <rt:interface>eth1</rt:interface>
       </rt:interfaces>
       <rt:routing-protocols>
        <rt:routing-protocol>
         <rt:type>rt:static</rt:type>
         <rt:name>st0</rt:name>
        </rt:routing-protocol>
       </rt:routing-protocols>
       <rt:ribs>
        <rt:rib>
         <rt:name>ipv4-master</rt:name>
         <rt:address-family>v4ur:ipv4-unicast</rt:address-family>
         <rt:default-rib>true</rt:default-rib>
         <rt:routes>
          <rt:route>
       <v4ur:destination-prefix>
        192.0.2.1/24
       </v4ur:destination-prefix>
       <rt:next-hop>
        <rt:outgoing-interface>eth0</rt:outgoing-interface>
       </rt:next-hop>
       <rt:route-preference>0</rt:route-preference>
       <rt:source-protocol>rt:direct</rt:source-protocol>
       <rt:last-updated>2014-10-24T17:11:27+01:00</rt:last-updated>
          </rt:route>
          <rt:route>
       <v4ur:destination-prefix>
        198.51.100.0/24
       </v4ur:destination-prefix>
       <rt:next-hop>

Lhotka & Lindem         Expires November 26, 2015              [Page 60]
Internet-Draft           YANG Routing Management                May 2015

        <rt:outgoing-interface>eth1</rt:outgoing-interface>
       </rt:next-hop>
       <rt:source-protocol>rt:direct</rt:source-protocol>
       <rt:route-preference>0</rt:route-preference>
       <rt:last-updated>2014-10-24T17:11:27+01:00</rt:last-updated>
          </rt:route>
          <rt:route>
       <v4ur:destination-prefix>0.0.0.0/0</v4ur:destination-prefix>
       <rt:source-protocol>rt:static</rt:source-protocol>
       <rt:route-preference>5</rt:route-preference>
       <rt:next-hop>
        <v4ur:next-hop-address>192.0.2.2</v4ur:next-hop-address>
       </rt:next-hop>
       <rt:last-updated>2014-10-24T18:02:45+01:00</rt:last-updated>
          </rt:route>
         </rt:routes>
        </rt:rib>
        <rt:rib>
         <rt:name>ipv6-master</rt:name>
         <rt:address-family>v6ur:ipv6-unicast</rt:address-family>
         <rt:default-rib>true</rt:default-rib>
         <rt:routes>
          <rt:route>
       <v6ur:destination-prefix>
        2001:db8:0:1::/64
       </v6ur:destination-prefix>
       <rt:next-hop>
        <rt:outgoing-interface>eth0</rt:outgoing-interface>
       </rt:next-hop>
       <rt:source-protocol>rt:direct</rt:source-protocol>
       <rt:route-preference>0</rt:route-preference>
       <rt:last-updated>2014-10-24T17:11:27+01:00</rt:last-updated>
          </rt:route>
          <rt:route>
       <v6ur:destination-prefix>
        2001:db8:0:2::/64
       </v6ur:destination-prefix>
       <rt:next-hop>
        <rt:outgoing-interface>eth1</rt:outgoing-interface>
       </rt:next-hop>
       <rt:source-protocol>rt:direct</rt:source-protocol>
       <rt:route-preference>0</rt:route-preference>
       <rt:last-updated>2014-10-24T17:11:27+01:00</rt:last-updated>
          </rt:route>
          <rt:route>
       <v6ur:destination-prefix>::/0</v6ur:destination-prefix>
       <rt:next-hop>
        <v6ur:next-hop-address>

Lhotka & Lindem         Expires November 26, 2015              [Page 61]
Internet-Draft           YANG Routing Management                May 2015

         2001:db8:0:1::2
        </v6ur:next-hop-address>
       </rt:next-hop>
       <rt:source-protocol>rt:static</rt:source-protocol>
       <rt:route-preference>5</rt:route-preference>
       <rt:last-updated>2014-10-24T18:02:45+01:00</rt:last-updated>
          </rt:route>
         </rt:routes>
        </rt:rib>
       </rt:ribs>
      </rt:routing-instance>
     </rt:routing-state>
    </data>
   </rpc-reply>

Appendix E.  Change Log

   RFC Editor: Remove this section upon publication as an RFC.

E.1.  Changes Between Versions -18 and -19

   o  The leaf "route-preference" was removed from the "routing-
      protocol" container in both "routing" and "routing-state".

   o  The "vrf-routing-instance" identity was added in support of a
      common routing-instance type in addition to the "default-routing-
      instance".

   o  Removed "enabled" switch from "routing-protocol".

E.2.  Changes Between Versions -17 and -18

   o  The container "ribs" was moved under "routing-instance" (in both
      "routing" and "routing-state").

   o  Typedefs "rib-ref" and "rib-state-ref" were removed.

   o  Removed "recipient-ribs" (both state and configuration).

   o  Removed "connected-ribs" from "routing-protocol" (both state and
      configuration).

   o  Configuration and state data for IPv6 RA were moved under
      "if:interface" and "if:interface-state".

   o  Assignment of interfaces to routing instances now use leaf-list
      rather than list (both config and state).  The opposite reference
      from "if:interface" to "rt:routing-instance" was changed to a

Lhotka & Lindem         Expires November 26, 2015              [Page 62]
Internet-Draft           YANG Routing Management                May 2015

      single leaf (an interface cannot belong to multiple routing
      instances).

   o  Specification of a default RIB is now a simple flag under "rib"
      (both config and state).

   o  Default RIBs are marked by a flag in state data.

E.3.  Changes Between Versions -16 and -17

   o  Added Acee as a co-author.

   o  Removed all traces of route filters.

   o  Removed numeric IDs of list entries in state data.

   o  Removed all next-hop cases except "simple-next-hop" and "special-
      next-hop".

   o  Removed feature "multipath-routes".

   o  Augmented "ietf-interfaces" module with a leaf-list of leafrefs
      pointing form state data of an interface entry to the routing
      instance(s) to which the interface is assigned.

E.4.  Changes Between Versions -15 and -16

   o  Added 'type' as the second key component of 'routing-protocol',
      both in configuration and state data.

   o  The restriction of no more than one connected RIB per address
      family was removed.

   o  Removed the 'id' key of routes in RIBs.  This list has no keys
      anymore.

   o  Remove the 'id' key from static routes and make 'destination-
      prefix' the only key.

   o  Added 'route-preference' as a new attribute of routes in RIB.

   o  Added 'active' as a new attribute of routes in RIBs.

   o  Renamed RPC operation 'active-route' to 'fib-route'.

   o  Added 'route-preference' as a new parameter of routing protocol
      instances, both in configuration and state data.

Lhotka & Lindem         Expires November 26, 2015              [Page 63]
Internet-Draft           YANG Routing Management                May 2015

   o  Renamed identity 'rt:standard-routing-instance' to 'rt:default-
      routing-instance'.

   o  Added next-hop lists to state data.

   o  Added two cases for specifying next-hops indirectly - via a new
      RIB or a recursive list of next-hops.

   o  Reorganized next-hop in static routes.

   o  Removed all 'if-feature' statements from state data.

E.5.  Changes Between Versions -14 and -15

   o  Removed all defaults from state data.

   o  Removed default from 'cur-hop-limit' in config.

E.6.  Changes Between Versions -13 and -14

   o  Removed dependency of 'connected-ribs' on the 'multiple-ribs'
      feature.

   o  Removed default value of 'cur-hop-limit' in state data.

   o  Moved parts of descriptions and all references on IPv6 RA
      parameters from state data to configuration.

   o  Added reference to RFC 6536 in the Security section.

E.7.  Changes Between Versions -12 and -13

   o  Wrote appendix about minimum implementation.

   o  Remove "when" statement for IPv6 router interface state data - it
      was dependent on a config value that may not be present.

   o  Extra container for the next-hop list.

   o  Names rather than numeric ids are used for referring to list
      entries in state data.

   o  Numeric ids are always declared as mandatory and unique.  Their
      description states that they are ephemeral.

   o  Descriptions of "name" keys in state data lists are required to be
      persistent.

Lhotka & Lindem         Expires November 26, 2015              [Page 64]
Internet-Draft           YANG Routing Management                May 2015

   o

   o  Removed "if-feature multiple-ribs;" from connected-ribs.

   o  "rib-name" instead of "name" is used as the name of leafref nodes.

   o  "next-hop" instead of "nexthop" or "gateway" used throughout, both
      in node names and text.

E.8.  Changes Between Versions -11 and -12

   o  Removed feature "advanced-router" and introduced two features
      instead: "multiple-ribs" and "multipath-routes".

   o  Unified the keys of config and state versions of "routing-
      instance" and "rib" lists.

   o  Numerical identifiers of state list entries are not keys anymore,
      but they are constrained using the "unique" statement.

   o  Updated acknowledgements.

E.9.  Changes Between Versions -10 and -11

   o  Migrated address families from IANA enumerations to identities.

   o  Terminology and node names aligned with the I2RS RIB model: router
      -> routing instance, routing table -> RIB.

   o  Introduced uint64 keys for state lists: routing-instance, rib,
      route, nexthop.

   o  Described the relationship between system-controlled and user-
      controlled list entries.

   o  Feature "user-defined-routing-tables" changed into "advanced-
      router".

   o  Made nexthop into a choice in order to allow for nexthop-list
      (I2RS requirement).

   o  Added nexthop-list with entries having priorities (backup) and
      weights (load balancing).

   o  Updated bibliography references.

Lhotka & Lindem         Expires November 26, 2015              [Page 65]
Internet-Draft           YANG Routing Management                May 2015

E.10.  Changes Between Versions -09 and -10

   o  Added subtree for state data ("/routing-state").

   o  Terms "system-controlled entry" and "user-controlled entry"
      defined and used.

   o  New feature "user-defined-routing-tables".  Nodes that are useful
      only with user-defined routing tables are now conditional.

   o  Added grouping "router-id".

   o  In routing tables, "source-protocol" attribute of routes now
      reports only protocol type, and its datatype is "identityref".

   o  Renamed "main-routing-table" to "default-routing-table".

E.11.  Changes Between Versions -08 and -09

   o  Fixed "must" expresion for "connected-routing-table".

   o  Simplified "must" expression for "main-routing-table".

   o  Moved per-interface configuration of a new routing protocol under
      'routing-protocol'.  This also affects the 'example-rip' module.

E.12.  Changes Between Versions -07 and -08

   o  Changed reference from RFC6021 to RFC6021bis.

E.13.  Changes Between Versions -06 and -07

   o  The contents of <get-reply> in Appendix D was updated: "eth[01]"
      is used as the value of "location", and "forwarding" is on for
      both interfaces and both IPv4 and IPv6.

   o  The "must" expression for "main-routing-table" was modified to
      avoid redundant error messages reporting address family mismatch
      when "name" points to a non-existent routing table.

   o  The default behavior for IPv6 RA prefix advertisements was
      clarified.

   o  Changed type of "rt:router-id" to "ip:dotted-quad".

   o  Type of "rt:router-id" changed to "yang:dotted-quad".

   o  Fixed missing prefixes in XPath expressions.

Lhotka & Lindem         Expires November 26, 2015              [Page 66]
Internet-Draft           YANG Routing Management                May 2015

E.14.  Changes Between Versions -05 and -06

   o  Document title changed: "Configuration" was replaced by
      "Management".

   o  New typedefs "routing-table-ref" and "route-filter-ref".

   o  Double slashes "//" were removed from XPath expressions and
      replaced with the single "/".

   o  Removed uniqueness requirement for "router-id".

   o  Complete data tree is now in Appendix A.

   o  Changed type of "source-protocol" from "leafref" to "string".

   o  Clarified the relationship between routing protocol instances and
      connected routing tables.

   o  Added a must constraint saying that a routing table connected to
      the direct pseudo-protocol must not be a main routing table.

E.15.  Changes Between Versions -04 and -05

   o  Routing tables are now global, i.e., "routing-tables" is a child
      of "routing" rather than "router".

   o  "must" statement for "static-routes" changed to "when".

   o  Added "main-routing-tables" containing references to main routing
      tables for each address family.

   o  Removed the defaults for "address-family" and "safi" and made them
      mandatory.

   o  Removed the default for route-filter/type and made this leaf
      mandatory.

   o  If there is no active route for a given destination, the "active-
      route" RPC returns no output.

   o  Added "enabled" switch under "routing-protocol".

   o  Added "router-type" identity and "type" leaf under "router".

   o  Route attribute "age" changed to "last-updated", its type is
      "yang:date-and-time".

Lhotka & Lindem         Expires November 26, 2015              [Page 67]
Internet-Draft           YANG Routing Management                May 2015

   o  The "direct" pseudo-protocol is always connected to main routing
      tables.

   o  Entries in the list of connected routing tables renamed from
      "routing-table" to "connected-routing-table".

   o  Added "must" constraint saying that a routing table must not be
      its own recipient.

E.16.  Changes Between Versions -03 and -04

   o  Changed "error-tag" for both RPC operations from "missing element"
      to "data-missing".

   o  Removed the decrementing behavior for advertised IPv6 prefix
      parameters "valid-lifetime" and "preferred-lifetime".

   o  Changed the key of the static route lists from "seqno" to "id"
      because the routes needn't be sorted.

   o  Added 'must' constraint saying that "preferred-lifetime" must not
      be greater than "valid-lifetime".

E.17.  Changes Between Versions -02 and -03

   o  Module "iana-afn-safi" moved to I-D "iana-if-type".

   o  Removed forwarding table.

   o  RPC "get-route" changed to "active-route".  Its output is a list
      of routes (for multi-path routing).

   o  New RPC "route-count".

   o  For both RPCs, specification of negative responses was added.

   o  Relaxed separation of router instances.

   o  Assignment of interfaces to router instances needn't be disjoint.

   o  Route filters are now global.

   o  Added "allow-all-route-filter" for symmetry.

   o  Added Section 6 about interactions with "ietf-interfaces" and
      "ietf-ip".

   o  Added "router-id" leaf.

Lhotka & Lindem         Expires November 26, 2015              [Page 68]
Internet-Draft           YANG Routing Management                May 2015

   o  Specified the names for IPv4/IPv6 unicast main routing tables.

   o  Route parameter "last-modified" changed to "age".

   o  Added container "recipient-routing-tables".

E.18.  Changes Between Versions -01 and -02

   o  Added module "ietf-ipv6-unicast-routing".

   o  The example in Appendix D now uses IP addresses from blocks
      reserved for documentation.

   o  Direct routes appear by default in the forwarding table.

   o  Network layer interfaces must be assigned to a router instance.
      Additional interface configuration may be present.

   o  The "when" statement is only used with "augment", "must" is used
      elsewhere.

   o  Additional "must" statements were added.

   o  The "route-content" grouping for IPv4 and IPv6 unicast now
      includes the material from the "ietf-routing" version via "uses
      rt:route-content".

   o  Explanation of symbols in the tree representation of data model
      hierarchy.

E.19.  Changes Between Versions -00 and -01

   o  AFN/SAFI-independent stuff was moved to the "ietf-routing" module.

   o  Typedefs for AFN and SAFI were placed in a separate "iana-afn-
      safi" module.

   o  Names of some data nodes were changed, in particular "routing-
      process" is now "router".

   o  The restriction of a single AFN/SAFI per router was lifted.

   o  RPC operation "delete-route" was removed.

   o  Illegal XPath references from "get-route" to the datastore were
      fixed.

   o  Section "Security Considerations" was written.

Lhotka & Lindem         Expires November 26, 2015              [Page 69]
Internet-Draft           YANG Routing Management                May 2015

Authors' Addresses

   Ladislav Lhotka
   CZ.NIC

   Email: lhotka@nic.cz

   Acee Lindem
   Cisco Systems

   Email: acee@cisco.com

Lhotka & Lindem         Expires November 26, 2015              [Page 70]