feat: separate span power from tx power

gnpy currently uses the same parameter for tx output power and span
input power: this prevents from modelling low tx power effect.
This patch introduces a new tx-cannel-power and uses it to
propagate in ROADM.

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: Id3ac75e2cb617b513bdb38b51a52e05d15af46f5
This commit is contained in:
EstherLerouzic
2023-04-28 16:04:30 +02:00
parent fb70413784
commit 38cc0e3cc5
40 changed files with 559 additions and 271 deletions

View File

@@ -218,7 +218,7 @@ def estimate_raman_gain(node, equipment, power_dbm):
# do not compute twice to save on time
return node.estimated_gain
spectral_info = create_input_spectral_information(f_min=f_min, f_max=f_max, roll_off=roll_off,
baud_rate=baud_rate, power=power, spacing=spacing,
baud_rate=baud_rate, tx_power=power, spacing=spacing,
tx_osnr=tx_osnr)
pin = watt2dbm(sum(spectral_info.signal))
attenuation_in_db = node.params.con_in + node.params.att_in
@@ -304,9 +304,11 @@ def set_egress_amplifier(network, this_node, equipment, pref_ch_db, pref_total_d
prev_node = this_node
node = oms
if isinstance(this_node, elements.Transceiver):
# for the time being use the same power for the target of roadms and for transceivers
# TODO: This should be changed when introducing a power parameter dedicated to transceivers
this_node_out_power = pref_ch_db
# todo change pref to a ref channel
if equipment['SI']['default'].tx_power_dbm is not None:
this_node_out_power = equipment['SI']['default'].tx_power_dbm
else:
this_node_out_power = pref_ch_db
if isinstance(this_node, elements.Roadm):
# get target power out from ROADM for the reference carrier based on equalization settings
this_node_out_power = this_node.get_per_degree_ref_power(degree=node.uid)