| < draft-ietf-netmod-rfc8022bis-05.txt | draft-ietf-netmod-rfc8022bis-06.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: June 23, 2018 Cisco Systems | Expires: June 25, 2018 Cisco Systems | |||
| Y. Qu | Y. Qu | |||
| Huawei | Huawei | |||
| December 20, 2017 | December 22, 2017 | |||
| A YANG Data Model for Routing Management (NDMA Version) | A YANG Data Model for Routing Management (NDMA Version) | |||
| draft-ietf-netmod-rfc8022bis-05 | draft-ietf-netmod-rfc8022bis-06 | |||
| Abstract | Abstract | |||
| This document contains a specification of three YANG modules and one | This document contains a specification of three YANG modules and one | |||
| submodule. Together they form the core routing data model that | submodule. Together they form the core routing data model that | |||
| serves as a framework for configuring and managing a routing | serves as a framework for configuring and managing a routing | |||
| subsystem. It is expected that these modules will be augmented by | subsystem. It is expected that these modules will be augmented by | |||
| additional YANG modules defining data models for control-plane | additional YANG modules defining data models for control-plane | |||
| protocols, route filters, and other functions. The core routing data | protocols, route filters, and other functions. The core routing data | |||
| model provides common building blocks for such extensions -- routes, | model provides common building blocks for such extensions -- routes, | |||
| Routing Information Bases (RIBs), and control-plane protocols. | Routing Information Bases (RIBs), and control-plane protocols. | |||
| The main difference from the first version is that this version fully | The YANG modules in this document conform to the Network Management | |||
| conforms to the Network Management Datastore Architecture (NMDA). | Datastore Architecture (NMDA). This document obsoletes RFC 8022. | |||
| Consequently, this document obsoletes RFC 8022. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 June 23, 2018. | This Internet-Draft will expire on June 25, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 41 ¶ | skipping to change at page 2, line 36 ¶ | |||
| 5.1. Route . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5.1. Route . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.2. Routing Information Base (RIB) . . . . . . . . . . . . . 9 | 5.2. Routing Information Base (RIB) . . . . . . . . . . . . . 9 | |||
| 5.3. Control-Plane Protocol . . . . . . . . . . . . . . . . . 9 | 5.3. Control-Plane Protocol . . . . . . . . . . . . . . . . . 9 | |||
| 5.3.1. Routing Pseudo-Protocols . . . . . . . . . . . . . . 10 | 5.3.1. Routing Pseudo-Protocols . . . . . . . . . . . . . . 10 | |||
| 5.3.2. Defining New Control-Plane Protocols . . . . . . . . 10 | 5.3.2. Defining New Control-Plane Protocols . . . . . . . . 10 | |||
| 5.4. Parameters of IPv6 Router Advertisements . . . . . . . . 11 | 5.4. Parameters of IPv6 Router Advertisements . . . . . . . . 11 | |||
| 6. Interactions with Other YANG Modules . . . . . . . . . . . . 12 | 6. Interactions with Other YANG Modules . . . . . . . . . . . . 12 | |||
| 6.1. Module "ietf-interfaces" . . . . . . . . . . . . . . . . 12 | 6.1. Module "ietf-interfaces" . . . . . . . . . . . . . . . . 12 | |||
| 6.2. Module "ietf-ip" . . . . . . . . . . . . . . . . . . . . 12 | 6.2. Module "ietf-ip" . . . . . . . . . . . . . . . . . . . . 12 | |||
| 7. Routing Management YANG Module . . . . . . . . . . . . . . . 13 | 7. Routing Management YANG Module . . . . . . . . . . . . . . . 13 | |||
| 8. IPv4 Unicast Routing Management YANG Module . . . . . . . . . 28 | 8. IPv4 Unicast Routing Management YANG Module . . . . . . . . . 27 | |||
| 9. IPv6 Unicast Routing Management YANG Module . . . . . . . . . 36 | 9. IPv6 Unicast Routing Management YANG Module . . . . . . . . . 35 | |||
| 9.1. IPv6 Router Advertisements Submodule . . . . . . . . . . 44 | 9.1. IPv6 Router Advertisements Submodule . . . . . . . . . . 43 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 55 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 55 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 56 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 56 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 56 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 57 | 12.2. Informative References . . . . . . . . . . . . . . . . . 57 | |||
| Appendix A. The Complete Schema Tree . . . . . . . . . . . . . . 59 | Appendix A. The Complete Schema Tree . . . . . . . . . . . . . . 59 | |||
| Appendix B. Minimum Implementation . . . . . . . . . . . . . . . 64 | Appendix B. Minimum Implementation . . . . . . . . . . . . . . . 64 | |||
| Appendix C. Example: Adding a New Control-Plane Protocol . . . . 64 | Appendix C. Example: Adding a New Control-Plane Protocol . . . . 64 | |||
| Appendix D. Data Tree Example . . . . . . . . . . . . . . . . . 67 | Appendix D. Data Tree Example . . . . . . . . . . . . . . . . . 67 | |||
| Appendix E. NETCONF Get Data Reply Example . . . . . . . . . . . 73 | Appendix E. NETCONF Get Data Reply Example . . . . . . . . . . . 73 | |||
| skipping to change at page 3, line 37 ¶ | skipping to change at page 3, line 34 ¶ | |||
| covering more-sophisticated routing systems. While these three | covering more-sophisticated routing systems. While these three | |||
| modules can be directly used for simple IP devices with static | modules can be directly used for simple IP devices with static | |||
| routing (see Appendix B), their main purpose is to provide essential | routing (see Appendix B), their main purpose is to provide essential | |||
| building blocks for more-complicated data models involving multiple | building blocks for more-complicated data models involving multiple | |||
| control-plane protocols, multicast routing, additional address | control-plane protocols, multicast routing, additional address | |||
| families, and advanced functions such as route filtering or policy | families, and advanced functions such as route filtering or policy | |||
| routing. To this end, it is expected that the core routing data | routing. To this end, it is expected that the core routing data | |||
| model will be augmented by numerous modules developed by various IETF | model will be augmented by numerous modules developed by various IETF | |||
| working groups. | working groups. | |||
| The main difference from the first version is that this version fully | The YANG modules in this document conform to the Network Management | |||
| conforms to the Network Management Datastore Architecture (NMDA) | Datastore Architecture (NMDA) [I-D.ietf-netmod-revised-datastores]. | |||
| [I-D.ietf-netmod-revised-datastores]. Consequently, this document | This document obsoletes RFC 8022 [RFC8022]. | |||
| obsoletes RFC 8022 [RFC8022]. | ||||
| 2. Terminology and Notation | 2. Terminology and Notation | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| The following terms are defined in | The following terms are defined in | |||
| [I-D.ietf-netmod-revised-datastores]: | [I-D.ietf-netmod-revised-datastores]: | |||
| skipping to change at page 4, line 40 ¶ | skipping to change at page 4, line 36 ¶ | |||
| o leaf | o leaf | |||
| o list | o list | |||
| o mandatory node | o mandatory node | |||
| o module | o module | |||
| o schema tree | o schema tree | |||
| o state data | ||||
| o RPC (Remote Procedure Call) operation | o RPC (Remote Procedure Call) operation | |||
| 2.1. Glossary of New Terms | 2.1. Glossary of New Terms | |||
| core routing data model: YANG data model comprising "ietf-routing", | core routing data model: YANG data model comprising "ietf-routing", | |||
| "ietf-ipv4-unicast-routing", and "ietf-ipv6-unicast-routing" | "ietf-ipv4-unicast-routing", and "ietf-ipv6-unicast-routing" | |||
| modules. | modules. | |||
| direct route: a route to a directly connected network. | direct route: a route to a directly connected network. | |||
| Routing Information Base (RIB): An object containing a list of | Routing Information Base (RIB): An object containing a list of | |||
| routes together with other information. See Section 5.2 for | routes together with other information. See Section 5.2 for | |||
| details. | details. | |||
| system-controlled entry: An entry of a list in operational state | system-controlled entry: An entry of a list in operational state | |||
| ("config false") that is created by the system independently of | ("config false") that is created by the system independently of | |||
| what has been explicitly configured. See Section 4.1 for details. | what has been explicitly configured. See Section 4.1 for details. | |||
| user-controlled entry: An entry of a list in operational state data | user-controlled entry: An entry of a list in operational state | |||
| ("config false") that is created and deleted as a direct | ("config false") that is created and deleted as a direct | |||
| consequence of certain configuration changes. See Section 4.1 for | consequence of certain configuration changes. See Section 4.1 for | |||
| details. | details. | |||
| 2.2. Tree Diagrams | 2.2. Tree Diagrams | |||
| Tree diagrams used in this document follow the notation defined in | Tree diagrams used in this document follow the notation defined in | |||
| [I-D.ietf-netmod-yang-tree-diagrams]. | [I-D.ietf-netmod-yang-tree-diagrams]. | |||
| 2.3. Prefixes in Data Node Names | 2.3. Prefixes in Data Node Names | |||
| skipping to change at page 7, line 50 ¶ | skipping to change at page 7, line 50 ¶ | |||
| describes these components in more detail. | describes these components in more detail. | |||
| 4.1. System-Controlled and User-Controlled List Entries | 4.1. System-Controlled and User-Controlled List Entries | |||
| The core routing data model defines several lists in the schema tree, | The core routing data model defines several lists in the schema tree, | |||
| such as "rib", that have to be populated with at least one entry in | such as "rib", that have to be populated with at least one entry in | |||
| any properly functioning device, and additional entries may be | any properly functioning device, and additional entries may be | |||
| configured by a client. | configured by a client. | |||
| In such a list, the server creates the required item as a so-called | In such a list, the server creates the required item as a so-called | |||
| system-controlled entry in state data in the operational state | system-controlled entry in the operational state, i.e., inside read- | |||
| datastore [I-D.ietf-netmod-revised-datastores], i.e., inside read- | ||||
| only lists in the "routing" container. | only lists in the "routing" container. | |||
| An example can be seen in Appendix D: the "/routing/ribs/rib" list | An example can be seen in Appendix D: the "/routing/ribs/rib" list | |||
| has two system-controlled entries named "ipv4-master" and | has two system-controlled entries named "ipv4-master" and | |||
| "ipv6-master". | "ipv6-master". | |||
| Additional entries may be created in the configuration by a client, | Additional entries may be created in the configuration by a client, | |||
| e.g., via the NETCONF protocol. These are so-called user-controlled | e.g., via the NETCONF protocol. These are so-called user-controlled | |||
| entries. If the server accepts a configured user-controlled entry, | entries. If the server accepts a configured user-controlled entry, | |||
| then this entry also appears in the state data version of the list. | then this entry also appears in the operational state version of the | |||
| list. | ||||
| Corresponding entries in both versions of the list (in operational | Corresponding entries in both versions of the list (in the intended | |||
| state datastore and intended datastore | configuration and the operational state) | |||
| [I-D.ietf-netmod-revised-datastores] have the same value of the list | [I-D.ietf-netmod-revised-datastores] have the same value of the list | |||
| key. | key. | |||
| A client may also provide supplemental configuration of system- | A client may also provide supplemental configuration of system- | |||
| controlled entries. To do so, the client creates a new entry in the | controlled entries. To do so, the client creates a new entry in the | |||
| configuration with the desired contents. In order to bind this entry | configuration with the desired contents. In order to bind this entry | |||
| to the corresponding entry in the state data list in the operational | to the corresponding entry in the operational state, the key of the | |||
| state datastore, the key of the configuration entry has to be set to | configuration entry has to be set to the same value as the key of the | |||
| the same value as the key of the state entry. | operational state entry. | |||
| Deleting a user-controlled entry from the configuration list results | Deleting a user-controlled entry from the intended configuration | |||
| in the removal of the corresponding entry in the state data list. In | results in the removal of the corresponding entry in the operational | |||
| contrast, if client delets a system-controlled entry from the | state list. In contrast, if client deletes a system-controlled entry | |||
| configuration list in the intended datastore, only the extra | from the intended configuration, only the extra configuration | |||
| configuration specified in that entry is removed but the | specified in that entry is removed but the corresponding operational | |||
| corresponding state data entry remains in the list in the operational | state entry is not removed. | |||
| datastore. | ||||
| 5. Basic Building Blocks | 5. Basic Building Blocks | |||
| This section describes the essential components of the core routing | This section describes the essential components of the core routing | |||
| data model. | data model. | |||
| 5.1. Route | 5.1. Route | |||
| 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 | |||
| skipping to change at page 9, line 8 ¶ | skipping to change at page 9, line 8 ¶ | |||
| attribute is mandatory. | attribute is mandatory. | |||
| o "route-preference": an integer value (also known as administrative | o "route-preference": an integer value (also known as administrative | |||
| distance) that is used for selecting a preferred route among | distance) that is used for selecting a preferred route among | |||
| routes with the same destination prefix. A lower value means a | routes with the same destination prefix. A lower value means a | |||
| more preferred route. | more preferred route. | |||
| o "next-hop": determines the outgoing interface and/or next-hop | o "next-hop": determines the outgoing interface and/or next-hop | |||
| address(es), or a special operation to be performed with a packet. | address(es), or a special operation to be performed with a packet. | |||
| Routes are primarily state data that appear as entries of RIBs | Routes are primarily system state that appear as entries of RIBs | |||
| (Section 5.2) but they may also be found in configuration data, for | (Section 5.2) but they may also be found in configuration data, for | |||
| example, as manually configured static routes. In the latter case, | example, as manually configured static routes. In the latter case, | |||
| configurable route attributes are generally a subset of attributes | configurable route attributes are generally a subset of attributes | |||
| defined for RIB routes. | defined for RIB routes. | |||
| 5.2. Routing Information Base (RIB) | 5.2. Routing Information Base (RIB) | |||
| Every implementation of the core routing data model manages one or | Every implementation of the core routing data model manages one or | |||
| more Routing Information Bases (RIBs). A RIB is a list of routes | more Routing Information Bases (RIBs). A RIB is a list of routes | |||
| complemented with administrative data. Each RIB contains only routes | complemented with administrative data. Each RIB contains only routes | |||
| of one address family. An address family is represented by an | of one address family. An address family is represented by an | |||
| identity derived from the "rt:address-family" base identity. | identity derived from the "rt:address-family" base identity. | |||
| In the core routing data model, RIBs are state data represented as | In the core routing data model, RIBs are represented as entries of | |||
| entries of the list "/routing/ribs/rib" in the operational state | the list "/routing/ribs/rib" in the operational state. The contents | |||
| datastore [I-D.ietf-netmod-revised-datastores]. The contents of RIBs | of RIBs are controlled and manipulated by control-plane protocol | |||
| are controlled and manipulated by control-plane protocol operations | operations that may result in route additions, removals, and | |||
| that may result in route additions, removals, and modifications. | modifications. This also includes manipulations via the "static" | |||
| This also includes manipulations via the "static" and/or "direct" | and/or "direct" pseudo-protocols; see Section 5.3.1. | |||
| pseudo-protocols; see Section 5.3.1. | ||||
| For every supported address family, exactly one RIB MUST be marked as | For every supported address family, exactly one RIB MUST be marked as | |||
| the so-called default RIB to which control-plane protocols place | the so-called default RIB to which control-plane protocols place | |||
| their routes by default. | their routes by default. | |||
| Simple router implementations that do not advertise the feature | Simple router implementations that do not advertise the feature | |||
| "multiple-ribs" will typically create one system-controlled RIB per | "multiple-ribs" will typically create one system-controlled RIB per | |||
| supported address family and mark it as the default RIB. | supported address family and mark it as the default RIB. | |||
| More-complex router implementations advertising the "multiple-ribs" | More-complex router implementations advertising the "multiple-ribs" | |||
| skipping to change at page 10, line 33 ¶ | skipping to change at page 10, line 32 ¶ | |||
| the configuration of network interface addresses; see Section 6.2. | the configuration of network interface addresses; see Section 6.2. | |||
| A pseudo-protocol of the type "static" allows for specifying routes | A pseudo-protocol of the type "static" allows for specifying routes | |||
| manually. It MAY be configured in zero or multiple instances, | manually. It MAY be configured in zero or multiple instances, | |||
| although a typical configuration will have exactly one instance. | although a typical configuration will have exactly one instance. | |||
| 5.3.2. Defining New Control-Plane Protocols | 5.3.2. Defining New Control-Plane Protocols | |||
| It is expected that future YANG modules will create data models for | It is expected that future YANG modules will create data models for | |||
| additional control-plane protocol types. Such a new module has to | additional control-plane protocol types. Such a new module has to | |||
| define the protocol-specific configuration and state data, and it has | define the protocol-specific data nodes, and it has to integrate into | |||
| to integrate it into the core routing framework in the following way: | the core routing framework in the following way: | |||
| o A new identity MUST be defined for the control-plane protocol, and | o A new identity MUST be defined for the control-plane protocol, and | |||
| its base identity MUST be set to "rt:control-plane-protocol" or to | its base identity MUST be set to "rt:control-plane-protocol" or to | |||
| an identity derived from "rt:control-plane-protocol". | an identity derived from "rt:control-plane-protocol". | |||
| o Additional route attributes MAY be defined, preferably in one | o Additional route attributes MAY be defined, preferably in one | |||
| place by means of defining a YANG grouping. The new attributes | place by means of defining a YANG grouping. The new attributes | |||
| have to be inserted by augmenting the definitions of the node | have to be inserted by augmenting the definitions of the node | |||
| /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route | /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route | |||
| and possibly other places in the configuration, state data, | and possibly other places in the schema tree. | |||
| notifications, and input/output parameters of actions or RPC | ||||
| operations. | ||||
| o Configuration parameters and/or state data for the new protocol | o Data nodes for the new protocol can be defined by augmenting the | |||
| can be defined by augmenting the "control-plane-protocol" data | "control-plane-protocol" data node under "/routing". | |||
| node under "/routing". | ||||
| By using a "when" statement, the augmented configuration parameters | By using a "when" statement, the augmented data nodes specific to the | |||
| and state data specific to the new protocol SHOULD be made | new protocol SHOULD be made conditional and valid only if the value | |||
| conditional and valid only if the value of "rt:type" or | of "rt:type" or "rt:source-protocol" is equal to (or derived from) | |||
| "rt:source-protocol" is equal to (or derived from) the new protocol's | the new protocol's identity. | |||
| identity. | ||||
| It is also RECOMMENDED that protocol-specific data nodes be | It is also RECOMMENDED that protocol-specific data nodes be | |||
| encapsulated in an appropriately named container with presence. Such | encapsulated in an appropriately named container with presence. Such | |||
| a container may contain mandatory data nodes that are otherwise | a container may contain mandatory data nodes that are otherwise | |||
| forbidden at the top level of an augment. | forbidden at the top level of an augment. | |||
| The above steps are implemented by the example YANG module for the | The above steps are implemented by the example YANG module for the | |||
| Routing Information Protocol (RIP) in Appendix C. | Routing Information Protocol (RIP) in Appendix C. | |||
| 5.4. Parameters of IPv6 Router Advertisements | 5.4. Parameters of IPv6 Router Advertisements | |||
| YANG module "ietf-ipv6-router-advertisements" (Section 9.1), which is | YANG module "ietf-ipv6-router-advertisements" (Section 9.1), which is | |||
| a submodule of the "ietf-ipv6-unicast-routing" module, augments the | a submodule of the "ietf-ipv6-unicast-routing" module, augments the | |||
| configuration and state data of IPv6 interfaces with definitions of | schema tree of IPv6 interfaces with definitions of the following | |||
| the following variables as required by Section 6.2.1 of [RFC4861]: | variables as required by Section 6.2.1 of [RFC4861]: | |||
| o send-advertisements | o send-advertisements | |||
| o max-rtr-adv-interval | o max-rtr-adv-interval | |||
| o min-rtr-adv-interval | o min-rtr-adv-interval | |||
| o managed-flag | o managed-flag | |||
| o other-config-flag | o other-config-flag | |||
| skipping to change at page 13, line 41 ¶ | skipping to change at page 13, line 32 ¶ | |||
| 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 network prefixes or masks on network-layer | IPv6 addresses and network prefixes or masks on network-layer | |||
| interfaces. Configuration of these parameters on an enabled | interfaces. Configuration of these parameters on an enabled | |||
| interface MUST result in an immediate creation of the corresponding | interface MUST result in an immediate creation of the corresponding | |||
| 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 | |||
| <CODE BEGINS> file "ietf-routing@2017-12-20.yang" | <CODE BEGINS> file "ietf-routing@2017-12-22.yang" | |||
| module ietf-routing { | module ietf-routing { | |||
| yang-version "1.1"; | yang-version "1.1"; | |||
| 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"; | |||
| description "A Network Management Datastore Architecture (NDMA) | description | |||
| compatible version of the ietf-interfaces module | "A Network Management Datastore Architecture (NDMA) | |||
| is required."; | compatible version of the ietf-interfaces module | |||
| is required."; | ||||
| } | } | |||
| organization | organization | |||
| "IETF NETMOD - Networking Modeling Working Group"; | "IETF NETMOD - Networking Modeling Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
| WG List: <mailto:rtgwg@ietf.org> | WG List: <mailto:rtgwg@ietf.org> | |||
| Editor: Ladislav Lhotka | Editor: Ladislav Lhotka | |||
| <mailto:lhotka@nic.cz> | <mailto:lhotka@nic.cz> | |||
| Acee Lindem | Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Yingzhen Qu | Yingzhen Qu | |||
| <mailto:yingzhen.qu@huawei.com>"; | <mailto:yingzhen.qu@huawei.com>"; | |||
| skipping to change at page 14, line 41 ¶ | skipping to change at page 14, line 35 ¶ | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set 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 | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| revision 2017-12-20 { | revision 2017-12-22 { | |||
| description | description | |||
| "Network Managment Datastore Architecture (NDMA) Revision"; | "Network Managment Datastore Architecture (NDMA) Revision"; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Routing Management | "RFC XXXX: A YANG Data Model for Routing Management | |||
| (NDMA Version)"; | (NDMA Version)"; | |||
| } | } | |||
| revision 2016-11-04 { | revision 2016-11-04 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| skipping to change at page 15, line 4 ¶ | skipping to change at page 14, line 46 ¶ | |||
| description | description | |||
| "Network Managment Datastore Architecture (NDMA) Revision"; | "Network Managment Datastore Architecture (NDMA) Revision"; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Routing Management | "RFC XXXX: A YANG Data Model for Routing Management | |||
| (NDMA Version)"; | (NDMA Version)"; | |||
| } | } | |||
| revision 2016-11-04 { | revision 2016-11-04 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC 8022: A YANG Data Model for Routing Management"; | "RFC 8022: 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. | |||
| Servers that do not advertise this feature SHOULD provide | Servers that do not advertise this feature SHOULD provide | |||
| exactly one system-controlled RIB per supported address family | exactly one system-controlled RIB per supported address family | |||
| and make it also the default RIB. This RIB then appears as an | and make it also the default RIB. This RIB then appears as an | |||
| entry of the list /routing/ribs/rib."; | entry of the list /routing/ribs/rib."; | |||
| } | } | |||
| feature router-id { | feature router-id { | |||
| description | description | |||
| "This feature indicates that the server supports configuration | "This feature indicates that the server supports of an explicit | |||
| of an explicit 32-bit router ID that is used by some routing | 32-bit router ID that is used by some routing protocols. | |||
| protocols. | ||||
| Servers that do not advertise this feature set a router ID | Servers that do not advertise this feature set a router ID | |||
| algorithmically, usually to one of the configured IPv4 | algorithmically, usually to one of the configured IPv4 | |||
| addresses. However, this algorithm is implementation | addresses. However, this algorithm is implementation | |||
| specific."; | specific."; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| identity address-family { | identity address-family { | |||
| skipping to change at page 19, line 12 ¶ | skipping to change at page 19, line 4 ¶ | |||
| leaf outgoing-interface { | leaf outgoing-interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Name of the outgoing interface."; | "Name of the outgoing interface."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping next-hop-state-content { | grouping next-hop-state-content { | |||
| description | description | |||
| "Generic parameters of next hops in state data."; | "Generic state parameters of next hops."; | |||
| choice next-hop-options { | choice next-hop-options { | |||
| mandatory "true"; | mandatory "true"; | |||
| description | description | |||
| "Options for next hops in state data. | "Options for next hops. | |||
| It is expected that further cases will be added through | It is expected that further cases will be added through | |||
| augments from other modules, e.g., for recursive | augments from other modules, e.g., for recursive | |||
| next hops."; | next hops."; | |||
| case simple-next-hop { | case simple-next-hop { | |||
| description | description | |||
| "This case represents a simple next hop consisting of the | "This case represents a simple next hop consisting of the | |||
| next-hop address and/or outgoing interface. | next-hop address and/or outgoing interface. | |||
| Modules for address families MUST augment this case with a | Modules for address families MUST augment this case with a | |||
| skipping to change at page 20, line 52 ¶ | skipping to change at page 20, line 43 ¶ | |||
| } | } | |||
| /* Data nodes */ | /* Data nodes */ | |||
| container routing { | container routing { | |||
| description | description | |||
| "Configuration parameters for the routing subsystem."; | "Configuration parameters for the routing subsystem."; | |||
| uses router-id { | uses router-id { | |||
| if-feature "router-id"; | if-feature "router-id"; | |||
| description | description | |||
| "Configuration of the global router ID. Routing protocols | "Support for the global router ID. Routing protocols | |||
| that use router ID can use this parameter or override it | that use router ID can use this parameter or override it | |||
| with another value."; | with another value."; | |||
| } | } | |||
| container interfaces { | container interfaces { | |||
| config "false"; | config "false"; | |||
| description | description | |||
| "Network-layer interfaces used for routing."; | "Network-layer interfaces used for routing."; | |||
| leaf-list interface { | leaf-list interface { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Each entry is a reference to the name of a configured | "Each entry is a reference to the name of a configured | |||
| network-layer interface."; | network-layer interface."; | |||
| } | } | |||
| } | } | |||
| container control-plane-protocols { | container control-plane-protocols { | |||
| description | description | |||
| "Configuration of control-plane protocol instances."; | "Support for control-plane protocol instances."; | |||
| list control-plane-protocol { | list control-plane-protocol { | |||
| key "type name"; | key "type name"; | |||
| description | description | |||
| "Each entry contains configuration of a control-plane | "Each entry contains a control-plane protocol instance."; | |||
| protocol instance."; | ||||
| leaf type { | leaf type { | |||
| type identityref { | type identityref { | |||
| base control-plane-protocol; | base control-plane-protocol; | |||
| } | } | |||
| description | description | |||
| "Type of the control-plane protocol - an identity derived | "Type of the control-plane protocol - an identity derived | |||
| from the 'control-plane-protocol' base identity."; | from the 'control-plane-protocol' base identity."; | |||
| } | } | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| skipping to change at page 22, line 5 ¶ | skipping to change at page 21, line 43 ¶ | |||
| "Textual description of the control-plane protocol | "Textual description of the control-plane protocol | |||
| instance."; | instance."; | |||
| } | } | |||
| container static-routes { | container static-routes { | |||
| when "derived-from-or-self(../type, 'rt:static')" { | when "derived-from-or-self(../type, 'rt:static')" { | |||
| description | description | |||
| "This container is only valid for the 'static' routing | "This container is only valid for the 'static' routing | |||
| protocol."; | protocol."; | |||
| } | } | |||
| description | description | |||
| "Configuration of the 'static' pseudo-protocol. | "Support for the 'static' pseudo-protocol. | |||
| Address-family-specific modules augment this node with | Address-family-specific modules augment this node with | |||
| their lists of routes."; | their lists of routes."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container ribs { | container ribs { | |||
| description | description | |||
| "Configuration of RIBs."; | "Support for RIBs."; | |||
| list rib { | list rib { | |||
| key "name"; | key "name"; | |||
| description | description | |||
| "Each entry contains configuration for a RIB identified by | "Each entry contains configuration for a RIB identified by | |||
| the 'name' key. | the 'name' key. | |||
| Entries having the same key as a system-controlled entry | Entries having the same key as a system-controlled entry | |||
| of the list /routing/ribs/rib are used for | of the list /routing/ribs/rib are used for | |||
| configuring parameters of that entry. Other entries | configuring parameters of that entry. Other entries | |||
| define additional user-controlled RIBs."; | define additional user-controlled RIBs."; | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| description | description | |||
| "The name of the RIB. | "The name of the RIB. | |||
| For system-controlled entries, the value of this leaf | For system-controlled entries, the value of this leaf | |||
| must be the same as the name of the corresponding entry | must be the same as the name of the corresponding entry | |||
| in state data. | in operational state. | |||
| For user-controlled entries, an arbitrary name can be | For user-controlled entries, an arbitrary name can be | |||
| used."; | used."; | |||
| } | } | |||
| uses address-family { | uses address-family { | |||
| description | description | |||
| "The address family of the system-controlled RIB."; | "The address family of the system-controlled RIB."; | |||
| } | } | |||
| leaf default-rib { | leaf default-rib { | |||
| skipping to change at page 28, line 7 ¶ | skipping to change at page 27, line 45 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 8. IPv4 Unicast Routing Management YANG Module | 8. IPv4 Unicast Routing Management YANG Module | |||
| <CODE BEGINS> file "ietf-ipv4-unicast-routing@2017-12-20.yang" | <CODE BEGINS> file "ietf-ipv4-unicast-routing@2017-12-22.yang" | |||
| module ietf-ipv4-unicast-routing { | module ietf-ipv4-unicast-routing { | |||
| yang-version "1.1"; | yang-version "1.1"; | |||
| namespace | namespace | |||
| "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"; | "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"; | |||
| prefix "v4ur"; | prefix "v4ur"; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| description "A Network Management Datastore Architecture (NDMA) | description | |||
| compatible version of the ietf-routing module | "A Network Management Datastore Architecture (NDMA) | |||
| is required."; | compatible version of the ietf-routing module | |||
| is required."; | ||||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| organization | organization | |||
| "IETF NETMOD - Networking Modeling Working Group"; | "IETF NETMOD - Networking Modeling Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
| WG List: <mailto:rtgwg@ietf.org> | WG List: <mailto:rtgwg@ietf.org> | |||
| Editor: Ladislav Lhotka | Editor: Ladislav Lhotka | |||
| <mailto:lhotka@nic.cz> | <mailto:lhotka@nic.cz> | |||
| Acee Lindem | Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Yingzhen Qu | Yingzhen Qu | |||
| <mailto:yingzhen.qu@huawei.com>"; | <mailto:yingzhen.qu@huawei.com>"; | |||
| description | description | |||
| "This YANG module augments the 'ietf-routing' module with basic | "This YANG module augments the 'ietf-routing' module with basic | |||
| configuration and state data for IPv4 unicast routing. The | parameters for IPv4 unicast routing. The model fully conforms | |||
| model fully conforms to the Network Management Datastore | to the Network Management Datastore Architecture (NMDA). | |||
| Architecture (NMDA). | ||||
| Copyright (c) 2017 IETF Trust and the persons | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | identified as authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set 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). | |||
| skipping to change at page 29, line 4 ¶ | skipping to change at page 28, line 41 ¶ | |||
| Copyright (c) 2017 IETF Trust and the persons | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | identified as authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set 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 | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| revision 2017-12-20 { | revision 2017-12-22 { | |||
| description | description | |||
| "Network Managment Datastore Architecture (NDMA) Revision"; | "Network Managment Datastore Architecture (NDMA) Revision"; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Routing Management | "RFC XXXX: A YANG Data Model for Routing Management | |||
| (NDMA Version)"; | (NDMA Version)"; | |||
| } | } | |||
| revision 2016-11-04 { | revision 2016-11-04 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC 8022: A YANG Data Model for Routing Management"; | "RFC 8022: A YANG Data Model for Routing Management"; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| skipping to change at page 32, line 4 ¶ | skipping to change at page 31, line 42 ¶ | |||
| "This augment is valid only for IPv4 unicast."; | "This augment is valid only for IPv4 unicast."; | |||
| } | } | |||
| description | description | |||
| "Augment 'next-hop-list' case in the reply to the | "Augment 'next-hop-list' case in the reply to the | |||
| 'active-route' action."; | 'active-route' action."; | |||
| leaf next-hop-address { | leaf next-hop-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 address of the next hop."; | "IPv4 address of the next hop."; | |||
| } | } | |||
| } | } | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:static-routes" { | + "rt:control-plane-protocol/rt:static-routes" { | |||
| description | description | |||
| "This augment defines the configuration of the 'static' | "This augment defines the 'static' pseudo-protocol | |||
| pseudo-protocol with data specific to IPv4 unicast."; | with data specific to IPv4 unicast."; | |||
| container ipv4 { | container ipv4 { | |||
| description | description | |||
| "Configuration of a 'static' pseudo-protocol instance | "Support for a 'static' pseudo-protocol instance | |||
| consists of a list of routes."; | consists of a list of routes."; | |||
| list route { | list route { | |||
| key "destination-prefix"; | key "destination-prefix"; | |||
| description | description | |||
| "A list of static routes."; | "A list of static routes."; | |||
| leaf destination-prefix { | leaf destination-prefix { | |||
| type inet:ipv4-prefix; | type inet:ipv4-prefix; | |||
| mandatory "true"; | mandatory "true"; | |||
| description | description | |||
| "IPv4 destination prefix."; | "IPv4 destination prefix."; | |||
| } | } | |||
| leaf description { | leaf description { | |||
| type string; | type string; | |||
| description | description | |||
| "Textual description of the route."; | "Textual description of the route."; | |||
| } | } | |||
| container next-hop { | container next-hop { | |||
| description | description | |||
| "Configuration of next-hop."; | "Support for next-hop."; | |||
| uses rt:next-hop-content { | uses rt:next-hop-content { | |||
| augment "next-hop-options/simple-next-hop" { | augment "next-hop-options/simple-next-hop" { | |||
| description | description | |||
| "Augment 'simple-next-hop' case in IPv4 static | "Augment 'simple-next-hop' case in IPv4 static | |||
| routes."; | routes."; | |||
| leaf next-hop-address { | leaf next-hop-address { | |||
| type inet:ipv4-address; | type inet:ipv4-address; | |||
| description | description | |||
| "IPv4 address of the next hop."; | "IPv4 address of the next hop."; | |||
| } | } | |||
| skipping to change at page 36, line 7 ¶ | skipping to change at page 35, line 39 ¶ | |||
| status obsolete; | status obsolete; | |||
| description | description | |||
| "IPv4 address of the next hop."; | "IPv4 address of the next hop."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 9. IPv6 Unicast Routing Management YANG Module | 9. IPv6 Unicast Routing Management YANG Module | |||
| <CODE BEGINS> file "ietf-ipv6-unicast-routing@2017-12-20.yang" | <CODE BEGINS> file "ietf-ipv6-unicast-routing@2017-12-22.yang" | |||
| module ietf-ipv6-unicast-routing { | module ietf-ipv6-unicast-routing { | |||
| yang-version "1.1"; | yang-version "1.1"; | |||
| namespace | namespace | |||
| "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing"; | "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing"; | |||
| prefix "v6ur"; | prefix "v6ur"; | |||
| import ietf-routing { | import ietf-routing { | |||
| prefix "rt"; | prefix "rt"; | |||
| description "A Network Management Datastore Architecture (NDMA) | description | |||
| compatible version of the ietf-routing module | "A Network Management Datastore Architecture (NDMA) | |||
| is required."; | compatible version of the ietf-routing module | |||
| is required."; | ||||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| description "A Network Management Datastore Architecture (NDMA) | description | |||
| compatible version of the ietf-interfaces module | "A Network Management Datastore Architecture (NDMA) | |||
| is required."; | compatible version of the ietf-interfaces module | |||
| is required."; | ||||
| } | } | |||
| include ietf-ipv6-router-advertisements { | include ietf-ipv6-router-advertisements { | |||
| revision-date 2017-12-20; | revision-date 2017-12-22; | |||
| } | } | |||
| organization | organization | |||
| "IETF NETMOD - Networking Modeling Working Group"; | "IETF NETMOD - Networking Modeling Working Group"; | |||
| contact | contact | |||
| "WG Web: <http://tools.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
| WG List: <mailto:rtgwg@ietf.org> | WG List: <mailto:rtgwg@ietf.org> | |||
| Editor: Ladislav Lhotka | Editor: Ladislav Lhotka | |||
| <mailto:lhotka@nic.cz> | <mailto:lhotka@nic.cz> | |||
| Acee Lindem | Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Yingzhen Qu | Yingzhen Qu | |||
| <mailto:yingzhen.qu@huawei.com>"; | <mailto:yingzhen.qu@huawei.com>"; | |||
| description | description | |||
| "This YANG module augments the 'ietf-routing' module with basic | "This YANG module augments the 'ietf-routing' module with basic | |||
| configuration and state data for IPv6 unicast routing. The | parameters for IPv6 unicast routing. The model fully conforms | |||
| model fully conforms to the Network Management Datastore | to the Network Management Datastore Architecture (NMDA). | |||
| Architecture (NMDA). | ||||
| Copyright (c) 2017 IETF Trust and the persons | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | identified as authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set 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 | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| revision 2017-12-20 { | revision 2017-12-22 { | |||
| description | description | |||
| "Network Managment Datastore Architecture (NDMA) revision"; | "Network Managment Datastore Architecture (NDMA) revision"; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Routing Management | "RFC XXXX: A YANG Data Model for Routing Management | |||
| (NDMA Version)"; | (NDMA Version)"; | |||
| } | } | |||
| /* Identities */ | /* Identities */ | |||
| revision 2016-11-04 { | revision 2016-11-04 { | |||
| skipping to change at page 40, line 16 ¶ | skipping to change at page 40, line 4 ¶ | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 address of the next hop."; | "IPv6 address of the next hop."; | |||
| } | } | |||
| } | } | |||
| /* Data node augmentations */ | /* Data node augmentations */ | |||
| augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
| + "rt:control-plane-protocol/rt:static-routes" { | + "rt:control-plane-protocol/rt:static-routes" { | |||
| description | description | |||
| "This augment defines the configuration of the 'static' | "This augment defines the Support for the 'static' | |||
| pseudo-protocol with data specific to IPv6 unicast."; | pseudo-protocol with data specific to IPv6 unicast."; | |||
| container ipv6 { | container ipv6 { | |||
| description | description | |||
| "Configuration of a 'static' pseudo-protocol instance | "Support for a 'static' pseudo-protocol instance | |||
| consists of a list of routes."; | consists of a list of routes."; | |||
| list route { | list route { | |||
| key "destination-prefix"; | key "destination-prefix"; | |||
| description | description | |||
| "A list of static routes."; | "A list of static routes."; | |||
| leaf destination-prefix { | leaf destination-prefix { | |||
| type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
| mandatory "true"; | mandatory "true"; | |||
| description | description | |||
| "IPv6 destination prefix."; | "IPv6 destination prefix."; | |||
| } | } | |||
| leaf description { | leaf description { | |||
| type string; | type string; | |||
| description | description | |||
| "Textual description of the route."; | "Textual description of the route."; | |||
| } | } | |||
| container next-hop { | container next-hop { | |||
| description | description | |||
| "Configuration of next-hop."; | "Support for next-hop."; | |||
| uses rt:next-hop-content { | uses rt:next-hop-content { | |||
| augment "next-hop-options/simple-next-hop" { | augment "next-hop-options/simple-next-hop" { | |||
| description | description | |||
| "Augment 'simple-next-hop' case in IPv6 static | "Augment 'simple-next-hop' case in IPv6 static | |||
| routes."; | routes."; | |||
| leaf next-hop-address { | leaf next-hop-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| description | description | |||
| "IPv6 address of the next hop."; | "IPv6 address of the next hop."; | |||
| } | } | |||
| skipping to change at page 44, line 4 ¶ | skipping to change at page 43, line 40 ¶ | |||
| status obsolete; | status obsolete; | |||
| description | description | |||
| "Augment 'next-hop-list' case in the reply to the | "Augment 'next-hop-list' case in the reply to the | |||
| 'active-route' action."; | 'active-route' action."; | |||
| leaf next-hop-address { | leaf next-hop-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| status obsolete; | status obsolete; | |||
| description | description | |||
| "IPv6 address of the next hop."; | "IPv6 address of the next hop."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 9.1. IPv6 Router Advertisements Submodule | 9.1. IPv6 Router Advertisements Submodule | |||
| <CODE BEGINS> file "ietf-ipv6-router-advertisements@2017-12-20.yang" | <CODE BEGINS> file "ietf-ipv6-router-advertisements@2017-12-22.yang" | |||
| submodule ietf-ipv6-router-advertisements { | submodule ietf-ipv6-router-advertisements { | |||
| yang-version "1.1"; | yang-version "1.1"; | |||
| belongs-to ietf-ipv6-unicast-routing { | belongs-to ietf-ipv6-unicast-routing { | |||
| prefix "v6ur"; | prefix "v6ur"; | |||
| } | } | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix "inet"; | prefix "inet"; | |||
| } | } | |||
| import ietf-interfaces { | import ietf-interfaces { | |||
| prefix "if"; | prefix "if"; | |||
| description "A Network Management Datastore Architecture (NDMA) | description | |||
| compatible version of the ietf-interfaces module | "A Network Management Datastore Architecture (NDMA) | |||
| is required."; | compatible version of the ietf-interfaces module | |||
| is required."; | ||||
| } | } | |||
| import ietf-ip { | import ietf-ip { | |||
| prefix "ip"; | prefix "ip"; | |||
| description "A Network Management Datastore Architecture (NDMA) | description | |||
| compatible version of the ietf-ip module is | "A Network Management Datastore Architecture (NDMA) | |||
| required."; | compatible version of the ietf-ip module is | |||
| required."; | ||||
| } | } | |||
| 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:rtgwg@ietf.org> | WG List: <mailto:rtgwg@ietf.org> | |||
| Editor: Ladislav Lhotka | Editor: Ladislav Lhotka | |||
| <mailto:lhotka@nic.cz> | <mailto:lhotka@nic.cz> | |||
| Acee Lindem | Acee Lindem | |||
| <mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
| Yingzhen Qu | Yingzhen Qu | |||
| <mailto:yingzhen.qu@huawei.com>"; | <mailto:yingzhen.qu@huawei.com>"; | |||
| description | description | |||
| "This YANG module augments the 'ietf-ip' module with | "This YANG module augments the 'ietf-ip' module with | |||
| configuration and state data of IPv6 router advertisements. | parameters for IPv6 router advertisements. The model fully | |||
| conforms to the Network Management Datastore | ||||
| The model fully conforms to the Network Management Datastore | ||||
| Architecture (NMDA). | Architecture (NMDA). | |||
| Copyright (c) 2017 IETF Trust and the persons | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | identified as authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set 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 | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| reference | reference | |||
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)."; | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)."; | |||
| revision 2017-12-20 { | revision 2017-12-22 { | |||
| description | description | |||
| "Network Managment Datastore Architecture (NDMA) Revision"; | "Network Managment Datastore Architecture (NDMA) Revision"; | |||
| reference | reference | |||
| "RFC XXXX: A YANG Data Model for Routing Management | "RFC XXXX: A YANG Data Model for Routing Management | |||
| (NDMA Version)"; | (NDMA Version)"; | |||
| } | } | |||
| revision 2016-11-04 { | revision 2016-11-04 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference | |||
| "RFC 8022: A YANG Data Model for Routing Management"; | "RFC 8022: A YANG Data Model for Routing Management"; | |||
| } | } | |||
| augment "/if:interfaces/if:interface/ip:ipv6" { | augment "/if:interfaces/if:interface/ip:ipv6" { | |||
| description | description | |||
| "Augment interface configuration with parameters of IPv6 | "Augment interface configuration with parameters of IPv6 | |||
| router advertisements."; | router advertisements."; | |||
| container ipv6-router-advertisements { | container ipv6-router-advertisements { | |||
| description | description | |||
| "Configuration of IPv6 Router Advertisements."; | "Support for IPv6 Router Advertisements."; | |||
| leaf send-advertisements { | leaf send-advertisements { | |||
| type boolean; | type boolean; | |||
| default "false"; | default "false"; | |||
| description | description | |||
| "A flag indicating whether or not the router sends | "A flag indicating whether or not the router sends | |||
| periodic Router Advertisements and responds to | periodic Router Advertisements and responds to | |||
| Router Solicitations."; | Router Solicitations."; | |||
| reference | reference | |||
| "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - | "RFC 4861: Neighbor Discovery for IP version 6 (IPv6) - | |||
| AdvSendAdvertisements."; | AdvSendAdvertisements."; | |||
| skipping to change at page 48, line 47 ¶ | skipping to change at page 48, line 38 ¶ | |||
| different link layers. | different link layers. | |||
| If this parameter is not configured, the device SHOULD | If this parameter is not configured, the device SHOULD | |||
| use a value of 3 * max-rtr-adv-interval."; | use a value of 3 * max-rtr-adv-interval."; | |||
| 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 | |||
| "Configuration of prefixes to be placed in Prefix | "Support for prefixes to be placed in Prefix | |||
| Information options in Router Advertisement messages | Information options in Router Advertisement messages | |||
| sent from the interface. | sent from the interface. | |||
| Prefixes that are advertised by default but do not | Prefixes that are advertised by default but do not | |||
| have their entries in the child 'prefix' list are | have their entries in the child 'prefix' list are | |||
| advertised with the default values of all parameters. | advertised with the default values of all parameters. | |||
| The link-local prefix SHOULD NOT be included in the | The link-local prefix SHOULD NOT be included in the | |||
| list of advertised prefixes."; | 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 | |||
| "Configuration of an advertised prefix entry."; | "Support for an advertised prefix entry."; | |||
| leaf prefix-spec { | leaf prefix-spec { | |||
| type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
| description | description | |||
| "IPv6 address prefix."; | "IPv6 address prefix."; | |||
| } | } | |||
| choice control-adv-prefixes { | choice control-adv-prefixes { | |||
| default "advertise"; | default "advertise"; | |||
| description | description | |||
| "Either the prefix is explicitly removed from the | "Either the prefix is explicitly removed from the | |||
| set of advertised prefixes, or the parameters with | set of advertised prefixes, or the parameters with | |||
| skipping to change at page 55, line 4 ¶ | skipping to change at page 54, line 40 ¶ | |||
| Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
| XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
| [RFC8022] registered the following YANG modules in the "YANG Module | [RFC8022] registered the following YANG modules in the "YANG Module | |||
| Names" registry [RFC6020]: | Names" registry [RFC6020]: | |||
| Name: ietf-routing | Name: ietf-routing | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-routing | Namespace: urn:ietf:params:xml:ns:yang:ietf-routing | |||
| Prefix: rt | Prefix: rt | |||
| Reference: RFC 8022 | Reference: RFC 8022 | |||
| Name: ietf-ipv4-unicast-routing | Name: 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 | |||
| Reference: RFC 8022 | Reference: RFC 8022 | |||
| Name: ietf-ipv6-unicast-routing | Name: 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 | |||
| Reference: RFC 8022 | Reference: RFC 8022 | |||
| This document registers the following YANG submodule in the "YANG | This document registers the following YANG submodule in the "YANG | |||
| Module Names" registry [RFC6020]: | Module Names" registry [RFC6020]: | |||
| Name: ietf-ipv6-router-advertisements | Name: ietf-ipv6-router-advertisements | |||
| Module: ietf-ipv6-unicast-routing | Module: ietf-ipv6-unicast-routing | |||
| Reference: RFC 8022 | Reference: RFC 8022 | |||
| 11. Security Considerations | 11. Security Considerations | |||
| The YANG module specified in this document defines a schedma for data | The YANG modules specified in this document define a schema for data | |||
| that is designed to be accessed via network management protocols such | that is designed to be accessed via network management protocols such | |||
| as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
| is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
| transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
| is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| [RFC5246]. | [RFC5246]. | |||
| The NETCONF access control model [RFC6536] provides the means to | The NETCONF access control model [RFC6536] provides the means to | |||
| restrict access for particular NETCONF or RESTCONF users to a | restrict access for particular NETCONF or RESTCONF users to a | |||
| preconfigured subset of all available NETCONF or RESTCONF protocol | preconfigured subset of all available NETCONF or RESTCONF protocol | |||
| skipping to change at page 67, line 22 ¶ | skipping to change at page 67, line 22 ¶ | |||
| default "30"; | default "30"; | |||
| description | description | |||
| "Time interval between periodic updates."; | "Time interval between periodic updates."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Appendix D. Data Tree Example | Appendix D. Data Tree Example | |||
| This section contains an example of an instance data tree in the JSON | This section contains an example of an instance data tree from the | |||
| encoding [RFC7951], containing both configuration and state data. | operational state, in the JSON encoding [RFC7951]. The data conforms | |||
| The data conforms to a data model that is defined by the following | to a data model that is defined by the following YANG library | |||
| YANG library specification [RFC7895]: | specification [RFC7895]: | |||
| { | { | |||
| "ietf-yang-library:modules-state": { | "ietf-yang-library:modules-state": { | |||
| "module-set-id": "c2e1f54169aa7f36e1a6e8d0865d441d3600f9c4", | "module-set-id": "c2e1f54169aa7f36e1a6e8d0865d441d3600f9c4", | |||
| "module": [ | "module": [ | |||
| { | { | |||
| "name": "ietf-routing", | "name": "ietf-routing", | |||
| "revision": "2017-12-20", | "revision": "2017-12-22", | |||
| "feature": [ | "feature": [ | |||
| "multiple-ribs", | "multiple-ribs", | |||
| "router-id" | "router-id" | |||
| ], | ], | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing", | "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-ipv4-unicast-routing", | "name": "ietf-ipv4-unicast-routing", | |||
| "revision": "2017-12-20", | "revision": "2017-12-22", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing", | "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-ipv6-unicast-routing", | "name": "ietf-ipv6-unicast-routing", | |||
| "revision": "2017-12-20", | "revision": "2017-12-22", | |||
| "namespace": | "namespace": | |||
| "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing-3", | "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing", | |||
| "conformance-type": "implement" | "conformance-type": "implement", | |||
| "submodule": [ | ||||
| { | ||||
| "name": "ietf-ipv6-router-advertisements", | ||||
| "revision": "2017-12-22" | ||||
| } | ||||
| ] | ||||
| }, | }, | |||
| { | { | |||
| "name": "ietf-interfaces", | "name": "ietf-interfaces", | |||
| "revision": "2017-12-16", | "revision": "2017-12-16", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-interfaces", | "namespace": "urn:ietf:params:xml:ns:yang:ietf-interfaces", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-inet-types", | "name": "ietf-inet-types", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types", | "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types", | |||
| skipping to change at page 68, line 28 ¶ | skipping to change at page 68, line 34 ¶ | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-yang-types", | "name": "ietf-yang-types", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types", | "namespace": "urn:ietf:params:xml:ns:yang:ietf-yang-types", | |||
| "revision": "2013-07-15", | "revision": "2013-07-15", | |||
| "conformance-type": "import" | "conformance-type": "import" | |||
| }, | }, | |||
| { | { | |||
| "name": "iana-if-type", | "name": "iana-if-type", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:iana-if-type", | "namespace": "urn:ietf:params:xml:ns:yang:iana-if-type", | |||
| "revision": "", | "revision": "2014-05-08", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| }, | }, | |||
| { | { | |||
| "name": "ietf-ip", | "name": "ietf-ip", | |||
| "revision": "2017-12-16", | "revision": "2017-12-16", | |||
| "namespace": "urn:ietf:params:xml:ns:yang:ietf-ip", | "namespace": "urn:ietf:params:xml:ns:yang:ietf-ip", | |||
| "conformance-type": "implement" | "conformance-type": "implement" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| skipping to change at page 69, line 49 ¶ | skipping to change at page 69, line 49 ¶ | |||
| "discontinuity-time": "2015-10-24T17:11:27+02:00" | "discontinuity-time": "2015-10-24T17:11:27+02:00" | |||
| }, | }, | |||
| "ietf-ip:ipv4": { | "ietf-ip:ipv4": { | |||
| "forwarding": true, | "forwarding": true, | |||
| "mtu": 1500, | "mtu": 1500, | |||
| "address": [ | "address": [ | |||
| { | { | |||
| "ip": "192.0.2.1", | "ip": "192.0.2.1", | |||
| "prefix-length": 24 | "prefix-length": 24 | |||
| } | } | |||
| ], | ] | |||
| }, | }, | |||
| "ietf-ip:ipv6": { | "ietf-ip:ipv6": { | |||
| "forwarding": true, | "forwarding": true, | |||
| "mtu": 1500, | "mtu": 1500, | |||
| "address": [ | "address": [ | |||
| { | { | |||
| "ip": "2001:0db8:0:1::1", | "ip": "2001:0db8:0:1::1", | |||
| "prefix-length": 64 | "prefix-length": 64 | |||
| } | } | |||
| ], | ], | |||
| "autoconf": { | "autoconf": { | |||
| "create-global-addresses": false | "create-global-addresses": false | |||
| } | }, | |||
| "ietf-ipv6-unicast-routing: | "ietf-ipv6-unicast-routing:ipv6-router-advertisements": { | |||
| ipv6-router-advertisements": { | ||||
| "send-advertisements": false | "send-advertisements": false | |||
| } | } | |||
| } | } | |||
| }, | }, | |||
| { | { | |||
| "name": "eth1", | "name": "eth1", | |||
| "type": "iana-if-type:ethernetCsmacd", | "type": "iana-if-type:ethernetCsmacd", | |||
| "description": "Interface to the internal network.", | "description": "Interface to the internal network.", | |||
| "phys-address": "00:0C:42:E5:B1:EA", | "phys-address": "00:0C:42:E5:B1:EA", | |||
| "oper-status": "up", | "oper-status": "up", | |||
| skipping to change at page 70, line 37 ¶ | skipping to change at page 70, line 36 ¶ | |||
| "discontinuity-time": "2015-10-24T17:11:29+02:00" | "discontinuity-time": "2015-10-24T17:11:29+02:00" | |||
| }, | }, | |||
| "ietf-ip:ipv4": { | "ietf-ip:ipv4": { | |||
| "forwarding": true, | "forwarding": true, | |||
| "mtu": 1500, | "mtu": 1500, | |||
| "address": [ | "address": [ | |||
| { | { | |||
| "ip": "198.51.100.1", | "ip": "198.51.100.1", | |||
| "prefix-length": 24 | "prefix-length": 24 | |||
| } | } | |||
| ], | ] | |||
| }, | }, | |||
| "ietf-ip:ipv6": { | "ietf-ip:ipv6": { | |||
| "forwarding": true, | "forwarding": true, | |||
| "mtu": 1500, | "mtu": 1500, | |||
| "address": [ | "address": [ | |||
| { | { | |||
| "ip": "2001:0db8:0:2::1", | "ip": "2001:0db8:0:2::1", | |||
| "prefix-length": 64 | "prefix-length": 64 | |||
| } | } | |||
| ], | ], | |||
| "autoconf": { | "autoconf": { | |||
| "create-global-addresses": false | "create-global-addresses": false | |||
| }, | }, | |||
| "ietf-ipv6-unicast-routing: | "ietf-ipv6-unicast-routing:ipv6-router-advertisements": { | |||
| ipv6-router-advertisements": { | ||||
| "send-advertisements": true, | "send-advertisements": true, | |||
| "prefix-list": { | "prefix-list": { | |||
| "prefix": [ | "prefix": [ | |||
| { | { | |||
| "prefix-spec": "2001:db8:0:2::/64" | "prefix-spec": "2001:db8:0:2::/64" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| skipping to change at page 72, line 4 ¶ | skipping to change at page 71, line 50 ¶ | |||
| "destination-prefix": "::/0", | "destination-prefix": "::/0", | |||
| "next-hop": { | "next-hop": { | |||
| "next-hop-address": "2001:db8:0:1::2" | "next-hop-address": "2001:db8:0:1::2" | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| }, | ||||
| } | ||||
| "ribs": { | "ribs": { | |||
| "rib": [ | "rib": [ | |||
| { | { | |||
| "name": "ipv4-master", | "name": "ipv4-master", | |||
| "address-family": | "address-family": | |||
| "ietf-ipv4-unicast-routing:ipv4-unicast", | "ietf-ipv4-unicast-routing:ipv4-unicast", | |||
| "default-rib": true, | "default-rib": true, | |||
| "routes": { | "routes": { | |||
| "route": [ | "route": [ | |||
| { | { | |||
| skipping to change at page 73, line 44 ¶ | skipping to change at page 73, line 41 ¶ | |||
| }, | }, | |||
| "source-protocol": "ietf-routing:static", | "source-protocol": "ietf-routing:static", | |||
| "route-preference": 5, | "route-preference": 5, | |||
| "last-updated": "2015-10-24T18:02:45+02:00" | "last-updated": "2015-10-24T18:02:45+02:00" | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| }, | } | |||
| } | } | |||
| Appendix E. NETCONF Get Data Reply Example | Appendix E. NETCONF Get Data Reply Example | |||
| This section gives an example of an XML reply to the NETCONF <get- | This section gives an example of an XML reply to the NETCONF <get- | |||
| data> request for <operational> for a device that implements the | data> request for <operational> for a device that implements the | |||
| example data models above. | example data models above. | |||
| <rpc-reply | <rpc-reply | |||
| xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" | xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" | |||
| End of changes. 82 change blocks. | ||||
| 140 lines changed or deleted | 135 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/ | ||||