| < draft-ietf-netmod-routing-cfg-18.txt | draft-ietf-netmod-routing-cfg-19.txt > | |||
|---|---|---|---|---|
| NETMOD Working Group L. Lhotka | NETMOD Working Group L. Lhotka | |||
| Internet-Draft CZ.NIC | Internet-Draft CZ.NIC | |||
| Intended status: Standards Track A. Lindem | Intended status: Standards Track A. Lindem | |||
| Expires: October 19, 2015 Cisco Systems | Expires: November 26, 2015 Cisco Systems | |||
| April 17, 2015 | May 25, 2015 | |||
| A YANG Data Model for Routing Management | A YANG Data Model for Routing Management | |||
| draft-ietf-netmod-routing-cfg-18 | draft-ietf-netmod-routing-cfg-19 | |||
| Abstract | Abstract | |||
| This document contains a specification of three YANG modules. | This document contains a specification of three YANG modules. | |||
| Together they form the core routing data model which serves as a | Together they form the core routing data model which serves as a | |||
| framework for configuring and managing a routing subsystem. It is | framework for configuring and managing a routing subsystem. It is | |||
| expected that these modules will be augmented by additional YANG | expected that these modules will be augmented by additional YANG | |||
| modules defining data models for routing protocols, route filters and | modules defining data models for routing protocols, route filters and | |||
| other functions. The core routing data model provides common | other functions. The core routing data model provides common | |||
| building blocks for such extensions - routing instances, routes, | building blocks for such extensions - routing instances, routes, | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on October 19, 2015. | This Internet-Draft will expire on November 26, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 24 ¶ | skipping to change at page 2, line 24 ¶ | |||
| 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | 2.3. Prefixes in Data Node Names . . . . . . . . . . . . . . . 5 | |||
| 3. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. The Design of the Core Routing Data Model . . . . . . . . . . 6 | 4. The Design of the Core Routing Data Model . . . . . . . . . . 6 | |||
| 4.1. System-Controlled and User-Controlled List Entries . . . 8 | 4.1. System-Controlled and User-Controlled List Entries . . . 8 | |||
| 5. Basic Building Blocks . . . . . . . . . . . . . . . . . . . . 8 | 5. Basic Building Blocks . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. Routing Instance . . . . . . . . . . . . . . . . . . . . 9 | 5.1. Routing Instance . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.1.1. Parameters of IPv6 Routing Instance Interfaces . . . 9 | 5.1.1. Parameters of IPv6 Routing Instance Interfaces . . . 9 | |||
| 5.2. Route . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.2. Route . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.3. Routing Information Base (RIB) . . . . . . . . . . . . . 11 | 5.3. Routing Information Base (RIB) . . . . . . . . . . . . . 11 | |||
| 5.4. Routing Protocol . . . . . . . . . . . . . . . . . . . . 11 | 5.4. Routing Protocol . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.4.1. Routing Pseudo-Protocols . . . . . . . . . . . . . . 12 | 5.4.1. Routing Pseudo-Protocols . . . . . . . . . . . . . . 12 | |||
| 5.4.2. Defining New Routing Protocols . . . . . . . . . . . 12 | 5.4.2. Defining New Routing Protocols . . . . . . . . . . . 12 | |||
| 5.5. RPC Operations . . . . . . . . . . . . . . . . . . . . . 13 | 5.5. RPC Operations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6. Interactions with Other YANG Modules . . . . . . . . . . . . 13 | 6. Interactions with Other YANG Modules . . . . . . . . . . . . 13 | |||
| 6.1. Module "ietf-interfaces" . . . . . . . . . . . . . . . . 13 | 6.1. Module "ietf-interfaces" . . . . . . . . . . . . . . . . 13 | |||
| 6.2. Module "ietf-ip" . . . . . . . . . . . . . . . . . . . . 13 | 6.2. Module "ietf-ip" . . . . . . . . . . . . . . . . . . . . 14 | |||
| 7. Routing Management YANG Module . . . . . . . . . . . . . . . 14 | 7. Routing Management YANG Module . . . . . . . . . . . . . . . 14 | |||
| 8. IPv4 Unicast Routing Management YANG Module . . . . . . . . . 29 | 8. IPv4 Unicast Routing Management YANG Module . . . . . . . . . 29 | |||
| 9. IPv6 Unicast Routing Management YANG Module . . . . . . . . . 34 | 9. IPv6 Unicast Routing Management YANG Module . . . . . . . . . 33 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 48 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 48 | |||
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 48 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 48 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 49 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 49 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 49 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 49 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 49 | 13.2. Informative References . . . . . . . . . . . . . . . . . 49 | |||
| Appendix A. The Complete Data Trees . . . . . . . . . . . . . . 50 | Appendix A. The Complete Data Trees . . . . . . . . . . . . . . 50 | |||
| A.1. Configuration Data . . . . . . . . . . . . . . . . . . . 50 | A.1. Configuration Data . . . . . . . . . . . . . . . . . . . 50 | |||
| A.2. State Data . . . . . . . . . . . . . . . . . . . . . . . 52 | A.2. State Data . . . . . . . . . . . . . . . . . . . . . . . 52 | |||
| Appendix B. Minimum Implementation . . . . . . . . . . . . . . . 52 | Appendix B. Minimum Implementation . . . . . . . . . . . . . . . 52 | |||
| Appendix C. Example: Adding a New Routing Protocol . . . . . . . 53 | Appendix C. Example: Adding a New Routing Protocol . . . . . . . 53 | |||
| Appendix D. Example: NETCONF <get> Reply . . . . . . . . . . . . 55 | Appendix D. Example: NETCONF <get> Reply . . . . . . . . . . . . 55 | |||
| Appendix E. Change Log . . . . . . . . . . . . . . . . . . . . . 62 | Appendix E. Change Log . . . . . . . . . . . . . . . . . . . . . 62 | |||
| E.1. Changes Between Versions -17 and -18 . . . . . . . . . . 62 | E.1. Changes Between Versions -18 and -19 . . . . . . . . . . 62 | |||
| E.2. Changes Between Versions -16 and -17 . . . . . . . . . . 63 | E.2. Changes Between Versions -17 and -18 . . . . . . . . . . 62 | |||
| E.3. Changes Between Versions -15 and -16 . . . . . . . . . . 63 | E.3. Changes Between Versions -16 and -17 . . . . . . . . . . 63 | |||
| E.4. Changes Between Versions -14 and -15 . . . . . . . . . . 64 | E.4. Changes Between Versions -15 and -16 . . . . . . . . . . 63 | |||
| E.5. Changes Between Versions -13 and -14 . . . . . . . . . . 64 | E.5. Changes Between Versions -14 and -15 . . . . . . . . . . 64 | |||
| E.6. Changes Between Versions -12 and -13 . . . . . . . . . . 64 | E.6. Changes Between Versions -13 and -14 . . . . . . . . . . 64 | |||
| E.7. Changes Between Versions -11 and -12 . . . . . . . . . . 65 | E.7. Changes Between Versions -12 and -13 . . . . . . . . . . 64 | |||
| E.8. Changes Between Versions -10 and -11 . . . . . . . . . . 65 | E.8. Changes Between Versions -11 and -12 . . . . . . . . . . 65 | |||
| E.9. Changes Between Versions -09 and -10 . . . . . . . . . . 65 | E.9. Changes Between Versions -10 and -11 . . . . . . . . . . 65 | |||
| E.10. Changes Between Versions -08 and -09 . . . . . . . . . . 66 | E.10. Changes Between Versions -09 and -10 . . . . . . . . . . 66 | |||
| E.11. Changes Between Versions -07 and -08 . . . . . . . . . . 66 | E.11. Changes Between Versions -08 and -09 . . . . . . . . . . 66 | |||
| E.12. Changes Between Versions -06 and -07 . . . . . . . . . . 66 | E.12. Changes Between Versions -07 and -08 . . . . . . . . . . 66 | |||
| E.13. Changes Between Versions -05 and -06 . . . . . . . . . . 66 | E.13. Changes Between Versions -06 and -07 . . . . . . . . . . 66 | |||
| E.14. Changes Between Versions -04 and -05 . . . . . . . . . . 67 | E.14. Changes Between Versions -05 and -06 . . . . . . . . . . 67 | |||
| E.15. Changes Between Versions -03 and -04 . . . . . . . . . . 68 | E.15. Changes Between Versions -04 and -05 . . . . . . . . . . 67 | |||
| E.16. Changes Between Versions -02 and -03 . . . . . . . . . . 68 | E.16. Changes Between Versions -03 and -04 . . . . . . . . . . 68 | |||
| E.17. Changes Between Versions -01 and -02 . . . . . . . . . . 69 | E.17. Changes Between Versions -02 and -03 . . . . . . . . . . 68 | |||
| E.18. Changes Between Versions -00 and -01 . . . . . . . . . . 69 | E.18. Changes Between Versions -01 and -02 . . . . . . . . . . 69 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 69 | E.19. Changes Between Versions -00 and -01 . . . . . . . . . . 69 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 70 | ||||
| 1. Introduction | 1. Introduction | |||
| This document contains a specification of the following YANG modules: | This document contains a specification of the following YANG modules: | |||
| o Module "ietf-routing" provides generic components of a routing | o Module "ietf-routing" provides generic components of a routing | |||
| data model. | data model. | |||
| o Module "ietf-ipv4-unicast-routing" augments the "ietf-routing" | o Module "ietf-ipv4-unicast-routing" augments the "ietf-routing" | |||
| module with additional data specific to IPv4 unicast. | module with additional data specific to IPv4 unicast. | |||
| skipping to change at page 7, line 19 ¶ | skipping to change at page 7, line 19 ¶ | |||
| +--rw enabled? | +--rw enabled? | |||
| +--rw router-id? | +--rw router-id? | |||
| +--rw description? | +--rw description? | |||
| +--rw interfaces | +--rw interfaces | |||
| | +--rw interface* | | +--rw interface* | |||
| +--rw routing-protocols | +--rw routing-protocols | |||
| | +--rw routing-protocol* [type name] | | +--rw routing-protocol* [type name] | |||
| | +--rw type | | +--rw type | |||
| | +--rw name | | +--rw name | |||
| | +--rw description? | | +--rw description? | |||
| | +--rw enabled? | ||||
| | +--rw route-preference? | ||||
| | +--rw static-routes | | +--rw static-routes | |||
| | ... | | ... | |||
| +--rw ribs | +--rw ribs | |||
| +--rw rib* [name] | +--rw rib* [name] | |||
| +--rw name | +--rw name | |||
| +--rw address-family? | +--rw address-family? | |||
| +--rw description? | +--rw description? | |||
| Figure 1: Configuration data hierarchy. | Figure 1: Configuration data hierarchy. | |||
| skipping to change at page 7, line 42 ¶ | skipping to change at page 7, line 40 ¶ | |||
| +--ro routing-instance* [name] | +--ro routing-instance* [name] | |||
| +--ro name | +--ro name | |||
| +--ro type? | +--ro type? | |||
| +--ro router-id? | +--ro router-id? | |||
| +--ro interfaces | +--ro interfaces | |||
| | +--ro interface* | | +--ro interface* | |||
| +--ro routing-protocols | +--ro routing-protocols | |||
| | +--ro routing-protocol* [type name] | | +--ro routing-protocol* [type name] | |||
| | +--ro type | | +--ro type | |||
| | +--ro name | | +--ro name | |||
| | +--ro route-preference | ||||
| +--ro ribs | +--ro ribs | |||
| +--ro rib* [name] | +--ro rib* [name] | |||
| +--ro name | +--ro name | |||
| +--ro address-family | +--ro address-family | |||
| +--ro default-rib? | +--ro default-rib? | |||
| +--ro routes | +--ro routes | |||
| ... | ... | |||
| Figure 2: State data hierarchy. | Figure 2: State data hierarchy. | |||
| skipping to change at page 9, line 13 ¶ | skipping to change at page 9, line 13 ¶ | |||
| data model. | data model. | |||
| 5.1. Routing Instance | 5.1. Routing Instance | |||
| The core routing data model supports one or more routing instances | The core routing data model supports one or more routing instances | |||
| appearing as entries of the "routing-instance" list. Each routing | appearing as entries of the "routing-instance" list. Each routing | |||
| instance has separate configuration and state data under | instance has separate configuration and state data under | |||
| "/rt:routing/rt:routing-instance" and "/rt:routing-state/rt:routing- | "/rt:routing/rt:routing-instance" and "/rt:routing-state/rt:routing- | |||
| instance", respectively. | instance", respectively. | |||
| The semantics of the term "routing instance" is deliberately left | No attempt has been made to define the semantics for every type of | |||
| undefined. It is expected that future YANG modules will define data | routing instance. The core routing data model defines identities for | |||
| models for specific types of routing instances, such as VRF (virtual | two ubiquitous routing instance types: | |||
| routing and forwarding) instances that are used for BGP/MPLS virtual | ||||
| private networks [RFC4364]. For each type of routing instance, an | o "default-routing-instance" - this routing instance type represents | |||
| identity derived from "rt:routing-instance" SHALL be defined. This | the default (or only) routing instance. All implementations MUST | |||
| identity is then referred to by the value of the "type" leaf (a child | support a single routing instance of this type. | |||
| node of "routing-instance" list). | ||||
| o "vrf-routing-instance" - this routing instance type represents VRF | ||||
| (virtual routing and forwarding) routing instances that are used | ||||
| for virtual private networks (VPN) including BGP/MPLS | ||||
| VPN_[RFC4364]. | ||||
| It is expected that future YANG modules will define other types of | ||||
| routing instances. For every such type, an identity derived from | ||||
| "rt:routing-instance" SHALL be defined. This identity is then | ||||
| referred to by the value of the "type" leaf (a child node of | ||||
| "routing-instance" list). | ||||
| Each network layer interface has to be assigned to one or more | Each network layer interface has to be assigned to one or more | |||
| routing instances in order to be able to participate in packet | routing instances in order to be able to participate in packet | |||
| forwarding, routing protocols and other operations of those routing | forwarding, routing protocols and other operations of those routing | |||
| instances. The assignment is accomplished by placing a corresponding | instances. The assignment is accomplished by placing a corresponding | |||
| (system- or user-controlled) entry in the leaf-list of routing | (system- or user-controlled) entry in the leaf-list of routing | |||
| instance interfaces ("rt:interface"). Each entry is the name of a | instance interfaces ("rt:interface"). Each entry is the name of a | |||
| configured network layer interface, see the "ietf-interfaces" | configured network layer interface, see the "ietf-interfaces" | |||
| module [RFC7223]. | module [RFC7223]. | |||
| skipping to change at page 14, line 42 ¶ | skipping to change at page 15, line 5 ¶ | |||
| direct route. The destination prefix of this route is set according | direct route. The destination prefix of this route is set according | |||
| to the configured IP address and network prefix/mask, and the | to the configured IP address and network prefix/mask, and the | |||
| interface is set as the outgoing interface for that route. | interface is set as the outgoing interface for that route. | |||
| 7. Routing Management YANG Module | 7. Routing Management YANG Module | |||
| RFC Editor: In this section, replace all occurrences of 'XXXX' with | RFC Editor: In this section, replace all occurrences of 'XXXX' with | |||
| the actual RFC number and all occurrences of the revision date below | the actual RFC number and all occurrences of the revision date below | |||
| with the date of RFC publication (and remove this note). | with the date of RFC publication (and remove this note). | |||
| <CODE BEGINS> file "ietf-routing@2015-04-17.yang" | <CODE BEGINS> file "ietf-routing@2015-05-25.yang" | |||
| module ietf-routing { | module ietf-routing { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-routing"; | namespace "urn:ietf:params:xml:ns:yang:ietf-routing"; | |||
| prefix "rt"; | prefix "rt"; | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix "yang"; | prefix "yang"; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| } | } | |||
| organization | organization | |||
| "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | |||
| contact | contact | |||
| skipping to change at page 15, line 50 ¶ | skipping to change at page 16, line 11 ¶ | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | |||
| 'OPTIONAL' in the module text are to be interpreted as described | 'OPTIONAL' in the module text are to be interpreted as described | |||
| in RFC 2119 (http://tools.ietf.org/html/rfc2119). | in RFC 2119 (http://tools.ietf.org/html/rfc2119). | |||
| This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC XXXX | |||
| (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | |||
| full legal notices."; | full legal notices."; | |||
| revision 2015-04-17 { | revision 2015-05-25 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Routing Management"; | "RFC XXXX: A YANG Data Model for Routing Management"; | |||
| } | } | |||
| /* Features */ | /* Features */ | |||
| feature multiple-ribs { | feature multiple-ribs { | |||
| description | description | |||
| "This feature indicates that the server supports user-defined | "This feature indicates that the server supports user-defined | |||
| RIBs. | RIBs. | |||
| skipping to change at page 17, line 4 ¶ | skipping to change at page 17, line 14 ¶ | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "This identity represents IPv4 address family."; | "This identity represents IPv4 address family."; | |||
| } | } | |||
| identity ipv6 { | identity ipv6 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "This identity represents IPv6 address family."; | "This identity represents IPv6 address family."; | |||
| } | } | |||
| identity routing-instance { | identity routing-instance { | |||
| description | description | |||
| "Base identity from which identities describing routing | "Base identity from which identities describing routing | |||
| instance types are derived."; | instance types are derived."; | |||
| } | } | |||
| identity default-routing-instance { | identity default-routing-instance { | |||
| base routing-instance; | base routing-instance; | |||
| description | description | |||
| "This identity represents either a default routing instance, or | "This identity represents either a default routing instance, or | |||
| the only routing instance on systems that do not support | the only routing instance on systems that do not support | |||
| multiple instances."; | multiple instances."; | |||
| } | } | |||
| identity vrf-routing-instance { | ||||
| base routing-instance; | ||||
| description | ||||
| "This identity represents a VRF routing instance. The type is | ||||
| distinct from the default-routing-instance. There may be | ||||
| multiple vrf-routing-interfaces."; | ||||
| } | ||||
| identity routing-protocol { | identity routing-protocol { | |||
| description | description | |||
| "Base identity from which routing protocol identities are | "Base identity from which routing protocol identities are | |||
| derived."; | derived."; | |||
| } | } | |||
| identity direct { | identity direct { | |||
| base routing-protocol; | base routing-protocol; | |||
| description | description | |||
| "Routing pseudo-protocol that provides routes to directly | "Routing pseudo-protocol that provides routes to directly | |||
| skipping to change at page 23, line 34 ¶ | skipping to change at page 24, line 4 ¶ | |||
| } | } | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| description | description | |||
| "The name of the routing protocol instance. | "The name of the routing protocol instance. | |||
| For system-controlled instances this name is | For system-controlled instances this name is | |||
| persistent, i.e., it SHOULD NOT change across | persistent, i.e., it SHOULD NOT change across | |||
| reboots."; | reboots."; | |||
| } | } | |||
| leaf route-preference { | ||||
| type route-preference; | ||||
| mandatory "true"; | ||||
| description | ||||
| "The value of route preference (administrative | ||||
| distance) assigned to all routes generated by the | ||||
| routing protocol instance. A lower value means a more | ||||
| preferred route."; | ||||
| } | ||||
| } | } | |||
| } | } | |||
| container ribs { | container ribs { | |||
| description | description | |||
| "Container for RIBs."; | "Container for RIBs."; | |||
| list rib { | list rib { | |||
| key "name"; | key "name"; | |||
| min-elements "1"; | min-elements "1"; | |||
| description | description | |||
| "Each entry represents a RIB identified by the 'name' | "Each entry represents a RIB identified by the 'name' | |||
| skipping to change at page 26, line 42 ¶ | skipping to change at page 27, line 4 ¶ | |||
| base routing-protocol; | base routing-protocol; | |||
| } | } | |||
| description | description | |||
| "Type of the routing protocol - an identity derived | "Type of the routing protocol - an identity derived | |||
| from the 'routing-protocol' base identity."; | from the 'routing-protocol' base identity."; | |||
| } | } | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| description | description | |||
| "An arbitrary name of the routing protocol instance."; | "An arbitrary name of the routing protocol instance."; | |||
| } | } | |||
| leaf description { | leaf description { | |||
| type string; | type string; | |||
| description | description | |||
| "Textual description of the routing protocol | "Textual description of the routing protocol | |||
| instance."; | instance."; | |||
| } | } | |||
| leaf enabled { | ||||
| type boolean; | ||||
| default "true"; | ||||
| description | ||||
| "Enable/disable the routing protocol instance. | ||||
| If this parameter is false, the parent routing | ||||
| protocol instance is disabled and does not appear in | ||||
| state data, despite any other configuration that might | ||||
| be present."; | ||||
| } | ||||
| leaf route-preference { | ||||
| type route-preference; | ||||
| description | ||||
| "The value of route preference (administrative | ||||
| distance). | ||||
| The default value depends on the routing protocol | ||||
| type, and may also be implementation-dependent."; | ||||
| } | ||||
| container static-routes { | container static-routes { | |||
| when "../type='rt:static'" { | when "../type='rt:static'" { | |||
| description | description | |||
| "This container is only valid for the 'static' | "This container is only valid for the 'static' | |||
| routing protocol."; | routing protocol."; | |||
| } | } | |||
| description | description | |||
| "Configuration of the 'static' pseudo-protocol. | "Configuration of the 'static' pseudo-protocol. | |||
| Address-family-specific modules augment this node with | Address-family-specific modules augment this node with | |||
| skipping to change at page 29, line 45 ¶ | skipping to change at page 29, line 36 ¶ | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 8. IPv4 Unicast Routing Management YANG Module | 8. IPv4 Unicast Routing Management YANG Module | |||
| RFC Editor: In this section, replace all occurrences of 'XXXX' with | RFC Editor: In this section, replace all occurrences of 'XXXX' with | |||
| the actual RFC number and all occurrences of the revision date below | the actual RFC number and all occurrences of the revision date below | |||
| with the date of RFC publication (and remove this note). | with the date of RFC publication (and remove this note). | |||
| <CODE BEGINS> file "ietf-ipv4-unicast-routing@2015-04-17.yang" | <CODE BEGINS> file "ietf-ipv4-unicast-routing@2015-05-25.yang" | |||
| module ietf-ipv4-unicast-routing { | module ietf-ipv4-unicast-routing { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"; | |||
| prefix "v4ur"; | prefix "v4ur"; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| organization | organization | |||
| "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
| WG List: <mailto:netmod@ietf.org> | WG List: <mailto:netmod@ietf.org> | |||
| WG Chair: Thomas Nadeau | WG Chair: Thomas Nadeau | |||
| <mailto:tnadeau@lucidvision.com> | <mailto:tnadeau@lucidvision.com> | |||
| skipping to change at page 30, line 51 ¶ | skipping to change at page 30, line 43 ¶ | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | |||
| 'OPTIONAL' in the module text are to be interpreted as described | 'OPTIONAL' in the module text are to be interpreted as described | |||
| in RFC 2119 (http://tools.ietf.org/html/rfc2119). | in RFC 2119 (http://tools.ietf.org/html/rfc2119). | |||
| This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC XXXX | |||
| (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | |||
| full legal notices."; | full legal notices."; | |||
| revision 2015-04-17 { | revision 2015-05-25 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Routing Management"; | "RFC XXXX: A YANG Data Model for Routing Management"; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| identity ipv4-unicast { | identity ipv4-unicast { | |||
| base rt:ipv4; | base rt:ipv4; | |||
| description | description | |||
| "This identity represents the IPv4 unicast address family."; | "This identity represents the IPv4 unicast address family."; | |||
| } | } | |||
| /* State data */ | /* State data */ | |||
| augment "/rt:routing-state/rt:routing-instance/rt:ribs/rt:rib/" | augment "/rt:routing-state/rt:routing-instance/rt:ribs/rt:rib/" | |||
| + "rt:routes/rt:route" { | + "rt:routes/rt:route" { | |||
| skipping to change at page 34, line 11 ¶ | skipping to change at page 33, line 52 ¶ | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 9. IPv6 Unicast Routing Management YANG Module | 9. IPv6 Unicast Routing Management YANG Module | |||
| RFC Editor: In this section, replace all occurrences of 'XXXX' with | RFC Editor: In this section, replace all occurrences of 'XXXX' with | |||
| the actual RFC number and all occurrences of the revision date below | the actual RFC number and all occurrences of the revision date below | |||
| with the date of RFC publication (and remove this note). | with the date of RFC publication (and remove this note). | |||
| <CODE BEGINS> file "ietf-ipv6-unicast-routing@2015-04-17.yang" | <CODE BEGINS> file "ietf-ipv6-unicast-routing@2015-05-25.yang" | |||
| module ietf-ipv6-unicast-routing { | module ietf-ipv6-unicast-routing { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing"; | |||
| prefix "v6ur"; | prefix "v6ur"; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| } | } | |||
| skipping to change at page 35, line 25 ¶ | skipping to change at page 35, line 17 ¶ | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | |||
| 'OPTIONAL' in the module text are to be interpreted as described | 'OPTIONAL' in the module text are to be interpreted as described | |||
| in RFC 2119 (http://tools.ietf.org/html/rfc2119). | in RFC 2119 (http://tools.ietf.org/html/rfc2119). | |||
| This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC XXXX | |||
| (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | (http://tools.ietf.org/html/rfcXXXX); see the RFC itself for | |||
| full legal notices."; | full legal notices."; | |||
| revision 2015-04-17 { | revision 2015-05-25 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Routing Management"; | "RFC XXXX: A YANG Data Model for Routing Management"; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| identity ipv6-unicast { | identity ipv6-unicast { | |||
| base rt:ipv6; | base rt:ipv6; | |||
| skipping to change at page 51, line 15 ¶ | skipping to change at page 51, line 15 ¶ | |||
| +--rw routing-instance* [name] | +--rw routing-instance* [name] | |||
| +--rw name string | +--rw name string | |||
| +--rw type? identityref | +--rw type? identityref | |||
| +--rw enabled? boolean | +--rw enabled? boolean | |||
| +--rw router-id? yang:dotted-quad | +--rw router-id? yang:dotted-quad | |||
| +--rw description? string | +--rw description? string | |||
| +--rw interfaces | +--rw interfaces | |||
| | +--rw interface* if:interface-ref | | +--rw interface* if:interface-ref | |||
| +--rw routing-protocols | +--rw routing-protocols | |||
| | +--rw routing-protocol* [type name] | | +--rw routing-protocol* [type name] | |||
| | +--rw type identityref | | +--rw type identityref | |||
| | +--rw name string | | +--rw name string | |||
| | +--rw description? string | | +--rw description? string | |||
| | +--rw enabled? boolean | ||||
| | +--rw route-preference? route-preference | ||||
| | +--rw static-routes | | +--rw static-routes | |||
| | +--rw v6ur:ipv6 | | +--rw v6ur:ipv6 | |||
| | | +--rw v6ur:route* [destination-prefix] | | | +--rw v6ur:route* [destination-prefix] | |||
| | | +--rw v6ur:destination-prefix inet:ipv6-prefix | | | +--rw v6ur:destination-prefix | |||
| | | +--rw v6ur:description? string | | | +--rw v6ur:description? string | |||
| | | +--rw v6ur:next-hop | | | +--rw v6ur:next-hop | |||
| | | +--rw (next-hop-options) | | | +--rw (next-hop-options) | |||
| | | +--:(simple-next-hop) | | | +--:(simple-next-hop) | |||
| | | | +--rw v6ur:outgoing-interface? | | | | +--rw v6ur:outgoing-interface? | |||
| | | +--:(special-next-hop) | | | +--:(special-next-hop) | |||
| | | | +--rw v6ur:special-next-hop? | | | | +--rw v6ur:special-next-hop? | |||
| | | +--:(next-hop-address) | | | +--:(next-hop-address) | |||
| | | +--rw v6ur:next-hop-address? | | | +--rw v6ur:next-hop-address? | |||
| | +--rw v4ur:ipv4 | | +--rw v4ur:ipv4 | |||
| | +--rw v4ur:route* [destination-prefix] | | +--rw v4ur:route* [destination-prefix] | |||
| | +--rw v4ur:destination-prefix inet:ipv4-prefix | | +--rw v4ur:destination-prefix | |||
| | +--rw v4ur:description? string | | +--rw v4ur:description? string | |||
| | +--rw v4ur:next-hop | | +--rw v4ur:next-hop | |||
| | +--rw (next-hop-options) | | +--rw (next-hop-options) | |||
| | +--:(simple-next-hop) | | +--:(simple-next-hop) | |||
| | | +--rw v4ur:outgoing-interface? | | | +--rw v4ur:outgoing-interface? | |||
| | +--:(special-next-hop) | | +--:(special-next-hop) | |||
| | | +--rw v4ur:special-next-hop? | | | +--rw v4ur:special-next-hop? | |||
| | +--:(next-hop-address) | | +--:(next-hop-address) | |||
| | +--rw v4ur:next-hop-address? | | +--rw v4ur:next-hop-address? | |||
| +--rw ribs | +--rw ribs | |||
| +--rw rib* [name] | +--rw rib* [name] | |||
| skipping to change at page 52, line 16 ¶ | skipping to change at page 52, line 16 ¶ | |||
| +--ro routing-state | +--ro routing-state | |||
| +--ro routing-instance* [name] | +--ro routing-instance* [name] | |||
| +--ro name string | +--ro name string | |||
| +--ro type? identityref | +--ro type? identityref | |||
| +--ro router-id? yang:dotted-quad | +--ro router-id? yang:dotted-quad | |||
| +--ro interfaces | +--ro interfaces | |||
| | +--ro interface* if:interface-state-ref | | +--ro interface* if:interface-state-ref | |||
| +--ro routing-protocols | +--ro routing-protocols | |||
| | +--ro routing-protocol* [type name] | | +--ro routing-protocol* [type name] | |||
| | +--ro type identityref | | +--ro type identityref | |||
| | +--ro name string | | +--ro name string | |||
| | +--ro route-preference route-preference | ||||
| +--ro ribs | +--ro ribs | |||
| +--ro rib* [name] | +--ro rib* [name] | |||
| +--ro name string | +--ro name string | |||
| +--ro address-family identityref | +--ro address-family identityref | |||
| +--ro default-rib? boolean {multiple-ribs}? | +--ro default-rib? boolean {multiple-ribs}? | |||
| +--ro routes | +--ro routes | |||
| +--ro route* | +--ro route* | |||
| +--ro route-preference? route-preference | +--ro route-preference? route-preference | |||
| +--ro next-hop | +--ro next-hop | |||
| | +--ro (next-hop-options) | | +--ro (next-hop-options) | |||
| | +--:(simple-next-hop) | | +--:(simple-next-hop) | |||
| | | +--ro outgoing-interface? | | | +--ro outgoing-interface? | |||
| | | +--ro v6ur:next-hop-address? | | | +--ro v6ur:next-hop-address? | |||
| | | +--ro v4ur:next-hop-address? | | | +--ro v4ur:next-hop-address? | |||
| | +--:(special-next-hop) | | +--:(special-next-hop) | |||
| | +--ro special-next-hop? enumeration | | +--ro special-next-hop? enumeration | |||
| +--ro source-protocol identityref | +--ro source-protocol identityref | |||
| +--ro active? empty | +--ro active? empty | |||
| +--ro last-updated? yang:date-and-time | +--ro last-updated? yang:date-and-time | |||
| +--ro v6ur:destination-prefix? inet:ipv6-prefix | +--ro v6ur:destination-prefix? inet:ipv6-prefix | |||
| +--ro v4ur:destination-prefix? inet:ipv4-prefix | +--ro v4ur:destination-prefix? inet:ipv4-prefix | |||
| Appendix B. Minimum Implementation | Appendix B. Minimum Implementation | |||
| Some parts and options of the core routing model, such as user- | Some parts and options of the core routing model, such as user- | |||
| defined routing tables, are intended only for advanced routers. This | defined routing tables, are intended only for advanced routers. This | |||
| appendix gives basic non-normative guidelines for implementing a bare | appendix gives basic non-normative guidelines for implementing a bare | |||
| minimum of available functions. Such an implementation may be used | minimum of available functions. Such an implementation may be used | |||
| for hosts or very simple routers. | for hosts or very simple routers. | |||
| A minimum implementation will provide a single system-controlled | A minimum implementation will provide a single system-controlled | |||
| routing instance, and will not allow clients to create any user- | routing instance of the type "default-routing-instance", and will not | |||
| controlled instances. | allow clients to create any user-controlled instances. | |||
| Typically, the feature "multiple-ribs" will not be supported. This | Typically, the feature "multiple-ribs" will not be supported. This | |||
| means that a single system-controlled RIB is available for each | means that a single system-controlled RIB is available for each | |||
| supported address family - IPv4, IPv6 or both. These RIBs must be | supported address family - IPv4, IPv6 or both. These RIBs must be | |||
| the default RIBs. No user-controlled RIBs are allowed. | the default RIBs. No user-controlled RIBs are allowed. | |||
| In addition to the mandatory instance of the "direct" pseudo- | In addition to the mandatory instance of the "direct" pseudo- | |||
| protocol, a minimum implementation should support configuring | protocol, a minimum implementation should support configuring | |||
| instance(s) of the "static" pseudo-protocol. | instance(s) of the "static" pseudo-protocol. | |||
| skipping to change at page 60, line 28 ¶ | skipping to change at page 60, line 28 ¶ | |||
| <rt:routing-instance> | <rt:routing-instance> | |||
| <rt:name>rtr0</rt:name> | <rt:name>rtr0</rt:name> | |||
| <rt:interfaces> | <rt:interfaces> | |||
| <rt:interface>eth0</rt:interface> | <rt:interface>eth0</rt:interface> | |||
| <rt:interface>eth1</rt:interface> | <rt:interface>eth1</rt:interface> | |||
| </rt:interfaces> | </rt:interfaces> | |||
| <rt:routing-protocols> | <rt:routing-protocols> | |||
| <rt:routing-protocol> | <rt:routing-protocol> | |||
| <rt:type>rt:static</rt:type> | <rt:type>rt:static</rt:type> | |||
| <rt:name>st0</rt:name> | <rt:name>st0</rt:name> | |||
| <rt:route-preference>5</rt:route-preference> | ||||
| </rt:routing-protocol> | </rt:routing-protocol> | |||
| </rt:routing-protocols> | </rt:routing-protocols> | |||
| <rt:ribs> | <rt:ribs> | |||
| <rt:rib> | <rt:rib> | |||
| <rt:name>ipv4-master</rt:name> | <rt:name>ipv4-master</rt:name> | |||
| <rt:address-family>v4ur:ipv4-unicast</rt:address-family> | <rt:address-family>v4ur:ipv4-unicast</rt:address-family> | |||
| <rt:default-rib>true</rt:default-rib> | <rt:default-rib>true</rt:default-rib> | |||
| <rt:routes> | <rt:routes> | |||
| <rt:route> | <rt:route> | |||
| <v4ur:destination-prefix> | <v4ur:destination-prefix> | |||
| skipping to change at page 62, line 24 ¶ | skipping to change at page 62, line 23 ¶ | |||
| </rt:ribs> | </rt:ribs> | |||
| </rt:routing-instance> | </rt:routing-instance> | |||
| </rt:routing-state> | </rt:routing-state> | |||
| </data> | </data> | |||
| </rpc-reply> | </rpc-reply> | |||
| Appendix E. Change Log | Appendix E. Change Log | |||
| RFC Editor: Remove this section upon publication as an RFC. | RFC Editor: Remove this section upon publication as an RFC. | |||
| E.1. Changes Between Versions -17 and -18 | 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 | o The container "ribs" was moved under "routing-instance" (in both | |||
| "routing" and "routing-state"). | "routing" and "routing-state"). | |||
| o Typedefs "rib-ref" and "rib-state-ref" were removed. | o Typedefs "rib-ref" and "rib-state-ref" were removed. | |||
| o Removed "recipient-ribs" (both state and configuration). | o Removed "recipient-ribs" (both state and configuration). | |||
| o Removed "connected-ribs" from "routing-protocol" (both state and | o Removed "connected-ribs" from "routing-protocol" (both state and | |||
| configuration). | configuration). | |||
| skipping to change at page 63, line 5 ¶ | skipping to change at page 63, line 12 ¶ | |||
| rather than list (both config and state). The opposite reference | rather than list (both config and state). The opposite reference | |||
| from "if:interface" to "rt:routing-instance" was changed to a | from "if:interface" to "rt:routing-instance" was changed to a | |||
| single leaf (an interface cannot belong to multiple routing | single leaf (an interface cannot belong to multiple routing | |||
| instances). | instances). | |||
| o Specification of a default RIB is now a simple flag under "rib" | o Specification of a default RIB is now a simple flag under "rib" | |||
| (both config and state). | (both config and state). | |||
| o Default RIBs are marked by a flag in state data. | o Default RIBs are marked by a flag in state data. | |||
| E.2. Changes Between Versions -16 and -17 | E.3. Changes Between Versions -16 and -17 | |||
| o Added Acee as a co-author. | o Added Acee as a co-author. | |||
| o Removed all traces of route filters. | o Removed all traces of route filters. | |||
| o Removed numeric IDs of list entries in state data. | o Removed numeric IDs of list entries in state data. | |||
| o Removed all next-hop cases except "simple-next-hop" and "special- | o Removed all next-hop cases except "simple-next-hop" and "special- | |||
| next-hop". | next-hop". | |||
| o Removed feature "multipath-routes". | o Removed feature "multipath-routes". | |||
| o Augmented "ietf-interfaces" module with a leaf-list of leafrefs | o Augmented "ietf-interfaces" module with a leaf-list of leafrefs | |||
| pointing form state data of an interface entry to the routing | pointing form state data of an interface entry to the routing | |||
| instance(s) to which the interface is assigned. | instance(s) to which the interface is assigned. | |||
| E.3. Changes Between Versions -15 and -16 | E.4. Changes Between Versions -15 and -16 | |||
| o Added 'type' as the second key component of 'routing-protocol', | o Added 'type' as the second key component of 'routing-protocol', | |||
| both in configuration and state data. | both in configuration and state data. | |||
| o The restriction of no more than one connected RIB per address | o The restriction of no more than one connected RIB per address | |||
| family was removed. | family was removed. | |||
| o Removed the 'id' key of routes in RIBs. This list has no keys | o Removed the 'id' key of routes in RIBs. This list has no keys | |||
| anymore. | anymore. | |||
| skipping to change at page 64, line 9 ¶ | skipping to change at page 64, line 17 ¶ | |||
| o Added next-hop lists to state data. | o Added next-hop lists to state data. | |||
| o Added two cases for specifying next-hops indirectly - via a new | o Added two cases for specifying next-hops indirectly - via a new | |||
| RIB or a recursive list of next-hops. | RIB or a recursive list of next-hops. | |||
| o Reorganized next-hop in static routes. | o Reorganized next-hop in static routes. | |||
| o Removed all 'if-feature' statements from state data. | o Removed all 'if-feature' statements from state data. | |||
| E.4. Changes Between Versions -14 and -15 | E.5. Changes Between Versions -14 and -15 | |||
| o Removed all defaults from state data. | o Removed all defaults from state data. | |||
| o Removed default from 'cur-hop-limit' in config. | o Removed default from 'cur-hop-limit' in config. | |||
| E.5. Changes Between Versions -13 and -14 | E.6. Changes Between Versions -13 and -14 | |||
| o Removed dependency of 'connected-ribs' on the 'multiple-ribs' | o Removed dependency of 'connected-ribs' on the 'multiple-ribs' | |||
| feature. | feature. | |||
| o Removed default value of 'cur-hop-limit' in state data. | o Removed default value of 'cur-hop-limit' in state data. | |||
| o Moved parts of descriptions and all references on IPv6 RA | o Moved parts of descriptions and all references on IPv6 RA | |||
| parameters from state data to configuration. | parameters from state data to configuration. | |||
| o Added reference to RFC 6536 in the Security section. | o Added reference to RFC 6536 in the Security section. | |||
| E.6. Changes Between Versions -12 and -13 | E.7. Changes Between Versions -12 and -13 | |||
| o Wrote appendix about minimum implementation. | o Wrote appendix about minimum implementation. | |||
| o Remove "when" statement for IPv6 router interface state data - it | o Remove "when" statement for IPv6 router interface state data - it | |||
| was dependent on a config value that may not be present. | was dependent on a config value that may not be present. | |||
| o Extra container for the next-hop list. | o Extra container for the next-hop list. | |||
| o Names rather than numeric ids are used for referring to list | o Names rather than numeric ids are used for referring to list | |||
| entries in state data. | entries in state data. | |||
| skipping to change at page 65, line 5 ¶ | skipping to change at page 65, line 14 ¶ | |||
| o | o | |||
| o Removed "if-feature multiple-ribs;" from connected-ribs. | o Removed "if-feature multiple-ribs;" from connected-ribs. | |||
| o "rib-name" instead of "name" is used as the name of leafref nodes. | 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 | o "next-hop" instead of "nexthop" or "gateway" used throughout, both | |||
| in node names and text. | in node names and text. | |||
| E.7. Changes Between Versions -11 and -12 | E.8. Changes Between Versions -11 and -12 | |||
| o Removed feature "advanced-router" and introduced two features | o Removed feature "advanced-router" and introduced two features | |||
| instead: "multiple-ribs" and "multipath-routes". | instead: "multiple-ribs" and "multipath-routes". | |||
| o Unified the keys of config and state versions of "routing- | o Unified the keys of config and state versions of "routing- | |||
| instance" and "rib" lists. | instance" and "rib" lists. | |||
| o Numerical identifiers of state list entries are not keys anymore, | o Numerical identifiers of state list entries are not keys anymore, | |||
| but they are constrained using the "unique" statement. | but they are constrained using the "unique" statement. | |||
| o Updated acknowledgements. | o Updated acknowledgements. | |||
| E.8. Changes Between Versions -10 and -11 | E.9. Changes Between Versions -10 and -11 | |||
| o Migrated address families from IANA enumerations to identities. | o Migrated address families from IANA enumerations to identities. | |||
| o Terminology and node names aligned with the I2RS RIB model: router | o Terminology and node names aligned with the I2RS RIB model: router | |||
| -> routing instance, routing table -> RIB. | -> routing instance, routing table -> RIB. | |||
| o Introduced uint64 keys for state lists: routing-instance, rib, | o Introduced uint64 keys for state lists: routing-instance, rib, | |||
| route, nexthop. | route, nexthop. | |||
| o Described the relationship between system-controlled and user- | o Described the relationship between system-controlled and user- | |||
| skipping to change at page 65, line 42 ¶ | skipping to change at page 66, line 5 ¶ | |||
| router". | router". | |||
| o Made nexthop into a choice in order to allow for nexthop-list | o Made nexthop into a choice in order to allow for nexthop-list | |||
| (I2RS requirement). | (I2RS requirement). | |||
| o Added nexthop-list with entries having priorities (backup) and | o Added nexthop-list with entries having priorities (backup) and | |||
| weights (load balancing). | weights (load balancing). | |||
| o Updated bibliography references. | o Updated bibliography references. | |||
| E.9. Changes Between Versions -09 and -10 | E.10. Changes Between Versions -09 and -10 | |||
| o Added subtree for state data ("/routing-state"). | o Added subtree for state data ("/routing-state"). | |||
| o Terms "system-controlled entry" and "user-controlled entry" | o Terms "system-controlled entry" and "user-controlled entry" | |||
| defined and used. | defined and used. | |||
| o New feature "user-defined-routing-tables". Nodes that are useful | o New feature "user-defined-routing-tables". Nodes that are useful | |||
| only with user-defined routing tables are now conditional. | only with user-defined routing tables are now conditional. | |||
| o Added grouping "router-id". | o Added grouping "router-id". | |||
| o In routing tables, "source-protocol" attribute of routes now | o In routing tables, "source-protocol" attribute of routes now | |||
| reports only protocol type, and its datatype is "identityref". | reports only protocol type, and its datatype is "identityref". | |||
| o Renamed "main-routing-table" to "default-routing-table". | o Renamed "main-routing-table" to "default-routing-table". | |||
| E.10. Changes Between Versions -08 and -09 | E.11. Changes Between Versions -08 and -09 | |||
| o Fixed "must" expresion for "connected-routing-table". | o Fixed "must" expresion for "connected-routing-table". | |||
| o Simplified "must" expression for "main-routing-table". | o Simplified "must" expression for "main-routing-table". | |||
| o Moved per-interface configuration of a new routing protocol under | o Moved per-interface configuration of a new routing protocol under | |||
| 'routing-protocol'. This also affects the 'example-rip' module. | 'routing-protocol'. This also affects the 'example-rip' module. | |||
| E.11. Changes Between Versions -07 and -08 | E.12. Changes Between Versions -07 and -08 | |||
| o Changed reference from RFC6021 to RFC6021bis. | o Changed reference from RFC6021 to RFC6021bis. | |||
| E.12. Changes Between Versions -06 and -07 | E.13. Changes Between Versions -06 and -07 | |||
| o The contents of <get-reply> in Appendix D was updated: "eth[01]" | 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 | is used as the value of "location", and "forwarding" is on for | |||
| both interfaces and both IPv4 and IPv6. | both interfaces and both IPv4 and IPv6. | |||
| o The "must" expression for "main-routing-table" was modified to | o The "must" expression for "main-routing-table" was modified to | |||
| avoid redundant error messages reporting address family mismatch | avoid redundant error messages reporting address family mismatch | |||
| when "name" points to a non-existent routing table. | when "name" points to a non-existent routing table. | |||
| o The default behavior for IPv6 RA prefix advertisements was | o The default behavior for IPv6 RA prefix advertisements was | |||
| clarified. | clarified. | |||
| o Changed type of "rt:router-id" to "ip:dotted-quad". | o Changed type of "rt:router-id" to "ip:dotted-quad". | |||
| o Type of "rt:router-id" changed to "yang:dotted-quad". | o Type of "rt:router-id" changed to "yang:dotted-quad". | |||
| o Fixed missing prefixes in XPath expressions. | o Fixed missing prefixes in XPath expressions. | |||
| E.13. Changes Between Versions -05 and -06 | E.14. Changes Between Versions -05 and -06 | |||
| o Document title changed: "Configuration" was replaced by | o Document title changed: "Configuration" was replaced by | |||
| "Management". | "Management". | |||
| o New typedefs "routing-table-ref" and "route-filter-ref". | o New typedefs "routing-table-ref" and "route-filter-ref". | |||
| o Double slashes "//" were removed from XPath expressions and | o Double slashes "//" were removed from XPath expressions and | |||
| replaced with the single "/". | replaced with the single "/". | |||
| o Removed uniqueness requirement for "router-id". | o Removed uniqueness requirement for "router-id". | |||
| skipping to change at page 67, line 15 ¶ | skipping to change at page 67, line 27 ¶ | |||
| o Complete data tree is now in Appendix A. | o Complete data tree is now in Appendix A. | |||
| o Changed type of "source-protocol" from "leafref" to "string". | o Changed type of "source-protocol" from "leafref" to "string". | |||
| o Clarified the relationship between routing protocol instances and | o Clarified the relationship between routing protocol instances and | |||
| connected routing tables. | connected routing tables. | |||
| o Added a must constraint saying that a routing table connected to | o Added a must constraint saying that a routing table connected to | |||
| the direct pseudo-protocol must not be a main routing table. | the direct pseudo-protocol must not be a main routing table. | |||
| E.14. Changes Between Versions -04 and -05 | E.15. Changes Between Versions -04 and -05 | |||
| o Routing tables are now global, i.e., "routing-tables" is a child | o Routing tables are now global, i.e., "routing-tables" is a child | |||
| of "routing" rather than "router". | of "routing" rather than "router". | |||
| o "must" statement for "static-routes" changed to "when". | o "must" statement for "static-routes" changed to "when". | |||
| o Added "main-routing-tables" containing references to main routing | o Added "main-routing-tables" containing references to main routing | |||
| tables for each address family. | tables for each address family. | |||
| o Removed the defaults for "address-family" and "safi" and made them | o Removed the defaults for "address-family" and "safi" and made them | |||
| skipping to change at page 68, line 5 ¶ | skipping to change at page 68, line 14 ¶ | |||
| o The "direct" pseudo-protocol is always connected to main routing | o The "direct" pseudo-protocol is always connected to main routing | |||
| tables. | tables. | |||
| o Entries in the list of connected routing tables renamed from | o Entries in the list of connected routing tables renamed from | |||
| "routing-table" to "connected-routing-table". | "routing-table" to "connected-routing-table". | |||
| o Added "must" constraint saying that a routing table must not be | o Added "must" constraint saying that a routing table must not be | |||
| its own recipient. | its own recipient. | |||
| E.15. Changes Between Versions -03 and -04 | E.16. Changes Between Versions -03 and -04 | |||
| o Changed "error-tag" for both RPC operations from "missing element" | o Changed "error-tag" for both RPC operations from "missing element" | |||
| to "data-missing". | to "data-missing". | |||
| o Removed the decrementing behavior for advertised IPv6 prefix | o Removed the decrementing behavior for advertised IPv6 prefix | |||
| parameters "valid-lifetime" and "preferred-lifetime". | parameters "valid-lifetime" and "preferred-lifetime". | |||
| o Changed the key of the static route lists from "seqno" to "id" | o Changed the key of the static route lists from "seqno" to "id" | |||
| because the routes needn't be sorted. | because the routes needn't be sorted. | |||
| o Added 'must' constraint saying that "preferred-lifetime" must not | o Added 'must' constraint saying that "preferred-lifetime" must not | |||
| be greater than "valid-lifetime". | be greater than "valid-lifetime". | |||
| E.16. Changes Between Versions -02 and -03 | E.17. Changes Between Versions -02 and -03 | |||
| o Module "iana-afn-safi" moved to I-D "iana-if-type". | o Module "iana-afn-safi" moved to I-D "iana-if-type". | |||
| o Removed forwarding table. | o Removed forwarding table. | |||
| o RPC "get-route" changed to "active-route". Its output is a list | o RPC "get-route" changed to "active-route". Its output is a list | |||
| of routes (for multi-path routing). | of routes (for multi-path routing). | |||
| o New RPC "route-count". | o New RPC "route-count". | |||
| skipping to change at page 69, line 5 ¶ | skipping to change at page 69, line 11 ¶ | |||
| "ietf-ip". | "ietf-ip". | |||
| o Added "router-id" leaf. | o Added "router-id" leaf. | |||
| o Specified the names for IPv4/IPv6 unicast main routing tables. | o Specified the names for IPv4/IPv6 unicast main routing tables. | |||
| o Route parameter "last-modified" changed to "age". | o Route parameter "last-modified" changed to "age". | |||
| o Added container "recipient-routing-tables". | o Added container "recipient-routing-tables". | |||
| E.17. Changes Between Versions -01 and -02 | E.18. Changes Between Versions -01 and -02 | |||
| o Added module "ietf-ipv6-unicast-routing". | o Added module "ietf-ipv6-unicast-routing". | |||
| o The example in Appendix D now uses IP addresses from blocks | o The example in Appendix D now uses IP addresses from blocks | |||
| reserved for documentation. | reserved for documentation. | |||
| o Direct routes appear by default in the forwarding table. | o Direct routes appear by default in the forwarding table. | |||
| o Network layer interfaces must be assigned to a router instance. | o Network layer interfaces must be assigned to a router instance. | |||
| Additional interface configuration may be present. | Additional interface configuration may be present. | |||
| skipping to change at page 69, line 29 ¶ | skipping to change at page 69, line 35 ¶ | |||
| o Additional "must" statements were added. | o Additional "must" statements were added. | |||
| o The "route-content" grouping for IPv4 and IPv6 unicast now | o The "route-content" grouping for IPv4 and IPv6 unicast now | |||
| includes the material from the "ietf-routing" version via "uses | includes the material from the "ietf-routing" version via "uses | |||
| rt:route-content". | rt:route-content". | |||
| o Explanation of symbols in the tree representation of data model | o Explanation of symbols in the tree representation of data model | |||
| hierarchy. | hierarchy. | |||
| E.18. Changes Between Versions -00 and -01 | E.19. Changes Between Versions -00 and -01 | |||
| o AFN/SAFI-independent stuff was moved to the "ietf-routing" module. | 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- | o Typedefs for AFN and SAFI were placed in a separate "iana-afn- | |||
| safi" module. | safi" module. | |||
| o Names of some data nodes were changed, in particular "routing- | o Names of some data nodes were changed, in particular "routing- | |||
| process" is now "router". | process" is now "router". | |||
| o The restriction of a single AFN/SAFI per router was lifted. | o The restriction of a single AFN/SAFI per router was lifted. | |||
| End of changes. 53 change blocks. | ||||
| 115 lines changed or deleted | 108 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||