gnpy-api 0.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. gnpy_api-0.0.0.dist-info/METADATA +78 -0
  2. gnpy_api-0.0.0.dist-info/RECORD +40 -0
  3. gnpy_api-0.0.0.dist-info/WHEEL +5 -0
  4. gnpy_api-0.0.0.dist-info/licenses/AUTHORS +1 -0
  5. gnpy_api-0.0.0.dist-info/licenses/LICENSE +28 -0
  6. gnpy_api-0.0.0.dist-info/pbr.json +1 -0
  7. gnpy_api-0.0.0.dist-info/top_level.txt +1 -0
  8. gnpyapi/__init__.py +0 -0
  9. gnpyapi/core/__init__.py +12 -0
  10. gnpyapi/core/exception/__init__.py +1 -0
  11. gnpyapi/core/exception/config_error.py +14 -0
  12. gnpyapi/core/exception/equipment_error.py +14 -0
  13. gnpyapi/core/exception/exception_handler.py +34 -0
  14. gnpyapi/core/exception/path_computation_error.py +14 -0
  15. gnpyapi/core/exception/topology_error.py +13 -0
  16. gnpyapi/core/model/__init__.py +1 -0
  17. gnpyapi/core/model/error.py +17 -0
  18. gnpyapi/core/model/result.py +8 -0
  19. gnpyapi/core/route/__init__.py +1 -0
  20. gnpyapi/core/route/path_request_route.py +28 -0
  21. gnpyapi/core/route/status_route.py +8 -0
  22. gnpyapi/core/service/__init__.py +1 -0
  23. gnpyapi/core/service/config_service.py +4 -0
  24. gnpyapi/core/service/equipment_service.py +5 -0
  25. gnpyapi/core/service/path_request_service.py +36 -0
  26. gnpyapi/core/service/topology_service.py +5 -0
  27. gnpyapi/exampledata/planning_demand_example.json +1578 -0
  28. gnpyapi/tools/__init__.py +0 -0
  29. gnpyapi/yang/gnpy-api@2021-01-06.yang +81 -0
  30. gnpyapi/yang/gnpy-eqpt-config@2020-10-22.yang +442 -0
  31. gnpyapi/yang/gnpy-eqpt-config@2025-01-20.yang +770 -0
  32. gnpyapi/yang/gnpy-network-topology@2020-10-22.yang +300 -0
  33. gnpyapi/yang/gnpy-network-topology@2025-01-20.yang +594 -0
  34. gnpyapi/yang/gnpy-path-computation-simplified@2020-10-22.yang +559 -0
  35. gnpyapi/yang/gnpy-path-computation@2025-01-21.yang +632 -0
  36. gnpyapi/yang/ietf-layer0-types@2024-03-04.yang +2247 -0
  37. gnpyapi/yang/ietf-optical-impairment-topology@2024-05-21.yang +1776 -0
  38. gnpyapi/yang/ietf-routing-types@2017-12-04.yang +771 -0
  39. gnpyapi/yang/ietf-te-topology@2020-08-06.yang +1952 -0
  40. gnpyapi/yang/ietf-te-types@2022-10-21.yang +3458 -0
