From: guillaume.lambert Date: Sat, 28 May 2022 14:52:43 +0000 (+0200) Subject: Refactor DpQpsk/DpQam16 100G OFEC support X-Git-Tag: 4.3.0~4 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=transportpce.git;a=commitdiff_plain;h=a8abf471a9d6c5dcfb9f221a90224dfbebc75a3d Refactor DpQpsk/DpQam16 100G OFEC support JIRA: TRNSPRTPCE-636 Signed-off-by: guillaume.lambert Change-Id: Idfae5b92ba0b2bddd366ee2fbf03c5fd3978eb19 --- diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface710.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface710.java index 0cebc9f6f..1f8be134c 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface710.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface710.java @@ -12,6 +12,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.stream.IntStream; import org.opendaylight.transportpce.common.StringConstants; @@ -1090,45 +1091,41 @@ public class OpenRoadmInterface710 { justification = "call in call() method") private int getServiceRate(ModulationFormat modulationFormat, SpectrumInformation spectrumInformation) { - double spectralWidth = (spectrumInformation.getHigherSpectralSlotNumber() - - spectrumInformation.getLowerSpectralSlotNumber() + 1) * GridConstant.GRANULARITY; + int rate; switch (modulationFormat) { case DpQpsk: - // DpQpsk is possible for both 31.6 or 63.1 GBaud, for which spectral width is different - // Here take the difference of highest and lowest spectral numbers and determine the width - LOG.info("The width with guard band {}", spectralWidth); - if (spectralWidth == 50.0) { - // Based on roll-of-factor of 0.2, 50 - 12.5 = 37.5GHz translates to 31.6 GBaud - LOG.info("The baud-rate is 31.6 GBaud"); - LOG.info("Given modulation format {} with 31.6 Gbaud rate is 100G", modulationFormat); - return 100; - } else { - // Based on roll-of-factor of 0.2, 87.5 - 12.5 = 75GHz translates to 63.1 GBaud - LOG.info("The baud-rate is 63.1 GBaud"); - return 200; - } - case DpQam8: - LOG.info("Given modulation format is {} and thus rate is 300G", modulationFormat); - return 300; case DpQam16: - // DpQam16 is possible for both 31.6 or 63.1 GBaud, for which spectral width is different + // DpQpsk and DpQam16 are possible for both 31.6 or 63.1 GBaud, for which spectral width is different // Here take the difference of highest and lowest spectral numbers and determine the width + double spectralWidth = (spectrumInformation.getHigherSpectralSlotNumber() + - spectrumInformation.getLowerSpectralSlotNumber() + 1) * GridConstant.GRANULARITY; LOG.info("The width with guard band {}", spectralWidth); + Map rateMap; if (spectralWidth == 50.0) { + rateMap = Map.of( + ModulationFormat.DpQpsk , 100, + ModulationFormat.DpQam16 , 200); // Based on roll-of-factor of 0.2, 50 - 12.5 = 37.5GHz translates to 31.6 GBaud LOG.info("The baud-rate is 31.6 GBaud"); - LOG.info("Given modulation format {} with 31.6 Gbaud rate is 200G", modulationFormat); - return 200; + return rateMap.get(modulationFormat); } else { + rateMap = Map.of( + ModulationFormat.DpQpsk , 200, + ModulationFormat.DpQam16 , 400); // Based on roll-of-factor of 0.2, 87.5 - 12.5 = 75GHz translates to 63.1 GBaud LOG.info("The baud-rate is 63.1 GBaud"); - return 400; } + rate = rateMap.get(modulationFormat); + break; + case DpQam8: + rate = 300; + break; default: LOG.error("Modulation format is required to select the rate"); - break; + return 0; } - return 0; + LOG.info("Given modulation format {} rate is {}", modulationFormat, rate); + return rate; } }