mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-10-29 17:22:42 +00:00
restore initial power sweep behaviour
if user define a delta_p that is reduced because of saturation,
then this initial setting is still kept for power sweep to be sure
that the full amplitude of sweep is used.
SI power = 0 dBm
max power amp1 = 20 dBm,
user_defined_delta_p set by user = 3
80 channels, so pch_max = 20 - 10log10(80) = 0.96 dBm
power_sweep -> power range [-3, 0] dBm
then for initial design,
pref = 0 dBm
computed_delta_p =
min(pch_max, pref + user_defined_delta_p) - pref = 0.96
but for -3 power sweep
pref = -3 dBm
computed_delta_p =
min(pch_max, pref + user_defined_delta_p) - pref =
min(0.96, -3 + 3) - (-3) = 3
so the user defined delta_p is applied as much as possible
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I8fd459c29aa9754ff9d4868af1d8be8642a31913
This commit is contained in:
@@ -254,10 +254,10 @@ def set_egress_amplifier(network, this_node, equipment, pref_ch_db, pref_total_d
|
||||
if isinstance(node, elements.Edfa):
|
||||
node_loss = span_loss(network, prev_node)
|
||||
voa = node.out_voa if node.out_voa else 0
|
||||
if node.delta_p is None:
|
||||
if node.operational.delta_p is None:
|
||||
dp = target_power(network, next_node, equipment) + voa
|
||||
else:
|
||||
dp = node.delta_p
|
||||
dp = node.operational.delta_p
|
||||
if node.effective_gain is None or power_mode:
|
||||
gain_target = node_loss + dp - prev_dp + prev_voa
|
||||
else: # gain mode with effective_gain
|
||||
@@ -680,10 +680,11 @@ def build_network(network, equipment, pref_ch_db, pref_total_db, set_connector_l
|
||||
set_fiber_input_power(network, fiber, equipment, pref_ch_db)
|
||||
|
||||
|
||||
def design_network(reference_channel, network, equipment, verbose=True):
|
||||
def design_network(reference_channel, network, equipment, set_connector_losses=True, verbose=True):
|
||||
"""Network is designed according to reference channel. Verbose indicate if the function should
|
||||
print all warnings or not
|
||||
"""
|
||||
pref_ch_db = watt2dbm(reference_channel.power) # reference channel power
|
||||
pref_total_db = pref_ch_db + lin2db(reference_channel.nb_channel) # reference total power
|
||||
build_network(network, equipment, pref_ch_db, pref_total_db, verbose)
|
||||
build_network(network, equipment, pref_ch_db, pref_total_db, set_connector_losses=set_connector_losses,
|
||||
verbose=verbose)
|
||||
|
||||
@@ -21,7 +21,7 @@ from gnpy.core.equipment import trx_mode_params
|
||||
import gnpy.core.exceptions as exceptions
|
||||
from gnpy.core.network import add_missing_elements_in_network, design_network
|
||||
from gnpy.core.parameters import SimParams
|
||||
from gnpy.core.utils import db2lin, lin2db, automatic_nch
|
||||
from gnpy.core.utils import db2lin, lin2db, automatic_nch, watt2dbm, dbm2watt
|
||||
from gnpy.topology.request import (ResultElement, jsontocsv, compute_path_dsjctn, requests_aggregation,
|
||||
BLOCKING_NOPATH, correct_json_route_list,
|
||||
deduplicate_disjunctions, compute_path_with_disjunction,
|
||||
@@ -197,16 +197,22 @@ def transmission_main_example(args=None):
|
||||
trx_params['power'] = db2lin(float(args.power)) * 1e-3
|
||||
params.update(trx_params)
|
||||
initial_spectrum = None
|
||||
nb_channels = automatic_nch(trx_params['f_min'], trx_params['f_max'], trx_params['spacing'])
|
||||
params['nb_channel'] = automatic_nch(trx_params['f_min'], trx_params['f_max'], trx_params['spacing'])
|
||||
# use ref_req to hold reference channel used for design and req for the propagation
|
||||
# and req to hold channels to be propagated
|
||||
# apply power sweep on the design and on the channels
|
||||
ref_req = PathRequest(**params)
|
||||
pref_ch_db = watt2dbm(ref_req.power)
|
||||
if args.spectrum:
|
||||
# use the spectrum defined by user for the propagation.
|
||||
# the nb of channel for design remains the one of the reference channel
|
||||
initial_spectrum = load_initial_spectrum(args.spectrum)
|
||||
nb_channels = len(initial_spectrum)
|
||||
params['nb_channel'] = len(initial_spectrum)
|
||||
print('User input for spectrum used for propagation instead of SI')
|
||||
params['nb_channel'] = nb_channels
|
||||
req = PathRequest(**params)
|
||||
pref_ch_db = lin2db(req.power * 1e3) # reference channel power / span (SL=20dB)
|
||||
p_ch_db = watt2dbm(req.power)
|
||||
req.initial_spectrum = initial_spectrum
|
||||
print(f'There are {nb_channels} channels propagating')
|
||||
print(f'There are {req.nb_channel} channels propagating')
|
||||
power_mode = equipment['Span']['default'].power_mode
|
||||
print('\n'.join([f'Power mode is set to {power_mode}',
|
||||
'=> it can be modified in eqpt_config.json - Span']))
|
||||
@@ -234,7 +240,7 @@ def transmission_main_example(args=None):
|
||||
# initial network is designed using req.power. that is that any missing information (amp gain or delta_p) is filled
|
||||
# using this req.power, previous to any sweep requested later on.
|
||||
try:
|
||||
design_network(req, network, equipment, verbose=True)
|
||||
design_network(ref_req, network, equipment, set_connector_losses=True, verbose=True)
|
||||
except exceptions.NetworkTopologyError as e:
|
||||
print(f'{ansi_escapes.red}Invalid network definition:{ansi_escapes.reset} {e}')
|
||||
sys.exit(1)
|
||||
@@ -246,14 +252,17 @@ def transmission_main_example(args=None):
|
||||
f'and {destination.uid}')
|
||||
print(f'\nNow propagating between {source.uid} and {destination.uid}:')
|
||||
for dp_db in power_range:
|
||||
req.power = db2lin(pref_ch_db + dp_db) * 1e-3
|
||||
ref_req.power = dbm2watt(pref_ch_db + dp_db)
|
||||
req.power = dbm2watt(p_ch_db + dp_db)
|
||||
design_network(ref_req, network, equipment, set_connector_losses=False, verbose=False)
|
||||
# if initial spectrum did not contain any power, now we need to use this one.
|
||||
# note the initial power defines a differential wrt req.power so that if req.power is set to 2mW (3dBm)
|
||||
# and initial spectrum was set to 0, this sets a initial per channel delta power to -3dB, so that
|
||||
# whatever the equalization, -3 dB is applied on all channels (ie initial power in initial spectrum pre-empts
|
||||
# "--power" option)
|
||||
if power_mode:
|
||||
print(f'\nPropagating with input power = {ansi_escapes.cyan}{lin2db(req.power*1e3):.2f} dBm{ansi_escapes.reset}:')
|
||||
print(f'\nPropagating with input power = {ansi_escapes.cyan}{watt2dbm(req.power):.2f} '
|
||||
+ f'dBm{ansi_escapes.reset}:')
|
||||
else:
|
||||
print(f'\nPropagating in {ansi_escapes.cyan}gain mode{ansi_escapes.reset}: power cannot be set manually')
|
||||
infos = propagate(path, req, equipment)
|
||||
|
||||
238
tests/data/eqpt_config_sweep.json
Normal file
238
tests/data/eqpt_config_sweep.json
Normal file
@@ -0,0 +1,238 @@
|
||||
{
|
||||
"Edfa": [{
|
||||
"type_variety": "CienaDB_medium_gain",
|
||||
"type_def": "advanced_model",
|
||||
"gain_flatmax": 25,
|
||||
"gain_min": 15,
|
||||
"p_max": 21,
|
||||
"advanced_config_from_json": "std_medium_gain_advanced_config.json",
|
||||
"out_voa_auto": false,
|
||||
"allowed_for_design": true
|
||||
},
|
||||
{
|
||||
"type_variety": "std_medium_gain",
|
||||
"type_def": "variable_gain",
|
||||
"gain_flatmax": 26,
|
||||
"gain_min": 15,
|
||||
"p_max": 21,
|
||||
"nf_min": 6,
|
||||
"nf_max": 10,
|
||||
"out_voa_auto": false,
|
||||
"allowed_for_design": true
|
||||
},
|
||||
{
|
||||
"type_variety": "std_low_gain",
|
||||
"type_def": "variable_gain",
|
||||
"gain_flatmax": 16,
|
||||
"gain_min": 8,
|
||||
"p_max": 21,
|
||||
"nf_min": 7,
|
||||
"nf_max": 11,
|
||||
"out_voa_auto": false,
|
||||
"allowed_for_design": true
|
||||
},
|
||||
{
|
||||
"type_variety": "test",
|
||||
"type_def": "variable_gain",
|
||||
"gain_flatmax": 25,
|
||||
"gain_min": 15,
|
||||
"p_max": 21,
|
||||
"nf_min": 5.8,
|
||||
"nf_max": 10,
|
||||
"out_voa_auto": false,
|
||||
"allowed_for_design": true
|
||||
},
|
||||
{
|
||||
"type_variety": "test_fixed_gain",
|
||||
"type_def": "fixed_gain",
|
||||
"gain_flatmax": 21,
|
||||
"gain_min": 20,
|
||||
"p_max": 21,
|
||||
"nf0": 5,
|
||||
"allowed_for_design": true
|
||||
},
|
||||
{
|
||||
"type_variety": "std_booster",
|
||||
"type_def": "fixed_gain",
|
||||
"gain_flatmax": 21,
|
||||
"gain_min": 20,
|
||||
"p_max": 21,
|
||||
"nf0": 5,
|
||||
"allowed_for_design": false
|
||||
}
|
||||
],
|
||||
"Fiber": [{
|
||||
"type_variety": "SSMF",
|
||||
"dispersion": 1.67e-05,
|
||||
"effective_area": 83e-12,
|
||||
"pmd_coef": 1.265e-15
|
||||
}
|
||||
],
|
||||
"Span": [{
|
||||
"power_mode":true,
|
||||
"delta_power_range_db": [0,0,0.5],
|
||||
"max_fiber_lineic_loss_for_raman": 0.25,
|
||||
"target_extended_gain": 2.5,
|
||||
"max_length": 150,
|
||||
"length_units": "km",
|
||||
"max_loss": 28,
|
||||
"padding": 10,
|
||||
"EOL": 0,
|
||||
"con_in": 0,
|
||||
"con_out": 0
|
||||
}
|
||||
],
|
||||
"Roadm": [{
|
||||
"target_pch_out_db": -20,
|
||||
"add_drop_osnr": 38,
|
||||
"pmd": 0,
|
||||
"pdl": 0,
|
||||
"restrictions": {
|
||||
"preamp_variety_list":[],
|
||||
"booster_variety_list":[]
|
||||
}
|
||||
}
|
||||
],
|
||||
"SI": [{
|
||||
"f_min": 191.35e12,
|
||||
"f_max": 196.1e12,
|
||||
"baud_rate": 32e9,
|
||||
"spacing": 50e9,
|
||||
"power_dbm": 0,
|
||||
"power_range_db": [-6,0,0.5],
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 100,
|
||||
"sys_margins": 0
|
||||
}
|
||||
],
|
||||
"Transceiver":[
|
||||
{
|
||||
"type_variety": "vendorA_trx-type1",
|
||||
"frequency":{
|
||||
"min": 191.4e12,
|
||||
"max": 196.1e12
|
||||
},
|
||||
"mode":[
|
||||
{
|
||||
"format": "PS_SP64_1",
|
||||
"baud_rate": 32e9,
|
||||
"OSNR": 11,
|
||||
"bit_rate": 100e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 100,
|
||||
"min_spacing": 50e9,
|
||||
"cost": 1
|
||||
},
|
||||
{
|
||||
"format": "PS_SP64_2",
|
||||
"baud_rate": 64e9,
|
||||
"OSNR": 15,
|
||||
"bit_rate": 200e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 100,
|
||||
"min_spacing": 75e9,
|
||||
"cost": 1
|
||||
},
|
||||
{
|
||||
"format": "mode 1",
|
||||
"baud_rate": 32e9,
|
||||
"OSNR": 11,
|
||||
"bit_rate": 100e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 100,
|
||||
"min_spacing": 50e9,
|
||||
"cost": 1
|
||||
},
|
||||
{
|
||||
"format": "mode 2",
|
||||
"baud_rate": 64e9,
|
||||
"OSNR": 15,
|
||||
"bit_rate": 200e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 100,
|
||||
"min_spacing": 75e9,
|
||||
"cost": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type_variety": "Voyager_16QAM",
|
||||
"frequency": {
|
||||
"min": 191.4e12,
|
||||
"max": 196.1e12
|
||||
},
|
||||
"mode": [
|
||||
{
|
||||
"format": "16QAM",
|
||||
"baud_rate": 32e9,
|
||||
"OSNR": 19,
|
||||
"bit_rate": 200e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 100,
|
||||
"min_spacing": 50e9,
|
||||
"cost": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type_variety": "Voyager",
|
||||
"frequency": {
|
||||
"min": 191.4e12,
|
||||
"max": 196.1e12
|
||||
},
|
||||
"mode": [
|
||||
{
|
||||
"format": "mode 1",
|
||||
"baud_rate": 32e9,
|
||||
"OSNR": 12,
|
||||
"bit_rate": 100e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 45,
|
||||
"min_spacing": 50e9,
|
||||
"cost": 1
|
||||
},
|
||||
{
|
||||
"format": "mode 3",
|
||||
"baud_rate": 44e9,
|
||||
"OSNR": 18,
|
||||
"bit_rate": 300e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 45,
|
||||
"min_spacing": 62.5e9,
|
||||
"cost": 1
|
||||
},
|
||||
{
|
||||
"format": "mode 2",
|
||||
"baud_rate": 66e9,
|
||||
"OSNR": 21,
|
||||
"bit_rate": 400e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 45,
|
||||
"min_spacing": 75e9,
|
||||
"cost": 1
|
||||
},
|
||||
{
|
||||
"format": "mode 2 - fake",
|
||||
"baud_rate": 66e9,
|
||||
"OSNR": 21,
|
||||
"bit_rate": 400e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 45,
|
||||
"min_spacing": 75e9,
|
||||
"cost": 1
|
||||
},
|
||||
{
|
||||
"format": "mode 4",
|
||||
"baud_rate": 66e9,
|
||||
"OSNR": 16,
|
||||
"bit_rate": 200e9,
|
||||
"roll_off": 0.15,
|
||||
"tx_osnr": 45,
|
||||
"min_spacing": 75e9,
|
||||
"cost": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
307
tests/invocation/logs_power_sweep_example
Normal file
307
tests/invocation/logs_power_sweep_example
Normal file
@@ -0,0 +1,307 @@
|
||||
INFO gnpy.tools.cli_examples:cli_examples.py source = 'brest'
|
||||
INFO gnpy.tools.cli_examples:cli_examples.py destination = 'rennes'
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Lorient_KMA to Loudeac
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: effective gain in Node east edfa in Lannion_CAS to Stbrieuc
|
||||
is above user specified amplifier std_low_gain
|
||||
max flat gain: 16dB ; required gain: 21.22dB. Please check amplifier type.
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Rennes_STA to Stbrieuc
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: effective gain in Node east edfa in Lannion_CAS to Morlaix
|
||||
is above user specified amplifier std_low_gain
|
||||
max flat gain: 16dB ; required gain: 21.22dB. Please check amplifier type.
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Brest_KLA to Morlaix
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Lorient_KMA to Loudeac
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: effective gain in Node west edfa in Lannion_CAS to Corlay
|
||||
is above user specified amplifier test
|
||||
max flat gain: 25dB ; required gain: 28.0dB. Please check amplifier type.
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Lorient_KMA to Vannes_KBE
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Vannes_KBE to Lorient_KMA
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Lorient_KMA to Quimper
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Quimper to Lorient_KMA
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Brest_KLA to Quimper
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Vannes_KBE to Lorient_KMA
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Lorient_KMA to Vannes_KBE
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Vannes_KBE to Ploermel
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Ploermel to Vannes_KBE
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Rennes_STA to Ploermel
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Rennes_STA to Stbrieuc
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Stbrieuc to Rennes_STA
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Lannion_CAS to Stbrieuc
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Rennes_STA to Ploermel
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Vannes_KBE to Ploermel
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Brest_KLA to Morlaix
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: effective gain in Node east edfa in Brest_KLA to Quimper
|
||||
is above user specified amplifier std_low_gain
|
||||
max flat gain: 16dB ; required gain: 21.22dB. Please check amplifier type.
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in Quimper to Lorient_KMA
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in Lorient_KMA to Quimper
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in a to b
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in b to a
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in a to c
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in c to a
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in b to a
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in a to b
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in b to f
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in f to b
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in c to a
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in a to c
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in d to c
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in c to f
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in f to c
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in d to c
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in c to d
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in d to e
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in e to d
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in e to d
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in d to e
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in e to g
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in g to e
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in f to c
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in c to f
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in f to b
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in b to f
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in f to h
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in h to f
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in g to e
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in e to g
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in g to h
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in h to g
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in h to f
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in f to h
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node east edfa in h to g
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
WARNING gnpy.core.network:network.py
|
||||
WARNING: target gain and power in node west edfa in g to h
|
||||
is beyond all available amplifiers capabilities and/or extended_gain_range:
|
||||
a power reduction of -1.78 is applied
|
||||
|
||||
154
tests/invocation/power_sweep_example
Normal file
154
tests/invocation/power_sweep_example
Normal file
@@ -0,0 +1,154 @@
|
||||
There are 95 channels propagating
|
||||
Power mode is set to True
|
||||
=> it can be modified in eqpt_config.json - Span
|
||||
|
||||
There are 4 fiber spans over 200 km between trx Brest_KLA and trx Rennes_STA
|
||||
|
||||
Now propagating between trx Brest_KLA and trx Rennes_STA:
|
||||
|
||||
Propagating with input power = [1;36;40m-3.00 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 23.73
|
||||
GSNR (signal bw, dB): 19.65
|
||||
OSNR ASE (0.1nm, dB): 23.99
|
||||
OSNR ASE (signal bw, dB): 19.91
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m-2.50 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.01
|
||||
GSNR (signal bw, dB): 19.93
|
||||
OSNR ASE (0.1nm, dB): 24.37
|
||||
OSNR ASE (signal bw, dB): 20.29
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m-2.00 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.25
|
||||
GSNR (signal bw, dB): 20.17
|
||||
OSNR ASE (0.1nm, dB): 24.74
|
||||
OSNR ASE (signal bw, dB): 20.66
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m-1.50 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.44
|
||||
GSNR (signal bw, dB): 20.36
|
||||
OSNR ASE (0.1nm, dB): 25.10
|
||||
OSNR ASE (signal bw, dB): 21.01
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m-1.00 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.57
|
||||
GSNR (signal bw, dB): 20.49
|
||||
OSNR ASE (0.1nm, dB): 25.44
|
||||
OSNR ASE (signal bw, dB): 21.36
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m-0.50 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.63
|
||||
GSNR (signal bw, dB): 20.55
|
||||
OSNR ASE (0.1nm, dB): 25.77
|
||||
OSNR ASE (signal bw, dB): 21.69
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m-0.00 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.60
|
||||
GSNR (signal bw, dB): 20.52
|
||||
OSNR ASE (0.1nm, dB): 26.09
|
||||
OSNR ASE (signal bw, dB): 22.00
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m0.50 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.42
|
||||
GSNR (signal bw, dB): 20.34
|
||||
OSNR ASE (0.1nm, dB): 26.29
|
||||
OSNR ASE (signal bw, dB): 22.20
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m1.00 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.16
|
||||
GSNR (signal bw, dB): 20.08
|
||||
OSNR ASE (0.1nm, dB): 26.47
|
||||
OSNR ASE (signal bw, dB): 22.39
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m1.50 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.02
|
||||
GSNR (signal bw, dB): 19.94
|
||||
OSNR ASE (0.1nm, dB): 26.55
|
||||
OSNR ASE (signal bw, dB): 22.47
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m2.00 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.02
|
||||
GSNR (signal bw, dB): 19.94
|
||||
OSNR ASE (0.1nm, dB): 26.55
|
||||
OSNR ASE (signal bw, dB): 22.47
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m2.50 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.02
|
||||
GSNR (signal bw, dB): 19.94
|
||||
OSNR ASE (0.1nm, dB): 26.55
|
||||
OSNR ASE (signal bw, dB): 22.47
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
Propagating with input power = [1;36;40m3.00 dBm[0m:
|
||||
Transceiver trx Rennes_STA
|
||||
GSNR (0.1nm, dB): 24.02
|
||||
GSNR (signal bw, dB): 19.94
|
||||
OSNR ASE (0.1nm, dB): 26.55
|
||||
OSNR ASE (signal bw, dB): 22.47
|
||||
CD (ps/nm): 3340.00
|
||||
PMD (ps): 0.57
|
||||
PDL (dB): 0.00
|
||||
Latency (ms): 0.98
|
||||
|
||||
(Invalid source node 'brest' replaced with trx Brest_KLA)
|
||||
|
||||
(Invalid destination node 'rennes' replaced with trx Rennes_STA)
|
||||
@@ -29,6 +29,8 @@ SRC_ROOT = Path(__file__).parent.parent
|
||||
['--spectrum', 'gnpy/example-data/initial_spectrum2.json', 'gnpy/example-data/meshTopologyExampleV2.xls', '--show-channels', ]),
|
||||
('path_requests_run_CD_PMD_PDL_missing', 'logs_path_requests_run_CD_PMD_PDL_missing', path_requests_run,
|
||||
['tests/data/CORONET_Global_Topology_expected.json', 'tests/data/CORONET_services.json', '-v']),
|
||||
('power_sweep_example', 'logs_power_sweep_example', transmission_main_example,
|
||||
['tests/data/testTopology_expected.json', 'brest', 'rennes', '-e', 'tests/data/eqpt_config_sweep.json', '--pow', '3']),
|
||||
))
|
||||
def test_example_invocation(capfd, caplog, output, log, handler, args):
|
||||
"""Make sure that our examples produce useful output"""
|
||||
|
||||
Reference in New Issue
Block a user