mirror of
				https://github.com/Telecominfraproject/oopt-gnpy.git
				synced 2025-10-31 18:18:00 +00:00 
			
		
		
		
	YANG: Test conversion of equipment + settings + topology into YANG
Change-Id: I9cd5915417d3a667cfec63b0cf2220df9973ee6e
This commit is contained in:
		| @@ -6,8 +6,9 @@ | ||||
| # see LICENSE.md for a list of contributors | ||||
| # | ||||
|  | ||||
| from gnpy.tools.json_io import load_equipment, load_network | ||||
| from gnpy.yang import external_path, model_path | ||||
| from gnpy.yang.io import create_datamodel | ||||
| from gnpy.yang.io import create_datamodel, save_to_json | ||||
| from pathlib import Path | ||||
| from typing import List | ||||
| import pytest | ||||
| @@ -15,6 +16,9 @@ import subprocess | ||||
| import json | ||||
|  | ||||
|  | ||||
| SRC_ROOT = Path(__file__).parent.parent | ||||
|  | ||||
|  | ||||
| def _get_basename(filename: Path) -> str: | ||||
|     try: | ||||
|         return filename.name | ||||
| @@ -61,3 +65,17 @@ def test_validate_yang_data(_yangson_datamodel, filename: Path): | ||||
|         raw_json = json.load(f) | ||||
|     data = dm.from_raw(raw_json) | ||||
|     data.validate() | ||||
|  | ||||
|  | ||||
| @pytest.mark.parametrize("expected_file, equipment_file, topology_file", ( | ||||
|     ("edfa_example.json", "gnpy/example-data/eqpt_config.json", "gnpy/example-data/edfa_example_network.json"), | ||||
|     ("Sweden_OpenROADM_example.json", "gnpy/example-data/eqpt_config_openroadm.json", "gnpy/example-data/Sweden_OpenROADM_example_network.json"), | ||||
| )) | ||||
| def test_conversion_to_yang(expected_file, equipment_file, topology_file): | ||||
|     '''Conversion from legacy JSON to self-contained YANG data''' | ||||
|     equipment = load_equipment(SRC_ROOT / equipment_file) | ||||
|     network = load_network(SRC_ROOT / topology_file, equipment) | ||||
|     data = save_to_json(equipment, network) | ||||
|     serialized = json.dumps(data, indent=2) + '\n'  # files were generated via print(), hence a newline | ||||
|     expected = open(SRC_ROOT / 'tests' / 'yang' / 'converted' / expected_file, mode='rb').read().decode('utf-8') | ||||
|     assert serialized == expected | ||||
|   | ||||
							
								
								
									
										4826
									
								
								tests/yang/converted/Sweden_OpenROADM_example.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4826
									
								
								tests/yang/converted/Sweden_OpenROADM_example.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										771
									
								
								tests/yang/converted/edfa_example.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										771
									
								
								tests/yang/converted/edfa_example.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,771 @@ | ||||
