1 module org-openroadm-otn-network-topology {
3 namespace "http://org/openroadm/otn/network/topology";
8 revision-date 2018-02-26;
10 import ietf-network-topology {
12 revision-date 2018-02-26;
14 import org-openroadm-network-types {
15 prefix org-openroadm-network-types;
16 revision-date 2020-05-29;
18 import org-openroadm-network-topology-types {
19 prefix org-openroadm-network-topology-types;
20 revision-date 2020-03-27;
22 import org-openroadm-xponder {
24 revision-date 2020-05-29;
26 import org-openroadm-common-network {
28 revision-date 2020-05-29;
36 "YANG definitions for network view of a ROADM
38 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
39 All other rights reserved.
41 Redistribution and use in source and binary forms, with or without modification,
42 are permitted provided that the following conditions are met:
44 * Redistributions of source code must retain the above copyright notice, this
45 list of conditions and the following disclaimer.
46 * Redistributions in binary form must reproduce the above copyright notice,
47 this list of conditions and the following disclaimer in the documentation and/or
48 other materials provided with the distribution.
49 * Neither the Members of the Open ROADM MSA Agreement nor the names of its
50 contributors may be used to endorse or promote products derived from this software
51 without specific prior written permission.
53 THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
54 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
55 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
56 IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
57 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
58 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
59 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
60 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
61 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
62 POSSIBILITY OF SUCH DAMAGE.";
100 revision 2018-03-30 {
104 revision 2017-12-15 {
108 revision 2017-09-29 {
113 deviation "/nd:networks/nd:network/nd:node/cnet:node-type" {
115 must "(not /nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology) or
116 (/nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology and
117 (../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'TPDR' or
118 ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI'))" {
119 error-message "Invalid node type for otn-topology";
121 "The type of a node in the OTN topology";
126 deviation "/nd:networks/nd:network/nd:node/nwt:termination-point/cnet:tp-type" {
128 "Defines which TP types can be instantiated on which Node types";
130 must "(/nd:network/nd:node/cnet:node-type != 'MUXPDR' and ../../cnet:node-type != 'SWITCH' and ../../cnet:node-type != 'TPDR'
131 and ../cnet:node-type != 'REGEN' and ../cnet:node-type != 'REGEN-UNI') or
132 ((../../cnet:node-type = 'MUXPDR' or ../../cnet:node-type = 'SWITCH' or ../../cnet:node-type = 'TPDR' or
133 ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI') and
134 (../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'))" {
135 error-message "Invalid TP for node type Xponder";
140 deviation "/nd:networks/nd:network/nwt:link/cnet:link-type" {
142 must "(not /nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology) or
143 (/nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology and ../cnet:link-type = 'OTN-LINK')" {
144 error-message "Invalid link type for otn-topology";
146 "The valid link type in the OTN topology is 'OTN-LINK'";
151 augment "/nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network" {
153 "Introduce new network type for the Open ROADM OTN network topology";
154 container otn-topology {
155 presence "indicates OTN topology for Transponder, Muxponder, Switchponder and OTN-switch";
159 augment "/nd:networks/nd:network/nd:node" {
160 when '../nd:network-types/cnet:openroadm-common-network/otn-topo:otn-topology';
162 "This augmentations adds the OTN Node type to the generic node
163 definition and defines node-specific attributes for each node type
164 in the OTN Topology.";
165 container tp-bandwidth-sharing {
166 when "../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'TPDR'";
167 uses org-openroadm-network-topology-types:xpdr-tp-bandwidth-sharing;
169 container switching-pools {
170 when "../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'TPDR'";
172 "ODU Switching pool";
173 uses org-openroadm-network-topology-types:xpdr-odu-switching-pools;
175 container xpdr-attributes {
176 when "../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'TPDR' or
177 ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI'";
179 "Topology-related attributes for Xponder nodes";
180 uses xpdr:xpdr-topo-node-attributes;
184 augment "/nd:networks/nd:network/nd:node/nwt:termination-point" {
185 when '../../nd:network-types/cnet:openroadm-common-network/otn-topo:otn-topology';
187 "Defines the type of a termination point in the OTN topology and
188 TP-specific attributes for each termination point type.";
189 container tp-supported-interfaces {
190 when "../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'";
192 "Supported interface capability on the port.";
193 uses org-openroadm-network-types:xpdr-tp-supported-interfaces;
195 container xpdr-tp-port-connection-attributes {
196 when "../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'";
198 "Topology-related attributes for Xpdr nodes";
199 uses xpdr:xpdr-otn-tp-attributes;
200 uses xpdr:xpdr-port-connection-attributes;
201 uses org-openroadm-network-topology-types:xpdr-otn-tail-attributes;
202 uses xpdr:supported-client-services;
206 augment "/nd:networks/nd:network/nwt:link" {
207 when '../nd:network-types/cnet:openroadm-common-network/otn-topo:otn-topology';
209 "This augmentation defines Logical link types in the OTN topology connecting OTN elements";
210 leaf available-bandwidth {
213 "Available bandwidth between OTN elements";
215 leaf used-bandwidth {
218 "Used bandwidth between OTN elements";
223 "ODU protection flag";