and create a save_gnpy_json for specific gnpy exports.
because save_json is used as dependency in other projects
Fix example and test file.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I9af07a13510658dece0685a3bce7589efd57e259
Make sure that a library which includes metada (library-information)
is correctly loaded, and these metada ignored.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I9c3dc46d502f061b2b31aa430865aa265f1631ad
Enable user to choose spectrum assignement policy.
Implement a last fit policy.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I1ab5ac484a342a8d6e8e7e963132036a01cfef4f
- min required OSNR
- min propagated GSNR
- PDL, PMD, CD penalties
This enables user to diagnose the case whan GSNR is OK but path is failing
change the test_parser:
- keep the testTopology_response.json file as it is as input file for
test_csv_response_generation so that previous json exports are still tested.
- use a new testTopology_response_expected.json to check the actual json
generation with the additionnal informations
- add a 'fake response.json file with various types of response to better
test the jsontocsv function
Add more info in the logger for the case of no_ feasible_mode and add a test
for this case.
refactor a bit the functions
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I92105f58adb7303f3d1475e4b21bd3e36e227090
- removing order dependancy in the init
- adding test dedicated to the add method
- fix invocation test multiband
Change-Id: Ibaf8b6d791c17136b2c3538a5ce82e0e2757b25b
Here the Fiber behaviour change because pch = signal + ase + nli is
considered instead of just signal. This slightly changes the
propagation results as more power is considered to be injected in the
fiber span. All differences in tests are below 0.1 dB, with a few
exceptions slightly higher.
Change-Id: I5b2227ee036a26a11e13f3169e16868d70f0c457
Using the new defined attribute in a coherent way along the code.
Still no changes in the behaviour
Change-Id: I6e43db1e28a5456e0522e52c0f74e79969307ed9
Just new definition that will be used in next changes.
At this point there is not any changes in behaviour
and tests are only changed to adapt the new signature
of the spectral information.
Change-Id: Ib3a0fd556681d34978312dc5e80f0e15096ef79c
to_json export includes a round that makes the export crash when
loss_coef is an array. This patch includes a test on the data to
correctly export per frequency loss coeff.
legacy format supports
"loss_coef": {"value": [0.29, 0.28, 0.29], "frequency": [186.3e12, 194e12, 197e12]},
yang format should be:
"loss_coef_per_frequency": [
{"frequency": "186300000000000.0", "loss_coef_value": "0.29"},
{"frequency": "194000000000000.0", "loss_coef_value": "0.28"},
{"frequency": "197000000000000.0", "loss_coef_value": "0.29"}]
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: Id4e49d2b3cce22b85228fe790c15c5a93dea7e06
- test_legacy_yang: subprocess now uses the same interpreter/environment as pytest
- test_create_eqpt_sheet: remove dependence on system privileges
Signed-off-by: gborraccini <gborraccini@nec-labs.com>
Change-Id: I43d29130700f509e92843d7cbd611ea5bec05657
Create a set of excel utils to be used for .xls and .xlsx files, for
reading workbook, reading sheets, ... optimize openpyxl access to
sheet to save computation time.
Use this opportunity to refactor service sheet without namedtuple
and simplify code
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: Ibaf3aac40b3f6ca4829d8ea8cd506523d318103a
enable changing the reference span loss and the ratio of the
loss deviation to this reference that should be reported on
the span input.
Initial target used a hardcoded 20dB loss span with
0.3 power slope.
update documentation accordingly.
requires yang updates
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: Ib763db6be2bd7e947057176f3246f19ac7e6ac0d
Correctly uses the oms band and spacing for computing the nb of channel
and total power for design per band.
In order to keep the SI values as reference, introduce a new parameter
in SI to indicate wether to use this feature or not.
If "use_si_channel_count_for_design": true, then the f_min, f_max and spacing
from SI are used for all OMSes
else, the f_min, f_max, spacing defined per OMS (design_bands) is used.
This impacts tests where the artificial C-band boudaries were hardcoded, and
it also has an impact on performances when SI's defined nb of channels is larger
than the one defined per OMS. In this case the design was considering a larger
total power than the one finally propagated which resulted in reduced performance.
This feature now corrects this case (if "use_si_channel_count_for_design": false
which is the default setting). Overall autodesign are thus improved.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I471a2c45200894ca354c90b46b662f42414b48ad
tous les test marche et les jeu de tests aussi.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: If25b47aa10f97301fde7f17daa2a9478aed46db2
This will be used to compute the max total power for design per OMS.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I392f06c792af9f32d4a14324c683bd3fae655de8
This commit introduces new functions for converting between YANG formatted files and
legacy formats. The conversion processes adhere to RFC7951 for encoding YANG data.
Key changes include:
- Conversion of float and empty type representations.
- Transformation of Span and SI lists xx_power_range into dictionaries.
- Addition of necessary namespaces.
- use of oopt-gnpy-libyang to enforce compliancy to yang models
These utilities enable full compatibility with GNPy.
Co-authored-by: Renato Ambrosone <renato.ambrosone@polito.it>
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: Ia004113bca2b0631d1648564e5ccb60504fe80f8
But enable the user to still input its own default file with a new
'default_config_from_json' attribute useable in fixed and variable gain
amplifiers.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I773682ae6daa1025007fc051582e779986982838
Instead keep the None value, it user has not stated anything
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I45fcff92caabbfbe514fbe30deac60426b7eb16b
when user settings do not match library
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: Id387b7781d9637f1d18c453dae75330962229902
explicitely check the corrections for all cases
ila defined in eqpt or not,
ila defined on the link with same direction as request or not
constraint loose or strict
several or one ila in the OMS
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I4d4b5167e7327c9aea4b13879f4e00d30e60d643
auto design were changed long ago and these functions did not
apply the changes. Besides there was a confusion between request_element
class where loose is a string, and PathRequest from topology.requests
where loose_list is a list of strings.
This patch corrects the naming and also the tests,
because it used the wrong class to gererate xls services
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I564b77576459d6cb47767398a2db8138ba6ad1e4
- read per degre roadm-path impairment from roadm sheet
add additional optional columns: type_variety and 'from degrees'
and 'from degree to degree impairment id'
'from degrees' can contain a list of degrees separated with ' | ', then the
'from degree to degree impairment id' must contain a list of ids of the same
length.
Impairment ids are expected to be in the ROADM equipment spec and
from degree must be the previous node (no verification of user input).
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I7d326bb3d4f366835249089e9537747c7d3ec2fd
An approximated version of the GGN is implemented to reduce the computational time enabling fast multi-band transmission simulations
Change-Id: I2951a878aa04b5eb4a33ba86d626a788c4cbb100
the automatic add_missing_elements function is updated to insert
multiband booster, preamp or inline amplifiers based on the OMS
nature. If nothing is stated, then uses Edfas.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I968a2fc0a3da97aecb7b513ff211491b20cdd4f2
Compute the tilts only if raman-flag in sim_params is turned on.
Use actual input power in fiber (according to expected propagation
during design).
Creates a function that computes the expected tilt after propagation
in a span, and returns the normalized power difference at the center
frequency of each band, and the tilt experenced between lower and
upper frequency in each band.
Include the expected tilt when computing target gains of amplifiers.
Current function requires that the bands remain in the same order.
(ordering is ensured when creating the objects).
Change-Id: I28bdf13f2010153175e8b6d199fd8eea15d7b292
make sure that selected amplifiers (single or multiband) have a band
that encompasses design_band.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I8b66755efbe8413f32328b9e02099ffdedd4b7ed
Introduce a design_band parameter in ROADM and Transceiver.
- if nothing is defined, use SI band(s)
- if design band is defined in ROADM, use this one for all degrees
- if per degree design band is defined, use this one instead
unsupported case: single band OMS with default multiband design band.
Check that these definitions are consistent with actual amplifiers
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: Ibea4ce6e72d2b1e96ef8cf4efaf499530d24179c
Introduce a new multi-band element that contains a list of Edfa element:
- reads multiple amps out of the element config.
- deduces frequency band from the amp in the list.
no autodesign yet: multi-band amps must have type_variety.
- checks that type variety of individual EDFAs is consistent with multiband
type variety
- demux and mux spectrum when propagate in multiband
- don't add a preamp or booster if a multiband amp is already defined.
The print of channel number is removed from equipment, since the channel number
may now depend on the path's amplifiers. This changes invocation results layout.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I44e77ff82e622cdee4021a7984d660317cb90cf9
The commit introduces mux/demux functions in amps and ensures that the
propagation is only done on carriers that are in the Amp bandwitdh, ie
with all their spectrum including slot width is in bandwidth.
For consistency, default amp f_min is changed:
Objective is to use amplifiers' band to bound the possible frequencies
to be propagated. Since the current default f_min of Amp in json_io.py is
higher than the SI one, this would result in a different nb of channels
than currently used in tests, and a change in all tests. In order to
avoid this, I preferred to change this value and have consistency
between SI f_min and Amp f_min.
The commits adds a set of functions to make amps band the useable
spectrum on each OMS. Thee OMS generation is changed to use the amp band.
The commit adds filtering functions (demux and mux) to filter out spectrum
which is not in the amplifier band.
Spectrum assignment is also corrected to correctly match the amp bandwidth
constraint with guardband: center frequency index must be within the
usable part of the amp band. This changes a bit the notion of freq_index
and guardband in the functions, but this is transparent to user:
f_min, f_max represent the amp band, while self.freq_index_min/max
represent the center frequency boundary for a reference 50GHz channel.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I225b2b2dc0e1f1992c0460f6e08fa9c9bc641edf
redesign True means that network is redesigned using each request
as reference channel. When False it means that the design is made
once and successive propagation use the settings computed with this
design.
Default propogation is without redesign, so that path-request-script
must use the ----redesign-per-request option to behave as before this
commit.
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
Change-Id: I0084185106d14659a846136620cd17791d551a7d