--- 1/draft-ietf-ccamp-otn-topo-yang-05.txt 2019-02-25 01:13:43.862282523 -0800 +++ 2/draft-ietf-ccamp-otn-topo-yang-06.txt 2019-02-25 01:13:43.986285536 -0800 @@ -1,134 +1,134 @@ CCAMP Working Group H. Zheng Internet-Draft A. Guo Intended status: Standards Track I. Busi -Expires: February 24, 2019 Huawei Technologies +Expires: August 29, 2019 Huawei Technologies A. Sharma Google X. Liu Volta Networks S. Belotti Nokia Y. Xu CAICT L. Wang China Mobile O. Gonzalez de Dios Telefonica - August 23, 2018 + February 25, 2019 A YANG Data Model for Optical Transport Network Topology - draft-ietf-ccamp-otn-topo-yang-05 + draft-ietf-ccamp-otn-topo-yang-06 Abstract - A transport network is a server-layer network designed to provide - connectivity services for a client-layer network to carry the client - traffic transparently across the server-layer network resources. A - transport network can be constructed from equipments utilizing any of - a number of different transport technologies such as the evolving - Optical Transport Networks (OTN) or packet transport as provided by - the MPLS-Transport Profile (MPLS-TP). - This document describes a YANG data model to describe the topologies of an Optical Transport Network (OTN). It is independent of control plane protocols and captures topological and resource related information pertaining to OTN. This model enables clients, which - interact with a transport domain controller via a REST interface, for - OTN topology related operations such as obtaining the relevant - topology resource information. + interact with a transport domain controller, for OTN topology related + operations such as obtaining the relevant topology resource + information. + +Requirements Language + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC2119]. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. 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 February 24, 2019. + This Internet-Draft will expire on August 29, 2019. Copyright Notice - Copyright (c) 2018 IETF Trust and the persons identified as the + Copyright (c) 2019 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 carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology and Notations . . . . . . . . . . . . . . . . . . 3 3. YANG Data Model for OTN Topology . . . . . . . . . . . . . . 4 3.1. OTN Topology Data Model Overview . . . . . . . . . . . . 4 3.2. YANG Tree for OTN topology . . . . . . . . . . . . . . . 5 - 4. The YANG Code . . . . . . . . . . . . . . . . . . . . . . . . 21 - 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 54 - 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 55 - 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 55 - 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 56 - 9.1. Normative References . . . . . . . . . . . . . . . . . . 56 - 9.2. Informative References . . . . . . . . . . . . . . . . . 57 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 58 + 4. The YANG Code . . . . . . . . . . . . . . . . . . . . . . . . 23 + 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 60 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 60 + 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 61 + 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 61 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 62 + 9.1. Normative References . . . . . . . . . . . . . . . . . . 62 + 9.2. Informative References . . . . . . . . . . . . . . . . . 63 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 64 1. Introduction A transport network is a server-layer network designed to provide connectivity services for a client-layer network to carry the client traffic transparently across the server-layer network resources. A transport network can be constructed of equipments utilizing any of a number of different transport technologies such as the Optical - Transport Networks (OTN) or packet transport as provided by the MPLS- - Transport Profile (MPLS-TP). + Transport Networks (OTN) or packet transport such as provided by the + MPLS-Transport Profile (MPLS-TP). This document defines a data model of an OTN network topology, using YANG [RFC7950]. The model can be used by an application exposing to - a transport controller via a REST interface. Furthermore, it can be - used by an application for the following purposes (but not limited - to): + a transport controller. Furthermore, it can be used by an + application for the following purposes (but not limited to): o To obtain a whole view of the network topology information of its interest; o To receive notifications with regard to the information change of the OTN topology; o To enforce the establishment and update of a network topology with the characteristic specified in the data model, e.g., by a client controller; The YANG model defined in this document is independent of control plane protocols and captures topology related information pertaining - to an Optical Transport Networks (OTN)-electrical layer, as the scope + to an Optical Transport Networks (OTN) electrical layer, as the scope specified by [RFC7062] and [RFC7138]. Furthermore, it is not a stand-alone model, but augmenting from the TE topology YANG model defined in [I-D.ietf-teas-yang-te-topo]. Following TE topology YANG model, the YANG model defined in this document is interface - independent. The applicability of models to interfaces is described - in [I-D.ietf-teas-actn-yang]. + independent. The model is included in [I-D.ietf-teas-actn-yang], + which indicates the typical usage of IETF YANG models in ACTN + architecture specified by [RFC8453]. More specifically, the usage of + this model between transport controllers is described in + [I-D.ietf-ccamp-transport-nbi-app-statement]. Optical network technologies, including fixed Dense Wavelength Switched Optical Network (WSON) and flexible optical networks (a.k.a., flexi-grid networks), are covered in [I-D.ietf-ccamp-wson-yang] and [I-D.ietf-ccamp-flexigrid-yang], respectively. 2. Terminology and Notations A simplified graphical representation of the data model is used in @@ -157,27 +157,31 @@ o TSG: Tributary Slot Granularity. o TPN: Tributary Port Number. 3. YANG Data Model for OTN Topology 3.1. OTN Topology Data Model Overview This document aims to describe the data model for OTN topology. As a classic Traffic-engineering (TE) technology, OTN provide TDM - switching in transport network. Therefore the YANG module presented - in this document augments from a more generic Traffic Engineered (TE) - network topology data model, i.e., the ietf-te-topology.yang, as - specified in [I-D.ietf-teas-yang-te-topo]. In section 6 of - [I-D.ietf-teas-yang-te-topo], the guideline for augmenting TE - topology model was provided, and in this draft we respetively augment - the OTN attributes, TE bandwidth and TE label. + switching in transport network [ITU-T]. Therefore the YANG module + presented in this document augments from a more generic Traffic + Engineered (TE) network topology data model, i.e., the ietf-te- + topology.yang, as specified in [I-D.ietf-teas-yang-te-topo]. In + section 6 of [I-D.ietf-teas-yang-te-topo], the guideline for + augmenting TE topology model was provided, and in this draft we + respetively augment the OTN attributes, TE bandwidth and TE label. + [RFC8345] should also be mentioned, which descirbe a network topology + model and provide the fundamental model for + [I-D.ietf-teas-yang-te-topo]. However, this work is not directly + augmenting [RFC8345]. The entities and TE attributes, such as node, termination points and links, are still applicable for describing an OTN topology and the model presented in this document only specifies with technology- specific attributes/information. In OTN attributes augmentation, mainly OTN-specific parameters are included such as Tributary Slot Granularity (TSG), payload type and so on. For different order of ODU in OTN technology, the te-bandwidth is augmented to allow specifying the type of ODU container and the @@ -186,36 +190,38 @@ assuming only a single priority level is supported. If one of ODU2 resource is taken to establish a ODU path, then the availability of this ODU link is updated as 24*ODU0, 12*ODU1, 3*ODU2 available. If there are equipment hardware limitations, then a subset of potential ODU type SHALL be advertised. For instance, an ODU3 link may only support 4*ODU2. The types of OTN label can be divided into the tributary ports and the tributary slots, represented by TPN or TS list respectively. In the TE-label augmentation, two optional label formats are available - for label representation. + for label representation. It is also worth noting that for the + parameter "label-step" in TE topology models, the value is always set + to 1 as the granularity of OTN resources is measured by 'tributary + slot'. In this model we specify the 'otn-label-step', which is used + to align with TE topology only. Note the model in this document re-uses some attributes defined in ietf-otn-types.yang, which is specified in [I-D.ietf-ccamp-otn-tunnel-model]. The YANG module ietf-otn-topology defined in this document conforms to the Network Management Datastore Architecture (NMDA) defined in [RFC8342]. 3.2. YANG Tree for OTN topology The following OTN specific attributes have been augmented to TE topology models. - -module: ietf-otn-topology augment /nw:networks/nw:network/nw:network-types/tet:te-topology: +--rw otn-topology! augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes: +--rw tsg? identityref +--rw distance? uint32 augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te: +--rw supported-payload-types* [index] | +--rw index uint16 | +--rw payload-type? string +--rw client-facing? boolean @@ -215,132 +221,125 @@ +--rw tsg? identityref +--rw distance? uint32 augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te: +--rw supported-payload-types* [index] | +--rw index uint16 | +--rw payload-type? string +--rw client-facing? boolean The technology specific TE bandwidth for OTN topology can be specified using the following augment statements: - augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te /tet:interface-switching-capability/tet:max-lsp-bandwidth /tet:te-bandwidth/tet:technology: +--:(otn) +--rw odu-type? identityref augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes - /tet:connectivity-matrices/tet:path-constraints - /tet:te-bandwidth/tet:technology: + /tet:connectivity-matrices/tet:path-constraints/tet:te-bandwidth + /tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:connectivity-matrix /tet:path-constraints/tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 - augment /nw:networks/nw:network/nw:node/tet:te - /tet:information-source-entry/tet:connectivity-matrices - /tet:path-constraints/tet:te-bandwidth/tet:technology: + augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry + /tet:connectivity-matrices/tet:path-constraints + /tet:te-bandwidth/tet:technology: +--:(otn) +--ro odulist* [odu-type] +--ro odu-type identityref +--ro number? uint16 - augment /nw:networks/nw:network/nw:node/tet:te - /tet:information-source-entry/tet:connectivity-matrices - /tet:connectivity-matrix/tet:path-constraints - /tet:te-bandwidth/tet:technology: + augment /nw:networks/nw:network/nw:node/tet:te/tet:information-source-entry + /tet:connectivity-matrices/tet:connectivity-matrix + /tet:path-constraints/tet:te-bandwidth/tet:technology: +--:(otn) +--ro odulist* [odu-type] +--ro odu-type identityref +--ro number? uint16 - augment /nw:networks/nw:network/nw:node/tet:te - /tet:tunnel-termination-point/tet:client-layer-adaptation - /tet:switching-capability/tet:te-bandwidth/tet:technology: + augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point + /tet:client-layer-adaptation/tet:switching-capability + /tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 - augment /nw:networks/nw:network/nw:node/tet:te - /tet:tunnel-termination-point/tet:local-link-connectivities - /tet:path-constraints/tet:te-bandwidth/tet:technology: + augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point + /tet:local-link-connectivities/tet:path-constraints + /tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 - augment /nw:networks/nw:network/nw:node/tet:te - /tet:tunnel-termination-point/tet:local-link-connectivities - /tet:local-link-connectivity/tet:path-constraints - /tet:te-bandwidth/tet:technology: + augment /nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point + /tet:local-link-connectivities/tet:local-link-connectivity + /tet:path-constraints/tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes /tet:interface-switching-capability/tet:max-lsp-bandwidth /tet:te-bandwidth/tet:technology: + +--:(otn) +--rw odu-type? identityref - - augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes - /tet:max-link-bandwidth/tet:te-bandwidth/tet:technology: + augment /nw:networks/nw:network/nt:link/tet:te + /tet:te-link-attributes/tet:max-link-bandwidth + /tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes /tet:max-resv-link-bandwidth/tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes /tet:unreserved-bandwidth/tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 - augment /nw:networks/nw:network/nt:link/tet:te - /tet:information-source-entry + augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry /tet:interface-switching-capability/tet:max-lsp-bandwidth /tet:te-bandwidth/tet:technology: +--:(otn) +--ro odu-type? identityref - augment /nw:networks/nw:network/nt:link/tet:te - /tet:information-source-entry/tet:max-link-bandwidth - /tet:te-bandwidth/tet:technology: + augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry + /tet:max-link-bandwidth/tet:te-bandwidth/tet:technology: +--:(otn) +--ro odulist* [odu-type] +--ro odu-type identityref +--ro number? uint16 - augment /nw:networks/nw:network/nt:link/tet:te - /tet:information-source-entry + augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry /tet:max-resv-link-bandwidth/tet:te-bandwidth/tet:technology: +--:(otn) +--ro odulist* [odu-type] +--ro odu-type identityref +--ro number? uint16 - augment /nw:networks/nw:network/nt:link/tet:te - /tet:information-source-entry/tet:unreserved-bandwidth - /tet:te-bandwidth/tet:technology: + augment /nw:networks/nw:network/nt:link/tet:te/tet:information-source-entry + /tet:unreserved-bandwidth/tet:te-bandwidth/tet:technology: +--:(otn) +--ro odulist* [odu-type] +--ro odu-type identityref +--ro number? uint16 augment /nw:networks/tet:te/tet:templates/tet:link-template /tet:te-link-attributes/tet:interface-switching-capability /tet:max-lsp-bandwidth/tet:te-bandwidth/tet:technology: - +--:(otn) +--rw odu-type? identityref augment /nw:networks/tet:te/tet:templates/tet:link-template /tet:te-link-attributes/tet:max-link-bandwidth /tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 augment /nw:networks/tet:te/tet:templates/tet:link-template @@ -352,78 +351,84 @@ +--rw number? uint16 augment /nw:networks/tet:te/tet:templates/tet:link-template /tet:te-link-attributes/tet:unreserved-bandwidth /tet:te-bandwidth/tet:technology: +--:(otn) +--rw odulist* [odu-type] +--rw odu-type identityref +--rw number? uint16 The technology specific TE label for this OTN topology can be specified using the following augment statements: - augment /nw:networks/nw:network/nw:node/tet:te - /tet:te-node-attributes/tet:connectivity-matrices - /tet:label-restrictions/tet:label-restriction: + augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes + /tet:connectivity-matrices/tet:label-restrictions + /tet:label-restriction: +--rw range-type? identityref +--rw tsg? identityref +--rw priority? uint8 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:label-restrictions - /tet:label-restriction/tet:label-start/tet:te-label - /tet:technology: + /tet:label-restriction/tet:label-start/tet:te-label/tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:label-restrictions - /tet:label-restriction/tet:label-end/tet:te-label - /tet:technology: + /tet:label-restriction/tet:label-end/tet:te-label/tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 + + augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes + /tet:connectivity-matrices/tet:label-restrictions + /tet:label-restriction/tet:label-step/tet:technology: + +--:(otn) + +--rw (otn-label-type)? + +--:(tributary-port) + | +--rw tpn-step? uint16 + +--:(tributary-slot) + +--rw ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:underlay/tet:primary-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:underlay/tet:backup-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:optimizations/tet:algorithm /tet:metric/tet:optimization-metric - /tet:explicit-route-exclude-objects - /tet:route-object-exclude-object/tet:type/tet:label - /tet:label-hop/tet:te-label/tet:technology: + /tet:explicit-route-exclude-objects/tet:route-object-exclude-object + /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:optimizations/tet:algorithm /tet:metric/tet:optimization-metric - /tet:explicit-route-include-objects - /tet:route-object-include-object/tet:type/tet:label - /tet:label-hop/tet:te-label/tet:technology: + /tet:explicit-route-include-objects/tet:route-object-include-object + /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:path-properties /tet:path-route-objects/tet:path-route-object/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 @@ -449,46 +454,66 @@ /tet:connectivity-matrices/tet:connectivity-matrix/tet:from /tet:label-restrictions/tet:label-restriction/tet:label-end /tet:te-label/tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes + /tet:connectivity-matrices/tet:connectivity-matrix/tet:from + /tet:label-restrictions/tet:label-restriction/tet:label-step + /tet:technology: + +--:(otn) + +--rw (otn-label-type)? + +--:(tributary-port) + | +--rw tpn-step? uint16 + +--:(tributary-slot) + +--rw ts? uint16 + augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:connectivity-matrix/tet:to /tet:label-restrictions/tet:label-restriction: +--rw range-type? identityref +--rw tsg? identityref +--rw priority? uint8 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:connectivity-matrix/tet:to /tet:label-restrictions/tet:label-restriction/tet:label-start /tet:te-label/tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes - /tet:connectivity-matrices/tet:connectivity-matrix/tet:to - /tet:label-restrictions/tet:label-restriction/tet:label-end - /tet:te-label/tet:technology: + /tet:connectivity-matrices/tet:connectivity-matrix + /tet:to/tet:label-restrictions/tet:label-restriction + /tet:label-end/tet:te-label/tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes + /tet:connectivity-matrices/tet:connectivity-matrix/tet:to + /tet:label-restrictions/tet:label-restriction + /tet:label-step/tet:technology: + +--:(otn) + +--rw (otn-label-type)? + +--:(tributary-port) + | +--rw tpn-step? uint16 + +--:(tributary-slot) + +--rw ts? uint16 + augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:connectivity-matrix /tet:underlay/tet:primary-path/tet:path-element/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes /tet:connectivity-matrices/tet:connectivity-matrix /tet:underlay/tet:backup-path/tet:path-element/tet:type @@ -548,22 +572,32 @@ /tet:label-restrictions/tet:label-restriction /tet:label-end/tet:te-label/tet:technology: +--:(otn) +--ro (otn-label-type)? +--:(tributary-port) | +--ro tpn? uint16 +--:(tributary-slot) +--ro ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices - /tet:underlay/tet:primary-path/tet:path-element - /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology: + /tet:label-restrictions/tet:label-restriction + /tet:label-step/tet:technology: + +--:(otn) + +--ro (otn-label-type)? + +--:(tributary-port) + | +--ro tpn-step? uint16 + +--:(tributary-slot) + +--ro ts? uint16 + augment /nw:networks/nw:network/nw:node/tet:te + /tet:information-source-entry/tet:connectivity-matrices + /tet:underlay/tet:primary-path/tet:path-element/tet:type + /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 +--ro tsg? identityref +--ro ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:underlay/tet:backup-path/tet:path-element/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 @@ -613,30 +647,39 @@ /tet:technology: +--:(otn) +--ro (otn-label-type)? +--:(tributary-port) | +--ro tpn? uint16 +--:(tributary-slot) +--ro ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:from/tet:label-restrictions - /tet:label-restriction/tet:label-end/tet:te-label - /tet:technology: + /tet:label-restriction/tet:label-end/tet:te-label/tet:technology: +--:(otn) +--ro (otn-label-type)? +--:(tributary-port) | +--ro tpn? uint16 +--:(tributary-slot) +--ro ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices + /tet:connectivity-matrix/tet:from/tet:label-restrictions + /tet:label-restriction/tet:label-step/tet:technology: + +--:(otn) + +--ro (otn-label-type)? + +--:(tributary-port) + | +--ro tpn-step? uint16 + +--:(tributary-slot) + +--ro ts? uint16 + augment /nw:networks/nw:network/nw:node/tet:te + /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:to/tet:label-restrictions /tet:label-restriction: +--ro range-type? identityref +--ro tsg? identityref +--ro priority? uint8 augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:to/tet:label-restrictions /tet:label-restriction/tet:label-start/tet:te-label /tet:technology: @@ -652,63 +695,71 @@ /tet:label-restriction/tet:label-end/tet:te-label /tet:technology: +--:(otn) +--ro (otn-label-type)? +--:(tributary-port) | +--ro tpn? uint16 +--:(tributary-slot) +--ro ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices + /tet:connectivity-matrix/tet:to/tet:label-restrictions + /tet:label-restriction/tet:label-step/tet:technology: + +--:(otn) + +--ro (otn-label-type)? + +--:(tributary-port) + | +--ro tpn-step? uint16 + +--:(tributary-slot) + +--ro ts? uint16 + augment /nw:networks/nw:network/nw:node/tet:te + /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:underlay/tet:primary-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 +--ro tsg? identityref +--ro ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:underlay/tet:backup-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 +--ro tsg? identityref +--ro ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:optimizations/tet:algorithm /tet:metric/tet:optimization-metric - /tet:explicit-route-exclude-objects - /tet:route-object-exclude-object/tet:type/tet:label - /tet:label-hop/tet:te-label/tet:technology: + /tet:explicit-route-exclude-objects/tet:route-object-exclude-object + /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 +--ro tsg? identityref +--ro ts-list? string augment /nw:networks/nw:network/nw:node/tet:te - /tet:information-source-entry/tet:connectivity-matrices - /tet:connectivity-matrix/tet:optimizations/tet:algorithm - /tet:metric/tet:optimization-metric - /tet:explicit-route-include-objects - /tet:route-object-include-object/tet:type/tet:label - /tet:label-hop/tet:te-label/tet:technology: + /tet:information-source-entry + /tet:connectivity-matrices/tet:connectivity-matrix + /tet:optimizations/tet:algorithm/tet:metric/tet:optimization-metric + /tet:explicit-route-include-objects/tet:route-object-include-object + /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 +--ro tsg? identityref +--ro ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices - /tet:connectivity-matrix/tet:path-properties - /tet:path-route-objects/tet:path-route-object/tet:type - /tet:label/tet:label-hop/tet:te-label/tet:technology: + /tet:connectivity-matrix/tet:path-properties/tet:path-route-objects + /tet:path-route-object/tet:type/tet:label + /tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 +--ro tsg? identityref +--ro ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:label-restrictions/tet:label-restriction: +--rw range-type? identityref +--rw tsg? identityref +--rw priority? uint8 @@ -727,20 +778,30 @@ /tet:label-restrictions/tet:label-restriction/tet:label-end /tet:te-label/tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities + /tet:label-restrictions/tet:label-restriction + /tet:label-step/tet:technology: + +--:(otn) + +--rw (otn-label-type)? + +--:(tributary-port) + | +--rw tpn-step? uint16 + +--:(tributary-slot) + +--rw ts? uint16 + augment /nw:networks/nw:network/nw:node/tet:te + /tet:tunnel-termination-point/tet:local-link-connectivities /tet:underlay/tet:primary-path/tet:path-element/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:underlay/tet:backup-path/tet:path-element/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: @@ -761,172 +822,198 @@ augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:optimizations/tet:algorithm/tet:metric /tet:optimization-metric/tet:explicit-route-include-objects /tet:route-object-include-object/tet:type/tet:label /tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string - augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities - /tet:path-properties/tet:path-route-objects - /tet:path-route-object/tet:type/tet:label/tet:label-hop - /tet:te-label/tet:technology: + /tet:path-properties/tet:path-route-objects/tet:path-route-object + /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 +--ro tsg? identityref +--ro ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:local-link-connectivity/tet:label-restrictions /tet:label-restriction: +--rw range-type? identityref +--rw tsg? identityref +--rw priority? uint8 augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:local-link-connectivity/tet:label-restrictions - /tet:label-restriction/tet:label-start/tet:te-label - /tet:technology: + /tet:label-restriction/tet:label-start/tet:te-label/tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:local-link-connectivity/tet:label-restrictions - /tet:label-restriction/tet:label-end/tet:te-label - /tet:technology: + /tet:label-restriction/tet:label-end/tet:te-label/tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 + + augment /nw:networks/nw:network/nw:node/tet:te + /tet:tunnel-termination-point/tet:local-link-connectivities + /tet:local-link-connectivity/tet:label-restrictions + /tet:label-restriction/tet:label-step/tet:technology: + +--:(otn) + +--rw (otn-label-type)? + +--:(tributary-port) + | +--rw tpn-step? uint16 + +--:(tributary-slot) + +--rw ts? uint16 augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:local-link-connectivity/tet:underlay/tet:primary-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:local-link-connectivity/tet:underlay/tet:backup-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities - /tet:local-link-connectivity/tet:optimizations/tet:algorithm - /tet:metric/tet:optimization-metric - /tet:explicit-route-exclude-objects - /tet:route-object-exclude-object/tet:type/tet:label - /tet:label-hop/tet:te-label/tet:technology: + /tet:local-link-connectivity/tet:optimizations + /tet:algorithm/tet:metric/tet:optimization-metric + /tet:explicit-route-exclude-objects/tet:route-object-exclude-object + /tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:local-link-connectivity/tet:optimizations/tet:algorithm - /tet:metric/tet:optimization-metric - /tet:explicit-route-include-objects + /tet:metric/tet:optimization-metric/tet:explicit-route-include-objects /tet:route-object-include-object/tet:type/tet:label /tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string + augment /nw:networks/nw:network/nw:node/tet:te /tet:tunnel-termination-point/tet:local-link-connectivities /tet:local-link-connectivity/tet:path-properties /tet:path-route-objects/tet:path-route-object/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(otn) +--ro tpn? uint16 +--ro tsg? identityref +--ro ts-list? string - augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes - /tet:underlay/tet:primary-path/tet:path-element/tet:type - /tet:label/tet:label-hop/tet:te-label/tet:technology: + augment /nw:networks/nw:network/nt:link/tet:te + /tet:te-link-attributes/tet:underlay/tet:primary-path + /tet:path-element/tet:type/tet:label/tet:label-hop + /tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string - augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes - /tet:underlay/tet:backup-path/tet:path-element/tet:type - /tet:label/tet:label-hop/tet:te-label/tet:technology: + augment /nw:networks/nw:network/nt:link/tet:te + /tet:te-link-attributes/tet:underlay/tet:backup-path + /tet:path-element/tet:type/tet:label/tet:label-hop + /tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string - augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes - /tet:label-restrictions/tet:label-restriction: + augment /nw:networks/nw:network/nt:link/tet:te + /tet:te-link-attributes/tet:label-restrictions + /tet:label-restriction: +--rw range-type? identityref +--rw tsg? identityref +--rw priority? uint8 - augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes - /tet:label-restrictions/tet:label-restriction - /tet:label-start/tet:te-label/tet:technology: + augment /nw:networks/nw:network/nt:link/tet:te + /tet:te-link-attributes/tet:label-restrictions + /tet:label-restriction/tet:label-start/tet:te-label + /tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 - augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes - /tet:label-restrictions/tet:label-restriction/tet:label-end - /tet:te-label/tet:technology: + augment /nw:networks/nw:network/nt:link/tet:te + /tet:te-link-attributes/tet:label-restrictions + /tet:label-restriction/tet:label-end/tet:te-label + /tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 augment /nw:networks/nw:network/nt:link/tet:te + /tet:te-link-attributes/tet:label-restrictions + /tet:label-restriction/tet:label-step/tet:technology: + +--:(otn) + +--rw (otn-label-type)? + +--:(tributary-port) + | +--rw tpn-step? uint16 + +--:(tributary-slot) + +--rw ts? uint16 + augment /nw:networks/nw:network/nt:link/tet:te /tet:information-source-entry/tet:label-restrictions /tet:label-restriction: +--ro range-type? identityref +--ro tsg? identityref +--ro priority? uint8 augment /nw:networks/nw:network/nt:link/tet:te /tet:information-source-entry/tet:label-restrictions - /tet:label-restriction/tet:label-start/tet:te-label - /tet:technology: + /tet:label-restriction/tet:label-start/tet:te-label/tet:technology: +--:(otn) +--ro (otn-label-type)? +--:(tributary-port) | +--ro tpn? uint16 +--:(tributary-slot) +--ro ts? uint16 augment /nw:networks/nw:network/nt:link/tet:te /tet:information-source-entry/tet:label-restrictions - /tet:label-restriction/tet:label-end/tet:te-label - /tet:technology: - + /tet:label-restriction/tet:label-end/tet:te-label/tet:technology: +--:(otn) +--ro (otn-label-type)? +--:(tributary-port) | +--ro tpn? uint16 +--:(tributary-slot) +--ro ts? uint16 + augment /nw:networks/nw:network/nt:link/tet:te + /tet:information-source-entry/tet:label-restrictions + /tet:label-restriction/tet:label-step/tet:technology: + +--:(otn) + +--ro (otn-label-type)? + +--:(tributary-port) + | +--ro tpn-step? uint16 + +--:(tributary-slot) + +--ro ts? uint16 augment /nw:networks/tet:te/tet:templates/tet:link-template /tet:te-link-attributes/tet:underlay/tet:primary-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(otn) +--rw tpn? uint16 +--rw tsg? identityref +--rw ts-list? string augment /nw:networks/tet:te/tet:templates/tet:link-template /tet:te-link-attributes/tet:underlay/tet:backup-path @@ -955,25 +1042,33 @@ augment /nw:networks/tet:te/tet:templates/tet:link-template /tet:te-link-attributes/tet:label-restrictions /tet:label-restriction/tet:label-end/tet:te-label /tet:technology: +--:(otn) +--rw (otn-label-type)? +--:(tributary-port) | +--rw tpn? uint16 +--:(tributary-slot) +--rw ts? uint16 + augment /nw:networks/tet:te/tet:templates/tet:link-template + /tet:te-link-attributes/tet:label-restrictions + /tet:label-restriction/tet:label-step/tet:technology: + +--:(otn) + +--rw (otn-label-type)? + +--:(tributary-port) + | +--rw tpn-step? uint16 + +--:(tributary-slot) + +--rw ts? uint16 4. The YANG Code file "ietf-otn-topology.yang" - module ietf-otn-topology { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-otn-topology"; prefix "otntopo"; import ietf-network { prefix "nw"; reference "RFC 8345: A YANG Data Model for Network Topologies"; } @@ -982,26 +1077,24 @@ prefix "nt"; reference "RFC 8345: A YANG Data Model for Network Topologies"; } import ietf-te-topology { prefix "tet"; reference "I-D.ietf-teas-yang-te-topo: YANG Data Model for Traffic Engineering (TE) Topologies"; } - import ietf-otn-types { prefix "otn-types"; reference - "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic - Engineering Tunnels and Interfaces"; + "I-D.ietf-ccamp-otn-tunnel-model: OTN Tunnel YANG Model"; } organization "IETF CCAMP Working Group"; contact "WG Web: WG List: Editor: Haomian Zheng @@ -1027,45 +1120,45 @@ Editor: Lei Wang Editor: Oscar Gonzalez de Dios "; description "This module defines a protocol independent Layer 1/ODU topology data model. - Copyright (c) 2018 IETF Trust and the persons + Copyright (c) 2019 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 (https://trustee.ietf.org/license-info)."; - revision 2018-08-23 { + revision 2019-02-25 { description - "Initial Revision"; + "draft-ietf-ccamp-otn-topo-yang-06"; reference "RFC XXXX: A YANG Data Model for Optical Transport Network Topology"; // RFC Ed.: replace XXXX with actual RFC number, update date // information and remove this note } /* * Groupings */ + grouping otn-link-attributes { description "link attributes for OTN"; - leaf tsg { type identityref { base otn-types:tributary-slot-granularity; } description "Tributary slot granularity."; reference "G.709/Y.1331, February 2016: Interfaces for the Optical Transport Network (OTN)"; } leaf distance { @@ -1485,21 +1577,34 @@ + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:te-label/tet:technology" { when "../../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; - + } + } + /* Augment label restrictions step of connectivity-matrices */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:label-restrictions/tet:label-restriction/tet:label-step/" + + "tet:technology" { + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; } } /* Augment label hop of underlay primary path of connectivity-matrices */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:underlay/tet:primary-path/tet:path-element/" + "tet:type/tet:label/tet:label-hop/" + "tet:te-label/tet:technology" { when "../../../../../../../../../" @@ -1619,28 +1722,46 @@ /* Augment ingress label restrictions end of connectivity-matrix */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:connectivity-matrix/tet:from/" + "tet:label-restrictions/tet:label-restriction/tet:label-end/" + "tet:te-label/tet:technology" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { + description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment ingress label restrictions step of connectivity-matrix */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:from/" + + "tet:label-restrictions/tet:label-restriction/tet:label-step/" + + "tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } + /* Augment egress label restrictions of connectivity-matrix */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:connectivity-matrix/tet:to/" + "tet:label-restrictions/tet:label-restriction" { when "../../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; @@ -1674,27 +1796,45 @@ + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment egress label restrictions step of connectivity-matrix */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:te-node-attributes/tet:connectivity-matrices/" + + "tet:connectivity-matrix/tet:to/" + + "tet:label-restrictions/tet:label-restriction/tet:label-step/" + + "tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } + /* Augment label hop of underlay primary path of connectivity-matrix */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:connectivity-matrix/" + "tet:underlay/tet:primary-path/tet:path-element/" + "tet:type/tet:label/tet:label-hop/" + "tet:te-label/tet:technology" { + when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-path-label; } } @@ -1811,20 +1948,35 @@ + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment label restrictions step of connectivity-matrices information-source */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/" + + "tet:connectivity-matrices/tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } /* Augment label hop of underlay primary path of connectivity-matrices information-source */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" { when "../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } @@ -1947,20 +2098,38 @@ + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment ingress label restrictions step of connectivity-matrix information-source */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:from/tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } + /* Augment egress label restrictions of connectivity-matrix information-source */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices/" + "tet:connectivity-matrix/" + "tet:to/tet:label-restrictions/tet:label-restriction" { when "../../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; @@ -1995,20 +2163,37 @@ + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment egress label restrictions step of connectivity-matrix information-source */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:information-source-entry/tet:connectivity-matrices/" + + "tet:connectivity-matrix/" + + "tet:to/tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } + /* Augment label hop of underlay primary path of connectivity-matrix information-source */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices/" + "tet:connectivity-matrix/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; @@ -2131,20 +2315,36 @@ when "../../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment label restrictions step of local-link-connectivities */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:label-restrictions/tet:label-restriction/tet:label-step/" + + "tet:technology"{ + when "../../../../../../../nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } + /* Augment label hop of underlay primary path of local-link-connectivities */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:tunnel-termination-point/" + "tet:local-link-connectivities/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" { when "../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; @@ -2274,20 +2474,38 @@ + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment label restrictions step of local-link-connectivity (LLC) */ + augment "/nw:networks/nw:network/nw:node/tet:te/" + + "tet:tunnel-termination-point/" + + "tet:local-link-connectivities/" + + "tet:local-link-connectivity/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../../../" + + "nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } + /* Augment label hop of underlay primary path of local-link-connectivity (LLC) */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:tunnel-termination-point/" + "tet:local-link-connectivities/" + "tet:local-link-connectivity/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { @@ -2446,28 +2665,42 @@ when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment label restrictions step of TE link */ + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } + /* Augment label restrictions of TE link information-source */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:label-restrictions/tet:label-restriction" { when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; - } description "OTN label."; uses otn-types:otn-label-restriction; } /* Augment label restrictions start of TE link information-source */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:label-restrictions/tet:label-restriction/" + "tet:label-start/tet:te-label/tet:technology" { @@ -2488,20 +2721,34 @@ when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses otn-types:otn-link-label; } } + /* Augment label restrictions step of TE link information-source */ + augment "/nw:networks/nw:network/nt:link/tet:te/" + + "tet:information-source-entry/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { + when "../../../../../../nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + } + } /* Augment label hop of underlay primary path of TE link template */ augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:underlay/tet:primary-path/tet:path-element/tet:type/" + "tet:label/tet:label-hop/tet:te-label/tet:technology" { /* when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; @@ -2570,20 +2816,39 @@ when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } */ description "OTN label."; case otn { uses otn-types:otn-link-label; } } + + /* Augment label restrictions step of TE link template */ + augment "/nw:networks/tet:te/tet:templates/" + + "tet:link-template/tet:te-link-attributes/" + + "tet:label-restrictions/tet:label-restriction/" + + "tet:label-step/tet:technology" { +/* + when "../../../../../../nw:network-types/tet:te-topology/" + + "otntopo:otn-topology" { + description "Augment OTN TE label"; + } +*/ + description "OTN label."; + case otn { + uses otn-types:otn-label-step; + + } + } + } 5. IANA Considerations It is proposed that IANA should assign new URIs from the "IETF XML Registry" [RFC3688] as follows: URI: urn:ietf:params:xml:ns:yang:ietf-otn-topology Registrant Contact: The IESG XML: N/A; the requested URI is an XML namespace. This document @@ -2592,23 +2857,23 @@ otn-topology prefix: otntopo reference: RFC XXXX 6. Security Considerations The YANG module specified in this document defines a schema for data that 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]. + [RFC8446]. - The NETCONF access control model [RFC6536] provides the means to + The NETCONF access control model [RFC8341] provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default). These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations. These are the subtrees and data nodes @@ -2666,121 +2931,136 @@ Yanlei Zheng China Unicom Email: zhengyl@dimpt.com 9. References 9.1. Normative References [I-D.ietf-ccamp-otn-tunnel-model] - zhenghaomian@huawei.com, z., Guo, A., Busi, I., Sharma, - A., Rao, R., Belotti, S., Lopezalvarez, V., Li, Y., and Y. - Xu, "OTN Tunnel YANG Model", draft-ietf-ccamp-otn-tunnel- - model-04 (work in progress), August 2018. + Zheng, H., Guo, A., Busi, I., Sharma, A., Rao, R., + Belotti, S., Lopezalvarez, V., Li, Y., and Y. Xu, "OTN + Tunnel YANG Model", draft-ietf-ccamp-otn-tunnel-model-05 + (work in progress), August 2018. [I-D.ietf-teas-yang-te-topo] Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and O. Dios, "YANG Data Model for Traffic Engineering (TE) - Topologies", draft-ietf-teas-yang-te-topo-18 (work in - progress), June 2018. + Topologies", draft-ietf-teas-yang-te-topo-19 (work in + progress), February 2019. [ITU-T] ITU-, T., "SERIES G: TRANSMISSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORKS; Digital networks; Interfaces for the optical transport network", ITU-T Rec. G.709v5 , June 2016. + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + . + [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, . - [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security - (TLS) Protocol Version 1.2", RFC 5246, - DOI 10.17487/RFC5246, August 2008, - . - [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, . - [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration - Protocol (NETCONF) Access Control Model", RFC 6536, - DOI 10.17487/RFC6536, March 2012, - . - [RFC7138] Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and J. Drake, "Traffic Engineering Extensions to OSPF for GMPLS Control of Evolving G.709 Optical Transport Networks", RFC 7138, DOI 10.17487/RFC7138, March 2014, . [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016, . [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, . + [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration + Access Control Model", STD 91, RFC 8341, + DOI 10.17487/RFC8341, March 2018, + . + [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, . [RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., Ananthakrishnan, H., and X. Liu, "A YANG Data Model for Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 2018, . + [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol + Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, + . + 9.2. Informative References [I-D.ietf-ccamp-flexigrid-yang] Madrid, U., Perdices, D., Lopezalvarez, V., Dios, O., King, D., Lee, Y., and G. Galimberti, "YANG data model for Flexi-Grid Optical Networks", draft-ietf-ccamp-flexigrid- - yang-01 (work in progress), August 2018. + yang-02 (work in progress), October 2018. + + [I-D.ietf-ccamp-transport-nbi-app-statement] + Busi, I., King, D., Zheng, H., and Y. Xu, "Transport + Northbound Interface Applicability Statement", draft-ietf- + ccamp-transport-nbi-app-statement-04 (work in progress), + November 2018. [I-D.ietf-ccamp-wson-yang] - Lee, Y., Dhody, D., Guo, A., Lopezalvarez, V., King, D., - Yoon, B., and R. Vilata, "A Yang Data Model for WSON - Optical Networks", draft-ietf-ccamp-wson-yang-13 (work in - progress), August 2018. + Lee, Y., Dhody, D., Guo, A., Lopezalvarez, V., and D. + King, "A YANG Data Model for WSON (Wavelength Switched + Optical Networks)", draft-ietf-ccamp-wson-yang-18 (work in + progress), December 2018. [I-D.ietf-teas-actn-yang] - Lee, Y., zhenghaomian@huawei.com, z., Ceccarelli, D., - Yoon, B., Dios, O., Shin, J., and S. Belotti, - "Applicability of YANG models for Abstraction and Control - of Traffic Engineered Networks", draft-ietf-teas-actn- - yang-02 (work in progress), August 2018. + Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B., Dios, O., + Shin, J., and S. Belotti, "Applicability of YANG models + for Abstraction and Control of Traffic Engineered + Networks", draft-ietf-teas-actn-yang-03 (work in + progress), February 2019. [RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D. Ceccarelli, "Framework for GMPLS and PCE Control of G.709 Optical Transport Networks", RFC 7062, DOI 10.17487/RFC7062, November 2013, . [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, . + [RFC8453] Ceccarelli, D., Ed. and Y. Lee, Ed., "Framework for + Abstraction and Control of TE Networks (ACTN)", RFC 8453, + DOI 10.17487/RFC8453, August 2018, + . + Authors' Addresses Haomian Zheng Huawei Technologies - F3 R&D Center, Huawei Industrial Base, Bantian, Longgang District - Shenzhen, Guangdong 518129 - P.R.China + H1-1-A043S Huawei Industrial Base, Songshanhu + Dongguan, Guangdong 523808 + China Email: zhenghaomian@huawei.com Aihua Guo Huawei Technologies 12007 Sunrise Valley Drive, Suite 325 Reston, VA 20171 U.S.A Email: aihuaguo@huawei.com