Commit Graph

57 Commits

Author SHA1 Message Date
James Powell
5f8621c224 changes for OFC demo 2019-03-04 12:32:26 -05:00
Jean-Luc Auge
2dd017bddc code speed improvement (-30% computation time)
remove path propagation for each mode
path propogation is only done for each baud rate

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2019-01-23 10:31:42 +01:00
Jean-Luc Auge
8635a7c182 Code fix: non cumulative osnr penalties
add Tx_osnr or add_drop_osnr on raw snr values to avoid cumulated adding

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>

bug fix: forgot to add add_drop_osnr with tx_osnr

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2019-01-23 10:29:30 +01:00
Jean-Luc Auge
46d25df241 add Tx_osnr at the end of the transmission
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2019-01-22 18:05:19 +01:00
Jean-Luc Auge
0338ccb08f restore SI basic parameters f_min f_max & spacing
remove unnecessary SI parameters in eqpt config.json:
-rx osnr
-bit rate
-min spacing
-cost
remove nb_channel parameter when calling SI

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2019-01-22 18:05:19 +01:00
James
bd1847e5ba Merge branch 'develop' into roadms_openroadm 2019-01-22 10:04:45 -05:00
James
38727d6203 Merge pull request #188 from Orange-OpenSource/tsp_min_spacing
Tsp min spacing
2019-01-22 10:04:03 -05:00
James
5d3ce91839 Merge branch 'develop' into fourth_correction 2019-01-22 10:00:54 -05:00
James
8e27437086 Merge branch 'develop' into tx_osnr_bug_correction 2019-01-22 09:56:19 -05:00
James
ec34e84a3a Merge pull request #182 from Orange-OpenSource/corrections
Corrections
2019-01-15 11:31:48 -05:00
EstherLerouzic
63f8139dbc Adding min_spacing parameter in transponder mode library
with this feature, spacing is checked with respect to eqpt library
instead of hard coded values in equipment +
mode selection is based on the minspacing instead of a coef or margin on baudrate value
some sanity check are introduced:
 - request spacing must be greater than min spacing
 - tsp baudrate must be smaller than min spacing

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2019-01-11 11:11:56 +00:00
EstherLerouzic
be731a5977 cosmetic changes
add colors on messages to highlight them
add messages explaining program steps
update readme and excel user guide with latest fetures

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2019-01-11 11:09:19 +00:00
EstherLerouzic
dd4ce4cea4 small fixes on stdout
- indicate when a mode is selected if the selected path does not pass
  + some reformatting of columns

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2019-01-11 11:09:19 +00:00
EstherLerouzic
4c1c17eea6 adding some exception handling to help user debugging
exception handling add some info on which element (uid) is causing a problem
this can help the user to identify where he must correct the input files

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2019-01-11 10:41:16 +00:00
EstherLerouzic
b258d22d25 add a limit cutoff for path search
all_simple_path search leads to a very long time process in case of large network
a cutoff parameters has been added to avoid this. Value needs to be parametrized:
right now correspond to my experience

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2019-01-11 10:41:16 +00:00
EstherLerouzic
aef43e6bca Corrections of some bugs
- output file of -o option in path_requests_run.py was not correctly
  handled in case of path indirection eg ../../bar.foo
- fiber constraint is not correctly handled in case of several parrallel directions
  of same fiber name. remove if from the set of constraint till problem is not solved
- loose_list was not correctly indexed in request.py. assume the first element attribute (except
  of the transceiver) applies for the whole list. This will need further corrections
