-Promote incremental and iterative network design
-Automatic saving of a "network-name_auto_design.json" file
-Results of the autodesign (additional amplifiers, configuration) are
saved to this ..._auto_design.json file
-This file can then be used to run a new simulation just like a normal
json input file
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
align the behaviour of
eqpt_config[SI].power_range_db
with
eqpt_config[Spans].delta_power_range_db
so that the min and max excursions are taken into account (which was not the case
when using range or arange for the SI power excursion)
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
power range sweep fix
fix behaviour when power range length = 0
update eqpt_config json default values
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
restore verbose off for power sweep
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
separate in the code:
* add egress amplifier
* vs setting the amplifier parameters
=> prepare improvments in select_edfa and target_power code
regroup all network optimization operations in network.py (remove from
transmission_main)
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* automatic design (when amplifiers are missing from network topology
input) finds the optimum power difference between spans
* The range of this optimum power difference is defined in
eqpt_config[Spans][delta_power_range_db] = [min, max, step]
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
=> read power range [lower, upper, step] in eqpt_config.json
do not display intermediate NE info if range > 1
=> update eqpt_config.json data
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* apply to power_mode only
* bug caused by the previous merge
restore default connector loss in excel to json parser (convert.py) to
0dB
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
- adding relevant call in path_request_run
- unifying variable name: baudrat -> baud_rate
- correcting test with the new power features
- unifying naming of variables n_ch-> nb_channel, sink -> destination (this
follows the usual naming in yang path computation models)
- bug fix in novel trx_mode_params function , use of the function in
path_requests_un
- TODO : place roll-off in the tsp lib instead of SI
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
creation of modular functions to be called
use of the same propagate function in both examples
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
- use load_equipment instead of load_SI
- integrate the pathrequest class into transmission main
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
bugs from the last refactor merge
- fix#1: update fiber length after split
- fix#2: add egress amp after fiber split
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
test verifies that OSNR and SNR computed values are consistant
including connector loss and input power variation
onto 2 example links: 1 and 5 spans
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
- connector losses can be part of the json description or not
in any case a connector loss in and out is now part of the fiber class.
if not present the default value is 0.0 dB
- propagate function in Fiber class now has a first attenuation
propagation step. output conn loos is integrated in the
initial loop function.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Path_requests_run and convert_service_sheet.py now use funtions from transmission main
ISSUE from develop refactor : the json generation of the topology is missing all amplifiers !
- ILA are not included
- some edfa appear in the json topo when Eqpt sheet is used, but not all of them (only for
the requested path when running transmission_main_example)
TODO : identify if this is a new behaviour or if this is a regression
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
xls topology is parsed automatically to json
transmission_main reads from the json generated topology
transmission_main should not read from convert.py data output
This way there is consistency between json and xls inputs
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
replacing bare string reading with Path object and split nam based on
Path structure in convert.py and in transmission_main_example.py
Update of pytest tests
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
xls convert:
sanity check Nodes vs Links sheets
column parsing limitation so user can add non code related
fields/information
code fix and eqpt_exists to check if an equipment is defined in the eqpt_config.json library
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
fix bug in Fused span: adding ingress and egress directions
=> do not share the same NE between 2 directions
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
*new Fused spans class to support the connection between 2 fibers
without amplification
*add_egress_amplifier adjust the edfa gain to compensate the loss
of n fused spans
*eqpt not found in eqpt library is caught and stop the code
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
code fix for the eqpt sheet reading in xls parser
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
amplifier design and eqpt parser code fix
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
Parse advanced fiber parameters from xls into json format:
accept a .xls or a .json input parameter
creates the corresponding .json file
read east/west directions for fiber parameters (fber type, distance...)
read node type (ILA or ROADM)
provide default values if fields are missing
=> full backward compatibility to read the original CORONET xls
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
-read eqpt_config.json with various EDFA and fiber type definitions
-std low gain and medium gain EDFA available
-clearer differentiation between the 2 edfa models:
is the advanced_config_from_json field present or not?
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* clean transmission_main_example.py
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* Add Instructions in README.rst and pytest path for CI
Instructions to run transmission_main_example.py
change config files path in ampliier_test to enable
Travis CI build
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* Add EDFA unitary pytests
check nf calculation, nf models comparison, ase noise profile
elements.py edfa _gain_profile: add div 0 checks when no ripple
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* support of coronet.conus network and add class __repr__
adaptation of convert.py to new code json formating
add_egress_amplifier, split_fiber and calculate_new_length
subs in network.py
elements.py:
code cleaning
adding new attributes in Edfa class (pin_db, pout_db...)
adding or augmenting class __repr__
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* augment amplifier unitary tests and code cleaning
add new tests in amplifier_test.py for pytest
Edfa class code cleaning in elements.py
recheck code coherence and results
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* ROADM support in network.py, convert.py, coronet json, ROADM class
creation of a ROADM class with 20dB loss
convert.py json parser modification to include roadms
network.py modification to automate amplifier placing after roadm
elements.py inclusion of Roadm class
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* JSON file based on Orange operator typical input
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* update of the standalone edfa model
creation of a new amlifier2.py = v2
creation of a json parser build_oa_json.py
the parser takes OA.json as input and newOA.json as output
creation of a pytest verification module amplifier_pytest.py
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* put the code together and transmission example script
-basic dijkstra propagation
-ase noise propagation based on amplifier model
-fake nli noise propagation
-integration of the amplifier model
-interpolation function in the edfa class
-code cleaning and units harmonization
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* mv transmission_main_example and rm _main__
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
* 2nd edfa model and build_oa_json file
add a dual coil stages edfa model in case the nf polynomial fit is not known
add a build_oa_json file that convert the input files in
edfa_config.json file and pre-calculate the nf_model nf1, nf2 and
delta_p parameters
adding power violation check and input padding (below minimum gain) in the edfa model
class
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>