--- 1/draft-ietf-i2rs-yang-l3-topology-12.txt 2017-11-15 16:13:12.367205509 -0800 +++ 2/draft-ietf-i2rs-yang-l3-topology-13.txt 2017-11-15 16:13:12.431207044 -0800 @@ -1,27 +1,27 @@ Network Working Group A. Clemm Internet-Draft Huawei Intended status: Standards Track J. Medved -Expires: April 28, 2018 Cisco +Expires: May 19, 2018 Cisco R. Varga Pantheon Technologies SRO X. Liu - Ericsson + Jabil H. Ananthakrishnan Packet Design N. Bahadur Bracket Computing - October 25, 2017 + November 15, 2017 A YANG Data Model for Layer 3 Topologies - draft-ietf-i2rs-yang-l3-topology-12.txt + draft-ietf-i2rs-yang-l3-topology-13.txt Abstract This document defines a YANG data model for layer 3 network topologies. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. @@ -29,21 +29,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 https://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 April 28, 2018. + This Internet-Draft will expire on May 19, 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 (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -68,21 +68,22 @@ 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 12.1. Normative References . . . . . . . . . . . . . . . . . . 17 12.2. Informative References . . . . . . . . . . . . . . . . . 18 Appendix A. Companion YANG model for non-NMDA compliant implementations . . . . . . . . . . . . . . . . . . 20 Appendix B. Extending the Model . . . . . . . . . . . . . . . . 24 B.1. Example OSPF Topology . . . . . . . . . . . . . . . . . . 24 B.1.1. Model Overview . . . . . . . . . . . . . . . . . . . 24 B.1.2. OSPF Topology YANG Module . . . . . . . . . . . . . . 26 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 + Appendix C. An Example . . . . . . . . . . . . . . . . . . . . . 30 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 1. Introduction This document introduces a YANG [RFC7950] [RFC6991] data model for Layer 3 network topologies, specifically Layer 3 Unicast. The model allows an application to have a holistic view of the topology of a Layer 3 network, all contained in a single conceptual YANG datastore. The data model builds on top of, and augments, the data model for network topologies defined in [I-D.draft-ietf-i2rs-yang-network-topo]. @@ -129,46 +130,42 @@ 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 3. Definitions and Acronyms As this document defines a YANG data model, in this document many terms are used that have been defined in conjunction with YANG [RFC7950] and NETCONF [RFC6241]. Some terms, such as datastore and data tree, are repeated here for clarity and to put them in context. - Datastore: A conceptual store of instantiated management information, - with individual data items represented by data nodes which are - arranged in hierarchical manner. - + Datastore: A conceptual place to store and access information. A + datastore might be implemented, for example, using files, a database, + flash memory locations, or combinations thereof. A datastore maps to + an instantiated YANG data tree. (Definition adopted from + [I-D.draft-ietf-netmod-revised-datastores]) Data subtree: An instantiated data node and the data nodes that are hierarchically contained within it. - HTTP: Hyper-Text Transfer Protocol - IGP: Interior Gateway Protocol IS-IS: Intermediate System to Intermediate System protocol LSP: Label Switched Path NETCONF: Network Configuration Protocol NMDA: Network Management Datastore Architecture OSPF: Open Shortest Path First, a link state routing protocol URI: Uniform Resource Identifier - ReST: Representational State Transfer, a style of stateless interface - and protocol that is generally carried over HTTP - SRLG: Shared Risk Link Group TED: Traffic Engineering Database YANG: A data definition language for NETCONF 4. Model Structure The Layer 3 Unicast topology model is defined by YANG module "l3- unicast-topology". The relationship of this module with other YANG @@ -288,21 +285,21 @@ type of event, the topology from which it originated, and the affected node, or link, or prefix, or termination point. In addition, as a convenience to applications, additional data of the affected node, or link, or termination point (respectively) is included. While this makes notifications larger in volume than they would need to be, it avoids the need for subsequent retrieval of context information, which also might have changed in the meantime. 6. Layer 3 Unicast Topology YANG Module - file "ietf-l3-unicast-topology@2017-10-25.yang" + file "ietf-l3-unicast-topology@2017-11-15.yang" module ietf-l3-unicast-topology { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology"; prefix "l3t"; import ietf-network { prefix "nw"; } import ietf-network-topology { prefix "nt"; @@ -333,33 +330,33 @@ topologies. 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). This version of this YANG module is part of - draft-ietf-i2rs-yang-l3-topology-12; + draft-ietf-i2rs-yang-l3-topology-13; see the RFC itself for full legal notices. NOTE TO RFC EDITOR: Please replace above reference to - draft-ietf-i2rs-yang-l3-topology-12 with RFC + draft-ietf-i2rs-yang-l3-topology-13 with RFC number when published (i.e. RFC xxxx)."; - revision "2017-10-25" { + revision "2017-11-15" { description "Initial revision. NOTE TO RFC EDITOR: Please replace the following reference - to draft-ietf-i2rs-yang-l3-topology-12 with + to draft-ietf-i2rs-yang-l3-topology-13 with RFC number when published (i.e. RFC xxxx)."; reference - "draft-ietf-i2rs-yang-l3-topology-12"; + "draft-ietf-i2rs-yang-l3-topology-13"; } identity flag-identity { description "Base type for flags"; } typedef l3-event-type { type enumeration { enum "add" { description @@ -689,26 +686,26 @@ URI: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state Registrant Contact: The IESG. XML: N/A; the requested URI is an XML namespace. This document registers the following YANG modules in the "YANG Module Names" registry [RFC6020]: Name: ietf-l3-unicast-topology Namespace: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology Prefix: l3t - Reference: draft-ietf-i2rs-yang-l3-topology-12.txt (RFC form) + Reference: draft-ietf-i2rs-yang-l3-topology-13.txt (RFC form) Name: ietf-l3-unicast-topology-state Namespace: urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state Prefix: l3t-s - Reference: draft-ietf-i2rs-yang-l3-topology-12.txt (RFC form) + Reference: draft-ietf-i2rs-yang-l3-topology-13.txt (RFC form) 9. Security Considerations The YANG module defined in this document is designed to be accessed via network management protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS [RFC5246]. @@ -777,21 +774,21 @@ Carlos Pignataro, Juergen Schoenwaelder, and Kent Watsen. 12. References 12.1. Normative References [I-D.draft-ietf-i2rs-yang-network-topo] Clemm, A., Medved, J., Varga, R., Bahadur, N., Ananthakrishnan, H., and X. Liu, "A YANG Data Model for Network Topologies", I-D draft-ietf-i2rs-yang-network- - topo-16, September 2017. + topo-18, November 2017. [I-D.draft-ietf-netmod-revised-datastores] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "A Revised Conceptual Model for YANG Datastores", I-D draft-ietf-netmod-revised-datastores-02, May 2017. [RFC1195] Callon, R., "Use of OSI IS-IS for Routing in TCP/IP and Dual Environments", RFC 1195, December 1990. @@ -823,20 +820,23 @@ [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration Protocol (NETCONF) Access Control Model", RFC 6536, March 2012. [RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, July 2013. [RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", RFC 7950, August 2016. + [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", + RFC 7951, August 2016. + 12.2. Informative References [I-D.draft-acee-rtgwg-yang-rib-extend] Lindem, A. and Y. Qu, "YANG Data Model for RIB Extensions", I-D draft-acee-rtgwg-yang-rib-extend-04, October 2017. [I-D.draft-ietf-i2rs-usecase-reqs-summary] Hares, S. and M. Chen, "Summary of I2RS Use Case Requirements", I-D draft-ietf-i2rs-usecase-reqs-summary- @@ -877,42 +877,42 @@ supported, a set of companion modules have been defined that represent a state model of networks and network topologies, ietf- network-state and ietf-network-topology-state, respectively. In order to be able to use the model for layer 3 topologies defined in this in this document in conjunction with non-NMDA compliant implementations, a corresponding companion module needs to be introduced as well. This companion module, ietf-l3-unicast-topology- state, mirrors ietf-l3-unicast-topology. However, the module augments ietf-network-state and ietf-network-topology-state (instead - of ietf-network and ietf-network-state) and all of its data nodes are - non-configurable. + of ietf-network and ietf-network-topology) and all of its data nodes + are non-configurable. Similar considerations apply for any modules that augment ietf-l3- unicast-topology, such as the example modules defined in see Appendix B, example-ietf-ospf-topology. For non-NMDA compliant implementations, companion modules will need to be introduced that represent state information and are non-configurable, augmenting ietf-l3-unicast-topology-state instead of ietf-l3-unicast-topology. Because they served as examples only, companion modules for those examples are not given. Like ietf-network-state and ietf-network-topology-state, ietf-l3- unicast-topology SHOULD NOT be supported by implementations that support NMDA. It is for this reason that the module is defined in the Appendix. The definition of the module follows below. As the structure of the module mirrors that of its underlying module, the YANG tree is not depicted separately. - file "ietf-l3-unicast-topology-state@2017-10-25.yang" + file "ietf-l3-unicast-topology-state@2017-11-15.yang" module ietf-l3-unicast-topology-state { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state"; prefix "l3t-s"; import ietf-network-state { prefix "nw-s"; } import ietf-network-topology-state { prefix "nt-s"; @@ -951,33 +951,33 @@ 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). This version of this YANG module is part of - draft-ietf-i2rs-yang-l3-topology-12; + draft-ietf-i2rs-yang-l3-topology-13; see the RFC itself for full legal notices. NOTE TO RFC EDITOR: Please replace above reference to - draft-ietf-i2rs-yang-l3-topology-12 with RFC + draft-ietf-i2rs-yang-l3-topology-13 with RFC number when published (i.e. RFC xxxx)."; - revision "2017-10-25" { + revision "2017-11-15" { description "Initial revision. NOTE TO RFC EDITOR: Please replace the following reference - to draft-ietf-i2rs-yang-l3-topology-12 with + to draft-ietf-i2rs-yang-l3-topology-13 with RFC number when published (i.e. RFC xxxx)."; reference - "draft-ietf-i2rs-yang-l3-topology-12"; + "draft-ietf-i2rs-yang-l3-topology-13"; } augment "/nw-s:networks/nw-s:network/nw-s:network-types" { description "Introduce new network type for L3 unicast topology"; uses l3t:l3-unicast-topology-type; } augment "/nw-s:networks/nw-s:network" { when "nw-s:network-types/l3-unicast-topology" { description "Augmentation parameters apply only for networks with @@ -1155,21 +1155,21 @@ OSPF routers or interfaces. B.1.2. OSPF Topology YANG Module The OSPF Topology YANG Module is specified below. As mentioned, the module is intended as an example for how the Layer 3 Unicast topology model can be extended to cover OSFP topologies, but it is not normative. Accordingly, the module is not delimited with CODE BEGINS and CODE ENDS tags. - file "example-ietf-ospf-topology@2017-10-25.yang" + file "example-ietf-ospf-topology@2017-11-15.yang" module example-ietf-ospf-topology { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:example-ietf-ospf-topology"; prefix "ospft"; import ietf-yang-types { prefix "yang"; } import ietf-network { prefix "nw"; } @@ -1200,33 +1200,33 @@ "This module defines a model for OSPF network topologies. 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). This version of this YANG module is part of - draft-ietf-i2rs-yang-l3-topology-12; + draft-ietf-i2rs-yang-l3-topology-13; see the RFC itself for full legal notices. NOTE TO RFC EDITOR: Please replace above reference to - draft-ietf-i2rs-yang-l3-topology-12 with RFC + draft-ietf-i2rs-yang-l3-topology-13 with RFC number when published (i.e. RFC xxxx)."; - revision "2017-10-25" { + revision "2017-11-15" { description "Initial revision. NOTE TO RFC EDITOR: Please replace the following reference - to draft-ietf-i2rs-yang-l3-topology-12 with + to draft-ietf-i2rs-yang-l3-topology-13 with RFC number when published (i.e. RFC xxxx)."; reference - "draft-ietf-i2rs-yang-l3-topology-12"; + "draft-ietf-i2rs-yang-l3-topology-13"; } typedef area-id-type { type yang:dotted-quad; description "Area ID type."; } grouping ospf-topology-type { description "Identifies the OSPF topology type."; container ospf { @@ -1343,40 +1343,254 @@ uses ospft:ospf-node-attributes; } augment "/l3t:l3-link-event" { description "OSPF link event"; uses ospf-topology-type; uses ospft:ospf-link-attributes; } } +Appendix C. An Example + + This section contains an example of an instance data tree in JSON + encoding [RFC7951]. The example instantiates ietf-l3-unicast- + topology for the topology that is depicted in the following diagram. + There are three nodes, D1, D2, and D3. D1 has three termination + points, 1-0-1, 1-2-1, and 1-3-1. D2 has three termination points as + well, 2-1-1, 2-0-1, and 2-3-1. D3 has two termination points, 3-1-1 + and 3-2-1. In addition there are six links, two between each pair of + nodes with one going in each direction. + + +------------+ +------------+ + | D1 | | D2 | + /-\ /-\ /-\ /-\ + | | 1-0-1 | |---------------->| | 2-1-1 | | + | | 1-2-1 | |<----------------| | 2-0-1 | | + \-/ 1-3-1 \-/ \-/ 2-3-1 \-/ + | /----\ | | /----\ | + +---| |---+ +---| |---+ + \----/ \----/ + A | A | + | | | | + | | | | + | | +------------+ | | + | | | D3 | | | + | | /-\ /-\ | | + | +----->| | 3-1-1 | |-------+ | + +---------| | 3-2-1 | |<---------+ + \-/ \-/ + | | + +------------+ + + Figure 2: A network topology example + + The corresponding instance data tree is depicted below: + +{ + "ietf-network:networks": { + "network": [ + { + "network-types": { + "ietf-l3-unicast-topology:l3-unicast-topology": {} + }, + "network-id": "l3-topo-example", + "node": [ + { + "node-id": "D1", + "termination-point": [ + { + "tp-id": "1-0-1", + "ietf-l3-unicast-topology:l3-termination-point-attributes": { + "unnumbered-id:": 101 + } + }, + { + "tp-id": "1-2-1", + "ietf-l3-unicast-topology:l3-termination-point-attributes": { + "unnumbered-id:": 121 + + } + }, + { + "tp-id": "1-3-1", + "ietf-l3-unicast-topology:l3-termination-point-attributes": { + "unnumbered-id:": 131 + } + } + ], + "ietf-l3-unicast-topology:l3-node-attributes": { + "router-id": ["203.0.113.1"] + } + }, + { + "node-id": "D2", + "termination-point": [ + { + "tp-id": "2-0-1", + "ietf-l3-unicast-topology:l3-termination-point-attributes": { + "unnumbered-id:": 201 + } + }, + { + "tp-id": "2-1-1", + "ietf-l3-unicast-topology:l3-termination-point-attributes": { + "unnumbered-id:": 211 + } + }, + { + "tp-id": "2-3-1", + "ietf-l3-unicast-topology:l3-termination-point-attributes": { + "unnumbered-id:": 231 + } + } + ], + "ietf-l3-unicast-topology:l3-node-attributes": { + "router-id": ["203.0.113.2"] + } + }, + { + "node-id": "D3", + "termination-point": [ + { + "tp-id": "3-1-1", + "ietf-l3-unicast-topology:l3-termination-point-attributes": { + "unnumbered-id:": 311 + } + }, + { + "tp-id": "3-2-1", + "ietf-l3-unicast-topology:l3-termination-point-attributes": { + "unnumbered-id:": 321 + } + } + ], + "ietf-l3-unicast-topology:l3-node-attributes": { + "router-id": ["203.0.113.3"] + } + } + ], + "ietf-network-topology:link": [ + { + "link-id": "D1,1-2-1,D2,2-1-1", + "destination": { + "source-node": "D1", + "source-tp": "1-2-1" + } + "destination": { + "dest-node": "D2", + "dest-tp": "2-1-1" + }, + "ietf-l3-unicast-topology:l3-link-attributes": { + "metric1": "100" + } + }, + { + "link-id": "D2,2-1-1,D1,1-2-1", + "destination": { + "source-node": "D2", + "source-tp": "2-1-1" + } + "destination": { + "dest-node": "D1", + "dest-tp": "1-2-1" + }, + "ietf-l3-unicast-topology:l3-link-attributes": { + "metric1": "100" + } + }, + { + "link-id": "D1,1-3-1,D3,3-1-1", + "destination": { + "source-node": "D1", + "source-tp": "1-3-1" + } + "destination": { + "dest-node": "D3", + "dest-tp": "3-1-1" + }, + "ietf-l3-unicast-topology:l3-link-attributes": { + "metric1": "100" + } + }, + { + "link-id": "D3,3-1-1,D1,1-3-1", + "destination": { + "source-node": "D3", + "source-tp": "3-1-1" + } + "destination": { + "dest-node": "D1", + "dest-tp": "1-3-1" + }, + "ietf-l3-unicast-topology:l3-link-attributes": { + "metric1": "100" + } + }, + { + "link-id": "D2,2-3-1,D3,3-2-1", + "destination": { + "source-node": "D2", + "source-tp": "2-3-1" + } + "destination": { + "dest-node": "D3", + "dest-tp": "3-2-1" + }, + "ietf-l3-unicast-topology:l3-link-attributes": { + "metric1": "100" + } + }, + { + "link-id": "D3,3-2-1,D2,2-3-1", + "destination": { + "source-node": "D3", + "source-tp": "3-2-1" + } + "destination": { + "dest-node": "D2", + "dest-tp": "2-3-1" + }, + "ietf-l3-unicast-topology:l3-link-attributes": { + "metric1": "100" + } + + } + ] + } + ] + } +} + + Figure 3: Instance data tree + Authors' Addresses Alexander Clemm Huawei EMail: ludwig@clemm.org Jan Medved Cisco EMail: jmedved@cisco.com Robert Varga Pantheon Technologies SRO EMail: robert.varga@pantheon.sk Xufeng Liu - Ericsson + Jabil - EMail: xliu@kuatrotech.com + EMail: Xufeng_Liu@jabil.com Hariharan Ananthakrishnan Packet Design EMail: hari@packetdesign.com + Nitin Bahadur Bracket Computing EMail: nitin_bahadur@yahoo.com