mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-11-01 18:47:48 +00:00
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com> Change-Id: Ief7e79ef10edf098c49ab1a0164284e5ae604961
270 lines
10 KiB
ReStructuredText
270 lines
10 KiB
ReStructuredText
.. _release-notes:
|
|
|
|
Release change log
|
|
==================
|
|
|
|
Each release introduces some changes and new features.
|
|
|
|
(prepare text for next release)
|
|
ROADM impairments can be defined per degree and roadm-path type (add, drop or express).
|
|
Minimum loss when crossing a ROADM is no more 0 dB. It can be set per ROADM degree with roadm-path-impairments.
|
|
|
|
The transceiver output power, which was previously set using the same parameter as the input span power (power_dbm),
|
|
can now be set using a different parameter. It can be set as:
|
|
|
|
- for all channels, with tx_power_dbm using SI similarly to tx_osnr (gnpy-transmission-example script)
|
|
|
|
.. code-block:: json
|
|
|
|
"SI": [{
|
|
"f_min": 191.35e12,
|
|
"baud_rate": 32e9,
|
|
"f_max": 196.1e12,
|
|
"spacing": 50e9,
|
|
"power_dbm": 3,
|
|
"power_range_db": [0, 0, 1],
|
|
"roll_off": 0.15,
|
|
"tx_osnr": 40,
|
|
"tx_power_dbm": -10,
|
|
"sys_margins": 2
|
|
}
|
|
]
|
|
|
|
- for certain channels, using -spectrum option and tx_channel_power_dbm option (gnpy-transmission-example script).
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"spectrum": [
|
|
{
|
|
"f_min": 191.35e12,
|
|
"f_max":193.1e12,
|
|
"baud_rate": 32e9,
|
|
"slot_width": 50e9,
|
|
"power_dbm": 0,
|
|
"roll_off": 0.15,
|
|
"tx_osnr": 40
|
|
},
|
|
{
|
|
"f_min": 193.15e12,
|
|
"f_max":193.15e12,
|
|
"baud_rate": 32e9,
|
|
"slot_width": 50e9,
|
|
"power_dbm": 0,
|
|
"roll_off": 0.15,
|
|
"tx_osnr": 40,
|
|
"tx_power_dbm": -10
|
|
},
|
|
{
|
|
"f_min": 193.2e12,
|
|
"f_max":195.1e12,
|
|
"baud_rate": 32e9,
|
|
"slot_width": 50e9,
|
|
"power_dbm": 0,
|
|
"roll_off": 0.15,
|
|
"tx_osnr": 40
|
|
}
|
|
]
|
|
}
|
|
|
|
- per service using the additional parameter ``tx_power`` which similarly to ``power`` should be defined in Watt (gnpy-path-request script)
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"path-request": [
|
|
{
|
|
"request-id": "0",
|
|
"source": "trx SITE1",
|
|
"destination": "trx SITE2",
|
|
"src-tp-id": "trx SITE1",
|
|
"dst-tp-id": "trx SITE2",
|
|
"bidirectional": false,
|
|
"path-constraints": {
|
|
"te-bandwidth": {
|
|
"technology": "flexi-grid",
|
|
"trx_type": "Voyager",
|
|
"trx_mode": "mode 1",
|
|
"spacing": 50000000000.0,
|
|
"path_bandwidth": 100000000000.0
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"request-id": "0 with tx_power",
|
|
"source": "trx SITE1",
|
|
"destination": "trx SITE2",
|
|
"src-tp-id": "trx SITE1",
|
|
"dst-tp-id": "trx SITE2",
|
|
"bidirectional": false,
|
|
"path-constraints": {
|
|
"te-bandwidth": {
|
|
"technology": "flexi-grid",
|
|
"trx_type": "Voyager",
|
|
"trx_mode": "mode 1",
|
|
"tx_power": 0.0001,
|
|
"spacing": 50000000000.0,
|
|
"path_bandwidth": 100000000000.0
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
v2.9
|
|
----
|
|
|
|
The revision introduces a major refactor that separates design and propagation. Most of these changes have no impact
|
|
on the user experience, except the following ones:
|
|
|
|
**Network design - amplifiers**: amplifier saturation is checked during design in all cases, even if type_variety is
|
|
set; amplifier gain is no more computed on the fly but only at design phase.
|
|
|
|
Before, the design did not consider amplifier power saturation during design if amplifier type_variety was stated.
|
|
With this revision, the saturation is always applied:
|
|
If design is made for a per channel power that leads to saturation, the target are properly reduced and the design
|
|
is freezed. So that when a new simulation is performed on the same network for lower levels of power per channel
|
|
the same gain target is applied. Before these were recomputed, changing the gain targets, so the simulation was
|
|
not considering the exact same working points for amplifiers in case of saturation.
|
|
|
|
Note that this case (working with saturation settings) is not recommended.
|
|
|
|
The gain of amplifiers was estimated on the fly also in case of RamanFiber preceding elements. The refactor now
|
|
requires that an estimation of Raman gain of the RamanFiber is done during design to properly compute a gain target.
|
|
The Raman gain is estimated at design for every RamanFiber span and also during propagation instead of being only
|
|
estimated at propagation stage for those Raman Fiber spans concerned with the transmission. The auto-design is more
|
|
accurate for unpropagated spans, but this results in an increase overall computation time.
|
|
This will be improved in the future.
|
|
|
|
**Network design - ROADMs**: ROADM target power settings are verified during design.
|
|
|
|
Design checks that expected power coming from every directions ingress from a ROADM are consistent with output power
|
|
targets. The checks only considers the adjacent previous hop. If the expected power at the input of this ROADM is
|
|
lower than the target power on the out-degree of the ROADM, a warning is displayed, and user is asked to review the
|
|
input network to avoid this situation. This does not change the design or propagation behaviour.
|
|
|
|
**Propagation**: amplifier gain target is no more recomputed during propagation. It is now possible to freeze
|
|
the design and propagate without automatic changes.
|
|
|
|
In previous release, gain was recomputed during propagation based on an hypothetical reference noiseless channel
|
|
propagation. It was not possible to «freeze» the autodesign, and propagate without recomputing the gain target
|
|
of amplifiers.
|
|
With this new release, the design is freezed, so that it is possible to compare performances on same basis.
|
|
|
|
**Display**: "effective pch (dbm)" is removed. Display contains the target pch which is the target power per channel
|
|
in dBm, computed based on reference channel used for design and the amplifier delta_p in dB (and before out VOA
|
|
contribution). Note that "actual pch out (dBm)" is the actual propagated total power per channel averaged per spectrum
|
|
band definition at the output of the amplifier element, including noises and out VOA contribution.
|
|
|
|
v2.8
|
|
----
|
|
|
|
**Spectrum assignment**: requests can now support multiple slots.
|
|
The definition in service file supports multiple assignments (unchanged syntax):
|
|
|
|
.. code-block:: json
|
|
|
|
"effective-freq-slot": [
|
|
{
|
|
"N": 0,
|
|
"M": 4
|
|
}, {
|
|
"N": 50,
|
|
"M": 4
|
|
}
|
|
],
|
|
|
|
But in results, label-hop is now a list of slots and center frequency index:
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"path-route-object": {
|
|
"index": 4,
|
|
"label-hop": [
|
|
{
|
|
"N": 0,
|
|
"M": 4
|
|
}, {
|
|
"N": 50,
|
|
"M": 4
|
|
}
|
|
]
|
|
}
|
|
},
|
|
|
|
instead of
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"path-route-object": {
|
|
"index": 4,
|
|
"label-hop": {
|
|
"N": 0,
|
|
"M": 4
|
|
}
|
|
}
|
|
},
|
|
|
|
|
|
|
|
**change in display**: only warnings are displayed ; information are disabled and needs the -v (verbose)
|
|
option to be displayed on standard output.
|
|
|
|
**frequency scaling**: A more accurate description of fiber parameters is implemented, including frequency scaling of
|
|
chromatic dispersion, effective area, Raman gain coefficient, and nonlinear coefficient.
|
|
|
|
In particular:
|
|
|
|
1. Chromatic dispersion can be defined with ``'dispersion'`` and ``'dispersion_slope'``, as in previous versions, or
|
|
with ``'dispersion_per_frequency'``; the latter must be defined as a dictionary with two keys, ``'value'`` and
|
|
``'frequency'`` and it has higher priority than the entries ``'dispersion'`` and ``'dispersion_slope'``.
|
|
Essential change: In previous versions, when it was not provided the ``'dispersion_slope'`` was calculated in an
|
|
involute manner to get a vanishing beta3 , and this was a mere artifact for NLI evaluation purposes (namely to evaluate
|
|
beta2 and beta3, not for total dispersion accumulation). Now, the evaluation of beta2 and beta3 is performed explicitly
|
|
in the element.py module.
|
|
|
|
2. The effective area is provided as a scalar value evaluated at the Fiber reference frequency and properly scaled
|
|
considering the Fiber refractive indices n1 and n2, and the core radius. These quantities are assumed to be fixed and
|
|
are hard coded in the parameters.py module. Essential change: The effective area is always scaled along the frequency.
|
|
|
|
3. The Raman gain coefficient is properly scaled considering the overlapping of fiber effective area values scaled at
|
|
the interacting frequencies. Essential change: In previous version the Raman gain coefficient depends only on
|
|
the frequency offset.
|
|
|
|
4. The nonlinear coefficient ``'gamma'`` is properly scaled considering the refractive index n2 and the scaling
|
|
effective area. Essential change: As the effective area, the nonlinear coefficient is always scaled along the
|
|
frequency.
|
|
|
|
**power offset**: Power equalization now enables defining a power offset in transceiver library to represent
|
|
the deviation from the general equalisation strategy defined in ROADMs.
|
|
|
|
.. code-block:: json
|
|
|
|
"mode": [{
|
|
"format": "100G",
|
|
"baud_rate": 32.0e9,
|
|
"tx_osnr": 35.0,
|
|
"min_spacing": 50.0e9,
|
|
"cost": 1,
|
|
"OSNR": 10.0,
|
|
"bit_rate": 100.0e9,
|
|
"roll_off": 0.2,
|
|
"equalization_offset_db": 0.0
|
|
}, {
|
|
"format": "200G",
|
|
"baud_rate": 64.0e9,
|
|
"tx_osnr": 35.0,
|
|
"min_spacing": 75.0e9,
|
|
"cost": 1,
|
|
"OSNR": 13.0,
|
|
"bit_rate": 200.0e9,
|
|
"roll_off": 0.2,
|
|
"equalization_offset_db": 1.76
|
|
}
|
|
]
|
|
|
|
v2.7
|
|
----
|