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,2247 @@
1
+ module ietf-layer0-types {
2
+ yang-version 1.1;
3
+ namespace "urn:ietf:params:xml:ns:yang:ietf-layer0-types";
4
+ prefix l0-types;
5
+
6
+ organization
7
+ "IETF CCAMP Working Group";
8
+ contact
9
+ "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
10
+ WG List: <mailto:ccamp@ietf.org>
11
+
12
+ Editor: Dieter Beller
13
+ <mailto:Dieter.Beller@nokia.com>
14
+
15
+ Editor: Sergio Belotti
16
+ <mailto:Sergio.Belotti@nokia.com>
17
+
18
+ Editor: Italo Busi
19
+ <mailto:Italo.Busi@huawei.com>
20
+
21
+ Editor: Haomian Zheng
22
+ <mailto:zhenghaomian@huawei.com>";
23
+ description
24
+ "This module defines Optical Layer 0 types. This module
25
+ provides groupings that can be applicable to Layer 0
26
+ Fixed Optical Networks (e.g., CWDM (Coarse Wavelength
27
+ Division Multiplexing) and DWDM (Dense Wavelength Division
28
+ Multiplexing)) and flexi-grid optical networks.
29
+
30
+ Copyright (c) 2024 IETF Trust and the persons identified
31
+ as authors of the code. All rights reserved.
32
+
33
+ Redistribution and use in source and binary forms, with
34
+ or without modification, is permitted pursuant to, and
35
+ subject to the license terms contained in, the Revised
36
+ BSD License set forth in Section 4.c of the IETF Trust's
37
+ Legal Provisions Relating to IETF Documents
38
+ (https://trustee.ietf.org/license-info).
39
+
40
+ This version of this YANG module is part of RFC XXXX; see
41
+ the RFC itself for full legal notices.
42
+
43
+ The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
44
+ NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
45
+ 'MAY', and 'OPTIONAL' in this document are to be interpreted as
46
+ described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
47
+ they appear in all capitals, as shown here.";
48
+
49
+ // RFC Ed.: replace XXXX with actual RFC number and remove
50
+ // this note
51
+
52
+ // replace the revision date with the module publication date
53
+ // the format is (year-month-day)
54
+ revision 2024-03-04 {
55
+ description
56
+ "To be updated";
57
+ reference
58
+ "RFC XXXX: A YANG Data Model for Layer 0 Types";
59
+ }
60
+
61
+ revision 2021-08-13 {
62
+ description
63
+ "Initial version";
64
+ reference
65
+ "RFC 9093: A YANG Data Model for Layer 0 Types";
66
+ }
67
+
68
+ /*
69
+ * Identities
70
+ */
71
+
72
+ identity l0-grid-type {
73
+ description
74
+ "Layer 0 grid type";
75
+ reference
76
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
77
+ (LSC), Label Switching Routers,
78
+
79
+ ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
80
+ CWDM wavelength grid";
81
+ }
82
+
83
+ identity wson-grid-cwdm {
84
+ base l0-grid-type;
85
+ description
86
+ "CWDM grid";
87
+ reference
88
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
89
+ Label Switching Routers,
90
+
91
+ ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
92
+ CWDM wavelength grid";
93
+ }
94
+
95
+ identity wson-grid-dwdm {
96
+ base l0-grid-type;
97
+ description
98
+ "DWDM grid";
99
+ reference
100
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
101
+ (LSC), Label Switching Routers,
102
+
103
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
104
+ DWDM frequency grid";
105
+ }
106
+
107
+ identity flexi-grid-dwdm {
108
+ base l0-grid-type;
109
+ description
110
+ "Flexi-grid";
111
+ reference
112
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
113
+ Switch Capable (LSC) Label Switching Routers,
114
+
115
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
116
+ DWDM frequency grid";
117
+ }
118
+
119
+ identity cwdm-ch-spc-type {
120
+ description
121
+ "CWDM channel-spacing type";
122
+ reference
123
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
124
+ Label Switching Routers,
125
+
126
+ ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
127
+ CWDM wavelength grid";
128
+ }
129
+
130
+ identity cwdm-20nm {
131
+ base cwdm-ch-spc-type;
132
+ description
133
+ "20nm channel spacing";
134
+ reference
135
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
136
+ Label Switching Routers,
137
+
138
+ ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
139
+ CWDM wavelength grid";
140
+ }
141
+
142
+ identity dwdm-ch-spc-type {
143
+ description
144
+ "DWDM channel-spacing type";
145
+ reference
146
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
147
+ Label Switching Routers,
148
+
149
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
150
+ DWDM frequency grid";
151
+ }
152
+
153
+ identity dwdm-100ghz {
154
+ base dwdm-ch-spc-type;
155
+ description
156
+ "100 GHz channel spacing";
157
+ reference
158
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
159
+ Label Switching Routers,
160
+
161
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
162
+ DWDM frequency grid";
163
+ }
164
+
165
+ identity dwdm-50ghz {
166
+ base dwdm-ch-spc-type;
167
+ description
168
+ "50 GHz channel spacing";
169
+ reference
170
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
171
+ Label Switching Routers,
172
+
173
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
174
+ DWDM frequency grid";
175
+ }
176
+
177
+ identity dwdm-25ghz {
178
+ base dwdm-ch-spc-type;
179
+ description
180
+ "25 GHz channel spacing";
181
+ reference
182
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
183
+ Label Switching Routers,
184
+
185
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
186
+ DWDM frequency grid";
187
+ }
188
+
189
+ identity dwdm-12p5ghz {
190
+ base dwdm-ch-spc-type;
191
+ description
192
+ "12.5 GHz channel spacing";
193
+ reference
194
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
195
+ Label Switching Routers,
196
+
197
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
198
+ DWDM frequency grid";
199
+ }
200
+
201
+ identity flexi-ch-spc-type {
202
+ status deprecated;
203
+ description
204
+ "Flexi-grid channel-spacing type";
205
+ }
206
+
207
+ identity flexi-ch-spc-6p25ghz {
208
+ base flexi-ch-spc-type;
209
+ status deprecated;
210
+ description
211
+ "6.25 GHz channel spacing";
212
+ }
213
+
214
+ identity flexi-ncfg-type {
215
+ description
216
+ "Flexi-grid Nominal Central Frequency Granularity (NCFG)
217
+ type";
218
+ reference
219
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
220
+ Switch Capable (LSC) Label Switching Routers,
221
+
222
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
223
+ DWDM frequency grid";
224
+ }
225
+
226
+ identity flexi-ncfg-6p25ghz {
227
+ base flexi-ncfg-type;
228
+ description
229
+ "6.25 GHz Nominal Central Frequency Granularity (NCFG)";
230
+ reference
231
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
232
+ Switch Capable (LSC) Label Switching Routers,
233
+
234
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
235
+ DWDM frequency grid";
236
+ }
237
+
238
+ identity flexi-slot-width-granularity {
239
+ description
240
+ "Flexi-grid slot width granularity";
241
+ reference
242
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
243
+ Switch Capable (LSC) Label Switching Routers,
244
+
245
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
246
+ DWDM frequency grid";
247
+ }
248
+
249
+ identity flexi-swg-12p5ghz {
250
+ base flexi-slot-width-granularity;
251
+ description
252
+ "12.5 GHz slot width granularity";
253
+ reference
254
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
255
+ Switch Capable (LSC) Label Switching Routers,
256
+
257
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
258
+ DWDM frequency grid";
259
+ }
260
+
261
+ identity modulation {
262
+ description "base identity for modulation type";
263
+ }
264
+
265
+ identity DPSK {
266
+ base modulation;
267
+ description
268
+ "DPSK (Differential Phase Shift Keying) modulation";
269
+ }
270
+
271
+ identity QPSK {
272
+ base modulation;
273
+ description
274
+ "QPSK (Quadrature Phase Shift Keying) modulation";
275
+ }
276
+
277
+ identity DP-QPSK {
278
+ base modulation;
279
+ description
280
+ "DP-QPSK (Dual Polarization Quadrature
281
+ Phase Shift Keying) modulation";
282
+ }
283
+
284
+ identity QAM8 {
285
+ base modulation;
286
+ description
287
+ "8QAM (8 symbols Quadrature Amplitude Modulation)";
288
+ }
289
+
290
+ identity DP-QAM8 {
291
+ base modulation;
292
+ description
293
+ "DP-QAM8 (8 symbols Dual Polarization Quadrature Amplitude
294
+ Modulation)";
295
+ }
296
+
297
+ identity QAM16 {
298
+ base modulation;
299
+ description
300
+ "QAM16 (16 symbols Quadrature Amplitude Modulation)";
301
+ }
302
+
303
+ identity DP-QAM16 {
304
+ base modulation;
305
+ description
306
+ "DP-QAM16 (16 symbols Dual Polarization Quadrature Amplitude
307
+ Modulation)";
308
+ }
309
+
310
+ identity QAM32 {
311
+ base modulation;
312
+ description
313
+ "QAM32 (32 symbols Quadrature Amplitude Modulation)";
314
+ }
315
+
316
+ identity DP-QAM32 {
317
+ base modulation;
318
+ description
319
+ "DP-QAM32 (32 symbols Dual Polarization Quadrature Amplitude
320
+ Modulation)";
321
+ }
322
+
323
+ identity QAM64 {
324
+ base modulation;
325
+ description
326
+ "QAM64 (64 symbols Quadrature Amplitude Modulation)";
327
+ }
328
+
329
+ identity DP-QAM64 {
330
+ base modulation;
331
+ description
332
+ "DP-QAM64 (64 symbols Dual Polarization Quadrature Amplitude
333
+ Modulation)";
334
+ }
335
+
336
+ identity fec-type {
337
+ description
338
+ "Base identity from which specific FEC
339
+ (Forward Error Correction) type identities are derived.";
340
+ }
341
+
342
+ identity g-fec {
343
+ base fec-type;
344
+ description
345
+ "Generic Forward Error Correction (G-FEC).";
346
+ reference
347
+ "ITU-T G.975 v2.0 (10/2000): Forward error correction for
348
+ submarine systems.";
349
+ }
350
+
351
+ identity super-fec {
352
+ base fec-type;
353
+ description
354
+ "Super Forward Error Correction (S-FEC).";
355
+ reference
356
+ "ITU-T G.975.1 v1.2 (07/2013): Forward error correction for
357
+ high bit-rate DWDM submarine systems.";
358
+ }
359
+
360
+ identity no-fec {
361
+ base fec-type;
362
+ description
363
+ "No FEC";
364
+ }
365
+
366
+ identity sc-fec {
367
+ base fec-type;
368
+ description
369
+ "Staircase Forward Error Correction (SC-FEC).";
370
+ reference
371
+ "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach
372
+ interface.";
373
+ }
374
+
375
+ identity o-fec {
376
+ base fec-type;
377
+ description
378
+ "Open Forward Error Correction (O-FEC) which reuses the
379
+ Bose, Chaudhuri and Hocquenghem (BCH) FEC.";
380
+ reference
381
+ "Clause 16.4.4 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN
382
+ long-reach interfaces;
383
+
384
+ Annex E of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN
385
+ long-reach interfaces.";
386
+ }
387
+
388
+ identity c-fec {
389
+ base fec-type;
390
+ description
391
+ "Concatenated FEC (C-FEC) that combines an outer Staircase
392
+ Forward Error Correction (SC-FEC) code and an inner
393
+ double-extended SD-FEC (128,119) Hamming code.
394
+
395
+ More details are provided in clause 15/G.709.3 where it is
396
+ called DSH instead of concatenated FEC.";
397
+ reference
398
+ "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach
399
+ interface;
400
+
401
+ Annex D of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN
402
+ long-reach interfaces;
403
+
404
+ Clause 15 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN
405
+ long-reach interfaces.";
406
+ }
407
+
408
+ identity line-coding {
409
+ description
410
+ "Base identity to defined the bit rate/line coding of optical
411
+ tributary signals.";
412
+ reference
413
+ "Section 7.1.2 of ITU-T G.698.2 v3.0 (11/2018).";
414
+ }
415
+
416
+ identity line-coding-NRZ-2p5G {
417
+ base line-coding;
418
+ description
419
+ "The non return to zero (NRZ) bit rate/line coding used by
420
+ the optical tributary signal class NRZ 2.5G";
421
+ reference
422
+ "Section 3.2.6 of ITU-T G.959.1 v8.0 (07/2018).";
423
+ }
424
+
425
+ identity line-coding-NRZ-OTU1 {
426
+ base line-coding;
427
+ description
428
+ "The non return to zero (NRZ) bit rate/line coding used by
429
+ the Optical channel Transport Unit order 1 (OTU1) optical
430
+ tributary signals";
431
+ reference
432
+ "Section 7.2.1.2 of ITU-T G.959.1 v8.0 (07/2018).";
433
+ }
434
+
435
+ identity line-coding-NRZ-10G {
436
+ description
437
+ "The non return to zero (NRZ) bit rate/line coding used by
438
+ the optical tributary signal class NRZ 10G";
439
+ reference
440
+ "Section 3.2.7 of ITU-T G.959.1 v8.0 (07/2018).";
441
+ }
442
+
443
+ identity line-coding-NRZ-OTU2 {
444
+ base line-coding;
445
+ description
446
+ "The non return to zero (NRZ) bit rate/line coding used by
447
+ the Optical channel Transport Unit order 2 (OTU2) optical
448
+ tributary signals";
449
+ reference
450
+ "Section 7.2.1.2 of ITU-T G.959.1 v8.0 (07/2018).";
451
+ }
452
+
453
+ identity line-coding-OTL4.4-SC {
454
+ base line-coding;
455
+ description
456
+ "The bit rate/line coding used by optical tributary
457
+ signals carrying a 100G Optical Transport Unit order 4
458
+ (OTU4) with Staircase Forward Error Correction (SC FEC)
459
+ from a group of four Optical Transport Lanes (OTL).";
460
+ reference
461
+ "Section 3.2.1 of ITU-T G.698.2 v3.0 (11/2018).";
462
+ }
463
+
464
+ identity line-coding-FOIC1.4-SC {
465
+ base line-coding;
466
+ description
467
+ "The bit rate/line coding used by optical tributary signals
468
+ carrying a FlexO Interface of order C1 with 4 lanes
469
+ (FOIC1.1) with Staircase Forward Error Correction
470
+ (SC FEC).";
471
+ reference
472
+ "Section 3.2.1 of ITU-T G.698.2 v3.0 (11/2018).";
473
+ }
474
+
475
+ identity wavelength-assignment {
476
+ description
477
+ "Wavelength selection base";
478
+ reference
479
+ "RFC 7689: Signaling Extensions for Wavelength Switched
480
+ Optical Networks";
481
+ }
482
+
483
+ identity first-fit-wavelength-assignment {
484
+ base wavelength-assignment;
485
+ description
486
+ "All the available wavelengths are numbered,
487
+ and this WA (Wavelength Assignment) method chooses
488
+ the available wavelength with the lowest index";
489
+ reference
490
+ "RFC 7689: Signaling Extensions for Wavelength Switched
491
+ Optical Networks";
492
+ }
493
+
494
+ identity random-wavelength-assignment {
495
+ base wavelength-assignment;
496
+ description
497
+ "This WA method chooses an available
498
+ wavelength randomly";
499
+ reference
500
+ "RFC 7689: Signaling Extensions for Wavelength Switched
501
+ Optical Networks";
502
+ }
503
+
504
+ identity least-loaded-wavelength-assignment {
505
+ base wavelength-assignment;
506
+ description
507
+ "This WA method selects the wavelength that
508
+ has the largest residual capacity on the most loaded
509
+ link along the route (in multi-fiber networks)";
510
+ reference
511
+ "RFC 7689: Signaling Extensions for Wavelength Switched
512
+ Optical Networks";
513
+ }
514
+
515
+ identity lower-first-wavelength-assignment {
516
+ base wavelength-assignment;
517
+ description
518
+ "Allocate wavelengths in ascending order, beginning from the
519
+ lowest frequency and progressing toward the highest frequency
520
+ within the permissible frequency range.";
521
+ }
522
+
523
+ identity upper-first-wavelength-assignment {
524
+ base wavelength-assignment;
525
+ description
526
+ "Allocate wavelengths in decending order, beginning from the
527
+ highest frequency and progressing toward the lowest frequency
528
+ within the permissible frequency range.";
529
+ }
530
+
531
+ identity otu-type {
532
+ description
533
+ "Base identity from which specific OTU identities are derived";
534
+ reference
535
+ "ITU-T G.709: Interfaces for the Optical Transport Network";
536
+ }
537
+
538
+ identity OTU1 {
539
+ base otu-type;
540
+ description
541
+ "OTU1 (2.66 Gb/s)";
542
+ reference
543
+ "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
544
+ Transport Network (OTN)";
545
+ }
546
+
547
+ identity OTU2 {
548
+ base otu-type;
549
+ description
550
+ "OTU2 (10.70 Gb/s)";
551
+ reference
552
+ "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
553
+ Transport Network (OTN)";
554
+ }
555
+
556
+ identity OTU3 {
557
+ base otu-type;
558
+ description
559
+ "OTU3 (43.01 Gb/s)";
560
+ reference
561
+ "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
562
+ Transport Network (OTN)";
563
+ }
564
+
565
+ identity OTU4 {
566
+ base otu-type;
567
+ description
568
+ "OTU4 (111.80 Gb/s)";
569
+ reference
570
+ "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
571
+ Transport Network (OTN)";
572
+ }
573
+
574
+ identity OTUCn {
575
+ base otu-type;
576
+ description
577
+ "OTUCn (n x 105.25 Gb/s)";
578
+ reference
579
+ "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
580
+ Transport Network (OTN)";
581
+ }
582
+
583
+ identity type-power-mode {
584
+ description
585
+ "power equalization mode used within the
586
+ OMS and its elements";
587
+ }
588
+
589
+ identity power-spectral-density {
590
+ base type-power-mode;
591
+ description
592
+ "all elements must use power spectral density (W/Hz)";
593
+ }
594
+
595
+ identity carrier-power {
596
+ base type-power-mode;
597
+ description
598
+ "all elements must use power (dBm)";
599
+ }
600
+
601
+ identity operational-mode {
602
+ description
603
+ "Base identity to be used when defining organization/vendor
604
+ specific modes.
605
+
606
+ The format of the derived identities has to be defined by the
607
+ organization which is responsible for defining the
608
+ corresponding optical interface specification.";
609
+ reference
610
+ "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical
611
+ Impairment-aware Topology.";
612
+ }
613
+ // RFC Ed.: replace YYYY with actual RFC number and remove
614
+ // this note after draft-ietf-ccamp-optical-impairment-topology-yang
615
+ // is published as an RFC
616
+
617
+ /*
618
+ * Typedefs
619
+ */
620
+
621
+ typedef dwdm-n {
622
+ type int16;
623
+ description
624
+ "The given value 'N' is used to determine the nominal central
625
+ frequency.
626
+
627
+ The nominal central frequency, 'f', is defined by:
628
+ f = 193100.000 GHz + N x channel spacing (measured in GHz),
629
+
630
+ where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor
631
+ frequency' for transmission over the DWDM grid, and where
632
+ 'channel spacing' is defined by the dwdm-ch-spc-type.";
633
+ reference
634
+ "RFC6205: Generalized Labels for Lambda-Switch-Capable (LSC)
635
+ Label Switching Routers,
636
+
637
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
638
+ DWDM frequency grid";
639
+ }
640
+
641
+ typedef cwdm-n {
642
+ type int16;
643
+ description
644
+ "The given value 'N' is used to determine the nominal central
645
+ wavelength.
646
+
647
+ The nominal central wavelength is defined by:
648
+ Wavelength = 1471 nm + N x channel spacing (measured in nm)
649
+
650
+ where 1471 nm is the conventional 'anchor wavelength' for
651
+ transmission over the CWDM grid, and where 'channel spacing'
652
+ is defined by the cwdm-ch-spc-type.";
653
+ reference
654
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
655
+ Label Switching Routers,
656
+
657
+ ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
658
+ CWDM wavelength grid";
659
+ }
660
+
661
+ typedef flexi-n {
662
+ type int16;
663
+ description
664
+ "The given value 'N' is used to determine the nominal central
665
+ frequency.
666
+
667
+ The nominal central frequency, 'f', is defined by:
668
+ f = 193100.000 GHz + N x NCFG (measured in GHz),
669
+
670
+ where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor
671
+ frequency' for transmission over the DWDM grid, and where
672
+ NCFG is defined by the flexi-ncfg-type, or by the deprecated
673
+ flexi-ch-spc-type.";
674
+ reference
675
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
676
+ Switch Capable (LSC) Label Switching Routers,
677
+
678
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
679
+ DWDM frequency grid";
680
+ }
681
+
682
+ typedef flexi-m {
683
+ type uint16;
684
+ description
685
+ "The given value 'M' is used to determine the slot width.
686
+
687
+ A slot width is defined by:
688
+ slot width = M x SWG (measured in GHz),
689
+
690
+ where SWG is defined by the flexi-slot-width-granularity.";
691
+ reference
692
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
693
+ Switch Capable (LSC) Label Switching Routers,
694
+
695
+ ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
696
+ DWDM frequency grid";
697
+ }
698
+
699
+ typedef standard-mode {
700
+ type string;
701
+ description
702
+ "Identifies an ITU-T G.698.2 standard application code.
703
+
704
+ It MUST be a string with a format that follows the
705
+ nomenclature defined in section 5.3 of ITU-T G.698.2.";
706
+ reference
707
+ "ITU-T G.698.2 (11/2018)";
708
+ }
709
+
710
+ typedef organization-identifier {
711
+ type string;
712
+ description
713
+ "vendor/organization identifier that uses a private mode
714
+ out of already defined in G.698.2 ITU-T application-code";
715
+ reference
716
+ "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical
717
+ Impairment-aware Topology.";
718
+ }
719
+ // RFC Ed.: replace YYYY with actual RFC number and remove
720
+ // this note after draft-ietf-ccamp-optical-impairment-topology-yang
721
+ // is published as an RFC
722
+
723
+ typedef operational-mode {
724
+ type identityref {
725
+ base operational-mode;
726
+ }
727
+ description
728
+ "Identifies an organization (e.g., vendor) specific mode.
729
+
730
+ The format of these identities has to be defined by the
731
+ organization which is responsible for defining the
732
+ corresponding optical interface specification.";
733
+ reference
734
+ "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical
735
+ Impairment-aware Topology.";
736
+ }
737
+ // RFC Ed.: replace YYYY with actual RFC number and remove
738
+ // this note after draft-ietf-ccamp-optical-impairment-topology-yang
739
+ // is published as an RFC
740
+
741
+ typedef frequency-thz {
742
+ type decimal64 {
743
+ fraction-digits 9;
744
+ }
745
+ units "THz";
746
+ description
747
+ "The DWDM frequency in THz, e.g., 193.112500000";
748
+ }
749
+
750
+ typedef frequency-ghz {
751
+ type decimal64 {
752
+ fraction-digits 6;
753
+ }
754
+ units "GHz";
755
+ description
756
+ "The DWDM frequency in GHz, e.g., 193112.500000";
757
+ }
758
+
759
+ typedef snr {
760
+ type decimal64 {
761
+ fraction-digits 2;
762
+ }
763
+ units "dB@0.1nm";
764
+ description
765
+ "(Optical) Signal to Noise Ratio measured over 0.1 nm
766
+ resolution bandwidth";
767
+ }
768
+
769
+ typedef snr-or-null {
770
+ type union {
771
+ type snr;
772
+ type empty;
773
+ }
774
+ description
775
+ "(Optical) Signal to Noise Ratio measured over 0.1 nm
776
+ resolution bandwidth, when known, or an empty value when
777
+ unknown.";
778
+ }
779
+
780
+ typedef fiber-type {
781
+ type enumeration {
782
+ enum G.652 {
783
+ description
784
+ "G.652 Standard Singlemode Fiber";
785
+ }
786
+ enum G.654 {
787
+ description
788
+ "G.654 Cutoff Shifted Fiber";
789
+ }
790
+ enum G.653 {
791
+ description "G.653 Dispersion Shifted Fiber";
792
+ }
793
+ enum G.655 {
794
+ description "G.655 Non-Zero Dispersion Shifted Fiber";
795
+ }
796
+ enum G.656 {
797
+ description
798
+ "G.656 Non-Zero Dispersion for Wideband Optical Transport";
799
+ }
800
+ enum G.657 {
801
+ description
802
+ "G.657 Bend-Insensitive Fiber";
803
+ }
804
+ }
805
+ description
806
+ "ITU-T based fiber-types";
807
+ }
808
+
809
+ typedef decimal-2 {
810
+ type decimal64 {
811
+ fraction-digits 2;
812
+ }
813
+ description
814
+ "A decimal64 value with two digits.";
815
+ }
816
+
817
+ typedef decimal-2-or-null {
818
+ type union {
819
+ type decimal-2;
820
+ type empty;
821
+ }
822
+ description
823
+ "A decimal64 value with two digits, when the value is known or
824
+ an empty value when the value is not known.";
825
+ }
826
+
827
+ typedef power-gain {
828
+ type decimal-2 {
829
+ range "0..max";
830
+ }
831
+ units "dB";
832
+ description
833
+ "The gain in dB.";
834
+ }
835
+
836
+ typedef power-gain-or-null {
837
+ type union {
838
+ type power-gain;
839
+ type empty;
840
+ }
841
+ description
842
+ "The gain in dB, when it is known or an empty
843
+ value when the power gain/loss is not known.";
844
+ }
845
+
846
+ typedef power-loss {
847
+ type decimal-2 {
848
+ range "0..max";
849
+ }
850
+ units "dB";
851
+ description
852
+ "The power attenuation in dB.";
853
+ }
854
+
855
+ typedef power-loss-or-null {
856
+ type union {
857
+ type power-loss;
858
+ type empty;
859
+ }
860
+ description
861
+ "The power attenuation in dB, when it is known or an empty
862
+ value when the loss is not known.";
863
+ }
864
+
865
+ typedef power-ratio {
866
+ type decimal-2;
867
+ units "dB";
868
+ description
869
+ "The power difference in dB.";
870
+ }
871
+
872
+ typedef power-ratio-or-null {
873
+ type union {
874
+ type power-ratio;
875
+ type empty;
876
+ }
877
+ description
878
+ "The power difference in dB, when it is known or an empty
879
+ value when the difference is not known.";
880
+ }
881
+
882
+ typedef power-dbm {
883
+ type decimal-2;
884
+ units "dBm";
885
+ description
886
+ "The power in dBm.";
887
+ }
888
+
889
+ typedef power-dbm-or-null {
890
+ type union {
891
+ type power-dbm;
892
+ type empty;
893
+ }
894
+ description
895
+ "The power in dBm, when it is known or an empty value when the
896
+ power is not known.";
897
+ }
898
+
899
+ typedef decimal-5 {
900
+ type decimal64 {
901
+ fraction-digits 5;
902
+ }
903
+ description
904
+ "A decimal64 value with five digits.";
905
+ }
906
+
907
+ typedef decimal-5-or-null {
908
+ type union {
909
+ type decimal-5;
910
+ type empty;
911
+ }
912
+ description
913
+ "A decimal64 value with five digits, when the value is known
914
+ or an empty value when the value is not known.";
915
+ }
916
+
917
+ typedef psd {
918
+ type decimal64 {
919
+ fraction-digits 16;
920
+ }
921
+ units "W/Hz";
922
+ description
923
+ "The power spectral density (PSD).
924
+
925
+ Typical value : 3.9 E-14, resolution 0.1nW/MHz.";
926
+ }
927
+
928
+ typedef psd-or-null {
929
+ type union {
930
+ type psd;
931
+ type empty;
932
+ }
933
+ description
934
+ "The power spectral density (PSD), when it is known or an
935
+ empty value when the PSD is not known.";
936
+ }
937
+
938
+ /*
939
+ * Groupings
940
+ */
941
+
942
+ grouping wdm-label-start-end {
943
+ description
944
+ "The WDM label-start or label-end used to specify DWDM and
945
+ CWDM label range.";
946
+
947
+ choice grid-type {
948
+ description
949
+ "Label for fixed & flexi-DWDM or CWDM grid";
950
+ case fixed-dwdm {
951
+ leaf dwdm-n {
952
+ when "derived-from-or-self(../../../grid-type,
953
+ \"wson-grid-dwdm\")" {
954
+ description
955
+ "Valid only when grid type is DWDM.";
956
+ }
957
+ type l0-types:dwdm-n;
958
+ description
959
+ "The given value 'N' is used to determine the
960
+ nominal central frequency.";
961
+ reference
962
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
963
+ (LSC) Label Switching Routers";
964
+ }
965
+ }
966
+ case cwdm {
967
+ leaf cwdm-n {
968
+ when "derived-from-or-self(../../../grid-type,
969
+ \"wson-grid-cwdm\")" {
970
+ description
971
+ "Valid only when grid type is CWDM.";
972
+ }
973
+ type l0-types:cwdm-n;
974
+ description
975
+ "The given value 'N' is used to determine the nominal
976
+ central wavelength.";
977
+ reference
978
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
979
+ (LSC) Label Switching Routers";
980
+ }
981
+ }
982
+ case flexi-grid {
983
+ uses l0-types:flexi-grid-label-start-end;
984
+ }
985
+ }
986
+ reference
987
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
988
+ Label Switching Routers";
989
+ }
990
+
991
+ grouping wdm-label-step {
992
+ description
993
+ "Label step information for fixed & flexi-DWDM or CWDM grid";
994
+ choice l0-grid-type {
995
+ description
996
+ "Grid type: DWDM, CWDM, etc.";
997
+ case fixed-dwdm {
998
+ leaf wson-dwdm-channel-spacing {
999
+ when "derived-from-or-self(../../grid-type,
1000
+ \"wson-grid-dwdm\")" {
1001
+ description
1002
+ "Valid only when grid type is DWDM.";
1003
+ }
1004
+ type identityref {
1005
+ base dwdm-ch-spc-type;
1006
+ }
1007
+ description
1008
+ "Label-step is the channel spacing (GHz), e.g., 100.000,
1009
+ 50.000, 25.000, or 12.500 GHz for DWDM.";
1010
+ reference
1011
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
1012
+ (LSC) Label Switching Routers";
1013
+ }
1014
+ }
1015
+ case cwdm {
1016
+ leaf wson-cwdm-channel-spacing {
1017
+ when "derived-from-or-self(../../grid-type,
1018
+ \"wson-grid-cwdm\")" {
1019
+ description
1020
+ "Valid only when grid type is CWDM.";
1021
+ }
1022
+ type identityref {
1023
+ base cwdm-ch-spc-type;
1024
+ }
1025
+ description
1026
+ "Label-step is the channel spacing (nm), i.e., 20 nm
1027
+ for CWDM, which is the only value defined for CWDM.";
1028
+ reference
1029
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
1030
+ (LSC) Label Switching Routers";
1031
+ }
1032
+ }
1033
+ case flexi-grid {
1034
+ uses flexi-grid-label-step;
1035
+ }
1036
+ }
1037
+ reference
1038
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
1039
+ Label Switching Routers,
1040
+ ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
1041
+ CWDM wavelength grid,
1042
+ RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
1043
+ Dense Wavelength Division Multiplexing (DWDM) Networks";
1044
+ }
1045
+
1046
+ grouping wdm-label-hop {
1047
+ description
1048
+ "Generic label-hop information for fixed & flexi-DWDM or
1049
+ CWDM grid";
1050
+ choice grid-type {
1051
+ description
1052
+ "Label for DWDM or CWDM grid";
1053
+ case fixed-dwdm {
1054
+ choice fixed-single-or-super-channel {
1055
+ description
1056
+ "single or super channel";
1057
+ case single {
1058
+ leaf dwdm-n {
1059
+ type l0-types:dwdm-n;
1060
+ description
1061
+ "The given value 'N' is used to determine the
1062
+ nominal central frequency.";
1063
+ }
1064
+ }
1065
+ case multi {
1066
+ leaf-list subcarrier-dwdm-n {
1067
+ type l0-types:dwdm-n;
1068
+ min-elements 2;
1069
+ description
1070
+ "The given values 'N' are used to determine the
1071
+ nominal central frequency for each subcarrier
1072
+ channel.";
1073
+ reference
1074
+ "ITU-T G.694.1 (10/2020): Spectral grids for WDM
1075
+ applications: DWDM frequency grid";
1076
+ }
1077
+ }
1078
+ }
1079
+ }
1080
+ case cwdm {
1081
+ leaf cwdm-n {
1082
+ type l0-types:cwdm-n;
1083
+ description
1084
+ "The given value 'N' is used to determine the nominal
1085
+ central wavelength.";
1086
+ reference
1087
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
1088
+ (LSC) Label Switching Routers";
1089
+ }
1090
+ }
1091
+ case flexi-grid {
1092
+ uses l0-types:flexi-grid-label-hop;
1093
+ }
1094
+ }
1095
+ reference
1096
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
1097
+ Label Switching Routers";
1098
+ }
1099
+
1100
+ grouping wdm-label-range-info {
1101
+ description
1102
+ "WDM label range related information";
1103
+ uses l0-label-range-info;
1104
+ container flexi-grid {
1105
+ when "derived-from-or-self(../grid-type,
1106
+ \"flexi-grid-dwdm\")" {
1107
+ description
1108
+ "Applicable only when the grid type is flexi-grid-dwdm.";
1109
+ }
1110
+ description
1111
+ "flexi-grid definition";
1112
+ leaf slot-width-granularity {
1113
+ type identityref {
1114
+ base flexi-slot-width-granularity;
1115
+ }
1116
+ default "flexi-swg-12p5ghz";
1117
+ description
1118
+ "Minimum space between slot widths. Default is 12.500
1119
+ GHz.";
1120
+ reference
1121
+ "RFC 7698: Framework and Requirements for GMPLS-Based
1122
+ Control of Flexi-Grid Dense Wavelength Division
1123
+ Multiplexing (DWDM) Networks";
1124
+ }
1125
+ leaf min-slot-width-factor {
1126
+ type uint16 {
1127
+ range "1..max";
1128
+ }
1129
+ default "1";
1130
+ description
1131
+ "A multiplier of the slot width granularity, indicating
1132
+ the minimum slot width supported by an optical port.
1133
+
1134
+ Minimum slot width is calculated by:
1135
+ Minimum slot width (GHz) =
1136
+ min-slot-width-factor * slot-width-granularity.";
1137
+ reference
1138
+ "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
1139
+ Grid Dense Wavelength Division Multiplexing (DWDM)
1140
+ Networks";
1141
+ }
1142
+ leaf max-slot-width-factor {
1143
+ type uint16 {
1144
+ range "1..max";
1145
+ }
1146
+ must '. >= ../min-slot-width-factor' {
1147
+ error-message
1148
+ "Maximum slot width must be greater than or equal to
1149
+ minimum slot width.";
1150
+ }
1151
+ description
1152
+ "A multiplier of the slot width granularity, indicating
1153
+ the maximum slot width supported by an optical port.
1154
+
1155
+ Maximum slot width is calculated by:
1156
+ Maximum slot width (GHz) =
1157
+ max-slot-width-factor * slot-width-granularity
1158
+
1159
+ If specified, maximum slot width must be greater than or
1160
+ equal to minimum slot width. If not specified, maximum
1161
+ slot width is equal to minimum slot width.";
1162
+ reference
1163
+ "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
1164
+ Grid Dense Wavelength Division Multiplexing (DWDM)
1165
+ Networks";
1166
+ }
1167
+ }
1168
+ }
1169
+
1170
+ grouping wson-label-start-end {
1171
+ description
1172
+ "The WSON label-start or label-end used to specify WSON label
1173
+ range.";
1174
+ choice grid-type {
1175
+ description
1176
+ "Label for DWDM or CWDM grid";
1177
+ case dwdm {
1178
+ leaf dwdm-n {
1179
+ when "derived-from-or-self(../../../grid-type,
1180
+ \"wson-grid-dwdm\")" {
1181
+ description
1182
+ "Valid only when grid type is DWDM.";
1183
+ }
1184
+ type l0-types:dwdm-n;
1185
+ description
1186
+ "The central frequency of DWDM.";
1187
+ reference
1188
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
1189
+ (LSC) Label Switching Routers";
1190
+ }
1191
+ }
1192
+ case cwdm {
1193
+ leaf cwdm-n {
1194
+ when "derived-from-or-self(../../../grid-type,
1195
+ \"wson-grid-cwdm\")" {
1196
+ description
1197
+ "Valid only when grid type is CWDM.";
1198
+ }
1199
+ type l0-types:cwdm-n;
1200
+ description
1201
+ "Channel wavelength computing input.";
1202
+ reference
1203
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
1204
+ (LSC) Label Switching Routers";
1205
+ }
1206
+ }
1207
+ }
1208
+ reference
1209
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
1210
+ Label Switching Routers";
1211
+ }
1212
+
1213
+ grouping wson-label-hop {
1214
+ description
1215
+ "Generic label-hop information for WSON";
1216
+ choice grid-type {
1217
+ description
1218
+ "Label for DWDM or CWDM grid";
1219
+ case dwdm {
1220
+ choice single-or-super-channel {
1221
+ description
1222
+ "single or super channel";
1223
+ case single {
1224
+ leaf dwdm-n {
1225
+ type l0-types:dwdm-n;
1226
+ description
1227
+ "The given value 'N' is used to determine the
1228
+ nominal central frequency.";
1229
+ }
1230
+ }
1231
+ case super {
1232
+ leaf-list subcarrier-dwdm-n {
1233
+ type l0-types:dwdm-n;
1234
+ description
1235
+ "The given values 'N' are used to determine the
1236
+ nominal central frequency for each subcarrier
1237
+ channel.";
1238
+ reference
1239
+ "ITU-T G.694.1 (10/2020): Spectral grids for WDM
1240
+ applications: DWDM frequency grid";
1241
+ }
1242
+ }
1243
+ }
1244
+ }
1245
+ case cwdm {
1246
+ leaf cwdm-n {
1247
+ type l0-types:cwdm-n;
1248
+ description
1249
+ "The given value 'N' is used to determine the nominal
1250
+ central wavelength.";
1251
+ reference
1252
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
1253
+ (LSC) Label Switching Routers";
1254
+ }
1255
+ }
1256
+ }
1257
+ reference
1258
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
1259
+ Label Switching Routers";
1260
+ }
1261
+
1262
+ grouping l0-label-range-info {
1263
+ description
1264
+ "Information about Layer 0 label range.";
1265
+ leaf grid-type {
1266
+ type identityref {
1267
+ base l0-grid-type;
1268
+ }
1269
+ description
1270
+ "Grid type";
1271
+ }
1272
+ leaf priority {
1273
+ type uint8;
1274
+ description
1275
+ "Priority in Interface Switching Capability Descriptor
1276
+ (ISCD).";
1277
+ reference
1278
+ "RFC 4203: OSPF Extensions in Support of Generalized
1279
+ Multi-Protocol Label Switching (GMPLS)";
1280
+ }
1281
+ reference
1282
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
1283
+ Label Switching Routers";
1284
+ }
1285
+
1286
+ grouping wson-label-step {
1287
+ description
1288
+ "Label step information for WSON";
1289
+ choice l0-grid-type {
1290
+ description
1291
+ "Grid type: DWDM, CWDM, etc.";
1292
+ case dwdm {
1293
+ leaf wson-dwdm-channel-spacing {
1294
+ when "derived-from-or-self(../../grid-type,
1295
+ \"wson-grid-dwdm\")" {
1296
+ description
1297
+ "Valid only when grid type is DWDM.";
1298
+ }
1299
+ type identityref {
1300
+ base dwdm-ch-spc-type;
1301
+ }
1302
+ description
1303
+ "Label-step is the channel spacing (GHz), e.g., 100.000,
1304
+ 50.000, 25.000, or 12.500 GHz for DWDM.";
1305
+ reference
1306
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
1307
+ (LSC) Label Switching Routers";
1308
+ }
1309
+ }
1310
+ case cwdm {
1311
+ leaf wson-cwdm-channel-spacing {
1312
+ when "derived-from-or-self(../../grid-type,
1313
+ \"wson-grid-cwdm\")" {
1314
+ description
1315
+ "Valid only when grid type is CWDM.";
1316
+ }
1317
+ type identityref {
1318
+ base cwdm-ch-spc-type;
1319
+ }
1320
+ description
1321
+ "Label-step is the channel spacing (nm), i.e., 20 nm
1322
+ for CWDM, which is the only value defined for CWDM.";
1323
+ reference
1324
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable
1325
+ (LSC) Label Switching Routers";
1326
+ }
1327
+ }
1328
+ }
1329
+ reference
1330
+ "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
1331
+ Label Switching Routers,
1332
+
1333
+ ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
1334
+ CWDM wavelength grid";
1335
+ }
1336
+
1337
+ grouping flexi-grid-label-start-end {
1338
+ description
1339
+ "The flexi-grid label-start or label-end used to specify
1340
+ flexi-grid label range.";
1341
+ leaf flexi-n {
1342
+ type l0-types:flexi-n;
1343
+ description
1344
+ "The given value 'N' is used to determine the nominal
1345
+ central frequency.
1346
+
1347
+ As described in section 3.1 of RFC 8363, the range of
1348
+ available nominal central frequencies are advertised for
1349
+ m=1, which means that for an available central frequency n,
1350
+ the frequency slot from central frequency n-1 to central
1351
+ frequency n+1 is available.";
1352
+ }
1353
+ reference
1354
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
1355
+ Switch Capable (LSC) Label Switching Routers,
1356
+
1357
+ RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
1358
+ Dense Wavelength Division Multiplexing (DWDM) Networks";
1359
+ }
1360
+
1361
+ grouping flexi-grid-frequency-slot {
1362
+ description
1363
+ "Flexi-grid frequency slot grouping.";
1364
+ uses flexi-grid-label-start-end;
1365
+ leaf flexi-m {
1366
+ type l0-types:flexi-m;
1367
+ description
1368
+ "The given value 'M' is used to determine the slot width.";
1369
+ }
1370
+ reference
1371
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
1372
+ Switch Capable (LSC) Label Switching Routers";
1373
+ }
1374
+
1375
+ grouping flexi-grid-label-hop {
1376
+ description
1377
+ "Generic label-hop information for flexi-grid";
1378
+ choice single-or-super-channel {
1379
+ description
1380
+ "single or super channel";
1381
+ case single {
1382
+ uses flexi-grid-frequency-slot;
1383
+ }
1384
+ case super {
1385
+ status deprecated;
1386
+ list subcarrier-flexi-n {
1387
+ key "flexi-n";
1388
+ status deprecated;
1389
+ uses flexi-grid-frequency-slot {
1390
+ status deprecated;
1391
+ }
1392
+ description
1393
+ "List of subcarrier channels for flexi-grid super
1394
+ channel.";
1395
+ }
1396
+ }
1397
+ case multi {
1398
+ container frequency-slots {
1399
+ description
1400
+ "The top level container for the list of frequency
1401
+ slots used for flexi-grid super channel.";
1402
+ list frequency-slot {
1403
+ key "flexi-n";
1404
+ min-elements 2;
1405
+ uses flexi-grid-frequency-slot;
1406
+ description
1407
+ "List of frequency slots used for flexi-grid super
1408
+ channel.";
1409
+ }
1410
+ }
1411
+ }
1412
+ }
1413
+ reference
1414
+ "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
1415
+ Dense Wavelength Division Multiplexing (DWDM) Networks";
1416
+ }
1417
+
1418
+ grouping flexi-grid-label-range-info {
1419
+ description
1420
+ "Flexi-grid-specific label range related information";
1421
+ uses l0-label-range-info;
1422
+ container flexi-grid {
1423
+ description
1424
+ "flexi-grid definition";
1425
+ leaf slot-width-granularity {
1426
+ type identityref {
1427
+ base flexi-slot-width-granularity;
1428
+ }
1429
+ default "flexi-swg-12p5ghz";
1430
+ description
1431
+ "Minimum space between slot widths. Default is 12.500
1432
+ GHz.";
1433
+ reference
1434
+ "RFC 8363: GMPLS OSPF-TE Extensions in Support of
1435
+ Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
1436
+ Networks";
1437
+ }
1438
+ leaf min-slot-width-factor {
1439
+ type uint16 {
1440
+ range "1..max";
1441
+ }
1442
+ default "1";
1443
+ description
1444
+ "A multiplier of the slot width granularity, indicating
1445
+ the minimum slot width supported by an optical port.
1446
+
1447
+ Minimum slot width is calculated by:
1448
+ Minimum slot width (GHz) =
1449
+ min-slot-width-factor * slot-width-granularity.";
1450
+ reference
1451
+ "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
1452
+ Grid Dense Wavelength Division Multiplexing (DWDM)
1453
+ Networks";
1454
+ }
1455
+ leaf max-slot-width-factor {
1456
+ type uint16 {
1457
+ range "1..max";
1458
+ }
1459
+ must '. >= ../min-slot-width-factor' {
1460
+ error-message
1461
+ "Maximum slot width must be greater than or equal to
1462
+ minimum slot width.";
1463
+ }
1464
+ description
1465
+ "A multiplier of the slot width granularity, indicating
1466
+ the maximum slot width supported by an optical port.
1467
+
1468
+ Maximum slot width is calculated by:
1469
+ Maximum slot width (GHz) =
1470
+ max-slot-width-factor * slot-width-granularity
1471
+
1472
+ If specified, maximum slot width must be greater than or
1473
+ equal to minimum slot width. If not specified, maximum
1474
+ slot width is equal to minimum slot width.";
1475
+ reference
1476
+ "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
1477
+ Grid Dense Wavelength Division Multiplexing (DWDM)
1478
+ Networks";
1479
+ }
1480
+ }
1481
+ }
1482
+
1483
+ grouping flexi-grid-label-step {
1484
+ description
1485
+ "Label step information for flexi-grid";
1486
+ leaf flexi-grid-channel-spacing {
1487
+ type identityref {
1488
+ base flexi-ch-spc-type;
1489
+ }
1490
+ default "flexi-ch-spc-6p25ghz";
1491
+ status deprecated;
1492
+ description
1493
+ "Label-step is the nominal central frequency granularity
1494
+ (GHz), e.g., 6.25 GHz.";
1495
+ reference
1496
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
1497
+ Switch Capable (LSC) Label Switching Routers";
1498
+ }
1499
+ leaf flexi-ncfg {
1500
+ type identityref {
1501
+ base flexi-ncfg-type;
1502
+ }
1503
+ default "flexi-ncfg-6p25ghz";
1504
+ description
1505
+ "Label-step is the nominal central frequency granularity
1506
+ (GHz), e.g., 6.25 GHz.";
1507
+ reference
1508
+ "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
1509
+ Switch Capable (LSC) Label Switching Routers";
1510
+ }
1511
+ leaf flexi-n-step {
1512
+ type uint8;
1513
+ description
1514
+ "This attribute defines the multiplier for the supported
1515
+ values of 'N'.
1516
+
1517
+ For example, given a grid with a nominal central frequency
1518
+ granularity of 6.25 GHz, the granularity of the supported
1519
+ values of the nominal central frequency could be 12.5 GHz.
1520
+ In this case, the values of flexi-n should be even and this
1521
+ constraint is reported by setting the flexi-n-step to 2.
1522
+
1523
+ This attribute is also known as central frequency
1524
+ granularity in RFC 8363.";
1525
+ reference
1526
+ "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
1527
+ Dense Wavelength Division Multiplexing (DWDM) Networks";
1528
+ }
1529
+ }
1530
+
1531
+ grouping transceiver-mode {
1532
+ description
1533
+ "This grouping is intended to be used for reporting the
1534
+ information of a transceiver's mode.
1535
+
1536
+ The attributes for the explicit mode shall be augmented when
1537
+ used with either:
1538
+ - the proper leafrefs, when explicit mode templates are used;
1539
+ or,
1540
+ - the explicit-mode grouping, when explicit mode templates
1541
+ are not used.
1542
+
1543
+ The compatible-modes container shall be augmented with the
1544
+ proper leafrefs when used: see for example the
1545
+ transceiver-capabilities grouping below.";
1546
+ choice mode {
1547
+ mandatory true;
1548
+ description
1549
+ "Indicates whether the transceiver's mode is a standard
1550
+ mode, an organizational mode or an explicit mode.";
1551
+ case G.698.2 {
1552
+ uses standard-mode;
1553
+ uses common-standard-organizational-mode;
1554
+ uses common-all-modes;
1555
+ }
1556
+ case organizational-mode {
1557
+ container organizational-mode {
1558
+ config false;
1559
+ description
1560
+ "The set of attributes for an organizational mode";
1561
+ uses organizational-mode;
1562
+ uses common-standard-organizational-mode;
1563
+ uses common-all-modes;
1564
+ } // container organizational-mode
1565
+ }
1566
+ case explicit-mode {
1567
+ container explicit-mode {
1568
+ config false;
1569
+ description
1570
+ "The set of attributes for an explicit mode";
1571
+ // uses explicit-mode;
1572
+ uses common-all-modes;
1573
+ container compatible-modes {
1574
+ description
1575
+ "Container for all the standard and organizational
1576
+ modes supported by the transceiver's explicit
1577
+ mode.";
1578
+ } // container compatible-modes
1579
+ } // container explicit-mode
1580
+ } // end of case explicit-mode
1581
+ } // end of choice
1582
+ }
1583
+
1584
+ grouping transceiver-capabilities {
1585
+ description
1586
+ "This grouping is intended to be used for reporting the
1587
+ capabilities of a transceiver.
1588
+
1589
+ The attributes for the explicit mode shall be augmented when
1590
+ used with either:
1591
+ - the proper leafrefs, when explicit mode templates are used;
1592
+ or,
1593
+ - the explicit-mode grouping, when explicit mode templates
1594
+ are not used.";
1595
+
1596
+ container supported-modes {
1597
+ presence
1598
+ "When present, it indicates that the modes supported by a
1599
+ transceiver are reported.";
1600
+ description
1601
+ "The top level container for the list supported
1602
+ transceiver's modes.";
1603
+ list supported-mode {
1604
+ key "mode-id";
1605
+ config false;
1606
+ min-elements 1;
1607
+ description "The list of supported transceiver's modes.";
1608
+ leaf mode-id {
1609
+ type string {
1610
+ length "1..255";
1611
+ }
1612
+ description "ID for the supported transceiver's mode.";
1613
+ }
1614
+ uses transceiver-mode {
1615
+ augment "mode/explicit-mode/explicit-mode/"
1616
+ + "compatible-modes" {
1617
+ description
1618
+ "Augments the compatible modes with the proper
1619
+ leafrefs.";
1620
+ leaf-list supported-application-codes {
1621
+ type leafref {
1622
+ path "../../../../supported-mode/mode-id";
1623
+ }
1624
+ must "../../../../"
1625
+ + "supported-mode[mode-id=current()]/"
1626
+ + "standard-mode" {
1627
+ description
1628
+ "The pointer is only for application codes
1629
+ supported by transceiver.";
1630
+ }
1631
+ description
1632
+ "List of pointers to the application codes
1633
+ supported by the transceiver's explicit mode.";
1634
+ }
1635
+ leaf-list supported-organizational-modes {
1636
+ type leafref {
1637
+ path "../../../../supported-mode/mode-id";
1638
+ }
1639
+ must "../../../../"
1640
+ + "supported-mode[mode-id=current()]/"
1641
+ + "organizational-mode" {
1642
+ description
1643
+ "The pointer is only for organizational modes
1644
+ supported by transceiver.";
1645
+ }
1646
+ description
1647
+ "List of pointers to the organizational modes
1648
+ supported by the transceiver's explicit mode.";
1649
+ }
1650
+ }
1651
+ }
1652
+ } // list supported-modes
1653
+ } // container supported-modes
1654
+ } // grouping transceiver-capabilities
1655
+
1656
+ grouping standard-mode {
1657
+ description
1658
+ "ITU-T G.698.2 standard mode that guarantees interoperability.
1659
+ It must be an string with the following format:
1660
+ B-DScW-ytz(v) where all these attributes are conformant
1661
+ to the ITU-T recomendation";
1662
+
1663
+ leaf standard-mode {
1664
+ type standard-mode;
1665
+ config false;
1666
+ description
1667
+ "G.698.2 standard mode";
1668
+ }
1669
+ }
1670
+
1671
+ grouping organizational-mode {
1672
+ description
1673
+ "Transponder operational mode supported by organizations or
1674
+ vendor";
1675
+
1676
+ leaf operational-mode {
1677
+ type operational-mode;
1678
+ config false;
1679
+ description
1680
+ "configured organization- or vendor-specific
1681
+ application identifiers (AI) supported by the transponder";
1682
+ }
1683
+ leaf organization-identifier {
1684
+ type organization-identifier;
1685
+ config false;
1686
+ description
1687
+ "organization identifier that uses organizational
1688
+ mode";
1689
+ }
1690
+ }
1691
+
1692
+ grouping penalty-value {
1693
+ description
1694
+ "A common definition of the penalty value used for describing
1695
+ multiple penalty types (.e.g, CD, PMD, PDL).";
1696
+
1697
+ leaf penalty-value {
1698
+ type union {
1699
+ type decimal64 {
1700
+ fraction-digits 2;
1701
+ range "0..max";
1702
+ }
1703
+ type empty;
1704
+ }
1705
+ units "dB";
1706
+ config false;
1707
+ mandatory true;
1708
+ description
1709
+ "The OSNR penalty associated with the related optical
1710
+ impairment at the receiver, when the value is known or an
1711
+ empty value when the value is not known.";
1712
+ }
1713
+ }
1714
+
1715
+ grouping explicit-mode {
1716
+ description
1717
+ "Attributes capabilities related to explicit transceiver's
1718
+ mode.
1719
+
1720
+ This grouping also contains the list of attributes related to
1721
+ optical impairment limits for explicit mode (min OSNR, max PMD,
1722
+ max CD, max PDL, Q-factor limit, etc.).
1723
+
1724
+ In case of standard and operational mode the attributes are
1725
+ implicit.";
1726
+ leaf line-coding-bitrate {
1727
+ type identityref {
1728
+ base line-coding;
1729
+ }
1730
+ config false;
1731
+ description
1732
+ "Bit rate/line coding of the optical tributary signal.";
1733
+ reference
1734
+ "ITU-T G.698.2 section 7.1.2";
1735
+ }
1736
+ leaf bitrate {
1737
+ type uint16;
1738
+ units "Gbit/sec";
1739
+ config false;
1740
+ description
1741
+ "The gross bitrate (e.g., 100, 200) of the optical tributary
1742
+ signal.";
1743
+ }
1744
+ leaf max-diff-group-delay {
1745
+ type decimal-2;
1746
+ units "ps";
1747
+ config false;
1748
+ description
1749
+ "Maximum Differential group delay of this mode for this
1750
+ lane";
1751
+ }
1752
+ leaf max-chromatic-dispersion {
1753
+ type decimal64 {
1754
+ fraction-digits 2;
1755
+ range "0..max";
1756
+ }
1757
+ units "ps/nm";
1758
+ config false;
1759
+ description
1760
+ "Maximum acceptable accumulated chromatic dispersion (CD)
1761
+ on the receiver";
1762
+ }
1763
+ list cd-penalty {
1764
+ config false;
1765
+ description
1766
+ "Optional penalty associated with a given accumulated
1767
+ chromatic dispersion (CD) value.
1768
+
1769
+ This list of pair cd and penalty values can be used to
1770
+ sample the function penalty = f(CD).";
1771
+ leaf cd-value {
1772
+ type union {
1773
+ type decimal64 {
1774
+ fraction-digits 2;
1775
+ range "0..max";
1776
+ }
1777
+ type empty;
1778
+ }
1779
+ units "ps/nm";
1780
+ config false;
1781
+ mandatory true;
1782
+ description
1783
+ "The Chromatic Dispersion (CD), when the value is known
1784
+ or an empty value when the value is not known.";
1785
+ }
1786
+ uses penalty-value;
1787
+ }
1788
+ leaf max-polarization-mode-dispersion {
1789
+ type decimal64 {
1790
+ fraction-digits 2;
1791
+ range "0..max";
1792
+ }
1793
+ units "ps";
1794
+ config false;
1795
+ description
1796
+ "Maximum acceptable accumulated polarization mode
1797
+ dispersion (PMD) on the receiver";
1798
+ }
1799
+ list pmd-penalty {
1800
+ config false;
1801
+ description
1802
+ "Optional penalty associated with a given accumulated
1803
+ polarization mode dispersion (PMD) value.
1804
+
1805
+ This list of pair pmd and penalty can be used to
1806
+ sample the function penalty = f(PMD).";
1807
+ leaf pmd-value {
1808
+ type union {
1809
+ type decimal64 {
1810
+ fraction-digits 2;
1811
+ range "0..max";
1812
+ }
1813
+ type empty;
1814
+ }
1815
+ units "ps";
1816
+ config false;
1817
+ mandatory true;
1818
+ description
1819
+ "The Polarization Mode Dispersion (PMD), when the value
1820
+ is known or an empty value when the value is not known.";
1821
+ }
1822
+ uses penalty-value;
1823
+ }
1824
+ leaf max-polarization-dependant-loss {
1825
+ type power-loss-or-null;
1826
+ config false;
1827
+ mandatory true;
1828
+ description
1829
+ "Maximum acceptable accumulated accumulated polarization
1830
+ dependent loss (PDL) on the receiver";
1831
+ }
1832
+ list pdl-penalty {
1833
+ config false;
1834
+ description
1835
+ "Optional penalty associated with a given accumulated
1836
+ polarization dependent loss (PDL) value.
1837
+
1838
+ This list of pair pdl and penalty values can be used to
1839
+ sample the function PDL = f(penalty).";
1840
+ leaf pdl-value {
1841
+ type power-loss-or-null;
1842
+ config false;
1843
+ mandatory true;
1844
+ description
1845
+ "Maximum acceptable accumulated polarization dependent
1846
+ loss.";
1847
+ }
1848
+ uses penalty-value;
1849
+ }
1850
+ leaf available-modulation-type {
1851
+ type identityref {
1852
+ base modulation;
1853
+ }
1854
+ config false;
1855
+ description
1856
+ "Modulation type the specific transceiver in the list
1857
+ can support";
1858
+ }
1859
+ leaf min-OSNR {
1860
+ type snr;
1861
+ units "dBm";
1862
+ config false;
1863
+ description
1864
+ "min OSNR measured over 0.1 nm resolution bandwidth:
1865
+ if received OSNR at Rx-power reference point
1866
+ (rx-ref-channel-power) is lower than MIN-OSNR, an increased
1867
+ level of bit-errors post-FEC needs to be expected";
1868
+ }
1869
+ leaf rx-ref-channel-power {
1870
+ type power-dbm;
1871
+ config false;
1872
+ description
1873
+ "The channel power used as reference for defining penalties
1874
+ and min-OSNR";
1875
+ }
1876
+ list rx-channel-power-penalty {
1877
+ config false;
1878
+ description
1879
+ "Optional penalty associated with a received power
1880
+ lower than rx-ref-channel-power.
1881
+ This list of pair power and penalty can be used to
1882
+ sample the function penalty = f(rx-channel-power).";
1883
+ leaf rx-channel-power-value {
1884
+ type power-dbm-or-null;
1885
+ units "dBm";
1886
+ config false;
1887
+ mandatory true;
1888
+ description
1889
+ "The Received Power, when the value is known or an empty
1890
+ value when the value is not known.";
1891
+ }
1892
+ uses penalty-value;
1893
+ }
1894
+ leaf min-Q-factor {
1895
+ type decimal-2;
1896
+ units "dB";
1897
+ config false;
1898
+ description "min Qfactor at FEC threshold";
1899
+ }
1900
+ leaf available-baud-rate {
1901
+ type decimal64 {
1902
+ fraction-digits 1;
1903
+ }
1904
+ units "Bd";
1905
+ config false;
1906
+ description
1907
+ "Baud-rate the specific transceiver in
1908
+ the list can support.
1909
+ Baud-rate is the unit for
1910
+ symbol rate or modulation rate
1911
+ in symbols per second or
1912
+ pulses per second.
1913
+ It is the number of distinct symbol
1914
+ changes (signal events) made to the
1915
+ transmission medium
1916
+ per second in a digitally
1917
+ modulated signal or a line code";
1918
+ }
1919
+ leaf roll-off {
1920
+ type decimal64 {
1921
+ fraction-digits 4;
1922
+ range "0..1";
1923
+ }
1924
+ config false;
1925
+ description
1926
+ "the roll-off factor (beta with values from 0 to 1)
1927
+ identifies how the real signal shape exceed
1928
+ the baud rate. If=0 it is exactly matching
1929
+ the baud rate.If=1 the signal exceeds the
1930
+ 50% of the baud rate at each side.";
1931
+ }
1932
+ leaf min-carrier-spacing {
1933
+ type frequency-ghz;
1934
+ config false;
1935
+ description
1936
+ "This attribute specifies the minimum nominal difference
1937
+ between the carrier frequencies of two homogeneous OTSis
1938
+ (which have the same optical characteristics but the central
1939
+ frequencies) such that if they are placed next to each other
1940
+ the interference due to spectrum overlap between them can be
1941
+ considered negligible.
1942
+
1943
+ In case of heterogeneous OTSi it is up to path computation
1944
+ engine to determine the minimum distance between the carrier
1945
+ frequency of the two adjacent OTSi.";
1946
+ }
1947
+ leaf available-fec-type {
1948
+ type identityref {
1949
+ base fec-type;
1950
+ }
1951
+ config false;
1952
+ description "Available FEC";
1953
+ }
1954
+ leaf fec-code-rate {
1955
+ type decimal64 {
1956
+ fraction-digits 8;
1957
+ range "0..max";
1958
+ }
1959
+ config false;
1960
+ description "FEC-code-rate";
1961
+ }
1962
+ leaf fec-threshold {
1963
+ type decimal64 {
1964
+ fraction-digits 8;
1965
+ range "0..max";
1966
+ }
1967
+ config false;
1968
+ description
1969
+ "Threshold on the BER, for which FEC
1970
+ is able to correct errors";
1971
+ }
1972
+ leaf in-band-osnr {
1973
+ type snr;
1974
+ config false;
1975
+ description
1976
+ "The OSNR defined within the bandwidth of the transmit
1977
+ spectral excursion (i.e., between the nominal central
1978
+ frequency of the channel and the -3.0dB points of the
1979
+ transmitter spectrum furthest from the nominal central
1980
+ frequency) measured at reference point Ss.
1981
+
1982
+ The in-band OSNR is referenced to an optical bandwidth of
1983
+ 0.1nm @ 193.7 THz or 12.5 GHz.";
1984
+ reference
1985
+ "OIF-400ZR-01.0: Implementation Agreement 400ZR";
1986
+ }
1987
+ leaf out-of-band-osnr {
1988
+ type snr;
1989
+ config false;
1990
+ description
1991
+ "The ratio of the peak transmitter power to the integrated
1992
+ power outside the transmitter spectral excursion.
1993
+
1994
+ The spectral resolution of the measurement shall be better
1995
+ than the maximum spectral width of the peak.
1996
+
1997
+ The out-of-band OSNR is referenced to an optical bandwidth
1998
+ of 0.1nm @ 193.7 THz or 12.5 GHz";
1999
+ reference
2000
+ "OIF-400ZR-01.0: Implementation Agreement 400ZR";
2001
+ }
2002
+ leaf tx-polarization-power-difference {
2003
+ type power-ratio;
2004
+ config false;
2005
+ description
2006
+ "The transmitter polarization dependent power difference
2007
+ defined as the power difference between X and Y
2008
+ polarizations";
2009
+ reference
2010
+ "OIF-400ZR-01.0: Implementation Agreement 400ZR";
2011
+ }
2012
+ leaf polarization-skew {
2013
+ type decimal64 {
2014
+ fraction-digits 2;
2015
+ }
2016
+ units "ps";
2017
+ config false;
2018
+ description
2019
+ "The X-Y skew, included as a fixed value in the receiver
2020
+ polarization mode dispersion (PMD) tolerance limits.";
2021
+ reference
2022
+ "OIF-400ZR-01.0: Implementation Agreement 400ZR";
2023
+ }
2024
+ } // grouping explicit-mode
2025
+
2026
+ grouping common-standard-organizational-mode {
2027
+ description
2028
+ "Common attributes used by standard and organizational
2029
+ transceiver's modes.";
2030
+
2031
+ leaf-list line-coding-bitrate {
2032
+ type identityref {
2033
+ base line-coding;
2034
+ }
2035
+ config false;
2036
+ description
2037
+ "The list of the bit rate/line coding of the optical
2038
+ tributary signal supported by the transceiver.
2039
+
2040
+ Reporting this list is optional when the standard or
2041
+ organization mode supports only one bit rate/line coding.";
2042
+ reference
2043
+ "ITU-T G.698.2 section 7.1.2";
2044
+ }
2045
+ } // grouping common-standard-organizational-mode
2046
+
2047
+ grouping transmitter-tuning-range {
2048
+ description
2049
+ "Transmitter tuning range (f_tx-min, f_tx-max)";
2050
+
2051
+ leaf min-central-frequency {
2052
+ type frequency-thz;
2053
+ description
2054
+ "This parameter indicates the minimum frequency for the
2055
+ transmitter tuning range.";
2056
+ }
2057
+ leaf max-central-frequency {
2058
+ type frequency-thz;
2059
+ description
2060
+ "This parameter indicates the maximum frequency for the
2061
+ transmitter tuning range.";
2062
+ }
2063
+
2064
+ leaf transceiver-tunability {
2065
+ type frequency-ghz;
2066
+ description
2067
+ "This parameter indicates the transmitter frequency fine
2068
+ tuning steps e.g 3.125GHz or 0.001GHz.";
2069
+ }
2070
+ } // grouping transmitter-tuning-range
2071
+
2072
+ grouping common-all-modes {
2073
+ description
2074
+ "Common attributes used by all transceiver's modes.";
2075
+
2076
+ uses transmitter-tuning-range;
2077
+ leaf tx-channel-power-min {
2078
+ type power-dbm;
2079
+ config false;
2080
+ description "The minimum output power of this interface";
2081
+ }
2082
+ leaf tx-channel-power-max {
2083
+ type power-dbm;
2084
+ config false;
2085
+ description "The maximum output power of this interface";
2086
+ }
2087
+ leaf rx-channel-power-min {
2088
+ type power-dbm;
2089
+ config false;
2090
+ description "The minimum input power of this interface";
2091
+ }
2092
+ leaf rx-channel-power-max {
2093
+ type power-dbm;
2094
+ config false;
2095
+ description "The maximum input power of this interface";
2096
+ }
2097
+ leaf rx-total-power-max {
2098
+ type power-dbm;
2099
+ config false;
2100
+ description
2101
+ "Maximum rx optical power for all the channels.
2102
+
2103
+ It is applicable only to multi-channel modes.";
2104
+ }
2105
+ } // grouping common-all-modes
2106
+
2107
+ grouping common-transceiver-param {
2108
+ description
2109
+ "The common parameters of an optical transceiver,
2110
+ that supplement the configured mode.";
2111
+
2112
+ uses common-transceiver-configured-param;
2113
+ uses common-transceiver-readonly-param;
2114
+ }
2115
+
2116
+ grouping common-transceiver-configured-param {
2117
+ description
2118
+ "The configured parameters of an optical transceiver,
2119
+ that supplement the configured mode.";
2120
+
2121
+ leaf line-coding-bitrate {
2122
+ type identityref {
2123
+ base line-coding;
2124
+ }
2125
+ description
2126
+ "Bit rate/line coding of the optical tributary signal.
2127
+
2128
+ Support of this attribute is optional when the configured
2129
+ mode supports only one bit rate/line coding.";
2130
+ reference
2131
+ "ITU-T G.698.2 section 7.1.2";
2132
+ }
2133
+ leaf tx-channel-power {
2134
+ type power-dbm-or-null;
2135
+ description
2136
+ "The current channel transmit power, when the value is
2137
+ known or an empty value when the value is not known.
2138
+
2139
+ The empty value MUST NOT be used when this attribute is
2140
+ configured.";
2141
+ }
2142
+ } // grouping for configured transceiver attributes out of mode
2143
+
2144
+ grouping common-transceiver-readonly-param {
2145
+ description
2146
+ "The common read-only parameters of an optical transceiver,
2147
+ that supplement the configured mode.";
2148
+
2149
+ leaf rx-channel-power {
2150
+ type power-dbm-or-null;
2151
+ config false;
2152
+ description
2153
+ "The current channel received power, when the value is
2154
+ known or an empty value when the value is not known.";
2155
+ }
2156
+ leaf rx-total-power {
2157
+ type power-dbm-or-null;
2158
+ config false;
2159
+ description
2160
+ "The current total received power, when the value is known
2161
+ or an empty value when the value is not known.";
2162
+ }
2163
+ } // grouping for read-only transceiver attributes out of mode
2164
+
2165
+ grouping l0-tunnel-attributes {
2166
+ description
2167
+ "Parameters for Layer0 (WSON or Flexi-Grid) Tunnels.";
2168
+
2169
+ leaf wavelength-assignment {
2170
+ type identityref {
2171
+ base wavelength-assignment;
2172
+ }
2173
+ description "Wavelength Allocation Method";
2174
+ }
2175
+ }
2176
+
2177
+ grouping frequency-range {
2178
+ description
2179
+ "This grouping defines the lower and upper bounds of a
2180
+ frequency range (e.g., a band).
2181
+
2182
+ This grouping SHOULD NOT be used to define a frequency slot,
2183
+ which SHOULD be defined using the n and m values instead.";
2184
+ leaf lower-frequency {
2185
+ type frequency-thz;
2186
+ mandatory true;
2187
+ description
2188
+ "The lower frequency boundary of the
2189
+ frequency range.";
2190
+ }
2191
+ leaf upper-frequency {
2192
+ type frequency-thz;
2193
+ must '. > ../lower-frequency' {
2194
+ error-message
2195
+ "The upper frequency must be greater than the lower
2196
+ frequency.";
2197
+ }
2198
+ mandatory true;
2199
+ description
2200
+ "The upper frequency boundary of the
2201
+ frequency range.";
2202
+ }
2203
+ }
2204
+
2205
+ grouping l0-path-constraints {
2206
+ description
2207
+ "Common attribute for Layer 0 path constraints to be used by
2208
+ Layer 0 computation.";
2209
+ leaf gsnr-extra-margin {
2210
+ type snr {
2211
+ range 0..max;
2212
+ }
2213
+ default 0;
2214
+ description
2215
+ "An additional margin to be added to the OSNR-min of the
2216
+ transceiver when checking the estimated received Generalized
2217
+ SNR (GSNR).";
2218
+ }
2219
+ }
2220
+
2221
+ grouping l0-path-properties {
2222
+ description
2223
+ "Common attribute for reporting the Layer 0 computed path
2224
+ properties.";
2225
+ leaf estimated-gsnr {
2226
+ type snr;
2227
+ config false;
2228
+ description
2229
+ "The estimate received GSNR for the computed path.";
2230
+ }
2231
+ leaf estimated-eol-gsnr {
2232
+ type snr;
2233
+ config false;
2234
+ description
2235
+ "The estimate received GSNR for the computed path
2236
+ degraded at the end of life.";
2237
+ }
2238
+ leaf estimated-lowest-gsnr {
2239
+ type snr;
2240
+ config false;
2241
+ description
2242
+ "The estimate lowest received GSNR for the computed path
2243
+ among all possible wavelength channels along the same
2244
+ path.";
2245
+ }
2246
+ }
2247
+ }