draft-ietf-netmod-rfc8022bis-02.txt | draft-ietf-netmod-rfc8022bis-03.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 3, 2018 Cisco Systems | Expires: June 14, 2018 Cisco Systems | |||
Y. Qu | Y. Qu | |||
Futurewei Technologies, Inc. | Futurewei Technologies, Inc. | |||
November 30, 2017 | December 11, 2017 | |||
A YANG Data Model for Routing Management (NDMA Version) | A YANG Data Model for Routing Management (NDMA Version) | |||
draft-ietf-netmod-rfc8022bis-02 | draft-ietf-netmod-rfc8022bis-03 | |||
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, | |||
skipping to change at page 1, line 45 ¶ | skipping to change at page 1, line 45 ¶ | |||
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 3, 2018. | This Internet-Draft will expire on June 14, 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 45 ¶ | skipping to change at page 2, line 45 ¶ | |||
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" . . . . . . . . . . . . . . . . . . . . 13 | 6.2. Module "ietf-ip" . . . . . . . . . . . . . . . . . . . . 13 | |||
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 . . . . . . . . . 28 | |||
9. IPv6 Unicast Routing Management YANG Module . . . . . . . . . 35 | 9. IPv6 Unicast Routing Management YANG Module . . . . . . . . . 35 | |||
9.1. IPv6 Router Advertisements Submodule . . . . . . . . . . 43 | 9.1. IPv6 Router Advertisements Submodule . . . . . . . . . . 43 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 55 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 54 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 55 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 55 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 56 | 12.2. Informative References . . . . . . . . . . . . . . . . . 56 | |||
Appendix A. The Complete Data Trees . . . . . . . . . . . . . . 58 | Appendix A. The Complete Data Trees . . . . . . . . . . . . . . 58 | |||
Appendix B. Minimum Implementation . . . . . . . . . . . . . . . 61 | Appendix B. Minimum Implementation . . . . . . . . . . . . . . . 61 | |||
Appendix C. Example: Adding a New Control-Plane Protocol . . . . 61 | Appendix C. Example: Adding a New Control-Plane Protocol . . . . 61 | |||
Appendix D. Data Tree Example . . . . . . . . . . . . . . . . . 64 | Appendix D. Data Tree Example . . . . . . . . . . . . . . . . . 64 | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 72 | Appendix E. NETCONF Get Data Reply Example . . . . . . . . . . . 70 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 72 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 73 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 73 | ||||
1. Introduction | 1. Introduction | |||
This document contains a specification of the following YANG modules: | This document contains a specification of the following YANG modules: | |||
o The "ietf-routing" module provides generic components of a routing | o The "ietf-routing" module provides generic components of a routing | |||
data model. | data model. | |||
o The "ietf-ipv4-unicast-routing" module augments the "ietf-routing" | o The "ietf-ipv4-unicast-routing" module augments the "ietf-routing" | |||
module with additional data specific to IPv4 unicast. | module with additional data specific to IPv4 unicast. | |||
skipping to change at page 13, line 46 ¶ | skipping to change at page 13, line 46 ¶ | |||
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-11-30.yang" | <CODE BEGINS> file "ietf-routing@2017-12-11.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 { | |||
skipping to change at page 14, line 42 ¶ | skipping to change at page 14, line 42 ¶ | |||
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-10-30 { | revision 2017-12-11 { | |||
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 28, line 7 ¶ | skipping to change at page 28, line 7 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<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-11-30.yang" | <CODE BEGINS> file "ietf-ipv4-unicast-routing@2017-12-11.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"; | |||
} | } | |||
skipping to change at page 28, line 52 ¶ | skipping to change at page 28, line 52 ¶ | |||
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-10-14 { | revision 2017-12-11 { | |||
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 35, line 45 ¶ | skipping to change at page 35, line 45 ¶ | |||
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-11-30.yang" | <CODE BEGINS> file "ietf-ipv6-unicast-routing@2017-12-11.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"; | |||
} | } | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix "inet"; | prefix "inet"; | |||
} | } | |||
include ietf-ipv6-router-advertisements { | include ietf-ipv6-router-advertisements { | |||
revision-date 2017-10-14; | revision-date 2017-12-11; | |||
} | } | |||
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> | |||
skipping to change at page 36, line 47 ¶ | skipping to change at page 36, line 47 ¶ | |||
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-10-14 { | revision 2017-12-11 { | |||
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 43, line 41 ¶ | skipping to change at page 43, line 41 ¶ | |||
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-11-30.yang" | <CODE BEGINS> file "ietf-ipv6-router-advertisements@2017-12-11.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"; | |||
} | } | |||
skipping to change at page 44, line 15 ¶ | skipping to change at page 44, line 15 ¶ | |||
prefix "if"; | prefix "if"; | |||
} | } | |||
import ietf-ip { | import ietf-ip { | |||
prefix "ip"; | prefix "ip"; | |||
} | } | |||
organization | organization | |||
"IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
WG List: <mailto:netmod@ietf.org> | WG List: <mailto:rtgwg@ietf.org> | |||
WG Chair: Lou Berger | ||||
<mailto:lberger@labn.net> | ||||
WG Chair: Kent Watsen | ||||
<mailto:kwatsen@juniper.net> | ||||
Editor: Ladislav Lhotka | Editor: Ladislav Lhotka | |||
<mailto:lhotka@nic.cz> | <mailto:lhotka@nic.cz> | |||
Acee Lindem | ||||
Editor: Acee Lindem | ||||
<mailto:acee@cisco.com> | <mailto:acee@cisco.com> | |||
Yingzhen Qu | ||||
Editor: 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. | configuration and state data of IPv6 router advertisements. | |||
Copyright (c) 2017 IETF Trust and the persons identified as | Copyright (c) 2017 IETF Trust and the persons | |||
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). | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | This version of this YANG module is part of RFC XXXX; see | |||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and | the RFC itself for full legal notices."; | |||
'OPTIONAL' in the module text are to be interpreted as | ||||
described in RFC 2119. | ||||
This version of this YANG module is part of RFC 8022; | ||||
see 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-10-14 { | revision 2017-12-11 { | |||
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 | |||
skipping to change at page 64, line 16 ¶ | skipping to change at page 64, line 16 ¶ | |||
} | } | |||
} | } | |||
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 in the JSON | |||
encoding [RFC7951], containing both configuration and state data. | encoding [RFC7951], containing both configuration and state data. | |||
The data conforms to a data model that is defined by the following | The data conforms to a data model that is defined by the following | |||
YANG library specification [RFC7895]: | YANG library 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-09-13", | "revision": "2017-12-11", | |||
"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-09-13", | "revision": "2017-12-11", | |||
"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-09-13", | "revision": "2017-12-11", | |||
"namespace": | "namespace": | |||
"urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing-3", | "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing-3", | |||
"conformance-type": "implement" | "conformance-type": "implement" | |||
}, | }, | |||
{ | { | |||
"name": "ietf-interfaces", | "name": "ietf-interfaces", | |||
"revision": "2014-05-08", | "revision": "2017-08-17", | |||
"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", | |||
"revision": "2013-07-15", | "revision": "2013-07-15", | |||
"conformance-type": "import" | "conformance-type": "import" | |||
}, | }, | |||
{ | { | |||
"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": "", | |||
"conformance-type": "implement" | "conformance-type": "implement" | |||
}, | }, | |||
{ | { | |||
"name": "ietf-ip", | "name": "ietf-ip", | |||
"revision": "2014-06-16", | "revision": "2014-06-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" | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
A simple network setup as shown in Figure 2 is assumed: router "A" | A simple network setup as shown in Figure 2 is assumed: router "A" | |||
uses static default routes with the "ISP" router as the next hop. | uses static default routes with the "ISP" router as the next hop. | |||
IPv6 router advertisements are configured only on the "eth1" | IPv6 router advertisements are configured only on the "eth1" | |||
interface and disabled on the upstream "eth0" interface. | interface and disabled on the upstream "eth0" interface. | |||
+-----------------+ | +-----------------+ | |||
| | | | | | |||
| Router ISP | | | Router ISP | | |||
skipping to change at page 66, line 36 ¶ | skipping to change at page 66, line 36 ¶ | |||
The instance data tree could then be as follows: | The instance data tree could then be as follows: | |||
{ | { | |||
"ietf-interfaces:interfaces": { | "ietf-interfaces:interfaces": { | |||
"interface": [ | "interface": [ | |||
{ | { | |||
"name": "eth0", | "name": "eth0", | |||
"type": "iana-if-type:ethernetCsmacd", | "type": "iana-if-type:ethernetCsmacd", | |||
"description": "Uplink to ISP.", | "description": "Uplink to ISP.", | |||
"ietf-ip:ipv4": { | ||||
"address": [ | ||||
{ | ||||
"ip": "192.0.2.1", | ||||
"prefix-length": 24 | ||||
} | ||||
], | ||||
"forwarding": true | ||||
}, | ||||
"ietf-ip:ipv6": { | ||||
"address": [ | ||||
{ | ||||
"ip": "2001:0db8:0:1::1", | ||||
"prefix-length": 64 | ||||
} | ||||
], | ||||
"forwarding": true, | ||||
"autoconf": { | ||||
"create-global-addresses": false | ||||
} | ||||
} | ||||
}, | ||||
{ | ||||
"name": "eth1", | ||||
"type": "iana-if-type:ethernetCsmacd", | ||||
"description": "Interface to the internal network.", | ||||
"ietf-ip:ipv4": { | ||||
"address": [ | ||||
{ | ||||
"ip": "198.51.100.1", | ||||
"prefix-length": 24 | ||||
} | ||||
], | ||||
"forwarding": true | ||||
}, | ||||
"ietf-ip:ipv6": { | ||||
"address": [ | ||||
{ | ||||
"ip": "2001:0db8:0:2::1", | ||||
"prefix-length": 64 | ||||
} | ||||
], | ||||
"forwarding": true, | ||||
"autoconf": { | ||||
"create-global-addresses": false | ||||
}, | ||||
"ietf-ipv6-unicast-routing: | ||||
ipv6-router-advertisements": { | ||||
"send-advertisements": true | ||||
} | ||||
} | ||||
} | ||||
] | ||||
}, | ||||
"ietf-interfaces:interfaces-state": { | ||||
"interface": [ | ||||
{ | ||||
"name": "eth0", | ||||
"type": "iana-if-type:ethernetCsmacd", | ||||
"phys-address": "00:0C:42:E5:B1:E9", | "phys-address": "00:0C:42:E5:B1:E9", | |||
"oper-status": "up", | "oper-status": "up", | |||
"statistics": { | "statistics": { | |||
"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": { | ||||
"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.", | ||||
"phys-address": "00:0C:42:E5:B1:EA", | "phys-address": "00:0C:42:E5:B1:EA", | |||
"oper-status": "up", | "oper-status": "up", | |||
"statistics": { | "statistics": { | |||
"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": { | ||||
"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 70, line 4 ¶ | skipping to change at page 68, line 50 ¶ | |||
"ietf-ipv6-unicast-routing:ipv6": { | "ietf-ipv6-unicast-routing:ipv6": { | |||
"route": [ | "route": [ | |||
{ | { | |||
"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": [ | |||
{ | { | |||
"ietf-ipv4-unicast-routing:destination-prefix": | "ietf-ipv4-unicast-routing:destination-prefix": | |||
skipping to change at page 72, line 5 ¶ | skipping to change at page 70, line 47 ¶ | |||
"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 | ||||
This section gives an example of an XML reply to the NETCONF <get- | ||||
data> request for <operational> for a device that implements the | ||||
example data models above. | ||||
<rpc-reply | ||||
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" | ||||
message-id="101"> | ||||
<data> | ||||
<routing | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-routing" | ||||
xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"> | ||||
<router-id or:origin="or:intended">192.0.2.1</router-id> | ||||
<control-plane-protocols or:origin="or:intended"> | ||||
<control-plane-protocl> | ||||
<type>ietf-routing:static</type> | ||||
<name></name> | ||||
<static-routes> | ||||
<ietf-ipv4-unicast-routing:ipv4> | ||||
<route> | ||||
<destination-prefix>0.0.0.0/0</destination-prefix> | ||||
<next-hop> | ||||
<next-hop-address>192.0.2.2</next-hop-address> | ||||
</next-hop> | ||||
</route> | ||||
</ietf-ipv4-unicast-routing:ipv4> | ||||
<ietf-ipv6-unicast-routing:ipv6> | ||||
<route> | ||||
<destination-prefix>::/0</destination-prefix> | ||||
<next-hop> | ||||
<next-hop-address>2001:db8:0:1::2</next-hop-address> | ||||
</next-hop> | ||||
</route> | ||||
</ietf-ipv6-unicast-routing:ipv6> | ||||
</static-routes> | ||||
</control-plane-protocl> | ||||
</control-plane-protocols> | ||||
<ribs> | ||||
<rib or:origin="or:intended"> | ||||
<name>ipv4-master</name> | ||||
<address-family> | ||||
ietf-ipv4-unicast-routing:ipv4-unicast | ||||
</address-family> | ||||
<default-rib>true</default-rib> | ||||
<routes> | ||||
<route> | ||||
<ietf-ipv4-unicast-routing:destination-prefix> | ||||
192.0.2.1/24 | ||||
</ietf-ipv4-unicast-routing:destination-prefix> | ||||
<next-hop> | ||||
<outgoing-interface>eth0</outgoing-interface> | ||||
</next-hop> | ||||
<route-preference>0</route-preference> | ||||
<source-protocol>ietf-routing:direct</source-protocol> | ||||
<last-updated>2015-10-24T17:11:27+02:00</last-updated> | ||||
</route> | ||||
<route> | ||||
<ietf-ipv4-unicast-routing:destination-prefix> | ||||
98.51.100.0/24 | ||||
</ietf-ipv4-unicast-routing:destination-prefix> | ||||
<next-hop> | ||||
<outgoing-interface>eth1</outgoing-interface> | ||||
</next-hop> | ||||
<route-preference>0</route-preference> | ||||
<source-protocol>ietf-routing:direct</source-protocol> | ||||
<last-updated>2015-10-24T17:11:27+02:00</last-updated> | ||||
</route> | ||||
<route> | ||||
<ietf-ipv4-unicast-routing:destination-prefix>0.0.0.0/0 | ||||
</ietf-ipv4-unicast-routing:destination-prefix> | ||||
<next-hop> | ||||
<ietf-ipv4-unicast-routing:next-hop-address>192.0.2.2 | ||||
</ietf-ipv4-unicast-routing:next-hop-address> | ||||
</next-hop> | ||||
<route-preference>5</route-preference> | ||||
<source-protocol>ietf-routing:static</source-protocol> | ||||
<last-updated>2015-10-24T18:02:45+02:00</last-updated> | ||||
</route> | ||||
</routes> | ||||
</rib> | ||||
<rib or:origin="or:intended"> | ||||
<name>ipv6-master</name> | ||||
<address-family> | ||||
ietf-ipv6-unicast-routing:ipv6-unicast | ||||
</address-family> | ||||
<default-rib>true</default-rib> | ||||
<routes> | ||||
<route> | ||||
<ietf-ipv6-unicast-routing:destination-prefix> | ||||
2001:db8:0:1::/64 | ||||
</ietf-ipv6-unicast-routing:destination-prefix> | ||||
<next-hop> | ||||
<outgoing-interface>eth0</outgoing-interface> | ||||
</next-hop> | ||||
<route-preference>0</route-preference> | ||||
<source-protocol>ietf-routing:direct</source-protocol> | ||||
<last-updated>2015-10-24T17:11:27+02:00</last-updated> | ||||
</route> | ||||
<route> | ||||
<ietf-ipv6-unicast-routing:destination-prefix> | ||||
2001:db8:0:2::/64 | ||||
</ietf-ipv6-unicast-routing:destination-prefix> | ||||
<next-hop> | ||||
<outgoing-interface>eth1</outgoing-interface> | ||||
</next-hop> | ||||
<route-preference>0</route-preference> | ||||
<source-protocol>ietf-routing:direct</source-protocol> | ||||
<last-updated>2015-10-24T17:11:27+02:00</last-updated> | ||||
</route> | ||||
<route> | ||||
<ietf-ipv6-unicast-routing:destination-prefix>::/0 | ||||
</ietf-ipv6-unicast-routing:destination-prefix> | ||||
<next-hop> | ||||
<ietf-ipv6-unicast-routing:next-hop-address> | ||||
2001:db8:0:1::2 | ||||
</ietf-ipv6-unicast-routing:next-hop-address> | ||||
</next-hop> | ||||
<route-preference>5</route-preference> | ||||
<source-protocol>ietf-routing:static</source-protocol> | ||||
<last-updated>2015-10-24T18:02:45+02:00</last-updated> | ||||
</route> | ||||
</routes> | ||||
</rib> | ||||
</ribs> | ||||
</routing> | ||||
</data> | ||||
</rpc-reply> | ||||
Acknowledgments | Acknowledgments | |||
The authors wish to thank Nitin Bahadur, Martin Bjorklund, Dean | The authors wish to thank Nitin Bahadur, Martin Bjorklund, Dean | |||
Bogdanovic, Jeff Haas, Joel Halpern, Wes Hardaker, Sriganesh Kini, | Bogdanovic, Jeff Haas, Joel Halpern, Wes Hardaker, Sriganesh Kini, | |||
David Lamparter, Andrew McGregor, Jan Medved, Xiang Li, Stephane | David Lamparter, Andrew McGregor, Jan Medved, Xiang Li, Stephane | |||
Litkowski, Thomas Morin, Tom Petch, Yingzhen Qu, Bruno Rijsman, | Litkowski, Thomas Morin, Tom Petch, Yingzhen Qu, Bruno Rijsman, | |||
Juergen Schoenwaelder, Phil Shafer, Dave Thaler, Yi Yang, | Juergen Schoenwaelder, Phil Shafer, Dave Thaler, Yi Yang, | |||
Derek Man-Kit Yeung, Jeffrey Zhang, Vladimir Vassilev, and Rob Wilton | Derek Man-Kit Yeung, Jeffrey Zhang, Vladimir Vassilev, and Rob Wilton | |||
for their helpful comments and suggestions. | for their helpful comments and suggestions. | |||
End of changes. 33 change blocks. | ||||
162 lines changed or deleted | 229 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/ |