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 23 skipping to change at page 15, line 15
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. 81 change blocks. 
139 lines changed or deleted 135 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/