draft-ietf-netmod-routing-cfg-06.txt | draft-ietf-netmod-routing-cfg-07.txt | |||
---|---|---|---|---|
NETMOD L. Lhotka | NETMOD L. Lhotka | |||
Internet-Draft CZ.NIC | Internet-Draft CZ.NIC | |||
Intended status: Standards Track November 15, 2012 | Intended status: Standards Track February 11, 2013 | |||
Expires: May 19, 2013 | Expires: August 15, 2013 | |||
A YANG Data Model for Routing Management | A YANG Data Model for Routing Management | |||
draft-ietf-netmod-routing-cfg-06 | draft-ietf-netmod-routing-cfg-07 | |||
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 individual routing protocols and | modules defining data models for individual routing protocols and | |||
other related functions. The core routing data model provides common | other related functions. The core routing data model provides common | |||
building blocks for such extensions - router instances, routes, | building blocks for such extensions - router instances, routes, | |||
skipping to change at page 1, line 37 | skipping to change at page 1, line 37 | |||
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 May 19, 2013. | This Internet-Draft will expire on August 15, 2013. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2013 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
skipping to change at page 2, line 42 | skipping to change at page 2, line 42 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49 | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 51 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 51 | |||
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 52 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 52 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 53 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . . 53 | 12.1. Normative References . . . . . . . . . . . . . . . . . . . 53 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . . 53 | 12.2. Informative References . . . . . . . . . . . . . . . . . . 53 | |||
Appendix A. The Complete Data Tree . . . . . . . . . . . . . . . 54 | Appendix A. The Complete Data Tree . . . . . . . . . . . . . . . 54 | |||
Appendix B. Example: Adding a New Routing Protocol . . . . . . . 56 | Appendix B. Example: Adding a New Routing Protocol . . . . . . . 56 | |||
Appendix C. Example: NETCONF <get> Reply . . . . . . . . . . . . 59 | Appendix C. Example: NETCONF <get> Reply . . . . . . . . . . . . 59 | |||
Appendix D. Change Log . . . . . . . . . . . . . . . . . . . . . 64 | Appendix D. Change Log . . . . . . . . . . . . . . . . . . . . . 64 | |||
D.1. Changes Between Versions -05 and -06 . . . . . . . . . . . 64 | D.1. Changes Between Versions -07 and -08 . . . . . . . . . . . 64 | |||
D.2. Changes Between Versions -04 and -05 . . . . . . . . . . . 64 | D.2. Changes Between Versions -06 and -07 . . . . . . . . . . . 64 | |||
D.3. Changes Between Versions -03 and -04 . . . . . . . . . . . 65 | D.3. Changes Between Versions -05 and -06 . . . . . . . . . . . 64 | |||
D.4. Changes Between Versions -02 and -03 . . . . . . . . . . . 65 | D.4. Changes Between Versions -04 and -05 . . . . . . . . . . . 65 | |||
D.5. Changes Between Versions -01 and -02 . . . . . . . . . . . 66 | D.5. Changes Between Versions -03 and -04 . . . . . . . . . . . 65 | |||
D.6. Changes Between Versions -00 and -01 . . . . . . . . . . . 66 | D.6. Changes Between Versions -02 and -03 . . . . . . . . . . . 66 | |||
D.7. Changes Between Versions -01 and -02 . . . . . . . . . . . 66 | ||||
D.8. Changes Between Versions -00 and -01 . . . . . . . . . . . 67 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 68 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 68 | |||
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" | |||
skipping to change at page 6, line 14 | skipping to change at page 6, line 14 | |||
+--------+---------------------------+--------------+ | +--------+---------------------------+--------------+ | |||
| Prefix | YANG module | Reference | | | Prefix | YANG module | Reference | | |||
+--------+---------------------------+--------------+ | +--------+---------------------------+--------------+ | |||
| ianaaf | iana-afn-safi | [IANA-IF-AF] | | | ianaaf | iana-afn-safi | [IANA-IF-AF] | | |||
| | | | | | | | | | |||
| if | ietf-interfaces | [YANG-IF] | | | if | ietf-interfaces | [YANG-IF] | | |||
| | | | | | | | | | |||
| ip | ietf-ip | [YANG-IP] | | | ip | ietf-ip | [YANG-IP] | | |||
| | | | | | | | | | |||
| rip | example-rip | Appendix B | | ||||
| | | | | ||||
| rt | ietf-routing | Section 6 | | | rt | ietf-routing | Section 6 | | |||
| | | | | | | | | | |||
| v4ur | ietf-ipv4-unicast-routing | Section 7 | | | v4ur | ietf-ipv4-unicast-routing | Section 7 | | |||
| | | | | | | | | | |||
| v6ur | ietf-ipv6-unicast-routing | Section 8 | | | v6ur | ietf-ipv6-unicast-routing | Section 8 | | |||
| | | | | | | | | | |||
| yang | ietf-yang-types | [RFC6021] | | | yang | ietf-yang-types | [RFC6021] | | |||
| | | | | | | | | | |||
| inet | ietf-inet-types | [RFC6021] | | | inet | ietf-inet-types | [RFC6021] | | |||
+--------+---------------------------+--------------+ | +--------+---------------------------+--------------+ | |||
skipping to change at page 13, line 11 | skipping to change at page 13, line 11 | |||
Moreover, no implementation is known to use the decrementing | Moreover, no implementation is known to use the decrementing | |||
behavior. The "ietf-ipv6-unicast-routing" module therefore | behavior. The "ietf-ipv6-unicast-routing" module therefore | |||
assumes the former behavior with constant values. | assumes the former behavior with constant values. | |||
4.2. Routes | 4.2. Routes | |||
Routes are basic elements of information in a routing system. The | Routes are basic elements of information in a routing system. The | |||
core routing data model defines only the following minimal set of | core routing data model defines only the following minimal set of | |||
route attributes: | route attributes: | |||
o "destination-prefix": IP prefix specifying the set of destination | o "dest-prefix": IP prefix specifying the set of destination | |||
addresses for which the route may be used. This attribute is | addresses for which the route may be used. This attribute is | |||
mandatory. | mandatory. | |||
o "next-hop": IP address of an adjacent router or host to which | o "next-hop": IP address of an adjacent router or host to which | |||
packets with destination addresses belonging to "destination- | packets with destination addresses belonging to "dest-prefix" | |||
prefix" should be sent. | should be sent. | |||
o "outgoing-interface": network interface that should be used for | o "outgoing-interface": network interface that should be used for | |||
sending packets with destination addresses belonging to | sending packets with destination addresses belonging to "dest- | |||
"destination-prefix". | prefix". | |||
The above list of route attributes suffices for a simple static | The above list of route attributes suffices for a simple static | |||
routing configuration. It is expected that future modules defining | routing configuration. It is expected that future modules defining | |||
routing protocols will add other route attributes such as metrics or | routing protocols will add other route attributes such as metrics or | |||
preferences. | preferences. | |||
Routes and their attributes are used both in configuration data, for | Routes and their attributes are used both in configuration data, for | |||
example as manually configured static routes, and in state data, for | example as manually configured static routes, and in state data, for | |||
example as entries in routing tables. | example as entries in routing tables. | |||
skipping to change at page 14, line 47 | skipping to change at page 14, line 47 | |||
Every routing table can serve as a source of routes for other routing | Every routing table can serve as a source of routes for other routing | |||
tables. To achieve this, one or more recipient routing tables may be | tables. To achieve this, one or more recipient routing tables may be | |||
specified in the configuration of the source routing table. | specified in the configuration of the source routing table. | |||
Optionally, a route filter may be configured for any or all recipient | Optionally, a route filter may be configured for any or all recipient | |||
routing tables. Such a route filter then selects and/or manipulates | routing tables. Such a route filter then selects and/or manipulates | |||
the routes that are passed between the source and recipient routing | the routes that are passed between the source and recipient routing | |||
table. | table. | |||
A routing table MUST NOT appear among its own recipient routing | A routing table MUST NOT appear among its own recipient routing | |||
tables. A recipient routing table also MUST be of the same address | tables. A recipient routing table also MUST be of the same address | |||
family as its source routing table. Consequently, configuration of | family as its source routing table. | |||
recipient routing tables makes sense only for servers supporting | ||||
multiple routing tables per address family. Servers supporting only | ||||
one routing table per address family MAY therefore decide to remove | ||||
the container "recipient-routing-tables", together with its contents, | ||||
from the data model. | ||||
4.4. Routing Protocols | 4.4. Routing Protocols | |||
The core routing data model provides an open-ended framework for | The core routing data model provides an open-ended framework for | |||
defining multiple routing protocol instances within each router | defining multiple routing protocol instances within each router | |||
instance. Each routing protocol instance MUST be assigned a type, | instance. Each routing protocol instance MUST be assigned a type, | |||
which is an identity derived from the "rt:routing-protocol" base | which is an identity derived from the "rt:routing-protocol" base | |||
identity. The core routing data model defines two identities for the | identity. The core routing data model defines two identities for the | |||
direct and static pseudo-protocols (Section 4.4.1). | direct and static pseudo-protocols (Section 4.4.1). | |||
skipping to change at page 18, line 14 | skipping to change at page 18, line 9 | |||
o "allow-all-route-filter": all routes are permitted. | o "allow-all-route-filter": all routes are permitted. | |||
Note that the latter type is equivalent to no route filter. | Note that the latter type is equivalent to no route filter. | |||
It is expected that more comprehensive route filtering frameworks | It is expected that more comprehensive route filtering frameworks | |||
will be developed separately. | will be developed separately. | |||
Each route filter is identified by a name which MUST be unique within | Each route filter is identified by a name which MUST be unique within | |||
the entire configuration. Its type MUST be specified by the "type" | the entire configuration. Its type MUST be specified by the "type" | |||
identity reference - this opens the space for multiple route | identity reference - this opens the space for multiple route | |||
filtering framework implementations. The default value for the route | filtering framework implementations. | |||
filter type is the identity "deny-all-route-filter". | ||||
4.6. RPC Operations | 4.6. RPC Operations | |||
The "ietf-routing" module defines two RPC operations: | The "ietf-routing" module defines two RPC operations: | |||
o active-route: query the routing system for the active route(s) | o active-route: query the routing system for the active route(s) | |||
that are currently used for sending datagrams to a destination | that are currently used for sending datagrams to a destination | |||
host whose address is passed as an input parameter. | host whose address is passed as an input parameter. | |||
o route-count: retrieve the total number of entries in a routing | o route-count: retrieve the total number of entries in a routing | |||
skipping to change at page 19, line 51 | skipping to change at page 19, line 51 | |||
IPv6 routing functions related to that interface MUST be disabled. | IPv6 routing functions related to that interface MUST be disabled. | |||
/if:interfaces/if:interface/ip:ipv6/ip:forwarding | /if:interfaces/if:interface/ip:ipv6/ip:forwarding | |||
If this switch is set to "false" for a given interface, then the | If this switch is set to "false" for a given interface, then the | |||
forwarding of IPv6 datagrams to and from this interface MUST be | forwarding of IPv6 datagrams to and from this interface MUST be | |||
disabled. However, the interface may participate in other routing | disabled. However, the interface may participate in other routing | |||
functions, such as routing protocols. | functions, such as routing protocols. | |||
In addition, the "ietf-ip" module allows for configuring IPv4 and | In addition, the "ietf-ip" module allows for configuring IPv4 and | |||
IPv6 addresses and subnet masks on network layer interfaces. | IPv6 addresses and network prefixes or masks on network layer | |||
Configuration of these parameters on an enabled interface MUST result | interfaces. Configuration of these parameters on an enabled | |||
in an immediate creation of the corresponding direct route. The | interface MUST result in an immediate creation of the corresponding | |||
destination prefix of this route is set according to the configured | direct route. The destination prefix of this route is set according | |||
IP address and subnet mask, and the interface is set as the outgoing | to the configured IP address and network prefix/mask, and the | |||
interface for that route. | interface is set as the outgoing interface for that route. | |||
6. Routing YANG Module | 6. Routing YANG Module | |||
RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | |||
actual RFC number and all occurrences of the revision date below with | actual RFC number and all occurrences of the revision date below with | |||
the date of RFC publication (and remove this note). | the date of RFC publication (and remove this note). | |||
<CODE BEGINS> file "ietf-routing@2012-11-15.yang" | <CODE BEGINS> file "ietf-routing@2013-02-11.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-inet-types { | ||||
prefix "inet"; | ||||
} | ||||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix "if"; | prefix "if"; | |||
} | } | |||
import iana-afn-safi { | import iana-afn-safi { | |||
prefix "ianaaf"; | prefix "ianaaf"; | |||
} | } | |||
organization | organization | |||
"IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | |||
skipping to change at page 22, line 21 | skipping to change at page 22, line 17 | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
RFC itself for full legal notices. | RFC itself for full legal notices. | |||
"; | "; | |||
revision 2012-11-15 { | revision 2013-02-11 { | |||
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 router-type { | identity router-type { | |||
description | description | |||
skipping to change at page 24, line 15 | skipping to change at page 24, line 11 | |||
type leafref { | type leafref { | |||
path "/rt:routing/rt:route-filters/rt:route-filter/rt:name"; | path "/rt:routing/rt:route-filters/rt:route-filter/rt:name"; | |||
} | } | |||
description | description | |||
"This type is used for leafs that reference a route filter."; | "This type is used for leafs that reference a route filter."; | |||
} | } | |||
/* Groupings */ | /* Groupings */ | |||
grouping afn-safi { | grouping afn-safi { | |||
description | ||||
"This grouping provides two parameters specifying address | ||||
family and subsequent address family."; | ||||
leaf address-family { | leaf address-family { | |||
type ianaaf:address-family; | type ianaaf:address-family; | |||
mandatory "true"; | mandatory "true"; | |||
description | description | |||
"Address family."; | "Address family."; | |||
} | } | |||
leaf safi { | leaf safi { | |||
type ianaaf:subsequent-address-family; | type ianaaf:subsequent-address-family; | |||
mandatory "true"; | mandatory "true"; | |||
description | description | |||
"Subsequent address family."; | "Subsequent address family."; | |||
} | } | |||
description | ||||
"This grouping provides two parameters specifying address | ||||
family and subsequent address family."; | ||||
} | } | |||
grouping route-content { | grouping route-content { | |||
description | description | |||
"Generic parameters of routes."; | "Generic parameters of routes."; | |||
leaf outgoing-interface { | leaf outgoing-interface { | |||
type if:interface-ref; | type if:interface-ref; | |||
description | description | |||
"Outgoing interface."; | "Outgoing interface."; | |||
} | } | |||
skipping to change at page 25, line 23 | skipping to change at page 25, line 20 | |||
"; | "; | |||
input { | input { | |||
leaf router-name { | leaf router-name { | |||
type router-ref; | type router-ref; | |||
mandatory "true"; | mandatory "true"; | |||
description | description | |||
"Name of the router instance whose forwarding information | "Name of the router instance whose forwarding information | |||
base is being queried."; | base is being queried."; | |||
} | } | |||
container destination-address { | container destination-address { | |||
uses afn-safi; | ||||
description | description | |||
"Network layer destination address. | "Network layer destination address. | |||
Address family specific modules MUST augment this | Address family specific modules MUST augment this | |||
container with a leaf named 'address'. | container with a leaf named 'address'. | |||
"; | "; | |||
uses afn-safi; | ||||
} | } | |||
} | } | |||
output { | output { | |||
list route { | list route { | |||
uses afn-safi; | ||||
uses route-content; | ||||
description | description | |||
"List of active routes. | "List of active routes. | |||
Route contents specific for each address family is | Route contents specific for each address family is | |||
expected be defined through augmenting. | expected be defined through augmenting. | |||
"; | "; | |||
uses afn-safi; | ||||
uses route-content; | ||||
} | } | |||
} | } | |||
} | } | |||
rpc route-count { | rpc route-count { | |||
description | description | |||
"Return the current number of routes in a routing table. | "Return the current number of routes in a routing table. | |||
Parameters: | Parameters: | |||
skipping to change at page 27, line 23 | skipping to change at page 27, line 20 | |||
default "true"; | default "true"; | |||
description | description | |||
"Enable/disable the router instance. | "Enable/disable the router instance. | |||
If this parameter is false, the parent router instance is | If this parameter is false, the parent router instance is | |||
disabled, despite any other configuration that might be | disabled, despite any other configuration that might be | |||
present. | present. | |||
"; | "; | |||
} | } | |||
leaf router-id { | leaf router-id { | |||
type inet:ipv4-address; | type yang:dotted-quad; | |||
description | description | |||
"Global router ID in the form of an IPv4 address. | "Global router ID - 32-bit number in the form of a dotted | |||
quad. | ||||
An implementation MAY select a value if this parameter is | An implementation MAY select a value if this parameter is | |||
not configured. | not configured. | |||
Routing protocols MAY override this global parameter | Routing protocols MAY override this global parameter | |||
inside their configuration. | inside their configuration. | |||
"; | "; | |||
} | } | |||
leaf description { | leaf description { | |||
type string; | type string; | |||
description | description | |||
"Textual description of the router."; | "Textual description of the router."; | |||
} | } | |||
container main-routing-tables { | container main-routing-tables { | |||
description | description | |||
"Main routing tables used by the router instance."; | "Main routing tables used by the router instance."; | |||
list main-routing-table { | list main-routing-table { | |||
must "address-family=/routing/routing-tables/" | must "not(address-family!=/routing/routing-tables/" | |||
+ "routing-table[name=current()/name]/" | + "routing-table[name=current()/name]/" | |||
+ "address-family and safi=/routing/routing-tables/" | + "address-family or safi!=/routing/routing-tables/" | |||
+ "routing-table[name=current()/name]/safi" { | + "routing-table[name=current()/name]/safi)" { | |||
error-message "Address family mismatch."; | error-message "Address family mismatch."; | |||
description | description | |||
"The entry's address family MUST match that of the | "The entry's address family MUST match that of the | |||
referenced routing table."; | referenced routing table."; | |||
} | } | |||
key "address-family safi"; | key "address-family safi"; | |||
description | description | |||
"Each list entry specifies the main routing table for one | "Each list entry specifies the main routing table for one | |||
address family. | address family. | |||
skipping to change at page 29, line 38 | skipping to change at page 29, line 38 | |||
type identityref { | type identityref { | |||
base routing-protocol; | base routing-protocol; | |||
} | } | |||
mandatory "true"; | mandatory "true"; | |||
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."; | |||
} | } | |||
container connected-routing-tables { | container connected-routing-tables { | |||
description | description | |||
"Container for connected routing tables."; | "Container for connected routing tables. | |||
"; | ||||
list connected-routing-table { | list connected-routing-table { | |||
must "not(/routing/routing-tables/" | must "not(/routing/routing-tables/" | |||
+ "routing-table[name=current()/" | + "routing-table[name=current()/" | |||
+ "preceding-sibling::connected-routing-table/" | + "preceding-sibling::connected-routing-table/" | |||
+ "name]/address-family=/routing/routing-tables/" | + "name]/address-family=/routing/routing-tables/" | |||
+ "routing-table[name=current()/name]/" | + "routing-table[name=current()/name]/" | |||
+ "address-family and /routing/routing-tables/" | + "address-family and /routing/routing-tables/" | |||
+ "routing-table[name=current()/" | + "routing-table[name=current()/" | |||
+ "preceding-sibling::connected-routing-table/" | + "preceding-sibling::connected-routing-table/" | |||
+ "name]/safi=/routing/routing-tables/" | + "name]/safi=/routing/routing-tables/" | |||
skipping to change at page 30, line 21 | skipping to change at page 30, line 21 | |||
"List of routing tables to which the routing protocol | "List of routing tables to which the routing protocol | |||
instance is connected (at most one routing table per | instance is connected (at most one routing table per | |||
address family). | address family). | |||
If no connected routing table is configured for an | If no connected routing table is configured for an | |||
address family, the routing protocol MUST be | address family, the routing protocol MUST be | |||
operationally connected to the main routing table | operationally connected to the main routing table | |||
for that address family. | for that address family. | |||
"; | "; | |||
leaf name { | leaf name { | |||
type routing-table-ref; | ||||
must "../../../type != 'rt:direct' or " | must "../../../type != 'rt:direct' or " | |||
+ "../../../../../main-routing-tables/ " | + "../../../../../main-routing-tables/ " | |||
+ "main-routing-table/name=." { | + "main-routing-table/name=." { | |||
error-message "The 'direct' protocol can be " | error-message "The 'direct' protocol can be " | |||
+ "connected only to a main routing " | + "connected only to a main routing " | |||
+ "table."; | + "table."; | |||
description | description | |||
"For the 'direct' pseudo-protocol, the connected | "For the 'direct' pseudo-protocol, the connected | |||
routing table must always be a main routing | routing table must always be a main routing | |||
table."; | table."; | |||
} | } | |||
type routing-table-ref; | ||||
description | description | |||
"Name of an existing routing table."; | "Name of an existing routing table."; | |||
} | } | |||
leaf import-filter { | leaf import-filter { | |||
type route-filter-ref; | type route-filter-ref; | |||
description | description | |||
"Reference to a route filter that is used for | "Reference to a route filter that is used for | |||
filtering routes passed from this routing protocol | filtering routes passed from this routing protocol | |||
instance to the routing table specified by the | instance to the routing table specified by the | |||
'name' sibling node. | 'name' sibling node. | |||
skipping to change at page 35, line 11 | skipping to change at page 35, line 11 | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
7. IPv4 Unicast Routing YANG Module | 7. IPv4 Unicast Routing YANG Module | |||
RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | |||
actual RFC number and all occurrences of the revision date below with | actual RFC number and all occurrences of the revision date below with | |||
the date of RFC publication (and remove this note). | the date of RFC publication (and remove this note). | |||
<CODE BEGINS> file "ietf-ipv4-unicast-routing@2012-11-15.yang" | <CODE BEGINS> file "ietf-ipv4-unicast-routing@2013-02-11.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"; | |||
} | } | |||
skipping to change at page 36, line 13 | skipping to change at page 36, line 13 | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
RFC itself for full legal notices. | RFC itself for full legal notices. | |||
"; | "; | |||
revision 2012-11-15 { | revision 2013-02-11 { | |||
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"; | |||
} | } | |||
/* Groupings */ | /* Groupings */ | |||
grouping route-content { | grouping route-content { | |||
description | description | |||
skipping to change at page 36, line 40 | skipping to change at page 36, line 40 | |||
leaf next-hop { | leaf next-hop { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description | description | |||
"IPv4 address of the next hop."; | "IPv4 address of the next hop."; | |||
} | } | |||
} | } | |||
/* RPC Methods */ | /* RPC Methods */ | |||
augment "/rt:active-route/rt:input/rt:destination-address" { | augment "/rt:active-route/rt:input/rt:destination-address" { | |||
when "address-family='ipv4' and safi='nlri-unicast'" { | when "rt:address-family='ipv4' and rt:safi='nlri-unicast'" { | |||
description | description | |||
"This augment is valid only for IPv4 unicast."; | "This augment is valid only for IPv4 unicast."; | |||
} | } | |||
description | description | |||
"The 'address' leaf augments the 'rt:destination-address' | "The 'address' leaf augments the 'rt:destination-address' | |||
parameter of the 'rt:active-route' operation."; | parameter of the 'rt:active-route' operation."; | |||
leaf address { | leaf address { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description | description | |||
"IPv4 destination address."; | "IPv4 destination address."; | |||
} | } | |||
} | } | |||
augment "/rt:active-route/rt:output/rt:route" { | augment "/rt:active-route/rt:output/rt:route" { | |||
when "address-family='ipv4' and safi='nlri-unicast'" { | when "rt:address-family='ipv4' and rt:safi='nlri-unicast'" { | |||
description | description | |||
"This augment is valid only for IPv4 unicast."; | "This augment is valid only for IPv4 unicast."; | |||
} | } | |||
description | description | |||
"Contents of the reply to 'rt:active-route' operation."; | "Contents of the reply to 'rt:active-route' operation."; | |||
uses route-content; | uses route-content; | |||
} | } | |||
/* Data nodes */ | /* Data nodes */ | |||
skipping to change at page 39, line 11 | skipping to change at page 39, line 11 | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
8. IPv6 Unicast Routing YANG Module | 8. IPv6 Unicast Routing YANG Module | |||
RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | RFC Ed.: In this section, replace all occurrences of 'XXXX' with the | |||
actual RFC number and all occurrences of the revision date below with | actual RFC number and all occurrences of the revision date below with | |||
the date of RFC publication (and remove this note). | the date of RFC publication (and remove this note). | |||
<CODE BEGINS> file "ietf-ipv6-unicast-routing@2012-11-15.yang" | <CODE BEGINS> file "ietf-ipv6-unicast-routing@2013-02-11.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 40, line 21 | skipping to change at page 40, line 21 | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see the | This version of this YANG module is part of RFC XXXX; see the | |||
RFC itself for full legal notices. | RFC itself for full legal notices. | |||
"; | "; | |||
revision 2012-11-15 { | revision 2013-02-11 { | |||
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"; | |||
} | } | |||
/* Groupings */ | /* Groupings */ | |||
grouping route-content { | grouping route-content { | |||
description | description | |||
skipping to change at page 40, line 48 | skipping to change at page 40, line 48 | |||
leaf next-hop { | leaf next-hop { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"IPv6 address of the next hop."; | "IPv6 address of the next hop."; | |||
} | } | |||
} | } | |||
/* RPC Methods */ | /* RPC Methods */ | |||
augment "/rt:active-route/rt:input/rt:destination-address" { | augment "/rt:active-route/rt:input/rt:destination-address" { | |||
when "address-family='ipv6' and safi='nlri-unicast'" { | when "rt:address-family='ipv6' and rt:safi='nlri-unicast'" { | |||
description | description | |||
"This augment is valid only for IPv6 unicast."; | "This augment is valid only for IPv6 unicast."; | |||
} | } | |||
description | description | |||
"The 'address' leaf augments the 'rt:destination-address' | "The 'address' leaf augments the 'rt:destination-address' | |||
parameter of the 'rt:active-route' operation."; | parameter of the 'rt:active-route' operation."; | |||
leaf address { | leaf address { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"IPv6 destination address."; | "IPv6 destination address."; | |||
} | } | |||
} | } | |||
augment "/rt:active-route/rt:output/rt:route" { | augment "/rt:active-route/rt:output/rt:route" { | |||
when "address-family='ipv6' and safi='nlri-unicast'" { | when "rt:address-family='ipv6' and rt:safi='nlri-unicast'" { | |||
description | description | |||
"This augment is valid only for IPv6 unicast."; | "This augment is valid only for IPv6 unicast."; | |||
} | } | |||
description | description | |||
"Contents of the reply to 'rt:active-route' operation."; | "Contents of the reply to 'rt:active-route' operation."; | |||
uses route-content; | uses route-content; | |||
} | } | |||
/* Data nodes */ | /* Data nodes */ | |||
augment "/rt:routing/rt:router/rt:interfaces/rt:interface" { | augment "/rt:routing/rt:router/rt:interfaces/rt:interface" { | |||
when "/if:interfaces/if:interface[name=current()/name]/ip:ipv6/" | when "/if:interfaces/if:interface[if:name=current()/rt:name]/" | |||
+ "ip:enabled='true'" { | + "ip:ipv6/ip:enabled='true'" { | |||
description | description | |||
"This augment is only valid for router interfaces with | "This augment is only valid for router interfaces with | |||
enabled IPv6."; | enabled IPv6."; | |||
} | } | |||
description | description | |||
"IPv6-specific parameters of router interfaces."; | "IPv6-specific parameters of router interfaces."; | |||
container ipv6-router-advertisements { | container ipv6-router-advertisements { | |||
description | description | |||
"Parameters of IPv6 Router Advertisements."; | "Parameters of IPv6 Router Advertisements."; | |||
leaf send-advertisements { | leaf send-advertisements { | |||
skipping to change at page 42, line 19 | skipping to change at page 42, line 19 | |||
"The maximum time allowed between sending unsolicited | "The maximum time allowed between sending unsolicited | |||
multicast Router Advertisements from the interface."; | multicast Router Advertisements from the interface."; | |||
reference | reference | |||
"RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - | |||
MaxRtrAdvInterval."; | MaxRtrAdvInterval."; | |||
} | } | |||
leaf min-rtr-adv-interval { | leaf min-rtr-adv-interval { | |||
type uint16 { | type uint16 { | |||
range "3..1350"; | range "3..1350"; | |||
} | } | |||
units "seconds"; | ||||
must ". <= 0.75 * ../max-rtr-adv-interval" { | must ". <= 0.75 * ../max-rtr-adv-interval" { | |||
description | description | |||
"The value MUST NOT be greater than 75 % of | "The value MUST NOT be greater than 75 % of | |||
'max-rtr-adv-interval'."; | 'max-rtr-adv-interval'."; | |||
} | } | |||
units "seconds"; | ||||
description | description | |||
"The minimum time allowed between sending unsolicited | "The minimum time allowed between sending unsolicited | |||
multicast Router Advertisements from the interface. | multicast Router Advertisements from the interface. | |||
The default value to be used operationally if this leaf is | The default value to be used operationally if this leaf is | |||
not configured is determined as follows: | not configured is determined as follows: | |||
- if max-rtr-adv-interval >= 9 seconds, the default value | - if max-rtr-adv-interval >= 9 seconds, the default value | |||
is 0.33 * max-rtr-adv-interval; | is 0.33 * max-rtr-adv-interval; | |||
skipping to change at page 44, line 36 | skipping to change at page 44, line 36 | |||
units "seconds"; | units "seconds"; | |||
description | description | |||
"The value to be placed in the Router Lifetime field of | "The value to be placed in the Router Lifetime field of | |||
Router Advertisements sent from the interface, in seconds. | Router Advertisements sent from the interface, in seconds. | |||
MUST be either zero or between max-rtr-adv-interval and | MUST be either zero or between max-rtr-adv-interval and | |||
9000 seconds. A value of zero indicates that the router is | 9000 seconds. A value of zero indicates that the router is | |||
not to be used as a default router. These limits may be | not to be used as a default router. These limits may be | |||
overridden by specific documents that describe how IPv6 | overridden by specific documents that describe how IPv6 | |||
operates over different link layers. | operates over different link layers. | |||
The default value is dynamic and SHOULD be set to 3 * | If this parameter is not configured, a value of 3 * | |||
max-rtr-adv-interval. | max-rtr-adv-interval SHOULD be used. | |||
"; | "; | |||
reference | reference | |||
"RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - | |||
AdvDefaultLifeTime."; | AdvDefaultLifeTime."; | |||
} | } | |||
container prefix-list { | container prefix-list { | |||
description | description | |||
"A list of prefixes to be placed in Prefix Information | "A list of prefixes to be placed in Prefix Information | |||
options in Router Advertisement messages sent from the | options in Router Advertisement messages sent from the | |||
interface. | interface. | |||
By default, all prefixes that the router advertises via | By default, all prefixes that the router advertises via | |||
routing protocols as being on-link for the interface from | routing protocols as being on-link for the interface from | |||
which the advertisement is sent. The link-local prefix | which the advertisement is sent. | |||
SHOULD NOT be included in the list of advertised prefixes. | ||||
Prefixes that do not have their entries in the child | ||||
'prefix' list are advertised with the default values of | ||||
all parameters. | ||||
The link-local prefix SHOULD NOT be included in the list | ||||
of advertised prefixes. | ||||
"; | "; | |||
reference | reference | |||
"RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - | |||
AdvPrefixList."; | AdvPrefixList."; | |||
list prefix { | list prefix { | |||
key "prefix-spec"; | key "prefix-spec"; | |||
description | description | |||
"Advertised prefix entry."; | "Advertised prefix entry."; | |||
leaf prefix-spec { | leaf prefix-spec { | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
skipping to change at page 54, line 17 | skipping to change at page 54, line 17 | |||
This appendix presents the complete data tree of the core routing | This appendix presents the complete data tree of the core routing | |||
data model. See Section 2.2 for an explanation of symbols. Data | data model. See Section 2.2 for an explanation of symbols. Data | |||
type of every leaf node is shown near the right end of the | type of every leaf node is shown near the right end of the | |||
corresponding line. | corresponding line. | |||
+--rw routing | +--rw routing | |||
+--rw router [name] | +--rw router [name] | |||
| +--rw name string | | +--rw name string | |||
| +--rw type? identityref | | +--rw type? identityref | |||
| +--rw enabled? boolean | | +--rw enabled? boolean | |||
| +--rw router-id? inet:ipv4-address | | +--rw router-id? yang:dotted-quad | |||
| +--rw description? string | | +--rw description? string | |||
| +--rw main-routing-tables | | +--rw main-routing-tables | |||
| | +--rw main-routing-table [address-family safi] | | | +--rw main-routing-table [address-family safi] | |||
| | +--rw address-family ianaaf:address-family | | | +--rw address-family ianaaf:address-family | |||
| | +--rw safi ianaaf:subsequent-address-family | | | +--rw safi ianaaf:subsequent-address-family | |||
| | +--rw name? routing-table-ref | | | +--rw name? routing-table-ref | |||
| +--rw interfaces | | +--rw interfaces | |||
| | +--rw interface [name] | | | +--rw interface [name] | |||
| | +--rw name if:interface-ref | | | +--rw name if:interface-ref | |||
| | +--rw v6ur:ipv6-router-advertisements | | | +--rw v6ur:ipv6-router-advertisements | |||
skipping to change at page 60, line 16 | skipping to change at page 60, line 16 | |||
xmlns:v4ur="urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing" | xmlns:v4ur="urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing" | |||
xmlns:v6ur="urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing" | xmlns:v6ur="urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing" | |||
xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces" | xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces" | |||
xmlns:ip="urn:ietf:params:xml:ns:yang:ietf-ip" | xmlns:ip="urn:ietf:params:xml:ns:yang:ietf-ip" | |||
xmlns:rt="urn:ietf:params:xml:ns:yang:ietf-routing"> | xmlns:rt="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
<data> | <data> | |||
<if:interfaces> | <if:interfaces> | |||
<if:interface> | <if:interface> | |||
<if:name>eth0</if:name> | <if:name>eth0</if:name> | |||
<if:type>ethernetCsmacd</if:type> | <if:type>ethernetCsmacd</if:type> | |||
<if:location>05:00.0</if:location> | <if:location>eth0</if:location> | |||
<ip:ipv4> | <ip:ipv4> | |||
<ip:address> | <ip:address> | |||
<ip:ip>192.0.2.1</ip:ip> | <ip:ip>192.0.2.1</ip:ip> | |||
<ip:prefix-length>24</ip:prefix-length> | <ip:prefix-length>24</ip:prefix-length> | |||
</ip:address> | </ip:address> | |||
<ip:forwarding>true</ip:forwarding> | ||||
</ip:ipv4> | </ip:ipv4> | |||
<ip:ipv6> | <ip:ipv6> | |||
<ip:address> | <ip:address> | |||
<ip:ip>2001:0db8:0:1::1</ip:ip> | <ip:ip>2001:0db8:0:1::1</ip:ip> | |||
<ip:prefix-length>64</ip:prefix-length> | <ip:prefix-length>64</ip:prefix-length> | |||
</ip:address> | </ip:address> | |||
<ip:forwarding>true</ip:forwarding> | ||||
<ip:autoconf> | <ip:autoconf> | |||
<ip:create-global-addresses>false</ip:create-global-addresses> | <ip:create-global-addresses>false</ip:create-global-addresses> | |||
</ip:autoconf> | </ip:autoconf> | |||
</ip:ipv6> | </ip:ipv6> | |||
</if:interface> | </if:interface> | |||
<if:interface> | <if:interface> | |||
<if:name>eth1</if:name> | <if:name>eth1</if:name> | |||
<if:type>ethernetCsmacd</if:type> | <if:type>ethernetCsmacd</if:type> | |||
<if:location>05:00.1</if:location> | <if:location>eth1</if:location> | |||
<ip:ipv4> | <ip:ipv4> | |||
<ip:address> | <ip:address> | |||
<ip:ip>198.51.100.1</ip:ip> | <ip:ip>198.51.100.1</ip:ip> | |||
<ip:prefix-length>24</ip:prefix-length> | <ip:prefix-length>24</ip:prefix-length> | |||
</ip:address> | </ip:address> | |||
<ip:forwarding>true</ip:forwarding> | ||||
</ip:ipv4> | </ip:ipv4> | |||
<ip:ipv6> | <ip:ipv6> | |||
<ip:address> | <ip:address> | |||
<ip:ip>2001:0db8:0:2::1</ip:ip> | <ip:ip>2001:0db8:0:2::1</ip:ip> | |||
<ip:prefix-length>64</ip:prefix-length> | <ip:prefix-length>64</ip:prefix-length> | |||
</ip:address> | </ip:address> | |||
<ip:forwarding>true</ip:forwarding> | ||||
<ip:autoconf> | <ip:autoconf> | |||
<ip:create-global-addresses>false</ip:create-global-addresses> | <ip:create-global-addresses>false</ip:create-global-addresses> | |||
</ip:autoconf> | </ip:autoconf> | |||
</ip:ipv6> | </ip:ipv6> | |||
</if:interface> | </if:interface> | |||
</if:interfaces> | </if:interfaces> | |||
<rt:routing> | <rt:routing> | |||
<rt:router> | <rt:router> | |||
<rt:name>rtr0</rt:name> | <rt:name>rtr0</rt:name> | |||
<rt:router-id>192.0.2.1</rt:router-id> | <rt:router-id>192.0.2.1</rt:router-id> | |||
<rt:description>Router A</rt:description> | <rt:description>Router A</rt:description> | |||
<rt:main-routing-tables> | <rt:main-routing-tables> | |||
<rt:main-routing-table> | <rt:main-routing-table> | |||
<rt:address-family>ipv4</rt:address-family> | <rt:address-family>ipv4</rt:address-family> | |||
skipping to change at page 64, line 9 | skipping to change at page 64, line 9 | |||
</rt:routing-table> | </rt:routing-table> | |||
</rt:routing-tables> | </rt:routing-tables> | |||
</rt:routing> | </rt:routing> | |||
</data> | </data> | |||
</rpc-reply> | </rpc-reply> | |||
Appendix D. Change Log | Appendix D. Change Log | |||
RFC Editor: remove this section upon publication as an RFC. | RFC Editor: remove this section upon publication as an RFC. | |||
D.1. Changes Between Versions -05 and -06 | D.1. Changes Between Versions -07 and -08 | |||
o Type of "rt:router-id" changed to "yang:dotted-quad". | ||||
o Fixed missing prefixes in XPath expressions. | ||||
D.2. Changes Between Versions -06 and -07 | ||||
o The contents of <get-reply> in Appendix C 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". | ||||
D.3. 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 64, line 31 | skipping to change at page 65, line 5 | |||
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. | |||
D.2. Changes Between Versions -04 and -05 | D.4. 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 65, line 19 | skipping to change at page 65, line 40 | |||
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. | |||
D.3. Changes Between Versions -03 and -04 | D.5. Changes Between Versions -03 and -04 | |||
o Changed "error-tag" for both RPC methods from "missing element" to | o Changed "error-tag" for both RPC methods from "missing element" to | |||
"data-missing". | "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". | |||
D.4. Changes Between Versions -02 and -03 | D.6. 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 66, line 18 | skipping to change at page 66, line 37 | |||
"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". | |||
D.5. Changes Between Versions -01 and -02 | D.7. 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 C now uses IP addresses from blocks | o The example in Appendix C 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 66, line 42 | skipping to change at page 67, line 14 | |||
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. | |||
D.6. Changes Between Versions -00 and -01 | D.8. 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. 55 change blocks. | ||||
76 lines changed or deleted | 98 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |