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.
- gnpy_api-0.0.0.dist-info/METADATA +78 -0
- gnpy_api-0.0.0.dist-info/RECORD +40 -0
- gnpy_api-0.0.0.dist-info/WHEEL +5 -0
- gnpy_api-0.0.0.dist-info/licenses/AUTHORS +1 -0
- gnpy_api-0.0.0.dist-info/licenses/LICENSE +28 -0
- gnpy_api-0.0.0.dist-info/pbr.json +1 -0
- gnpy_api-0.0.0.dist-info/top_level.txt +1 -0
- gnpyapi/__init__.py +0 -0
- gnpyapi/core/__init__.py +12 -0
- gnpyapi/core/exception/__init__.py +1 -0
- gnpyapi/core/exception/config_error.py +14 -0
- gnpyapi/core/exception/equipment_error.py +14 -0
- gnpyapi/core/exception/exception_handler.py +34 -0
- gnpyapi/core/exception/path_computation_error.py +14 -0
- gnpyapi/core/exception/topology_error.py +13 -0
- gnpyapi/core/model/__init__.py +1 -0
- gnpyapi/core/model/error.py +17 -0
- gnpyapi/core/model/result.py +8 -0
- gnpyapi/core/route/__init__.py +1 -0
- gnpyapi/core/route/path_request_route.py +28 -0
- gnpyapi/core/route/status_route.py +8 -0
- gnpyapi/core/service/__init__.py +1 -0
- gnpyapi/core/service/config_service.py +4 -0
- gnpyapi/core/service/equipment_service.py +5 -0
- gnpyapi/core/service/path_request_service.py +36 -0
- gnpyapi/core/service/topology_service.py +5 -0
- gnpyapi/exampledata/planning_demand_example.json +1578 -0
- gnpyapi/tools/__init__.py +0 -0
- gnpyapi/yang/gnpy-api@2021-01-06.yang +81 -0
- gnpyapi/yang/gnpy-eqpt-config@2020-10-22.yang +442 -0
- gnpyapi/yang/gnpy-eqpt-config@2025-01-20.yang +770 -0
- gnpyapi/yang/gnpy-network-topology@2020-10-22.yang +300 -0
- gnpyapi/yang/gnpy-network-topology@2025-01-20.yang +594 -0
- gnpyapi/yang/gnpy-path-computation-simplified@2020-10-22.yang +559 -0
- gnpyapi/yang/gnpy-path-computation@2025-01-21.yang +632 -0
- gnpyapi/yang/ietf-layer0-types@2024-03-04.yang +2247 -0
- gnpyapi/yang/ietf-optical-impairment-topology@2024-05-21.yang +1776 -0
- gnpyapi/yang/ietf-routing-types@2017-12-04.yang +771 -0
- gnpyapi/yang/ietf-te-topology@2020-08-06.yang +1952 -0
- gnpyapi/yang/ietf-te-types@2022-10-21.yang +3458 -0
|
@@ -0,0 +1,770 @@
|
|
|
1
|
+
module gnpy-eqpt-config {
|
|
2
|
+
yang-version 1.1;
|
|
3
|
+
namespace "urn:ns:gnpy:equipment_library";
|
|
4
|
+
|
|
5
|
+
prefix "gnpyeqpt";
|
|
6
|
+
|
|
7
|
+
import ietf-optical-impairment-topology {
|
|
8
|
+
prefix "oit";
|
|
9
|
+
revision-date 2024-05-21;
|
|
10
|
+
reference
|
|
11
|
+
"RFC 8345: A YANG Data Model for Network Topologies";
|
|
12
|
+
}
|
|
13
|
+
import ietf-layer0-types {
|
|
14
|
+
prefix "l0-types";
|
|
15
|
+
revision-date 2024-03-04;
|
|
16
|
+
reference
|
|
17
|
+
"RFC 8345: A YANG Data Model for Network Topologies";
|
|
18
|
+
}
|
|
19
|
+
organization
|
|
20
|
+
"Telecom Infra Project OOPT PSE
|
|
21
|
+
Working Group";
|
|
22
|
+
|
|
23
|
+
contact
|
|
24
|
+
"WG Web: <https://github.com/Telecominfraproject/oopt-gnpy>
|
|
25
|
+
contact: <mailto:ahmed.triki@orange.com>
|
|
26
|
+
contact: <mailto:esther.lerouzic@orange.com>
|
|
27
|
+
";
|
|
28
|
+
|
|
29
|
+
description "Base YANG model for gnpy equipment library input for path computation - 2020 - candi preversion";
|
|
30
|
+
|
|
31
|
+
revision 2025-01-20 {
|
|
32
|
+
description
|
|
33
|
+
"Add RamanFiber, design bands, tx_power";
|
|
34
|
+
reference
|
|
35
|
+
"Base YANG model for equipment library input for detecon, libyang validation, GNPy4Ofr API";
|
|
36
|
+
}
|
|
37
|
+
revision "2024-02-21" {
|
|
38
|
+
description "add roadm, fix identity-ref, fix leafref";
|
|
39
|
+
reference "Base YANG model for equipment library input for detecon, libyang validatio, GNPy4Ofr API";
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
revision "2023-02-04" {
|
|
43
|
+
description "fix pdl, pmd fraction-digit, add advanced_model type def, remove no-type-def";
|
|
44
|
+
reference "Base YANG model for equipment library input for detecon - GNPy";
|
|
45
|
+
}
|
|
46
|
+
revision "2022-11-21" {
|
|
47
|
+
description "draft for toaster detecon - GNPy API";
|
|
48
|
+
reference "Base YANG model for equipment library input for detecon - GNPy";
|
|
49
|
+
}
|
|
50
|
+
revision "2020-10-22" {
|
|
51
|
+
description "draft for experimental/2020-candi";
|
|
52
|
+
reference "Base YANG model for equipment library input for path computation with gnpy";
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/*
|
|
56
|
+
* Identities
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
identity edfa-type-def {
|
|
60
|
+
description "base identity for variable gain and fixed gain";
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
identity variable_gain {
|
|
64
|
+
base edfa-type-def;
|
|
65
|
+
description "'variable_gain' is a simplified model simulating a 2-coil
|
|
66
|
+
EDFA with internal, input and output VOAs. The NF vs gain response is calculated
|
|
67
|
+
accordingly based on the input parameters: nf_min, nf_max, and gain_flatmax. It
|
|
68
|
+
is not a simple interpolation but a 2-stage NF calculation.";
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
identity fixed_gain {
|
|
72
|
+
base edfa-type-def;
|
|
73
|
+
description "'fixed_gain' is a fixed gain model. NF == Cte == nf0 if gain_min < gain < gain_flatmax";
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
identity openroadm {
|
|
77
|
+
base edfa-type-def;
|
|
78
|
+
description "'openroadm' is an openroadm amplifier type.";
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
identity multi_band {
|
|
82
|
+
base edfa-type-def;
|
|
83
|
+
description "multi_band has a combination of amp per frequency band defined with their f_min f_max range";
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
identity dual_stage {
|
|
87
|
+
base edfa-type-def;
|
|
88
|
+
description "dual-stage has two amps defined";
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
identity advanced_model {
|
|
92
|
+
base edfa-type-def;
|
|
93
|
+
description "advanced_model has a combination of amp per frequency band defined with their f_min f_max range";
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
identity fiber-variety {
|
|
97
|
+
description "base identity for fiber variety";
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
identity transceiver-variety {
|
|
101
|
+
description "base identity for transceiver variety";
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
grouping variable_gain {
|
|
105
|
+
leaf nf_min {
|
|
106
|
+
type decimal64 {
|
|
107
|
+
fraction-digits 2;
|
|
108
|
+
}
|
|
109
|
+
units dB;
|
|
110
|
+
}
|
|
111
|
+
leaf nf_max {
|
|
112
|
+
type decimal64 {
|
|
113
|
+
fraction-digits 2;
|
|
114
|
+
}
|
|
115
|
+
units dB;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
grouping fixed_gain{
|
|
120
|
+
leaf nf0 {
|
|
121
|
+
type decimal64 {
|
|
122
|
+
fraction-digits 2;
|
|
123
|
+
}
|
|
124
|
+
units dB;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
grouping openroadm{
|
|
129
|
+
leaf-list nf_coef {
|
|
130
|
+
type decimal64 {
|
|
131
|
+
fraction-digits 8;
|
|
132
|
+
}
|
|
133
|
+
//default [8.1e-4,6.142e-2,1.558,19.97] ;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
grouping dual-stage {
|
|
138
|
+
leaf preamp_variety {
|
|
139
|
+
type union {
|
|
140
|
+
type leafref {
|
|
141
|
+
path "../../Edfa/type_variety";
|
|
142
|
+
}
|
|
143
|
+
type leafref {
|
|
144
|
+
path "../../Edfa/other_name";
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
leaf booster_variety {
|
|
149
|
+
type union {
|
|
150
|
+
type leafref {
|
|
151
|
+
path "../../Edfa/type_variety";
|
|
152
|
+
}
|
|
153
|
+
type leafref {
|
|
154
|
+
path "../../Edfa/other_name";
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
grouping multi_band {
|
|
161
|
+
leaf-list amplifiers {
|
|
162
|
+
type string;
|
|
163
|
+
description "list of amplifier type-variety picked in other type-def";
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
grouping advanced_model {
|
|
168
|
+
leaf advanced_config_from_json {
|
|
169
|
+
type string;
|
|
170
|
+
description
|
|
171
|
+
"file name where all noise interp coef, gain ripple, dgt, nf_ripple are detailed";
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
grouping edfa-common {
|
|
176
|
+
leaf allowed_for_design{
|
|
177
|
+
type boolean ;
|
|
178
|
+
description "If false, the amplifier will not be picked by auto-design but it can still be used as a
|
|
179
|
+
manual input (from JSON or Excel template topology files.)";
|
|
180
|
+
}
|
|
181
|
+
leaf gain_flatmax {
|
|
182
|
+
type decimal64 {
|
|
183
|
+
fraction-digits 2;
|
|
184
|
+
}
|
|
185
|
+
units dB;
|
|
186
|
+
}
|
|
187
|
+
leaf gain_min {
|
|
188
|
+
type decimal64 {
|
|
189
|
+
fraction-digits 2;
|
|
190
|
+
}
|
|
191
|
+
units dB;
|
|
192
|
+
}
|
|
193
|
+
leaf gain_extended {
|
|
194
|
+
type decimal64 {
|
|
195
|
+
fraction-digits 2;
|
|
196
|
+
}
|
|
197
|
+
units dB;
|
|
198
|
+
}
|
|
199
|
+
leaf p_max {
|
|
200
|
+
type decimal64 {
|
|
201
|
+
fraction-digits 2;
|
|
202
|
+
}
|
|
203
|
+
units dBm;
|
|
204
|
+
}
|
|
205
|
+
leaf type_def {
|
|
206
|
+
type identityref{
|
|
207
|
+
base edfa-type-def;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
leaf raman {
|
|
211
|
+
type boolean;
|
|
212
|
+
}
|
|
213
|
+
leaf out_voa_auto{
|
|
214
|
+
type boolean ;
|
|
215
|
+
description "auto_design feature to optimize the amplifier output VOA. If true, output VOA is present
|
|
216
|
+
and will be used to push amplifier gain to its maximum, within EOL power margins.";
|
|
217
|
+
}
|
|
218
|
+
leaf in_voa_auto{
|
|
219
|
+
type boolean ;
|
|
220
|
+
description "auto_design feature to optimize the amplifier input VOA. If true, input VOA is present.
|
|
221
|
+
TODO: code the function in GNPy";
|
|
222
|
+
}
|
|
223
|
+
choice type_of_model {
|
|
224
|
+
case variable_gain {
|
|
225
|
+
when "type_def = 'gnpyeqpt:variable_gain'";
|
|
226
|
+
uses variable_gain ;
|
|
227
|
+
}
|
|
228
|
+
case fixed_gain{
|
|
229
|
+
when "type_def = 'gnpyeqpt:fixed_gain'";
|
|
230
|
+
uses fixed_gain;
|
|
231
|
+
}
|
|
232
|
+
case openroadm{
|
|
233
|
+
when "type_def = 'gnpyeqpt:openroadm'";
|
|
234
|
+
uses openroadm;
|
|
235
|
+
}
|
|
236
|
+
case dual_stage {
|
|
237
|
+
when "type_def = 'gnpyeqpt:dual_stage'";
|
|
238
|
+
uses dual-stage ;
|
|
239
|
+
}
|
|
240
|
+
case multi_band {
|
|
241
|
+
when "type_def = 'gnpyeqpt:multi_band'";
|
|
242
|
+
uses multi_band ;
|
|
243
|
+
}
|
|
244
|
+
case advanced_model {
|
|
245
|
+
when "type_def = 'gnpyeqpt:advanced_model'";
|
|
246
|
+
uses advanced_model;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
grouping common-fiber {
|
|
252
|
+
description "common parameters for fiber and raman fiber";
|
|
253
|
+
leaf type_variety {
|
|
254
|
+
type string ;
|
|
255
|
+
description "a unique name to ID the fiber in the JSON or Excel template topology input file";
|
|
256
|
+
}
|
|
257
|
+
leaf dispersion{
|
|
258
|
+
type decimal64 {
|
|
259
|
+
fraction-digits 8;
|
|
260
|
+
}
|
|
261
|
+
units s.m-1.m-1;
|
|
262
|
+
}
|
|
263
|
+
leaf gamma{
|
|
264
|
+
type decimal64 {
|
|
265
|
+
fraction-digits 8;
|
|
266
|
+
}
|
|
267
|
+
units w-1.m-1 ;
|
|
268
|
+
description "2pi.n2/(lambda*Aeff) (w-2.m-1)";
|
|
269
|
+
}
|
|
270
|
+
leaf pmd_coef{
|
|
271
|
+
type decimal64 {
|
|
272
|
+
fraction-digits 18;
|
|
273
|
+
}
|
|
274
|
+
units s.sqrt(m)-1;
|
|
275
|
+
}
|
|
276
|
+
leaf effective_area{
|
|
277
|
+
type decimal64 {
|
|
278
|
+
fraction-digits 14;
|
|
279
|
+
}
|
|
280
|
+
units m-2;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
grouping range {
|
|
285
|
+
leaf min_value {
|
|
286
|
+
type decimal64 {
|
|
287
|
+
fraction-digits 2;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
leaf max_value {
|
|
291
|
+
type decimal64 {
|
|
292
|
+
fraction-digits 2;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
leaf step {
|
|
296
|
+
type decimal64 {
|
|
297
|
+
fraction-digits 2;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
grouping eqpt{
|
|
303
|
+
list Edfa {
|
|
304
|
+
config false ;
|
|
305
|
+
key type_variety;
|
|
306
|
+
leaf type_variety {
|
|
307
|
+
type string;
|
|
308
|
+
description "a unique name to ID the amplifier in the JSON/Excel template topology input file";
|
|
309
|
+
}
|
|
310
|
+
leaf-list other_name {
|
|
311
|
+
type string;
|
|
312
|
+
description "a list of alternative names for the equipment";
|
|
313
|
+
}
|
|
314
|
+
leaf f_min {
|
|
315
|
+
type decimal64 {
|
|
316
|
+
fraction-digits 1;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
leaf f_max {
|
|
320
|
+
type decimal64 {
|
|
321
|
+
fraction-digits 1;
|
|
322
|
+
} }
|
|
323
|
+
uses edfa-common;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
grouping frequency-range {
|
|
327
|
+
description
|
|
328
|
+
"This grouping defines the lower and upper bounds of a
|
|
329
|
+
frequency range (e.g., a band).
|
|
330
|
+
|
|
331
|
+
This grouping SHOULD NOT be used to define a frequency slot,
|
|
332
|
+
which SHOULD be defined using the n and m values instead.
|
|
333
|
+
copied from ietf-layer0-types except for units which must be Hz";
|
|
334
|
+
leaf lower-frequency {
|
|
335
|
+
type union {
|
|
336
|
+
type decimal64 {
|
|
337
|
+
fraction-digits 2;
|
|
338
|
+
range "0..max";
|
|
339
|
+
}
|
|
340
|
+
type empty;
|
|
341
|
+
}
|
|
342
|
+
units Hz;
|
|
343
|
+
mandatory true;
|
|
344
|
+
description
|
|
345
|
+
"The lower frequency boundary of the
|
|
346
|
+
frequency range.";
|
|
347
|
+
}
|
|
348
|
+
leaf upper-frequency {
|
|
349
|
+
type union {
|
|
350
|
+
type decimal64 {
|
|
351
|
+
fraction-digits 2;
|
|
352
|
+
range "0..max";
|
|
353
|
+
}
|
|
354
|
+
type empty;
|
|
355
|
+
}
|
|
356
|
+
units Hz;
|
|
357
|
+
must '. > ../lower-frequency' {
|
|
358
|
+
error-message
|
|
359
|
+
"The upper frequency must be greater than the lower
|
|
360
|
+
frequency.";
|
|
361
|
+
}
|
|
362
|
+
mandatory true;
|
|
363
|
+
description
|
|
364
|
+
"The upper frequency boundary of the
|
|
365
|
+
frequency range.";
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
list Fiber {
|
|
370
|
+
config false ;
|
|
371
|
+
key type_variety;
|
|
372
|
+
uses common-fiber;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
list RamanFiber {
|
|
376
|
+
config false ;
|
|
377
|
+
uses common-fiber;
|
|
378
|
+
container raman_efficiency {
|
|
379
|
+
leaf-list cr {
|
|
380
|
+
type decimal64 {
|
|
381
|
+
fraction-digits 9;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
leaf-list frequency_offset {
|
|
385
|
+
type decimal64 {
|
|
386
|
+
fraction-digits 2;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
list Span {
|
|
393
|
+
config false ;
|
|
394
|
+
leaf power_mode {
|
|
395
|
+
type boolean ;
|
|
396
|
+
}
|
|
397
|
+
container delta_power_range_dict_db {
|
|
398
|
+
uses range ;
|
|
399
|
+
}
|
|
400
|
+
leaf max_length {
|
|
401
|
+
type decimal64 {
|
|
402
|
+
fraction-digits 2;
|
|
403
|
+
}
|
|
404
|
+
units km;
|
|
405
|
+
default 150.0 ;
|
|
406
|
+
}
|
|
407
|
+
leaf max_loss {
|
|
408
|
+
type decimal64 {
|
|
409
|
+
fraction-digits 2;
|
|
410
|
+
}
|
|
411
|
+
units dB;
|
|
412
|
+
}
|
|
413
|
+
leaf max_fiber_lineic_loss_for_raman {
|
|
414
|
+
type decimal64 {
|
|
415
|
+
fraction-digits 2;
|
|
416
|
+
}
|
|
417
|
+
units dB.km-1;
|
|
418
|
+
}
|
|
419
|
+
leaf target_extended_gain {
|
|
420
|
+
type decimal64 {
|
|
421
|
+
fraction-digits 2;
|
|
422
|
+
}
|
|
423
|
+
units dB;
|
|
424
|
+
}
|
|
425
|
+
leaf length_units{
|
|
426
|
+
type string ;
|
|
427
|
+
default "km";
|
|
428
|
+
}
|
|
429
|
+
leaf padding{
|
|
430
|
+
type decimal64 {
|
|
431
|
+
fraction-digits 2;
|
|
432
|
+
}
|
|
433
|
+
default 10.0 ;
|
|
434
|
+
}
|
|
435
|
+
leaf EOL{
|
|
436
|
+
type decimal64 {
|
|
437
|
+
fraction-digits 2;
|
|
438
|
+
}
|
|
439
|
+
default 0.0 ;
|
|
440
|
+
}
|
|
441
|
+
leaf con_in{
|
|
442
|
+
type decimal64 {
|
|
443
|
+
fraction-digits 2;
|
|
444
|
+
}
|
|
445
|
+
default 0.0 ;
|
|
446
|
+
}
|
|
447
|
+
leaf con_out{
|
|
448
|
+
type decimal64 {
|
|
449
|
+
fraction-digits 2;
|
|
450
|
+
}
|
|
451
|
+
default 0.0 ;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
list Roadm {
|
|
456
|
+
config false ;
|
|
457
|
+
leaf type_variety {
|
|
458
|
+
type string;
|
|
459
|
+
}
|
|
460
|
+
leaf target_pch_out_db {
|
|
461
|
+
type decimal64 {
|
|
462
|
+
fraction-digits 2;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
leaf target_psd_out_mWperGHz {
|
|
466
|
+
type decimal64 {
|
|
467
|
+
fraction-digits 2;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
leaf target_out_mWperSlotWidth {
|
|
471
|
+
type decimal64 {
|
|
472
|
+
fraction-digits 2;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
leaf add_drop_osnr {
|
|
476
|
+
type decimal64 {
|
|
477
|
+
fraction-digits 2;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
leaf pmd {
|
|
481
|
+
type decimal64 {
|
|
482
|
+
fraction-digits 15;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
leaf pdl {
|
|
486
|
+
type decimal64 {
|
|
487
|
+
fraction-digits 2;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
container restrictions {
|
|
491
|
+
leaf-list preamp_variety_list {
|
|
492
|
+
type string;
|
|
493
|
+
}
|
|
494
|
+
leaf-list booster_variety_list {
|
|
495
|
+
type string;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
list roadm-path-impairments {
|
|
500
|
+
key "roadm-path-impairments-id";
|
|
501
|
+
config false;
|
|
502
|
+
description
|
|
503
|
+
"The set of optical impairments related to a ROADM path.";
|
|
504
|
+
|
|
505
|
+
leaf roadm-path-impairments-id {
|
|
506
|
+
type uint32;
|
|
507
|
+
description "index of the ROADM path-impairment list";
|
|
508
|
+
}
|
|
509
|
+
choice impairment-type {
|
|
510
|
+
description "type path impairment";
|
|
511
|
+
case roadm-express-path {
|
|
512
|
+
list roadm-express-path {
|
|
513
|
+
description
|
|
514
|
+
"The list of optical impairments on a ROADM express
|
|
515
|
+
path for different frequency ranges.
|
|
516
|
+
Two elements in the list must not have the same range
|
|
517
|
+
or overlapping ranges.";
|
|
518
|
+
container frequency-range {
|
|
519
|
+
description
|
|
520
|
+
"The frequency range for which these optical
|
|
521
|
+
impairments apply.";
|
|
522
|
+
uses frequency-range;
|
|
523
|
+
}
|
|
524
|
+
// todo: augment express to allow transit OSNR//
|
|
525
|
+
uses oit:roadm-express-path;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
case roadm-add-path {
|
|
529
|
+
list roadm-add-path {
|
|
530
|
+
description
|
|
531
|
+
"The list of optical impairments on a ROADM add
|
|
532
|
+
path for different frequency ranges.
|
|
533
|
+
Two elements in the list must not have the same range
|
|
534
|
+
or overlapping ranges.";
|
|
535
|
+
container frequency-range {
|
|
536
|
+
description
|
|
537
|
+
"The frequency range for which these optical
|
|
538
|
+
impairments apply.";
|
|
539
|
+
uses frequency-range;
|
|
540
|
+
}
|
|
541
|
+
uses oit:roadm-add-path;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
case roadm-drop-path {
|
|
545
|
+
list roadm-drop-path {
|
|
546
|
+
description
|
|
547
|
+
"The list of optical impairments on a ROADM add
|
|
548
|
+
path for different frequency ranges.
|
|
549
|
+
Two elements in the list must not have the same range
|
|
550
|
+
or overlapping ranges.";
|
|
551
|
+
container frequency-range {
|
|
552
|
+
description
|
|
553
|
+
"The frequency range for which these optical
|
|
554
|
+
impairments apply.";
|
|
555
|
+
uses frequency-range;
|
|
556
|
+
}
|
|
557
|
+
uses oit:roadm-drop-path;
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
} // list path impairments
|
|
562
|
+
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
list SI {
|
|
566
|
+
config false ;
|
|
567
|
+
leaf f_min {
|
|
568
|
+
type decimal64 {
|
|
569
|
+
fraction-digits 2;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
leaf f_max {
|
|
573
|
+
type decimal64 {
|
|
574
|
+
fraction-digits 2;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
leaf baud_rate {
|
|
578
|
+
type decimal64 {
|
|
579
|
+
fraction-digits 2;
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
leaf spacing {
|
|
583
|
+
type decimal64 {
|
|
584
|
+
fraction-digits 2;
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
leaf power_dbm {
|
|
588
|
+
type decimal64 {
|
|
589
|
+
fraction-digits 2;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
container power_range_dict_db {
|
|
593
|
+
uses range;
|
|
594
|
+
}
|
|
595
|
+
leaf roll_off {
|
|
596
|
+
type decimal64 {
|
|
597
|
+
fraction-digits 2;
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
leaf tx_osnr {
|
|
601
|
+
type decimal64 {
|
|
602
|
+
fraction-digits 2;
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
leaf tx_power_dbm {
|
|
606
|
+
type decimal64 {
|
|
607
|
+
fraction-digits 2;
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
leaf type_variety {
|
|
611
|
+
type string ;
|
|
612
|
+
description "a unique name to ID the SI band";
|
|
613
|
+
}
|
|
614
|
+
leaf sys_margins {
|
|
615
|
+
type decimal64 {
|
|
616
|
+
fraction-digits 2;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
list Transceiver {
|
|
622
|
+
config false ;
|
|
623
|
+
leaf type_variety {
|
|
624
|
+
type string ;
|
|
625
|
+
description "a unique name to ID the transceiver in the JSON or Excel template topology input file";
|
|
626
|
+
}
|
|
627
|
+
leaf-list other_name {
|
|
628
|
+
type string;
|
|
629
|
+
description "a list of alternative names for the equipment";
|
|
630
|
+
}
|
|
631
|
+
leaf comment {
|
|
632
|
+
type string;
|
|
633
|
+
description "free string";
|
|
634
|
+
}
|
|
635
|
+
container frequency {
|
|
636
|
+
leaf min {
|
|
637
|
+
type decimal64 {
|
|
638
|
+
fraction-digits 2;
|
|
639
|
+
}
|
|
640
|
+
units Hz ;
|
|
641
|
+
}
|
|
642
|
+
leaf max {
|
|
643
|
+
type decimal64 {
|
|
644
|
+
fraction-digits 2;
|
|
645
|
+
}
|
|
646
|
+
units Hz ;
|
|
647
|
+
}
|
|
648
|
+
description "Min/max frequency of transponder eg 191.35e12 and 196.1e12";
|
|
649
|
+
}
|
|
650
|
+
list mode {
|
|
651
|
+
config false ;
|
|
652
|
+
leaf format {
|
|
653
|
+
type string ;
|
|
654
|
+
description "unique name of the mode";
|
|
655
|
+
}
|
|
656
|
+
leaf-list other_name {
|
|
657
|
+
type string;
|
|
658
|
+
description "a list of alternative names for the mode";
|
|
659
|
+
}
|
|
660
|
+
leaf baud_rate {
|
|
661
|
+
type decimal64 {
|
|
662
|
+
fraction-digits 2;
|
|
663
|
+
}
|
|
664
|
+
units baud ;
|
|
665
|
+
description "baud_rate";
|
|
666
|
+
}
|
|
667
|
+
leaf OSNR {
|
|
668
|
+
type decimal64 {
|
|
669
|
+
fraction-digits 2;
|
|
670
|
+
}
|
|
671
|
+
units dB ;
|
|
672
|
+
description "min required OSNR in 0.1nm (dB)";
|
|
673
|
+
}
|
|
674
|
+
leaf tx_osnr {
|
|
675
|
+
type decimal64 {
|
|
676
|
+
fraction-digits 2;
|
|
677
|
+
}
|
|
678
|
+
units dB ;
|
|
679
|
+
description "min required OSNR in 0.1nm (dB)";
|
|
680
|
+
}
|
|
681
|
+
leaf min_spacing {
|
|
682
|
+
type decimal64 {
|
|
683
|
+
fraction-digits 2;
|
|
684
|
+
}
|
|
685
|
+
units GHz ;
|
|
686
|
+
description "...";
|
|
687
|
+
}
|
|
688
|
+
leaf bit_rate {
|
|
689
|
+
type decimal64 {
|
|
690
|
+
fraction-digits 2;
|
|
691
|
+
}
|
|
692
|
+
units bit/s ;
|
|
693
|
+
description "bit rate";
|
|
694
|
+
}
|
|
695
|
+
leaf roll_off {
|
|
696
|
+
type union {
|
|
697
|
+
type decimal64 {
|
|
698
|
+
fraction-digits 2;
|
|
699
|
+
}
|
|
700
|
+
type empty;
|
|
701
|
+
}
|
|
702
|
+
description "...";
|
|
703
|
+
}
|
|
704
|
+
leaf cost {
|
|
705
|
+
type decimal64 {
|
|
706
|
+
fraction-digits 2;
|
|
707
|
+
}
|
|
708
|
+
description "arbitrary unit";
|
|
709
|
+
}
|
|
710
|
+
list penalties {
|
|
711
|
+
leaf chromatic_dispersion {
|
|
712
|
+
type decimal64 {
|
|
713
|
+
fraction-digits 2;
|
|
714
|
+
}
|
|
715
|
+
description "chromatic dispersion";
|
|
716
|
+
}
|
|
717
|
+
leaf pmd {
|
|
718
|
+
type decimal64 {
|
|
719
|
+
fraction-digits 15;
|
|
720
|
+
}
|
|
721
|
+
description "Polarization mode dispersion";
|
|
722
|
+
}
|
|
723
|
+
leaf pdl {
|
|
724
|
+
type decimal64 {
|
|
725
|
+
fraction-digits 2;
|
|
726
|
+
}
|
|
727
|
+
description "Polarization dependant loss";
|
|
728
|
+
}
|
|
729
|
+
leaf penalty_value {
|
|
730
|
+
type decimal64 {
|
|
731
|
+
fraction-digits 2;
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
leaf equalization_offset_db {
|
|
736
|
+
type decimal64 {
|
|
737
|
+
fraction-digits 4;
|
|
738
|
+
}
|
|
739
|
+
description "Power offset for equalizing this mode in ROADM compared to reference channel";
|
|
740
|
+
}
|
|
741
|
+
leaf equalization_slot_width {
|
|
742
|
+
type decimal64 {
|
|
743
|
+
fraction-digits 2;
|
|
744
|
+
}
|
|
745
|
+
description "slot width used for equalization instead of min_spacing in case of
|
|
746
|
+
equalization per slot width";
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
augment "/gnpyeqpt:equipment/gnpyeqpt:Roadm/gnpyeqpt:roadm-path-impairments/"
|
|
753
|
+
+ "gnpyeqpt:impairment-type/gnpyeqpt:roadm-express-path/"
|
|
754
|
+
+ "gnpyeqpt:roadm-express-path" {
|
|
755
|
+
leaf roadm-osnr {
|
|
756
|
+
type l0-types:snr-or-null;
|
|
757
|
+
description
|
|
758
|
+
"Optical Signal-to-Noise Ratio (OSNR).
|
|
759
|
+
If the express path contains an integrated amplifier,
|
|
760
|
+
this reflects its OSNR contribution.";
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
container equipment {
|
|
765
|
+
description
|
|
766
|
+
"Describe the equipment library of gnpy release 2.6";
|
|
767
|
+
uses eqpt;
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
|