| { | ||||
|   "tip-photonic-equipment:amplifier": [ | ||||
|     { | ||||
|       "type": "high_detail_model_example", | ||||
|       "gain-min": "15.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "25.0", | ||||
|       "max-power-out": "21.0", | ||||
|       "has-output-voa": false, | ||||
|       "polynomial-NF": { | ||||
|         "a": "0.000168241", | ||||
|         "b": "0.0469961", | ||||
|         "c": "0.0359549", | ||||
|         "d": "5.82851" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "Juniper_BoosterHG", | ||||
|       "gain-min": "10.0", | ||||
|       "frequency-min": "191.4", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "25.0", | ||||
|       "max-power-out": "21.0", | ||||
|       "has-output-voa": false, | ||||
|       "polynomial-NF": { | ||||
|         "a": "0.0008", | ||||
|         "b": "0.0272", | ||||
|         "c": "-0.2249", | ||||
|         "d": "6.4902" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "operator_model_example", | ||||
|       "gain-min": "15.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "26.0", | ||||
|       "max-power-out": "23.0", | ||||
|       "has-output-voa": false, | ||||
|       "min-max-NF": { | ||||
|         "nf-min": "6.0", | ||||
|         "nf-max": "10.0" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "openroadm_ila_low_noise", | ||||
|       "gain-min": "0.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "27.0", | ||||
|       "max-power-out": "22.0", | ||||
|       "has-output-voa": false, | ||||
|       "OpenROADM-ILA": { | ||||
|         "a": "-0.0008104", | ||||
|         "b": "-0.06221", | ||||
|         "c": "-0.5889", | ||||
|         "d": "37.62" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "openroadm_ila_standard", | ||||
|       "gain-min": "0.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "27.0", | ||||
|       "max-power-out": "22.0", | ||||
|       "has-output-voa": false, | ||||
|       "OpenROADM-ILA": { | ||||
|         "a": "-0.0005952", | ||||
|         "b": "-0.0625", | ||||
|         "c": "-1.071", | ||||
|         "d": "28.99" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "openroadm_mw_mw_preamp", | ||||
|       "gain-min": "0.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "27.0", | ||||
|       "max-power-out": "22.0", | ||||
|       "has-output-voa": false, | ||||
|       "OpenROADM-preamp": {} | ||||
|     }, | ||||
|     { | ||||
|       "type": "openroadm_mw_mw_booster", | ||||
|       "gain-min": "0.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "32.0", | ||||
|       "max-power-out": "22.0", | ||||
|       "has-output-voa": false, | ||||
|       "OpenROADM-booster": {} | ||||
|     }, | ||||
|     { | ||||
|       "type": "std_high_gain", | ||||
|       "gain-min": "25.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "35.0", | ||||
|       "max-power-out": "21.0", | ||||
|       "has-output-voa": false, | ||||
|       "min-max-NF": { | ||||
|         "nf-min": "5.5", | ||||
|         "nf-max": "7.0" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "std_medium_gain", | ||||
|       "gain-min": "15.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "26.0", | ||||
|       "max-power-out": "23.0", | ||||
|       "has-output-voa": false, | ||||
|       "min-max-NF": { | ||||
|         "nf-min": "6.0", | ||||
|         "nf-max": "10.0" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "std_low_gain", | ||||
|       "gain-min": "8.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "16.0", | ||||
|       "max-power-out": "23.0", | ||||
|       "has-output-voa": false, | ||||
|       "min-max-NF": { | ||||
|         "nf-min": "6.5", | ||||
|         "nf-max": "11.0" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "high_power", | ||||
|       "gain-min": "8.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "16.0", | ||||
|       "max-power-out": "25.0", | ||||
|       "has-output-voa": false, | ||||
|       "min-max-NF": { | ||||
|         "nf-min": "9.0", | ||||
|         "nf-max": "15.0" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "std_fixed_gain", | ||||
|       "gain-min": "20.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "21.0", | ||||
|       "max-power-out": "21.0", | ||||
|       "has-output-voa": false, | ||||
|       "polynomial-NF": { | ||||
|         "a": "0.0", | ||||
|         "b": "0.0", | ||||
|         "c": "0.0", | ||||
|         "d": "5.5" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "4pumps_raman", | ||||
|       "gain-min": "12.0", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "gain-flatmax": "12.0", | ||||
|       "max-power-out": "21.0", | ||||
|       "has-output-voa": false, | ||||
|       "raman-approximation": { | ||||
|         "nf": "-1.0" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "hybrid_4pumps_lowgain", | ||||
|       "gain-min": "25.0", | ||||
|       "composite": { | ||||
|         "preamp": "4pumps_raman", | ||||
|         "booster": "std_low_gain" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "hybrid_4pumps_mediumgain", | ||||
|       "gain-min": "25.0", | ||||
|       "composite": { | ||||
|         "preamp": "4pumps_raman", | ||||
|         "booster": "std_medium_gain" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "medium+low_gain", | ||||
|       "gain-min": "25.0", | ||||
|       "composite": { | ||||
|         "preamp": "std_medium_gain", | ||||
|         "booster": "std_low_gain" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "type": "medium+high_power", | ||||
|       "gain-min": "25.0", | ||||
|       "composite": { | ||||
|         "preamp": "std_medium_gain", | ||||
|         "booster": "high_power" | ||||
|       } | ||||
|     } | ||||
|   ], | ||||
|   "tip-photonic-equipment:fiber": [ | ||||
|     { | ||||
|       "type": "NZDF", | ||||
|       "chromatic-dispersion": "5.0", | ||||
|       "gamma": "1.46", | ||||
|       "pmd-coefficient": "0.0400028124" | ||||
|     }, | ||||
|     { | ||||
|       "type": "LOF", | ||||
|       "chromatic-dispersion": "22.0", | ||||
|       "gamma": "0.843", | ||||
|       "pmd-coefficient": "0.0400028124" | ||||
|     }, | ||||
|     { | ||||
|       "type": "SSMF", | ||||
|       "chromatic-dispersion": "16.7", | ||||
|       "gamma": "1.27", | ||||
|       "pmd-coefficient": "0.0400028124", | ||||
|       "raman-efficiency": [ | ||||
|         { | ||||
|           "delta-frequency": "0.0", | ||||
|           "cr": "0.0" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "0.5", | ||||
|           "cr": "0.0000094" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "1.0", | ||||
|           "cr": "0.0000292" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "1.5", | ||||
|           "cr": "0.0000488" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "2.0", | ||||
|           "cr": "0.0000682" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "2.5", | ||||
|           "cr": "0.0000831" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "3.0", | ||||
|           "cr": "0.000094" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "3.5", | ||||
|           "cr": "0.0001014" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "4.0", | ||||
|           "cr": "0.0001069" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "4.5", | ||||
|           "cr": "0.0001119" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "5.0", | ||||
|           "cr": "0.0001217" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "5.5", | ||||
|           "cr": "0.0001268" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "6.0", | ||||
|           "cr": "0.0001365" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "6.5", | ||||
|           "cr": "0.000149" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "7.0", | ||||
|           "cr": "0.000165" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "7.5", | ||||
|           "cr": "0.000181" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "8.0", | ||||
|           "cr": "0.0001977" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "8.5", | ||||
|           "cr": "0.0002192" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "9.0", | ||||
|           "cr": "0.0002469" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "9.5", | ||||
|           "cr": "0.0002749" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "10.0", | ||||
|           "cr": "0.0002999" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "10.5", | ||||
|           "cr": "0.0003206" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "11.0", | ||||
|           "cr": "0.0003405" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "11.5", | ||||
|           "cr": "0.0003592" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "12.0", | ||||
|           "cr": "0.000374" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "12.5", | ||||
|           "cr": "0.0003826" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "12.75", | ||||
|           "cr": "0.0003841" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "13.0", | ||||
|           "cr": "0.0003826" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "13.25", | ||||
|           "cr": "0.0003802" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "13.5", | ||||
|           "cr": "0.0003756" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "14.0", | ||||
|           "cr": "0.0003549" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "14.5", | ||||
|           "cr": "0.0003795" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "14.75", | ||||
|           "cr": "0.000344" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "15.0", | ||||
|           "cr": "0.0002933" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "15.5", | ||||
|           "cr": "0.0002024" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "16.0", | ||||
|           "cr": "0.0001158" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "16.5", | ||||
|           "cr": "0.0000846" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "17.0", | ||||
|           "cr": "0.0000714" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "17.5", | ||||
|           "cr": "0.0000686" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "18.0", | ||||
|           "cr": "0.000085" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "18.25", | ||||
|           "cr": "0.0000893" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "18.5", | ||||
|           "cr": "0.0000901" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "18.75", | ||||
|           "cr": "0.0000815" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "19.0", | ||||
|           "cr": "0.0000667" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "19.5", | ||||
|           "cr": "0.0000437" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "20.0", | ||||
|           "cr": "0.0000328" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "20.5", | ||||
|           "cr": "0.0000296" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "21.0", | ||||
|           "cr": "0.0000265" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "21.5", | ||||
|           "cr": "0.0000257" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "22.0", | ||||
|           "cr": "0.0000281" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "22.5", | ||||
|           "cr": "0.0000308" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "23.0", | ||||
|           "cr": "0.0000367" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "23.5", | ||||
|           "cr": "0.0000585" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "24.0", | ||||
|           "cr": "0.0000663" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "24.5", | ||||
|           "cr": "0.0000636" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "25.0", | ||||
|           "cr": "0.000055" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "25.5", | ||||
|           "cr": "0.0000406" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "26.0", | ||||
|           "cr": "0.0000277" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "26.5", | ||||
|           "cr": "0.0000242" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "27.0", | ||||
|           "cr": "0.0000187" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "27.5", | ||||
|           "cr": "0.000016" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "28.0", | ||||
|           "cr": "0.000014" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "28.5", | ||||
|           "cr": "0.0000113" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "29.0", | ||||
|           "cr": "0.0000105" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "29.5", | ||||
|           "cr": "0.0000098" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "30.0", | ||||
|           "cr": "0.0000098" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "30.5", | ||||
|           "cr": "0.0000113" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "31.0", | ||||
|           "cr": "0.0000164" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "31.5", | ||||
|           "cr": "0.0000195" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "32.0", | ||||
|           "cr": "0.0000238" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "32.5", | ||||
|           "cr": "0.0000226" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "33.0", | ||||
|           "cr": "0.0000203" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "33.5", | ||||
|           "cr": "0.0000148" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "34.0", | ||||
|           "cr": "0.0000109" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "34.5", | ||||
|           "cr": "0.0000098" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "35.0", | ||||
|           "cr": "0.0000105" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "35.5", | ||||
|           "cr": "0.0000117" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "36.0", | ||||
|           "cr": "0.0000125" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "36.5", | ||||
|           "cr": "0.0000121" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "37.0", | ||||
|           "cr": "0.0000109" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "37.5", | ||||
|           "cr": "0.0000098" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "38.0", | ||||
|           "cr": "0.0000082" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "38.5", | ||||
|           "cr": "0.0000066" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "39.0", | ||||
|           "cr": "0.0000047" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "39.5", | ||||
|           "cr": "0.0000027" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "40.0", | ||||
|           "cr": "0.0000019" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "40.5", | ||||
|           "cr": "0.0000012" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "41.0", | ||||
|           "cr": "4.00000E-7" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "41.5", | ||||
|           "cr": "2.00000E-7" | ||||
|         }, | ||||
|         { | ||||
|           "delta-frequency": "42.0", | ||||
|           "cr": "1.00000E-7" | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "tip-photonic-equipment:transceiver": [ | ||||
|     { | ||||
|       "type": "vendorA_trx-type1", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "mode": [ | ||||
|         { | ||||
|           "name": "mode 1", | ||||
|           "bit-rate": 100, | ||||
|           "baud-rate": "32.0", | ||||
|           "required-osnr": "11.0", | ||||
|           "in-band-tx-osnr": "40.0", | ||||
|           "grid-spacing": "37.5", | ||||
|           "tx-roll-off": "0.15", | ||||
|           "tip-photonic-simulation:cost": 1 | ||||
|         }, | ||||
|         { | ||||
|           "name": "mode 2", | ||||
|           "bit-rate": 200, | ||||
|           "baud-rate": "66.0", | ||||
|           "required-osnr": "15.0", | ||||
|           "in-band-tx-osnr": "40.0", | ||||
|           "grid-spacing": "75.0", | ||||
|           "tx-roll-off": "0.15", | ||||
|           "tip-photonic-simulation:cost": 1 | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     { | ||||
|       "type": "Voyager", | ||||
|       "frequency-min": "191.35", | ||||
|       "frequency-max": "196.1", | ||||
|       "mode": [ | ||||
|         { | ||||
|           "name": "mode 1", | ||||
|           "bit-rate": 100, | ||||
|           "baud-rate": "32.0", | ||||
|           "required-osnr": "12.0", | ||||
|           "in-band-tx-osnr": "40.0", | ||||
|           "grid-spacing": "37.5", | ||||
|           "tx-roll-off": "0.15", | ||||
|           "tip-photonic-simulation:cost": 1 | ||||
|         }, | ||||
|         { | ||||
|           "name": "mode 3", | ||||
|           "bit-rate": 300, | ||||
|           "baud-rate": "44.0", | ||||
|           "required-osnr": "18.0", | ||||
|           "in-band-tx-osnr": "40.0", | ||||
|           "grid-spacing": "62.5", | ||||
|           "tx-roll-off": "0.15", | ||||
|           "tip-photonic-simulation:cost": 1 | ||||
|         }, | ||||
|         { | ||||
|           "name": "mode 2", | ||||
|           "bit-rate": 400, | ||||
|           "baud-rate": "66.0", | ||||
|           "required-osnr": "21.0", | ||||
|           "in-band-tx-osnr": "40.0", | ||||
|           "grid-spacing": "75.0", | ||||
|           "tx-roll-off": "0.15", | ||||
|           "tip-photonic-simulation:cost": 1 | ||||
|         }, | ||||
|         { | ||||
|           "name": "mode 4", | ||||
|           "bit-rate": 200, | ||||
|           "baud-rate": "66.0", | ||||
|           "required-osnr": "16.0", | ||||
|           "in-band-tx-osnr": "40.0", | ||||
|           "grid-spacing": "75.0", | ||||
|           "tx-roll-off": "0.15", | ||||
|           "tip-photonic-simulation:cost": 1 | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   ], | ||||
|   "tip-photonic-equipment:roadm": [ | ||||
|     { | ||||
|       "type": "default", | ||||
|       "add-drop-osnr": "38.0", | ||||
|       "polarization-mode-dispersion": "0.0", | ||||
|       "target-channel-out-power": "-20.0", | ||||
|       "compatible-preamp": [], | ||||
|       "compatible-booster": [] | ||||
|     } | ||||
|   ], | ||||
|   "tip-photonic-simulation:simulation": { | ||||
|     "grid": { | ||||
|       "frequency-min": "191.3", | ||||
|       "frequency-max": "195.1", | ||||
|       "spacing": "50.0", | ||||
|       "power": "0.0", | ||||
|       "tx-roll-off": "0.15", | ||||
|       "tx-osnr": "40.0", | ||||
|       "baud-rate": "32.0" | ||||
|     }, | ||||
|     "autodesign": { | ||||
|       "allowed-inline-edfa": [ | ||||
|         "std_high_gain", | ||||
|         "std_medium_gain", | ||||
|         "std_low_gain", | ||||
|         "hybrid_4pumps_lowgain", | ||||
|         "hybrid_4pumps_mediumgain", | ||||
|         "medium+low_gain" | ||||
|       ], | ||||
|       "power-adjustment-for-span-loss": { | ||||
|         "maximal-reduction": "-2.0", | ||||
|         "maximal-boost": "3.0", | ||||
|         "excursion-step-size": "0.5" | ||||
|       }, | ||||
|       "power-mode": { | ||||
|         "power-sweep": { | ||||
|           "start": "0.0", | ||||
|           "stop": "0.0", | ||||
|           "step-size": "1.0" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "system-margin": "2.0" | ||||
|   }, | ||||
|   "ietf-network:networks": { | ||||
|     "network": [ | ||||
|       { | ||||
|         "network-id": "GNPy", | ||||
|         "network-types": { | ||||
|           "tip-photonic-topology:photonic-topology": {} | ||||
|         }, | ||||
|         "node": [ | ||||
|           { | ||||
|             "node-id": "Site_A", | ||||
|             "tip-photonic-topology:transceiver": { | ||||
|               "model": "vendorA_trx-type1" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             "node-id": "Edfa1", | ||||
|             "tip-photonic-topology:amplifier": { | ||||
|               "model": "std_low_gain", | ||||
|               "gain-target": "17.0", | ||||
|               "tilt-target": "0.0", | ||||
|               "out-voa-target": "0.0" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             "node-id": "Site_B", | ||||
|             "tip-photonic-topology:transceiver": { | ||||
|               "model": "vendorA_trx-type1" | ||||
|             } | ||||
|           } | ||||
|         ], | ||||
|         "ietf-network-topology:link": [ | ||||
|           { | ||||
|             "link-id": "Span1", | ||||
|             "source": { | ||||
|               "source-node": "Site_A" | ||||
|             }, | ||||
|             "destination": { | ||||
|               "dest-node": "Edfa1" | ||||
|             }, | ||||
|             "tip-photonic-topology:fiber": { | ||||
|               "type": "SSMF", | ||||
|               "length": "80.0", | ||||
|               "attenuation-in": "0.0", | ||||
|               "conn-att-in": "0.5", | ||||
|               "conn-att-out": "0.5" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             "link-id": "patch{Edfa1, Site_B}", | ||||
|             "source": { | ||||
|               "source-node": "Edfa1" | ||||
|             }, | ||||
|             "destination": { | ||||
|               "dest-node": "Site_B" | ||||
|             }, | ||||
|             "tip-photonic-topology:patch": {} | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
|     ] | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Jan Kundrát
					Jan Kundrát