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>
This commit is contained in:
EstherLerouzic
2018-11-13 17:11:07 +00:00
parent 9ea96e431c
commit 15304890f5
8 changed files with 44 additions and 128 deletions

View File

@@ -100,7 +100,8 @@
"power_range_db": [0,0,0.5],
"roll_off": 0.15,
"OSNR": 11,
"bit_rate":100e9
"bit_rate":100e9,
"cost":1
}],
"Transceiver":[
{
@@ -116,14 +117,16 @@
"baud_rate": 32e9,
"OSNR": 11,
"bit_rate": 100e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
},
{
"format": "mode 2",
"baud_rate": 66e9,
"OSNR": 15,
"bit_rate": 200e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
}
]
},
@@ -139,28 +142,32 @@
"baud_rate": 32e9,
"OSNR": 12,
"bit_rate": 100e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
},
{
"format": "mode 3",
"baud_rate": 44e9,
"OSNR": 18,
"bit_rate": 300e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
},
{
"format": "mode 2",
"baud_rate": 66e9,
"OSNR": 21,
"bit_rate": 400e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
},
{
"format": "mode 4",
"baud_rate": 66e9,
"OSNR": 16,
"bit_rate": 200e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
}
]
}

View File

@@ -336,78 +336,6 @@
"con_out": null
}
},
{
"uid": "fiber (Brest_KLA → Quimper)-",
"metadata": {
"location": {
"latitude": 2.5,
"longitude": 0.5
}
},
"type": "Fiber",
"type_variety": "SSMF",
"params": {
"length": 75.0,
"length_units": "km",
"loss_coef": 0.2,
"con_in": null,
"con_out": null
}
},
{
"uid": "fiber (Quimper → Lorient_KMA)-",
"metadata": {
"location": {
"latitude": 1.5,
"longitude": 2.0
}
},
"type": "Fiber",
"type_variety": "SSMF",
"params": {
"length": 70.0,
"length_units": "km",
"loss_coef": 0.2,
"con_in": null,
"con_out": null
}
},
{
"uid": "fiber (Ploermel → Vannes_KBE)-",
"metadata": {
"location": {
"latitude": 1.5,
"longitude": 3.0
}
},
"type": "Fiber",
"type_variety": "SSMF",
"params": {
"length": 50.0,
"length_units": "km",
"loss_coef": 0.2,
"con_in": null,
"con_out": null
}
},
{
"uid": "fiber (Ploermel → Rennes_STA)-",
"metadata": {
"location": {
"latitude": 0.5,
"longitude": 1.0
}
},
"type": "Fiber",
"type_variety": "SSMF",
"params": {
"length": 55.0,
"length_units": "km",
"loss_coef": 0.2,
"con_in": null,
"con_out": null
}
},
{
"uid": "fiber (Corlay → Lannion_CAS)-F061",
"metadata": {
@@ -698,14 +626,6 @@
"from_node": "fiber (Vannes_KBE → Lorient_KMA)-F055",
"to_node": "roadm Lorient_KMA"
},
{
"from_node": "roadm Lorient_KMA",
"to_node": "fiber (Lorient_KMA → Quimper)-"
},
{
"from_node": "fiber (Quimper → Lorient_KMA)-",
"to_node": "roadm Lorient_KMA"
},
{
"from_node": "roadm Vannes_KBE",
"to_node": "fiber (Vannes_KBE → Lorient_KMA)-F055"
@@ -714,14 +634,6 @@
"from_node": "fiber (Lorient_KMA → Vannes_KBE)-F055",
"to_node": "roadm Vannes_KBE"
},
{
"from_node": "roadm Vannes_KBE",
"to_node": "fiber (Vannes_KBE → Ploermel)-"
},
{
"from_node": "fiber (Ploermel → Vannes_KBE)-",
"to_node": "roadm Vannes_KBE"
},
{
"from_node": "fiber (Lannion_CAS → Stbrieuc)-F056",
"to_node": "fiber (Stbrieuc → Rennes_STA)-F057"
@@ -738,14 +650,6 @@
"from_node": "fiber (Stbrieuc → Rennes_STA)-F057",
"to_node": "roadm Rennes_STA"
},
{
"from_node": "roadm Rennes_STA",
"to_node": "fiber (Rennes_STA → Ploermel)-"
},
{
"from_node": "fiber (Ploermel → Rennes_STA)-",
"to_node": "roadm Rennes_STA"
},
{
"from_node": "fiber (Lannion_CAS → Morlaix)-F059",
"to_node": "ingress fused spans in Morlaix"
@@ -770,14 +674,6 @@
"from_node": "fiber (Morlaix → Brest_KLA)-F060",
"to_node": "roadm Brest_KLA"
},
{
"from_node": "roadm Brest_KLA",
"to_node": "fiber (Brest_KLA → Quimper)-"
},
{
"from_node": "fiber (Quimper → Brest_KLA)-",
"to_node": "roadm Brest_KLA"
},
{
"from_node": "fiber (Brest_KLA → Quimper)-",
"to_node": "fiber (Quimper → Lorient_KMA)-"

View File

@@ -10,7 +10,7 @@
"te-bandwidth": {
"technology": "flexi-grid",
"trx_type": "Voyager",
"trx_mode": "16QAM",
"trx_mode": null,
"effective-freq-slot": [
{
"n": "null",
@@ -37,7 +37,7 @@
"te-bandwidth": {
"technology": "flexi-grid",
"trx_type": "Voyager",
"trx_mode": "16QAM",
"trx_mode": null,
"effective-freq-slot": [
{
"n": "null",
@@ -46,7 +46,8 @@
],
"spacing": 50000000000.0,
"max-nb-of-channel": 80,
"output-power": 0.0012589254117941673
"output-power": 0.0012589254117941673,
"path_bandwidth": 0
}
},
"optimizations": {
@@ -151,7 +152,7 @@
"te-bandwidth": {
"technology": "flexi-grid",
"trx_type": "vendorA_trx-type1",
"trx_mode": "mode 2",
"trx_mode": null,
"effective-freq-slot": [
{
"n": "null",

View File

@@ -34,6 +34,7 @@ from copy import copy, deepcopy
from textwrap import dedent
from math import ceil
import time
from textwrap import dedent
#EQPT_LIBRARY_FILENAME = Path(__file__).parent / 'eqpt_config.json'
@@ -92,16 +93,16 @@ def requests_from_json(json_data,equipment):
if req['path-constraints']['te-bandwidth']['max-nb-of-channel'] <= max_recommanded_nb_channels :
params['nb_channel'] = req['path-constraints']['te-bandwidth']['max-nb-of-channel']
else:
temp = params['baud_rate']
msg = dedent(f'''
Requested channel number is not consistent with frequency range:
{fmin*1e-12} THz, {fmax*1e-12} THz and baud rate: {temp*1e-9} GHz
{fmin*1e-12} THz, {fmax*1e-12} THz and baud rate: {temp} GHz
min recommanded spacing is {min_recommanded_spacing}
max recommanded nb of channels is {max_recommanded_nb_channels}
Computation stopped.''')
logger.critical(msg)
raise ValueError(msg)
exit()
else :
params['nb_channel'] = automatic_nch(fmin,fmax,params['spacing'])
try :

View File

@@ -27,7 +27,7 @@ Spans = namedtuple('Spans', 'power_mode delta_power_range_db max_length length_u
Transceiver = namedtuple('Transceiver', 'type_variety frequency mode')
Roadms = namedtuple('Roadms', 'gain_mode_default_loss power_mode_pref')
SI = namedtuple('SI', 'f_min f_max baud_rate spacing roll_off \
power_dbm power_range_db OSNR bit_rate')
power_dbm power_range_db OSNR bit_rate cost')
AmpBase = namedtuple(
'AmpBase',
'type_variety type_def gain_flatmax gain_min p_max'
@@ -172,7 +172,8 @@ def trx_mode_params(equipment, trx_type_variety='', trx_mode='', error_message=F
"baud_rate": None,
"OSNR": None,
"bit_rate": None,
"roll_off": None}
"roll_off": None,
"cost":None}
trx_params = {**mode_params}
trx_params['frequency'] = equipment['Transceiver'][trx_type_variety].frequency
@@ -193,6 +194,7 @@ def trx_mode_params(equipment, trx_type_variety='', trx_mode='', error_message=F
trx_params['spacing'] = default_si_data.spacing
trx_params['OSNR'] = default_si_data.OSNR
trx_params['bit_rate'] = default_si_data.bit_rate
trx_params['cost'] = default_si_data.cost
trx_params['roll_off'] = default_si_data.roll_off
trx_params['nb_channel'] = automatic_nch(trx_params['frequency']['min'],
trx_params['frequency']['max'],

View File

@@ -34,7 +34,7 @@ logger = getLogger(__name__)
RequestParams = namedtuple('RequestParams','request_id source destination trx_type'+
' trx_mode nodes_list loose_list spacing power nb_channel frequency format baud_rate OSNR bit_rate roll_off path_bandwidth')
' trx_mode nodes_list loose_list spacing power nb_channel frequency format baud_rate OSNR bit_rate roll_off cost path_bandwidth')
DisjunctionParams = namedtuple('DisjunctionParams','disjunction_id relaxable link_diverse node_diverse disjunctions_req')
class Path_request:
@@ -56,6 +56,7 @@ class Path_request:
self.OSNR = params.OSNR
self.bit_rate = params.bit_rate
self.roll_off = params.roll_off
self.cost = params.cost
self.path_bandwidth = params.path_bandwidth
def __str__(self):
@@ -401,7 +402,6 @@ def propagate_and_optimize_mode(path, req, equipment, show=False):
baudrate_to_explore = sorted(baudrate_to_explore, reverse=True)
found_a_feasible_mode = False
for b in baudrate_to_explore :
modes_to_explore = [m for m in equipment['Transceiver'][req.tsp].mode
if m['baud_rate'] == b]
modes_to_explore = sorted(modes_to_explore,

View File

@@ -77,7 +77,12 @@ class Request_element(Element):
logger.critical(msg)
exit()
# excel input are in GHz and dBm
self.spacing = Request.spacing * 1e9
if Request.spacing is not None:
self.spacing = Request.spacing * 1e9
else:
msg = f'Request {self.request_id} missing spacing: spacing is mandatory.\ncomputation stopped'
logger.critical(msg)
exit()
if Request.power is not None:
self.power = db2lin(Request.power) * 1e-3
else:

View File

@@ -77,7 +77,8 @@
"power_range_db": [0,0.5,0.5],
"roll_off": 0.15,
"OSNR": 15,
"bit_rate":100e9
"bit_rate":100e9,
"cost":1
}],
"Transceiver":[
{
@@ -92,14 +93,16 @@
"baud_rate": 32e9,
"OSNR": 11,
"bit_rate": 100e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
},
{
"format": "PS_SP64_2",
"baud_rate": 64e9,
"OSNR": 15,
"bit_rate": 200e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
}
]
},
@@ -115,7 +118,8 @@
"baud_rate": 32e9,
"OSNR": 19,
"bit_rate": 200e9,
"roll_off": 0.15
"roll_off": 0.15,
"cost":1
}
]
}