- handle the case when path.snr is none in the optimization of mode process
2019-01-11 10:41:11 +00:00
EstherLerouzic
96f3d5a805 Adding min_spacing parameter in transponder mode library
with this feature, spacing is checked with respect to eqpt library
instead of hard coded values in equipment +
mode selection is based on the minspacing instead of a coef or margin on baudrate value
some sanity check are introduced:
 - request spacing must be greater than min spacing
 - tsp baudrate must be smaller than min spacing

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-12-21 16:57:08 +00:00
EstherLerouzic
2df500e027 cosmetic changes
add colors on messages to highlight them
add messages explaining program steps
update readme and excel user guide with latest fetures

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-12-19 18:24:22 +00:00
EstherLerouzic
346f24022a small fixes on stdout
- indicate when a mode is selected if the selected path does not pass
  + some reformatting of columns

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-12-19 18:21:51 +00:00
EstherLerouzic
cb45c7ef16 new test to check all combination of service specifications
add combination of [mode, pow, nb channel] filled or empty
leading to feasible path or not, and check the propagate and propagate_and_optimize_mode
functions work as expected on a reference toy example

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-12-19 18:17:29 +00:00
EstherLerouzic
9cfb57dc4b bug fix due to tx_osnr add
tx_osnr was impacting automatic mode selection feature : this commit solves the error
+ add a novel version of the excel example with an empty mode cases

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-12-19 16:32:54 +00:00
EstherLerouzic
020d852758 adding some exception handling to help user debugging
exception handling add some info on which element (uid) is causing a problem
this can help the user to identify where he must correct the input files

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-12-19 10:49:31 +00:00
EstherLerouzic
3cdc8511a8 add a limit cutoff for path search
all_simple_path search leads to a very long time process in case of large network
a cutoff parameters has been added to avoid this. Value needs to be parametrized:
right now correspond to my experience

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-12-13 11:37:26 +00:00
EstherLerouzic
2d515eea4c Corrections of some bugs
- output file of -o option in path_requests_run.py was not correctly
  handled in case of path indirection eg ../../bar.foo
- fiber constraint is not correctly handled in case of several parrallel directions
  of same fiber name. remove if from the set of constraint till problem is not solved
- loose_list was not correctly indexed in request.py. assume the first element attribute (except
  of the transceiver) applies for the whole list. This will need further corrections
- handle the case when path.snr is none in the optimization of mode process
2018-12-13 11:28:42 +00:00
Jonas Mårtensson
f51061d650 Add support for Tx OSNR. 2018-12-11 16:59:05 +01:00
EstherLerouzic
b78d3d8eda small fixes
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-11-21 09:20:25 +00:00
EstherLerouzic
02a7e467e2 Major correction on mode optimization behaviour + small fixes
- this version handles special cases: if no baudrate satisfies the spacing
  , if no mode satisfies the OSNR threshold from transponders
- template of service corrected wih the novel path_bandwidth
- some ideas TODO added for testing

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-11-21 09:20:25 +00:00
EstherLerouzic
15304890f5 Corrections related to tests and cost feature
- adding cost in every config files including tests files,
- correcting wrong usage reactions (if value is not correct)
- correction of orthograph

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-11-21 09:20:19 +00:00
EstherLerouzic
7b3bfea614 correction on aggregation to support disjunction feature
- correction of json to csv function
- small correction on disjunction format to avoid double (double crash the program)
- adding time stamp to measure perf
- demands with all the same disjunction can be aggregated
- a new set of disjunction list is created to avoid inconsistancy
  with the aggregated request-ids

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-11-21 09:16:17 +00:00
Jean-Luc Auge
f009306030 small fix
Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-11-21 09:12:58 +00:00
EstherLerouzic
88c2e2bd70 adding the example file used for disjunction testing
adding the counting feature on standard output
adding tsp nb in csv + small bug fixes
small fixes to improve stdout and csv printing
small bug fixes on service aggregation and automatic correction of names

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-11-21 09:12:52 +00:00
EstherLerouzic
1bbcee8715 First version of mode optimization
if mode is not given, the program automatically choses the first mode of the tsp
that has the highest bitrate and baudrate
- propagation for each loop on baudrate, no proppag in the loop on the mode
  (same propoagation applies for identical baudrate)
