oopt-gnpy
oopt-gnpy copied to clipboard
ROADM model too simple
The current Roadm class in elements.py
models propagation as a fixed attenuation with a single loss parameter. I don't think this is representative of most ROADM nodes in real deployments. The components a signal passes through are usually different for degree-to-degree vs. add/drop-to-degree paths. There are many possible ROADM architectures but as an example consider a CDC design based on a twin-WSS for each degree and multicast switches (MCS) for the add/drop ports. In this case a degree-to-degree path (i.e. between two line fibers a.k.a express path) will pass 2 x WSS while an add/drop-to-degree path (i.e. between transponder and line fiber) will pass MCS + WSS. Going through an MCS instead of a WSS has several implications:
-
The loss will usually be different. For an MCS the loss increases with number of add/drop ports since it is based on passive splitters/combiners.
-
If the number of add/drop ports is higher than some threshold the MCS loss will be so high that an EDFA array is needed to compensate. These extra amplifiers are not included in the current model.
-
Since passive splitters/combiners are used, out-of-band Tx ASE noise from multiple transceivers will accumulate and degrade the OSNR (see also issue https://github.com/Telecominfraproject/oopt-gnpy/issues/116).
Thank you for this feedback! @jeanluc-auge is putting together some comments and will provide feedback after the TIP Summit.
Hi, Again, this is a fair comment and it should be addressed. Thank you for your input! The approach so far is not that of a desagregated whitebox model because as you pointed it out there are so many HW implementations. Therefore we don't model a particular component, but rather the whole ROADM as a black box. Instead, what matters is the OSNR contribution and there are 2 types: express and add&drop (A&D), currently we only model express OSNR because it is the main contribution but as mentioned in #116 we should add the A&D contribution in the code. Please feel free to make a code proposal. Tx out of band ASE noise degradation is another penalty that should be taken into account as well. For example as an OSNR penalty: this can be discussed. Coming back to the ROADM model, there are currently 2 implementations/modes (in eqpt_config.json) in the code: -gain mode with a fixed passive loss -power mode (I recommend this mode for auto-design networks, i.e. gnpy choses and configures the amplifiers) where a target output power is defined after the ROADM. This reflects typical power control loop implementations, where the ROADM loss for each channel is set based on a target power. This target output power is before the egress amplifier, so that the same OSNR contribution is achieved. yu can check the Readme file for more details.
@jeanluc-auge, it seems difficult to model both express and add/drop using a single network element representing the whole ROADM. Since elements just propagate SpectralInformation
independently of other elements, how would a ROADM element know whether to propagate an express path or an add/drop path? Probably a more flexible model would be to have separate (disaggregated) elements for ROADM degrees and for add/drop.
The OSNR contribution should be addressed.
Also, refer to upcoming work related to #116
moving to backlog to collect issues for future releases as discussed during the call