@@ -0,0 +1,1776 @@
1
+ module ietf-optical-impairment-topology {
2
+ yang-version 1.1;
3
+ namespace "urn:ietf:params:xml"
4
+ + ":ns:yang:ietf-optical-impairment-topology";
5
+ prefix "oit";
6
+
7
+ import ietf-network {
8
+ prefix "nw";
9
+ reference
10
+ "RFC 8345: A YANG Data Model for Network Topologies";
11
+ }
12
+
13
+ import ietf-network-topology {
14
+ prefix "nt";
15
+ reference
16
+ "RFC 8345: A YANG Data Model for Network Topologies";
17
+ }
18
+
19
+ import ietf-te-topology {
20
+ prefix "tet";
21
+ reference
22
+ "RFC 8795: YANG Data Model for Traffic Engineering (TE)
23
+ Topologies";
24
+ }
25
+
26
+ import ietf-te-types {
27
+ prefix "te-types";
28
+ reference
29
+ "RFC YYYY: Updated Common YANG Data Types for Traffic
30
+ Engineering";
31
+ }
32
+
33
+ /* Note: The RFC Editor will replace YYYY with the number assigned
34
+ to the RFC once draft-ietf-teas-rfc8776-update becomes an RFC.*/
35
+
36
+ import ietf-layer0-types {
37
+ prefix "l0-types";
38
+ reference
39
+ "RFC ZZZZ: A YANG Data Model for Layer 0 Types";
40
+ }
41
+
42
+ /* Note: The RFC Editor will replace ZZZZ with the number assigned
43
+ to the RFC once draft-ietf-ccamp-rfc9093-bis becomes an RFC.*/
44
+
45
+ organization
46
+ "IETF CCAMP Working Group";
47
+
48
+ contact
49
+ "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
50
+ WG List: <mailto:ccamp@ietf.org>
51
+
52
+ Editor: Young Lee <younglee.tx@gmail.com>
53
+ Editor: Haomian Zheng <zhenghaomian@huawei.com>
54
+ Editor: Nicola Sambo <nicosambo@gmail.com>
55
+ Editor: Victor Lopez <victor.lopez@nokia.com>
56
+ Editor: Gabriele Galimberti <ggalimbe@cisco.com>
57
+ Editor: Giovanni Martinelli <giomarti@cisco.com>
58
+ Editor: Jean-Luc Auge <jeanluc.auge@orange.com>
59
+ Editor: Le Rouzic Esther <esther.lerouzic@orange.com>
60
+ Editor: Julien Meuric <julien.meuric@orange.com>
61
+ Editor: Italo Busi <Italo.Busi@huawei.com>
62
+ Editor: Dieter Beller <dieter.beller@nokia.com>
63
+ Editor: Sergio Belotti <Sergio.belotti@nokia.com>
64
+ Editor: Griseri Enrico <enrico.griseri@nokia.com>
65
+ Editor: Gert Grammel <ggrammel@juniper.net>";
66
+
67
+ description
68
+ "This module contains a collection of YANG definitions for
69
+ impairment-aware optical networks.
70
+
71
+ Copyright (c) 2024 IETF Trust and the persons identified as
72
+ authors of the code. All rights reserved.
73
+
74
+ Redistribution and use in source and binary forms, with or
75
+ without modification, is permitted pursuant to, and subject
76
+ to the license terms contained in, the Revised BSD
77
+ License set forth in Section 4.c of the IETF Trust's Legal
78
+ Provisions Relating to IETF Documents
79
+ (https://trustee.ietf.org/license-info).
80
+
81
+ This version of this YANG module is part of RFC XXXX; see
82
+ the RFC itself for full legal notices.";
83
+
84
+ // RFC Ed.: replace XXXX with actual RFC number and remove
85
+ // this note
86
+ // replace the revision date with the module publication date
87
+ // the format is (year-month-day)
88
+ revision 2024-05-21 {
89
+ description
90
+ "Initial Version";
91
+ reference
92
+ "RFC XXXX: A Yang Data Model for Impairment-aware
93
+ Optical Networks";
94
+ }
95
+
96
+ /*
97
+ * Identities
98
+ */
99
+
100
+ identity otsi-protection {
101
+ base te-types:lsp-protection-type;
102
+ description
103
+ "Individual OTSi(G) protection LSP protection type.";
104
+ reference
105
+ "ITU-T G.873.1 v5.2 (02/2022): Optical transport network:
106
+ Linear protection";
107
+ }
108
+
109
+ /*
110
+ * Groupings
111
+ */
112
+
113
+ grouping amplifier-params {
114
+ description "describes parameters for an amplifier";
115
+ container amplifier {
116
+ description
117
+ "amplifier type, operatonal parameters are described.";
118
+ leaf type-variety {
119
+ type string;
120
+ mandatory true ;
121
+ description
122
+ "String identifier of amplifier type referencing
123
+ a specification in a separate equipment catalog";
124
+ }
125
+ container operational {
126
+ description "amplifier operational parameters";
127
+ list amplifier-element {
128
+ key "frequency-range-id stage-order";
129
+ description
130
+ "The list of parallel amplifier elements within an
131
+ amplifier used to amplify different frequency ranges.
132
+
133
+ Two elements in the list must not have the same range
134
+ or overlapping ranges.";
135
+ leaf frequency-range-id {
136
+ type uint16;
137
+ description
138
+ "The identifier of the frequency range.";
139
+ }
140
+ leaf stage-order {
141
+ type uint8;
142
+ description
143
+ "It allows defining for each spectrum badwidth the
144
+ cascade order of each amplifier-element.";
145
+ }
146
+ leaf name {
147
+ type string;
148
+ description
149
+ "The name of the amplifier element as specified in
150
+ the vendor's specification associated with the
151
+ type-variety.";
152
+ }
153
+ leaf type-variety {
154
+ type string;
155
+ description
156
+ "String identifier of amplifier element type
157
+ referencing a specification in a separate equipment
158
+ catalog.
159
+
160
+ This attributes applies only when the type-variety of
161
+ the amplifier is not sufficient to describe the
162
+ amplifier element type.";
163
+ }
164
+ container frequency-range {
165
+ description
166
+ "The frequency range amplified by the amplifier
167
+ element.";
168
+ uses l0-types:frequency-range;
169
+ }
170
+ container power-param {
171
+ description
172
+ "The optical power after the out-voa of each amplifier
173
+ element.";
174
+ choice power-param {
175
+ mandatory true;
176
+ description
177
+ "Select the mode: channel power or power spectral
178
+ density (PSD).";
179
+ case channel-power {
180
+ leaf nominal-carrier-power {
181
+ type l0-types:power-dbm-or-null;
182
+ mandatory true;
183
+ description
184
+ "Reference channel power.";
185
+ }
186
+ }
187
+ case power-spectral-density {
188
+ leaf nominal-psd {
189
+ type l0-types:psd-or-null;
190
+ mandatory true;
191
+ description
192
+ "Reference power spectral density (PSD).";
193
+ }
194
+ }
195
+ }
196
+ } // container power-param
197
+ leaf pdl {
198
+ type l0-types:power-loss-or-null;
199
+ description "Polarization Dependent Loss (PDL)";
200
+ }
201
+ choice amplifier-element-type {
202
+ mandatory true;
203
+ description
204
+ "Identifies whether the amplifier element is an
205
+ Optical Amplifier (OA) or a Dynamic Gain Equalizer
206
+ (DGE).";
207
+ container optical-amplifier {
208
+ description
209
+ "The attributes applicable only to amplifier
210
+ elements";
211
+ leaf actual-gain {
212
+ type l0-types:power-gain-or-null;
213
+ mandatory true;
214
+ description
215
+ "The value of the gain provided by the
216
+ amplification stage of the optical amplifier.";
217
+ }
218
+ leaf in-voa {
219
+ type l0-types:power-loss-or-null;
220
+ description
221
+ "Loss introduced by the Variable Optical Attenuator
222
+ (VOA) at the input of the amplification stage of
223
+ the amplifier, if present";
224
+ }
225
+ leaf out-voa {
226
+ type l0-types:power-loss-or-null;
227
+ description
228
+ "Loss introduced by the Variable Optical Attenuator
229
+ (VOA) at the output of the amplification stage of
230
+ the amplifier, if present.";
231
+ }
232
+ leaf tilt-target {
233
+ type l0-types:decimal-2-or-null;
234
+ units "dB";
235
+ mandatory true ;
236
+ description
237
+ "The tilt target defined between lower and upper
238
+ frequency of the amplifier frequency range.";
239
+ }
240
+ leaf total-output-power {
241
+ type l0-types:power-dbm-or-null;
242
+ mandatory true;
243
+ description
244
+ "It represent total output power measured in the
245
+ range specified by the frequency-range.
246
+
247
+ Optical power is especially needed to
248
+ re-compute/check consistency of span
249
+ (fiber + concentrated loss) loss value, with
250
+ respect to loss/gain information on elements.";
251
+ }
252
+ leaf raman-direction {
253
+ type enumeration {
254
+ enum co-propagating {
255
+ description
256
+ "Co-propagating indicates that optical pump
257
+ light is injected in the same direction to the
258
+ optical signal that is amplified
259
+ (forward pump).";
260
+ }
261
+ enum counter-propagating {
262
+ description
263
+ "Counter-propagating indicates that optical
264
+ pump light is injected in opposite direction
265
+ to the optical signal that is amplified
266
+ (backward pump).";
267
+ }
268
+ }
269
+ description
270
+ "The direction of injection of the raman pump.";
271
+ }
272
+ list raman-pump {
273
+ key pump-id;
274
+ description
275
+ "The list of pumps for the Raman amplifier.";
276
+ leaf pump-id {
277
+ type uint16;
278
+ description
279
+ "The identifier of a pump within an amplifier
280
+ element.";
281
+ }
282
+ leaf frequency {
283
+ type l0-types:frequency-thz;
284
+ description
285
+ "The raman pump central frequency.";
286
+ }
287
+ leaf power {
288
+ type l0-types:decimal-2-or-null;
289
+ units "Watts";
290
+ description
291
+ "The total pump power considering a depolarized
292
+ pump at the raman pump central frequency.";
293
+ }
294
+ }
295
+ } // container optical-amplifier
296
+ container dynamic-gain-equalizer {
297
+ presence
298
+ "When present it indicates that the amplifier element
299
+ is a Dynamic Gain Equalizer (DGE)";
300
+ description
301
+ "The attributes applicable only to DEG amplifier
302
+ elements.";
303
+ list media-channel {
304
+ key "flexi-n";
305
+ description
306
+ "List of media channels represented as (n,m)";
307
+
308
+ uses l0-types:flexi-grid-frequency-slot {
309
+ refine flexi-m {
310
+ mandatory true;
311
+ }
312
+ }
313
+
314
+ leaf delta-power {
315
+ type l0-types:power-ratio-or-null;
316
+ description
317
+ " Deviation from the reference carrier power
318
+ defined for the OMS.";
319
+ }
320
+ } // media channels list
321
+ } // container dynamic-gain-equalizer
322
+ } // choice amplifier-element-type
323
+ } // list amplifier-element
324
+ } // container operational
325
+ } // container amplifier
326
+ } // grouping amplifier-params
327
+
328
+ grouping fiber-params {
329
+ description
330
+ "String identifier of fiber type referencing a
331
+ specification in a separate equipment catalog";
332
+ container fiber {
333
+ description "fiber characteristics";
334
+ leaf type-variety {
335
+ type string ;
336
+ mandatory true ;
337
+ description "fiber type";
338
+ }
339
+ leaf length {
340
+ type l0-types:decimal-2-or-null;
341
+ units km;
342
+ mandatory true ;
343
+ description "length of fiber";
344
+ }
345
+ leaf loss-coef {
346
+ type l0-types:decimal-2-or-null;
347
+ units dB/km;
348
+ mandatory true ;
349
+ description "loss coefficient of the fiber";
350
+ }
351
+ leaf total-loss {
352
+ type l0-types:power-loss-or-null;
353
+ description
354
+ "The measured total loss of the fiber, which includes
355
+ all possible losses: fiber loss and conn-in and conn-out
356
+ losses.
357
+
358
+ This attribute is not present when the total loss cannot
359
+ be measured.";
360
+ }
361
+ leaf pmd {
362
+ type l0-types:decimal-2-or-null;
363
+ units "ps";
364
+ description "pmd of the fiber";
365
+ }
366
+ leaf conn-in{
367
+ type l0-types:power-loss-or-null;
368
+ description "connector-in";
369
+ }
370
+ leaf conn-out{
371
+ type l0-types:power-loss-or-null;
372
+ description "connector-out";
373
+ }
374
+ }
375
+ }
376
+
377
+ grouping roadm-common-path {
378
+ description
379
+ "The optical impairments of a ROADM which are common to all
380
+ its paths (express path, add path or drop path).";
381
+ leaf roadm-pmd {
382
+ type union {
383
+ type decimal64 {
384
+ fraction-digits 8;
385
+ range "0..max";
386
+ }
387
+ type empty;
388
+ }
389
+ units "ps";
390
+ description
391
+ "Polarization Mode Dispersion (PMD), when known, or an
392
+ empty value when unknown.";
393
+ }
394
+ leaf roadm-cd {
395
+ type l0-types:decimal-5-or-null;
396
+ units "ps/nm";
397
+ description "Chromatic Dispersion (CD)";
398
+ }
399
+ leaf roadm-pdl {
400
+ type l0-types:power-loss-or-null;
401
+ description "Polarization Dependent Loss (PDL)";
402
+ }
403
+ leaf roadm-inband-crosstalk {
404
+ type l0-types:decimal-2-or-null;
405
+ units "dB";
406
+ description
407
+ "In-band crosstalk, or coherent crosstalk, can occur in
408
+ components that can have multiple same wavelength inputs
409
+ with the inputs either routed to different output ports,
410
+ or all but one blocked";
411
+ }
412
+ leaf roadm-maxloss {
413
+ type l0-types:power-loss-or-null;
414
+ description
415
+ "This is the maximum expected path loss from the
416
+ ROADM ingress to the ROADM egress
417
+ assuming no additional path loss is added";
418
+ }
419
+ } // grouping roadm-common-path
420
+
421
+ grouping roadm-express-path {
422
+ description
423
+ "The optical impairments of a ROADM express path.";
424
+ uses roadm-common-path;
425
+ } // grouping roadm-express-path
426
+
427
+ grouping roadm-add-path {
428
+ description
429
+ "The optical impairments of a ROADM add path.";
430
+ uses roadm-common-path {
431
+ refine roadm-inband-crosstalk {
432
+ description
433
+ "In-band crosstalk, or coherent crosstalk,
434
+ can occur in components that can have multiple same
435
+ wavelength inputs,with the inputs either
436
+ routed to different output ports,
437
+ or all but one blocked.
438
+
439
+ In the case of add path it is the total
440
+ of the add block + egress WSS crosstalk contributions.";
441
+ }
442
+ refine roadm-maxloss {
443
+ description
444
+ "This is the maximum expected add path loss from
445
+ the add/drop port input to the ROADM egress,
446
+ assuming no additional add path loss is added.
447
+ This is used to establish the minimum required
448
+ transponder output power required
449
+ to hit the ROADM egress target power
450
+ levels and preventing
451
+ to hit the WSS attenuation limits.
452
+ If the add path contains an internal amplifier
453
+ this loss value should be based
454
+ on worst case expected amplifier gain due to
455
+ ripple or gain uncertainty";
456
+ }
457
+ }
458
+ leaf roadm-pmax {
459
+ type l0-types:power-dbm-or-null;
460
+ description
461
+ "This is the maximum (per carrier) power level
462
+ permitted at the add block input ports,
463
+ that can be handled by the ROADM node.
464
+ This may reflect either add amplifier power
465
+ contraints or WSS adjustment limits.
466
+ Higher power transponders would need to have
467
+ their launch power reduced
468
+ to this value or lower";
469
+ }
470
+ leaf roadm-osnr {
471
+ type l0-types:snr-or-null;
472
+ description
473
+ "Optical Signal-to-Noise Ratio (OSNR).
474
+ If the add path contains the ability to adjust the
475
+ carrier power levels into an add path amplifier
476
+ (if present) to a target value,
477
+ this reflects the OSNR contribution of the
478
+ add amplifier assuming this target value is obtained.
479
+ The worst case OSNR based on the input power and
480
+ NF calculation method, and this value, should be used
481
+ (if both are defined).";
482
+ }
483
+ leaf roadm-noise-figure {
484
+ type l0-types:decimal-5-or-null;
485
+ units "dB";
486
+ description
487
+ "Noise Figure. If the add path contains an amplifier,
488
+ this is the noise figure of that amplifier inferred
489
+ to the add port.
490
+ This permits add path OSNR calculation based
491
+ on the input power levels to the add block
492
+ without knowing the ROADM path losses to
493
+ the add amplifier.";
494
+ }
495
+ } // grouping roadm-add-path
496
+
497
+ grouping roadm-drop-path {
498
+ description
499
+ "The optical impairments of a ROADM drop path";
500
+ uses roadm-common-path {
501
+ refine roadm-inband-crosstalk {
502
+ description
503
+ "In-band crosstalk, or coherent crosstalk, can occur in
504
+ components that can have multiple same wavelength
505
+ inputs,with the inputs either routed to different
506
+ output ports,or all but one blocked.
507
+
508
+ In the case of drop path it is the total
509
+ of the ingress
510
+ to drop e.g. WSS and drop block crosstalk
511
+ contributions.";
512
+ }
513
+ refine roadm-maxloss {
514
+ description
515
+ "The net loss from the ROADM input,to the output
516
+ of the drop block.
517
+ If ROADM ingress to drop path includes an amplifier,
518
+ the amplifier gain reduces the net loss.
519
+ This is before any additional drop path attenuation
520
+ that may be required
521
+ due to drop amplifier power contraints.
522
+ The max value correspond to worst case expected loss,
523
+ including amplifier gain ripple or uncertainty.
524
+ It is the maximum output power of the drop
525
+ amplifier.";
526
+ }
527
+ }
528
+ leaf roadm-minloss {
529
+ type l0-types:power-loss-or-null;
530
+ description
531
+ "The net loss from the ROADM input, to the
532
+ output of the drop block.
533
+ If this ROADM ingress to drop path includes
534
+ an amplifier,the amplifier gain reduces the net loss.
535
+ This is before any additional drop path attenuation
536
+ that may be required due to drop amplifier power
537
+ contraints.
538
+ The min value correspond to best case expected loss,
539
+ including amplifier gain ripple or uncertainty.";
540
+ }
541
+ leaf roadm-typloss {
542
+ type l0-types:power-loss-or-null;
543
+ description
544
+ "The net loss from the ROADM input,
545
+ to the output of the drop block.
546
+ If this ROADM ingress to drop path
547
+ includes an amplifier,
548
+ the amplifier gain reduces the net loss.
549
+ This is before any additional drop path
550
+ attenuation
551
+ that may be required due to drop amplifier
552
+ power contraints.
553
+ The typ value correspond to typical case
554
+ expected loss.";
555
+ }
556
+ leaf roadm-pmin {
557
+ type l0-types:power-dbm-or-null;
558
+ description
559
+ "If the drop path has additional loss
560
+ that is added, for example,
561
+ to hit target power levels into a
562
+ drop path amplifier, or simply, to reduce the
563
+ power of a strong carrier
564
+ (due to ripple,for example),
565
+ then the use of the ROADM input power levels and
566
+ the above drop losses is not appropriate.
567
+ This parameter corresponds to the min per
568
+ carrier power levels
569
+ expected at the output of the drop block.
570
+ A detail example of the comparison using
571
+ these parameters is
572
+ detailed in section xxx of the document yyy.";
573
+ }
574
+ leaf roadm-pmax {
575
+ type l0-types:power-dbm-or-null;
576
+ description
577
+ "If the drop path has additional loss that is added,
578
+ for example, to hit target power levels into a
579
+ drop path amplifier,or simply,to reduce the power
580
+ of a strong carrier(due to ripple,for example),
581
+ then the use of the ROADM input power levels and the
582
+ above drop losses is not appropriate.
583
+ This parameter corresponds to the best case per
584
+ carrier power levels expected at the output of the
585
+ drop block.
586
+ A detail example of the comparison using
587
+ these parameters
588
+ is detailed in section xxx of the document yyy";
589
+ }
590
+ leaf roadm-ptyp {
591
+ type l0-types:power-dbm-or-null;
592
+ description
593
+ "If the drop path has additional loss that is added,
594
+ for example, to hit target power levels into a
595
+ drop path amplifier,or simply,to reduce the
596
+ power of a strong carrier(due to ripple,for example),
597
+ then the use of the ROADM input power levels and
598
+ the above drop losses is not appropriate.
599
+ This parameter corresponds to the typical case
600
+ per carrier power levels expected
601
+ at the output of the drop block.";
602
+ }
603
+ leaf roadm-osnr {
604
+ type l0-types:snr-or-null;
605
+ description
606
+ "Optical Signal-to-Noise Ratio (OSNR).
607
+ Expected OSNR contribution of the drop path
608
+ amplifier(if present)
609
+ for the case of additional drop path loss
610
+ (before this amplifier)
611
+ in order to hit a target power level (per carrier).
612
+ If both, the OSNR based on the ROADM
613
+ input power level
614
+ (Pcarrier =
615
+ Pref+10Log(carrier-baudrate/ref-baud) + delta-power)
616
+ and the input inferred NF(NF.drop),
617
+ and this OSNR value, are defined,
618
+ the minimum value between these two should be used";
619
+ }
620
+ leaf roadm-noise-figure {
621
+ type l0-types:decimal-5-or-null;
622
+ units "dB";
623
+ description
624
+ "Drop path Noise Figure.
625
+ If the drop path contains an amplifier,
626
+ this is the noise figure
627
+ of that amplifier, inferred to the
628
+ ROADM ingress port.
629
+ This permits to determine
630
+ amplifier OSNR contribution
631
+ without having to specify the
632
+ ROADM node's losses to that amplifier.
633
+ This applies for the case of no
634
+ additional drop path loss,
635
+ before the amplifier, in order to reduce the power
636
+ of the carriers to a target value";
637
+ }
638
+ } // grouping roadm-drop-path
639
+
640
+ grouping concentratedloss-params {
641
+ description "concentrated loss";
642
+ container concentratedloss{
643
+ description "concentrated loss";
644
+ leaf loss {
645
+ type l0-types:power-loss-or-null;
646
+ mandatory true;
647
+ description
648
+ "Loss introduced by the concentrated loss element.";
649
+ }
650
+ }
651
+ }
652
+
653
+ grouping oms-general-optical-params {
654
+ description "OMS link optical parameters";
655
+ leaf generalized-snr {
656
+ type l0-types:snr;
657
+ description "generalized snr";
658
+ }
659
+ leaf equalization-mode{
660
+ type identityref {
661
+ base l0-types:type-power-mode;
662
+ }
663
+ description
664
+ "The equalization mode.
665
+
666
+ When not present it indicates that the information about
667
+ the equalization mode is not reported.
668
+
669
+ Reporting this value is needed to support optical
670
+ impairments applications.";
671
+ }
672
+ container power-param {
673
+ description
674
+ "Optical channel power or power spectral densitity (PSD)
675
+ after the ROADM.";
676
+ leaf nominal-carrier-power {
677
+ when "derived-from-or-self(../../equalization-mode, "
678
+ + "'l0-types:carrier-power')";
679
+ type l0-types:power-dbm-or-null;
680
+ description
681
+ "Reference channel power.";
682
+ }
683
+ leaf nominal-psd {
684
+ when "derived-from-or-self(../../equalization-mode, "
685
+ + "'l0-types:power-spectral-density')";
686
+ type l0-types:psd-or-null;
687
+ description
688
+ " Reference power spectral density (PSD).";
689
+ }
690
+ } // container power-param
691
+ } // grouping oms-general-optical-params
692
+
693
+ grouping otsi-group {
694
+ description "OTSiG definition , representing client
695
+ digital information stream supported by one or more OTSi";
696
+
697
+ list otsi {
698
+ key "otsi-carrier-id";
699
+ config false;
700
+ description
701
+ "list of OTSi contained in one OTSiG.
702
+ The list could also be of only one element";
703
+ leaf otsi-carrier-id {
704
+ type uint16;
705
+ description "OTSi carrier-id";
706
+ }
707
+ leaf otsi-carrier-frequency {
708
+ type union {
709
+ type l0-types:frequency-thz;
710
+ type empty;
711
+ }
712
+ description
713
+ "OTSi carrier frequency, equivalent to the
714
+ actual configured transmitter frequency, when known, or
715
+ an empty value when unknown.";
716
+ }
717
+ leaf-list e2e-mc-path-id {
718
+ type uint16;
719
+ description
720
+ "The list of the possible end-to-end Media Channel
721
+ (e2e-MC) paths associated with the OTSi which have
722
+ different optical impairments.
723
+
724
+ This list is meaningful in case the OTSi can be associated
725
+ with multiple end-to-end Media Channel (e2e-MC) paths
726
+ (e.g., when OPS protection is configured).
727
+
728
+ The list can be empty when the OTSi has only one
729
+ e2e-MC path.";
730
+ }
731
+ } // OTSi list
732
+ } // OTSiG grouping
733
+
734
+ grouping media-channel-groups {
735
+ description
736
+ "media channel groups.
737
+
738
+ This grouping is not intended to be reused outside of this
739
+ module.";
740
+
741
+ container media-channel-groups {
742
+ presence
743
+ "When present, it indicates that the list media channel
744
+ groups is reported.";
745
+ description
746
+ "The top level container for the list of media channel
747
+ groups.";
748
+ list media-channel-group {
749
+ key "otsi-group-ref";
750
+ description
751
+ "The list of media channel groups";
752
+ leaf otsi-group-ref {
753
+ type leafref {
754
+ path "../../../../../../../otsis/" +
755
+ "otsi-group/otsi-group-id";
756
+ }
757
+ description
758
+ "Reference to the OTSiG to which the OTSis carried by
759
+ this media channel group belong to.";
760
+ }
761
+ list media-channel {
762
+ // key "flexi-n";
763
+ key "media-channel-id";
764
+ unique "flexi-n";
765
+ description
766
+ "list of media channels represented as (n,m)";
767
+ leaf media-channel-id {
768
+ type int16;
769
+ description
770
+ "The identifier of media channel within media channel
771
+ group.
772
+
773
+ It may be equal to the flexi-n attribute, when the
774
+ flexi-n attribute is present.";
775
+ }
776
+ // this grouping add both n.m values
777
+ uses l0-types:flexi-grid-frequency-slot;
778
+
779
+ list otsi-ref {
780
+ key "otsi-carrier-ref";
781
+ description
782
+ "The list of references to the OTSis and their
783
+ end-to-end Media Channel (e2e-MC) paths within the
784
+ OTSiG carried by this media channel.";
785
+ leaf otsi-carrier-ref {
786
+ type leafref {
787
+ path "../../../../../../../../../otsis/" +
788
+ "otsi-group[otsi-group-id=current()" +
789
+ "/../../../otsi-group-ref]/" +
790
+ "otsi/otsi-carrier-id" ;
791
+ }
792
+ description
793
+ "Reference to the OTSi within the OTSiG carried
794
+ by this media channel.";
795
+ }
796
+ leaf-list e2e-mc-path-ref {
797
+ type leafref {
798
+ path "../../../../../../../../../otsis/" +
799
+ "otsi-group[otsi-group-id=current()" +
800
+ "/../../../otsi-group-ref]/" +
801
+ "otsi[otsi-carrier-id=current()" +
802
+ "/../otsi-carrier-ref]/e2e-mc-path-id";
803
+ }
804
+ description
805
+ "References to the end-to-end Media Channel (e2e-MC)
806
+ paths of this OTSi which are routed through this
807
+ media channel.";
808
+ }
809
+ }
810
+ leaf delta-power {
811
+ type l0-types:power-ratio-or-null;
812
+ description
813
+ " Deviation from the reference carrier power defined
814
+ for the OMS.";
815
+ }
816
+ } // media channels list
817
+ } // media-channel-groups list
818
+ }
819
+ } // media media-channel-groups grouping
820
+
821
+ grouping oms-element {
822
+ description "OMS description";
823
+ container OMS-elements {
824
+ presence
825
+ "When present, it indicates that the list of OMS elements
826
+ is reported.";
827
+ description
828
+ "The top level container for the list of OMS elements.";
829
+ list OMS-element {
830
+ key "elt-index";
831
+ description
832
+ "defines the spans and the amplifier blocks of
833
+ the amplified lines";
834
+ leaf elt-index {
835
+ type uint16;
836
+ description
837
+ "ordered list of Index of OMS element
838
+ (whether it's a Fiber, an EDFA or a
839
+ Concentratedloss)";
840
+ }
841
+ leaf oms-element-uid {
842
+ type union {
843
+ type string;
844
+ type empty;
845
+ }
846
+ description
847
+ "Unique id of the element, if it exists and it is known.
848
+
849
+ When unknown, an empty value is reported.
850
+
851
+ When it does not exist, the attribute is not present.";
852
+ }
853
+ container reverse-element-ref {
854
+ description
855
+ "It contains references to the elements which are
856
+ associated with this element in the reverse
857
+ direction.";
858
+ leaf link-ref {
859
+ type leafref {
860
+ path "../../../../../../../../nt:link/nt:link-id";
861
+ }
862
+ description
863
+ "The reference to the OMS link which the OMS elements
864
+ belongs to.";
865
+ }
866
+ leaf-list oms-element-ref {
867
+ type leafref {
868
+ path "../../../../../../../../nt:link[nt:link-id="
869
+ + "current()/../link-ref]/tet:te/"
870
+ + "tet:te-link-attributes/OMS-attributes/"
871
+ + "OMS-elements/OMS-element/elt-index";
872
+ }
873
+ description
874
+ "The references to the OMS elements.";
875
+ }
876
+ }
877
+ choice element {
878
+ mandatory true;
879
+ description "OMS element type";
880
+ case amplifier {
881
+ uses tet:geolocation-container;
882
+ uses amplifier-params;
883
+ }
884
+ case fiber {
885
+ uses fiber-params;
886
+ }
887
+ case concentratedloss {
888
+ uses concentratedloss-params ;
889
+ }
890
+ }
891
+ }
892
+ }
893
+ }
894
+
895
+ grouping otsi-ref {
896
+ description
897
+ "References to an OTSi.
898
+
899
+ This grouping is intended to be reused within the
900
+ transceiver's list only.";
901
+ leaf otsi-group-ref {
902
+ type leafref {
903
+ path "../../../../../../otsis/otsi-group/" +
904
+ "otsi-group-id";
905
+ }
906
+ description
907
+ "The OTSi generated by the transceiver's transmitter.";
908
+ }
909
+ leaf otsi-ref {
910
+ type leafref {
911
+ path "../../../../../../otsis/otsi-group" +
912
+ "[otsi-group-id=current()/../otsi-group-ref]/otsi/" +
913
+ "otsi-carrier-id";
914
+ }
915
+ description
916
+ "The OTSi generated by the transceiver's transmitter.";
917
+ }
918
+ }
919
+
920
+ /*
921
+ * Data nodes
922
+ */
923
+
924
+ augment "/nw:networks/nw:network/nw:network-types"
925
+ + "/tet:te-topology" {
926
+ description "optical-impairment topology augmented";
927
+ container optical-impairment-topology {
928
+ presence
929
+ "Indicates an impairment-aware topology of optical networks";
930
+ description
931
+ "Container to identify impairment-aware topology type";
932
+ reference
933
+ "RFC8345: A YANG Data Model for Network Topologies.";
934
+ }
935
+ }
936
+
937
+ augment "/nw:networks/nw:network" {
938
+ when "./nw:network-types/tet:te-topology" +
939
+ "/oit:optical-impairment-topology" {
940
+ description
941
+ "This augment is only valid for Optical Impairment
942
+ topology.";
943
+ }
944
+ description
945
+ "Network augmentation for optical impairments data.";
946
+ container otsis {
947
+ presence
948
+ "When present, it indicates that OTSi information is
949
+ reported.";
950
+ description
951
+ "The information about the OTSis configured on the WDM-TE
952
+ link.";
953
+ list otsi-group {
954
+ key "otsi-group-id";
955
+ config false;
956
+ description
957
+ "the list of possible OTSiG representing client digital
958
+ stream";
959
+ leaf otsi-group-id {
960
+ type string;
961
+ description
962
+ "A network-wide unique identifier of otsi-group element.
963
+ It could be structured e.g., as an URI or as an UUID.";
964
+ }
965
+ uses otsi-group;
966
+ } // list of OTSiG
967
+ }
968
+
969
+ container templates {
970
+ config false;
971
+ description
972
+ "Templates for set of parameters which can be common to
973
+ multiple elements.";
974
+ container roadm-path-impairments {
975
+ description
976
+ "The top level container for the list of the set of
977
+ optical impairments related to ROADM paths.";
978
+ list roadm-path-impairment {
979
+ key "roadm-path-impairments-id";
980
+ description
981
+ "The list of the set of optical impairments related to
982
+ ROADM paths.";
983
+
984
+ leaf roadm-path-impairments-id {
985
+ type string;
986
+ description
987
+ "The identifier of the set of optical impairments
988
+ related to a ROADM path.";
989
+ }
990
+ choice impairment-type {
991
+ description "type path impairment";
992
+ case roadm-express-path {
993
+ list roadm-express-path {
994
+ key frequency-range-id;
995
+ description
996
+ "The list of optical impairments on a ROADM express
997
+ path for different frequency ranges.
998
+
999
+ Two elements in the list must not have the same
1000
+ range or overlapping ranges.";
1001
+ leaf frequency-range-id {
1002
+ type uint16;
1003
+ description
1004
+ "The identifier of the frequency range.";
1005
+ }
1006
+ container frequency-range {
1007
+ description
1008
+ "The frequency range for which these optical
1009
+ impairments apply.";
1010
+ uses l0-types:frequency-range;
1011
+ }
1012
+ uses roadm-express-path;
1013
+ }
1014
+ }
1015
+ case roadm-add-path {
1016
+ list roadm-add-path {
1017
+ key frequency-range-id;
1018
+ description
1019
+ "The list of optical impairments on a ROADM add
1020
+ path for different frequency ranges.
1021
+
1022
+ Two elements in the list must not have the same
1023
+ range or overlapping ranges.";
1024
+ leaf frequency-range-id {
1025
+ type uint16;
1026
+ description
1027
+ "The identifier of a frequency range.";
1028
+ }
1029
+ container frequency-range {
1030
+ description
1031
+ "The frequency range for which these optical
1032
+ impairments apply.";
1033
+ uses l0-types:frequency-range;
1034
+ }
1035
+ uses roadm-add-path;
1036
+ }
1037
+ }
1038
+ case roadm-drop-path {
1039
+ list roadm-drop-path {
1040
+ key frequency-range-id;
1041
+ description
1042
+ "The list of optical impairments on a ROADM add
1043
+ path for different frequency ranges.
1044
+
1045
+ Two elements in the list must not have the same
1046
+ range or overlapping ranges.";
1047
+ leaf frequency-range-id {
1048
+ type uint16;
1049
+ description
1050
+ "The identifier of a frequency range.";
1051
+ }
1052
+ container frequency-range {
1053
+ description
1054
+ "The frequency range for which these optical
1055
+ impairments apply.";
1056
+ uses l0-types:frequency-range;
1057
+ }
1058
+ uses roadm-drop-path;
1059
+ }
1060
+ }
1061
+ }
1062
+ } // list roadm-path-impairments
1063
+ } // container roadm-path-impairments
1064
+ container explicit-transceiver-modes {
1065
+ description
1066
+ "The top level container for the list of the
1067
+ transceivers' explicit modes.";
1068
+ list explicit-transceiver-mode {
1069
+ key explicit-transceiver-mode-id;
1070
+ description
1071
+ "The list of the transceivers' explicit modes.";
1072
+ leaf explicit-transceiver-mode-id {
1073
+ type string;
1074
+ description
1075
+ "The identifier of the transceivers' explicit mode.";
1076
+ }
1077
+ uses l0-types:explicit-mode;
1078
+ } // list explicit-transceiver-mode
1079
+ } // container explicit-transceiver-modes
1080
+ } // container templates
1081
+ } // augment network
1082
+
1083
+ augment "/nw:networks/nw:network/nw:node" {
1084
+ when "../nw:network-types/tet:te-topology" +
1085
+ "/oit:optical-impairment-topology" {
1086
+ description
1087
+ "This augment is only valid for Optical Impairment.";
1088
+ }
1089
+ description
1090
+ "Node augmentation for optical impairments data.";
1091
+ container transponders {
1092
+ presence
1093
+ "If present, it indicates that the list of transponders is
1094
+ reported.";
1095
+ description
1096
+ "The top level container for the list of transponders.";
1097
+ list transponder {
1098
+ key "transponder-id";
1099
+ config false;
1100
+ description "The list of transponders.";
1101
+ leaf transponder-id {
1102
+ type uint32;
1103
+ description "transponder identifier";
1104
+ }
1105
+ leaf termination-type-capabilities {
1106
+ type enumeration {
1107
+ enum tunnel-only {
1108
+ description
1109
+ "The transponder can only be used in an Optical
1110
+ Tunnel termination configuration.";
1111
+ }
1112
+ enum 3r-only {
1113
+ description
1114
+ "The transponder can only be used in a 3R
1115
+ configuration.";
1116
+ }
1117
+ enum 3r-or-tunnel {
1118
+ description
1119
+ "The transponder can be configure to be used either
1120
+ in an Optical Tunnel termination configuration or in
1121
+ a 3R configuration.";
1122
+ }
1123
+ }
1124
+ description
1125
+ "Describes whether the transponder can be used in an
1126
+ Optical Tunnel termination configuration or in a 3R
1127
+ configuration (or both).";
1128
+ }
1129
+ leaf supported-3r-mode {
1130
+ when '(../termination-type-capabilities = "3r-only") or
1131
+ (../termination-type-capabilities = "3r-or-tunnel")'
1132
+ {
1133
+ description
1134
+ "Applies only when the transponder supports 3R
1135
+ configuration.";
1136
+ }
1137
+ type enumeration {
1138
+ enum unidir {
1139
+ description
1140
+ "Unidirectional 3R configuration.";
1141
+ }
1142
+ enum bidir {
1143
+ description
1144
+ "Bidirectional 3R configuration.";
1145
+ }
1146
+ }
1147
+ description
1148
+ "Describes the supported 3R configuration type.";
1149
+ }
1150
+ list transceiver {
1151
+ key "transceiver-id";
1152
+ config false;
1153
+ min-elements 1;
1154
+ description "list of transceiver related to a transponder";
1155
+ leaf transceiver-id {
1156
+ type uint32;
1157
+ description "transceiver identifier";
1158
+ }
1159
+ uses l0-types:transceiver-capabilities {
1160
+ augment "supported-modes/supported-mode/mode/"
1161
+ + "explicit-mode/explicit-mode" {
1162
+ description
1163
+ "Augment the explicit-mode container with the
1164
+ proper leafref.";
1165
+ leaf explicit-transceiver-mode-ref {
1166
+ type leafref {
1167
+ path "../../../../../../../../oit:templates"
1168
+ + "/oit:explicit-transceiver-modes"
1169
+ + "/oit:explicit-transceiver-mode"
1170
+ + "/oit:explicit-transceiver-mode-id";
1171
+ }
1172
+ description
1173
+ "The refernce to the explicit transceiver
1174
+ mode template.";
1175
+ }
1176
+ }
1177
+ }
1178
+ leaf configured-mode {
1179
+ type union {
1180
+ type empty;
1181
+ type leafref {
1182
+ path "../supported-modes/supported-mode/mode-id";
1183
+ }
1184
+ }
1185
+ description
1186
+ "Reference to the configured mode for transceiver
1187
+ compatibility approach.
1188
+
1189
+ The empty value is used to report that no mode has
1190
+ been configured and there is no default mode.
1191
+
1192
+ When not present, the configured-mode is not reported
1193
+ by the server.";
1194
+ }
1195
+ uses l0-types:common-transceiver-param;
1196
+ container outgoing-otsi {
1197
+ when "../../../../../otsis" {
1198
+ description
1199
+ "It applies only when the OTSi information is
1200
+ reported.";
1201
+ }
1202
+ description
1203
+ "The OTSi generated by the transceiver's transmitter.";
1204
+ uses otsi-ref;
1205
+ }
1206
+ container incoming-otsi {
1207
+ when "../../../../../otsis" {
1208
+ description
1209
+ "It applies only when the OTSi information is
1210
+ reported.";
1211
+ }
1212
+ description
1213
+ "The OTSi received by the transceiver's received.";
1214
+ uses otsi-ref;
1215
+ }
1216
+ leaf configured-termination-type {
1217
+ type enumeration {
1218
+ enum unused-transceiver {
1219
+ description
1220
+ "The transcevier is not used.";
1221
+ }
1222
+ enum tunnel-termination {
1223
+ description
1224
+ "The transceiver is currently used in an Optical
1225
+ Tunnel termination configuration.";
1226
+ }
1227
+ enum 3r-regeneration {
1228
+ description
1229
+ "The transceiver is currently used in a 3R
1230
+ configuration.";
1231
+ }
1232
+ }
1233
+ description
1234
+ "Describes whether the current configuration of the
1235
+ transceiver is used in an Optical Tunnel termination
1236
+ configuration or in a 3R configuration.
1237
+
1238
+ If empty, it means that the information about the
1239
+ configured-termination-type is not reported.";
1240
+ }
1241
+ } // end of list of transceiver
1242
+ } // end list of transponder
1243
+ }
1244
+ container regen-groups {
1245
+ presence
1246
+ "When present, it indicates that the list of 3R groups
1247
+ is reported.";
1248
+ description
1249
+ "The top level container for the list of 3R groups.";
1250
+ list regen-group {
1251
+ key "group-id";
1252
+ config false;
1253
+ description
1254
+ "The list of 3R groups.
1255
+
1256
+ Any 3R group represent a group of transponder in which an
1257
+ a an electrical connectivity is either in place or could
1258
+ be dynamically provided, to associated transponders used
1259
+ for 3R regeneration.";
1260
+ leaf group-id {
1261
+ type uint32;
1262
+ description
1263
+ "Group identifier used an index to access elements in the
1264
+ list of 3R groups.";
1265
+ }
1266
+ leaf regen-metric {
1267
+ type uint32;
1268
+ description
1269
+ "The cost permits choice among different group of
1270
+ transponders during path computation";
1271
+ }
1272
+ leaf-list transponder-ref {
1273
+ type leafref {
1274
+ path "../../../transponders/transponder/transponder-id";
1275
+ }
1276
+ description
1277
+ "The list of transponder belonging to this 3R group.";
1278
+ }
1279
+ } // end 3R-group
1280
+ }
1281
+ }
1282
+
1283
+ augment "/nw:networks/nw:network/nt:link/tet:te"
1284
+ + "/tet:te-link-attributes" {
1285
+ when "../../../nw:network-types/tet:te-topology/"
1286
+ + "oit:optical-impairment-topology" {
1287
+ description
1288
+ "This augment is only valid for Optical Impairment
1289
+ topology.";
1290
+ }
1291
+ description "Optical Link augmentation for impairment data.";
1292
+ container OMS-attributes {
1293
+ config false;
1294
+ description "OMS attributes";
1295
+ uses oms-general-optical-params;
1296
+ uses media-channel-groups;
1297
+ uses oms-element;
1298
+ }
1299
+ }
1300
+
1301
+ augment "/nw:networks/nw:network/nw:node/tet:te"
1302
+ + "/tet:tunnel-termination-point" {
1303
+ when "../../../nw:network-types/tet:te-topology/"
1304
+ + "oit:optical-impairment-topology" {
1305
+ description
1306
+ "This augment is only valid for Optical Impairment
1307
+ topology.";
1308
+ }
1309
+ description
1310
+ "Tunnel termination point augmentation for impairment data.";
1311
+
1312
+ list ttp-transceiver {
1313
+ when "../../../transponders" {
1314
+ description
1315
+ "It applies only when the list of transponders is
1316
+ reported.";
1317
+ }
1318
+ key "transponder-ref transceiver-ref";
1319
+ config false;
1320
+ min-elements 1;
1321
+ description
1322
+ "The list of the transceivers used by the TTP.";
1323
+ leaf transponder-ref {
1324
+ type leafref {
1325
+ path "../../../../transponders/transponder/transponder-id";
1326
+ }
1327
+ description
1328
+ "The reference to the transponder hosting the transceiver
1329
+ of the TTP.";
1330
+ }
1331
+ leaf transceiver-ref {
1332
+ type leafref {
1333
+ path "../../../../transponders/transponder" +
1334
+ "[transponder-id=current()/../transponder-ref]/" +
1335
+ "transceiver/transceiver-id";
1336
+ }
1337
+ description
1338
+ "The reference to the transceiver of the TTP.";
1339
+ }
1340
+ } // list of transceivers
1341
+ } // end of augment
1342
+
1343
+ // Should this leaf be moved to te-topology?
1344
+ augment "/nw:networks/nw:network/nw:node/nt:termination-point" {
1345
+ when "../../nw:network-types/tet:te-topology/"
1346
+ + "oit:optical-impairment-topology" {
1347
+ description
1348
+ "This augment is only valid for Optical Impairment
1349
+ topology";
1350
+ }
1351
+ description
1352
+ "Augment LTP";
1353
+ leaf protection-type {
1354
+ type identityref {
1355
+ base te-types:lsp-protection-type;
1356
+ }
1357
+ description
1358
+ "The protection type that this LTP is capable of.
1359
+
1360
+ When not present it indicates that the information about
1361
+ the protection type is not reported.";
1362
+ }
1363
+ }
1364
+
1365
+ augment "/nw:networks/nw:network/nw:node/nt:termination-point"
1366
+ + "/tet:te" {
1367
+ when "../../../nw:network-types/tet:te-topology/"
1368
+ + "oit:optical-impairment-topology" {
1369
+ description
1370
+ "This augment is only valid for Optical Impairment
1371
+ topology";
1372
+ }
1373
+ description
1374
+ "Augment TE attributes of an LTP";
1375
+
1376
+ leaf inter-layer-sequence-number {
1377
+ type uint32;
1378
+ description
1379
+ "The inter-layer-sequence-number (ILSN) is used to report
1380
+ additional connectivity constraints between a client layer
1381
+ Link Termination Point (LTP), such as a muxponder port, and
1382
+ the server layer Tunnel Termination Point (TTP).
1383
+
1384
+ A client service cannot be setup between two client layer
1385
+ LTPs which report different values of the ILSN.
1386
+
1387
+ This attribute is not reported when there are no additional
1388
+ connectivity constraints.
1389
+
1390
+ Therefore, a client service can be setup when at least one
1391
+ of the two client layer LTPs does not report any ILSN or
1392
+ both client layer LTPs report the same ILSN value and the
1393
+ corresponding server layer TTPs have at least one common
1394
+ server-layer switching capability and at least one common
1395
+ client-layer switching capability.";
1396
+ }
1397
+ }
1398
+
1399
+ augment "/nw:networks/nw:network/nw:node/tet:te"
1400
+ + "/tet:te-node-attributes" {
1401
+ when "../../../nw:network-types/tet:te-topology"
1402
+ + "/oit:optical-impairment-topology" {
1403
+ description
1404
+ "This augment is only valid for Optical Impairment
1405
+ topology";
1406
+ }
1407
+ description
1408
+ "node attributes augmentantion for optical-impairment ROADM
1409
+ node";
1410
+
1411
+ } // augmentation for optical-impairment ROADM
1412
+
1413
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
1414
+ + "tet:information-source-entry/tet:connectivity-matrices"{
1415
+ when "../../../../nw:network-types/tet:te-topology/"
1416
+ + "oit:optical-impairment-topology" {
1417
+ description
1418
+ "This augment is only valid for Optical Impairment
1419
+ topology ";
1420
+ }
1421
+ description
1422
+ "Augment default TE node connectivity matrix information
1423
+ source.";
1424
+
1425
+ leaf roadm-path-impairments {
1426
+ type leafref {
1427
+ path "../../../../../oit:templates"
1428
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1429
+ + "/oit:roadm-path-impairments-id";
1430
+ }
1431
+ config false;
1432
+ description
1433
+ "Pointer to the list set of ROADM optical impairments";
1434
+ }
1435
+ } // augmentation connectivity-matrices information-source
1436
+
1437
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
1438
+ + "tet:information-source-entry/tet:connectivity-matrices/"
1439
+ + "tet:connectivity-matrix" {
1440
+ when "../../../../../nw:network-types/tet:te-topology/"
1441
+ + "oit:optical-impairment-topology" {
1442
+ description
1443
+ "This augment is only valid for Optical Impairment
1444
+ topology ";
1445
+ }
1446
+ description
1447
+ "Augment TE node connectivity matrix entry information
1448
+ source.";
1449
+ leaf roadm-path-impairments {
1450
+ type leafref {
1451
+ path "../../../../../../oit:templates"
1452
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1453
+ + "/oit:roadm-path-impairments-id";
1454
+ }
1455
+ config false;
1456
+ description
1457
+ "Pointer to the list set of ROADM optical impairments";
1458
+ }
1459
+ } // augmentation connectivity-matrix information-source
1460
+
1461
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
1462
+ + "tet:te-node-attributes/tet:connectivity-matrices" {
1463
+ when "../../../../nw:network-types/tet:te-topology/"
1464
+ + "oit:optical-impairment-topology" {
1465
+ description
1466
+ "This augment is only valid for Optical Impairment
1467
+ topology ";
1468
+ }
1469
+ description
1470
+ "Augment default TE node connectivity matrix.";
1471
+ leaf roadm-path-impairments {
1472
+ type leafref {
1473
+ path "../../../../../oit:templates"
1474
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1475
+ + "/oit:roadm-path-impairments-id";
1476
+ }
1477
+ config false; /*the identifier in the list */
1478
+ /*"roadm-path-impairments" of ROADM optical impairment*/
1479
+ /*is read-only as the rest of attributes*/
1480
+ description "pointer to the list set of ROADM optical
1481
+ impairments";
1482
+ }
1483
+ } // augmentation connectivity-matrices
1484
+
1485
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
1486
+ + "tet:te-node-attributes/"
1487
+ + "tet:connectivity-matrices/tet:connectivity-matrix" {
1488
+ when "../../../../../nw:network-types/tet:te-topology/"
1489
+ + "oit:optical-impairment-topology" {
1490
+ description
1491
+ "This augment is only valid for
1492
+ Optical Impairment topology ";
1493
+ }
1494
+ description
1495
+ "Augment TE node connectivity matrix entry.";
1496
+ leaf roadm-path-impairments {
1497
+ type leafref {
1498
+ path "../../../../../../oit:templates"
1499
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1500
+ + "/oit:roadm-path-impairments-id";
1501
+ }
1502
+ config false;
1503
+ description "pointer to the list set of ROADM optical
1504
+ impairments";
1505
+ }
1506
+ } // augmentation connectivity-matrix
1507
+
1508
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
1509
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
1510
+ + "tet:connectivity-matrix/tet:from" {
1511
+ when "../../../../../../nw:network-types/tet:te-topology/"
1512
+ + "oit:optical-impairment-topology" {
1513
+ description
1514
+ "This augment is only valid for
1515
+ Optical Impairment topology ";
1516
+ }
1517
+ description
1518
+ "Augment the attributes for the 'from' LTP for the TE node
1519
+ connectivity matrix entry.";
1520
+ list additional-ltp {
1521
+ when "derived-from-or-self(../../../../../../"
1522
+ + "nt:termination-point"
1523
+ + "[nt:tp-id=current()/../../tet:to/tet:tp-ref]/"
1524
+ + "oit:protection-type,"
1525
+ + "'oit:otsi-protection')" {
1526
+ description
1527
+ "This list applies only when the 'to' LTP for this
1528
+ connectivity matrix entry supports individual OTSi(G)
1529
+ protection.";
1530
+ }
1531
+ key "ltp-ref";
1532
+ config false;
1533
+ description
1534
+ "The restricted list of the potential secondary LTPs that
1535
+ can be selected when the 'from' LTP of this connectivity
1536
+ matrix entry is selected as a working LTP.
1537
+
1538
+ If this list is empty, all the other LTPs that can reach
1539
+ the 'to' LTP of this connectivity matrix entry can be
1540
+ selected as secondary LTPs.";
1541
+ leaf ltp-ref {
1542
+ type leafref {
1543
+ path "../../../../../../../nt:termination-point/nt:tp-id";
1544
+ }
1545
+ description
1546
+ "The reference to the potential secondary LTP that can be
1547
+ selected when the 'from' LTP of this connectivity matrix
1548
+ entry is selected as a working LTP";
1549
+ }
1550
+ leaf roadm-path-impairments {
1551
+ type leafref {
1552
+ path "../../../../../../../../oit:templates"
1553
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1554
+ + "/oit:roadm-path-impairments-id";
1555
+ }
1556
+ description
1557
+ "Pointer to ROADM optical impairments of the ROADM path
1558
+ between this secondary 'from' LTP and the 'to' LTP of
1559
+ this connectivity matrix entry.";
1560
+ }
1561
+ }
1562
+ } // augmentation connectivity-matrix from
1563
+
1564
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
1565
+ + "tet:te-node-attributes/tet:connectivity-matrices/"
1566
+ + "tet:connectivity-matrix/tet:to" {
1567
+ when "../../../../../../nw:network-types/tet:te-topology/"
1568
+ + "oit:optical-impairment-topology" {
1569
+ description
1570
+ "This augment is only valid for
1571
+ Optical Impairment topology ";
1572
+ }
1573
+ description
1574
+ "Augment the attributes for the 'to' LTP for the TE node
1575
+ connectivity matrix entry.";
1576
+ list additional-ltp {
1577
+ when "derived-from-or-self(../../../../../../"
1578
+ + "nt:termination-point"
1579
+ + "[nt:tp-id=current()/../../tet:from/tet:tp-ref]/"
1580
+ + "oit:protection-type,"
1581
+ + "'oit:otsi-protection')" {
1582
+ description
1583
+ "This list applies only when the 'from' LTP for this
1584
+ connectivity matrix entry supports individual OTSi(G)
1585
+ protection.";
1586
+ }
1587
+ key "ltp-ref";
1588
+ config false;
1589
+ description
1590
+ "The restricted list of the potential secondary LTPs that
1591
+ can be selected when the 'to' LTP of this connectivity
1592
+ matrix entry is selected as a working LTP.
1593
+
1594
+ If this list is empty, all the other LTPs that can be
1595
+ reached from the 'from' LTP of this connectivity matrix
1596
+ entry can be selected as secondary LTPs.";
1597
+ leaf ltp-ref {
1598
+ type leafref {
1599
+ path "../../../../../../../nt:termination-point/nt:tp-id";
1600
+ }
1601
+ description
1602
+ "The reference to the potential secondary LTP that can be
1603
+ selected when the 'to' LTP of this connectivity matrix
1604
+ entry is selected as a working LTP";
1605
+ }
1606
+ leaf roadm-path-impairments {
1607
+ type leafref {
1608
+ path "../../../../../../../../oit:templates"
1609
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1610
+ + "/oit:roadm-path-impairments-id";
1611
+ }
1612
+ description
1613
+ "Pointer to ROADM optical impairments of the ROADM path
1614
+ between the 'from' LTP of this connectivity matrix entry
1615
+ and this secondary LTP.";
1616
+ }
1617
+ }
1618
+ } // augmentation connectivity-matrix to
1619
+
1620
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
1621
+ + "tet:tunnel-termination-point/"
1622
+ + "tet:local-link-connectivities" {
1623
+ when "../../../../nw:network-types/tet:te-topology/"
1624
+ + "oit:optical-impairment-topology" {
1625
+ description
1626
+ "This augment is only valid for Optical Impairment topology ";
1627
+ }
1628
+ description
1629
+ "Augment default TTP LLC.";
1630
+ leaf add-path-impairments {
1631
+ type leafref {
1632
+ path "../../../../../oit:templates"
1633
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1634
+ + "/oit:roadm-path-impairments-id" ;
1635
+ }
1636
+ config false;
1637
+ description "pointer to the list set of ROADM optical
1638
+ impairments";
1639
+ }
1640
+ leaf drop-path-impairments {
1641
+ type leafref {
1642
+ path "../../../../../oit:templates"
1643
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1644
+ + "/oit:roadm-path-impairments-id" ;
1645
+ }
1646
+ config false;
1647
+ description "pointer to the list set of ROADM
1648
+ optical impairments";
1649
+ }
1650
+ } // augmentation local-link-connectivities
1651
+
1652
+ augment "/nw:networks/nw:network/nw:node/tet:te/"
1653
+ + "tet:tunnel-termination-point/"
1654
+ + "tet:local-link-connectivities/"
1655
+ + "tet:local-link-connectivity" {
1656
+ when "../../../../../nw:network-types/tet:te-topology/"
1657
+ + "oit:optical-impairment-topology" {
1658
+ description
1659
+ "This augment is only valid for
1660
+ Optical Impairment topology ";
1661
+ }
1662
+ description
1663
+ "Augment TTP LLC entry.";
1664
+ leaf add-path-impairments {
1665
+ type leafref {
1666
+ path "../../../../../../oit:templates"
1667
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1668
+ + "/oit:roadm-path-impairments-id" ;
1669
+ }
1670
+ config false;
1671
+ description "pointer to the list set of ROADM optical
1672
+ impairments";
1673
+ }
1674
+ leaf drop-path-impairments {
1675
+ type leafref {
1676
+ path "../../../../../../oit:templates"
1677
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1678
+ + "/oit:roadm-path-impairments-id" ;
1679
+ }
1680
+ config false;
1681
+ description "pointer to the list set of ROADM optical
1682
+ impairments";
1683
+ }
1684
+ list llc-transceiver {
1685
+ key "ttp-transponder-ref ttp-transceiver-ref";
1686
+ config false;
1687
+ description
1688
+ "The list of transceivers having a LLC different from the
1689
+ default LLC.";
1690
+ leaf ttp-transponder-ref {
1691
+ type leafref {
1692
+ path "../../../../ttp-transceiver/transponder-ref";
1693
+ }
1694
+ description
1695
+ "The reference to the transponder hosting the transceiver
1696
+ of this LLCL entry.";
1697
+ }
1698
+ leaf ttp-transceiver-ref {
1699
+ type leafref {
1700
+ path "../../../../ttp-transceiver/transceiver-ref";
1701
+ }
1702
+ description
1703
+ "The reference to the the transceiver of this LLCL entry.";
1704
+ }
1705
+ leaf is-allowed {
1706
+ type boolean;
1707
+ description
1708
+ "'true' - connectivity from this transceiver is allowed;
1709
+ 'false' - connectivity from this transceiver is
1710
+ disallowed.";
1711
+ }
1712
+ leaf add-path-impairments {
1713
+ type leafref {
1714
+ path "../../../../../../../oit:templates"
1715
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1716
+ + "/oit:roadm-path-impairments-id" ;
1717
+ }
1718
+ description "pointer to the list set of ROADM optical
1719
+ impairments";
1720
+ }
1721
+ leaf drop-path-impairments {
1722
+ type leafref {
1723
+ path "../../../../../../../oit:templates"
1724
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1725
+ + "/oit:roadm-path-impairments-id" ;
1726
+ }
1727
+ description "pointer to the list set of ROADM
1728
+ optical impairments";
1729
+ }
1730
+ }
1731
+ list additional-ltp {
1732
+ when "derived-from-or-self(../../../tet:protection-type,"
1733
+ + "'oit:otsi-protection')" {
1734
+ description
1735
+ "This list applies only to TTPs that support individual
1736
+ OTSi(G) protection.";
1737
+ }
1738
+ key "ltp-ref";
1739
+ config false;
1740
+ description
1741
+ "The restricted list of the potential secondary LTPs that
1742
+ can be selected when the LTP associated with this LLCP
1743
+ entry is selected as a working LTP.
1744
+
1745
+ If this list is empty, all the other LTPs that can be
1746
+ reached by this TTP can be selected as secondary LTPs.";
1747
+ leaf ltp-ref {
1748
+ type leafref {
1749
+ path "../../../../../../nt:termination-point/nt:tp-id";
1750
+ }
1751
+ description
1752
+ "The reference to potential secondary LTP that can be
1753
+ selected when the LTP associated with this LLCP entry is
1754
+ selected as a working LTP";
1755
+ }
1756
+ leaf add-path-impairments {
1757
+ type leafref {
1758
+ path "../../../../../../../oit:templates"
1759
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1760
+ + "/oit:roadm-path-impairments-id" ;
1761
+ }
1762
+ description "pointer to the list set of ROADM optical
1763
+ impairments";
1764
+ }
1765
+ leaf drop-path-impairments {
1766
+ type leafref {
1767
+ path "../../../../../../../oit:templates"
1768
+ + "/oit:roadm-path-impairments/oit:roadm-path-impairment"
1769
+ + "/oit:roadm-path-impairments-id" ;
1770
+ }
1771
+ description "pointer to the list set of ROADM
1772
+ optical impairments";
1773
+ }
1774
+ }
1775
+ } // augmentation local-link-connectivity
1776
+ }