- starts with the highest baudrate
- Make power and nb-channel optional fields
  - power uses defaulf power in SI
  - nb channel computed based on min max frequency and spacing

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-11-21 09:06:38 +00:00
EstherLerouzic
39a8fa3335 Adding aggregation feature
- add bitrate in the json service file and enable to support both with and without bitrate
- change mode to optional
- add an aggregation function that groups identical demands (except for id and bitrate)
  TODO : check which mode can satisfy the request or how many transponders  -> going towards
  dimensionning
- Correcting some bug on loose parameter: hop-type attribute was forced to be always 'loose'
  -> now reads the excel entry
- service sheets checks on header if field names are corrects, but any order is
  now feasible.

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-11-21 09:06:32 +00:00
Jonas Mårtensson
72d3525da1 add a couple of missing imports 2018-11-14 15:24:25 +01:00
EstherLerouzic
27885a4cbc Correction of route constraint to support any type of node
correct loose or strict constraint in the new function correct_route_list
correct test to find the name with existing uids
remove the \u2192 char that was not well supported with excel reading

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-10-25 15:42:09 +01:00
EstherLerouzic
1ba748f2a4 Changing optical power and nb channels as optional input for requests
- normal way is usually to apply the design optical power for all channels.
  This change uses the default power (same power as used for design) but enables to
  force an arbitrary power if needed. TODO : introduce spectral power density
  to apply power depending on baudrate.
- definition of min max frequency and spacing define the nb of channels:
  uses min max frequencies and spacing to determine nb-channels. It is possible
  to force a different spacing for the request. TODO: check that the value is
  consistant with baudrate and min max values.

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-10-25 15:36:53 +01:00
EstherLerouzic
d112c728fc Moving the disjunction function into core functions
and minor corrections

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-10-23 09:25:07 +01:00
EstherLerouzic
9f37cb8ce6 Corrections, cleanup and debugging
Added (partly):
- relax one constraint when no more path are available

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-10-22 16:25:52 +01:00
EstherLerouzic
7558721642 Disjunction feature step 2
- selection of disjoint path set for each synchronization vector

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-10-22 16:23:11 +01:00
EstherLerouzic
fb49f7fb5d Implementing disjunction in path_requests_run.py
- Implementing a conflict table for path disjoint choices
 - adding disjunction in the parser and json (read and write)

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-10-22 16:23:00 +01:00
James Powell
f8e146b9b9 duplicate service sheet to simplify structure 2018-10-14 20:55:25 -04:00
James Powell
2be616411f fix headers 2018-10-14 20:55:00 -04:00
James Powell
83444b329e strip whitespace 2018-10-14 20:54:22 -04:00
EstherLerouzic
f8cd822c92 update of test files with respect to the use of string id instead of integer id
update Excel_userguide.rst for the services uid: now accepts strings

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-09-12 11:24:55 +01:00
EstherLerouzic
3ade885e41 improving path_request_run robustness to wrong excel input
- adding a test to check that transponder types and modes are part of the eqpt library
- adding a formating on numeical value input for path request ids
- automatically printing the results into a csv file in addition to the json file
  and with the saime name+.csv
- printing results in a more pretty way for demo

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-09-11 11:09:28 +01:00
EstherLerouzic
639e7f012c some improvement of std out printing, to ease user understanding
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-09-06 11:04:42 +01:00
EstherLerouzic
3d8ac83fcc - Reference to path_requests_run.py added in README.rst file
- adding a program to convert json result file into a CSV file
- adding some more metrics in the results

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-08-31 17:16:48 +01:00
Jean-Luc Auge
1437b6010e Small fixes
code cleanning
	consistency wiht path request
	generator bug fix
	select_edfa readibility enhancement
	set roadm_loss before design in power mode

Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
2018-08-08 14:24:12 +02:00
Jean-Luc Auge
ff6d81b749 Power setting refactor
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>
2018-08-07 13:39:08 +02:00
EstherLerouzic
29c4134f60 Add roll of factor in transponders library
roll_off is a characteristic of a given mode of a transponder: it is now
integrated in the Transceiver library in eqpt_config.json. Default value is
provided in the SI field if no specific transponder type is input

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
2018-07-16 18:11:02 +01:00