CCAMP Working Group | H. Zheng |
Internet-Draft | A. Guo |
Intended status: Standards Track | I. Busi |
Expires: January 8, 2020 | Huawei Technologies |
A. Sharma | |
X. Liu | |
Volta Networks | |
S. Belotti | |
Nokia | |
Y. Xu | |
CAICT | |
L. Wang | |
China Mobile | |
O. Gonzalez de Dios | |
Telefonica | |
July 07, 2019 |
A YANG Data Model for Optical Transport Network Topology
draft-ietf-ccamp-otn-topo-yang-07
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, for OTN topology related operations such as obtaining the relevant topology resource information.
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].
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 January 8, 2020.
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.
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 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. Furthermore, it can be used by an application for the following purposes (but not limited to):
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 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 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.
A simplified graphical representation of the data model is used in this document. The meaning of the symbols in the YANG data tree presented later in this document is defined in [RFC8340]. They are provided below for reference.
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 [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 number a link can support per priority level. For example, for a ODU3 link, it may advertise 32*ODU0, 16*ODU1, 4*ODU2 available, 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. 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].
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 client-svc! +--rw client-facing? boolean +--rw supported-client-signal* identityref 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: +--:(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: +--:(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: +--:(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: +--:(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: +--:(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: +--:(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: +--:(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/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: +--:(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: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: +--:(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 /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/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 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: +--:(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: +--:(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: +--:(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: +--:(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 +--ro tsg? identityref +--ro ts-list? string 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: +--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:from /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: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: +--:(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 /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: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:te-node-attributes /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) +--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: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:information-source-entry/tet:connectivity-matrices /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:label-restrictions/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/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /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: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 +--ro tsg? identityref +--ro ts-list? string augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/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: +--:(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: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: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:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:from/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:from/tet:label-restrictions /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/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: +--:(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: +--:(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-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: +--:(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: +--:(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: +--:(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 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-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: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: +--:(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: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: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: +--:(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: +--:(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: +--:(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: +--:(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: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: +--:(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: +--:(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: +--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: +--:(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: +--:(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: +--:(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: +--:(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 /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:label-restrictions /tet:label-restriction: +--rw range-type? identityref +--rw tsg? identityref +--rw priority? uint8 augment /nw:networks/tet:te/tet:templates/tet:link-template /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/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
<CODE BEGINS> 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"; } import ietf-network-topology { 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-layer1-types { prefix "layer1-types"; reference "I-D.ietf-ccamp-layer1-types: A YANG Data Model for Layer 1 Types"; } organization "IETF CCAMP Working Group"; contact "WG Web: <http://tools.ietf.org/wg/ccamp/> WG List: <mailto:ccamp@ietf.org> Editor: Haomian Zheng <mailto:zhenghaomian@huawei.com> Editor: Aihua Guo <mailto:aihuaguo@huawei.com> Editor: Italo Busi <mailto:italo.busi@huawei.com> Editor: Anurag Sharma <mailto:ansha@google.com> Editor: Xufeng Liu <mailto:xufeng.liu.ietf@gmail.com> Editor: Sergio Belotti <mailto:sergio.belotti@nokia.com> Editor: Yunbin Xu <mailto:xuyunbin@ritt.cn> Editor: Lei Wang <mailto:wangleiyj@chinamobile.com> Editor: Oscar Gonzalez de Dios <mailto:oscar.gonzalezdedios@telefonica.com>"; description "This module defines a protocol independent Layer 1/ODU topology data model. 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 2019-07-07 { description "Initial Revision"; 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 layer1-types:tributary-slot-granularity; } description "Tributary slot granularity."; reference "G.709/Y.1331, February 2016: Interfaces for the Optical Transport Network (OTN)"; } leaf distance { type uint32; description "distance in the unit of kilometers"; } } /* * Open issue: move to otn-types to allow reuse in WSON and Flexi-grid topology models? */ grouping otn-tp-attributes { description "tp attributes for OTN"; container client-svc { presence "client-facing LTP."; description "OTN LTP Service attributes."; leaf client-facing { type boolean; default 'false'; description "Indicates whether this LTP is a client-facing LTP."; } leaf-list supported-client-signal { type identityref { base layer1-types:client-signal; } description "List of client signal types supported by the LTP."; } } } /* * Data nodes */ augment "/nw:networks/nw:network/nw:network-types/" + "tet:te-topology" { container otn-topology { presence "indicates a topology type of Optical Transport Network (OTN)-electrical layer."; description "otn topology type"; } description "augment network types to include otn newtork"; } augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes" { when "../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment only for otn network."; } description "Augment link configuration"; uses otn-link-attributes; } augment "/nw:networks/nw:network/nw:node/nt:termination-point/" + "tet:te" { when "../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment only for otn network"; } description "OTN TP attributes config in ODU topology."; uses otn-tp-attributes; } /* * Augment TE bandwidth */ /* Augment maximum LSP bandwidth of link terminationpoint (LTP) */ 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" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE bandwidth"; } description "OTN bandwidth."; case otn { uses layer1-types:otn-path-bandwidth; } } /* Augment bandwidth path constraints of connectivity-matrices */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/tet:connectivity-matrices/" + "tet:path-constraints/tet:te-bandwidth/tet:technology" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE bandwidth"; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment bandwidth path constraints of connectivity-matrix */ 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" { when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE bandwidth"; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment bandwidth path constraints of connectivity-matrices information-source */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/tet:connectivity-matrices/" + "tet:path-constraints/tet:te-bandwidth/tet:technology" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE bandwidth"; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment bandwidth path constraints 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:path-constraints/tet:te-bandwidth/tet:technology" { when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE bandwidth"; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment client bandwidth of tunnel termination point (TTP) */ 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" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE bandwidth"; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment bandwidth path constraints of local-link-connectivities */ 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" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE bandwidth"; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment bandwidth path constraints 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:path-constraints/" + "tet:te-bandwidth/tet:technology" { when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE bandwidth"; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment maximum LSP bandwidth of TE link */ 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" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } description "OTN bandwidth."; case otn { uses layer1-types:otn-path-bandwidth; } } /* Augment maximum bandwidth of TE link */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes/" + "tet:max-link-bandwidth/" + "tet:te-bandwidth/tet:technology" { when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment maximum reservable bandwidth of TE link */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes/" + "tet:max-resv-link-bandwidth/" + "tet:te-bandwidth/tet:technology" { when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment unreserved bandwidth of TE Link */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes/" + "tet:unreserved-bandwidth/" + "tet:te-bandwidth/tet:technology" { when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment maximum LSP bandwidth of TE link information-source */ 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" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } description "OTN bandwidth."; case otn { uses layer1-types:otn-path-bandwidth; } } /* Augment maximum bandwidth of TE link information-source */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:max-link-bandwidth/" + "tet:te-bandwidth/tet:technology" { when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment maximum reservable bandwidth of TE link information-source */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:max-resv-link-bandwidth/" + "tet:te-bandwidth/tet:technology" { when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment unreserved bandwidth of TE link information-source */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:information-source-entry/" + "tet:unreserved-bandwidth/" + "tet:te-bandwidth/tet:technology" { when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment maximum LSP bandwidth of TE link template */ 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" { /* when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } */ description "OTN bandwidth."; case otn { uses layer1-types:otn-path-bandwidth; } } /* Augment maximum bandwidth of TE link template */ augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:max-link-bandwidth/" + "tet:te-bandwidth/tet:technology" { /* when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } */ description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment maximum reservable bandwidth of TE link template */ augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:max-resv-link-bandwidth/" + "tet:te-bandwidth/tet:technology" { /* when "../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } */ description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* Augment unreserved bandwidth of TE link template */ augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:unreserved-bandwidth/" + "tet:te-bandwidth/tet:technology" { /* when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "OTN TE bandwidth."; } */ description "OTN bandwidth."; case otn { uses layer1-types:otn-link-bandwidth; } } /* * Augment TE label. */ /* Augment label restrictions 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" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label restriction."; uses layer1-types:otn-label-restriction; } /* Augment label restrictions start 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-start/" + "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 layer1-types:otn-link-label; } } /* Augment label restrictions end 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-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 layer1-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 layer1-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 "../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of underlay backup path of connectivity-matrices */ 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" { when "../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of route-exclude of connectivity-matrices */ 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" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of route-include of connectivity-matrices (added) */ 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" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of path-route of connectivity-matrices */ 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"{ when "../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment ingress 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:from/" + "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 layer1-types:otn-label-restriction; } /* Augment ingress label restrictions start 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-start/" + "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 layer1-types:otn-link-label; } } /* 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 layer1-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 layer1-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."; uses layer1-types:otn-label-restriction; } /* Augment egress label restrictions start 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-start/" + "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 layer1-types:otn-link-label; } } /* Augment egress 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:to/" + "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 layer1-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 layer1-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 layer1-types:otn-path-label; } } /* Augment label hop of underlay backup 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:backup-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 layer1-types:otn-path-label; } } /* Augment label hop of route-exclude of connectivity-matrix */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/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" { when "../../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of route-include of connectivity-matrix */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/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" { when "../../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of path-route of connectivity-matrix */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:te-node-attributes/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" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label restrictions 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" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; uses layer1-types:otn-label-restriction; } /* Augment label restrictions start 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-start/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 layer1-types:otn-link-label; } } /* Augment label restrictions end 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-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 layer1-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 layer1-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"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of underlay backup 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:backup-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 layer1-types:otn-path-label; } } /* Augment label hop of route-exclude of connectivity-matrices information-source */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/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" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of route-include of connectivity-matrices information-source */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/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" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of path-route of connectivity-matrices information-source */ augment "/nw:networks/nw:network/nw:node/tet:te/" + "tet:information-source-entry/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" { when "../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment ingress 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:from/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 layer1-types:otn-label-restriction; } /* Augment ingress label restrictions start 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-start/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 layer1-types:otn-link-label; } } /* Augment ingress label restrictions end 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-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 layer1-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 layer1-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."; uses layer1-types:otn-label-restriction; } /* Augment egress label restrictions start 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-start/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 layer1-types:otn-link-label; } } /* Augment egress label restrictions end 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-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 layer1-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 layer1-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"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of underlay backup 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:backup-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 layer1-types:otn-path-label; } } /* Augment label hop of route-exclude 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: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" { when "../../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of route-include 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: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" { when "../../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of path-route 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:path-properties/tet:path-route-objects/" + "tet:path-route-object/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 layer1-types:otn-path-label; } } /* Augment label restrictions 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" { when "../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; uses layer1-types:otn-label-restriction; } /* Augment label restrictions start 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-start/" + "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 layer1-types:otn-link-label; } } /* Augment label restrictions end 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-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 layer1-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 layer1-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"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of underlay backup 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:backup-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 layer1-types:otn-path-label; } } /* Augment label hop of route-exclude of local-link-connectivities */ 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-exclude-objects/" + "tet:route-object-exclude-object/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 layer1-types:otn-path-label; } } /* Augment label hop of route-include of local-link-connectivities */ 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" { when "../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of path-route of local-link-connectivities */ 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" { when "../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label restrictions 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" { when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; uses layer1-types:otn-label-restriction; } /* Augment label restrictions start 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-start/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 layer1-types:otn-link-label; } } /* Augment label restrictions end 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-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 layer1-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 layer1-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" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of underlay backup 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:backup-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 layer1-types:otn-path-label; } } /* Augment label hop of route-exclude 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: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" { when "../../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of route-include 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: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" { when "../../../../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of path-route 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:path-properties/tet:path-route-objects/" + "tet:path-route-object/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 layer1-types:otn-path-label; } } /* Augment label hop of underlay primary path of TE link */ 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" { when "../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of underlay backup path of TE link */ 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" { when "../../../../../../../../" + "nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label restrictions of TE link */ augment "/nw:networks/nw:network/nt:link/tet:te/" + "tet:te-link-attributes/" + "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 layer1-types:otn-label-restriction; } /* Augment label restrictions start of TE link */ 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" { when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-link-label; } } /* Augment label restrictions end of TE link */ 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" { when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-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 layer1-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 layer1-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" { when "../../../../../../../nw:network-types/tet:te-topology/" + "otntopo:otn-topology" { description "Augment OTN TE label"; } description "OTN label."; case otn { uses layer1-types:otn-link-label; } } /* Augment label restrictions end 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-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 layer1-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 layer1-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"; } */ description "OTN label."; case otn { uses layer1-types:otn-path-label; } } /* Augment label hop of underlay backup path of TE link template */ augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "tet:underlay/tet:backup-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 layer1-types:otn-path-label; } } /* Augment label restrictions of TE link template */ augment "/nw:networks/tet:te/tet:templates/" + "tet:link-template/tet:te-link-attributes/" + "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 layer1-types:otn-label-restriction; } /* Augment label restrictions start 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-start/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 layer1-types:otn-link-label; } } /* Augment label restrictions end 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-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 layer1-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 layer1-types:otn-label-step; } } } <CODE ENDS>
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 registers a YANG module in the YANG Module Names registry [RFC7950]. name: ietf-otn-topology namespace: urn:ietf:params:xml:ns:yang:ietf-otn-topology prefix: otntopo reference: RFC XXXX
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 [RFC8446].
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 and their sensitivity/vulnerability:
/nw:networks/nw:network/nw:network-types/tet:te-topology /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes /nw:networks/nw:network/nw:node/nt:termination-point/tet:te /nw:networks/nw:network/.../tet:te-bandwidth/tet:technology /nw:networks/nw:network/nw:node/tet:te/.../tet:label-restriction /nw:networks/nw:network/nw:node/.../tet:te-label/tet:technology Editors note: we are using simplified description by folding similar branches to avoid repetation.
Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. These are the subtrees and data nodes and their sensitivity/vulnerability:
Editors note: Currently there is no such data nodes, temporarily kept for review.
We would like to thank Igor Bryskin, Zhe Liu, Zheyu Fan and Daniele Ceccarelli for their comments and discussions.
Baoquan Rao
Huawei Technologies
Email: raobaoquan@huawei.com
Xian Zhang
Huawei Technologies
Email: zhang.xian@huawei.com
Huub van Helvoort
Hai Gaoming BV
the Netherlands
Email: huubatwork@gmail.com
Victor Lopez
Telefonica
Email: victor.lopezalvarez@telefonica.com
Yunbo Li
China Mobile
Email: liyunbo@chinamobile.com
Dieter Beller
Nokia
Email: dieter.beller@nokia.com
Yanlei Zheng
China Unicom
Email: zhengyl@dimpt.com