1 module org-openroadm-network-topology {
3 namespace "http://org/openroadm/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-srg {
20 revision-date 2020-05-29;
22 import org-openroadm-degree {
24 revision-date 2020-05-29;
26 import org-openroadm-xponder {
28 revision-date 2020-05-29;
30 import org-openroadm-external-pluggable {
32 revision-date 2020-05-29;
34 import org-openroadm-link {
36 revision-date 2020-05-29;
38 import org-openroadm-common-network {
40 revision-date 2020-05-29;
48 "YANG definitions for network view of a ROADM
50 Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
51 All other rights reserved.
53 Redistribution and use in source and binary forms, with or without modification,
54 are permitted provided that the following conditions are met:
56 * Redistributions of source code must retain the above copyright notice, this
57 list of conditions and the following disclaimer.
58 * Redistributions in binary form must reproduce the above copyright notice,
59 this list of conditions and the following disclaimer in the documentation and/or
60 other materials provided with the distribution.
61 * Neither the Members of the Open ROADM MSA Agreement nor the names of its
62 contributors may be used to endorse or promote products derived from this software
63 without specific prior written permission.
65 THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
66 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
67 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
68 IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
69 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
70 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
71 OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
72 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
73 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
74 POSSIBILITY OF SUCH DAMAGE.";
100 revision 2018-11-30 {
104 revision 2018-09-28 {
108 revision 2018-05-30 {
112 revision 2018-03-30 {
116 revision 2017-12-15 {
120 revision 2017-09-29 {
124 revision 2017-07-28 {
126 "Version 2.0.1 - added revision-date to imports";
128 revision 2017-06-26 {
133 deviation "/nd:networks/nd:network/nd:node/cnet:node-type" {
135 must "(not /nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology) or
136 (/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology and
137 (../cnet:node-type = 'DEGREE' or ../cnet:node-type = 'SRG' or ../cnet:node-type = 'TPDR' or ../cnet:node-type = 'SWITCH' or
138 ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI' or ../cnet:node-type = 'EXT-PLUGGABLE' or
139 ../cnet:node-type = 'MUXPDR'))" {
140 error-message "Invalid node type for openroadm-topology";
142 "The valid node types in the ROADM topology are 'SRG', 'DEGREE',
143 'TPDR', 'SWITCH', 'REGEN', 'REGEN-UNI', 'EXT-PLUGGABLE' and 'MUXPDR'";
148 deviation "/nd:networks/nd:network/nd:node/nwt:termination-point/cnet:tp-type" {
150 "Defines which TP types can be instantiated on which Node types";
152 must "/nd:network/nd:node/cnet:node-type != 'DEGREE' or (../../cnet:node-type = 'DEGREE' and
153 (../cnet:tp-type = 'DEGREE-TX-TTP' or ../cnet:tp-type = 'DEGREE-RX-TTP' or ../cnet:tp-type = 'DEGREE-TXRX-TTP' or
154 ../cnet:tp-type = 'DEGREE-TX-CTP' or ../cnet:tp-type = 'DEGREE-RX-CTP' or ../cnet:tp-type = 'DEGREE-TXRX-CTP'))" {
155 error-message "Invalid TP for node type 'DEGREE'";
157 must "/nd:network/nd:node/cnet:node-type != 'SRG' or (../../cnet:node-type = 'SRG' and
158 (../cnet:tp-type = 'SRG-TX-CP' or ../cnet:tp-type = 'SRG-RX-CP' or ../cnet:tp-type = 'SRG-TXRX-CP' or
159 ../cnet:tp-type = 'SRG-RX-PP' or ../cnet:tp-type = 'SRG-TX-PP' or ../cnet:tp-type = 'SRG-TXRX-PP'))" {
160 error-message "Invalid TP for node type 'SRG'";
162 must " (/nd:network/nd:node/cnet:node-type != 'TPDR' and ../../cnet:node-type != 'MUXPDR' and ../../cnet:node-type != 'REGEN' and
163 ../../cnet:node-type != 'REGEN-UNI' and ../../cnet:node-type != 'SWITCH')
164 or ((../../cnet:node-type = 'TPDR' or ../../cnet:node-type = 'MUXPDR' or ../../cnet:node-type = 'REGEN' or
165 ../../cnet:node-type = 'REGEN-UNI' or ../../cnet:node-type = 'SWITCH') and
166 (../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'))" {
167 error-message "Invalid TP for node type 'XPONDER'";
169 must "/nd:network/nd:node/cnet:node-type != 'EXT-PLUGGABLE' or (../../cnet:node-type = 'EXT-PLUGGABLE' and ../cnet:tp-type = 'EXT-PLUGGABLE-TP')" {
170 error-message "Invalid TP for node type 'EXT-PLUGGABLE'";
175 deviation "/nd:networks/nd:network/nwt:link/cnet:link-type" {
177 must "(not /nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology) or
178 (/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology and
179 (../cnet:link-type = 'ROADM-TO-ROADM' or ../cnet:link-type = 'ADD-LINK' or ../cnet:link-type = 'DROP-LINK' or
180 ../cnet:link-type = 'EXPRESS-LINK' or ../cnet:link-type = 'XPONDER-INPUT' or ../cnet:link-type = 'XPONDER-OUTPUT'))" {
181 error-message "Invalid link type for openroadm-topology";
183 "The valid link types in the ROADM topology are 'ROADM-TO-ROADM', 'ADD-LINK',
184 'DROP-LINK', 'EXPRESS-LINK', 'XPONDER-INPUT', 'XPONDER-OUTPUT'";
189 augment "/nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network" {
191 "Introduce new network type for the Open ROADM optical
193 container openroadm-topology {
194 presence "indicates optical network topology for Open ROADMs";
198 augment "/nd:networks/nd:network/nd:node" {
199 when '../nd:network-types/cnet:openroadm-common-network/topo:openroadm-topology';
201 "This augmentations adds the ROADM Node type to the generic node
202 definition and defines node-specific attributes for each node type
203 in the ROADM Topology.";
204 container srg-attributes {
205 when "../cnet:node-type = 'SRG'";
207 "Topology-related attributes for SRG nodes";
208 uses srg:srg-node-attributes;
209 uses org-openroadm-network-types:available-freq-map;
210 uses org-openroadm-network-types:type-variety-grp;
212 container degree-attributes {
213 when "../cnet:node-type = 'DEGREE'";
215 "Topology-related attributes for degree nodes";
216 uses dgr:degree-node-attributes;
217 uses org-openroadm-network-types:available-freq-map;
218 uses org-openroadm-network-types:type-variety-grp;
220 container xpdr-attributes {
221 when "../cnet:node-type = 'TPDR' or ../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'REGEN' or
222 ../cnet:node-type = 'REGEN-UNI' or ../cnet:node-type = 'SWITCH'";
224 "Topology-related attributes for Xponder nodes";
225 uses xpdr:xpdr-topo-node-attributes;
229 augment "/nd:networks/nd:network/nd:node/nwt:termination-point" {
230 when '../../nd:network-types/cnet:openroadm-common-network/topo:openroadm-topology';
232 "Defines the type of a termination point in the ROADM topology and
233 TP-specific attributes for each termination point type.";
234 container tx-ttp-attributes {
235 when "../cnet:tp-type = 'DEGREE-TX-TTP' or ../cnet:tp-type = 'DEGREE-TXRX-TTP'";
237 "There must be only one TP of type DEGREE-TX-TTP in any given
239 uses dgr:degree-used-wavelengths;
240 uses org-openroadm-network-types:available-freq-map;
242 container rx-ttp-attributes {
243 when "../cnet:tp-type = 'DEGREE-RX-TTP'";
245 "There must be only one TP of type DEGREE-RX-TTP in any given
247 uses dgr:degree-used-wavelengths;
248 uses org-openroadm-network-types:available-freq-map;
250 container ctp-attributes {
251 when "../cnet:tp-type = 'DEGREE-TX-CTP' or ../cnet:tp-type = 'DEGREE-RX-CTP' or ../cnet:tp-type = 'DEGREE-TXRX-CTP'";
252 uses org-openroadm-network-types:available-freq-map;
254 container cp-attributes {
255 when "../cnet:tp-type = 'SRG-TX-CP' or ../cnet:tp-type = 'SRG-RX-CP' or ../cnet:tp-type = 'SRG-TXRX-CP'";
257 "This list is created to accommodate fixed grid (1.2.1) as well as flex grid (2.0 above). In case of fixed grid
258 index number will refer to one of the 96 WL defined in the wavelength map file. In case of flex grid this
259 will hold list of used spectra";
260 uses org-openroadm-network-types:available-freq-map;
262 container pp-attributes {
263 when "../cnet:tp-type = 'SRG-TXRX-PP' or ../cnet:tp-type = 'SRG-TX-PP' or ../cnet:tp-type = 'SRG-RX-PP' ";
265 "This list is created to accommodate fixed grid (1.2.1) as well as flex grid (2.0 above). In case of fixed grid
266 index number will refer to one of the 96 WL defined in the wavelength map file. In case of flex grid this
267 will hold list of used spectra";
268 list used-wavelength {
270 uses org-openroadm-network-types:wavelengths;
272 uses org-openroadm-network-types:available-freq-map;
274 container xpdr-client-attributes {
275 when "../../cnet:node-type = 'TPDR' and ../cnet:tp-type = 'XPONDER-CLIENT'";
277 "Topology layer will allow client TPs only for Transponder nodes";
278 uses xpdr:xpdr-connection-attributes;
279 uses xpdr:xpdr-port-connection-attributes;
280 uses xpdr:supported-client-services;
282 container xpdr-network-attributes {
283 when "../cnet:tp-type = 'XPONDER-NETWORK'";
284 uses xpdr:xpdr-connection-attributes;
285 uses xpdr:xpdr-port-connection-attributes;
286 uses xpdr:xpdr-mode-attributes;
287 uses org-openroadm-network-types:type-variety-grp;
289 container xpdr-port-attributes {
290 when "../cnet:tp-type = 'XPONDER-PORT'";
291 uses xpdr:xpdr-connection-attributes;
292 uses xpdr:xpdr-port-connection-attributes;
293 uses xpdr:xpdr-mode-attributes;
294 uses org-openroadm-network-types:type-variety-grp;
296 container ext-pluggable-attributes {
297 when "../cnet:tp-type = 'EXT-PLUGGABLE-TP'";
298 uses plg:pluggable-tp-attributes;
299 uses xpdr:xpdr-port-connection-attributes;
300 uses xpdr:xpdr-mode-attributes;
301 uses org-openroadm-network-types:type-variety-grp;
305 augment "/nd:networks/nd:network/nwt:link" {
306 when '../nd:network-types/cnet:openroadm-common-network/topo:openroadm-topology';
308 "This augmentation defines ROADM link types in the ROADM topology";
310 when "../cnet:link-type = 'ROADM-TO-ROADM'";
313 "defines whether an ROADM-TO-ROADM Link includes line amplifiers or not";
315 container OMS-attributes {
316 when "../cnet:link-type = 'ROADM-TO-ROADM'";
320 when "../../amplified = 'false'";
323 uses link:span-attributes;
325 container amplified-link {
326 when "../../amplified = 'true'";
328 "when amplified is set to true, rather than a simple OMS section
329 we have an amplified link";
330 uses link:amplified-link-attributes;