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 |
GENART Last Call review
(of
-24)
by Brian Carpenter
Ready w/issues
GENART Last Call review
(of
-24)
by Brian Carpenter
Ready w/issues
|
||
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]