--- 1/draft-ietf-netmod-rfc8022bis-02.txt 2017-12-11 11:14:07.214458168 -0800 +++ 2/draft-ietf-netmod-rfc8022bis-03.txt 2017-12-11 11:14:07.342461175 -0800 @@ -1,21 +1,21 @@ NETMOD Working Group L. Lhotka Internet-Draft CZ.NIC Intended status: Standards Track A. Lindem -Expires: June 3, 2018 Cisco Systems +Expires: June 14, 2018 Cisco Systems Y. Qu Futurewei Technologies, Inc. - November 30, 2017 + December 11, 2017 A YANG Data Model for Routing Management (NDMA Version) - draft-ietf-netmod-rfc8022bis-02 + draft-ietf-netmod-rfc8022bis-03 Abstract This document contains a specification of three YANG modules and one submodule. Together they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, @@ -34,21 +34,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference 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 (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -76,30 +76,31 @@ 5.3.2. Defining New Control-Plane Protocols . . . . . . . . 10 5.4. Parameters of IPv6 Router Advertisements . . . . . . . . 11 6. Interactions with Other YANG Modules . . . . . . . . . . . . 12 6.1. Module "ietf-interfaces" . . . . . . . . . . . . . . . . 12 6.2. Module "ietf-ip" . . . . . . . . . . . . . . . . . . . . 13 7. Routing Management YANG Module . . . . . . . . . . . . . . . 13 8. IPv4 Unicast Routing Management YANG Module . . . . . . . . . 28 9. IPv6 Unicast Routing Management YANG Module . . . . . . . . . 35 9.1. IPv6 Router Advertisements Submodule . . . . . . . . . . 43 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 - 11. Security Considerations . . . . . . . . . . . . . . . . . . . 55 + 11. Security Considerations . . . . . . . . . . . . . . . . . . . 54 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 12.1. Normative References . . . . . . . . . . . . . . . . . . 55 12.2. Informative References . . . . . . . . . . . . . . . . . 56 Appendix A. The Complete Data Trees . . . . . . . . . . . . . . 58 Appendix B. Minimum Implementation . . . . . . . . . . . . . . . 61 Appendix C. Example: Adding a New Control-Plane Protocol . . . . 61 Appendix D. Data Tree Example . . . . . . . . . . . . . . . . . 64 - Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 72 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 72 + Appendix E. NETCONF Get Data Reply Example . . . . . . . . . . . 70 + Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 73 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 73 1. Introduction This document contains a specification of the following YANG modules: o The "ietf-routing" module provides generic components of a routing data model. o The "ietf-ipv4-unicast-routing" module augments the "ietf-routing" module with additional data specific to IPv4 unicast. @@ -595,21 +596,21 @@ In addition, the "ietf-ip" module allows for configuring IPv4 and IPv6 addresses and network prefixes or masks on network-layer interfaces. Configuration of these parameters on an enabled interface MUST result in an immediate creation of the corresponding direct route. The destination prefix of this route is set according to the configured IP address and network prefix/mask, and the interface is set as the outgoing interface for that route. 7. Routing Management YANG Module - file "ietf-routing@2017-11-30.yang" + file "ietf-routing@2017-12-11.yang" module ietf-routing { yang-version "1.1"; namespace "urn:ietf:params:xml:ns:yang:ietf-routing"; prefix "rt"; import ietf-yang-types { prefix "yang"; } import ietf-interfaces { @@ -640,21 +641,21 @@ without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; reference "RFC XXXX"; - revision 2017-10-30 { + revision 2017-12-11 { description "Network Managment Datastore Architecture (NDMA) Revision"; reference "RFC XXXX: A YANG Data Model for Routing Management (NDMA Version)"; } revision 2016-11-04 { description "Initial revision."; @@ -1280,21 +1281,21 @@ } } } } } } 8. IPv4 Unicast Routing Management YANG Module - file "ietf-ipv4-unicast-routing@2017-11-30.yang" + file "ietf-ipv4-unicast-routing@2017-12-11.yang" module ietf-ipv4-unicast-routing { yang-version "1.1"; namespace "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"; prefix "v4ur"; import ietf-routing { prefix "rt"; } @@ -1325,21 +1326,21 @@ without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; reference "RFC XXXX"; - revision 2017-10-14 { + revision 2017-12-11 { description "Network Managment Datastore Architecture (NDMA) Revision"; reference "RFC XXXX: A YANG Data Model for Routing Management (NDMA Version)"; } revision 2016-11-04 { description "Initial revision."; @@ -1656,36 +1657,36 @@ status obsolete; description "IPv4 address of the next hop."; } } } 9. IPv6 Unicast Routing Management YANG Module - file "ietf-ipv6-unicast-routing@2017-11-30.yang" + file "ietf-ipv6-unicast-routing@2017-12-11.yang" module ietf-ipv6-unicast-routing { yang-version "1.1"; namespace "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing"; prefix "v6ur"; import ietf-routing { prefix "rt"; } import ietf-inet-types { prefix "inet"; } include ietf-ipv6-router-advertisements { - revision-date 2017-10-14; + revision-date 2017-12-11; } organization "IETF NETMOD - Networking Modeling Working Group"; contact "WG Web: WG List: Editor: Ladislav Lhotka @@ -1705,21 +1706,21 @@ without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; reference "RFC XXXX"; - revision 2017-10-14 { + revision 2017-12-11 { description "Network Managment Datastore Architecture (NDMA) revision"; reference "RFC XXXX: A YANG Data Model for Routing Management (NDMA Version)"; } /* Identities */ revision 2016-11-04 { @@ -2035,21 +2036,21 @@ status obsolete; description "IPv6 address of the next hop."; } } } 9.1. IPv6 Router Advertisements Submodule - file "ietf-ipv6-router-advertisements@2017-11-30.yang" + file "ietf-ipv6-router-advertisements@2017-12-11.yang" submodule ietf-ipv6-router-advertisements { yang-version "1.1"; belongs-to ietf-ipv6-unicast-routing { prefix "v6ur"; } import ietf-inet-types { prefix "inet"; } @@ -2057,71 +2058,56 @@ prefix "if"; } import ietf-ip { prefix "ip"; } organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact - "WG Web: - WG List: - - WG Chair: Lou Berger - - - WG Chair: Kent Watsen - + "WG Web: + WG List: Editor: Ladislav Lhotka - - Editor: Acee Lindem + Acee Lindem - - Editor: Yingzhen Qu + Yingzhen Qu "; description "This YANG module augments the 'ietf-ip' module with configuration and state data of IPv6 router advertisements. - Copyright (c) 2017 IETF Trust and the persons identified as - authors of the code. All rights reserved. + Copyright (c) 2017 IETF Trust and the persons + identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and - '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."; - + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices."; reference "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)."; - revision 2017-10-14 { + revision 2017-12-11 { description "Network Managment Datastore Architecture (NDMA) Revision"; reference "RFC XXXX: A YANG Data Model for Routing Management (NDMA Version)"; } - revision 2016-11-04 { description "Initial revision."; reference "RFC 8022: A YANG Data Model for Routing Management"; } augment "/if:interfaces/if:interface/ip:ipv6" { description "Augment interface configuration with parameters of IPv6 @@ -2996,45 +2980,45 @@ encoding [RFC7951], containing both configuration and state data. The data conforms to a data model that is defined by the following YANG library specification [RFC7895]: { "ietf-yang-library:modules-state": { "module-set-id": "c2e1f54169aa7f36e1a6e8d0865d441d3600f9c4", "module": [ { "name": "ietf-routing", - "revision": "2017-09-13", + "revision": "2017-12-11", "feature": [ "multiple-ribs", "router-id" ], "namespace": "urn:ietf:params:xml:ns:yang:ietf-routing", "conformance-type": "implement" }, { "name": "ietf-ipv4-unicast-routing", - "revision": "2017-09-13", + "revision": "2017-12-11", "namespace": "urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing", "conformance-type": "implement" }, { "name": "ietf-ipv6-unicast-routing", - "revision": "2017-09-13", + "revision": "2017-12-11", "namespace": "urn:ietf:params:xml:ns:yang:ietf-ipv6-unicast-routing-3", "conformance-type": "implement" }, { "name": "ietf-interfaces", - "revision": "2014-05-08", + "revision": "2017-08-17", "namespace": "urn:ietf:params:xml:ns:yang:ietf-interfaces", "conformance-type": "implement" }, { "name": "ietf-inet-types", "namespace": "urn:ietf:params:xml:ns:yang:ietf-inet-types", "revision": "2013-07-15", "conformance-type": "import" }, { @@ -3088,137 +3072,86 @@ The instance data tree could then be as follows: { "ietf-interfaces:interfaces": { "interface": [ { "name": "eth0", "type": "iana-if-type:ethernetCsmacd", "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", "oper-status": "up", "statistics": { "discontinuity-time": "2015-10-24T17:11:27+02:00" }, "ietf-ip:ipv4": { "forwarding": true, "mtu": 1500, "address": [ { "ip": "192.0.2.1", "prefix-length": 24 } - ] + ], }, "ietf-ip:ipv6": { "forwarding": true, "mtu": 1500, "address": [ { "ip": "2001:0db8:0:1::1", "prefix-length": 64 } ], + "autoconf": { + "create-global-addresses": false + } "ietf-ipv6-unicast-routing: ipv6-router-advertisements": { "send-advertisements": false } } }, { "name": "eth1", "type": "iana-if-type:ethernetCsmacd", + "description": "Interface to the internal network.", "phys-address": "00:0C:42:E5:B1:EA", "oper-status": "up", "statistics": { "discontinuity-time": "2015-10-24T17:11:29+02:00" }, "ietf-ip:ipv4": { "forwarding": true, "mtu": 1500, "address": [ { "ip": "198.51.100.1", "prefix-length": 24 } - ] + ], }, "ietf-ip:ipv6": { "forwarding": true, "mtu": 1500, "address": [ { "ip": "2001:0db8:0:2::1", "prefix-length": 64 } ], + "autoconf": { + "create-global-addresses": false + }, "ietf-ipv6-unicast-routing: + ipv6-router-advertisements": { "send-advertisements": true, "prefix-list": { "prefix": [ { "prefix-spec": "2001:db8:0:2::/64" } ] } } @@ -3343,20 +3278,152 @@ "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 request for for a device that implements the + example data models above. + + + + + + 192.0.2.1 + + + ietf-routing:static + + + + + 0.0.0.0/0 + + 192.0.2.2 + + + + + + ::/0 + + 2001:db8:0:1::2 + + + + + + + + + + ipv4-master + + ietf-ipv4-unicast-routing:ipv4-unicast + + true + + + + 192.0.2.1/24 + + + eth0 + + + 0 + ietf-routing:direct + 2015-10-24T17:11:27+02:00 + + + + 98.51.100.0/24 + + + eth1 + + 0 + ietf-routing:direct + 2015-10-24T17:11:27+02:00 + + + 0.0.0.0/0 + + + 192.0.2.2 + + + 5 + ietf-routing:static + 2015-10-24T18:02:45+02:00 + + + + + ipv6-master + + ietf-ipv6-unicast-routing:ipv6-unicast + + true + + + + 2001:db8:0:1::/64 + + + eth0 + + 0 + ietf-routing:direct + 2015-10-24T17:11:27+02:00 + + + + 2001:db8:0:2::/64 + + + eth1 + + 0 + ietf-routing:direct + 2015-10-24T17:11:27+02:00 + + + ::/0 + + + + 2001:db8:0:1::2 + + + 5 + ietf-routing:static + 2015-10-24T18:02:45+02:00 + + + + + + + + Acknowledgments The authors wish to thank Nitin Bahadur, Martin Bjorklund, Dean Bogdanovic, Jeff Haas, Joel Halpern, Wes Hardaker, Sriganesh Kini, David Lamparter, Andrew McGregor, Jan Medved, Xiang Li, Stephane Litkowski, Thomas Morin, Tom Petch, Yingzhen Qu, Bruno Rijsman, Juergen Schoenwaelder, Phil Shafer, Dave Thaler, Yi Yang, Derek Man-Kit Yeung, Jeffrey Zhang, Vladimir Vassilev, and Rob Wilton for their helpful comments and suggestions.