From 9f04e99bf6c53ce3218835145085fb75dc5b4590 Mon Sep 17 00:00:00 2001 From: manuedelf Date: Wed, 4 Nov 2020 09:10:37 +0100 Subject: [PATCH] Upgrade to OpenROADM 7.1.0 network models - Replace existing OpenROADM network models with version 7.1.0 - New version of transportpce-topology model to suppport 7.1.0 models - common module: add constants to manage fixed and flex grid, add GridUtils class to init frequencies map - update networkmodel module: update import version, update unit tests - update renderer module: update import version, replace wavelength with frequencies map, update unit tests - update olm module: update import version - update pce module: update import version, replace wavelength with frequencies map (from 7.1 models), update unit tests and data test files - update tapi module: update import version and data test file - update lighty module: update import version - update functional tests: update response check, add constants and functions to compute freq map, update data test files Note that in pce, tapi modules and functional tests, there is a major update in test data files: replacement of available-wavelength with avail-freq-maps which contains a base64 encoded 96 bytes representing available frequency JIRA: TRNSPRTPCE-259 Signed-off-by: manuedelf Change-Id: Iaf95e04232283f6adf08ef41b394c1cd0fca2354 --- .../common/fixedflex/FixedGridConstant.java | 26 + .../common/fixedflex/GridConstant.java | 23 + .../common/fixedflex/GridUtils.java | 45 + .../controllers/tpce/utils/TPCEUtils.java | 34 +- .../transportpce/networkmodel/OrdLink.java | 15 +- .../networkmodel/Rdm2XpdrLink.java | 21 +- .../service/NetworkModelService.java | 2 +- .../service/NetworkModelServiceImpl.java | 6 +- .../networkmodel/util/ClliNetwork.java | 4 +- .../networkmodel/util/OpenRoadmNetwork.java | 8 +- .../util/OpenRoadmOtnTopology.java | 114 +- .../networkmodel/util/OpenRoadmTopology.java | 147 +- .../networkmodel/util/TopologyUtils.java | 4 +- .../networkmodel/util/TpceNetwork.java | 10 +- .../networkmodel/util/ClliNetworkTest.java | 6 +- .../util/OpenRoadmNetworkTest.java | 2 +- .../util/OpenRoadmOtnTopologyTest.java | 132 +- .../util/OpenRoadmTopologyTest.java | 50 +- .../networkmodel/util/TpceNetworkTest.java | 16 +- .../util/test/NetworkmodelTestUtil.java | 46 +- .../olm/service/OlmPowerServiceImpl.java | 4 +- .../olm/util/OlmPowerServiceRpcImplUtil.java | 4 +- .../olm/util/OlmTransactionUtils.java | 75 +- .../olm/util/TransactionUtils.java | 68 +- ...> org-openroadm-amplifier@2019-11-29.yang} | 18 +- ...rg-openroadm-clli-network@2019-11-29.yang} | 7 +- ...-openroadm-common-network@2020-05-29.yang} | 75 +- ...g => org-openroadm-degree@2020-05-29.yang} | 42 +- ...nroadm-external-pluggable@2020-05-29.yang} | 26 +- ...ang => org-openroadm-link@2020-05-29.yang} | 64 +- ...dm-network-topology-types@2020-03-27.yang} | 41 +- ...openroadm-network-topology@2018-11-30.yang | 414 -- ...openroadm-network-topology@2020-05-29.yang | 334 ++ ...g-openroadm-network-types@2020-05-29.yang} | 153 +- ... => org-openroadm-network@2020-05-29.yang} | 68 +- ...oadm-otn-network-topology@2020-05-29.yang} | 146 +- ...ng => org-openroadm-roadm@2019-11-29.yang} | 4 + ...yang => org-openroadm-srg@2020-05-29.yang} | 34 +- ... => org-openroadm-xponder@2020-05-29.yang} | 125 +- ... => transportpce-topology@2020-10-19.yang} | 5 +- .../transportpce/pce/gnpy/GnpyTopoImpl.java | 28 +- .../pce/graph/InAlgoPathValidator.java | 2 +- .../pce/graph/PostAlgoPathValidator.java | 2 +- .../pce/networkanalyzer/MapUtils.java | 36 +- .../pce/networkanalyzer/PceCalculation.java | 6 +- .../pce/networkanalyzer/PceLink.java | 16 +- .../pce/networkanalyzer/PceOpticalNode.java | 78 +- .../pce/networkanalyzer/PceOtnNode.java | 38 +- .../pce/PcePathDescriptionTests.java | 2 +- .../pce/graph/PceGraphEdgeTest.java | 2 +- .../transportpce/pce/graph/PceGraphTest.java | 4 +- .../pce/networkanalyzer/PceLinkTest.java | 27 +- .../networkanalyzer/PceOpticalNodeTest.java | 88 +- .../pce/networkanalyzer/PceOtnNodeTest.java | 122 +- .../transportpce/pce/utils/NodeUtils.java | 204 +- .../pce/utils/TransactionUtils.java | 127 +- .../test/resources/gnpy/gnpy_topology.json | 835 +-- .../topologyData/basePceTopology.json | 4564 ++++++++--------- .../NetworkModelWavelengthServiceImpl.java | 429 +- .../DeviceRendererServiceImpl.java | 2 +- .../OtnDeviceRendererServiceImpl.java | 2 +- ...NetworkModelWaveLengthServiceFreeTest.java | 193 +- .../NetworkModelWaveLengthServiceUseTest.java | 140 +- .../utils/WaveLengthServiceUtils.java | 30 +- .../topology/ConvertORTopoToTapiTopo.java | 34 +- .../tapi/topology/TapiTopologyImpl.java | 14 +- ...onvertORTopoObjectToTapiTooObjectTest.java | 4 +- .../tapi/utils/TopologyDataUtils.java | 5 +- .../src/test/resources/openroadm-topology.xml | 2082 +------- tests/sample_configs/NW-for-test-5-4.xml | 1318 ++--- tests/sample_configs/NW-simple-topology.xml | 830 ++- .../gnpy/openroadmTopology.json | 707 +-- tests/sample_configs/honeynode-topo.xml | 1776 +------ .../transportpce_tests/1.2.1/test_end2end.py | 236 +- .../transportpce_tests/2.2.1/test_end2end.py | 70 +- .../2.2.1/test_otn_end2end.py | 36 +- tests/transportpce_tests/2.2.1/test_tapi.py | 2 - tests/transportpce_tests/common/test_utils.py | 41 +- 78 files changed, 6001 insertions(+), 10549 deletions(-) create mode 100644 common/src/main/java/org/opendaylight/transportpce/common/fixedflex/FixedGridConstant.java create mode 100644 common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridConstant.java create mode 100644 common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridUtils.java rename ordmodels/network/src/main/yang/{org-openroadm-amplifier@2018-11-30.yang => org-openroadm-amplifier@2019-11-29.yang} (92%) rename ordmodels/network/src/main/yang/{org-openroadm-clli-network@2018-11-30.yang => org-openroadm-clli-network@2019-11-29.yang} (95%) rename ordmodels/network/src/main/yang/{org-openroadm-common-network@2018-11-30.yang => org-openroadm-common-network@2020-05-29.yang} (75%) rename ordmodels/network/src/main/yang/{org-openroadm-degree@2018-11-30.yang => org-openroadm-degree@2020-05-29.yang} (85%) rename ordmodels/network/src/main/yang/{org-openroadm-external-pluggable@2018-11-30.yang => org-openroadm-external-pluggable@2020-05-29.yang} (90%) rename ordmodels/network/src/main/yang/{org-openroadm-link@2018-11-30.yang => org-openroadm-link@2020-05-29.yang} (87%) rename ordmodels/network/src/main/yang/{org-openroadm-network-topology-types@2018-11-30.yang => org-openroadm-network-topology-types@2020-03-27.yang} (82%) delete mode 100644 ordmodels/network/src/main/yang/org-openroadm-network-topology@2018-11-30.yang create mode 100644 ordmodels/network/src/main/yang/org-openroadm-network-topology@2020-05-29.yang rename ordmodels/network/src/main/yang/{org-openroadm-network-types@2018-11-30.yang => org-openroadm-network-types@2020-05-29.yang} (62%) rename ordmodels/network/src/main/yang/{org-openroadm-network@2018-11-30.yang => org-openroadm-network@2020-05-29.yang} (79%) rename ordmodels/network/src/main/yang/{org-openroadm-otn-network-topology@2018-11-30.yang => org-openroadm-otn-network-topology@2020-05-29.yang} (57%) rename ordmodels/network/src/main/yang/{org-openroadm-roadm@2018-11-30.yang => org-openroadm-roadm@2019-11-29.yang} (97%) rename ordmodels/network/src/main/yang/{org-openroadm-srg@2018-11-30.yang => org-openroadm-srg@2020-05-29.yang} (85%) rename ordmodels/network/src/main/yang/{org-openroadm-xponder@2018-11-30.yang => org-openroadm-xponder@2020-05-29.yang} (56%) rename ordmodels/network/src/main/yang/{transportpce-topology@2020-01-29.yang => transportpce-topology@2020-10-19.yang} (93%) diff --git a/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/FixedGridConstant.java b/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/FixedGridConstant.java new file mode 100644 index 000000000..b93553dc7 --- /dev/null +++ b/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/FixedGridConstant.java @@ -0,0 +1,26 @@ +/* + * Copyright © 2020 Orange, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.transportpce.common.fixedflex; + +/** + * Constant class related to fixed grid. + * @author Orange + * + */ +public final class FixedGridConstant { + + private FixedGridConstant() { + } + + public static final double GRANULARITY = 6.25; + public static final int EFFECTIVE_BITS = 8; + public static final double START_EDGE_FREQUENCY = 191.325; + public static final int NB_CHANNELS = 96; + +} diff --git a/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridConstant.java b/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridConstant.java new file mode 100644 index 000000000..b8366d775 --- /dev/null +++ b/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridConstant.java @@ -0,0 +1,23 @@ +/* + * Copyright © 2020 Orange, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.transportpce.common.fixedflex; + +/** + * Constant class common to fixed grid and flex grid. + * + */ +public final class GridConstant { + + public static final String C_BAND = "cband"; + public static final int AVAILABLE_SLOT_VALUE = 255; + public static final int USED_SLOT_VALUE = 0; + + private GridConstant() { + } +} diff --git a/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridUtils.java b/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridUtils.java new file mode 100644 index 000000000..ca3d09548 --- /dev/null +++ b/common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridUtils.java @@ -0,0 +1,45 @@ +/* + * Copyright © 2020 Orange, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.transportpce.common.fixedflex; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; +import org.opendaylight.yangtools.yang.common.Uint16; + +/** + * Util class for grid. + * + */ +public final class GridUtils { + + private GridUtils() { + } + + public static Map initFreqMaps4FixedGrid2Available() { + byte[] byteArray = new byte[FixedGridConstant.NB_CHANNELS]; + Arrays.fill(byteArray, (byte) GridConstant.AVAILABLE_SLOT_VALUE); + Map waveMap = new HashMap<>(); + AvailFreqMaps availFreqMaps = new AvailFreqMapsBuilder().setMapName(GridConstant.C_BAND) + .setFreqMapGranularity(new FrequencyGHz(BigDecimal.valueOf(FixedGridConstant.GRANULARITY))) + .setStartEdgeFreq(new FrequencyTHz(BigDecimal.valueOf(FixedGridConstant.START_EDGE_FREQUENCY))) + .setEffectiveBits(Uint16.valueOf(FixedGridConstant.EFFECTIVE_BITS)) + .setFreqMap(byteArray) + .build(); + waveMap.put(availFreqMaps.key(), availFreqMaps); + return waveMap; + } + +} diff --git a/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java b/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java index 62eeea320..d0b641fd3 100644 --- a/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java +++ b/lighty/src/main/java/io/lighty/controllers/tpce/utils/TPCEUtils.java @@ -151,22 +151,22 @@ public final class TPCEUtils { org.opendaylight.yang.gen.v1.http.org.openroadm.wavelength.map.rev171215.$YangModuleInfoImpl.getInstance(), // network models - org.opendaylight.yang.gen.v1.http.org.openroadm.amplifier.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.external.pluggable.rev181130.$YangModuleInfoImpl - .getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.$YangModuleInfoImpl - .getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.$YangModuleInfoImpl - .getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.roadm.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.$YangModuleInfoImpl.getInstance(), - org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.amplifier.rev191129.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev200529.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.external.pluggable.rev200529.$YangModuleInfoImpl + .getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev200529.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.$YangModuleInfoImpl + .getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.$YangModuleInfoImpl + .getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.roadm.rev191129.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev200529.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.$YangModuleInfoImpl.getInstance(), org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.$YangModuleInfoImpl .getInstance(), org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.$YangModuleInfoImpl @@ -226,7 +226,7 @@ public final class TPCEUtils { .$YangModuleInfoImpl.getInstance(), org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.$YangModuleInfoImpl .getInstance(), - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.$YangModuleInfoImpl.getInstance(), + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.$YangModuleInfoImpl.getInstance(), org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev170119.$YangModuleInfoImpl .getInstance(), diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/OrdLink.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/OrdLink.java index df81082ff..6800d5805 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/OrdLink.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/OrdLink.java @@ -16,9 +16,8 @@ import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.networkmodel.util.LinkIdUtil; import org.opendaylight.transportpce.networkmodel.util.TopologyUtils; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev170818.InitRoadmNodesInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network; @@ -42,13 +41,9 @@ final class OrdLink { LinkId oppositeLinkId = LinkIdUtil.getRdm2RdmOppositeLinkId(input); - //For setting up attributes for openRoadm augment - OMSAttributesBuilder omsAttributesBuilder = new OMSAttributesBuilder().setOppositeLink(oppositeLinkId); - Link1Builder link1Builder = new Link1Builder().setOMSAttributes(omsAttributesBuilder.build()); - //For opposite link augment - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder oppsiteLinkBuilder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() + Link1Builder oppsiteLinkBuilder = + new Link1Builder() .setOppositeLink(oppositeLinkId) .setLinkType(OpenroadmLinkType.ROADMTOROADM); String srcNode = new StringBuilder(input.getRdmANode()).append("-DEG").append(input.getDegANum()).toString(); @@ -59,7 +54,7 @@ final class OrdLink { //IETF link builder LinkBuilder linkBuilder = TopologyUtils.createLink(srcNode, destNode, srcTp, destTp, null); - linkBuilder.addAugmentation(link1Builder.build()); + linkBuilder.addAugmentation(new Link1Builder().setOppositeLink(oppositeLinkId).build()); linkBuilder.addAugmentation(oppsiteLinkBuilder.build()); LinkId linkId = LinkIdUtil.buildLinkId(srcNode, srcTp, destNode, destTp); diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java index f3447e826..a49303462 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/Rdm2XpdrLink.java @@ -22,12 +22,12 @@ import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.networkmodel.util.LinkIdUtil; import org.opendaylight.transportpce.networkmodel.util.TopologyUtils; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev170818.links.input.grouping.LinksInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -138,13 +138,11 @@ final class Rdm2XpdrLink { nodeBldr.setNodeId(new NodeId(srcNode)); } - Link1Builder lnk1bldr = new Link1Builder(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder lnk2bldr - = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() + Link1Builder lnk2bldr + = new Link1Builder() .setLinkType(isXponderInput ? OpenroadmLinkType.XPONDERINPUT : OpenroadmLinkType.XPONDEROUTPUT) .setOppositeLink(LinkIdUtil.getOppositeLinkId(srcNode, srcTp, destNode, destTp)); LinkBuilder linkBuilder = TopologyUtils.createLink(srcNode, destNode, srcTp, destTp, null) - .addAugmentation(lnk1bldr.build()) .addAugmentation(lnk2bldr.build()); LOG.info("Link id in the linkbldr {}", linkBuilder.getLinkId()); @@ -154,12 +152,11 @@ final class Rdm2XpdrLink { NetworkId nwId = new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID); Node node = nodeBldr.build(); - NetworkBuilder nwBuilder = new NetworkBuilder() + return new NetworkBuilder() .setNetworkId(nwId) .withKey(new NetworkKey(nwId)) .addAugmentation(nwBldr1.build()) .setNode(ImmutableMap.of(node.key(),node)); - return nwBuilder; } private static TerminationPoint getTpofNode(String srcNode, String srcTp, DataBroker dataBroker) { diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelService.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelService.java index e4944edb8..51ee4a190 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelService.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelService.java @@ -8,7 +8,7 @@ package org.opendaylight.transportpce.networkmodel.service; import java.util.List; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus; /** diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java index 84b23aae2..ce7a69884 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java @@ -32,9 +32,9 @@ import org.opendaylight.transportpce.networkmodel.util.OpenRoadmTopology; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo.OpenroadmVersion; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/ClliNetwork.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/ClliNetwork.java index ce3f2e58c..5239ae876 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/ClliNetwork.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/ClliNetwork.java @@ -9,8 +9,8 @@ package org.opendaylight.transportpce.networkmodel.util; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.Node1Builder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder; diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java index 30531272d..9dd0ac9da 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java @@ -11,8 +11,8 @@ package org.opendaylight.transportpce.networkmodel.util; import com.google.common.collect.ImmutableMap; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev181130.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev200529.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; @@ -44,8 +44,8 @@ public final class OpenRoadmNetwork { public static Node createNode(String nodeId, NodeInfo nodeInfo) { Node1Builder node1Bldr = new Node1Builder(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder node2Bldr = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder node2Bldr = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder(); /* * Recognize the node type: 1:ROADM, 2:XPONDER diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java index eae69376a..fa95cb7d2 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopology.java @@ -21,46 +21,46 @@ import org.opendaylight.transportpce.networkmodel.dto.TopologyShard; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.Nodes; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPools; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPoolsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPoolsKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODTU4TsAllocated; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODU0; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.OduRateIdentity; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.SwitchingPools; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.SwitchingPoolsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.TpBandwidthSharing; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.TpBandwidthSharingBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.XpdrAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.XpdrAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfaces; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfacesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GE; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GEODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If10GEODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.IfOCHOTU4ODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.SupportedIfCapability; -import org.opendaylight.yang.gen.v1.http.org.openroadm.switching.pool.types.rev181130.SwitchingPoolTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.otn.tp.attributes.OdtuTpnPool; -import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.otn.tp.attributes.OdtuTpnPoolBuilder; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPoolsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPoolsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODTU4TsAllocated; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU0; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.OduRateIdentity; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.SwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.SwitchingPoolsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.TpBandwidthSharing; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.TpBandwidthSharingBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.XpdrAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.XpdrAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfaces; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfacesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GE; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GEODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GEODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCHOTU4ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.SupportedIfCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.switching.pool.types.rev191129.SwitchingPoolTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.otn.tp.attributes.OdtuTpnPool; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.otn.tp.attributes.OdtuTpnPoolBuilder; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; @@ -219,8 +219,8 @@ public final class OpenRoadmOtnTopology { private static List initialiseOtnLinks(String nodeA, String tpA, String nodeZ, String tpZ, OtnLinkType linkType, String linkIdPrefix) { List links = new ArrayList<>(); - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1 tpceLink1 - = new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1Builder() + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1 tpceLink1 + = new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1Builder() .setOtnLinkType(linkType).build(); Link1 otnLink1 = new Link1Builder() .setAvailableBandwidth(Uint32.valueOf(100000)) @@ -241,9 +241,9 @@ public final class OpenRoadmOtnTopology { .addAugmentation(tpceLink1) .addAugmentation(otnLink1) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder( ietfLinkAZBldr.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class)) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)) .setLinkType(OpenroadmLinkType.OTNLINK) .build()); links.add(ietfLinkAZBldr.build()); @@ -253,9 +253,9 @@ public final class OpenRoadmOtnTopology { .addAugmentation(tpceLink1) .addAugmentation(otnLink1) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder( ietfLinkZABldr.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class)) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)) .setLinkType(OpenroadmLinkType.OTNLINK) .build()); links.add(ietfLinkZABldr.build()); @@ -403,8 +403,8 @@ public final class OpenRoadmOtnTopology { Node1 otnNodeAug = new Node1Builder() .setXpdrAttributes(xpdrAttr) .build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 ocnNodeAug = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNodeAug = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() .setNodeType(OpenroadmNodeType.TPDR).build(); // create ietf node augmentation to add TP list Map tpMap = new HashMap<>(); @@ -464,8 +464,8 @@ public final class OpenRoadmOtnTopology { .setXpdrAttributes(xpdrAttr) .setSwitchingPools(switchingPools) .build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 ocnNodeAug = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNodeAug = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() .setNodeType(OpenroadmNodeType.MUXPDR).build(); // create ietf node augmentation to add TP list @@ -531,8 +531,8 @@ public final class OpenRoadmOtnTopology { .setXpdrAttributes(xpdrAttr) .setSwitchingPools(switchingPools) .build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 ocnNodeAug = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNodeAug = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() .setNodeType(OpenroadmNodeType.SWITCH).build(); // create ietf node augmentation to add TP list @@ -585,8 +585,8 @@ public final class OpenRoadmOtnTopology { .setTpSupportedInterfaces(tpSupIf) .setXpdrTpPortConnectionAttributes(xtpcaBldr.build()) .build(); - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1Builder tpceTp1Bldr = - new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1Builder(); + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder tpceTp1Bldr = + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder(); if (OpenroadmTpType.XPONDERNETWORK.equals(tpType)) { TpId tpId = new TpId("XPDR" + node.getXpdrNb() + NETWORK + i); if (node.getXpdrNetConnectionMap().get(tpId.getValue()) != null) { @@ -651,7 +651,7 @@ public final class OpenRoadmOtnTopology { } private static TerminationPoint buildIetfTp( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1Builder tpceTp1Bldr, + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1Builder tpceTp1Bldr, TerminationPoint1 otnTp1, OpenroadmTpType tpType, TpId tpId, Map supportTpMap) { @@ -662,8 +662,8 @@ public final class OpenRoadmOtnTopology { if (supportTpMap != null) { ietfTpBldr.setSupportingTerminationPoint(supportTpMap); } - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1 ocnTp = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 ocnTp = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() .setTpType(tpType).build(); ietfTpBldr.setTpId(tpId) diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java index 3bcc16b9b..58166cabe 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java @@ -19,27 +19,24 @@ import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.common.fixedflex.GridUtils; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.networkmodel.dto.TopologyShard; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.Nodes; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.NodeTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.XpdrNodeTypes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -65,7 +62,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder; import org.opendaylight.yangtools.yang.common.Uint16; -import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -173,8 +169,8 @@ public final class OpenRoadmTopology { private static NodeBuilder createXpdr(String nodeId, String clli, Integer xpdrNb, List mappings, boolean isOtn) { // Create openroadm-network-topo augmentation to set node type to Xponder - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 ocnNode1 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNode1 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() .setNodeType(OpenroadmNodeType.XPONDER).build(); // Create ietf node setting supporting-node data NodeBuilder ietfNodeBldr = createTopoLayerNode(nodeId, clli); @@ -191,13 +187,13 @@ public final class OpenRoadmTopology { if (!isOtn) { ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); // Add openroadm-network-topology tp augmentations - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 - .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm - .common.network.rev181130.TerminationPoint1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 + .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.TerminationPoint1Builder(); if (m.getPortQual().equals("xpdr-network")) { ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK); - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1 tpceTp1 = - new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129 + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1 tpceTp1 = + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019 .TerminationPoint1Builder().setAssociatedConnectionMapPort(m.getConnectionMapLcp()).build(); ietfTpBldr .addAugmentation(ocnTp1Bldr.build()) @@ -206,8 +202,8 @@ public final class OpenRoadmTopology { tpMap.put(ietfTp.key(),ietfTp); } else if (m.getPortQual().equals("xpdr-client")) { ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERCLIENT); - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1 tpceTp1 = - new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129 + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1 tpceTp1 = + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019 .TerminationPoint1Builder().setAssociatedConnectionMapPort(m.getConnectionMapLcp()).build(); ietfTpBldr .addAugmentation(ocnTp1Bldr.build()) @@ -218,9 +214,10 @@ public final class OpenRoadmTopology { } else { if (m.getPortQual().equals("xpdr-network") || m.getPortQual().equals("switch-network")) { ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 - .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm - .common.network.rev181130.TerminationPoint1Builder().setTpType(OpenroadmTpType.XPONDERNETWORK); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 + .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.TerminationPoint1Builder() + .setTpType(OpenroadmTpType.XPONDERNETWORK); ietfTpBldr .addAugmentation(ocnTp1Bldr.build()); TerminationPoint ietfTp = ietfTpBldr.build(); @@ -244,9 +241,9 @@ public final class OpenRoadmTopology { for (Mapping m : degListMap) { ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); // Add openroadm-common-network tp type augmentations - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 - .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common - .network.rev181130.TerminationPoint1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 + .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.TerminationPoint1Builder(); switch (m.getPortDirection()) { case "bidirectional": ocnTp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXTTP); @@ -266,8 +263,8 @@ public final class OpenRoadmTopology { } // Add CTP to tp-list ietfTpBldr = createTpBldr(degNb + "-CTP-TXRX"); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1 ocnTp1 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 ocnTp1 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() .setTpType(OpenroadmTpType.DEGREETXRXCTP).build(); ietfTpBldr.addAugmentation(ocnTp1); TerminationPoint ietfTp = ietfTpBldr.build(); @@ -275,7 +272,8 @@ public final class OpenRoadmTopology { // set degree-attributes DegreeAttributes degAtt = new DegreeAttributesBuilder() .setDegreeNumber(Uint16.valueOf(degNb.split("DEG")[1])) - .setAvailableWavelengths(create96AvalWaveDegree()).build(); + .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()) + .build(); // Create ietf node augmentation to support ietf tp-list org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 .Node1Builder ietfNode1 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology @@ -285,8 +283,8 @@ public final class OpenRoadmTopology { String nodeIdtopo = new StringBuilder().append(nodeId).append("-").append(degNb).toString(); Node1 ontNode1 = new Node1Builder().setDegreeAttributes(degAtt).build(); // Create openroadm-common-network augmentation to set node type to DEGREE - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 ocnNode1 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNode1 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() .setNodeType(OpenroadmNodeType.DEGREE).build(); // Create ietf node setting supporting-node data return createTopoLayerNode(nodeId, clli) @@ -304,9 +302,9 @@ public final class OpenRoadmTopology { for (Mapping m : srgListMap) { ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); // Add openroadm-common-network tp type augmentations - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 - .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common - .network.rev181130.TerminationPoint1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 + .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.TerminationPoint1Builder(); switch (m.getPortDirection()) { case "bidirectional": ocnTp1Bldr.setTpType(OpenroadmTpType.SRGTXRXPP); @@ -326,18 +324,20 @@ public final class OpenRoadmTopology { } // Add CP to tp-list ietfTpBldr = createTpBldr(srgNb + "-CP-TXRX"); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 - .TerminationPoint1 ocnTp1 = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network - .rev181130.TerminationPoint1Builder().setTpType(OpenroadmTpType.SRGTXRXCP).build(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 + .TerminationPoint1 ocnTp1 = new org.opendaylight.yang.gen.v1 + .http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() + .setTpType(OpenroadmTpType.SRGTXRXCP).build(); ietfTpBldr.addAugmentation(ocnTp1); TerminationPoint ietfTp = ietfTpBldr.build(); tpMap.put(ietfTp.key(),ietfTp); // Create openroadm-common-network augmentation to set node type to SRG - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 ocnNode1 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNode1 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() .setNodeType(OpenroadmNodeType.SRG).build(); // set srg-attributes - SrgAttributes srgAttr = new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()).build(); + SrgAttributes srgAttr = new SrgAttributesBuilder() + .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()).build(); Node1 ontNode1 = new Node1Builder().setSrgAttributes(srgAttr).build(); // Create ietf node augmentation to support ietf tp-list org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 @@ -414,10 +414,10 @@ public final class OpenRoadmTopology { .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) .findFirst().get().getTpId().getValue(); Link1Builder ocnAzLinkBldr = new Link1Builder(); - int srcNodeType = nodes.get(i).augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common - .network.rev181130.Node1.class).getNodeType().getIntValue(); - int destNodeType = nodes.get(j).augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common - .network.rev181130.Node1.class).getNodeType().getIntValue(); + int srcNodeType = nodes.get(i).augmentation(org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.Node1.class).getNodeType().getIntValue(); + int destNodeType = nodes.get(j).augmentation(org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.Node1.class).getNodeType().getIntValue(); if (srcNodeType == 11 && destNodeType == 11) { ocnAzLinkBldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); } else if (srcNodeType == 11 && destNodeType == 12) { @@ -477,11 +477,10 @@ public final class OpenRoadmTopology { networkTransactionService.read(LogicalDatastoreType.CONFIGURATION,linkIID.build()).get(); if (link.isPresent()) { LinkBuilder linkBuilder = new LinkBuilder(link.get()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder link1Builder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder( - linkBuilder.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 - .Link1.class)) - .setAdministrativeState(State.OutOfService); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder link1Builder = + new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder( + linkBuilder.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529 + .Link1.class)); linkBuilder.removeAugmentation(Link1.class) .addAugmentation(link1Builder.build()); networkTransactionService.merge(LogicalDatastoreType.CONFIGURATION, linkIID.build(), @@ -500,40 +499,4 @@ public final class OpenRoadmTopology { } } - private static Map create96AvalWaveDegree() { - Map waveMap = new HashMap<>(); - - for (int i = 1; i < 97; i++) { - AvailableWavelengthsBuilder avalBldr = new AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(i)) - .withKey(new AvailableWavelengthsKey(Uint32.valueOf(i))); - AvailableWavelengths aval = avalBldr.build(); - waveMap.put(aval.key(),aval); - } - - return waveMap; - } - - private static Map create96AvalWaveSrg() { - - Map waveMap = new HashMap<>(); - - for (int i = 1; i < 97; i++) { - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsBuilder avalBldr = - new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(i)) - .withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsKey(Uint32.valueOf(i))); - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths - aval = avalBldr.build(); - waveMap.put(aval.key(),aval); - } - return waveMap; - } } diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java index af2646f10..acf77868f 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TopologyUtils.java @@ -13,8 +13,8 @@ import java.util.concurrent.TimeoutException; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.network.NetworkTransactionService; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TpceNetwork.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TpceNetwork.java index ab8e1accf..fdd178c4c 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TpceNetwork.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/TpceNetwork.java @@ -14,9 +14,9 @@ import java.util.concurrent.TimeoutException; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.network.NetworkTransactionService; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.NetworkTypes1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.networks.network.network.types.ClliNetworkBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.networks.network.network.types.OpenroadmCommonNetworkBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.networks.network.network.types.ClliNetworkBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.networks.network.network.types.OpenroadmCommonNetworkBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network; @@ -74,8 +74,8 @@ public class TpceNetwork { case NetworkUtils.UNDERLAY_NETWORK_ID: case NetworkUtils.OVERLAY_NETWORK_ID: case NetworkUtils.OTN_NETWORK_ID: - Augmentation ordTopology = new org.opendaylight.yang.gen.v1.http.org.openroadm.common - .network.rev181130.NetworkTypes1Builder() + Augmentation ordTopology = new org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.NetworkTypes1Builder() .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build()) .build(); networkTypesBldr.addAugmentation(ordTopology); diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/ClliNetworkTest.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/ClliNetworkTest.java index b0d8b4ca6..048e5b695 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/ClliNetworkTest.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/ClliNetworkTest.java @@ -14,8 +14,8 @@ import org.junit.Test; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo.OpenroadmVersion; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfoBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.Node1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; @@ -38,7 +38,7 @@ public class ClliNetworkTest { assertNull("SupportingNode should be null", createdNode.getSupportingNode()); assertEquals("Node key should be equals to NodeClliId ", new NodeKey(new NodeId("NodeClliId")), createdNode.key()); - assertEquals("Expect org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.Node1 augmentation", + assertEquals("Expect org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.Node1 augmentation", clliAugmentation, createdNode.augmentation(Node1.class)); } diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetworkTest.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetworkTest.java index 94e289842..42891b355 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetworkTest.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetworkTest.java @@ -19,7 +19,7 @@ import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo.OpenroadmVersion; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfoBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopologyTest.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopologyTest.java index d428fd88a..7086bbc97 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopologyTest.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmOtnTopologyTest.java @@ -40,23 +40,23 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingKey; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfoBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPools; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.SwitchingPools; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GE; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GEODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If10GEODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.IfOCHOTU4ODU4; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.SwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GE; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GEODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GEODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCHOTU4ODU4; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; @@ -128,7 +128,7 @@ public class OpenRoadmOtnTopologyTest { assertEquals( Uint16.valueOf(1), node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1.class) .getXpdrAttributes() .getXpdrNumber()); //tests list of TPs @@ -147,7 +147,7 @@ public class OpenRoadmOtnTopologyTest { "only If100GE interface capabitily expected", 1, tps.get(0).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getTpSupportedInterfaces() .getSupportedInterfaceCapability() @@ -155,7 +155,7 @@ public class OpenRoadmOtnTopologyTest { assertEquals( If100GE.class.getName(), tps.get(0).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getTpSupportedInterfaces().nonnullSupportedInterfaceCapability() .values().stream().findFirst() @@ -164,7 +164,7 @@ public class OpenRoadmOtnTopologyTest { "first TP must be of type client", OpenroadmTpType.XPONDERCLIENT, tps.get(0).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1.class) .getTpType()); //tests network tp @@ -176,7 +176,7 @@ public class OpenRoadmOtnTopologyTest { "only IfOCHOTU4ODU4 interface capabitily expected", 1, tps.get(2).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getTpSupportedInterfaces() .getSupportedInterfaceCapability() @@ -184,7 +184,7 @@ public class OpenRoadmOtnTopologyTest { assertEquals( IfOCHOTU4ODU4.class.getName(), tps.get(2).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getTpSupportedInterfaces() .getSupportedInterfaceCapability() @@ -196,7 +196,7 @@ public class OpenRoadmOtnTopologyTest { "the rate should be ODU4", ODU4.class.getName(), tps.get(2).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getRate() @@ -205,7 +205,7 @@ public class OpenRoadmOtnTopologyTest { "third TP must be of type network", OpenroadmTpType.XPONDERNETWORK, tps.get(2).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1.class) .getTpType()); } @@ -257,20 +257,20 @@ public class OpenRoadmOtnTopologyTest { assertEquals( OpenroadmLinkType.OTNLINK, sortedLinks.get(0).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class) .getLinkType()); assertEquals( "opposite link must be present", "OTU4-SPDRZ-XPDR1-XPDR1-NETWORK1toSPDRA-XPDR1-XPDR1-NETWORK1", sortedLinks.get(0).augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class) .getOppositeLink() .getValue()); assertEquals( "otn link type should be OTU4", OtnLinkType.OTU4, sortedLinks.get(0).augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1.class) + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1.class) .getOtnLinkType()); } @@ -330,14 +330,14 @@ public class OpenRoadmOtnTopologyTest { OpenroadmLinkType.OTNLINK, sortedLinks.get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class) .getLinkType()); assertEquals( "opposite link must be present", "ODU4-SPDRZ-XPDR1-XPDR1-NETWORK1toSPDRA-XPDR1-XPDR1-NETWORK1", sortedLinks.get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class) .getOppositeLink() .getValue()); assertEquals( @@ -345,7 +345,7 @@ public class OpenRoadmOtnTopologyTest { OtnLinkType.ODTU4, sortedLinks.get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1.class) + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1.class) .getOtnLinkType()); assertEquals("list of TPs should contain 2 updated TPs", 2, topoShard.getTps().size()); @@ -353,7 +353,7 @@ public class OpenRoadmOtnTopologyTest { "after ODU4 creation, its termination point should contain a TsPool list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool()); @@ -362,7 +362,7 @@ public class OpenRoadmOtnTopologyTest { 80, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool() @@ -371,7 +371,7 @@ public class OpenRoadmOtnTopologyTest { "after ODU4 creation, its termination point should contain a TpnPool list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -382,7 +382,7 @@ public class OpenRoadmOtnTopologyTest { 80, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -437,7 +437,7 @@ public class OpenRoadmOtnTopologyTest { "after ODU4 deletion, its termination points should not contain any TsPool list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool()); @@ -445,7 +445,7 @@ public class OpenRoadmOtnTopologyTest { "after ODU4 deletion, its termination points should not contain any TpnPool list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool()); @@ -495,7 +495,7 @@ public class OpenRoadmOtnTopologyTest { 72, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool() @@ -504,7 +504,7 @@ public class OpenRoadmOtnTopologyTest { "trib slot 1-8 should no longer be present in Trib slot list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool(), @@ -513,7 +513,7 @@ public class OpenRoadmOtnTopologyTest { "trib slot 9 should always be present in trib slot list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool(), @@ -523,7 +523,7 @@ public class OpenRoadmOtnTopologyTest { 79, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -534,7 +534,7 @@ public class OpenRoadmOtnTopologyTest { "trib port 1 should no longer be present", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -565,7 +565,7 @@ public class OpenRoadmOtnTopologyTest { 80, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool() @@ -574,7 +574,7 @@ public class OpenRoadmOtnTopologyTest { "after 10G deletion, trib slot list should contain items 1-8", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool(), @@ -584,7 +584,7 @@ public class OpenRoadmOtnTopologyTest { 80, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -595,7 +595,7 @@ public class OpenRoadmOtnTopologyTest { "after 10G deletion, trib port list should contain items 1", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -633,7 +633,7 @@ public class OpenRoadmOtnTopologyTest { 79, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool() @@ -642,7 +642,7 @@ public class OpenRoadmOtnTopologyTest { "trib slot 1 should no longer be present in Trib slot list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool(), @@ -651,7 +651,7 @@ public class OpenRoadmOtnTopologyTest { "trib slot 2 should always be present in Trib slot list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes().getTsPool(), hasItem(Uint16.valueOf(2))); @@ -660,7 +660,7 @@ public class OpenRoadmOtnTopologyTest { 79, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -671,7 +671,7 @@ public class OpenRoadmOtnTopologyTest { "trib port 1 should no longer be present in Trib port list", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -705,7 +705,7 @@ public class OpenRoadmOtnTopologyTest { 80, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool() @@ -714,7 +714,7 @@ public class OpenRoadmOtnTopologyTest { "after 1G deletion, trib slot list should contain items 1 and 2", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getTsPool(), @@ -724,7 +724,7 @@ public class OpenRoadmOtnTopologyTest { 80, topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -735,7 +735,7 @@ public class OpenRoadmOtnTopologyTest { "after 1G deletion, trib port list should contain items 1", topoShard.getTps().get(0) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getOdtuTpnPool().values().stream().findFirst() @@ -778,7 +778,7 @@ public class OpenRoadmOtnTopologyTest { private void checkSpdrNode(Node node) { Uint16 xpdrNb = node - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1.class) + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1.class) .getXpdrAttributes().getXpdrNumber(); assertEquals("SPDR-SA1-XPDR" + xpdrNb, node.getNodeId().getValue()); if (xpdrNb.equals(Uint16.valueOf(1))) { @@ -800,7 +800,7 @@ public class OpenRoadmOtnTopologyTest { checkSpdrSwitchingPools( xpdrNb, node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1.class) .getSwitchingPools()); List tpList = node.augmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class) @@ -881,7 +881,7 @@ public class OpenRoadmOtnTopologyTest { IfOCHOTU4ODU4.class, tpList.get(4) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getTpSupportedInterfaces() .getSupportedInterfaceCapability().values().stream().findFirst() @@ -892,7 +892,7 @@ public class OpenRoadmOtnTopologyTest { ODU4.class, tpList.get(4) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getRate()); @@ -918,7 +918,7 @@ public class OpenRoadmOtnTopologyTest { If10GEODU2e.class, tpList.get(2) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getTpSupportedInterfaces() .getSupportedInterfaceCapability().values().stream().findFirst() @@ -929,7 +929,7 @@ public class OpenRoadmOtnTopologyTest { ODU2e.class, tpList.get(2) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getRate()); @@ -938,7 +938,7 @@ public class OpenRoadmOtnTopologyTest { OpenroadmTpType.XPONDERCLIENT, tpList.get(2) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1.class) .getTpType()); assertEquals( @@ -946,7 +946,7 @@ public class OpenRoadmOtnTopologyTest { OpenroadmTpType.XPONDERNETWORK, tpList.get(4) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1.class) .getTpType()); } else if (xpdrNb.equals(Uint16.valueOf(2))) { @@ -960,7 +960,7 @@ public class OpenRoadmOtnTopologyTest { If100GEODU4.class, tpList.get(2) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getTpSupportedInterfaces() .getSupportedInterfaceCapability().values().stream().findFirst() @@ -971,7 +971,7 @@ public class OpenRoadmOtnTopologyTest { ODU4.class, tpList.get(2) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1.class) .getXpdrTpPortConnectionAttributes() .getRate()); @@ -979,14 +979,14 @@ public class OpenRoadmOtnTopologyTest { "TP should be of type client", OpenroadmTpType.XPONDERCLIENT, tpList.get(2) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1.class) .getTpType()); assertEquals( "TP should be of type network", OpenroadmTpType.XPONDERNETWORK, tpList.get(6) .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1.class) .getTpType()); } diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopologyTest.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopologyTest.java index 38bd5ea08..28bcb263d 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopologyTest.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopologyTest.java @@ -19,6 +19,8 @@ import static org.mockito.Mockito.when; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.concurrent.ExecutionException; @@ -36,19 +38,21 @@ import org.mockito.stubbing.Answer; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.common.fixedflex.FixedGridConstant; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.networkmodel.dto.TopologyShard; import org.opendaylight.transportpce.networkmodel.util.test.NetworkmodelTestUtil; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.Nodes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -190,8 +194,8 @@ public class OpenRoadmTopologyTest { String srcTp = "DEG1-CTP-TXRX"; String destTp = "SRG1-CP-TXRX"; LinkId linkId = LinkIdUtil.buildLinkId(srcNode, srcTp, dstNode, destTp); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1 link1 = - new Link1Builder().setAdministrativeState(State.InService).build(); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1 link1 = + new Link1Builder().build(); Link link = new LinkBuilder() .setLinkId(linkId) .setSource(new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp).build()) @@ -268,11 +272,15 @@ public class OpenRoadmTopologyTest { assertEquals("ROADMA01", supportingNodes.get(1).getNodeRef().getValue()); assertEquals(OpenroadmNodeType.DEGREE, node.augmentation(Node1.class).getNodeType()); assertEquals(Uint16.valueOf(nodeNb), node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1.class) .getDegreeAttributes().getDegreeNumber()); - assertEquals(96, node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class) - .getDegreeAttributes().getAvailableWavelengths().size()); + List availFreqMapsValues = new ArrayList<>(node.augmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1.class) + .getDegreeAttributes().getAvailFreqMaps().values()); + assertEquals(FixedGridConstant.NB_CHANNELS, availFreqMapsValues.get(0).getFreqMap().length); + byte[] byteArray = new byte[FixedGridConstant.NB_CHANNELS]; + Arrays.fill(byteArray, (byte) GridConstant.AVAILABLE_SLOT_VALUE); + assertEquals(Arrays.toString(byteArray), Arrays.toString(availFreqMapsValues.get(0).getFreqMap())); List tps = node.augmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class) .nonnullTerminationPoint().values().stream() @@ -296,9 +304,13 @@ public class OpenRoadmTopologyTest { assertEquals("openroadm-network", supportingNodes.get(1).getNetworkRef().getValue()); assertEquals("ROADMA01", supportingNodes.get(1).getNodeRef().getValue()); assertEquals(OpenroadmNodeType.SRG, node.augmentation(Node1.class).getNodeType()); - assertEquals(96, node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class) - .getSrgAttributes().getAvailableWavelengths().size()); + List availFreqMapsValues = new ArrayList<>(node.augmentation( + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1.class) + .getSrgAttributes().getAvailFreqMaps().values()); + assertEquals(FixedGridConstant.NB_CHANNELS, availFreqMapsValues.get(0).getFreqMap().length); + byte[] byteArray = new byte[FixedGridConstant.NB_CHANNELS]; + Arrays.fill(byteArray, (byte) GridConstant.AVAILABLE_SLOT_VALUE); + assertEquals(Arrays.toString(byteArray), Arrays.toString(availFreqMapsValues.get(0).getFreqMap())); List tps = node.augmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class) .nonnullTerminationPoint().values().stream() @@ -331,12 +343,12 @@ public class OpenRoadmTopologyTest { assertEquals("XPDR1-CLIENT1", tps.get(0).getTpId().getValue()); assertEquals(OpenroadmTpType.XPONDERCLIENT, tps.get(0).augmentation(TerminationPoint1.class).getTpType()); assertEquals("XPDR1-NETWORK1", tps.get(0).augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1.class) + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1.class) .getAssociatedConnectionMapPort()); assertEquals("XPDR1-NETWORK1", tps.get(2).getTpId().getValue()); assertEquals(OpenroadmTpType.XPONDERNETWORK, tps.get(2).augmentation(TerminationPoint1.class).getTpType()); assertEquals("XPDR1-CLIENT1", tps.get(2).augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1.class) + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1.class) .getAssociatedConnectionMapPort()); } diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/TpceNetworkTest.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/TpceNetworkTest.java index 1e14b0b69..20b4d6dbc 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/TpceNetworkTest.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/TpceNetworkTest.java @@ -17,10 +17,10 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; import org.opendaylight.transportpce.common.network.RequestProcessor; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.NetworkTypes1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.NetworkTypes1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.networks.network.network.types.ClliNetworkBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.networks.network.network.types.OpenroadmCommonNetworkBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.networks.network.network.types.ClliNetworkBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.networks.network.network.types.OpenroadmCommonNetworkBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network; @@ -94,20 +94,20 @@ public class TpceNetworkTest extends AbstractTest { assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes() .augmentation(NetworkTypes1.class)); assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes() - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .NetworkTypes1.class)); } private void commonNetworkAugmentationTest(Network createdOrdNetwork) { Augmentation ordComNet - = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1Builder() + = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.NetworkTypes1Builder() .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build()) .build(); assertNotNull("common-network augmentation should not be null", createdOrdNetwork.getNetworkTypes() .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class)); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.NetworkTypes1.class)); assertEquals("bad common-network augmentation for network-types", ordComNet, createdOrdNetwork.getNetworkTypes() .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class)); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.NetworkTypes1.class)); } } diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java index e304bda94..854bfeb12 100644 --- a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java +++ b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java @@ -19,26 +19,26 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingKey; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfoBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.PortQual; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODTU4TsAllocated; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfaces; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfacesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.IfOCHOTU4ODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.otn.tp.attributes.OdtuTpnPool; -import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.otn.tp.attributes.OdtuTpnPoolBuilder; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODTU4TsAllocated; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfaces; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfacesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCHOTU4ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.otn.tp.attributes.OdtuTpnPool; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.otn.tp.attributes.OdtuTpnPoolBuilder; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId; @@ -107,12 +107,12 @@ public final class NetworkmodelTestUtil { .setOppositeLink(new LinkId(prefix + "SPDRZ-XPDR1-XPDR1-NETWORK1toSPDRA-XPDR1-XPDR1-NETWORK1")) .build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Link1Builder() + new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1Builder() .setAvailableBandwidth(Uint32.valueOf(availBW)) .setUsedBandwidth(Uint32.valueOf(100000 - availBW)) .build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1Builder() + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1Builder() .setOtnLinkType(type) .build()) .build(); @@ -130,12 +130,12 @@ public final class NetworkmodelTestUtil { .setOppositeLink(new LinkId(prefix + "SPDRA-XPDR1-XPDR1-NETWORK1toSPDRZ-XPDR1-XPDR1-NETWORK1")) .build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Link1Builder() + new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1Builder() .setAvailableBandwidth(Uint32.valueOf(availBW)) .setUsedBandwidth(Uint32.valueOf(100000 - availBW)) .build()) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1Builder() + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1Builder() .setOtnLinkType(type) .build()) .build(); @@ -188,7 +188,7 @@ public final class NetworkmodelTestUtil { .setSupportingTerminationPoint(supTermPointMapA) .addAugmentation(otnTp1) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() .setTpType(OpenroadmTpType.XPONDERNETWORK) .build()) .build(); @@ -204,7 +204,7 @@ public final class NetworkmodelTestUtil { .setSupportingTerminationPoint(supTermPointMapZ) .addAugmentation(otnTp1) .addAugmentation( - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() .setTpType(OpenroadmTpType.XPONDERNETWORK) .build()) .build(); diff --git a/olm/src/main/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImpl.java b/olm/src/main/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImpl.java index 1b42d22a2..dbd63ded1 100644 --- a/olm/src/main/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImpl.java +++ b/olm/src/main/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImpl.java @@ -64,11 +64,11 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.get.pm.output.Measurements; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo.OpenroadmVersion; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.RatioDB; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.Interface1; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.Interface1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.ots.container.Ots; diff --git a/olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmPowerServiceRpcImplUtil.java b/olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmPowerServiceRpcImplUtil.java index 3927bd22f..ffcf482b0 100644 --- a/olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmPowerServiceRpcImplUtil.java +++ b/olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmPowerServiceRpcImplUtil.java @@ -22,8 +22,8 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.ServicePowerSetupInputBuilder; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.ServicePowerTurndownInput; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.ServicePowerTurndownInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity; import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum; import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.olm.get.pm.input.ResourceIdentifierBuilder; diff --git a/olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmTransactionUtils.java b/olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmTransactionUtils.java index d8c66d391..a018dc633 100644 --- a/olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmTransactionUtils.java +++ b/olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmTransactionUtils.java @@ -19,24 +19,23 @@ import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.FiberPmd; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.Interface; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.InterfaceKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice; -import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLinkKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLinkKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.amplified.link.SectionElementBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.OMSAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.AmplifiedLinkBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.SpanBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmList; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmListBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.group.CurrentPm; @@ -120,17 +119,16 @@ public final class OlmTransactionUtils { ietfNodeMap.put(ietfNodeC.key(),ietfNodeC); Map amplifiedLinkValues = new HashMap<>(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al = + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .AmplifiedLinkBuilder() .setSectionElement(new SectionElementBuilder().setSectionElement( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .amplified.link.section.element.section.element.SpanBuilder().setSpan( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link .attributes.amplified.link.section.element.section.element.span.SpanBuilder() .setAdministrativeState(AdminStates.InService) .setAutoSpanloss(true) - .setClfi("clfi") .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) .setLinkConcatenation(linkConcentationValues) .setSpanlossBase(new RatioDB(BigDecimal.ONE)) @@ -140,17 +138,16 @@ public final class OlmTransactionUtils { .build()) .setSectionEltNumber(Uint16.valueOf(1)) .build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al2 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al2 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .AmplifiedLinkBuilder() .setSectionElement(new SectionElementBuilder().setSectionElement( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .amplified.link.section.element.section.element.SpanBuilder().setSpan( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link .attributes.amplified.link.section.element.section.element.span.SpanBuilder() .setAdministrativeState(AdminStates.InService) .setAutoSpanloss(true) - .setClfi("clfi") .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) .setLinkConcatenation(linkConcentationValues) .setSpanlossBase(new RatioDB(BigDecimal.ONE)) @@ -163,34 +160,24 @@ public final class OlmTransactionUtils { amplifiedLinkValues.put(al.key(),al); amplifiedLinkValues.put(al2.key(),al2); Map>, Augmentation> map = Collections.emptyMap(); - Augmentation aug11 = new Link1Builder().setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) + Augmentation aug11 = new Link1Builder() .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) .setOMSAttributes(new OMSAttributesBuilder() .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build()) - .setOppositeLink(new LinkId("link 1")) .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 aug12 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() + .build()) + .build(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1 aug12 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder() .setLinkType(OpenroadmLinkType.ROADMTOROADM).build(); Augmentation aug21 = new Link1Builder() - .setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) .setOMSAttributes(new OMSAttributesBuilder() .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build()) - .setOppositeLink(new LinkId("link 1")) - .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 aug22 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() + .setSpan(new SpanBuilder().build()).build()) + .build(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1 aug22 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder() .setLinkType(OpenroadmLinkType.ROADMTOROADM).build(); // create the roadm-to-roadm link to be measured Link roadm2roadmLink = new LinkBuilder().setLinkId(new LinkId("ROADM-A1-to-ROADM-C1")) diff --git a/olm/src/test/java/org/opendaylight/transportpce/olm/util/TransactionUtils.java b/olm/src/test/java/org/opendaylight/transportpce/olm/util/TransactionUtils.java index 12be96c27..7fa6f7dce 100644 --- a/olm/src/test/java/org/opendaylight/transportpce/olm/util/TransactionUtils.java +++ b/olm/src/test/java/org/opendaylight/transportpce/olm/util/TransactionUtils.java @@ -31,21 +31,19 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingKey; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo.OpenroadmVersion; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfoBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; -import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLinkKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.FiberPmd; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; +import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLinkKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.amplified.link.SectionElementBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.OMSAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.AmplifiedLinkBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.SpanBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; @@ -243,16 +241,15 @@ public final class TransactionUtils { linkConcentationValues.put(linkConcatenation2.key(),linkConcatenation2); Map amplifiedLinkValues = new HashMap<>(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al = + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder() - .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link + .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link .attributes.amplified.link.section.element.section.element.SpanBuilder() - .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link + .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link .attributes.amplified.link.section.element.section.element.span.SpanBuilder() .setAdministrativeState(AdminStates.InService) .setAutoSpanloss(true) - .setClfi("clfi") .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) .setLinkConcatenation(linkConcentationValues) .setSpanlossBase(new RatioDB(BigDecimal.ONE)) @@ -261,16 +258,15 @@ public final class TransactionUtils { .build()) .build()) .setSectionEltNumber(Uint16.valueOf(1)).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al2 = new - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al2 = new + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder() - .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link + .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link .attributes.amplified.link.section.element.section.element.SpanBuilder() - .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link + .setSpan(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link .attributes.amplified.link.section.element.section.element.span.SpanBuilder() .setAdministrativeState(AdminStates.InService) .setAutoSpanloss(true) - .setClfi("clfi") .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) .setLinkConcatenation(linkConcentationValues) .setSpanlossBase(new RatioDB(BigDecimal.ONE)) @@ -282,30 +278,20 @@ public final class TransactionUtils { amplifiedLinkValues.put(al.key(),al); amplifiedLinkValues.put(al2.key(),al2); Map>, Augmentation> map = Collections.emptyMap(); - Augmentation aug1 = new Link1Builder().setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) + Augmentation aug1 = new Link1Builder() .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) - .setLinkType(OpenroadmLinkType.ROADMTOROADM) .setOMSAttributes(new OMSAttributesBuilder() .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build()) - .setOppositeLink(new LinkId("link 1")) .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); - Augmentation aug2 = new Link1Builder().setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) + .build()) + .build(); + Augmentation aug2 = new Link1Builder() .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) - .setLinkType(OpenroadmLinkType.ROADMTOROADM) .setOMSAttributes(new OMSAttributesBuilder() .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build()) - .setOppositeLink(new LinkId("link 1")) .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); + .build()) + .build(); Map supportingLinks = new HashMap<>(); SupportingLink supportingLink = new SupportingLinkBuilder().setLinkRef("ref1") diff --git a/ordmodels/network/src/main/yang/org-openroadm-amplifier@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-amplifier@2019-11-29.yang similarity index 92% rename from ordmodels/network/src/main/yang/org-openroadm-amplifier@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-amplifier@2019-11-29.yang index 2db0c3082..be235b3da 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-amplifier@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-amplifier@2019-11-29.yang @@ -5,11 +5,11 @@ module org-openroadm-amplifier { import org-openroadm-common-amplifier-types { prefix org-openroadm-common-amplifier-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-common-link-types { prefix org-openroadm-common-link-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } organization @@ -46,6 +46,14 @@ module org-openroadm-amplifier { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -145,5 +153,11 @@ module org-openroadm-amplifier { "End Of Life Total input power at maximum load used for amplifier and VOA setting extracted from corresponding device OTS interface container"; } + leaf egress-average-channel-power { + type org-openroadm-common-link-types:power-dBm; + config true; + description + "Based upon the total max power across the 4.8 THz passband."; + } } } diff --git a/ordmodels/network/src/main/yang/org-openroadm-clli-network@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-clli-network@2019-11-29.yang similarity index 95% rename from ordmodels/network/src/main/yang/org-openroadm-clli-network@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-clli-network@2019-11-29.yang index 62e778e6b..be1c3c673 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-clli-network@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-clli-network@2019-11-29.yang @@ -41,6 +41,10 @@ module org-openroadm-clli-network { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2019-11-29 { + description + "Version 6.1.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -60,8 +64,9 @@ module org-openroadm-clli-network { network"; } } + augment "/nd:networks/nd:network/nd:node" { - when "../nd:network-types/clli-network"; + when '../nd:network-types/cn:clli-network'; description "Augment the generic network node with Open ROADM attributes."; leaf clli { diff --git a/ordmodels/network/src/main/yang/org-openroadm-common-network@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-common-network@2020-05-29.yang similarity index 75% rename from ordmodels/network/src/main/yang/org-openroadm-common-network@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-common-network@2020-05-29.yang index b42bea842..fbbab3cab 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-common-network@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-common-network@2020-05-29.yang @@ -13,15 +13,15 @@ module org-openroadm-common-network { } import org-openroadm-network-types { prefix org-openroadm-network-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-common-state-types { prefix org-openroadm-common-state-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-equipment-states-types { prefix org-openroadm-equipment-states-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } organization @@ -55,6 +55,30 @@ module org-openroadm-common-network { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-05-31 { + description + "Version 5.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -81,8 +105,9 @@ module org-openroadm-common-network { "The presence of the container node indicates Open ROADM common network"; } } + augment "/nd:networks/nd:network/nd:node" { - when "../nd:network-types/openroadm-common-network"; + when '../nd:network-types/cnet:openroadm-common-network'; description "Augment the generic network node with Open ROADM common attributes."; leaf node-type { @@ -90,23 +115,44 @@ module org-openroadm-common-network { description "A component of the network topology. Once the node-type is configured, it should not be modified."; } - leaf node-status { - type org-openroadm-network-types:openroadm-node-status; - status deprecated; - } leaf lifecycle-state { type org-openroadm-common-state-types:lifecycle-state; description "Lifecycle State of a node. Whether it is planned, deployed, in maintenance, etc."; } + leaf operational-state { + type org-openroadm-common-state-types:state; + } + leaf administrative-state { + type org-openroadm-equipment-states-types:admin-states; + } } + augment "/nd:networks/nd:network/nd:node/nwt:termination-point" { - when "../../nd:network-types/openroadm-common-network"; + when '../../nd:network-types/cnet:openroadm-common-network'; leaf tp-type { type org-openroadm-network-types:openroadm-tp-type; description "The type of a termination point in the ROADM topology."; } + leaf physical-tp { + type boolean; + mandatory false; + description + "Applies to Termination Points that map to physical ports or slots on circuit packs. + Set to True when the termination point maps to ports of an existing circuit-pack, + False, when mapped to a slot (pluggable optics Holder) --> virtual tp. + This attribute is not present for other Termination Points."; + } + leaf-list associated-connection-map-tp { + type leafref { + path "/nd:networks/nd:network/nd:node/nwt:termination-point/nwt:tp-id"; + } + description + "Used to identify relationships between client and network ports in transponders and + uni-directional regens. Provides the list of tps the tp is connected to, as defined + in the device connection map."; + } leaf eqpt-srg-id { type uint32; description @@ -117,9 +163,16 @@ module org-openroadm-common-network { description "Lifecycle State of a termination point. Whether it is planned, deployed, in maintenance, etc."; } + leaf operational-state { + type org-openroadm-common-state-types:state; + } + leaf administrative-state { + type org-openroadm-equipment-states-types:admin-states; + } } + augment "/nd:networks/nd:network/nwt:link" { - when "../nd:network-types/openroadm-common-network"; + when '../nd:network-types/cnet:openroadm-common-network'; description "This augmentation defines common link attributes in the Open ROADM common network"; leaf link-type { @@ -140,9 +193,11 @@ module org-openroadm-common-network { type decimal64 { fraction-digits 2; } + units "km"; } leaf link-latency { type uint32; + units "ms"; description "Latency of a link"; } diff --git a/ordmodels/network/src/main/yang/org-openroadm-degree@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-degree@2020-05-29.yang similarity index 85% rename from ordmodels/network/src/main/yang/org-openroadm-degree@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-degree@2020-05-29.yang index 01420c5db..c67cbfc52 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-degree@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-degree@2020-05-29.yang @@ -5,11 +5,11 @@ module org-openroadm-degree { import org-openroadm-common-link-types { prefix org-openroadm-common-link-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-network-types { prefix org-openroadm-network-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } organization @@ -46,6 +46,30 @@ module org-openroadm-degree { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-05-31 { + description + "Version 5.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -105,14 +129,6 @@ module org-openroadm-degree { description "maximum # of wavelengths"; } - list available-wavelengths { - key "index"; - description - "This list is created to accommodate fixed grid (1.2.1) as well as flex grid (2.0 above). In case of fixed grid - index number will refer to one of the 96 WL defined in the wavelength map file. In case of flex grid this - will hold list of available spectra"; - uses org-openroadm-network-types:wavelengths; - } leaf ingress-span-loss-aging-margin { type org-openroadm-common-link-types:ratio-dB; config true; @@ -125,5 +141,11 @@ module org-openroadm-degree { description "End Of Life Total input power at maximum load extracted from corresponding device OTS interface container"; } + leaf egress-average-channel-power { + type org-openroadm-common-link-types:power-dBm; + config true; + description + "Based upon the total max power across the 4.8 THz passband."; + } } } diff --git a/ordmodels/network/src/main/yang/org-openroadm-external-pluggable@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-external-pluggable@2020-05-29.yang similarity index 90% rename from ordmodels/network/src/main/yang/org-openroadm-external-pluggable@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-external-pluggable@2020-05-29.yang index c14f9dd51..16ca977cf 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-external-pluggable@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-external-pluggable@2020-05-29.yang @@ -5,15 +5,15 @@ module org-openroadm-external-pluggable { import org-openroadm-common-equipment-types { prefix org-openroadm-common-equipment-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-common-state-types { prefix org-openroadm-common-state-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-common-optical-channel-types { prefix org-openroadm-common-optical-channel-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } organization @@ -50,6 +50,26 @@ module org-openroadm-external-pluggable { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; diff --git a/ordmodels/network/src/main/yang/org-openroadm-link@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-link@2020-05-29.yang similarity index 87% rename from ordmodels/network/src/main/yang/org-openroadm-link@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-link@2020-05-29.yang index 97c2cc399..2c20b215a 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-link@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-link@2020-05-29.yang @@ -5,19 +5,23 @@ module org-openroadm-link { import org-openroadm-equipment-states-types { prefix org-openroadm-equipment-states-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-common-link-types { prefix org-openroadm-common-link-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-common-node-types { prefix org-openroadm-common-node-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-amplifier { prefix org-openroadm-amplifier; - revision-date 2018-11-30; + revision-date 2019-11-29; + } + import org-openroadm-network-types { + prefix org-openroadm-network-types; + revision-date 2020-05-29; } organization @@ -54,6 +58,30 @@ module org-openroadm-link { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-05-31 { + description + "Version 5.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -83,18 +111,7 @@ module org-openroadm-link { "Version 2.0"; } - grouping OMS-attributes { - leaf TE-metric { - type uint32; - status deprecated; - } - } - grouping span-attributes { - leaf clfi { - type string; - status deprecated; - } leaf auto-spanloss { type boolean; default "true"; @@ -132,42 +149,42 @@ module org-openroadm-link { } leaf fiber-type { type enumeration { - enum "smf" { + enum smf { value 0; description "Single Mode Fiber"; } - enum "eleaf" { + enum eleaf { value 1; description "ELEAF"; } - enum "oleaf" { + enum oleaf { value 2; description "OLEAF"; } - enum "dsf" { + enum dsf { value 3; description "DSF"; } - enum "truewave" { + enum truewave { value 4; description "TRUEWAVE Reduced Slope"; } - enum "truewavec" { + enum truewavec { value 5; description "TRUEWAVE Classic"; } - enum "nz-dsf" { + enum nz-dsf { value 6; description "NZ-DSF"; } - enum "ull" { + enum ull { value 7; description "Ultra Low Loss (ULL)"; @@ -202,6 +219,7 @@ module org-openroadm-link { case ila { container ila { uses org-openroadm-amplifier:amplifier-node-attributes; + uses org-openroadm-network-types:type-variety-grp; leaf node-id { type org-openroadm-common-node-types:node-id-type; mandatory true; diff --git a/ordmodels/network/src/main/yang/org-openroadm-network-topology-types@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-network-topology-types@2020-03-27.yang similarity index 82% rename from ordmodels/network/src/main/yang/org-openroadm-network-topology-types@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-network-topology-types@2020-03-27.yang index d8372b5a4..12abb1b90 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-network-topology-types@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-network-topology-types@2020-03-27.yang @@ -13,7 +13,11 @@ module org-openroadm-network-topology-types { } import org-openroadm-switching-pool-types { prefix org-openroadm-switching-pool-types; - revision-date 2018-11-30; + revision-date 2019-11-29; + } + import org-openroadm-port-types { + prefix org-openroadm-port-types; + revision-date 2020-03-27; } organization @@ -47,6 +51,14 @@ module org-openroadm-network-topology-types { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -69,6 +81,33 @@ module org-openroadm-network-topology-types { type uint16; units "Gbps"; } + list possible-tp-config { + key "config-id"; + leaf config-id { + type uint16; + } + list tp-if-type-config { + key "tp-name"; + leaf tp-name { + type leafref { + path "/nd:networks/nd:network/nd:node/nwt:termination-point/nwt:tp-id"; + } + description + "termination-point identifier"; + } + leaf-list tp-if-type { + type identityref { + base org-openroadm-port-types:supported-if-capability; + } + } + leaf otsi-rate { + type uint16; + units "Gbps"; + description + "Optical Tributary Signal (OTSi) rate in Gbps"; + } + } + } } } diff --git a/ordmodels/network/src/main/yang/org-openroadm-network-topology@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-network-topology@2018-11-30.yang deleted file mode 100644 index 9928281c1..000000000 --- a/ordmodels/network/src/main/yang/org-openroadm-network-topology@2018-11-30.yang +++ /dev/null @@ -1,414 +0,0 @@ -module org-openroadm-network-topology { - yang-version 1.1; - namespace "http://org/openroadm/network/topology"; - prefix topo; - - import ietf-network { - prefix nd; - revision-date 2018-02-26; - } - import ietf-network-topology { - prefix nwt; - revision-date 2018-02-26; - } - import org-openroadm-network-types { - prefix org-openroadm-network-types; - revision-date 2018-11-30; - } - import org-openroadm-srg { - prefix srg; - revision-date 2018-11-30; - } - import org-openroadm-degree { - prefix dgr; - revision-date 2018-11-30; - } - import org-openroadm-xponder { - prefix xpdr; - revision-date 2018-11-30; - } - import org-openroadm-external-pluggable { - prefix plg; - revision-date 2018-11-30; - } - import org-openroadm-link { - prefix link; - revision-date 2018-11-30; - } - import org-openroadm-common-state-types { - prefix org-openroadm-common-state-types; - revision-date 2018-11-30; - } - import org-openroadm-common-network { - prefix cnet; - revision-date 2018-11-30; - } - - organization - "OPEN ROADM MSA"; - contact - "OpenROADM.org."; - description - "YANG definitions for network view of a ROADM - - Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, - All other rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - * Neither the Members of the Open ROADM MSA Agreement nor the names of its - contributors may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE."; - - revision 2018-11-30 { - description - "Version 4.1.0"; - } - revision 2018-09-28 { - description - "Version 4.0.0"; - } - revision 2018-05-30 { - description - "Version 3.1.0"; - } - revision 2018-03-30 { - description - "Version 3.0.0"; - } - revision 2017-12-15 { - description - "Version 2.2"; - } - revision 2017-09-29 { - description - "Version 2.1"; - } - revision 2017-07-28 { - description - "Version 2.0.1 - added revision-date to imports"; - } - revision 2017-06-26 { - description - "Version 2.0"; - } - - deviation "/nd:networks/nd:network/nd:node/cnet:node-type" { - deviate add { - must - "(not /nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology) or - (/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology and - (../cnet:node-type = 'DEGREE' or ../cnet:node-type = 'SRG' or ../cnet:node-type = 'TPDR' or ../cnet:node-type = 'SWITCH' or - ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI' or ../cnet:node-type = 'EXT-PLUGGABLE' or - ../cnet:node-type = 'MUXPDR'))" { - error-message "Invalid node type for openroadm-topology"; - description - "The valid node types in the ROADM topology are 'SRG', 'DEGREE', - 'TPDR', 'SWITCH', 'REGEN', 'REGEN-UNI', 'EXT-PLUGGABLE' and 'MUXPDR'"; - } - } - } - deviation "/nd:networks/nd:network/nd:node/nwt:termination-point/cnet:tp-type" { - description - "Defines which TP types can be instantiated on which Node types"; - deviate add { - must - "/nd:network/nd:node/cnet:node-type != 'DEGREE' or (../../cnet:node-type = 'DEGREE' and - (../cnet:tp-type = 'DEGREE-TX-TTP' or ../cnet:tp-type = 'DEGREE-RX-TTP' or ../cnet:tp-type = 'DEGREE-TXRX-TTP' or - ../cnet:tp-type = 'DEGREE-TX-CTP' or ../cnet:tp-type = 'DEGREE-RX-CTP' or ../cnet:tp-type = 'DEGREE-TXRX-CTP'))" { - error-message "Invalid TP for node type 'DEGREE'"; - } - must - "/nd:network/nd:node/cnet:node-type != 'SRG' or (../../cnet:node-type = 'SRG' and - (../cnet:tp-type = 'SRG-TX-CP' or ../cnet:tp-type = 'SRG-RX-CP' or ../cnet:tp-type = 'SRG-TXRX-CP' or - ../cnet:tp-type = 'SRG-RX-PP' or ../cnet:tp-type = 'SRG-TX-PP' or ../cnet:tp-type = 'SRG-TXRX-PP'))" { - error-message "Invalid TP for node type 'SRG'"; - } - must - " (/nd:network/nd:node/cnet:node-type != 'TPDR' and ../../cnet:node-type != 'MUXPDR' and ../../cnet:node-type != 'REGEN' and - ../../cnet:node-type != 'REGEN-UNI' and ../../cnet:node-type != 'SWITCH') - or ((../../cnet:node-type = 'TPDR' or ../../cnet:node-type = 'MUXPDR' or ../../cnet:node-type = 'REGEN' or - ../../cnet:node-type = 'REGEN-UNI' or ../../cnet:node-type = 'SWITCH') and - (../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'))" { - error-message "Invalid TP for node type 'XPONDER'"; - } - must "/nd:network/nd:node/cnet:node-type != 'EXT-PLUGGABLE' or (../../cnet:node-type = 'EXT-PLUGGABLE' and ../cnet:tp-type = 'EXT-PLUGGABLE-TP')" { - error-message "Invalid TP for node type 'EXT-PLUGGABLE'"; - } - } - } - deviation "/nd:networks/nd:network/nwt:link/cnet:link-type" { - deviate add { - must - "(not /nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology) or - (/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology and - (../cnet:link-type = 'ROADM-TO-ROADM' or ../cnet:link-type = 'ADD-LINK' or ../cnet:link-type = 'DROP-LINK' or - ../cnet:link-type = 'EXPRESS-LINK' or ../cnet:link-type = 'XPONDER-INPUT' or ../cnet:link-type = 'XPONDER-OUTPUT'))" { - error-message "Invalid link type for openroadm-topology"; - description - "The valid link types in the ROADM topology are 'ROADM-TO-ROADM', 'ADD-LINK', - 'DROP-LINK', 'EXPRESS-LINK', 'XPONDER-INPUT', 'XPONDER-OUTPUT'"; - } - } - } - augment "/nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network" { - description - "Introduce new network type for the Open ROADM optical - ` network topology"; - container openroadm-topology { - presence "indicates optical network topology for Open ROADMs"; - } - } - augment "/nd:networks/nd:network/nd:node" { - when "../nd:network-types/cnet:openroadm-common-network/openroadm-topology"; - description - "This augmentations adds the ROADM Node type to the generic node - definition and defines node-specific attributes for each node type - in the ROADM Topology."; - leaf node-type { - type org-openroadm-network-types:openroadm-node-type; - must - "(../node-type = 'DEGREE' or ../node-type = 'SRG' or ../node-type = 'TPDR' or ../node-type = 'SWITCH' or - ../node-type = 'REGEN' or ../node-type = 'REGEN-UNI' or ../node-type = 'EXT-PLUGGABLE' or - ../node-type = 'MUXPDR')" { - error-message "Invalid node type for openroadm-topology"; - } - status deprecated; - description - "The type of a node in the ROADM topology. Valid node types are 'SRG', 'DEGREE', - 'TPDR', 'SWITCH', 'REGEN', 'REGEN-UNI', 'EXT-PLUGGABLE' and 'MUXPDR'"; - } - container srg-attributes { - when "../cnet:node-type = 'SRG'"; - description - "Topology-related attributes for SRG nodes"; - uses srg:srg-node-attributes; - } - container degree-attributes { - when "../cnet:node-type = 'DEGREE'"; - description - "Topology-related attributes for degree nodes"; - uses dgr:degree-node-attributes; - } - container xpdr-attributes { - when - "../cnet:node-type = 'TPDR' or ../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'REGEN' or - ../cnet:node-type = 'REGEN-UNI' or ../cnet:node-type = 'SWITCH'"; - description - "Topology-related attributes for Xponder nodes"; - uses xpdr:xpdr-topo-node-attributes; - } - } - augment "/nd:networks/nd:network/nd:node/nwt:termination-point" { - when "../../nd:network-types/cnet:openroadm-common-network/openroadm-topology"; - description - "Defines the type of a termination point in the ROADM topology and - TP-specific attributes for each termination point type."; - leaf tp-type { - type org-openroadm-network-types:openroadm-tp-type; - must - "../../topo:node-type != 'DEGREE' or (../../topo:node-type = 'DEGREE' and - (../topo:tp-type = 'DEGREE-TX-TTP' or ../topo:tp-type = 'DEGREE-RX-TTP' or ../topo:tp-type = 'DEGREE-TXRX-TTP' or - ../topo:tp-type = 'DEGREE-TX-CTP' or ../topo:tp-type = 'DEGREE-RX-CTP' or ../topo:tp-type = 'DEGREE-TXRX-CTP'))" { - error-message "Invalid TP for node type 'DEGREE'"; - } - must - "../../topo:node-type != 'SRG' or (../../topo:node-type = 'SRG' and - (../topo:tp-type = 'SRG-TX-CP' or ../topo:tp-type = 'SRG-RX-CP' or ../topo:tp-type = 'SRG-TXRX-CP' or - ../topo:tp-type = 'SRG-RX-PP' or ../topo:tp-type = 'SRG-TX-PP' or ../topo:tp-type = 'SRG-TXRX-PP'))" { - error-message "Invalid TP for node type 'SRG'"; - } - must - " (../../topo:node-type != 'TPDR' and ../../topo:node-type != 'MUXPDR' and ../../topo:node-type != 'REGEN' and - ../../topo:node-type != 'REGEN-UNI' and ../../topo:node-type != 'SWITCH') - or ((../../topo:node-type = 'TPDR' or ../../topo:node-type = 'MUXPDR' or ../../topo:node-type = 'REGEN' or - ../../topo:node-type = 'REGEN-UNI' or ../../topo:node-type = 'SWITCH') and - (../topo:tp-type = 'XPONDER-NETWORK' or ../topo:tp-type = 'XPONDER-CLIENT' or ../topo:tp-type = 'XPONDER-PORT'))" { - error-message "Invalid TP for node type 'XPONDER'"; - } - must "../../topo:node-type != 'EXT-PLUGGABLE' or (../../topo:node-type = 'EXT-PLUGGABLE' and ../topo:tp-type = 'EXT-PLUGGABLE-TP')" { - error-message "Invalid TP for node type 'EXT-PLUGGABLE'"; - } - status deprecated; - description - "The TP type; also defines which TP types can be instantiated - on which Node types"; - } - container tx-ttp-attributes { - when "../cnet:tp-type = 'DEGREE-TX-TTP' or ../cnet:tp-type = 'DEGREE-TXRX-TTP'"; - description - "There must be only one TP of type DEGREE-TX-TTP in any given - degree node"; - uses dgr:degree-used-wavelengths; - } - container rx-ttp-attributes { - when "../cnet:tp-type = 'DEGREE-RX-TTP'"; - description - "There must be only one TP of type DEGREE-RX-TTP in any given - degree node"; - uses dgr:degree-used-wavelengths; - } - container ctp-attributes { - when "../cnet:tp-type = 'DEGREE-TX-CTP' or ../cnet:tp-type = 'DEGREE-RX-CTP' or ../cnet:tp-type = 'DEGREE-TXRX-CTP'"; - uses dgr:degree-used-wavelengths; - } - container cp-attributes { - when "../cnet:tp-type = 'SRG-TX-CP' or ../cnet:tp-type = 'SRG-RX-CP' or ../cnet:tp-type = 'SRG-TXRX-CP'"; - description - "This list is created to accommodate fixed grid (1.2.1) as well as flex grid (2.0 above). In case of fixed grid - index number will refer to one of the 96 WL defined in the wavelength map file. In case of flex grid this - will hold list of used spectra"; - list used-wavelengths { - key "index"; - uses org-openroadm-network-types:wavelengths; - } - } - container pp-attributes { - when "../cnet:tp-type = 'SRG-TXRX-PP' or ../cnet:tp-type = 'SRG-TX-PP' or ../cnet:tp-type = 'SRG-RX-PP' "; - description - "This list is created to accommodate fixed grid (1.2.1) as well as flex grid (2.0 above). In case of fixed grid - index number will refer to one of the 96 WL defined in the wavelength map file. In case of flex grid this - will hold list of used spectra"; - list used-wavelength { - key "index"; - uses org-openroadm-network-types:wavelengths; - } - } - leaf eqpt-srg-id { - when - "../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'EXT-PLUGGABLE-TP' or - ../cnet:tp-type = 'XPONDER-PORT'"; - type uint32; - status deprecated; - description - "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id"; - } - container xpdr-client-attributes { - when "../../topo:node-type = 'TPDR' and ../cnet:tp-type = 'XPONDER-CLIENT'"; - description - "Topology layer will allow client TPs only for Transponder nodes"; - uses xpdr:xpdr-connection-attributes; - uses xpdr:xpdr-port-connection-attributes; - } - container xpdr-network-attributes { - when "../cnet:tp-type = 'XPONDER-NETWORK'"; - uses xpdr:xpdr-connection-attributes; - uses xpdr:xpdr-port-connection-attributes; - } - container xpdr-port-attributes { - when "../cnet:tp-type = 'XPONDER-PORT'"; - uses xpdr:xpdr-connection-attributes; - uses xpdr:xpdr-port-connection-attributes; - } - container ext-pluggable-attributes { - when "../cnet:tp-type = 'EXT-PLUGGABLE-TP'"; - uses plg:pluggable-tp-attributes; - } - } - augment "/nd:networks/nd:network/nwt:link" { - when "../nd:network-types/cnet:openroadm-common-network/openroadm-topology"; - description - "This augmentation defines ROADM link types in the ROADM topology"; - leaf link-type { - type org-openroadm-network-types:openroadm-link-type; - must - "(../link-type = 'ROADM-TO-ROADM' or ../link-type = 'ADD-LINK' or ../link-type = 'DROP-LINK' or - ../link-type = 'EXPRESS-LINK' or ../link-type = 'XPONDER-INPUT' or ../link-type = 'XPONDER-OUTPUT')" { - error-message "Invalid link type for openroadm-topology"; - } - status deprecated; - } - leaf link-length { - type decimal64 { - fraction-digits 2; - } - status deprecated; - } - leaf administrative-group { - type uint32; - status deprecated; - description - "according to RFC 3630 definition"; - } - leaf operational-state { - type org-openroadm-common-state-types:state; - status deprecated; - } - leaf administrative-state { - type org-openroadm-common-state-types:state; - status deprecated; - } - leaf link-latency { - type uint32; - status deprecated; - description - "Latency of a link"; - } - leaf amplified { - when "../cnet:link-type = 'ROADM-TO-ROADM'"; - type boolean; - description - "defines whether an ROADM-TO-ROADM Link includes line amplifiers or not"; - } - leaf TE-metric { - type uint32; - status deprecated; - description - "defines a Traffic Engineering metric which could be used for any type of link. - Supersedes TE-metric originally defined in OMS-attributes grouping"; - } - leaf opposite-link { - type leafref { - path "../../nwt:link/nwt:link-id"; - } - status deprecated; - description - "optional - pointer to reverse link in case of bidirectional link. Supersedes opposite-link - originally defined in OMS-attributes container, to apply to any kind of link in the topology"; - } - container OMS-attributes { - when "../cnet:link-type = 'ROADM-TO-ROADM'"; - description - ""; - uses link:OMS-attributes; - leaf opposite-link { - type leafref { - path "../../../nwt:link/nwt:link-id"; - } - status deprecated; - description - "optional - pointer to reverse link in case of bidirectional link"; - } - container span { - when "../../amplified = 'false'"; - description - ""; - uses link:span-attributes; - } - container amplified-link { - when "../../amplified = 'true'"; - description - "when amplified is set to true, rather than a simple OMS section - we have an amplified link"; - uses link:amplified-link-attributes; - } - } - } -} diff --git a/ordmodels/network/src/main/yang/org-openroadm-network-topology@2020-05-29.yang b/ordmodels/network/src/main/yang/org-openroadm-network-topology@2020-05-29.yang new file mode 100644 index 000000000..fcb112251 --- /dev/null +++ b/ordmodels/network/src/main/yang/org-openroadm-network-topology@2020-05-29.yang @@ -0,0 +1,334 @@ +module org-openroadm-network-topology { + yang-version 1.1; + namespace "http://org/openroadm/network/topology"; + prefix topo; + + import ietf-network { + prefix nd; + revision-date 2018-02-26; + } + import ietf-network-topology { + prefix nwt; + revision-date 2018-02-26; + } + import org-openroadm-network-types { + prefix org-openroadm-network-types; + revision-date 2020-05-29; + } + import org-openroadm-srg { + prefix srg; + revision-date 2020-05-29; + } + import org-openroadm-degree { + prefix dgr; + revision-date 2020-05-29; + } + import org-openroadm-xponder { + prefix xpdr; + revision-date 2020-05-29; + } + import org-openroadm-external-pluggable { + prefix plg; + revision-date 2020-05-29; + } + import org-openroadm-link { + prefix link; + revision-date 2020-05-29; + } + import org-openroadm-common-network { + prefix cnet; + revision-date 2020-05-29; + } + + organization + "OPEN ROADM MSA"; + contact + "OpenROADM.org."; + description + "YANG definitions for network view of a ROADM + + Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, + All other rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + * Neither the Members of the Open ROADM MSA Agreement nor the names of its + contributors may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS'' + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE."; + + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-05-31 { + description + "Version 5.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } + revision 2018-11-30 { + description + "Version 4.1.0"; + } + revision 2018-09-28 { + description + "Version 4.0.0"; + } + revision 2018-05-30 { + description + "Version 3.1.0"; + } + revision 2018-03-30 { + description + "Version 3.0.0"; + } + revision 2017-12-15 { + description + "Version 2.2"; + } + revision 2017-09-29 { + description + "Version 2.1"; + } + revision 2017-07-28 { + description + "Version 2.0.1 - added revision-date to imports"; + } + revision 2017-06-26 { + description + "Version 2.0"; + } + + deviation "/nd:networks/nd:network/nd:node/cnet:node-type" { + deviate add { + must "(not /nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology) or + (/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology and + (../cnet:node-type = 'DEGREE' or ../cnet:node-type = 'SRG' or ../cnet:node-type = 'TPDR' or ../cnet:node-type = 'SWITCH' or + ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI' or ../cnet:node-type = 'EXT-PLUGGABLE' or + ../cnet:node-type = 'MUXPDR'))" { + error-message "Invalid node type for openroadm-topology"; + description + "The valid node types in the ROADM topology are 'SRG', 'DEGREE', + 'TPDR', 'SWITCH', 'REGEN', 'REGEN-UNI', 'EXT-PLUGGABLE' and 'MUXPDR'"; + } + } + } + + deviation "/nd:networks/nd:network/nd:node/nwt:termination-point/cnet:tp-type" { + description + "Defines which TP types can be instantiated on which Node types"; + deviate add { + must "/nd:network/nd:node/cnet:node-type != 'DEGREE' or (../../cnet:node-type = 'DEGREE' and + (../cnet:tp-type = 'DEGREE-TX-TTP' or ../cnet:tp-type = 'DEGREE-RX-TTP' or ../cnet:tp-type = 'DEGREE-TXRX-TTP' or + ../cnet:tp-type = 'DEGREE-TX-CTP' or ../cnet:tp-type = 'DEGREE-RX-CTP' or ../cnet:tp-type = 'DEGREE-TXRX-CTP'))" { + error-message "Invalid TP for node type 'DEGREE'"; + } + must "/nd:network/nd:node/cnet:node-type != 'SRG' or (../../cnet:node-type = 'SRG' and + (../cnet:tp-type = 'SRG-TX-CP' or ../cnet:tp-type = 'SRG-RX-CP' or ../cnet:tp-type = 'SRG-TXRX-CP' or + ../cnet:tp-type = 'SRG-RX-PP' or ../cnet:tp-type = 'SRG-TX-PP' or ../cnet:tp-type = 'SRG-TXRX-PP'))" { + error-message "Invalid TP for node type 'SRG'"; + } + must " (/nd:network/nd:node/cnet:node-type != 'TPDR' and ../../cnet:node-type != 'MUXPDR' and ../../cnet:node-type != 'REGEN' and + ../../cnet:node-type != 'REGEN-UNI' and ../../cnet:node-type != 'SWITCH') + or ((../../cnet:node-type = 'TPDR' or ../../cnet:node-type = 'MUXPDR' or ../../cnet:node-type = 'REGEN' or + ../../cnet:node-type = 'REGEN-UNI' or ../../cnet:node-type = 'SWITCH') and + (../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'))" { + error-message "Invalid TP for node type 'XPONDER'"; + } + must "/nd:network/nd:node/cnet:node-type != 'EXT-PLUGGABLE' or (../../cnet:node-type = 'EXT-PLUGGABLE' and ../cnet:tp-type = 'EXT-PLUGGABLE-TP')" { + error-message "Invalid TP for node type 'EXT-PLUGGABLE'"; + } + } + } + + deviation "/nd:networks/nd:network/nwt:link/cnet:link-type" { + deviate add { + must "(not /nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology) or + (/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-topology and + (../cnet:link-type = 'ROADM-TO-ROADM' or ../cnet:link-type = 'ADD-LINK' or ../cnet:link-type = 'DROP-LINK' or + ../cnet:link-type = 'EXPRESS-LINK' or ../cnet:link-type = 'XPONDER-INPUT' or ../cnet:link-type = 'XPONDER-OUTPUT'))" { + error-message "Invalid link type for openroadm-topology"; + description + "The valid link types in the ROADM topology are 'ROADM-TO-ROADM', 'ADD-LINK', + 'DROP-LINK', 'EXPRESS-LINK', 'XPONDER-INPUT', 'XPONDER-OUTPUT'"; + } + } + } + + augment "/nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network" { + description + "Introduce new network type for the Open ROADM optical + ` network topology"; + container openroadm-topology { + presence "indicates optical network topology for Open ROADMs"; + } + } + + augment "/nd:networks/nd:network/nd:node" { + when '../nd:network-types/cnet:openroadm-common-network/topo:openroadm-topology'; + description + "This augmentations adds the ROADM Node type to the generic node + definition and defines node-specific attributes for each node type + in the ROADM Topology."; + container srg-attributes { + when "../cnet:node-type = 'SRG'"; + description + "Topology-related attributes for SRG nodes"; + uses srg:srg-node-attributes; + uses org-openroadm-network-types:available-freq-map; + uses org-openroadm-network-types:type-variety-grp; + } + container degree-attributes { + when "../cnet:node-type = 'DEGREE'"; + description + "Topology-related attributes for degree nodes"; + uses dgr:degree-node-attributes; + uses org-openroadm-network-types:available-freq-map; + uses org-openroadm-network-types:type-variety-grp; + } + container xpdr-attributes { + when "../cnet:node-type = 'TPDR' or ../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'REGEN' or + ../cnet:node-type = 'REGEN-UNI' or ../cnet:node-type = 'SWITCH'"; + description + "Topology-related attributes for Xponder nodes"; + uses xpdr:xpdr-topo-node-attributes; + } + } + + augment "/nd:networks/nd:network/nd:node/nwt:termination-point" { + when '../../nd:network-types/cnet:openroadm-common-network/topo:openroadm-topology'; + description + "Defines the type of a termination point in the ROADM topology and + TP-specific attributes for each termination point type."; + container tx-ttp-attributes { + when "../cnet:tp-type = 'DEGREE-TX-TTP' or ../cnet:tp-type = 'DEGREE-TXRX-TTP'"; + description + "There must be only one TP of type DEGREE-TX-TTP in any given + degree node"; + uses dgr:degree-used-wavelengths; + uses org-openroadm-network-types:available-freq-map; + } + container rx-ttp-attributes { + when "../cnet:tp-type = 'DEGREE-RX-TTP'"; + description + "There must be only one TP of type DEGREE-RX-TTP in any given + degree node"; + uses dgr:degree-used-wavelengths; + uses org-openroadm-network-types:available-freq-map; + } + container ctp-attributes { + when "../cnet:tp-type = 'DEGREE-TX-CTP' or ../cnet:tp-type = 'DEGREE-RX-CTP' or ../cnet:tp-type = 'DEGREE-TXRX-CTP'"; + uses org-openroadm-network-types:available-freq-map; + } + container cp-attributes { + when "../cnet:tp-type = 'SRG-TX-CP' or ../cnet:tp-type = 'SRG-RX-CP' or ../cnet:tp-type = 'SRG-TXRX-CP'"; + description + "This list is created to accommodate fixed grid (1.2.1) as well as flex grid (2.0 above). In case of fixed grid + index number will refer to one of the 96 WL defined in the wavelength map file. In case of flex grid this + will hold list of used spectra"; + uses org-openroadm-network-types:available-freq-map; + } + container pp-attributes { + when "../cnet:tp-type = 'SRG-TXRX-PP' or ../cnet:tp-type = 'SRG-TX-PP' or ../cnet:tp-type = 'SRG-RX-PP' "; + description + "This list is created to accommodate fixed grid (1.2.1) as well as flex grid (2.0 above). In case of fixed grid + index number will refer to one of the 96 WL defined in the wavelength map file. In case of flex grid this + will hold list of used spectra"; + list used-wavelength { + key "index"; + uses org-openroadm-network-types:wavelengths; + } + uses org-openroadm-network-types:available-freq-map; + } + container xpdr-client-attributes { + when "../../cnet:node-type = 'TPDR' and ../cnet:tp-type = 'XPONDER-CLIENT'"; + description + "Topology layer will allow client TPs only for Transponder nodes"; + uses xpdr:xpdr-connection-attributes; + uses xpdr:xpdr-port-connection-attributes; + uses xpdr:supported-client-services; + } + container xpdr-network-attributes { + when "../cnet:tp-type = 'XPONDER-NETWORK'"; + uses xpdr:xpdr-connection-attributes; + uses xpdr:xpdr-port-connection-attributes; + uses xpdr:xpdr-mode-attributes; + uses org-openroadm-network-types:type-variety-grp; + } + container xpdr-port-attributes { + when "../cnet:tp-type = 'XPONDER-PORT'"; + uses xpdr:xpdr-connection-attributes; + uses xpdr:xpdr-port-connection-attributes; + uses xpdr:xpdr-mode-attributes; + uses org-openroadm-network-types:type-variety-grp; + } + container ext-pluggable-attributes { + when "../cnet:tp-type = 'EXT-PLUGGABLE-TP'"; + uses plg:pluggable-tp-attributes; + uses xpdr:xpdr-port-connection-attributes; + uses xpdr:xpdr-mode-attributes; + uses org-openroadm-network-types:type-variety-grp; + } + } + + augment "/nd:networks/nd:network/nwt:link" { + when '../nd:network-types/cnet:openroadm-common-network/topo:openroadm-topology'; + description + "This augmentation defines ROADM link types in the ROADM topology"; + leaf amplified { + when "../cnet:link-type = 'ROADM-TO-ROADM'"; + type boolean; + description + "defines whether an ROADM-TO-ROADM Link includes line amplifiers or not"; + } + container OMS-attributes { + when "../cnet:link-type = 'ROADM-TO-ROADM'"; + description + ""; + container span { + when "../../amplified = 'false'"; + description + ""; + uses link:span-attributes; + } + container amplified-link { + when "../../amplified = 'true'"; + description + "when amplified is set to true, rather than a simple OMS section + we have an amplified link"; + uses link:amplified-link-attributes; + } + } + } +} diff --git a/ordmodels/network/src/main/yang/org-openroadm-network-types@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-network-types@2020-05-29.yang similarity index 62% rename from ordmodels/network/src/main/yang/org-openroadm-network-types@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-network-types@2020-05-29.yang index a246e9a3d..c4f93c2b1 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-network-types@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-network-types@2020-05-29.yang @@ -9,11 +9,11 @@ module org-openroadm-network-types { } import org-openroadm-common-optical-channel-types { prefix org-openroadm-common-optical-channel-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-port-types { prefix org-openroadm-port-types; - revision-date 2018-11-30; + revision-date 2020-03-27; } organization @@ -47,6 +47,30 @@ module org-openroadm-network-types { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-05-31 { + description + "Version 5.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -82,34 +106,34 @@ module org-openroadm-network-types { typedef openroadm-node-type { type enumeration { - enum "ROADM" { + enum ROADM { value 1; } - enum "DEGREE" { + enum DEGREE { value 11; } - enum "SRG" { + enum SRG { value 12; } - enum "XPONDER" { + enum XPONDER { value 3; } - enum "EXT-PLUGGABLE" { + enum EXT-PLUGGABLE { value 4; } - enum "TPDR" { + enum TPDR { value 13; } - enum "MUXPDR" { + enum MUXPDR { value 14; } - enum "REGEN" { + enum REGEN { value 15; } - enum "REGEN-UNI" { + enum REGEN-UNI { value 16; } - enum "SWITCH" { + enum SWITCH { value 17; } } @@ -117,52 +141,52 @@ module org-openroadm-network-types { typedef openroadm-tp-type { type enumeration { - enum "DEGREE-TX-TTP" { + enum DEGREE-TX-TTP { value 1; } - enum "DEGREE-RX-TTP" { + enum DEGREE-RX-TTP { value 2; } - enum "DEGREE-TX-CTP" { + enum DEGREE-TX-CTP { value 3; } - enum "DEGREE-RX-CTP" { + enum DEGREE-RX-CTP { value 4; } - enum "SRG-TX-CP" { + enum SRG-TX-CP { value 5; } - enum "SRG-RX-CP" { + enum SRG-RX-CP { value 6; } - enum "SRG-TXRX-PP" { + enum SRG-TXRX-PP { value 7; } - enum "SRG-RX-PP" { + enum SRG-RX-PP { value 8; } - enum "SRG-TX-PP" { + enum SRG-TX-PP { value 9; } - enum "XPONDER-NETWORK" { + enum XPONDER-NETWORK { value 10; } - enum "XPONDER-CLIENT" { + enum XPONDER-CLIENT { value 11; } - enum "EXT-PLUGGABLE-TP" { + enum EXT-PLUGGABLE-TP { value 12; } - enum "DEGREE-TXRX-TTP" { + enum DEGREE-TXRX-TTP { value 13; } - enum "SRG-TXRX-CP" { + enum SRG-TXRX-CP { value 14; } - enum "XPONDER-PORT" { + enum XPONDER-PORT { value 15; } - enum "DEGREE-TXRX-CTP" { + enum DEGREE-TXRX-CTP { value 16; } } @@ -170,61 +194,83 @@ module org-openroadm-network-types { typedef openroadm-link-type { type enumeration { - enum "EXPRESS-LINK" { + enum EXPRESS-LINK { value 1; } - enum "ADD-LINK" { + enum ADD-LINK { value 2; } - enum "DROP-LINK" { + enum DROP-LINK { value 3; } - enum "ROADM-TO-ROADM" { + enum ROADM-TO-ROADM { value 4; } - enum "XPONDER-INPUT" { + enum XPONDER-INPUT { value 5; } - enum "XPONDER-OUTPUT" { + enum XPONDER-OUTPUT { value 6; } - enum "OTN-LINK" { + enum OTN-LINK { value 7; } } } - typedef openroadm-node-status { + typedef openroadm-node-connection-status { type enumeration { - enum "PLANNED" { + enum CONNECTED { value 1; } - enum "DEPLOYED" { + enum CONNECTING { value 2; } - enum "MAINTENANCE" { + enum UNABLE-TO-CONNECT { value 3; } } } - typedef openroadm-node-connection-status { - type enumeration { - enum "CONNECTED" { - value 1; + grouping available-freq-map { + list avail-freq-maps { + key "map-name"; + description + "Available spectrum information"; + leaf map-name { + type string; + description + "Identifier of the map. For C-band, recommend map-name = 'cband'"; } - enum "CONNECTING" { - value 2; + leaf start-edge-freq { + type org-openroadm-common-optical-channel-types:frequency-THz; + description + "Starting edge frequency (min frequency) for the frequency map. For C-band, the recommendation is start-edge-freq = 191.325 THz"; } - enum "UNABLE-TO-CONNECT" { - value 3; + leaf freq-map-granularity { + type org-openroadm-common-optical-channel-types:frequency-GHz; + description + "frequency granularity of each bit in the bitmap. For C-band, the recommendation is freq-map-granularity = 6.25 GHz"; + } + leaf effective-bits { + type uint16; + description + "Number of effective bits in the frequency bitmap. Note the freq-map bitmap will be padded with 0 for byte alignment."; + } + leaf freq-map { + type binary; + description + "Frequency bitmap. Setting the value of the binary bit to 1 indicates that the corresponding spectrum is available and + setting to 0 indicates the corresponding spectrum is unavailable (used or unsupported)."; } } } grouping wavelengths { leaf index { - type uint32; + type int32; + description + "Index should be related to the frequency based on the formula 193.1 + index * .00625 THz"; } uses flex-wave; } @@ -244,6 +290,17 @@ module org-openroadm-network-types { } } + grouping type-variety-grp { + leaf type-variety { + type string; + config true; + description + "Equipment type variety defined by the Open ROADM MSA or by the vendor for bookending applications. + This field is used by external path computation tools as a reference in a catalog to get additional + information about the equipment’s optical capabilities."; + } + } + grouping xpdr-tp-supported-interfaces { list supported-interface-capability { key "if-cap-type"; diff --git a/ordmodels/network/src/main/yang/org-openroadm-network@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-network@2020-05-29.yang similarity index 79% rename from ordmodels/network/src/main/yang/org-openroadm-network@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-network@2020-05-29.yang index a236b8819..506c514b6 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-network@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-network@2020-05-29.yang @@ -9,19 +9,19 @@ module org-openroadm-network { } import org-openroadm-network-types { prefix nt; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-roadm { prefix roadm; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-external-pluggable { prefix plg; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-xponder { prefix xpdr; - revision-date 2018-11-30; + revision-date 2020-05-29; } import ietf-inet-types { prefix inet; @@ -29,11 +29,11 @@ module org-openroadm-network { } import org-openroadm-common-types { prefix org-openroadm-common-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-common-network { prefix cnet; - revision-date 2018-11-30; + revision-date 2020-05-29; } organization @@ -67,6 +67,30 @@ module org-openroadm-network { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-05-31 { + description + "Version 5.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -106,16 +130,16 @@ module org-openroadm-network { deviation "/nd:networks/nd:network/nd:node/cnet:node-type" { deviate add { - must - "(not /nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-network) or - (/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-network and - (../cnet:node-type = 'ROADM' or ../cnet:node-type = 'XPONDER' or ../cnet:node-type = 'EXT-PLUGGABLE'))" { - error-message "Invalid node type for openroadm-network"; - description - "The valid node types in the ROADM network are XPONDER, EXT-PLUGGABLE and ROADM."; + must "(not /nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-network) or + (/nd:network/nd:network-types/cnet:openroadm-common-network/openroadm-network and + (../cnet:node-type = 'ROADM' or ../cnet:node-type = 'XPONDER' or ../cnet:node-type = 'EXT-PLUGGABLE'))" { + error-message "Invalid node type for openroadm-network"; + description + "The valid node types in the ROADM network are XPONDER, EXT-PLUGGABLE and ROADM."; } } } + augment "/nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network" { description "Introduce new network type for the Open ROADM optical network"; @@ -126,21 +150,11 @@ module org-openroadm-network { network"; } } + augment "/nd:networks/nd:network/nd:node" { - when "../nd:network-types/cnet:openroadm-common-network/openroadm-network"; + when '../nd:network-types/cnet:openroadm-common-network/net:openroadm-network'; description "Augment the generic network node with Open ROADM attributes."; - leaf node-type { - type nt:openroadm-node-type; - must "(../node-type = 'ROADM' or ../node-type = 'XPONDER' or ../node-type = 'EXT-PLUGGABLE')" { - error-message "Invalid node type for openroadm-network"; - } - status deprecated; - description - "A component of the network topology. - Valid node types are XPONDER, EXT-PLUGGABLE and ROADM. - Once the node-type is configured, it should not be modified."; - } leaf software-version { type string; description @@ -179,10 +193,6 @@ module org-openroadm-network { leaf shelf { type string; } - leaf node-status { - type nt:openroadm-node-status; - status deprecated; - } leaf node-connection-status { type nt:openroadm-node-connection-status; } diff --git a/ordmodels/network/src/main/yang/org-openroadm-otn-network-topology@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-otn-network-topology@2020-05-29.yang similarity index 57% rename from ordmodels/network/src/main/yang/org-openroadm-otn-network-topology@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-otn-network-topology@2020-05-29.yang index 756f4df7f..28bbfa1bf 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-otn-network-topology@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-otn-network-topology@2020-05-29.yang @@ -13,23 +13,19 @@ module org-openroadm-otn-network-topology { } import org-openroadm-network-types { prefix org-openroadm-network-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-network-topology-types { prefix org-openroadm-network-topology-types; - revision-date 2018-11-30; + revision-date 2020-03-27; } import org-openroadm-xponder { prefix xpdr; - revision-date 2018-11-30; - } - import org-openroadm-common-state-types { - prefix org-openroadm-common-state-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-common-network { prefix cnet; - revision-date 2018-11-30; + revision-date 2020-05-29; } organization @@ -65,6 +61,30 @@ module org-openroadm-otn-network-topology { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-05-31 { + description + "Version 5.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -92,42 +112,42 @@ module org-openroadm-otn-network-topology { deviation "/nd:networks/nd:network/nd:node/cnet:node-type" { deviate add { - must - "(not /nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology) or - (/nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology and - (../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'TPDR' or - ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI'))" { - error-message "Invalid node type for otn-topology"; - description - "The type of a node in the OTN topology. Valid node types are 'MUXPDR', 'TPDR' and 'SWITCH'"; + must "(not /nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology) or + (/nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology and + (../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'TPDR' or + ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI'))" { + error-message "Invalid node type for otn-topology"; + description + "The type of a node in the OTN topology"; } } } + deviation "/nd:networks/nd:network/nd:node/nwt:termination-point/cnet:tp-type" { description "Defines which TP types can be instantiated on which Node types"; deviate add { - must - "(/nd:network/nd:node/cnet:node-type != 'MUXPDR' and ../../cnet:node-type != 'SWITCH' and ../../cnet:node-type != 'TPDR' - and ../cnet:node-type != 'REGEN' and ../cnet:node-type != 'REGEN-UNI') or - ((../../cnet:node-type = 'MUXPDR' or ../../cnet:node-type = 'SWITCH' or ../../cnet:node-type = 'TPDR' or - ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI') and - (../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'))" { - error-message "Invalid TP for node type Xponder"; + must "(/nd:network/nd:node/cnet:node-type != 'MUXPDR' and ../../cnet:node-type != 'SWITCH' and ../../cnet:node-type != 'TPDR' + and ../cnet:node-type != 'REGEN' and ../cnet:node-type != 'REGEN-UNI') or + ((../../cnet:node-type = 'MUXPDR' or ../../cnet:node-type = 'SWITCH' or ../../cnet:node-type = 'TPDR' or + ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI') and + (../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'))" { + error-message "Invalid TP for node type Xponder"; } } } + deviation "/nd:networks/nd:network/nwt:link/cnet:link-type" { deviate add { - must - "(not /nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology) or - (/nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology and ../cnet:link-type = 'OTN-LINK')" { - error-message "Invalid link type for otn-topology"; - description - "The valid link type in the OTN topology is 'OTN-LINK'"; + must "(not /nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology) or + (/nd:network/nd:network-types/cnet:openroadm-common-network/otn-topology and ../cnet:link-type = 'OTN-LINK')" { + error-message "Invalid link type for otn-topology"; + description + "The valid link type in the OTN topology is 'OTN-LINK'"; } } } + augment "/nd:networks/nd:network/nd:network-types/cnet:openroadm-common-network" { description "Introduce new network type for the Open ROADM OTN network topology"; @@ -135,23 +155,13 @@ module org-openroadm-otn-network-topology { presence "indicates OTN topology for Transponder, Muxponder, Switchponder and OTN-switch"; } } + augment "/nd:networks/nd:network/nd:node" { - when "../nd:network-types/cnet:openroadm-common-network/otn-topology"; + when '../nd:network-types/cnet:openroadm-common-network/otn-topo:otn-topology'; description "This augmentations adds the OTN Node type to the generic node definition and defines node-specific attributes for each node type in the OTN Topology."; - leaf node-type { - type org-openroadm-network-types:openroadm-node-type; - must - "(../node-type = 'SWITCH' or ../node-type = 'MUXPDR' or ../node-type = 'TPDR' or - ../node-type = 'REGEN' or ../node-type = 'REGEN-UNI')" { - error-message "Invalid node type for otn-topology"; - } - status deprecated; - description - "The type of a node in the OTN topology. Valid node types are 'MUXPDR', 'TPDR' and 'SWITCH'"; - } container tp-bandwidth-sharing { when "../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'TPDR'"; uses org-openroadm-network-topology-types:xpdr-tp-bandwidth-sharing; @@ -163,40 +173,19 @@ module org-openroadm-otn-network-topology { uses org-openroadm-network-topology-types:xpdr-odu-switching-pools; } container xpdr-attributes { - when - "../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'TPDR' or - ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI'"; + when "../cnet:node-type = 'MUXPDR' or ../cnet:node-type = 'SWITCH' or ../cnet:node-type = 'TPDR' or + ../cnet:node-type = 'REGEN' or ../cnet:node-type = 'REGEN-UNI'"; description "Topology-related attributes for Xponder nodes"; uses xpdr:xpdr-topo-node-attributes; } } + augment "/nd:networks/nd:network/nd:node/nwt:termination-point" { - when "../../nd:network-types/cnet:openroadm-common-network/otn-topology"; + when '../../nd:network-types/cnet:openroadm-common-network/otn-topo:otn-topology'; description "Defines the type of a termination point in the OTN topology and TP-specific attributes for each termination point type."; - leaf tp-type { - type org-openroadm-network-types:openroadm-tp-type; - must - "(../../otn-topo:node-type != 'MUXPDR' and ../../otn-topo:node-type != 'SWITCH' and ../../otn-topo:node-type != 'TPDR' - and ../../otn-topo:node-type != 'REGEN' and ../../otn-topo:node-type != 'REGEN-UNI') or - ((../../otn-topo:node-type = 'MUXPDR' or ../../otn-topo:node-type = 'SWITCH' or ../../otn-topo:node-type = 'TPDR' - or ../../otn-topo:node-type = 'REGEN' or ../../otn-topo:node-type = 'REGEN-UNI') and - (../otn-topo:tp-type = 'XPONDER-NETWORK' or ../otn-topo:tp-type = 'XPONDER-CLIENT' or ../otn-topo:tp-type = 'XPONDER-PORT'))" { - error-message "Invalid TP for node type Xponder"; - } - status deprecated; - description - "The TP type; also defines which TP types can be instantiated - on which Node types"; - } - leaf eqpt-srg-id { - type uint32; - status deprecated; - description - "Shared Risk Group identifier. All ports in a circuit-pack will have same srg-id"; - } container tp-supported-interfaces { when "../cnet:tp-type = 'XPONDER-NETWORK' or ../cnet:tp-type = 'XPONDER-CLIENT' or ../cnet:tp-type = 'XPONDER-PORT'"; description @@ -210,33 +199,14 @@ module org-openroadm-otn-network-topology { uses xpdr:xpdr-otn-tp-attributes; uses xpdr:xpdr-port-connection-attributes; uses org-openroadm-network-topology-types:xpdr-otn-tail-attributes; + uses xpdr:supported-client-services; } } + augment "/nd:networks/nd:network/nwt:link" { - when "../nd:network-types/cnet:openroadm-common-network/otn-topology"; + when '../nd:network-types/cnet:openroadm-common-network/otn-topo:otn-topology'; description "This augmentation defines Logical link types in the OTN topology connecting OTN elements"; - leaf link-type { - type org-openroadm-network-types:openroadm-link-type; - must "(../link-type = 'OTN-LINK')" { - error-message "Invalid link type for otn-topology"; - } - status deprecated; - } - leaf administrative-group { - type uint32; - status deprecated; - description - "according to RFC 3630 definition"; - } - leaf operational-state { - type org-openroadm-common-state-types:state; - status deprecated; - } - leaf administrative-state { - type org-openroadm-common-state-types:state; - status deprecated; - } leaf available-bandwidth { type uint32; description diff --git a/ordmodels/network/src/main/yang/org-openroadm-roadm@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-roadm@2019-11-29.yang similarity index 97% rename from ordmodels/network/src/main/yang/org-openroadm-roadm@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-roadm@2019-11-29.yang index 35c554438..801a69091 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-roadm@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-roadm@2019-11-29.yang @@ -36,6 +36,10 @@ module org-openroadm-roadm { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2019-11-29 { + description + "Version 6.1.0"; + } revision 2018-11-30 { description "Version 4.1.0"; diff --git a/ordmodels/network/src/main/yang/org-openroadm-srg@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-srg@2020-05-29.yang similarity index 85% rename from ordmodels/network/src/main/yang/org-openroadm-srg@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-srg@2020-05-29.yang index 323a5b8c5..ef47ba856 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-srg@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-srg@2020-05-29.yang @@ -3,13 +3,9 @@ module org-openroadm-srg { namespace "http://org/openroadm/srg"; prefix srg; - import org-openroadm-network-types { - prefix org-openroadm-network-types; - revision-date 2018-11-30; - } import org-openroadm-common-optical-channel-types { prefix org-openroadm-common-optical-channel-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } organization @@ -45,6 +41,26 @@ module org-openroadm-srg { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -96,14 +112,6 @@ module org-openroadm-srg { description "current provisioned number of port pair in a given SRG"; } - list available-wavelengths { - key "index"; - description - "This list is created to accommodate fix grid (1.2.1) as well as flex grid (2.0 above). In case of fixed grid - index number will refer to one of the 96 WL defined in the wavelength map file. In case of flex grid this - will hold list of available spectra"; - uses org-openroadm-network-types:wavelengths; - } leaf wavelength-duplication { type org-openroadm-common-optical-channel-types:wavelength-duplication-type; } diff --git a/ordmodels/network/src/main/yang/org-openroadm-xponder@2018-11-30.yang b/ordmodels/network/src/main/yang/org-openroadm-xponder@2020-05-29.yang similarity index 56% rename from ordmodels/network/src/main/yang/org-openroadm-xponder@2018-11-30.yang rename to ordmodels/network/src/main/yang/org-openroadm-xponder@2020-05-29.yang index 124221e1d..27341902e 100644 --- a/ordmodels/network/src/main/yang/org-openroadm-xponder@2018-11-30.yang +++ b/ordmodels/network/src/main/yang/org-openroadm-xponder@2020-05-29.yang @@ -5,23 +5,27 @@ module org-openroadm-xponder { import org-openroadm-network-types { prefix org-openroadm-network-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-common-equipment-types { prefix org-openroadm-common-equipment-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-common-state-types { prefix org-openroadm-common-state-types; - revision-date 2018-11-30; + revision-date 2019-11-29; } import org-openroadm-common-optical-channel-types { prefix org-openroadm-common-optical-channel-types; - revision-date 2018-11-30; + revision-date 2020-05-29; } import org-openroadm-otn-common-types { prefix org-openroadm-otn-common-types; - revision-date 2018-11-30; + revision-date 2020-03-27; + } + import org-openroadm-service-format { + prefix org-openroadm-service-format; + revision-date 2019-11-29; } organization @@ -57,6 +61,30 @@ module org-openroadm-xponder { ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."; + revision 2020-05-29 { + description + "Version 7.1.0"; + } + revision 2020-03-27 { + description + "Version 7.0.0"; + } + revision 2019-11-29 { + description + "Version 6.1.0"; + } + revision 2019-09-27 { + description + "Version 6.0.0"; + } + revision 2019-05-31 { + description + "Version 5.1.0"; + } + revision 2019-03-29 { + description + "Version 5.0.0"; + } revision 2018-11-30 { description "Version 4.1.0"; @@ -114,7 +142,7 @@ module org-openroadm-xponder { } leaf rate { type identityref { - base org-openroadm-common-optical-channel-types:och-rate-identity; + base org-openroadm-common-optical-channel-types:optical-rate-identity; } description "rate"; @@ -139,9 +167,15 @@ module org-openroadm-xponder { } leaf tail-equipment { type string; + description + "Type of equipment connected to the tail + for example packet box"; } leaf tail-equipment-id { type string; + description + "Identifier of equipment connected to the + tail for example client equipement ID"; } leaf tail-clfi { type string; @@ -178,4 +212,83 @@ module org-openroadm-xponder { "List of available Tributary Slots used by port"; } } + + grouping xpdr-mode-attributes { + container supported-operational-modes { + list operational-mode { + key "mode-id"; + description + "list of supported operational modes"; + leaf mode-id { + type string; + description + "Optical profile operational mode identifier"; + } + leaf spectral-width { + type org-openroadm-common-optical-channel-types:frequency-GHz; + units "GHz"; + description + "The required minimum signal spectral width of signal at -22 dbm."; + } + } + } + leaf operational-mode { + type string; + config true; + description + "The provisioned operational-mode of the equipment."; + } + } + + grouping supported-client-services { + container supported-client-services { + list supported-client-service { + key "service-format"; + description + "Supported Client Services"; + leaf service-format { + type org-openroadm-service-format:service-format; + description + "Format of the requested service: Ethernet, OTU, etc."; + } + leaf-list service-rate { + type uint32; + description + "Rate of the requested service in GBps. Not used when service-format=other."; + } + leaf-list other-service-format-and-rate { + type string; + description + "Used when service-format is set to other in the bookend xponder use case. + The use of other-service-format-and-rate is not standardized in the Open ROADM MSA + and intended to allow the controller to support non-Open ROADM service formats. + This value encodes both the service format and the rate supported. + This field should not be specified when service format != other."; + } + } + } + uses provisioned-client-service; + } + + grouping provisioned-client-service { + leaf service-format { + type org-openroadm-service-format:service-format; + description + "Format of the provisioned service: Ethernet, OTU, etc."; + } + leaf service-rate { + type uint32; + description + "Provisioned rate of the requested service in GBps. Not used when service-format=other."; + } + leaf other-service-format-and-rate { + type string; + description + "Used when service-format is set to other in the bookend xponder use case. + The use of other-service-format-and-rate is not standardized in the Open ROADM MSA + and intended to allow the controller to support non-Open ROADM service formats. + This value encodes the provisioned service format and the rate supported. + This field should not be specified when service format != other."; + } + } } diff --git a/ordmodels/network/src/main/yang/transportpce-topology@2020-01-29.yang b/ordmodels/network/src/main/yang/transportpce-topology@2020-10-19.yang similarity index 93% rename from ordmodels/network/src/main/yang/transportpce-topology@2020-01-29.yang rename to ordmodels/network/src/main/yang/transportpce-topology@2020-10-19.yang index 20cf3b6b2..45a68bdb5 100644 --- a/ordmodels/network/src/main/yang/transportpce-topology@2020-01-29.yang +++ b/ordmodels/network/src/main/yang/transportpce-topology@2020-10-19.yang @@ -13,7 +13,7 @@ module transportpce-topology { } import org-openroadm-common-network { prefix cnet; - revision-date 2018-11-30; + revision-date 2020-05-29; } organization @@ -21,6 +21,9 @@ module transportpce-topology { contact "TransportPCE team"; + revision 2020-10-19 { + description "Update to 7.1.0 Openroadm network and common models"; + } revision 2020-01-29 { description "Add transportpce augmentation to manage otn-link-type in otn-topology"; } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java index 39b31a8d8..f3076bb94 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java @@ -44,15 +44,15 @@ import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.El import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ElementsKey; import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.elements.Metadata; import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.elements.MetadataBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.SpanAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.section.element.section.element.Span; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.section.element.section.element.ila.Ila; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.SpanAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.amplified.link.section.element.section.element.Span; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.amplified.link.section.element.section.element.ila.Ila; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.OMSAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; @@ -186,13 +186,13 @@ public class GnpyTopoImpl { // Retrieve the mapping between the openRoadm topology and openRoadm network mapDisgNodeRefNode.put(openRoadmTopoNode.getNodeId().getValue(), nodeRef); Node1 openRoadmNetNode1 = null; - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .Node1 commonNetworkNode1 = null; for (Node openRoadmNetNode : openRoadmNetNodeList) { if (openRoadmNetNode.getNodeId().getValue().equals(nodeRef)) { openRoadmNetNode1 = openRoadmNetNode.augmentation(Node1.class); commonNetworkNode1 = openRoadmNetNode.augmentation(org.opendaylight.yang.gen.v1 - .http.org.openroadm.common.network.rev181130.Node1.class); + .http.org.openroadm.common.network.rev200529.Node1.class); ipAddress = openRoadmNetNode1.getIp(); if (ipAddress == null) { throw new GnpyException(String.format( @@ -245,9 +245,9 @@ public class GnpyTopoImpl { for (Link link : linksList) { Link1 link1 = link.augmentation(Link1.class); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 - .Link1 openroadmNetworkLink1 = link.augmentation(org.opendaylight.yang.gen.v1.http.org - .openroadm.network.topology.rev181130.Link1.class); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529 + .Link1 openroadmNetworkLink1 = link.augmentation(org.opendaylight.yang.gen.v1.http + .org.openroadm.network.topology.rev200529.Link1.class); if (link1.getLinkType() == null) { throw new GnpyException("In gnpyTopoImpl: the link type is null"); } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/InAlgoPathValidator.java b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/InAlgoPathValidator.java index c915a2772..2e580f35f 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/InAlgoPathValidator.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/InAlgoPathValidator.java @@ -10,7 +10,7 @@ package org.opendaylight.transportpce.pce.graph; import org.jgrapht.GraphPath; import org.jgrapht.alg.shortestpath.PathValidator; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java index 7c111940c..22ded83c7 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java @@ -20,7 +20,7 @@ import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.transportpce.pce.constraints.PceConstraints.ResourcePair; import org.opendaylight.transportpce.pce.networkanalyzer.PceNode; import org.opendaylight.transportpce.pce.networkanalyzer.PceResult; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yangtools.yang.common.Uint16; import org.slf4j.Logger; diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/MapUtils.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/MapUtils.java index cd3fe88e1..e2742fd83 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/MapUtils.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/MapUtils.java @@ -16,11 +16,11 @@ import java.util.SortedMap; import java.util.TreeMap; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.pce.constraints.PceConstraints; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.Span; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.Span; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId; @@ -103,14 +103,14 @@ public final class MapUtils { } public static List getSRLGfromLink(Link link) { - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 linkC = link - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1 linkC = link + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class); if (linkC == null) { LOG.error(MAP_UTILS_NO_LINK_AUGMENTATION_AVAILABLE_MSG, link.getLinkId().getValue()); return new ArrayList<>(); } List srlgList = new ArrayList<>(); - for (org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + for (org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .networks.network.link.LinkConcatenation lc : linkC.nonnullLinkConcatenation().values()) { if (lc != null && lc.getSRLGId() != null) { srlgList.add(lc.getSRLGId().toJava()); @@ -162,11 +162,11 @@ public final class MapUtils { public static Long getAvailableBandwidth(Link link) { - if (link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + if (link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .Link1.class) != null - && link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + && link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .Link1.class).getAvailableBandwidth() != null) { - return link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + return link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .Link1.class).getAvailableBandwidth().toJava(); } else { LOG.warn("MapUtils: no Available Bandwidth available for link {}", link.getLinkId()); @@ -175,11 +175,11 @@ public final class MapUtils { } public static Long getUsedBandwidth(Link link) { - if (link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + if (link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .Link1.class) != null - && link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + && link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .Link1.class).getUsedBandwidth() != null) { - return link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + return link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .Link1.class).getUsedBandwidth().toJava(); } else { LOG.warn("MapUtils: no Available Bandwidth available for link {}", link.getLinkId()); @@ -207,9 +207,9 @@ public final class MapUtils { } public static Span getOmsAttributesSpan(Link link) { - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1 link1 = null; + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1 link1 = null; link1 = - link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1.class); + link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1.class); if (link1 == null) { LOG.error(MAP_UTILS_NO_LINK_AUGMENTATION_AVAILABLE_MSG, link.getLinkId().getValue()); @@ -224,8 +224,8 @@ public final class MapUtils { public static LinkId extractOppositeLink(Link link) { LinkId tmpoppositeLink = null; - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 linkOpposite - = link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1 linkOpposite + = link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class); tmpoppositeLink = linkOpposite.getOppositeLink(); LOG.debug("PceLink: reading oppositeLink. {}", linkOpposite); if (tmpoppositeLink == null) { diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java index e880d02b4..fa5a3fd7e 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java @@ -23,9 +23,9 @@ import org.opendaylight.transportpce.common.ResponseCodes; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLink.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLink.java index a38682dec..a752e4130 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLink.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLink.java @@ -16,13 +16,13 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation.FiberType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.Span; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation.FiberType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.Span; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link; @@ -304,7 +304,7 @@ public class PceLink implements Serializable { } OtnLinkType otnLinkType = link - .augmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.Link1.class) + .augmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.Link1.class) .getOtnLinkType(); if (this.availableBandwidth == 0L) { LOG.error("PceLink: No bandwidth available for OTN Link, link {} is ignored ", linkId); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java index 80574e4cf..59732b956 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java @@ -14,12 +14,15 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.TreeMap; +import org.opendaylight.transportpce.common.fixedflex.FixedGridConstant; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.pce.SortPortsByName; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.pp.attributes.UsedWavelength; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.pp.attributes.UsedWavelength; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; @@ -45,6 +48,7 @@ public class PceOpticalNode implements PceNode { private List usedXpndrNWTps = new ArrayList<>(); private List outgoingLinks = new ArrayList<>(); private Map clientPerNwTp = new HashMap<>(); + private final AvailFreqMapsKey freqMapKey = new AvailFreqMapsKey(GridConstant.C_BAND); public PceOpticalNode(Node node, OpenroadmNodeType nodeType, NodeId nodeId, ServiceFormat serviceFormat, String pceNodeType) { @@ -80,8 +84,8 @@ public class PceOpticalNode implements PceNode { for (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network .node.TerminationPoint tp : allTps) { TerminationPoint1 cntp1 = tp.augmentation(TerminationPoint1.class); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1 nttp1 = tp - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1 nttp1 = tp + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529 .TerminationPoint1.class); OpenroadmTpType type = cntp1.getTpType(); LOG.info("type = {} for tp {}", type.getName(), tp); @@ -134,40 +138,30 @@ public class PceOpticalNode implements PceNode { return; } Node1 node1 = this.node.augmentation(Node1.class); + byte[] freqMap; + switch (this.nodeType) { case SRG : - List srgAvailableWL = - new ArrayList<>(node1.getSrgAttributes().nonnullAvailableWavelengths().values()); - if (srgAvailableWL.isEmpty()) { + if (!node1.getSrgAttributes().nonnullAvailFreqMaps().containsKey(freqMapKey)) { + LOG.error("initWLlist: SRG no cband available freq maps for node {}", this); this.valid = false; - LOG.error("initWLlist: SRG AvailableWavelengths is empty for node {}", this); return; } - for (org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengths awl : srgAvailableWL) { - this.availableWLindex.add(awl.getIndex().toJava()); - LOG.debug("initWLlist: SRG next = {} in {}", awl.getIndex(), this); - } + freqMap = node1.getSrgAttributes().nonnullAvailFreqMaps().get(freqMapKey).getFreqMap(); + updateAvailableWlIndex(freqMap); break; case DEGREE : - List degAvailableWL = - new ArrayList<>(node1.getDegreeAttributes().nonnullAvailableWavelengths().values()); - if (degAvailableWL.isEmpty()) { + if (!node1.getDegreeAttributes().nonnullAvailFreqMaps().containsKey(freqMapKey)) { + LOG.error("initWLlist: DEG no cband available freq maps for node {}", this); this.valid = false; - LOG.error("initWLlist: DEG AvailableWavelengths is empty for node {}", this); return; } - for (org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes - .AvailableWavelengths awl : degAvailableWL) { - this.availableWLindex.add(awl.getIndex().toJava()); - LOG.debug("initWLlist: DEGREE next = {} in {}", awl.getIndex(), this); - } + freqMap = node1.getDegreeAttributes().nonnullAvailFreqMaps().get(freqMapKey).getFreqMap(); + updateAvailableWlIndex(freqMap); break; case XPONDER : // HARD CODED 96 - for (long i = 1; i <= 96; i++) { + for (long i = 1; i <= FixedGridConstant.NB_CHANNELS; i++) { this.availableWLindex.add(i); } break; @@ -201,8 +195,8 @@ public class PceOpticalNode implements PceNode { for (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network .node.TerminationPoint tp : allTps) { TerminationPoint1 cntp1 = tp.augmentation(TerminationPoint1.class); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1 nttp1 = tp - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1 nttp1 = tp + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529 .TerminationPoint1.class); if (cntp1.getTpType() == OpenroadmTpType.XPONDERNETWORK) { if (nttp1 != null && nttp1.getXpdrNetworkAttributes().getWavelength() != null) { @@ -213,8 +207,8 @@ public class PceOpticalNode implements PceNode { } // find Client of this network TP String client; - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1 tpceTp1 = - tp.augmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129 + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1 tpceTp1 = + tp.augmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019 .TerminationPoint1.class); if (tpceTp1 != null) { client = tpceTp1.getAssociatedConnectionMapPort(); @@ -370,4 +364,24 @@ public class PceOpticalNode implements PceNode { public Map> getAvailableTribSlots() { return null; } + + /** + * Get available wave length from frequency map array. + * @param freqMap byte[] + */ + private void updateAvailableWlIndex(byte[] freqMap) { + if (freqMap == null) { + LOG.warn("No frequency map for node {}", node); + this.valid = false; + return; + } + long wlIndex = 1; + for (int i = 0; i < freqMap.length; i++) { + if (freqMap[i] == (byte)GridConstant.AVAILABLE_SLOT_VALUE) { + LOG.debug("Adding channel {} to available wave length index",wlIndex); + this.availableWLindex.add(wlIndex); + } + wlIndex++; + } + } } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java index ec1043fc1..0d5bb481a 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java @@ -16,19 +16,19 @@ import java.util.Map; import java.util.TreeMap; import java.util.stream.Collectors; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPools; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev181130.ODTU4TsAllocated; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.SwitchingPools; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GEODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If10GEODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If1GEODU0; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.IfOCHOTU4ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODTU4TsAllocated; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.SwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GEODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GEODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If1GEODU0; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCHOTU4ODU4; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; @@ -110,8 +110,8 @@ public class PceOtnNode implements PceNode { for (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network .node.TerminationPoint tp : allTps) { - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.@Nullable TerminationPoint1 ocnTp1 - = tp.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.@Nullable TerminationPoint1 ocnTp1 + = tp.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1.class); //TODO many nested if-structures below, this needs to be reworked if (OpenroadmTpType.XPONDERNETWORK.equals(ocnTp1.getTpType()) && this.otnServiceType.equals("ODU4")) { @@ -302,9 +302,9 @@ public class PceOtnNode implements PceNode { if (this.nodeType != OpenroadmNodeType.TPDR) { return true; } - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1 node1 = + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1 node1 = node.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1.class); + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1.class); SwitchingPools sp = node1.getSwitchingPools(); List osp = new ArrayList<>(sp.nonnullOduSwitchingPools().values()); for (OduSwitchingPools ospx : osp) { @@ -347,7 +347,7 @@ public class PceOtnNode implements PceNode { .getTerminationPoint().values().stream() .filter(type -> type .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1.class) .getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) .collect(Collectors.toList()); @@ -371,7 +371,7 @@ public class PceOtnNode implements PceNode { .getTerminationPoint().values().stream() .filter(type -> type .augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1.class) + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1.class) .getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) .collect(Collectors.toList()); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java b/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java index f3fc3b0be..c22a068f8 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java @@ -24,7 +24,7 @@ import org.opendaylight.transportpce.pce.networkanalyzer.PceResult; import org.opendaylight.transportpce.pce.utils.NodeUtils; import org.opendaylight.transportpce.pce.utils.PceTestData; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java index 097644acd..66eaa45fd 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java @@ -14,7 +14,7 @@ import org.junit.Test; import org.opendaylight.transportpce.pce.networkanalyzer.PceLink; import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode; import org.opendaylight.transportpce.pce.utils.NodeUtils; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java index 3776e404f..ad23a1f8d 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java @@ -22,8 +22,8 @@ import org.opendaylight.transportpce.pce.networkanalyzer.PceResult; import org.opendaylight.transportpce.pce.utils.NodeUtils; import org.opendaylight.transportpce.pce.utils.PceTestData; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java index 5f9145f3b..db7ce0f65 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java @@ -16,16 +16,16 @@ import org.junit.Before; import org.junit.Test; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.OMSAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.SpanBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -194,7 +194,6 @@ public class PceLinkTest extends AbstractTest { .setDestTp(destTp); LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp)); - LinkId oppositeLinkId = new LinkId("opposite"); //For setting up attributes for openRoadm augment LinkConcatenation linkConcatenation = new LinkConcatenationBuilder() .setSRLGLength(Uint32.valueOf(20)) @@ -206,7 +205,7 @@ public class PceLinkTest extends AbstractTest { .setSpanlossCurrent(new RatioDB(new BigDecimal("55"))) .setLinkConcatenation(Map.of(linkConcatenation.key(), linkConcatenation - )).build()).setOppositeLink(oppositeLinkId); + )).build()); LinkBuilder linkBuilder = new LinkBuilder() @@ -217,8 +216,8 @@ public class PceLinkTest extends AbstractTest { linkBuilder.addAugmentation(link1Builder.build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder linkBuilderNetworkLink - = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder linkBuilderNetworkLink + = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder() .setOMSAttributes(omsAttributesBuilder .build()); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java index aa4baad56..7a7dc1732 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java @@ -8,31 +8,38 @@ package org.opendaylight.transportpce.pce.networkanalyzer; +import java.math.BigDecimal; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.transportpce.common.NetworkUtils; -import org.opendaylight.transportpce.pce.utils.TransactionUtils; +import org.opendaylight.transportpce.common.fixedflex.FixedGridConstant; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; +import org.opendaylight.transportpce.common.fixedflex.GridUtils; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrClientAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -46,7 +53,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder; -import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.Uint16; public class PceOpticalNodeTest extends AbstractTest { @@ -215,7 +222,7 @@ public class PceOpticalNodeTest extends AbstractTest { TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(); xpdrTpBldr.addAugmentation(tp1Bldr.build()); xpdrTpBldr.addAugmentation(createAnotherTerminationPoint().build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1(); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 node1 = getNode1(); TerminationPoint xpdr = xpdrTpBldr.build(); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = new Node1Builder() @@ -239,7 +246,7 @@ public class PceOpticalNodeTest extends AbstractTest { xpdrTpBldr.addAugmentation(tp1Bldr.build()); xpdrTpBldr.addAugmentation(createAnotherTerminationPoint().build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty(); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 node1 = getNode1Empty(); TerminationPoint xpdr = xpdrTpBldr.build(); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = new Node1Builder() @@ -256,40 +263,50 @@ public class PceOpticalNodeTest extends AbstractTest { } private org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 getNode1() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder() .setSrgAttributes(getSrgAttributes()) .setDegreeAttributes(getDegAttributes()) .build(); } private org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1Empty() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 getNode1Empty() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder() .setSrgAttributes(getEmptySrgAttributes()) .setDegreeAttributes(getEmptyDegAttributes()) .build(); } private DegreeAttributes getDegAttributes() { - AvailableWavelengths aval = new AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(20)).build(); - return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of(aval.key(),aval)) + byte[] byteArray = new byte[FixedGridConstant.NB_CHANNELS]; + Arrays.fill(byteArray, (byte) GridConstant.USED_SLOT_VALUE); + byteArray[7] = (byte) GridConstant.AVAILABLE_SLOT_VALUE; + Map waveMap = new HashMap<>(); + AvailFreqMaps availFreqMaps = new AvailFreqMapsBuilder().setMapName(GridConstant.C_BAND) + .setFreqMapGranularity(new FrequencyGHz(BigDecimal.valueOf(FixedGridConstant.GRANULARITY))) + .setStartEdgeFreq(new FrequencyTHz(BigDecimal.valueOf(FixedGridConstant.START_EDGE_FREQUENCY))) + .setEffectiveBits(Uint16.valueOf(FixedGridConstant.EFFECTIVE_BITS)) + .setFreqMap(byteArray) + .build(); + waveMap.put(availFreqMaps.key(), availFreqMaps); + return new DegreeAttributesBuilder() + .setAvailFreqMaps(waveMap) .build(); } private SrgAttributes getSrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(TransactionUtils.create96AvalWaveSrg()).build(); + return new SrgAttributesBuilder().setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()).build(); } private DegreeAttributes getEmptyDegAttributes() { return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of()) + .setAvailFreqMaps(Map.of()) .build(); } private SrgAttributes getEmptySrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(Map.of()).build(); + return new SrgAttributesBuilder().setAvailFreqMaps(Map.of()).build(); } private TerminationPointBuilder getTerminationPointBuilder() { @@ -303,12 +320,11 @@ public class PceOpticalNodeTest extends AbstractTest { } private org.opendaylight.yang.gen - .v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder createAnotherTerminationPoint() { + .v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder createAnotherTerminationPoint() { return new org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder() - .setTpType(OpenroadmTpType.XPONDERNETWORK) - .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) - .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder() + .setCtpAttributes((new CtpAttributesBuilder()).build()) + .setCpAttributes((new CpAttributesBuilder()).build()) .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build()) diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNodeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNodeTest.java index e7d6d7e47..32db757d1 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNodeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNodeTest.java @@ -15,34 +15,33 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.common.fixedflex.GridUtils; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfaces; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfacesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GEODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If10GEODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If1GEODU0; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.IfOCHOTU4ODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrClientAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfaces; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfacesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GEODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GEODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If1GEODU0; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCHOTU4ODU4; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -56,7 +55,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder; -import org.opendaylight.yangtools.yang.common.Uint32; public class PceOtnNodeTest extends AbstractTest { @@ -219,7 +217,7 @@ public class PceOtnNodeTest extends AbstractTest { xpdrTpBldr.addAugmentation(createAnother2TerminationPoint(openroadmTpType).build()); xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1(); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 node1 = getNode1(); TerminationPoint xpdr = xpdrTpBldr.build(); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = new Node1Builder() @@ -250,7 +248,7 @@ public class PceOtnNodeTest extends AbstractTest { xpdrTpBldr.addAugmentation(tp1Bldr.build()); xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty(); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 node1 = getNode1Empty(); TerminationPoint xpdr = xpdrTpBldr.build(); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = new Node1Builder() @@ -267,42 +265,39 @@ public class PceOtnNodeTest extends AbstractTest { } private org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 getNode1() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder() .setSrgAttributes(getSrgAttributes()) .setDegreeAttributes(getDegAttributes()) .build(); } private org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1Empty() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 getNode1Empty() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder() .setSrgAttributes(getEmptySrgAttributes()) .setDegreeAttributes(getEmptyDegAttributes()) .build(); } private DegreeAttributes getDegAttributes() { - AvailableWavelengths aval = new AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(20)) - .build(); - return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of(aval.key(),aval)) + return new DegreeAttributesBuilder() + .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()) .build(); } private SrgAttributes getSrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()).build(); + return new SrgAttributesBuilder().setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()).build(); } private DegreeAttributes getEmptyDegAttributes() { return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of()) + .setAvailFreqMaps(Map.of()) .build(); } private SrgAttributes getEmptySrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(Map.of()).build(); + return new SrgAttributesBuilder().setAvailFreqMaps(Map.of()).build(); } private TerminationPointBuilder getTerminationPointBuilder(OpenroadmTpType openroadmTpType) { @@ -319,14 +314,13 @@ public class PceOtnNodeTest extends AbstractTest { } private org.opendaylight.yang.gen - .v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder createAnotherTerminationPoint( + .v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder createAnotherTerminationPoint( OpenroadmTpType openroadmTpType ) { return new org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder() - .setTpType(openroadmTpType) - .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) - .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder() + .setCtpAttributes((new CtpAttributesBuilder()).build()) + .setCpAttributes((new CpAttributesBuilder()).build()) .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build()) @@ -336,7 +330,7 @@ public class PceOtnNodeTest extends AbstractTest { .setTailEquipmentId("destNode" + "--" + "destTp").build()); } - private org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + private org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1Builder createOTNTerminationPoint(OpenroadmTpType openroadmTpType) { SupportedInterfaceCapability supIfCapa = new SupportedInterfaceCapabilityBuilder() @@ -365,43 +359,17 @@ public class PceOtnNodeTest extends AbstractTest { XpdrTpPortConnectionAttributesBuilder xtpcaBldr = new XpdrTpPortConnectionAttributesBuilder(); - return new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + return new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1Builder() - .setTpType(openroadmTpType) .setTpSupportedInterfaces(tpSupIf) .setXpdrTpPortConnectionAttributes(xtpcaBldr.build()); } - private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1Builder createAnother2TerminationPoint(OpenroadmTpType openroadmTpType) { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1Builder() .setTpType(openroadmTpType); } - private static Map< - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsKey, - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths> - create96AvalWaveSrg() { - - Map< - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsKey, - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths> - waveList = new HashMap<>(); - - for (int i = 1; i < 97; i++) { - org.opendaylight.yang.gen - .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsBuilder - avalBldr = new org.opendaylight.yang.gen - .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(i)) - .withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsKey(Uint32.valueOf(i))); - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths - aval = avalBldr.build(); - waveList.put(aval.key(),aval); - } - return waveList; - } - } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java index a1777e861..1ffb64329 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/NodeUtils.java @@ -14,47 +14,45 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import org.opendaylight.transportpce.common.NetworkUtils; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLinkKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfaces; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.TpSupportedInterfacesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If100GEODU4; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If10GEODU2e; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.If1GEODU0; -import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181130.IfOCHOTU4ODU4; +import org.opendaylight.transportpce.common.fixedflex.GridUtils; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.FiberPmd; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLinkKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.amplified.link.SectionElementBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.OMSAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.AmplifiedLinkBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.SpanBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrClientAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapabilityKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfaces; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.TpSupportedInterfacesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.termination.point.XpdrTpPortConnectionAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GEODU4; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GEODU2e; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If1GEODU0; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCHOTU4ODU4; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder; @@ -92,31 +90,24 @@ public class NodeUtils { LinkId oppositeLinkId = new LinkId("OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1"); //For setting up attributes for openRoadm augment OMSAttributesBuilder omsAttributesBuilder = - new OMSAttributesBuilder().setOppositeLink(oppositeLinkId); + new OMSAttributesBuilder(); // Augementation - Augmentation aug11 = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 + Augmentation aug11 = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529 .Link1Builder() - .setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) .setOMSAttributes(new OMSAttributesBuilder() - .setOppositeLink(new LinkId("OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1")) .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); + .build()) + .build(); - LinkBuilder linkBuilder = new LinkBuilder() + return new LinkBuilder() .setSource(ietfSrcLinkBldr.build()) .setDestination(ietfDestLinkBldr.build()) .setLinkId(linkId) .addAugmentation(aug11) - .withKey(new LinkKey(linkId)); - - linkBuilder.addAugmentation(link1Builder.build()); - return linkBuilder; + .withKey(new LinkKey(linkId)) + .addAugmentation(link1Builder.setOppositeLink(oppositeLinkId).build()); } public static LinkBuilder createRoadmToRoadm(String srcNode, String destNode, String srcTp, String destTp) { @@ -186,19 +177,18 @@ public class NodeUtils { Map amplifiedLinkValues = new HashMap<>(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al = + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder() - .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130 + .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529 .amplified.link.attributes.amplified.link.section.element.section.element .SpanBuilder() .setSpan( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified .link.attributes.amplified.link.section.element.section .element.span.SpanBuilder() .setAdministrativeState(AdminStates.InService) .setAutoSpanloss(true) - .setClfi("clfi") .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) .setLinkConcatenation(linkConcentationValues) .setSpanlossBase(new RatioDB(BigDecimal.ONE)) @@ -207,20 +197,19 @@ public class NodeUtils { .build()) .build()) .setSectionEltNumber(Uint16.valueOf(1)).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al2 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al2 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder() .setSectionElement( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link .attributes.amplified.link.section.element.section.element.SpanBuilder() .setSpan( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130 + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529 .amplified.link .attributes.amplified.link.section.element.section.element.span .SpanBuilder() .setAdministrativeState(AdminStates.InService) .setAutoSpanloss(true) - .setClfi("clfi") .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) .setLinkConcatenation(linkConcentationValues) .setSpanlossBase(new RatioDB(BigDecimal.ONE)) @@ -233,20 +222,15 @@ public class NodeUtils { amplifiedLinkValues.put(al.key(),al); amplifiedLinkValues.put(al2.key(),al2); Augmentation aug11 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder() - .setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) + new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder() .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) .setOMSAttributes(new OMSAttributesBuilder() .setAmplifiedLink(new AmplifiedLinkBuilder() .setAmplifiedLink(amplifiedLinkValues) .build()) - .setOppositeLink(new LinkId("link 1")) .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); + .build()) + .build(); TransactionUtils.getNetworkForSpanLoss(); return new LinkBuilder() @@ -285,7 +269,7 @@ public class NodeUtils { public static NodeBuilder getOTNNodeBuilder(Map supportingNodes1, OpenroadmTpType openroadmTpType) { - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType); TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType); xpdrTpBldr @@ -294,7 +278,7 @@ public class NodeUtils { xpdrTpBldr.addAugmentation(createAnother2TerminationPoint(openroadmTpType).build()); xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1(); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 node1 = getNode1(); TerminationPoint xpdr = xpdrTpBldr.build(); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = new Node1Builder() @@ -320,13 +304,13 @@ public class NodeUtils { public static NodeBuilder getOTNNodeBuilderEmpty(Map supportingNodes1, OpenroadmTpType openroadmTpType) { - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder tp1Bldr = + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType); TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder(openroadmTpType); xpdrTpBldr.addAugmentation(tp1Bldr.build()); xpdrTpBldr.addAugmentation(createAnotherTerminationPoint(openroadmTpType).build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty(); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 node1 = getNode1Empty(); TerminationPoint xpdr = xpdrTpBldr.build(); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 = new Node1Builder() @@ -343,42 +327,39 @@ public class NodeUtils { } private static org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 getNode1() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder() .setSrgAttributes(getSrgAttributes()) .setDegreeAttributes(getDegAttributes()) .build(); } private static org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1Empty() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 getNode1Empty() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder() .setSrgAttributes(getEmptySrgAttributes()) .setDegreeAttributes(getEmptyDegAttributes()) .build(); } private static DegreeAttributes getDegAttributes() { - AvailableWavelengths aval = new AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(20)) - .build(); return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of(aval.key(),aval)) + .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()) .build(); } private static SrgAttributes getSrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()).build(); + return new SrgAttributesBuilder().setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()).build(); } private static DegreeAttributes getEmptyDegAttributes() { return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of()) + .setAvailFreqMaps(Map.of()) .build(); } private static SrgAttributes getEmptySrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(Map.of()).build(); + return new SrgAttributesBuilder().setAvailFreqMaps(Map.of()).build(); } private static TerminationPointBuilder getTerminationPointBuilder(OpenroadmTpType openroadmTpType) { @@ -387,23 +368,22 @@ public class NodeUtils { .addAugmentation(createOTNTerminationPoint(openroadmTpType).build()); } - private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder + private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder getTerminationPoint1Builder(OpenroadmTpType openroadmTpType) { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() .setTpType(openroadmTpType); } private static org.opendaylight.yang.gen - .v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder createAnotherTerminationPoint( + .v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder createAnotherTerminationPoint( OpenroadmTpType openroadmTpType ) { return new org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder() - .setTpType(openroadmTpType) - .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) - .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder() + .setCtpAttributes((new CtpAttributesBuilder()).build()) + .setCpAttributes((new CpAttributesBuilder()).build()) .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build()) @@ -413,7 +393,7 @@ public class NodeUtils { .setTailEquipmentId("destNode" + "--" + "destTp").build()); } - private static org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + private static org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1Builder createOTNTerminationPoint(OpenroadmTpType openroadmTpType) { SupportedInterfaceCapability supIfCapa = new SupportedInterfaceCapabilityBuilder() @@ -442,43 +422,17 @@ public class NodeUtils { XpdrTpPortConnectionAttributesBuilder xtpcaBldr = new XpdrTpPortConnectionAttributesBuilder(); - return new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + return new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529 .TerminationPoint1Builder() - .setTpType(openroadmTpType) .setTpSupportedInterfaces(tpSupIf) .setXpdrTpPortConnectionAttributes(xtpcaBldr.build()); } - private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + private static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1Builder createAnother2TerminationPoint(OpenroadmTpType openroadmTpType) { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + return new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1Builder() .setTpType(openroadmTpType); } - private static Map create96AvalWaveSrg() { - - Map - waveList = new HashMap<>(); - - for (int i = 1; i < 97; i++) { - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsBuilder avalBldr - = new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(i)) - .withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsKey(Uint32.valueOf(i))); - org.opendaylight.yang.gen.v1.http.org.openroadm.srg - .rev181130.srg.node.attributes.AvailableWavelengths aval = - avalBldr.build(); - waveList.put(aval.key(),aval); - } - return waveList; - } - } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/TransactionUtils.java b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/TransactionUtils.java index 608e21a5a..6a2fd205e 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/TransactionUtils.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/TransactionUtils.java @@ -18,33 +18,32 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.transportpce.common.fixedflex.GridUtils; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.FiberPmd; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev181130.State; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.FiberPmd; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.Interface; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.InterfaceKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice; -import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev181130.AdminStates; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLinkKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.amplified.link.SectionElementBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.AmplifiedLinkBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLinkKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.amplified.link.SectionElementBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.span.attributes.LinkConcatenationKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.OMSAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.AmplifiedLinkBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.link.oms.attributes.SpanBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmList; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.CurrentPmListBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.group.CurrentPm; @@ -56,7 +55,6 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.v import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.val.group.MeasurementKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev171215.PmDataType; import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev171215.Validity; -import org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkBuilder; @@ -137,19 +135,18 @@ public final class TransactionUtils { Map amplifiedLinkValues = new HashMap<>(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al = + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder() - .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130 + .setSectionElement(new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529 .amplified.link.attributes.amplified.link.section.element.section.element .SpanBuilder() .setSpan( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified .link.attributes.amplified.link.section.element.section .element.span.SpanBuilder() .setAdministrativeState(AdminStates.InService) .setAutoSpanloss(true) - .setClfi("clfi") .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) .setLinkConcatenation(linkConcentationValues) .setSpanlossBase(new RatioDB(BigDecimal.ONE)) @@ -158,20 +155,19 @@ public final class TransactionUtils { .build()) .build()) .setSectionEltNumber(Uint16.valueOf(1)).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes.AmplifiedLink al2 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link.attributes + org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes.AmplifiedLink al2 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link.attributes .AmplifiedLinkBuilder().setSectionElement(new SectionElementBuilder() .setSectionElement( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.amplified.link + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529.amplified.link .attributes.amplified.link.section.element.section.element.SpanBuilder() .setSpan( - new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130 + new org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev200529 .amplified.link .attributes.amplified.link.section.element.section.element.span .SpanBuilder() .setAdministrativeState(AdminStates.InService) .setAutoSpanloss(true) - .setClfi("clfi") .setEngineeredSpanloss(new RatioDB(BigDecimal.ONE)) .setLinkConcatenation(linkConcentationValues) .setSpanlossBase(new RatioDB(BigDecimal.ONE)) @@ -183,34 +179,26 @@ public final class TransactionUtils { amplifiedLinkValues.put(al.key(),al); amplifiedLinkValues.put(al2.key(),al2); Map>, Augmentation> map = Collections.emptyMap(); - Augmentation aug11 = new Link1Builder().setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) + Augmentation aug11 = new Link1Builder() .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) .setOMSAttributes(new OMSAttributesBuilder() .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build()) - .setOppositeLink(new LinkId("link 1")) .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 aug12 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() + .build()) + .build(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1 aug12 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder() + .setOppositeLink(new LinkId("link 1")) .setLinkType(OpenroadmLinkType.ROADMTOROADM).build(); Augmentation aug21 = new Link1Builder() - .setAdministrativeGroup(Uint32.valueOf(123)) - .setAdministrativeState(State.InService) .setAmplified(true) - .setLinkLatency(Uint32.valueOf(123)) - .setLinkLength(BigDecimal.valueOf(123)) .setOMSAttributes(new OMSAttributesBuilder() .setAmplifiedLink(new AmplifiedLinkBuilder().setAmplifiedLink(amplifiedLinkValues).build()) - .setOppositeLink(new LinkId("link 1")) .setSpan(new SpanBuilder().build()) - .setTEMetric(Uint32.valueOf(123)).build()) - .setOperationalState(State.InService).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 aug22 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() + .build()) + .build(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1 aug22 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder() .setLinkType(OpenroadmLinkType.ROADMTOROADM).build(); // create the roadm-to-roadm link to be measured Link roadm2roadmLink = new LinkBuilder().setLinkId(new LinkId("ROADM-A1-to-ROADM-C1")) @@ -304,48 +292,21 @@ public final class TransactionUtils { } private static org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1() { - return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder() + .yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1 getNode1() { + return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder() .setSrgAttributes(getSrgAttributes()) .setDegreeAttributes(getDegAttributes()) .build(); } private static DegreeAttributes getDegAttributes() { - org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths - aval = new AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(20L)) - .build(); - return (new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of(aval.key(),aval)) + return new DegreeAttributesBuilder() + .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()) .build(); } private static SrgAttributes getSrgAttributes() { - return new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()).build(); - } - - public static Map create96AvalWaveSrg() { - - Map - waveMap = new HashMap<>(); - - for (int i = 1; i < 97; i++) { - org.opendaylight.yang.gen - .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsBuilder - avalBldr = new org.opendaylight.yang.gen - .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsBuilder() - .setIndex(Uint32.valueOf(i)) - .withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsKey(Uint32.valueOf(i))); - AvailableWavelengths aval = avalBldr.build(); - waveMap.put(aval.key(),aval); - } - return waveMap; + return new SrgAttributesBuilder().setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()).build(); } diff --git a/pce/src/test/resources/gnpy/gnpy_topology.json b/pce/src/test/resources/gnpy/gnpy_topology.json index 649dbc245..9f902b809 100644 --- a/pce/src/test/resources/gnpy/gnpy_topology.json +++ b/pce/src/test/resources/gnpy/gnpy_topology.json @@ -1,7 +1,6 @@ { -"ietf-network:networks":{ - "network": - { + "ietf-network:networks": { + "network": { "network-id": "openroadm-topology", "ietf-network-topology:link": [ { @@ -523,7 +522,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber12", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-2-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -555,7 +553,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber13", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-3-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -587,7 +584,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber21", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-1-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -619,7 +615,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber23", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-3-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -651,7 +646,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber25", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-5-DEG3", "dest-tp": "DEG3-TTP-RX" @@ -683,7 +677,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber31", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-1-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -715,7 +708,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber32", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-2-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -747,7 +739,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber35", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-5-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -779,7 +770,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber34", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-4-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -811,7 +801,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber45", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-5-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -843,7 +832,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber43", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-3-DEG4", "dest-tp": "DEG4-TTP-RX" @@ -875,7 +863,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber54", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-4-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -907,7 +894,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber53", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-3-DEG3", "dest-tp": "DEG3-TTP-RX" @@ -939,7 +925,6 @@ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", "org-openroadm-common-network:clfi": "fiber52", "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-2-DEG3", "dest-tp": "DEG3-TTP-RX" @@ -1365,47 +1350,24 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ + "avail-freq-maps": [ { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "SRG", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-1" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node1" } ] @@ -1431,48 +1393,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 1, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-1" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node1" } ] @@ -1498,48 +1437,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 2, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-1" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node1" } ] @@ -1597,47 +1513,24 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, + "avail-freq-maps": [ { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "SRG", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-2" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node2" } ] @@ -1663,48 +1556,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 1, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-2" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node2" } ] @@ -1730,48 +1600,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 2, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-2" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node2" } ] @@ -1797,48 +1644,24 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":3, - "available-wavelengths": [ + "avail-freq-maps": [ { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-2" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node2" } ] @@ -1896,47 +1719,24 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, + "avail-freq-maps": [ { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "SRG", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-3" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node3" } ] @@ -1962,48 +1762,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 1, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-3" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node3" } ] @@ -2029,48 +1806,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 2, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-3" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node3" } ] @@ -2096,48 +1850,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":3, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 3, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-3" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node3" } ] @@ -2163,48 +1894,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":4, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 4, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-3" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node3" } ] @@ -2262,47 +1970,24 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, + "avail-freq-maps": [ { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "SRG", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-4" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node4" } ] @@ -2328,48 +2013,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 1, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-4" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node4" } ] @@ -2395,48 +2057,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 2, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-4" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node4" } ] @@ -2494,47 +2133,24 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, + "avail-freq-maps": [ { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "SRG", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-5" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node5" } ] @@ -2560,48 +2176,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 1, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-5" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node5" } ] @@ -2627,48 +2220,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 2, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-5" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node5" } ] @@ -2694,48 +2264,25 @@ } ], "org-openroadm-network-topology:degree-attributes": { - "degree-number":3, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "degree-number": 3, + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, "org-openroadm-common-network:node-type": "DEGREE", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "OpenROADM-5" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node5" } ] @@ -2817,11 +2364,11 @@ "org-openroadm-common-network:node-type": "XPONDER", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "XPONDER-1" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node1" } ] @@ -2903,11 +2450,11 @@ "org-openroadm-common-network:node-type": "XPONDER", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "XPONDER-2" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node2" } ] @@ -2989,11 +2536,11 @@ "org-openroadm-common-network:node-type": "XPONDER", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "XPONDER-3" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node3" } ] @@ -3075,11 +2622,11 @@ "org-openroadm-common-network:node-type": "XPONDER", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "XPONDER-4" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node4" } ] @@ -3161,18 +2708,16 @@ "org-openroadm-common-network:node-type": "XPONDER", "supporting-node": [ { - "network-ref":"openroadm-network", + "network-ref": "openroadm-network", "node-ref": "XPONDER-5" }, { - "network-ref":"clli-network", + "network-ref": "clli-network", "node-ref": "Node5" } ] } - ] } - } } \ No newline at end of file diff --git a/pce/src/test/resources/topologyData/basePceTopology.json b/pce/src/test/resources/topologyData/basePceTopology.json index faf481be5..576fed7af 100644 --- a/pce/src/test/resources/topologyData/basePceTopology.json +++ b/pce/src/test/resources/topologyData/basePceTopology.json @@ -1,2317 +1,2253 @@ { - "data": { - "network": [ - { - "network-id": "openroadm-topology", - "ietf-network-topology:link": [ - { - "link-id": "OpenROADM-1-2-DEG2-DEG2-CTP-TXtoOpenROADM-1-2-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG1" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-1-SRG1-SRG1-CP-TXtoOpenROADM-1-1-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG2" - }, - "source": { - "source-node": "OpenROADM-1-1-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-1-2-SRG1-SRG1-CP-TXtoOpenROADM-1-2-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG3" - }, - "source": { - "source-node": "OpenROADM-1-2-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-1-1-SRG1-SRG1-PP1-TX-to-XPONDER-1-1XPDR-NW1-RX", - "destination": { - "dest-tp": "XPDR-NW1-RX", - "dest-node": "XPONDER-1-1" - }, - "source": { - "source-node": "OpenROADM-1-1-SRG1", - "source-tp": "SRG1-PP1-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-1-SRG1-SRG1-CP-TXtoOpenROADM-1-1-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG3" - }, - "source": { - "source-node": "OpenROADM-1-1-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-2-2-SRG1-SRG1-CP-TXtoOpenROADM-2-2-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG1" - }, - "source": { - "source-node": "OpenROADM-2-2-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-1-1-DEG2-DEG2-CTP-TXtoOpenROADM-1-1-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG1" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "XPONDER-2-2XPDR-NW5-TX-toOpenROADM-2-2-SRG1-SRG1-PP5-RX", - "destination": { - "dest-tp": "SRG1-PP5-RX", - "dest-node": "OpenROADM-2-2-SRG1" - }, - "source": { - "source-node": "XPONDER-2-2", - "source-tp": "XPDR-NW5-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-1-2-DEG2-DEG2-CTP-RXtoOpenROADM-1-2-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-1-2-SRG1" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-2-2-SRG1-SRG1-PP4-TX-to-XPONDER-2-2XPDR-NW4-RX", - "destination": { - "dest-tp": "XPDR-NW4-RX", - "dest-node": "XPONDER-2-2" - }, - "source": { - "source-node": "OpenROADM-2-2-SRG1", - "source-tp": "SRG1-PP4-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-2-SRG1-SRG1-CP-TXtoOpenROADM-1-2-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG1" - }, - "source": { - "source-node": "OpenROADM-1-2-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-2-2-DEG3-DEG3-CTP-RXtoOpenROADM-2-2-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-2-2-SRG1" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-2-2-SRG1-SRG1-PP1-TX-to-XPONDER-2-2XPDR-NW1-RX", - "destination": { - "dest-tp": "XPDR-NW1-RX", - "dest-node": "XPONDER-2-2" - }, - "source": { - "source-node": "OpenROADM-2-2-SRG1", - "source-tp": "SRG1-PP1-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-1-SRG1-SRG1-CP-TXtoOpenROADM-1-1-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG1" - }, - "source": { - "source-node": "OpenROADM-1-1-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-1-2-SRG1-SRG1-CP-TXtoOpenROADM-1-2-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG2" - }, - "source": { - "source-node": "OpenROADM-1-2-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-1-1-SRG1-SRG1-PP4-TX-to-XPONDER-1-1XPDR-NW4-RX", - "destination": { - "dest-tp": "XPDR-NW4-RX", - "dest-node": "XPONDER-1-1" - }, - "source": { - "source-node": "OpenROADM-1-1-SRG1", - "source-tp": "SRG1-PP4-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-2-1-SRG1-SRG1-CP-TXtoOpenROADM-2-1-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG3" - }, - "source": { - "source-node": "OpenROADM-2-1-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "XPONDER-1-1XPDR-NW5-TX-toOpenROADM-1-1-SRG1-SRG1-PP5-RX", - "destination": { - "dest-tp": "SRG1-PP5-RX", - "dest-node": "OpenROADM-1-1-SRG1" - }, - "source": { - "source-node": "XPONDER-1-1", - "source-tp": "XPDR-NW5-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-1-SRG1-SRG1-CP-TXtoOpenROADM-2-1-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG1" - }, - "source": { - "source-node": "OpenROADM-2-1-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-2-2-SRG1-SRG1-CP-TXtoOpenROADM-2-2-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG2" - }, - "source": { - "source-node": "OpenROADM-2-2-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "XPONDER-1-2XPDR-NW3-TX-toOpenROADM-1-2-SRG1-SRG1-PP3-RX", - "destination": { - "dest-tp": "SRG1-PP3-RX", - "dest-node": "OpenROADM-1-2-SRG1" - }, - "source": { - "source-node": "XPONDER-1-2", - "source-tp": "XPDR-NW3-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-1-1-DEG3-DEG3-CTP-RXtoOpenROADM-1-1-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-1-1-SRG1" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-2-1-SRG1-SRG1-CP-TXtoOpenROADM-2-1-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG2" - }, - "source": { - "source-node": "OpenROADM-2-1-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-2-2-SRG1-SRG1-CP-TXtoOpenROADM-2-2-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG3" - }, - "source": { - "source-node": "OpenROADM-2-2-SRG1", - "source-tp": "SRG1-CP-TX" - }, - "org-openroadm-network-topology:link-type": "ADD-LINK" - }, - { - "link-id": "OpenROADM-2-2-DEG3-DEG3-CTP-TXtoOpenROADM-2-2-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG2" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-2-1-DEG3-DEG3-CTP-TXtoOpenROADM-2-1-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG2" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "XPONDER-2-1XPDR-NW3-TX-toOpenROADM-2-1-SRG1-SRG1-PP3-RX", - "destination": { - "dest-tp": "SRG1-PP3-RX", - "dest-node": "OpenROADM-2-1-SRG1" - }, - "source": { - "source-node": "XPONDER-2-1", - "source-tp": "XPDR-NW3-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-1-SRG1-SRG1-PP4-TX-to-XPONDER-2-1XPDR-NW4-RX", - "destination": { - "dest-tp": "XPDR-NW4-RX", - "dest-node": "XPONDER-2-1" - }, - "source": { - "source-node": "OpenROADM-2-1-SRG1", - "source-tp": "SRG1-PP4-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "XPONDER-1-2XPDR-NW2-TX-toOpenROADM-1-2-SRG1-SRG1-PP2-RX", - "destination": { - "dest-tp": "SRG1-PP2-RX", - "dest-node": "OpenROADM-1-2-SRG1" - }, - "source": { - "source-node": "XPONDER-1-2", - "source-tp": "XPDR-NW2-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-1-SRG1-SRG1-PP1-TX-to-XPONDER-2-1XPDR-NW1-RX", - "destination": { - "dest-tp": "XPDR-NW1-RX", - "dest-node": "XPONDER-2-1" - }, - "source": { - "source-node": "OpenROADM-2-1-SRG1", - "source-tp": "SRG1-PP1-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-2-DEG2-DEG2-CTP-TXtoOpenROADM-1-2-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG3" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "XPONDER-2-1XPDR-NW2-TX-toOpenROADM-2-1-SRG1-SRG1-PP2-RX", - "destination": { - "dest-tp": "SRG1-PP2-RX", - "dest-node": "OpenROADM-2-1-SRG1" - }, - "source": { - "source-node": "XPONDER-2-1", - "source-tp": "XPDR-NW2-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-1-DEG1-DEG1-CTP-RXtoOpenROADM-2-1-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-2-1-SRG1" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-1-1-DEG2-DEG2-CTP-TXtoOpenROADM-1-1-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG3" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-1-SRG1-SRG1-PP5-TX-to-XPONDER-1-1XPDR-NW5-RX", - "destination": { - "dest-tp": "XPDR-NW5-RX", - "dest-node": "XPONDER-1-1" - }, - "source": { - "source-node": "OpenROADM-1-1-SRG1", - "source-tp": "SRG1-PP5-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-1-DEG3-to-OpenROADM-2-2-DEG3", - "destination": { - "dest-tp": "DEG3-TTP-RX", - "dest-node": "OpenROADM-2-2-DEG3" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG3", - "source-tp": "DEG3-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "OpenROADM-2-2-DEG2-DEG2-CTP-TXtoOpenROADM-2-2-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG1" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-2-SRG1-SRG1-PP3-TX-to-XPONDER-1-2XPDR-NW3-RX", - "destination": { - "dest-tp": "XPDR-NW3-RX", - "dest-node": "XPONDER-1-2" - }, - "source": { - "source-node": "OpenROADM-1-2-SRG1", - "source-tp": "SRG1-PP3-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-1-DEG1-DEG1-CTP-TXtoOpenROADM-1-1-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG2" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-2-1-DEG3-DEG3-CTP-RXtoOpenROADM-2-1-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-2-1-SRG1" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-1-2-DEG1-DEG1-CTP-TXtoOpenROADM-1-2-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG3" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-2-2-DEG2-to-OpenROADM-2-1-DEG2", - "destination": { - "dest-tp": "DEG2-TTP-RX", - "dest-node": "OpenROADM-2-1-DEG2" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG2", - "source-tp": "DEG2-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "XPONDER-2-2XPDR-NW4-TX-toOpenROADM-2-2-SRG1-SRG1-PP4-RX", - "destination": { - "dest-tp": "SRG1-PP4-RX", - "dest-node": "OpenROADM-2-2-SRG1" - }, - "source": { - "source-node": "XPONDER-2-2", - "source-tp": "XPDR-NW4-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-2-DEG1-DEG1-CTP-RXtoOpenROADM-2-2-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-2-2-SRG1" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-2-1-DEG2-to-OpenROADM-2-2-DEG2", - "destination": { - "dest-tp": "DEG2-TTP-RX", - "dest-node": "OpenROADM-2-2-DEG2" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG2", - "source-tp": "DEG2-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "OpenROADM-2-2-DEG3-DEG3-CTP-TXtoOpenROADM-2-2-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG1" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-2-1-DEG1-DEG1-CTP-TXtoOpenROADM-2-1-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG2" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "XPONDER-1-1XPDR-NW3-TX-toOpenROADM-1-1-SRG1-SRG1-PP3-RX", - "destination": { - "dest-tp": "SRG1-PP3-RX", - "dest-node": "OpenROADM-1-1-SRG1" - }, - "source": { - "source-node": "XPONDER-1-1", - "source-tp": "XPDR-NW3-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "XPONDER-2-2XPDR-NW2-TX-toOpenROADM-2-2-SRG1-SRG1-PP2-RX", - "destination": { - "dest-tp": "SRG1-PP2-RX", - "dest-node": "OpenROADM-2-2-SRG1" - }, - "source": { - "source-node": "XPONDER-2-2", - "source-tp": "XPDR-NW2-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-1-1-DEG2-to-OpenROADM-1-2-DEG2", - "destination": { - "dest-tp": "DEG2-TTP-RX", - "dest-node": "OpenROADM-1-2-DEG2" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG2", - "source-tp": "DEG2-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "XPONDER-1-1XPDR-NW1-TX-toOpenROADM-1-1-SRG1-SRG1-PP1-RX", - "destination": { - "dest-tp": "SRG1-PP1-RX", - "dest-node": "OpenROADM-1-1-SRG1" - }, - "source": { - "source-node": "XPONDER-1-1", - "source-tp": "XPDR-NW1-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-1-DEG2-DEG2-CTP-TXtoOpenROADM-2-1-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG3" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-1-DEG1-DEG1-CTP-RXtoOpenROADM-1-1-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-1-1-SRG1" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-2-1-SRG1-SRG1-PP3-TX-to-XPONDER-2-1XPDR-NW3-RX", - "destination": { - "dest-tp": "XPDR-NW3-RX", - "dest-node": "XPONDER-2-1" - }, - "source": { - "source-node": "OpenROADM-2-1-SRG1", - "source-tp": "SRG1-PP3-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-2-1-DEG2-DEG2-CTP-RXtoOpenROADM-2-1-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-2-1-SRG1" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "XPONDER-1-2XPDR-NW5-TX-toOpenROADM-1-2-SRG1-SRG1-PP5-RX", - "destination": { - "dest-tp": "SRG1-PP5-RX", - "dest-node": "OpenROADM-1-2-SRG1" - }, - "source": { - "source-node": "XPONDER-1-2", - "source-tp": "XPDR-NW5-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "XPONDER-2-1XPDR-NW5-TX-toOpenROADM-2-1-SRG1-SRG1-PP5-RX", - "destination": { - "dest-tp": "SRG1-PP5-RX", - "dest-node": "OpenROADM-2-1-SRG1" - }, - "source": { - "source-node": "XPONDER-2-1", - "source-tp": "XPDR-NW5-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-1-2-SRG1-SRG1-PP2-TX-to-XPONDER-1-2XPDR-NW2-RX", - "destination": { - "dest-tp": "XPDR-NW2-RX", - "dest-node": "XPONDER-1-2" - }, - "source": { - "source-node": "OpenROADM-1-2-SRG1", - "source-tp": "SRG1-PP2-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "XPONDER-2-2XPDR-NW3-TX-toOpenROADM-2-2-SRG1-SRG1-PP3-RX", - "destination": { - "dest-tp": "SRG1-PP3-RX", - "dest-node": "OpenROADM-2-2-SRG1" - }, - "source": { - "source-node": "XPONDER-2-2", - "source-tp": "XPDR-NW3-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-1-DEG1-DEG1-CTP-TXtoOpenROADM-2-1-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG3" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-1-DEG3-DEG3-CTP-TXtoOpenROADM-1-1-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG2" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-2-SRG1-SRG1-PP5-TX-to-XPONDER-1-2XPDR-NW5-RX", - "destination": { - "dest-tp": "XPDR-NW5-RX", - "dest-node": "XPONDER-1-2" - }, - "source": { - "source-node": "OpenROADM-1-2-SRG1", - "source-tp": "SRG1-PP5-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX", - "destination": { - "dest-tp": "SRG1-PP1-RX", - "dest-node": "OpenROADM-1-2-SRG1" - }, - "source": { - "source-node": "XPONDER-1-2", - "source-tp": "XPDR-NW1-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-1-1-DEG3-DEG3-CTP-TXtoOpenROADM-1-1-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG1" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-2-DEG1-DEG1-CTP-TXtoOpenROADM-1-2-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG2" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-2-DEG2-to-OpenROADM-1-1-DEG2", - "destination": { - "dest-tp": "DEG2-TTP-RX", - "dest-node": "OpenROADM-1-1-DEG2" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG2", - "source-tp": "DEG2-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "XPONDER-2-1XPDR-NW4-TX-toOpenROADM-2-1-SRG1-SRG1-PP4-RX", - "destination": { - "dest-tp": "SRG1-PP4-RX", - "dest-node": "OpenROADM-2-1-SRG1" - }, - "source": { - "source-node": "XPONDER-2-1", - "source-tp": "XPDR-NW4-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-2-DEG1-DEG1-CTP-TXtoOpenROADM-2-2-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG3" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-2-DEG3-DEG3-CTP-TXtoOpenROADM-1-2-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG1" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "XPONDER-2-1XPDR-NW1-TX-toOpenROADM-2-1-SRG1-SRG1-PP1-RX", - "destination": { - "dest-tp": "SRG1-PP1-RX", - "dest-node": "OpenROADM-2-1-SRG1" - }, - "source": { - "source-node": "XPONDER-2-1", - "source-tp": "XPDR-NW1-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-2-SRG1-SRG1-PP2-TX-to-XPONDER-2-2XPDR-NW2-RX", - "destination": { - "dest-tp": "XPDR-NW2-RX", - "dest-node": "XPONDER-2-2" - }, - "source": { - "source-node": "OpenROADM-2-2-SRG1", - "source-tp": "SRG1-PP2-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-1-SRG1-SRG1-PP2-TX-to-XPONDER-1-1XPDR-NW2-RX", - "destination": { - "dest-tp": "XPDR-NW2-RX", - "dest-node": "XPONDER-1-1" - }, - "source": { - "source-node": "OpenROADM-1-1-SRG1", - "source-tp": "SRG1-PP2-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-2-2-SRG1-SRG1-PP5-TX-to-XPONDER-2-2XPDR-NW5-RX", - "destination": { - "dest-tp": "XPDR-NW5-RX", - "dest-node": "XPONDER-2-2" - }, - "source": { - "source-node": "OpenROADM-2-2-SRG1", - "source-tp": "SRG1-PP5-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-2-DEG1-DEG1-CTP-RXtoOpenROADM-1-2-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-1-2-SRG1" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "XPONDER-1-2XPDR-NW4-TX-toOpenROADM-1-2-SRG1-SRG1-PP4-RX", - "destination": { - "dest-tp": "SRG1-PP4-RX", - "dest-node": "OpenROADM-1-2-SRG1" - }, - "source": { - "source-node": "XPONDER-1-2", - "source-tp": "XPDR-NW4-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-1-2-DEG3-DEG3-CTP-RXtoOpenROADM-1-2-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-1-2-SRG1" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-2-2-DEG1-to-OpenROADM-2-1-DEG1", - "destination": { - "dest-tp": "DEG1-TTP-RX", - "dest-node": "OpenROADM-2-1-DEG1" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG1", - "source-tp": "DEG1-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "OpenROADM-1-1-DEG2-DEG2-CTP-RXtoOpenROADM-1-1-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-1-1-SRG1" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "OpenROADM-2-2-DEG2-DEG2-CTP-TXtoOpenROADM-2-2-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG3" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-2-1-DEG2-DEG2-CTP-TXtoOpenROADM-2-1-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG1" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-2-2-SRG1-SRG1-PP3-TX-to-XPONDER-2-2XPDR-NW3-RX", - "destination": { - "dest-tp": "XPDR-NW3-RX", - "dest-node": "XPONDER-2-2" - }, - "source": { - "source-node": "OpenROADM-2-2-SRG1", - "source-tp": "SRG1-PP3-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-2-1-SRG1-SRG1-PP2-TX-to-XPONDER-2-1XPDR-NW2-RX", - "destination": { - "dest-tp": "XPDR-NW2-RX", - "dest-node": "XPONDER-2-1" - }, - "source": { - "source-node": "OpenROADM-2-1-SRG1", - "source-tp": "SRG1-PP2-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-2-1-SRG1-SRG1-PP5-TX-to-XPONDER-2-1XPDR-NW5-RX", - "destination": { - "dest-tp": "XPDR-NW5-RX", - "dest-node": "XPONDER-2-1" - }, - "source": { - "source-node": "OpenROADM-2-1-SRG1", - "source-tp": "SRG1-PP5-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-1-DEG1-DEG1-CTP-TXtoOpenROADM-1-1-DEG3-DEG3-CTP-RX", - "destination": { - "dest-tp": "DEG3-CTP-RX", - "dest-node": "OpenROADM-1-1-DEG3" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-2-DEG1-to-OpenROADM-1-1-DEG1", - "destination": { - "dest-tp": "DEG1-TTP-RX", - "dest-node": "OpenROADM-1-1-DEG1" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG1", - "source-tp": "DEG1-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "XPONDER-2-2XPDR-NW1-TX-toOpenROADM-2-2-SRG1-SRG1-PP1-RX", - "destination": { - "dest-tp": "SRG1-PP1-RX", - "dest-node": "OpenROADM-2-2-SRG1" - }, - "source": { - "source-node": "XPONDER-2-2", - "source-tp": "XPDR-NW1-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-1-1-SRG1-SRG1-PP3-TX-to-XPONDER-1-1XPDR-NW3-RX", - "destination": { - "dest-tp": "XPDR-NW3-RX", - "dest-node": "XPONDER-1-1" - }, - "source": { - "source-node": "OpenROADM-1-1-SRG1", - "source-tp": "SRG1-PP3-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-1-1-DEG1-to-OpenROADM-1-2-DEG1", - "destination": { - "dest-tp": "DEG1-TTP-RX", - "dest-node": "OpenROADM-1-2-DEG1" - }, - "source": { - "source-node": "OpenROADM-1-1-DEG1", - "source-tp": "DEG1-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "OpenROADM-1-2-DEG3-DEG3-CTP-TXtoOpenROADM-1-2-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-1-2-DEG2" - }, - "source": { - "source-node": "OpenROADM-1-2-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-1-2-SRG1-SRG1-PP1-TX-to-XPONDER-1-2XPDR-NW1-RX", - "destination": { - "dest-tp": "XPDR-NW1-RX", - "dest-node": "XPONDER-1-2" - }, - "source": { - "source-node": "OpenROADM-1-2-SRG1", - "source-tp": "SRG1-PP1-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-2-2-DEG3-to-OpenROADM-1-1-DEG3", - "destination": { - "dest-tp": "DEG3-TTP-RX", - "dest-node": "OpenROADM-1-1-DEG3" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG3", - "source-tp": "DEG3-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "XPONDER-1-1XPDR-NW4-TX-toOpenROADM-1-1-SRG1-SRG1-PP4-RX", - "destination": { - "dest-tp": "SRG1-PP4-RX", - "dest-node": "OpenROADM-1-1-SRG1" - }, - "source": { - "source-node": "XPONDER-1-1", - "source-tp": "XPDR-NW4-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - }, - { - "link-id": "OpenROADM-2-1-DEG3-DEG3-CTP-TXtoOpenROADM-2-1-DEG1-DEG1-CTP-RX", - "destination": { - "dest-tp": "DEG1-CTP-RX", - "dest-node": "OpenROADM-2-1-DEG1" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG3", - "source-tp": "DEG3-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-2-2-DEG1-DEG1-CTP-TXtoOpenROADM-2-2-DEG2-DEG2-CTP-RX", - "destination": { - "dest-tp": "DEG2-CTP-RX", - "dest-node": "OpenROADM-2-2-DEG2" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG1", - "source-tp": "DEG1-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "EXPRESS-LINK" - }, - { - "link-id": "OpenROADM-2-1-DEG1-to-OpenROADM-2-2-DEG1", - "destination": { - "dest-tp": "DEG1-TTP-RX", - "dest-node": "OpenROADM-2-2-DEG1" - }, - "source": { - "source-node": "OpenROADM-2-1-DEG1", - "source-tp": "DEG1-TTP-TX" - }, - "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" - }, - { - "link-id": "OpenROADM-1-2-SRG1-SRG1-PP4-TX-to-XPONDER-1-2XPDR-NW4-RX", - "destination": { - "dest-tp": "XPDR-NW4-RX", - "dest-node": "XPONDER-1-2" - }, - "source": { - "source-node": "OpenROADM-1-2-SRG1", - "source-tp": "SRG1-PP4-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-INPUT" - }, - { - "link-id": "OpenROADM-2-2-DEG2-DEG2-CTP-RXtoOpenROADM-2-2-SRG1-SRG1-CP-TX", - "destination": { - "dest-tp": "SRG1-CP-RX", - "dest-node": "OpenROADM-2-2-SRG1" - }, - "source": { - "source-node": "OpenROADM-2-2-DEG2", - "source-tp": "DEG2-CTP-TX" - }, - "org-openroadm-network-topology:link-type": "DROP-LINK" - }, - { - "link-id": "XPONDER-1-1XPDR-NW2-TX-toOpenROADM-1-1-SRG1-SRG1-PP2-RX", - "destination": { - "dest-tp": "SRG1-PP2-RX", - "dest-node": "OpenROADM-1-1-SRG1" - }, - "source": { - "source-node": "XPONDER-1-1", - "source-tp": "XPDR-NW2-TX" - }, - "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" - } - ], - "node": [ - { - "node-id": "OpenROADM-1-1-SRG1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "SRG1-PP2-TX" - }, - { - "tp-id": "SRG1-PP3-RX" - }, - { - "tp-id": "SRG1-PP2-RX" - }, - { - "tp-id": "SRG1-PP3-TX" - }, - { - "tp-id": "SRG1-PP1-TX" - }, - { - "tp-id": "SRG1-PP4-RX" - }, - { - "tp-id": "SRG1-PP5-RX" - }, - { - "tp-id": "SRG1-CP-RX" - }, - { - "tp-id": "SRG1-PP1-RX" - }, - { - "tp-id": "SRG1-CP-TX" - }, - { - "tp-id": "SRG1-PP4-TX" - }, - { - "tp-id": "SRG1-PP5-TX" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-1-1" - } - ], - "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 1 - }, - { - "index": 2 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - }, - "org-openroadm-network-topology:node-type": "SRG" - }, - { - "node-id": "OpenROADM-2-2-SRG1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "SRG1-PP2-TX" - }, - { - "tp-id": "SRG1-PP3-RX" - }, - { - "tp-id": "SRG1-PP2-RX" - }, - { - "tp-id": "SRG1-PP3-TX" - }, - { - "tp-id": "SRG1-PP1-TX" - }, - { - "tp-id": "SRG1-PP4-RX" - }, - { - "tp-id": "SRG1-PP5-RX" - }, - { - "tp-id": "SRG1-CP-RX" - }, - { - "tp-id": "SRG1-PP1-RX" - }, - { - "tp-id": "SRG1-CP-TX" - }, - { - "tp-id": "SRG1-PP4-TX" - }, - { - "tp-id": "SRG1-PP5-TX" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-2-2" - } - ], - "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 5 - }, - { - "index": 6 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - }, - "org-openroadm-network-topology:node-type": "SRG" - }, - { - "node-id": "OpenROADM-1-2-SRG1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "SRG1-PP2-TX" - }, - { - "tp-id": "SRG1-PP3-RX" - }, - { - "tp-id": "SRG1-PP2-RX" - }, - { - "tp-id": "SRG1-PP3-TX" - }, - { - "tp-id": "SRG1-PP1-TX" - }, - { - "tp-id": "SRG1-PP4-RX" - }, - { - "tp-id": "SRG1-PP5-RX" - }, - { - "tp-id": "SRG1-CP-RX" - }, - { - "tp-id": "SRG1-PP1-RX" - }, - { - "tp-id": "SRG1-CP-TX" - }, - { - "tp-id": "SRG1-PP4-TX" - }, - { - "tp-id": "SRG1-PP5-TX" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-1-2" - } - ], - "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 1 - }, - { - "index": 2 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - }, - "org-openroadm-network-topology:node-type": "SRG" - }, - { - "node-id": "OpenROADM-1-2-DEG1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-1-2-DEG1" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 1 - }, - { - "index": 2 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] + "data": { + "network": [ + { + "network-id": "openroadm-topology", + "ietf-network-topology:link": [ + { + "link-id": "OpenROADM-1-2-DEG2-DEG2-CTP-TXtoOpenROADM-1-2-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG1" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-1-SRG1-SRG1-CP-TXtoOpenROADM-1-1-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG2" + }, + "source": { + "source-node": "OpenROADM-1-1-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-1-2-SRG1-SRG1-CP-TXtoOpenROADM-1-2-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG3" + }, + "source": { + "source-node": "OpenROADM-1-2-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-1-1-SRG1-SRG1-PP1-TX-to-XPONDER-1-1XPDR-NW1-RX", + "destination": { + "dest-tp": "XPDR-NW1-RX", + "dest-node": "XPONDER-1-1" + }, + "source": { + "source-node": "OpenROADM-1-1-SRG1", + "source-tp": "SRG1-PP1-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-1-SRG1-SRG1-CP-TXtoOpenROADM-1-1-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG3" + }, + "source": { + "source-node": "OpenROADM-1-1-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-2-2-SRG1-SRG1-CP-TXtoOpenROADM-2-2-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG1" + }, + "source": { + "source-node": "OpenROADM-2-2-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-1-1-DEG2-DEG2-CTP-TXtoOpenROADM-1-1-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG1" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "XPONDER-2-2XPDR-NW5-TX-toOpenROADM-2-2-SRG1-SRG1-PP5-RX", + "destination": { + "dest-tp": "SRG1-PP5-RX", + "dest-node": "OpenROADM-2-2-SRG1" + }, + "source": { + "source-node": "XPONDER-2-2", + "source-tp": "XPDR-NW5-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-1-2-DEG2-DEG2-CTP-RXtoOpenROADM-1-2-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-1-2-SRG1" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-2-2-SRG1-SRG1-PP4-TX-to-XPONDER-2-2XPDR-NW4-RX", + "destination": { + "dest-tp": "XPDR-NW4-RX", + "dest-node": "XPONDER-2-2" + }, + "source": { + "source-node": "OpenROADM-2-2-SRG1", + "source-tp": "SRG1-PP4-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-2-SRG1-SRG1-CP-TXtoOpenROADM-1-2-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG1" + }, + "source": { + "source-node": "OpenROADM-1-2-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-2-2-DEG3-DEG3-CTP-RXtoOpenROADM-2-2-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-2-2-SRG1" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-2-2-SRG1-SRG1-PP1-TX-to-XPONDER-2-2XPDR-NW1-RX", + "destination": { + "dest-tp": "XPDR-NW1-RX", + "dest-node": "XPONDER-2-2" + }, + "source": { + "source-node": "OpenROADM-2-2-SRG1", + "source-tp": "SRG1-PP1-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-1-SRG1-SRG1-CP-TXtoOpenROADM-1-1-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG1" + }, + "source": { + "source-node": "OpenROADM-1-1-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-1-2-SRG1-SRG1-CP-TXtoOpenROADM-1-2-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG2" + }, + "source": { + "source-node": "OpenROADM-1-2-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-1-1-SRG1-SRG1-PP4-TX-to-XPONDER-1-1XPDR-NW4-RX", + "destination": { + "dest-tp": "XPDR-NW4-RX", + "dest-node": "XPONDER-1-1" + }, + "source": { + "source-node": "OpenROADM-1-1-SRG1", + "source-tp": "SRG1-PP4-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-2-1-SRG1-SRG1-CP-TXtoOpenROADM-2-1-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG3" + }, + "source": { + "source-node": "OpenROADM-2-1-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "XPONDER-1-1XPDR-NW5-TX-toOpenROADM-1-1-SRG1-SRG1-PP5-RX", + "destination": { + "dest-tp": "SRG1-PP5-RX", + "dest-node": "OpenROADM-1-1-SRG1" + }, + "source": { + "source-node": "XPONDER-1-1", + "source-tp": "XPDR-NW5-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-1-SRG1-SRG1-CP-TXtoOpenROADM-2-1-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG1" + }, + "source": { + "source-node": "OpenROADM-2-1-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-2-2-SRG1-SRG1-CP-TXtoOpenROADM-2-2-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG2" + }, + "source": { + "source-node": "OpenROADM-2-2-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "XPONDER-1-2XPDR-NW3-TX-toOpenROADM-1-2-SRG1-SRG1-PP3-RX", + "destination": { + "dest-tp": "SRG1-PP3-RX", + "dest-node": "OpenROADM-1-2-SRG1" + }, + "source": { + "source-node": "XPONDER-1-2", + "source-tp": "XPDR-NW3-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-1-1-DEG3-DEG3-CTP-RXtoOpenROADM-1-1-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-1-1-SRG1" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-2-1-SRG1-SRG1-CP-TXtoOpenROADM-2-1-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG2" + }, + "source": { + "source-node": "OpenROADM-2-1-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-2-2-SRG1-SRG1-CP-TXtoOpenROADM-2-2-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG3" + }, + "source": { + "source-node": "OpenROADM-2-2-SRG1", + "source-tp": "SRG1-CP-TX" + }, + "org-openroadm-network-topology:link-type": "ADD-LINK" + }, + { + "link-id": "OpenROADM-2-2-DEG3-DEG3-CTP-TXtoOpenROADM-2-2-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG2" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-2-1-DEG3-DEG3-CTP-TXtoOpenROADM-2-1-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG2" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "XPONDER-2-1XPDR-NW3-TX-toOpenROADM-2-1-SRG1-SRG1-PP3-RX", + "destination": { + "dest-tp": "SRG1-PP3-RX", + "dest-node": "OpenROADM-2-1-SRG1" + }, + "source": { + "source-node": "XPONDER-2-1", + "source-tp": "XPDR-NW3-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-1-SRG1-SRG1-PP4-TX-to-XPONDER-2-1XPDR-NW4-RX", + "destination": { + "dest-tp": "XPDR-NW4-RX", + "dest-node": "XPONDER-2-1" + }, + "source": { + "source-node": "OpenROADM-2-1-SRG1", + "source-tp": "SRG1-PP4-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "XPONDER-1-2XPDR-NW2-TX-toOpenROADM-1-2-SRG1-SRG1-PP2-RX", + "destination": { + "dest-tp": "SRG1-PP2-RX", + "dest-node": "OpenROADM-1-2-SRG1" + }, + "source": { + "source-node": "XPONDER-1-2", + "source-tp": "XPDR-NW2-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-1-SRG1-SRG1-PP1-TX-to-XPONDER-2-1XPDR-NW1-RX", + "destination": { + "dest-tp": "XPDR-NW1-RX", + "dest-node": "XPONDER-2-1" + }, + "source": { + "source-node": "OpenROADM-2-1-SRG1", + "source-tp": "SRG1-PP1-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-2-DEG2-DEG2-CTP-TXtoOpenROADM-1-2-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG3" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "XPONDER-2-1XPDR-NW2-TX-toOpenROADM-2-1-SRG1-SRG1-PP2-RX", + "destination": { + "dest-tp": "SRG1-PP2-RX", + "dest-node": "OpenROADM-2-1-SRG1" + }, + "source": { + "source-node": "XPONDER-2-1", + "source-tp": "XPDR-NW2-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-1-DEG1-DEG1-CTP-RXtoOpenROADM-2-1-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-2-1-SRG1" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-1-1-DEG2-DEG2-CTP-TXtoOpenROADM-1-1-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG3" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-1-SRG1-SRG1-PP5-TX-to-XPONDER-1-1XPDR-NW5-RX", + "destination": { + "dest-tp": "XPDR-NW5-RX", + "dest-node": "XPONDER-1-1" + }, + "source": { + "source-node": "OpenROADM-1-1-SRG1", + "source-tp": "SRG1-PP5-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-1-DEG3-to-OpenROADM-2-2-DEG3", + "destination": { + "dest-tp": "DEG3-TTP-RX", + "dest-node": "OpenROADM-2-2-DEG3" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG3", + "source-tp": "DEG3-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "OpenROADM-2-2-DEG2-DEG2-CTP-TXtoOpenROADM-2-2-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG1" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-2-SRG1-SRG1-PP3-TX-to-XPONDER-1-2XPDR-NW3-RX", + "destination": { + "dest-tp": "XPDR-NW3-RX", + "dest-node": "XPONDER-1-2" + }, + "source": { + "source-node": "OpenROADM-1-2-SRG1", + "source-tp": "SRG1-PP3-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-1-DEG1-DEG1-CTP-TXtoOpenROADM-1-1-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG2" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-2-1-DEG3-DEG3-CTP-RXtoOpenROADM-2-1-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-2-1-SRG1" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-1-2-DEG1-DEG1-CTP-TXtoOpenROADM-1-2-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG3" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-2-2-DEG2-to-OpenROADM-2-1-DEG2", + "destination": { + "dest-tp": "DEG2-TTP-RX", + "dest-node": "OpenROADM-2-1-DEG2" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG2", + "source-tp": "DEG2-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "XPONDER-2-2XPDR-NW4-TX-toOpenROADM-2-2-SRG1-SRG1-PP4-RX", + "destination": { + "dest-tp": "SRG1-PP4-RX", + "dest-node": "OpenROADM-2-2-SRG1" + }, + "source": { + "source-node": "XPONDER-2-2", + "source-tp": "XPDR-NW4-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-2-DEG1-DEG1-CTP-RXtoOpenROADM-2-2-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-2-2-SRG1" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-2-1-DEG2-to-OpenROADM-2-2-DEG2", + "destination": { + "dest-tp": "DEG2-TTP-RX", + "dest-node": "OpenROADM-2-2-DEG2" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG2", + "source-tp": "DEG2-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "OpenROADM-2-2-DEG3-DEG3-CTP-TXtoOpenROADM-2-2-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG1" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-2-1-DEG1-DEG1-CTP-TXtoOpenROADM-2-1-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG2" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "XPONDER-1-1XPDR-NW3-TX-toOpenROADM-1-1-SRG1-SRG1-PP3-RX", + "destination": { + "dest-tp": "SRG1-PP3-RX", + "dest-node": "OpenROADM-1-1-SRG1" + }, + "source": { + "source-node": "XPONDER-1-1", + "source-tp": "XPDR-NW3-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "XPONDER-2-2XPDR-NW2-TX-toOpenROADM-2-2-SRG1-SRG1-PP2-RX", + "destination": { + "dest-tp": "SRG1-PP2-RX", + "dest-node": "OpenROADM-2-2-SRG1" + }, + "source": { + "source-node": "XPONDER-2-2", + "source-tp": "XPDR-NW2-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-1-1-DEG2-to-OpenROADM-1-2-DEG2", + "destination": { + "dest-tp": "DEG2-TTP-RX", + "dest-node": "OpenROADM-1-2-DEG2" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG2", + "source-tp": "DEG2-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "XPONDER-1-1XPDR-NW1-TX-toOpenROADM-1-1-SRG1-SRG1-PP1-RX", + "destination": { + "dest-tp": "SRG1-PP1-RX", + "dest-node": "OpenROADM-1-1-SRG1" + }, + "source": { + "source-node": "XPONDER-1-1", + "source-tp": "XPDR-NW1-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-1-DEG2-DEG2-CTP-TXtoOpenROADM-2-1-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG3" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-1-DEG1-DEG1-CTP-RXtoOpenROADM-1-1-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-1-1-SRG1" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-2-1-SRG1-SRG1-PP3-TX-to-XPONDER-2-1XPDR-NW3-RX", + "destination": { + "dest-tp": "XPDR-NW3-RX", + "dest-node": "XPONDER-2-1" + }, + "source": { + "source-node": "OpenROADM-2-1-SRG1", + "source-tp": "SRG1-PP3-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-2-1-DEG2-DEG2-CTP-RXtoOpenROADM-2-1-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-2-1-SRG1" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "XPONDER-1-2XPDR-NW5-TX-toOpenROADM-1-2-SRG1-SRG1-PP5-RX", + "destination": { + "dest-tp": "SRG1-PP5-RX", + "dest-node": "OpenROADM-1-2-SRG1" + }, + "source": { + "source-node": "XPONDER-1-2", + "source-tp": "XPDR-NW5-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "XPONDER-2-1XPDR-NW5-TX-toOpenROADM-2-1-SRG1-SRG1-PP5-RX", + "destination": { + "dest-tp": "SRG1-PP5-RX", + "dest-node": "OpenROADM-2-1-SRG1" + }, + "source": { + "source-node": "XPONDER-2-1", + "source-tp": "XPDR-NW5-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-1-2-SRG1-SRG1-PP2-TX-to-XPONDER-1-2XPDR-NW2-RX", + "destination": { + "dest-tp": "XPDR-NW2-RX", + "dest-node": "XPONDER-1-2" + }, + "source": { + "source-node": "OpenROADM-1-2-SRG1", + "source-tp": "SRG1-PP2-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "XPONDER-2-2XPDR-NW3-TX-toOpenROADM-2-2-SRG1-SRG1-PP3-RX", + "destination": { + "dest-tp": "SRG1-PP3-RX", + "dest-node": "OpenROADM-2-2-SRG1" + }, + "source": { + "source-node": "XPONDER-2-2", + "source-tp": "XPDR-NW3-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-1-DEG1-DEG1-CTP-TXtoOpenROADM-2-1-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG3" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-1-DEG3-DEG3-CTP-TXtoOpenROADM-1-1-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG2" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-2-SRG1-SRG1-PP5-TX-to-XPONDER-1-2XPDR-NW5-RX", + "destination": { + "dest-tp": "XPDR-NW5-RX", + "dest-node": "XPONDER-1-2" + }, + "source": { + "source-node": "OpenROADM-1-2-SRG1", + "source-tp": "SRG1-PP5-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "XPONDER-1-2XPDR-NW1-TX-toOpenROADM-1-2-SRG1-SRG1-PP1-RX", + "destination": { + "dest-tp": "SRG1-PP1-RX", + "dest-node": "OpenROADM-1-2-SRG1" + }, + "source": { + "source-node": "XPONDER-1-2", + "source-tp": "XPDR-NW1-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-1-1-DEG3-DEG3-CTP-TXtoOpenROADM-1-1-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG1" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-2-DEG1-DEG1-CTP-TXtoOpenROADM-1-2-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG2" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-2-DEG2-to-OpenROADM-1-1-DEG2", + "destination": { + "dest-tp": "DEG2-TTP-RX", + "dest-node": "OpenROADM-1-1-DEG2" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG2", + "source-tp": "DEG2-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "XPONDER-2-1XPDR-NW4-TX-toOpenROADM-2-1-SRG1-SRG1-PP4-RX", + "destination": { + "dest-tp": "SRG1-PP4-RX", + "dest-node": "OpenROADM-2-1-SRG1" + }, + "source": { + "source-node": "XPONDER-2-1", + "source-tp": "XPDR-NW4-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-2-DEG1-DEG1-CTP-TXtoOpenROADM-2-2-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG3" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-2-DEG3-DEG3-CTP-TXtoOpenROADM-1-2-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG1" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "XPONDER-2-1XPDR-NW1-TX-toOpenROADM-2-1-SRG1-SRG1-PP1-RX", + "destination": { + "dest-tp": "SRG1-PP1-RX", + "dest-node": "OpenROADM-2-1-SRG1" + }, + "source": { + "source-node": "XPONDER-2-1", + "source-tp": "XPDR-NW1-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-2-SRG1-SRG1-PP2-TX-to-XPONDER-2-2XPDR-NW2-RX", + "destination": { + "dest-tp": "XPDR-NW2-RX", + "dest-node": "XPONDER-2-2" + }, + "source": { + "source-node": "OpenROADM-2-2-SRG1", + "source-tp": "SRG1-PP2-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-1-SRG1-SRG1-PP2-TX-to-XPONDER-1-1XPDR-NW2-RX", + "destination": { + "dest-tp": "XPDR-NW2-RX", + "dest-node": "XPONDER-1-1" + }, + "source": { + "source-node": "OpenROADM-1-1-SRG1", + "source-tp": "SRG1-PP2-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-2-2-SRG1-SRG1-PP5-TX-to-XPONDER-2-2XPDR-NW5-RX", + "destination": { + "dest-tp": "XPDR-NW5-RX", + "dest-node": "XPONDER-2-2" + }, + "source": { + "source-node": "OpenROADM-2-2-SRG1", + "source-tp": "SRG1-PP5-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-2-DEG1-DEG1-CTP-RXtoOpenROADM-1-2-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-1-2-SRG1" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "XPONDER-1-2XPDR-NW4-TX-toOpenROADM-1-2-SRG1-SRG1-PP4-RX", + "destination": { + "dest-tp": "SRG1-PP4-RX", + "dest-node": "OpenROADM-1-2-SRG1" + }, + "source": { + "source-node": "XPONDER-1-2", + "source-tp": "XPDR-NW4-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-1-2-DEG3-DEG3-CTP-RXtoOpenROADM-1-2-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-1-2-SRG1" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-2-2-DEG1-to-OpenROADM-2-1-DEG1", + "destination": { + "dest-tp": "DEG1-TTP-RX", + "dest-node": "OpenROADM-2-1-DEG1" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG1", + "source-tp": "DEG1-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "OpenROADM-1-1-DEG2-DEG2-CTP-RXtoOpenROADM-1-1-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-1-1-SRG1" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "OpenROADM-2-2-DEG2-DEG2-CTP-TXtoOpenROADM-2-2-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG3" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-2-1-DEG2-DEG2-CTP-TXtoOpenROADM-2-1-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG1" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-2-2-SRG1-SRG1-PP3-TX-to-XPONDER-2-2XPDR-NW3-RX", + "destination": { + "dest-tp": "XPDR-NW3-RX", + "dest-node": "XPONDER-2-2" + }, + "source": { + "source-node": "OpenROADM-2-2-SRG1", + "source-tp": "SRG1-PP3-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-2-1-SRG1-SRG1-PP2-TX-to-XPONDER-2-1XPDR-NW2-RX", + "destination": { + "dest-tp": "XPDR-NW2-RX", + "dest-node": "XPONDER-2-1" + }, + "source": { + "source-node": "OpenROADM-2-1-SRG1", + "source-tp": "SRG1-PP2-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-2-1-SRG1-SRG1-PP5-TX-to-XPONDER-2-1XPDR-NW5-RX", + "destination": { + "dest-tp": "XPDR-NW5-RX", + "dest-node": "XPONDER-2-1" + }, + "source": { + "source-node": "OpenROADM-2-1-SRG1", + "source-tp": "SRG1-PP5-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-1-DEG1-DEG1-CTP-TXtoOpenROADM-1-1-DEG3-DEG3-CTP-RX", + "destination": { + "dest-tp": "DEG3-CTP-RX", + "dest-node": "OpenROADM-1-1-DEG3" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-2-DEG1-to-OpenROADM-1-1-DEG1", + "destination": { + "dest-tp": "DEG1-TTP-RX", + "dest-node": "OpenROADM-1-1-DEG1" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG1", + "source-tp": "DEG1-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "XPONDER-2-2XPDR-NW1-TX-toOpenROADM-2-2-SRG1-SRG1-PP1-RX", + "destination": { + "dest-tp": "SRG1-PP1-RX", + "dest-node": "OpenROADM-2-2-SRG1" + }, + "source": { + "source-node": "XPONDER-2-2", + "source-tp": "XPDR-NW1-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-1-1-SRG1-SRG1-PP3-TX-to-XPONDER-1-1XPDR-NW3-RX", + "destination": { + "dest-tp": "XPDR-NW3-RX", + "dest-node": "XPONDER-1-1" + }, + "source": { + "source-node": "OpenROADM-1-1-SRG1", + "source-tp": "SRG1-PP3-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-1-1-DEG1-to-OpenROADM-1-2-DEG1", + "destination": { + "dest-tp": "DEG1-TTP-RX", + "dest-node": "OpenROADM-1-2-DEG1" + }, + "source": { + "source-node": "OpenROADM-1-1-DEG1", + "source-tp": "DEG1-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "OpenROADM-1-2-DEG3-DEG3-CTP-TXtoOpenROADM-1-2-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-1-2-DEG2" + }, + "source": { + "source-node": "OpenROADM-1-2-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-1-2-SRG1-SRG1-PP1-TX-to-XPONDER-1-2XPDR-NW1-RX", + "destination": { + "dest-tp": "XPDR-NW1-RX", + "dest-node": "XPONDER-1-2" + }, + "source": { + "source-node": "OpenROADM-1-2-SRG1", + "source-tp": "SRG1-PP1-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-2-2-DEG3-to-OpenROADM-1-1-DEG3", + "destination": { + "dest-tp": "DEG3-TTP-RX", + "dest-node": "OpenROADM-1-1-DEG3" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG3", + "source-tp": "DEG3-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "XPONDER-1-1XPDR-NW4-TX-toOpenROADM-1-1-SRG1-SRG1-PP4-RX", + "destination": { + "dest-tp": "SRG1-PP4-RX", + "dest-node": "OpenROADM-1-1-SRG1" + }, + "source": { + "source-node": "XPONDER-1-1", + "source-tp": "XPDR-NW4-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + }, + { + "link-id": "OpenROADM-2-1-DEG3-DEG3-CTP-TXtoOpenROADM-2-1-DEG1-DEG1-CTP-RX", + "destination": { + "dest-tp": "DEG1-CTP-RX", + "dest-node": "OpenROADM-2-1-DEG1" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG3", + "source-tp": "DEG3-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-2-2-DEG1-DEG1-CTP-TXtoOpenROADM-2-2-DEG2-DEG2-CTP-RX", + "destination": { + "dest-tp": "DEG2-CTP-RX", + "dest-node": "OpenROADM-2-2-DEG2" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG1", + "source-tp": "DEG1-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "EXPRESS-LINK" + }, + { + "link-id": "OpenROADM-2-1-DEG1-to-OpenROADM-2-2-DEG1", + "destination": { + "dest-tp": "DEG1-TTP-RX", + "dest-node": "OpenROADM-2-2-DEG1" + }, + "source": { + "source-node": "OpenROADM-2-1-DEG1", + "source-tp": "DEG1-TTP-TX" + }, + "org-openroadm-network-topology:link-type": "ROADM-TO-ROADM" + }, + { + "link-id": "OpenROADM-1-2-SRG1-SRG1-PP4-TX-to-XPONDER-1-2XPDR-NW4-RX", + "destination": { + "dest-tp": "XPDR-NW4-RX", + "dest-node": "XPONDER-1-2" + }, + "source": { + "source-node": "OpenROADM-1-2-SRG1", + "source-tp": "SRG1-PP4-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-INPUT" + }, + { + "link-id": "OpenROADM-2-2-DEG2-DEG2-CTP-RXtoOpenROADM-2-2-SRG1-SRG1-CP-TX", + "destination": { + "dest-tp": "SRG1-CP-RX", + "dest-node": "OpenROADM-2-2-SRG1" + }, + "source": { + "source-node": "OpenROADM-2-2-DEG2", + "source-tp": "DEG2-CTP-TX" + }, + "org-openroadm-network-topology:link-type": "DROP-LINK" + }, + { + "link-id": "XPONDER-1-1XPDR-NW2-TX-toOpenROADM-1-1-SRG1-SRG1-PP2-RX", + "destination": { + "dest-tp": "SRG1-PP2-RX", + "dest-node": "OpenROADM-1-1-SRG1" + }, + "source": { + "source-node": "XPONDER-1-1", + "source-tp": "XPDR-NW2-TX" + }, + "org-openroadm-network-topology:link-type": "XPONDER-OUTPUT" + } + ], + "node": [ + { + "node-id": "OpenROADM-1-1-SRG1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "SRG1-PP2-TX" + }, + { + "tp-id": "SRG1-PP3-RX" + }, + { + "tp-id": "SRG1-PP2-RX" + }, + { + "tp-id": "SRG1-PP3-TX" + }, + { + "tp-id": "SRG1-PP1-TX" + }, + { + "tp-id": "SRG1-PP4-RX" + }, + { + "tp-id": "SRG1-PP5-RX" + }, + { + "tp-id": "SRG1-CP-RX" + }, + { + "tp-id": "SRG1-PP1-RX" + }, + { + "tp-id": "SRG1-CP-TX" + }, + { + "tp-id": "SRG1-PP4-TX" + }, + { + "tp-id": "SRG1-PP5-TX" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-1-1" + } + ], + "org-openroadm-network-topology:srg-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + }, + "org-openroadm-network-topology:node-type": "SRG" + }, + { + "node-id": "OpenROADM-2-2-SRG1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "SRG1-PP2-TX" + }, + { + "tp-id": "SRG1-PP3-RX" + }, + { + "tp-id": "SRG1-PP2-RX" + }, + { + "tp-id": "SRG1-PP3-TX" + }, + { + "tp-id": "SRG1-PP1-TX" + }, + { + "tp-id": "SRG1-PP4-RX" + }, + { + "tp-id": "SRG1-PP5-RX" + }, + { + "tp-id": "SRG1-CP-RX" + }, + { + "tp-id": "SRG1-PP1-RX" + }, + { + "tp-id": "SRG1-CP-TX" + }, + { + "tp-id": "SRG1-PP4-TX" + }, + { + "tp-id": "SRG1-PP5-TX" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-2-2" + } + ], + "org-openroadm-network-topology:srg-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + }, + "org-openroadm-network-topology:node-type": "SRG" + }, + { + "node-id": "OpenROADM-1-2-SRG1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "SRG1-PP2-TX" + }, + { + "tp-id": "SRG1-PP3-RX" + }, + { + "tp-id": "SRG1-PP2-RX" + }, + { + "tp-id": "SRG1-PP3-TX" + }, + { + "tp-id": "SRG1-PP1-TX" + }, + { + "tp-id": "SRG1-PP4-RX" + }, + { + "tp-id": "SRG1-PP5-RX" + }, + { + "tp-id": "SRG1-CP-RX" + }, + { + "tp-id": "SRG1-PP1-RX" + }, + { + "tp-id": "SRG1-CP-TX" + }, + { + "tp-id": "SRG1-PP4-TX" + }, + { + "tp-id": "SRG1-PP5-TX" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-1-2" + } + ], + "org-openroadm-network-topology:srg-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + }, + "org-openroadm-network-topology:node-type": "SRG" + }, + { + "node-id": "OpenROADM-1-2-DEG1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-1-2-DEG1" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-2-2-DEG3", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-2-2-DEG3" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-1-2-DEG3", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-1-2-DEG3" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-2-2-DEG2", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-2-2-DEG2" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-1-2-DEG2", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-1-2-DEG2" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-2-2-DEG1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-2-2-DEG1" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "XPONDER-1-1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "XPDR-NW5-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW4-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW4-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW2-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW3-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW1-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW5-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW2-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW3-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW1-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "XPONDER-1-1" + } + ], + "org-openroadm-network-topology:node-type": "XPONDER" + }, + { + "node-id": "XPONDER-1-2", + "ietf-network-topology:termination-point": [ + { + "tp-id": "XPDR-NW5-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW4-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW4-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW2-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW3-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW1-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW5-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW2-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW3-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW1-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "XPONDER-1-2" + } + ], + "org-openroadm-network-topology:node-type": "XPONDER" + }, + { + "node-id": "XPONDER-2-1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "XPDR-NW5-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW4-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW4-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW2-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW3-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW1-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW5-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW2-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW3-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW1-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "XPONDER-2-1" + } + ], + "org-openroadm-network-topology:node-type": "XPONDER" + }, + { + "node-id": "OpenROADM-1-1-DEG3", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-1-1-DEG3" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "XPONDER-2-2", + "ietf-network-topology:termination-point": [ + { + "tp-id": "XPDR-NW5-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW4-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW4-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW2-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW3-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW1-TX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW5-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW2-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + } + }, + { + "tp-id": "XPDR-NW3-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + }, + { + "tp-id": "XPDR-NW1-RX", + "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", + "org-openroadm-network-topology:xpdr-network-attributes": { + "wavelength": { + "index": 2 + } + } + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "XPONDER-2-2" + } + ], + "org-openroadm-network-topology:node-type": "XPONDER" + }, + { + "node-id": "OpenROADM-2-1-SRG1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "SRG1-PP2-TX" + }, + { + "tp-id": "SRG1-PP3-RX" + }, + { + "tp-id": "SRG1-PP2-RX" + }, + { + "tp-id": "SRG1-PP3-TX" + }, + { + "tp-id": "SRG1-PP1-TX" + }, + { + "tp-id": "SRG1-PP4-RX" + }, + { + "tp-id": "SRG1-PP5-RX" + }, + { + "tp-id": "SRG1-CP-RX" + }, + { + "tp-id": "SRG1-PP1-RX" + }, + { + "tp-id": "SRG1-CP-TX" + }, + { + "tp-id": "SRG1-PP4-TX" + }, + { + "tp-id": "SRG1-PP5-TX" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-2-1" + } + ], + "org-openroadm-network-topology:srg-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + }, + "org-openroadm-network-topology:node-type": "SRG" + }, + { + "node-id": "OpenROADM-2-1-DEG2", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-2-1-DEG2" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-2-1-DEG3", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-2-1-DEG3" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-1-1-DEG2", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-1-1-DEG2" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-1-1-DEG1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-1-1-DEG1" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + }, + { + "node-id": "OpenROADM-2-1-DEG1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-TTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" + }, + { + "tp-id": "DEG1-TTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" + }, + { + "tp-id": "DEG1-CTP-RX", + "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" + }, + { + "tp-id": "DEG1-CTP-TX", + "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "Transport-underlay", + "node-ref": "OpenROADM-2-1-DEG1" + } + ], + "org-openroadm-network-topology:node-type": "DEGREE", + "org-openroadm-network-topology:degree-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map": "//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ] + } + } + ] } - }, - { - "node-id": "OpenROADM-2-2-DEG3", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-2-2-DEG3" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 5 - }, - { - "index": 6 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "OpenROADM-1-2-DEG3", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-1-2-DEG3" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 1 - }, - { - "index": 2 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "OpenROADM-2-2-DEG2", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-2-2-DEG2" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 5 - }, - { - "index": 6 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "OpenROADM-1-2-DEG2", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-1-2-DEG2" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 1 - }, - { - "index": 2 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "OpenROADM-2-2-DEG1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-2-2-DEG1" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 5 - }, - { - "index": 6 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "XPONDER-1-1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "XPDR-NW5-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW4-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW4-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW2-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW3-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW1-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW5-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW2-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW3-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW1-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "XPONDER-1-1" - } - ], - "org-openroadm-network-topology:node-type": "XPONDER" - }, - { - "node-id": "XPONDER-1-2", - "ietf-network-topology:termination-point": [ - { - "tp-id": "XPDR-NW5-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW4-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW4-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW2-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW3-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW1-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW5-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW2-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW3-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW1-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "XPONDER-1-2" - } - ], - "org-openroadm-network-topology:node-type": "XPONDER" - }, - { - "node-id": "XPONDER-2-1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "XPDR-NW5-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW4-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW4-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW2-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW3-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW1-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW5-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW2-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW3-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW1-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "XPONDER-2-1" - } - ], - "org-openroadm-network-topology:node-type": "XPONDER" - }, - { - "node-id": "OpenROADM-1-1-DEG3", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-1-1-DEG3" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 1 - }, - { - "index": 2 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "XPONDER-2-2", - "ietf-network-topology:termination-point": [ - { - "tp-id": "XPDR-NW5-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW4-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW4-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW2-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW3-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW1-TX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW5-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW2-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": {} - }, - { - "tp-id": "XPDR-NW3-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - }, - { - "tp-id": "XPDR-NW1-RX", - "org-openroadm-network-topology:tp-type": "XPONDER-NETWORK", - "org-openroadm-network-topology:xpdr-network-attributes": { - "wavelength": { - "index": 2 - } - } - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "XPONDER-2-2" - } - ], - "org-openroadm-network-topology:node-type": "XPONDER" - }, - { - "node-id": "OpenROADM-2-1-SRG1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "SRG1-PP2-TX" - }, - { - "tp-id": "SRG1-PP3-RX" - }, - { - "tp-id": "SRG1-PP2-RX" - }, - { - "tp-id": "SRG1-PP3-TX" - }, - { - "tp-id": "SRG1-PP1-TX" - }, - { - "tp-id": "SRG1-PP4-RX" - }, - { - "tp-id": "SRG1-PP5-RX" - }, - { - "tp-id": "SRG1-CP-RX" - }, - { - "tp-id": "SRG1-PP1-RX" - }, - { - "tp-id": "SRG1-CP-TX" - }, - { - "tp-id": "SRG1-PP4-TX" - }, - { - "tp-id": "SRG1-PP5-TX" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-2-1" - } - ], - "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 5 - }, - { - "index": 6 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - }, - "org-openroadm-network-topology:node-type": "SRG" - }, - { - "node-id": "OpenROADM-2-1-DEG2", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-2-1-DEG2" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 5 - }, - { - "index": 6 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "OpenROADM-2-1-DEG3", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-2-1-DEG3" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 5 - }, - { - "index": 6 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "OpenROADM-1-1-DEG2", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-1-1-DEG2" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 1 - }, - { - "index": 2 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "OpenROADM-1-1-DEG1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-1-1-DEG1" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 1 - }, - { - "index": 2 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - }, - { - "node-id": "OpenROADM-2-1-DEG1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "DEG1-TTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-TTP" - }, - { - "tp-id": "DEG1-TTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-TTP" - }, - { - "tp-id": "DEG1-CTP-RX", - "org-openroadm-network-topology:tp-type": "DEGREE-RX-CTP" - }, - { - "tp-id": "DEG1-CTP-TX", - "org-openroadm-network-topology:tp-type": "DEGREE-TX-CTP" - } - ], - "supporting-node": [ - { - "network-ref": "Transport-underlay", - "node-ref": "OpenROADM-2-1-DEG1" - } - ], - "org-openroadm-network-topology:node-type": "DEGREE", - "org-openroadm-network-topology:degree-attributes": { - "available-wavelengths": [ - { - "index": 5 - }, - { - "index": 6 - }, - { - "index": 3 - }, - { - "index": 4 - } - ] - } - } ] - } - ] - } -} \ No newline at end of file + } +} diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java index df0dcb754..e1794be89 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java @@ -25,43 +25,44 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.Timeouts; import org.opendaylight.transportpce.common.fixedflex.FixedFlexImpl; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev181130.FrequencyGHz; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev181130.FrequencyTHz; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.used.wavelengths.UsedWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.used.wavelengths.UsedWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.used.wavelengths.UsedWavelengthsKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.pp.attributes.UsedWavelength; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.pp.attributes.UsedWavelengthBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.pp.attributes.UsedWavelengthKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.port.connection.attributes.Wavelength; -import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.port.connection.attributes.WavelengthBuilder; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; +import org.opendaylight.transportpce.common.fixedflex.GridUtils; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev200529.degree.used.wavelengths.UsedWavelengths; +import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev200529.degree.used.wavelengths.UsedWavelengthsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev200529.degree.used.wavelengths.UsedWavelengthsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrClientAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.pp.attributes.UsedWavelength; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.pp.attributes.UsedWavelengthBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.pp.attributes.UsedWavelengthKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.port.connection.attributes.Wavelength; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.port.connection.attributes.WavelengthBuilder; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.PathDescription; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.atoz.direction.AToZ; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.path.description.ztoa.direction.ZToA; @@ -71,13 +72,11 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder; -import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,6 +84,7 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength private static final Logger LOG = LoggerFactory.getLogger(NetworkModelWavelengthServiceImpl.class); private final DataBroker dataBroker; + private final AvailFreqMapsKey availFreqMapKey = new AvailFreqMapsKey(GridConstant.C_BAND); public NetworkModelWavelengthServiceImpl(DataBroker dataBroker) { this.dataBroker = dataBroker; @@ -166,14 +166,14 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength .Node.class, new NodeKey(new NodeId(nodeId))).augmentation(Node1.class).build(); } - private InstanceIdentifier createNode2IID(String nodeId) { return InstanceIdentifier .builder(Networks.class).child(Network.class, new NetworkKey( new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network - .Node.class, new NodeKey(new NodeId(nodeId))).augmentation(org.opendaylight.yang.gen.v1.http.org - .openroadm.common.network.rev181130.Node1.class).build(); + .Node.class, new NodeKey(new NodeId(nodeId))).augmentation(org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev200529.Node1.class).build(); } private Optional getNode1FromDatastore(String nodeId) { @@ -190,11 +190,11 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength return nodeOpt; } - private Optional getNode2FromDatastore(String nodeId) { - InstanceIdentifier + InstanceIdentifier nodeIID = createNode2IID(nodeId); - Optional nodeOpt; + Optional nodeOpt; try (ReadTransaction nodeReadTx = this.dataBroker.newReadOnlyTransaction()) { nodeOpt = nodeReadTx.read(LogicalDatastoreType.CONFIGURATION, nodeIID) .get(Timeouts.DATASTORE_READ, TimeUnit.MILLISECONDS); @@ -206,136 +206,15 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength } private void addAvailableWL(List nodeIds, Long wavelengthNumber) { - WriteTransaction nodeWriteTx = this.dataBroker.newWriteOnlyTransaction(); - for (String nodeId : nodeIds) { - Optional node1Opt = getNode1FromDatastore(nodeId); - Node1 node1; - Optional node2Opt = - getNode2FromDatastore(nodeId); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node2; - if (node2Opt.isPresent()) { - node2 = node2Opt.get(); - } else { - LOG.error("Unable to get common-network node {} from topology {}! Skipping addition of available" - + "wavelength for this node.", nodeId, NetworkUtils.OVERLAY_NETWORK_ID); - continue; - } - if (node1Opt.isPresent()) { - node1 = node1Opt.get(); - } else { - LOG.error("Unable to get network-topology node {} from topology {}! Skipping addition of available" - + "wavelength for this node.", nodeId, NetworkUtils.OVERLAY_NETWORK_ID); - continue; - } - - Node1Builder node1Builder = new Node1Builder(node1); - switch (node2.getNodeType()) { - case DEGREE: - DegreeAttributes degreeAttributes = node1.getDegreeAttributes(); - DegreeAttributesBuilder degreeAttributesBuilder; - if (degreeAttributes == null) { - degreeAttributesBuilder = new DegreeAttributesBuilder(); - } else { - degreeAttributesBuilder = new DegreeAttributesBuilder(degreeAttributes); - } - Map availableDegreeWLs = new HashMap<>(); - availableDegreeWLs.putAll(degreeAttributesBuilder.getAvailableWavelengths()); - AvailableWavelengths availableWaveLength = - new org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes - .AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(wavelengthNumber)).build(); - availableDegreeWLs.put(availableWaveLength.key(), availableWaveLength); - degreeAttributesBuilder.setAvailableWavelengths(availableDegreeWLs); - node1Builder.setDegreeAttributes(degreeAttributesBuilder.build()); - break; - case SRG: - SrgAttributes srgAttributes = node1.getSrgAttributes(); - SrgAttributesBuilder srgAttributesBuilder; - if (srgAttributes == null) { - srgAttributesBuilder = new SrgAttributesBuilder(); - } else { - srgAttributesBuilder = new SrgAttributesBuilder(srgAttributes); - } - Map availableSrgWLs = new HashMap<>(); - availableSrgWLs.putAll(srgAttributesBuilder.getAvailableWavelengths()); - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130 - .srg.node.attributes.AvailableWavelengths aval = - new AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(wavelengthNumber)) - .build(); - availableSrgWLs.put(aval.key(),aval); - srgAttributesBuilder.setAvailableWavelengths(availableSrgWLs); - node1Builder.setSrgAttributes(srgAttributesBuilder.build()); - break; - - default: - // TODO skip for now - continue; - } - nodeWriteTx.put(LogicalDatastoreType.CONFIGURATION, createNode1IID(nodeId), node1Builder.build()); - } - try { - nodeWriteTx.commit().get(Timeouts.DATASTORE_DELETE, TimeUnit.MILLISECONDS); - } catch (InterruptedException | ExecutionException | TimeoutException e) { - LOG.error("Unable to add available WL {} for nodes {}!", wavelengthNumber, String.join(", ", nodeIds), e); - } + updateFreqMaps4Nodes(nodeIds, wavelengthNumber, true); } - private void deleteAvailableWL(List nodeIds, Long wavelengthNumber) { - WriteTransaction nodeWriteTx = this.dataBroker.newWriteOnlyTransaction(); - for (String nodeId : nodeIds) { - Optional nodeOpt = - getNode2FromDatastore(nodeId); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node; - if (nodeOpt.isPresent()) { - node = nodeOpt.get(); - } else { - LOG.error( - "Unable to get node {} from topology {}! Skipping addition of available wavelength for this node.", - nodeId, NetworkUtils.OVERLAY_NETWORK_ID); - continue; - } - InstanceIdentifierBuilder nodeIIDBuilder = InstanceIdentifier.builder(Networks.class) - .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .child(Node.class, new NodeKey(new NodeId(nodeId))).augmentation(Node1.class); - InstanceIdentifier availableWlIID; - switch (node.getNodeType()) { - //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1) node) - // .getNodeType()) { - case DEGREE: - availableWlIID = nodeIIDBuilder.child(DegreeAttributes.class) - .child(org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node - .attributes.AvailableWavelengths.class, - new AvailableWavelengthsKey(Uint32.valueOf(wavelengthNumber))) - .build(); - break; - case SRG: - availableWlIID = nodeIIDBuilder.child(SrgAttributes.class) - .child(org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengths.class, - new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node - .attributes.AvailableWavelengthsKey(Uint32.valueOf(wavelengthNumber))) - .build(); - break; - default: - // TODO skip for now - continue; - } - nodeWriteTx.delete(LogicalDatastoreType.CONFIGURATION, availableWlIID); - } - try { - nodeWriteTx.commit().get(Timeouts.DATASTORE_DELETE, TimeUnit.MILLISECONDS); - } catch (InterruptedException | ExecutionException | TimeoutException e) { - LOG.error("Unable to delete available WL {} for nodes {}!", wavelengthNumber, String.join(", ", nodeIds), - e); - } + + private void deleteAvailableWL(List nodeIds, Long wavelengthNumber) { + updateFreqMaps4Nodes(nodeIds, wavelengthNumber, false); } private InstanceIdentifierBuilder createTerminationPoint1IIDBuilder(String nodeId, String tpId) { @@ -349,7 +228,7 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength .augmentation(TerminationPoint1.class); } - private InstanceIdentifierBuilder createTerminationPoint2IIDBuilder(String nodeId, String tpId) { return InstanceIdentifier .builder(Networks.class).child(Network.class, new NetworkKey( @@ -358,7 +237,7 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 .Node1.class).child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology .rev180226.networks.network.node.TerminationPoint.class, new TerminationPointKey(new TpId(tpId))) - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1.class); } @@ -376,11 +255,11 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength return tpOpt; } - private Optional getTerminationPoint2FromDatastore(String nodeId, String tpId) { - InstanceIdentifier tpIID = createTerminationPoint2IIDBuilder(nodeId, tpId).build(); - Optional tpOpt; + Optional tpOpt; try (ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction()) { tpOpt = readTx.read(LogicalDatastoreType.CONFIGURATION, tpIID) .get(Timeouts.DATASTORE_READ, TimeUnit.MILLISECONDS); @@ -395,73 +274,99 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength private void deleteUsedWL(long wavelengthIndex, List tpIds) { WriteTransaction deleteUsedWlTx = this.dataBroker.newWriteOnlyTransaction(); for (NodeIdPair idPair : tpIds) { - Optional tp2Opt = getTerminationPoint2FromDatastore(idPair.getNodeID(), idPair.getTpID()); OpenroadmTpType tpType; if (tp2Opt.isPresent()) { tpType = tp2Opt.get().getTpType(); - // ((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1) - // tpOpt.get()).getTpType(); } else { LOG.error("Unable to get termination point {} from topology {}! Skipping removal of used wavelength" + " for this node.", idPair.getTpID(), NetworkUtils.OVERLAY_NETWORK_ID); continue; } + Optional tp1Opt = getTerminationPoint1FromDatastore(idPair.getNodeID(), + idPair.getTpID()); InstanceIdentifier.InstanceIdentifierBuilder usedWlIIDBuilder = createTerminationPoint1IIDBuilder(idPair.getNodeID(), idPair.getTpID()); - InstanceIdentifier usedWlIID; switch (tpType) { case DEGREETXTTP: case DEGREETXRXTTP: - usedWlIID = usedWlIIDBuilder.child(TxTtpAttributes.class).child(UsedWavelengths.class, - new UsedWavelengthsKey(Uint32.valueOf(wavelengthIndex))).build(); + deleteUsedWlTx.delete(LogicalDatastoreType.CONFIGURATION, + usedWlIIDBuilder.child(TxTtpAttributes.class).child(UsedWavelengths.class, + new UsedWavelengthsKey((int)wavelengthIndex)).build()); break; case DEGREERXTTP: - usedWlIID = usedWlIIDBuilder.child(RxTtpAttributes.class).child(UsedWavelengths.class, - new UsedWavelengthsKey(Uint32.valueOf(wavelengthIndex))).build(); + deleteUsedWlTx.delete(LogicalDatastoreType.CONFIGURATION, + usedWlIIDBuilder.child(RxTtpAttributes.class).child(UsedWavelengths.class, + new UsedWavelengthsKey((int)wavelengthIndex)).build()); break; case DEGREETXCTP: case DEGREERXCTP: case DEGREETXRXCTP: - usedWlIID = usedWlIIDBuilder.child(CtpAttributes.class).child(UsedWavelengths.class, - new UsedWavelengthsKey(Uint32.valueOf(wavelengthIndex))).build(); + if (tp1Opt.isPresent()) { + TerminationPoint1 tp1 = tp1Opt.get(); + TerminationPoint1Builder tp1Builder = new TerminationPoint1Builder(tp1); + CtpAttributesBuilder ctpAttributesBuilder; + if (tp1Builder.getCtpAttributes() != null) { + ctpAttributesBuilder = new CtpAttributesBuilder(tp1Builder.getCtpAttributes()); + Map availFreqMapsMap = tp1Builder.getCtpAttributes() + .nonnullAvailFreqMaps(); + ctpAttributesBuilder + .setAvailFreqMaps(updateFreqMaps(wavelengthIndex, availFreqMapsMap, true)); + deleteUsedWlTx.merge(LogicalDatastoreType.CONFIGURATION, + createTerminationPoint1IIDBuilder(idPair.getNodeID(), + idPair.getTpID()).build(), tp1Builder.build()); + } + } break; case SRGTXCP: case SRGRXCP: case SRGTXRXCP: - usedWlIID = usedWlIIDBuilder.child(CpAttributes.class).child(org.opendaylight.yang.gen.v1.http.org - .openroadm.network.topology.rev181130.networks.network.node.termination.point.cp.attributes - .UsedWavelengths.class, new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology - .rev181130.networks.network.node.termination.point.cp.attributes - .UsedWavelengthsKey(Uint32.valueOf(wavelengthIndex))).build(); + if (tp1Opt.isPresent()) { + TerminationPoint1 tp1 = tp1Opt.get(); + TerminationPoint1Builder tp1Builder = new TerminationPoint1Builder(tp1); + CpAttributesBuilder cpAttributesBuilder; + if (tp1Builder.getCpAttributes() != null) { + cpAttributesBuilder = new CpAttributesBuilder(tp1Builder.getCpAttributes()); + Map availFreqMapsMap = tp1Builder.getCpAttributes() + .nonnullAvailFreqMaps(); + cpAttributesBuilder + .setAvailFreqMaps(updateFreqMaps(wavelengthIndex, availFreqMapsMap, true)); + deleteUsedWlTx.merge(LogicalDatastoreType.CONFIGURATION, + createTerminationPoint1IIDBuilder(idPair.getNodeID(), + idPair.getTpID()).build(), tp1Builder.build()); + } + } break; case SRGTXRXPP: case SRGRXPP: case SRGTXPP: - usedWlIID = usedWlIIDBuilder.child(PpAttributes.class).child(UsedWavelength.class, - new UsedWavelengthKey(Uint32.valueOf(wavelengthIndex))).build(); + deleteUsedWlTx.delete(LogicalDatastoreType.CONFIGURATION, + usedWlIIDBuilder.child(PpAttributes.class).child(UsedWavelength.class, + new UsedWavelengthKey((int)wavelengthIndex)).build()); break; case XPONDERNETWORK: - usedWlIID = usedWlIIDBuilder.child(XpdrNetworkAttributes.class).child(Wavelength.class).build(); + deleteUsedWlTx.delete(LogicalDatastoreType.CONFIGURATION, + usedWlIIDBuilder.child(XpdrNetworkAttributes.class).child(Wavelength.class).build()); break; case XPONDERCLIENT: - usedWlIID = usedWlIIDBuilder.child(XpdrClientAttributes.class).child(Wavelength.class).build(); + deleteUsedWlTx.delete(LogicalDatastoreType.CONFIGURATION, + usedWlIIDBuilder.child(XpdrClientAttributes.class).child(Wavelength.class).build()); break; case XPONDERPORT: - usedWlIID = usedWlIIDBuilder.child(XpdrPortAttributes.class).child(Wavelength.class).build(); + deleteUsedWlTx.delete(LogicalDatastoreType.CONFIGURATION, + usedWlIIDBuilder.child(XpdrPortAttributes.class).child(Wavelength.class).build()); break; default: - // TODO skip for now - continue; + break; } - deleteUsedWlTx.delete(LogicalDatastoreType.CONFIGURATION, usedWlIID); } try { deleteUsedWlTx.commit().get(Timeouts.DATASTORE_DELETE, TimeUnit.MILLISECONDS); @@ -475,13 +380,14 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength WriteTransaction addUsedWlTx = this.dataBroker.newWriteOnlyTransaction(); FixedFlexImpl fixedFlex = new FixedFlexImpl(wavelengthIndex); FrequencyTHz centralTHz = new FrequencyTHz(new BigDecimal(fixedFlex.getCenterFrequency())); + Map availFreqMapsMap; for (NodeIdPair idPair : tpIds) { Optional tp1Opt = getTerminationPoint1FromDatastore(idPair.getNodeID(), idPair.getTpID()); TerminationPoint1 tp1 = null; - Optional tp2Opt = getTerminationPoint2FromDatastore(idPair.getNodeID(), idPair.getTpID()); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1 tp2; + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 tp2; if (tp2Opt.isPresent()) { tp2 = tp2Opt.get(); } else { @@ -498,11 +404,9 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength tp1Builder = new TerminationPoint1Builder(); } - UsedWavelengths usedWaveLength = new UsedWavelengthsBuilder().setIndex(Uint32.valueOf(wavelengthIndex)) + UsedWavelengths usedWaveLength = new UsedWavelengthsBuilder().setIndex((int)wavelengthIndex) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build(); switch (tp2.getTpType()) { - //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1) tp) - // .getTpType()) { case DEGREETXTTP: case DEGREETXRXTTP: TxTtpAttributes txTtpAttributes = null; @@ -546,20 +450,17 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case DEGREERXCTP: case DEGREETXRXCTP: CtpAttributes ctpAttributes = null; - Map usedDegreeCtpWls; if (tp1 != null) { ctpAttributes = tp1.getCtpAttributes(); } CtpAttributesBuilder ctpAttributesBuilder; - usedDegreeCtpWls = new HashMap<>(); if (ctpAttributes == null) { ctpAttributesBuilder = new CtpAttributesBuilder(); } else { ctpAttributesBuilder = new CtpAttributesBuilder(ctpAttributes); - usedDegreeCtpWls.putAll(ctpAttributesBuilder.getUsedWavelengths()); } - usedDegreeCtpWls.put(usedWaveLength.key(),usedWaveLength); - ctpAttributesBuilder.setUsedWavelengths(usedDegreeCtpWls); + availFreqMapsMap = ctpAttributesBuilder.getAvailFreqMaps(); + ctpAttributesBuilder.setAvailFreqMaps(updateFreqMaps(wavelengthIndex, availFreqMapsMap, false)); tp1Builder.setCtpAttributes(ctpAttributesBuilder.build()); break; @@ -567,29 +468,17 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case SRGRXCP: case SRGTXRXCP: CpAttributes cpAttributes = null; - Map usedDegreeCpWls; if (tp1 != null) { cpAttributes = tp1.getCpAttributes(); } CpAttributesBuilder cpAttributesBuilder; - usedDegreeCpWls = new HashMap<>(); if (cpAttributes == null) { cpAttributesBuilder = new CpAttributesBuilder(); } else { cpAttributesBuilder = new CpAttributesBuilder(cpAttributes); - usedDegreeCpWls.putAll(cpAttributesBuilder.getUsedWavelengths()); } - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks - .network.node.termination.point.cp.attributes.UsedWavelengths cpUsedWaveLength = - new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 - .networks.network.node.termination.point.cp.attributes.UsedWavelengthsBuilder() - .setIndex(Uint32.valueOf(wavelengthIndex)) - .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build(); - usedDegreeCpWls.put(cpUsedWaveLength.key(),cpUsedWaveLength); - cpAttributesBuilder.setUsedWavelengths(usedDegreeCpWls); + availFreqMapsMap = cpAttributesBuilder.getAvailFreqMaps(); + cpAttributesBuilder.setAvailFreqMaps(updateFreqMaps(wavelengthIndex, availFreqMapsMap, false)); tp1Builder.setCpAttributes(cpAttributesBuilder.build()); break; @@ -610,7 +499,7 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength usedDegreePpWls.putAll(ppAttributesBuilder.getUsedWavelength()); } UsedWavelength usedDegreeWaveLength = new UsedWavelengthBuilder() - .setIndex(Uint32.valueOf(wavelengthIndex)) + .setIndex((int)wavelengthIndex) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build(); usedDegreePpWls.put(usedDegreeWaveLength.key(),usedDegreeWaveLength); ppAttributesBuilder.setUsedWavelength(usedDegreePpWls); @@ -666,4 +555,98 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength LOG.error("Unable to add used WL {} for TPs {}!", wavelengthIndex, String.join(", ", tpIdsString), e); } } + + /** + * Update availFreqMapsMap for wavelengthNumber for nodes in nodeIds. + * @param nodeIds List of node id. + * @param wavelengthNumber Long + * @param isSlotAvailable boolean true if waveLength is available, false otherwise. + */ + //TODO: reduce its Cognitive Complexity from 21 to the 15 + private void updateFreqMaps4Nodes(List nodeIds, Long wavelengthNumber, boolean isSlotAvailable) { + WriteTransaction nodeWriteTx = this.dataBroker.newWriteOnlyTransaction(); + Map availFreqMapsMap; + String action = isSlotAvailable ? "addition" : "deletion"; + for (String nodeId : nodeIds) { + Optional node1Opt = getNode1FromDatastore(nodeId); + Optional node2Opt = getNode2FromDatastore(nodeId); + if (!node1Opt.isPresent() || !node2Opt.isPresent()) { + LOG.error( + "From topology {} for node id {} -> Get common-network : {} ! " + + "Get network-topology : {} ! Skipping {} of available wavelength for this node.", + NetworkUtils.OVERLAY_NETWORK_ID, nodeId, node1Opt.isPresent(), node2Opt.isPresent(), action); + continue; + } + Node1 node1 = node1Opt.get(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 node2 = node2Opt.get(); + Node1Builder node1Builder = new Node1Builder(node1); + switch (node2.getNodeType()) { + case DEGREE: + DegreeAttributes degreeAttributes = node1.getDegreeAttributes(); + DegreeAttributesBuilder degreeAttributesBuilder; + if (degreeAttributes == null) { + degreeAttributesBuilder = new DegreeAttributesBuilder(); + } else { + degreeAttributesBuilder = new DegreeAttributesBuilder(degreeAttributes); + } + availFreqMapsMap = degreeAttributesBuilder.getAvailFreqMaps(); + degreeAttributesBuilder + .setAvailFreqMaps(updateFreqMaps(wavelengthNumber, availFreqMapsMap, isSlotAvailable)); + node1Builder.setDegreeAttributes(degreeAttributesBuilder.build()); + break; + case SRG: + SrgAttributes srgAttributes = node1.getSrgAttributes(); + SrgAttributesBuilder srgAttributesBuilder; + if (srgAttributes == null) { + srgAttributesBuilder = new SrgAttributesBuilder(); + } else { + srgAttributesBuilder = new SrgAttributesBuilder(srgAttributes); + } + availFreqMapsMap = srgAttributesBuilder.getAvailFreqMaps(); + srgAttributesBuilder + .setAvailFreqMaps(updateFreqMaps(wavelengthNumber, availFreqMapsMap, isSlotAvailable)); + node1Builder.setSrgAttributes(srgAttributesBuilder.build()); + break; + default: + LOG.warn("Node type not managed {}", node2.getNodeType()); + break; + } + nodeWriteTx.put(LogicalDatastoreType.CONFIGURATION, createNode1IID(nodeId), node1Builder.build()); + } + try { + nodeWriteTx.commit().get(Timeouts.DATASTORE_WRITE, TimeUnit.MILLISECONDS); + } catch (ExecutionException | TimeoutException e) { + LOG.error("Cannot perform {} WL {} for nodes {}!", action, wavelengthNumber, String.join(", ", nodeIds), e); + } catch (InterruptedException e) { + LOG.error("{} interrupted WL {} for nodes {}!", action, wavelengthNumber, String.join(", ", nodeIds), e); + Thread.currentThread().interrupt(); + } + } + + /** + * Update availFreqMapsMap for wavelengthNumber. + * @param wavelengthNumber Long + * @param availFreqMapsMap Map + * @param isSlotAvailable boolean + * @return availFreqMapsMap updated for wavelengthNumber. + */ + private Map updateFreqMaps(Long wavelengthNumber, + Map availFreqMapsMap, boolean isSlotAvailable) { + byte slotValue = (byte)GridConstant.USED_SLOT_VALUE; + if (isSlotAvailable) { + slotValue = (byte)GridConstant.AVAILABLE_SLOT_VALUE; + } + if (availFreqMapsMap == null) { + availFreqMapsMap = GridUtils.initFreqMaps4FixedGrid2Available(); + } + AvailFreqMaps availFreqMaps = availFreqMapsMap.get(availFreqMapKey); + if (availFreqMaps != null && availFreqMaps.getFreqMap() != null) { + int intWlNumber = wavelengthNumber.intValue(); + if (intWlNumber > 0 && intWlNumber <= availFreqMaps.getFreqMap().length) { + availFreqMaps.getFreqMap()[intWlNumber - 1] = slotValue; + } + } + return availFreqMapsMap; + } } diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java index 363d6eb97..69b46a6d6 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java @@ -70,7 +70,7 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.node.interfaces.NodeInterfaceBuilder; import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.node.interfaces.NodeInterfaceKey; import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.olm.renderer.input.Nodes; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java index 655b329b5..8febfdc3d 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java @@ -34,7 +34,7 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.node.interfaces.NodeInterfaceBuilder; import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.node.interfaces.NodeInterfaceKey; import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev200615.otn.renderer.input.Nodes; -import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.OtnLinkType; +import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceFreeTest.java b/renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceFreeTest.java index 22b6db622..c65257c44 100644 --- a/renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceFreeTest.java +++ b/renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceFreeTest.java @@ -11,6 +11,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; @@ -24,57 +25,56 @@ import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.device.DeviceTransactionManager; import org.opendaylight.transportpce.common.device.DeviceTransactionManagerImpl; import org.opendaylight.transportpce.common.fixedflex.FixedFlexImpl; +import org.opendaylight.transportpce.common.fixedflex.FixedGridConstant; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.renderer.stub.MountPointServiceStub; import org.opendaylight.transportpce.renderer.stub.MountPointStub; import org.opendaylight.transportpce.renderer.utils.ServiceDeleteDataUtils; import org.opendaylight.transportpce.renderer.utils.WaveLengthServiceUtils; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev181130.FrequencyGHz; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev181130.FrequencyTHz; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.used.wavelengths.UsedWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.used.wavelengths.UsedWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.used.wavelengths.UsedWavelengthsKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.pp.attributes.UsedWavelength; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.pp.attributes.UsedWavelengthBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.port.connection.attributes.WavelengthBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrClientAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.port.connection.attributes.WavelengthBuilder; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev200629.PathDescription; -import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.Uint16; @Ignore @RunWith(Parameterized.class) public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { - private static final Uint32 UI32_WAVE_LENGTH = Uint32.valueOf(20); private static final long WAVE_LENGTH = 20L; private NetworkModelWavelengthService networkModelWavelengthService; private DeviceTransactionManager deviceTransactionManager; private TerminationPoint1 terminationPoint1; - private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1 terminationPoint2; private PathDescription pathDescription; private Node1 node1; - private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node2; + private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 node2; + private final AvailFreqMapsKey freqMapKey = new AvailFreqMapsKey(GridConstant.C_BAND); public NetworkModelWaveLengthServiceFreeTest(PathDescription pathDescription, TerminationPoint1 terminationPoint1, Node1 node1, - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1 terminationPoint2, - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node2) { + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 terminationPoint2, + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 node2) { this.pathDescription = pathDescription; this.terminationPoint1 = terminationPoint1; @@ -93,39 +93,37 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { FixedFlexImpl fixedFlex = new FixedFlexImpl(); fixedFlex = fixedFlex.getFixedFlexWaveMapping(WAVE_LENGTH); - FrequencyGHz frequencyGHz = new FrequencyGHz(new BigDecimal(fixedFlex.getWavelength())); - FrequencyTHz frequencyTHz = new FrequencyTHz(new BigDecimal(fixedFlex.getCenterFrequency())); - UsedWavelength usedWaveLength = (new UsedWavelengthBuilder()).setIndex(UI32_WAVE_LENGTH).build(); - UsedWavelengths usedWaveLengthDegree = (new UsedWavelengthsBuilder()).setIndex(UI32_WAVE_LENGTH).build(); - Map usedWaveLengthDegreeMap = - Map.of(usedWaveLengthDegree.key(),usedWaveLengthDegree); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 - .networks.network.node.termination.point.cp.attributes.UsedWavelengths usedWaveLentgthCp = - (new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks - .network.node.termination.point.cp.attributes.UsedWavelengthsBuilder()) - .setIndex(UI32_WAVE_LENGTH) - .build(); + byte[] byteArray = new byte[FixedGridConstant.NB_CHANNELS * FixedGridConstant.EFFECTIVE_BITS]; + Arrays.fill(byteArray, (byte) GridConstant.USED_SLOT_VALUE); + for (int i = 152;i <= 159;i++) { + byteArray[i] = (byte) GridConstant.AVAILABLE_SLOT_VALUE; + } + Map waveMap = new HashMap<>(); + AvailFreqMaps availFreqMaps = new AvailFreqMapsBuilder().setMapName(GridConstant.C_BAND) + .setFreqMapGranularity(new FrequencyGHz(BigDecimal.valueOf(FixedGridConstant.GRANULARITY))) + .setStartEdgeFreq(new FrequencyTHz(BigDecimal.valueOf(FixedGridConstant.START_EDGE_FREQUENCY))) + .setEffectiveBits(Uint16.valueOf(FixedGridConstant.EFFECTIVE_BITS)) + .setFreqMap(byteArray) + .build(); + waveMap.put(availFreqMaps.key(), availFreqMaps); + FrequencyGHz frequencyGHz = new FrequencyGHz(BigDecimal.valueOf(fixedFlex.getWavelength())); + FrequencyTHz frequencyTHz = new FrequencyTHz(BigDecimal.valueOf(fixedFlex.getCenterFrequency())); TerminationPoint1Builder terminationPoint1Builder = new TerminationPoint1Builder() .setCtpAttributes((new CtpAttributesBuilder()) - .setUsedWavelengths( - usedWaveLengthDegreeMap) + .setAvailFreqMaps(waveMap) .build()) .setCpAttributes((new CpAttributesBuilder()) - .setUsedWavelengths( - Map.of(usedWaveLentgthCp.key(), - usedWaveLentgthCp)) + .setAvailFreqMaps(waveMap) .build()) .setTxTtpAttributes((new TxTtpAttributesBuilder()) - .setUsedWavelengths( - usedWaveLengthDegreeMap) + .setAvailFreqMaps(waveMap) .build()) .setRxTtpAttributes((new RxTtpAttributesBuilder()) - .setUsedWavelengths( - usedWaveLengthDegreeMap) + .setAvailFreqMaps(waveMap) .build()) .setPpAttributes((new PpAttributesBuilder()) - .setUsedWavelength(Map.of(usedWaveLength.key(),usedWaveLength)) + .setAvailFreqMaps(waveMap) .build()) .setXpdrClientAttributes((new XpdrClientAttributesBuilder()) .setWavelength((new WavelengthBuilder()) @@ -147,15 +145,15 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { .build()); Node1Builder node1Builder = new Node1Builder() - .setDegreeAttributes((new DegreeAttributesBuilder()).setAvailableWavelengths(Map.of()).build()) - .setSrgAttributes((new SrgAttributesBuilder()).setAvailableWavelengths(Map.of()).build()); + .setDegreeAttributes((new DegreeAttributesBuilder()).setAvailFreqMaps(Map.of()).build()) + .setSrgAttributes((new SrgAttributesBuilder()).setAvailFreqMaps(Map.of()).build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder terminationPoint2Builder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder(); + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder node2Builder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder node2Builder = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder(); for (OpenroadmNodeType nodeType : Arrays.asList(OpenroadmNodeType.XPONDER, OpenroadmNodeType.DEGREE, OpenroadmNodeType.SRG)) { @@ -174,11 +172,8 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { } node2Builder.setNodeType(OpenroadmNodeType.SRG); - node1Builder - .setDegreeAttributes((new DegreeAttributesBuilder()) - .setAvailableWavelengths(Map.of()) - .build()) - .setSrgAttributes(null); + node1Builder.setDegreeAttributes((new DegreeAttributesBuilder()).setAvailFreqMaps(Map.of()).build()) + .setSrgAttributes(null); terminationPoint2Builder.setTpType(OpenroadmTpType.DEGREETXTTP); parameters.add(new Object[] { pathDescription, terminationPoint1Builder.build(), node1Builder.build(), terminationPoint2Builder.build(), node2Builder.build() }); @@ -205,24 +200,22 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { this.networkModelWavelengthService.freeWavelengths(this.pathDescription); Node1 updatedNode1 = WaveLengthServiceUtils.getNode1FromDatastore("node1" + StringConstants.TTP_TOKEN, this.deviceTransactionManager); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 updatedNode2 = + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 updatedNode2 = WaveLengthServiceUtils.getNode2FromDatastore("node1" + StringConstants.TTP_TOKEN, this.deviceTransactionManager); TerminationPoint1 updatedTerminationPoint1 = WaveLengthServiceUtils.getTerminationPoint1FromDatastore("node1" + StringConstants.TTP_TOKEN, StringConstants.TTP_TOKEN, this.deviceTransactionManager); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1 updatedTerminationPoint2 = WaveLengthServiceUtils .getTerminationPoint2FromDatastore("node1" + StringConstants.TTP_TOKEN, StringConstants.TTP_TOKEN, this.deviceTransactionManager); switch (updatedTerminationPoint2.getTpType()) { - //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1) - // updatedTerminationPoint1).getTpType()) { case DEGREETXRXCTP: case DEGREETXCTP: case DEGREERXCTP: Assert.assertNull(updatedTerminationPoint1.getCtpAttributes()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -233,7 +226,7 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { case SRGTXCP: case SRGRXCP: case SRGTXRXCP: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertNull(updatedTerminationPoint1.getCpAttributes()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); @@ -244,8 +237,8 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { break; case DEGREETXRXTTP: case DEGREETXTTP: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertNull(updatedTerminationPoint1.getTxTtpAttributes()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -254,8 +247,8 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { Assert.assertNotNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; case DEGREERXTTP: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertNull(updatedTerminationPoint1.getRxTtpAttributes()); Assert.assertFalse(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -266,8 +259,8 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { case SRGRXPP: case SRGTXPP: case SRGTXRXPP: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertNull(updatedTerminationPoint1.getPpAttributes()); @@ -276,8 +269,8 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { Assert.assertNotNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; case XPONDERCLIENT: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -286,8 +279,8 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { Assert.assertNotNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; case XPONDERNETWORK: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -296,8 +289,8 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { Assert.assertNotNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; case XPONDERPORT: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -306,8 +299,8 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { Assert.assertNull(updatedTerminationPoint1.getXpdrPortAttributes()); break; default: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -316,29 +309,27 @@ public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest { Assert.assertNotNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; } - List availableWavelengths = new ArrayList<>(updatedNode1 - .getDegreeAttributes().nonnullAvailableWavelengths().values()); - List - availableWavelengths4srg = - new ArrayList<>(updatedNode1.getSrgAttributes().getAvailableWavelengths().values()); + AvailFreqMaps availFreqMaps4Srg = updatedNode1.getSrgAttributes().nonnullAvailFreqMaps().get(freqMapKey); + AvailFreqMaps availFreqMaps4Degree = updatedNode1.getDegreeAttributes().nonnullAvailFreqMaps().get(freqMapKey); + int effectiveBits = availFreqMaps4Srg.getEffectiveBits().intValue(); + byte[] array = new byte[effectiveBits]; + Arrays.fill(array, (byte) 1); switch (updatedNode2.getNodeType()) { - //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1) updatedNode1) - // .getNodeType()) { case DEGREE: - Assert.assertEquals(1, availableWavelengths.size()); - Assert.assertEquals(UI32_WAVE_LENGTH, - availableWavelengths.get(0).getIndex()); - Assert.assertTrue(availableWavelengths4srg.isEmpty()); + Assert.assertNotNull("FreqMap should not be null", availFreqMaps4Degree.getFreqMap()); + Assert.assertTrue("Index 20 should be available", + Arrays.equals(Arrays.copyOfRange(availFreqMaps4Degree.getFreqMap(), 152, 160), array)); + Assert.assertNull(availFreqMaps4Srg); break; case SRG: - Assert.assertEquals(1, availableWavelengths4srg.size()); - Assert.assertEquals(UI32_WAVE_LENGTH, - availableWavelengths4srg.get(0).getIndex()); - Assert.assertTrue(availableWavelengths.isEmpty()); + Assert.assertNotNull("FreqMap should not be null", availFreqMaps4Srg.getFreqMap()); + Assert.assertTrue("Index 20 should be available", + Arrays.equals(Arrays.copyOfRange(availFreqMaps4Srg.getFreqMap(), 152, 160), array)); + Assert.assertNull(availFreqMaps4Degree); break; default: - Assert.assertTrue(availableWavelengths.isEmpty()); - Assert.assertTrue(availableWavelengths4srg.isEmpty()); + Assert.assertNull(availFreqMaps4Degree); + Assert.assertNull(availFreqMaps4Srg); break; } } diff --git a/renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceUseTest.java b/renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceUseTest.java index d52a28fea..dad4b2cd7 100644 --- a/renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceUseTest.java +++ b/renderer/src/test/java/org/opendaylight/transportpce/renderer/NetworkModelWaveLengthServiceUseTest.java @@ -7,9 +7,11 @@ */ package org.opendaylight.transportpce.renderer; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; @@ -22,31 +24,36 @@ import org.junit.runners.Parameterized; import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.device.DeviceTransactionManager; import org.opendaylight.transportpce.common.device.DeviceTransactionManagerImpl; +import org.opendaylight.transportpce.common.fixedflex.FixedGridConstant; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.renderer.stub.MountPointServiceStub; import org.opendaylight.transportpce.renderer.stub.MountPointStub; import org.opendaylight.transportpce.renderer.utils.ServiceDeleteDataUtils; import org.opendaylight.transportpce.renderer.utils.WaveLengthServiceUtils; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; -import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyGHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrClientAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.path.PathDescription; -import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.Uint16; @Ignore @RunWith(Parameterized.class) @@ -56,10 +63,10 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { private DeviceTransactionManager deviceTransactionManager; private TerminationPoint1 terminationPoint1; - private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1 terminatPoint2; + private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 terminatPoint2; private PathDescription pathDescription; private Node1 node1; - private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node2; + private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 node2; @Before public void setMountPoint() { @@ -70,8 +77,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { public NetworkModelWaveLengthServiceUseTest(PathDescription pathDescription, TerminationPoint1 terminationPoint1, Node1 node1, - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1 terminationPoint2, - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node2) { + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 terminationPoint2, + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 node2) { this.pathDescription = pathDescription; this.terminationPoint1 = terminationPoint1; this.terminatPoint2 = terminationPoint2; @@ -87,8 +94,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { ServiceDeleteDataUtils.createTransactionPathDescription(StringConstants.TTP_TOKEN); TerminationPoint1Builder terminationPoint1Builder = new TerminationPoint1Builder() - .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) - .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) + .setCtpAttributes((new CtpAttributesBuilder()).setAvailFreqMaps(Map.of()).build()) + .setCpAttributes((new CpAttributesBuilder()).setAvailFreqMaps(Map.of()).build()) .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build()) .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build()) @@ -96,26 +103,33 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { .setXpdrNetworkAttributes((new XpdrNetworkAttributesBuilder()).build()) .setXpdrPortAttributes((new XpdrPortAttributesBuilder()).build()); - AvailableWavelengths aval = new AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(20)).build(); - org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths avalSrg = - new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(20)).build(); + byte[] byteArray = new byte[FixedGridConstant.NB_CHANNELS * FixedGridConstant.EFFECTIVE_BITS]; + Arrays.fill(byteArray, (byte) GridConstant.USED_SLOT_VALUE); + for (int i = 152;i <= 159;i++) { + byteArray[i] = (byte) GridConstant.AVAILABLE_SLOT_VALUE; + } + Map waveMap = new HashMap<>(); + AvailFreqMaps availFreqMaps = new AvailFreqMapsBuilder().setMapName(GridConstant.C_BAND) + .setFreqMapGranularity(new FrequencyGHz(BigDecimal.valueOf(FixedGridConstant.GRANULARITY))) + .setStartEdgeFreq(new FrequencyTHz(BigDecimal.valueOf(FixedGridConstant.START_EDGE_FREQUENCY))) + .setEffectiveBits(Uint16.valueOf(FixedGridConstant.EFFECTIVE_BITS)) + .setFreqMap(byteArray) + .build(); + waveMap.put(availFreqMaps.key(), availFreqMaps); Node1Builder node1Builder = new Node1Builder() .setDegreeAttributes((new DegreeAttributesBuilder()) - .setAvailableWavelengths( - Map.of(aval.key(),aval)) + .setAvailFreqMaps(waveMap) .build()) .setSrgAttributes((new SrgAttributesBuilder()) - .setAvailableWavelengths( - Map.of(avalSrg.key(),avalSrg)) + .setAvailFreqMaps(waveMap) .build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder terminationPoint2Builder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder(); + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder node2Builder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder node2Builder = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder(); for (OpenroadmNodeType nodeType : Arrays .asList(OpenroadmNodeType.XPONDER, OpenroadmNodeType.DEGREE, OpenroadmNodeType.SRG)) { @@ -148,25 +162,25 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { this.networkModelWavelengthService.useWavelengths(this.pathDescription); Node1 updatedNode1 = WaveLengthServiceUtils.getNode1FromDatastore("node1" + StringConstants.TTP_TOKEN, this.deviceTransactionManager); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 updatedNode2 = + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 updatedNode2 = WaveLengthServiceUtils.getNode2FromDatastore("node1" + StringConstants.TTP_TOKEN, this.deviceTransactionManager); TerminationPoint1 updatedTerminationPoint1 = WaveLengthServiceUtils .getTerminationPoint1FromDatastore("node1" + StringConstants.TTP_TOKEN, StringConstants.TTP_TOKEN, this.deviceTransactionManager); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1 updatedTerminationPoint2 = WaveLengthServiceUtils .getTerminationPoint2FromDatastore("node1" + StringConstants.TTP_TOKEN, StringConstants.TTP_TOKEN, this.deviceTransactionManager); switch (updatedTerminationPoint2.getTpType()) { - //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1) + //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1) // updatedTerminationPoint1).getTpType()) { case DEGREETXRXCTP: case DEGREETXCTP: case DEGREERXCTP: - Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -177,8 +191,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { case SRGTXCP: case SRGRXCP: case SRGTXRXCP: - Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -188,8 +202,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { break; case DEGREETXRXTTP: case DEGREETXTTP: - Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -198,8 +212,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { Assert.assertNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; case DEGREERXTTP: - Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -210,8 +224,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { case SRGRXPP: case SRGTXPP: case SRGTXRXPP: - Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertFalse(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -220,8 +234,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { Assert.assertNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; case XPONDERCLIENT: - Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -230,8 +244,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { Assert.assertNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; case XPONDERNETWORK: - Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -240,8 +254,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { Assert.assertNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength()); break; case XPONDERPORT: - Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -250,8 +264,8 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { Assert.assertNotNull(updatedTerminationPoint1.getXpdrPortAttributes()); break; default: - Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getUsedWavelengths().isEmpty()); - Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getUsedWavelengths().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCtpAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertTrue(updatedTerminationPoint1.getCpAttributes().getAvailFreqMaps().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getTxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getRxTtpAttributes().getUsedWavelengths().isEmpty()); Assert.assertTrue(updatedTerminationPoint1.getPpAttributes().getUsedWavelength().isEmpty()); @@ -261,19 +275,17 @@ public class NetworkModelWaveLengthServiceUseTest extends AbstractTest { break; } switch (updatedNode2.getNodeType()) { - //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1) updatedNode1) - // .getNodeType()) { case DEGREE: Assert.assertNull(updatedNode1.getDegreeAttributes()); - Assert.assertFalse(updatedNode1.getSrgAttributes().getAvailableWavelengths().isEmpty()); + Assert.assertFalse(updatedNode1.getSrgAttributes().getAvailFreqMaps().isEmpty()); break; case SRG: Assert.assertNull(updatedNode1.getSrgAttributes()); - Assert.assertFalse(updatedNode1.getDegreeAttributes().getAvailableWavelengths().isEmpty()); + Assert.assertFalse(updatedNode1.getDegreeAttributes().getAvailFreqMaps().isEmpty()); break; default: - Assert.assertFalse(updatedNode1.getDegreeAttributes().getAvailableWavelengths().isEmpty()); - Assert.assertFalse(updatedNode1.getSrgAttributes().getAvailableWavelengths().isEmpty()); + Assert.assertFalse(updatedNode1.getDegreeAttributes().getAvailFreqMaps().isEmpty()); + Assert.assertFalse(updatedNode1.getSrgAttributes().getAvailFreqMaps().isEmpty()); break; } diff --git a/renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/WaveLengthServiceUtils.java b/renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/WaveLengthServiceUtils.java index 1750d4e0d..e04cb25c7 100644 --- a/renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/WaveLengthServiceUtils.java +++ b/renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/WaveLengthServiceUtils.java @@ -12,8 +12,8 @@ import java.util.concurrent.ExecutionException; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.device.DeviceTransactionManager; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -47,7 +47,7 @@ public final class WaveLengthServiceUtils { .augmentation(TerminationPoint1.class); } - private static InstanceIdentifierBuilder createTerminationPoint2IIDBuilder( String nodeId, String tpId) { return InstanceIdentifier @@ -61,7 +61,7 @@ public final class WaveLengthServiceUtils { .child( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks .network.node.TerminationPoint.class, new TerminationPointKey(new TpId(tpId))) - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1.class); } @@ -74,7 +74,7 @@ public final class WaveLengthServiceUtils { } public static void putTerminationPoint2ToDatastore(String nodeId, String tpId, - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 terminationPoint1, DeviceTransactionManager deviceTransactionManager) throws ExecutionException, InterruptedException { TransactionUtils @@ -90,13 +90,13 @@ public final class WaveLengthServiceUtils { .readTransaction(deviceTransactionManager, nodeId, LogicalDatastoreType.CONFIGURATION, tpIID); } - public static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + public static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .TerminationPoint1 getTerminationPoint2FromDatastore(String nodeId, String tpId, DeviceTransactionManager deviceTransactionManager) throws ExecutionException, InterruptedException { - InstanceIdentifier + InstanceIdentifier tpIID = createTerminationPoint2IIDBuilder(nodeId, tpId).build(); - return (org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1) + return (org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1) TransactionUtils .readTransaction(deviceTransactionManager, nodeId, LogicalDatastoreType.CONFIGURATION, tpIID); } @@ -112,7 +112,7 @@ public final class WaveLengthServiceUtils { .build(); } - private static InstanceIdentifier createNode2IID(String nodeId) { return InstanceIdentifier .builder(Networks.class) @@ -120,7 +120,7 @@ public final class WaveLengthServiceUtils { .child( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network .Node.class, new NodeKey(new NodeId(nodeId))) - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1.class) + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1.class) .build(); } @@ -134,10 +134,10 @@ public final class WaveLengthServiceUtils { } public static void putNode2ToDatastore(String nodeId, - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node1, + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 node1, DeviceTransactionManager deviceTransactionManager) throws ExecutionException, InterruptedException { - InstanceIdentifier nodeIID = + InstanceIdentifier nodeIID = createNode2IID(nodeId); TransactionUtils .writeTransaction(deviceTransactionManager, nodeId, @@ -151,12 +151,12 @@ public final class WaveLengthServiceUtils { .readTransaction(deviceTransactionManager, nodeId, LogicalDatastoreType.CONFIGURATION, nodeIID); } - public static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + public static org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 .Node1 getNode2FromDatastore(String nodeId, DeviceTransactionManager deviceTransactionManager) throws ExecutionException, InterruptedException { - InstanceIdentifier nodeIID = createNode2IID(nodeId); - return (org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1) TransactionUtils + return (org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1) TransactionUtils .readTransaction(deviceTransactionManager, nodeId, LogicalDatastoreType.CONFIGURATION, nodeIID); } } diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiTopo.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiTopo.java index e12a6b5db..c0b13d5ae 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiTopo.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiTopo.java @@ -18,17 +18,17 @@ import java.util.Map; import java.util.Map.Entry; import java.util.UUID; import java.util.stream.Collectors; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPools; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.OduSwitchingPoolsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev181130.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPools; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPoolsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingList; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.odu.switching.pools.NonBlockingListKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint; @@ -113,12 +113,12 @@ public class ConvertORTopoToTapiTopo { public void convertNode(Node ietfNode, List networkPorts) { this.ietfNodeId = ietfNode.getNodeId().getValue(); - if (ietfNode.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1.class) + if (ietfNode.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1.class) == null) { return; } this.ietfNodeType = ietfNode.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1.class).getNodeType(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1.class).getNodeType(); this.oorNetworkPortList = ietfNode.augmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class) .getTerminationPoint().values().stream() @@ -190,7 +190,7 @@ public class ConvertORTopoToTapiTopo { if (!linksToNotConvert.contains(link.getLinkId().getValue())) { Link tapiLink = createTapiLink(link); linksToNotConvert.add(link - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class) + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class) .getOppositeLink().getValue()); tapiLinks.put(tapiLink.key(), tapiLink); } @@ -239,7 +239,7 @@ public class ConvertORTopoToTapiTopo { for (TerminationPoint tp : this.oorNetworkPortList) { TpId tpid1 = tp.getTpId(); TpId tpid2 = new TpId(tp.augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1.class) + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1.class) .getAssociatedConnectionMapPort()); List tpList = new ArrayList<>(); tpList.add(tpid1); @@ -566,8 +566,8 @@ public class ConvertORTopoToTapiTopo { LayerProtocolName lpn) { List> sclpqList = new ArrayList<>(); List sicList = new ArrayList<>( - tp.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm - .otn.network.topology.rev181130.TerminationPoint1.class).getTpSupportedInterfaces() + tp.augmentation(org.opendaylight.yang.gen.v1.http + .org.openroadm.otn.network.topology.rev200529.TerminationPoint1.class).getTpSupportedInterfaces() .getSupportedInterfaceCapability().values()); for (SupportedInterfaceCapability sic : sicList) { switch (lpn.getName()) { diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImpl.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImpl.java index 244c48373..a716b6e9f 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImpl.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiTopologyImpl.java @@ -32,11 +32,11 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.NodesKey; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; @@ -216,7 +216,7 @@ public class TapiTopologyImpl implements TapiTopologyService { tapiLinkList.putAll(tapiFactory.getTapiLinks()); } if (openroadmTopo.nonnullNode().values().stream().filter(nt -> - nt.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1.class) + nt.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1.class) .getNodeType().equals(OpenroadmNodeType.SRG)).count() > 0) { tapiFactory.convertRoadmInfrastructure(); tapiNodeList.putAll(tapiFactory.getTapiNodes()); @@ -283,7 +283,7 @@ public class TapiTopologyImpl implements TapiTopologyService { String networkLcp; if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERCLIENT)) { networkLcp = tp.augmentation( - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev200129.TerminationPoint1.class) + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1.class) .getAssociatedConnectionMapPort(); } else { networkLcp = tp.getTpId().getValue(); diff --git a/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoObjectToTapiTooObjectTest.java b/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoObjectToTapiTooObjectTest.java index c79c1cca2..b5d981e92 100644 --- a/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoObjectToTapiTooObjectTest.java +++ b/tapi/src/test/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoObjectToTapiTooObjectTest.java @@ -34,8 +34,8 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.InstanceIdentifiers; import org.opendaylight.transportpce.tapi.utils.TopologyDataUtils; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; diff --git a/tapi/src/test/java/org/opendaylight/transportpce/tapi/utils/TopologyDataUtils.java b/tapi/src/test/java/org/opendaylight/transportpce/tapi/utils/TopologyDataUtils.java index f638e6a09..0f560f3f7 100644 --- a/tapi/src/test/java/org/opendaylight/transportpce/tapi/utils/TopologyDataUtils.java +++ b/tapi/src/test/java/org/opendaylight/transportpce/tapi/utils/TopologyDataUtils.java @@ -52,9 +52,8 @@ public final class TopologyDataUtils { InputStream targetStream; try { targetStream = new FileInputStream(topoFile); - Optional> transformIntoNormalizedNode = null; - transformIntoNormalizedNode = XMLDataObjectConverter.createWithDataStoreUtil(dataStoreContextUtil) - .transformIntoNormalizedNode(targetStream); + Optional> transformIntoNormalizedNode = XMLDataObjectConverter + .createWithDataStoreUtil(dataStoreContextUtil).transformIntoNormalizedNode(targetStream); if (!transformIntoNormalizedNode.isPresent()) { throw new IllegalStateException(String.format( "Could not transform the input %s into normalized nodes", fileName)); diff --git a/tapi/src/test/resources/openroadm-topology.xml b/tapi/src/test/resources/openroadm-topology.xml index 053f56d7c..a7d2a5cf4 100644 --- a/tapi/src/test/resources/openroadm-topology.xml +++ b/tapi/src/test/resources/openroadm-topology.xml @@ -35,294 +35,14 @@ - - 95 - - - 94 - - - 96 - - - 43 - - - 42 - - - 45 - - - 44 - - - 39 - - - 38 - - - 41 - - - 40 - - - 35 - - - 34 - - - 37 - - - 36 - - - 31 - - - 30 - - - 33 - - - 32 - - - 59 - - - 58 - - - 61 - - - 60 - - - 55 - - - 54 - - - 57 - - - 56 - - - 51 - - - 50 - - - 53 - - - 52 - - - 47 - - - 46 - - - 49 - - - 48 - - - 75 - - - 74 - - - 77 - - - 76 - - - 71 - - - 70 - - - 73 - - - 72 - - - 67 - - - 66 - - - 69 - - - 68 - - - 63 - - - 62 - - - 65 - - - 64 - - - 91 - - - 90 - - - 93 - - - 92 - - - 87 - - - 86 - - - 89 - - - 88 - - - 83 - - - 82 - - - 85 - - - 84 - - - 79 - - - 78 - - - 81 - - - 80 - - - 11 - - - 10 - - - 13 - - - 12 - - - 7 - - - 6 - - - 9 - - - 8 - - - 3 - - - 2 - - - 5 - - - 4 - - - 1 - - - 27 - - - 26 - - - 29 - - - 28 - - - 23 - - - 22 - - - 25 - - - 24 - - - 19 - - - 18 - - - 21 - - - 20 - - - 15 - - - 14 - - - 17 - - - 16 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + clli-network @@ -408,294 +128,14 @@ - - 95 - - - 94 - - - 96 - - - 43 - - - 42 - - - 45 - - - 44 - - - 39 - - - 38 - - - 41 - - - 40 - - - 35 - - - 34 - - - 37 - - - 36 - - - 31 - - - 30 - - - 33 - - - 32 - - - 59 - - - 58 - - - 61 - - - 60 - - - 55 - - - 54 - - - 57 - - - 56 - - - 51 - - - 50 - - - 53 - - - 52 - - - 47 - - - 46 - - - 49 - - - 48 - - - 75 - - - 74 - - - 77 - - - 76 - - - 71 - - - 70 - - - 73 - - - 72 - - - 67 - - - 66 - - - 69 - - - 68 - - - 63 - - - 62 - - - 65 - - - 64 - - - 91 - - - 90 - - - 93 - - - 92 - - - 87 - - - 86 - - - 89 - - - 88 - - - 83 - - - 82 - - - 85 - - - 84 - - - 79 - - - 78 - - - 81 - - - 80 - - - 11 - - - 10 - - - 13 - - - 12 - - - 7 - - - 6 - - - 9 - - - 8 - - - 3 - - - 2 - - - 5 - - - 4 - - - 1 - - - 27 - - - 26 - - - 29 - - - 28 - - - 23 - - - 22 - - - 25 - - - 24 - - - 19 - - - 18 - - - 21 - - - 20 - - - 15 - - - 14 - - - 17 - - - 16 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + clli-network @@ -722,295 +162,14 @@ 1 - - 95 - - - 94 - - - 96 - - - 43 - - - 42 - - - 45 - - - 44 - - - 39 - - - 38 - - - 41 - - - 40 - - - 35 - - - 34 - - - 37 - - - 36 - - - 31 - - - 30 - - - 33 - - - 32 - - - 59 - - - 58 - - - 61 - - - 60 - - - 55 - - - 54 - - - 57 - - - 56 - - - 51 - - - 50 - - - 53 - - - 52 - - - 47 - - - 46 - - - 49 - - - 48 - - - 75 - - - 74 - - - 77 - - - 76 - - - 71 - - - 70 - - - 73 - - - 72 - - - 67 - - - 66 - - - 69 - - - 68 - - - 63 - - - 62 - - - 65 - - - 64 - - - 91 - - - 90 - - - 93 - - - 92 - - - 87 - - - 86 - - - 89 - - - 88 - - - 83 - - - 82 - - - 85 - - - 84 - - - 79 - - - 78 - - - 81 - - - 80 - - - 11 - - - 10 - - - 13 - - - 12 - - - 7 - - - 6 - - - 9 - - - 8 - - - 3 - - - 2 - - - 5 - - - 4 - - - 1 - - - 27 - - - 26 - - - 29 - - - 28 - - - 23 - - - 22 - - - 25 - - - 24 - - - 19 - - - 18 - - - 21 - - - 20 - - - 15 - - - 14 - - - 17 - - - 16 - - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + clli-network NodeA @@ -1081,295 +240,14 @@ 2 - - 95 - - - 94 - - - 96 - - - 43 - - - 42 - - - 45 - - - 44 - - - 39 - - - 38 - - - 41 - - - 40 - - - 35 - - - 34 - - - 37 - - - 36 - - - 31 - - - 30 - - - 33 - - - 32 - - - 59 - - - 58 - - - 61 - - - 60 - - - 55 - - - 54 - - - 57 - - - 56 - - - 51 - - - 50 - - - 53 - - - 52 - - - 47 - - - 46 - - - 49 - - - 48 - - - 75 - - - 74 - - - 77 - - - 76 - - - 71 - - - 70 - - - 73 - - - 72 - - - 67 - - - 66 - - - 69 - - - 68 - - - 63 - - - 62 - - - 65 - - - 64 - - - 91 - - - 90 - - - 93 - - - 92 - - - 87 - - - 86 - - - 89 - - - 88 - - - 83 - - - 82 - - - 85 - - - 84 - - - 79 - - - 78 - - - 81 - - - 80 - - - 11 - - - 10 - - - 13 - - - 12 - - - 7 - - - 6 - - - 9 - - - 8 - - - 3 - - - 2 - - - 5 - - - 4 - - - 1 - - - 27 - - - 26 - - - 29 - - - 28 - - - 23 - - - 22 - - - 25 - - - 24 - - - 19 - - - 18 - - - 21 - - - 20 - - - 15 - - - 14 - - - 17 - - - 16 - - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + clli-network NodeA @@ -1409,295 +287,14 @@ - - 95 - - - 94 - - - 96 - - - 43 - - - 42 - - - 45 - - - 44 - - - 39 - - - 38 - - - 41 - - - 40 - - - 35 - - - 34 - - - 37 - - - 36 - - - 31 - - - 30 - - - 33 - - - 32 - - - 59 - - - 58 - - - 61 - - - 60 - - - 55 - - - 54 - - - 57 - - - 56 - - - 51 - - - 50 - - - 53 - - - 52 - - - 47 - - - 46 - - - 49 - - - 48 - - - 75 - - - 74 - - - 77 - - - 76 - - - 71 - - - 70 - - - 73 - - - 72 - - - 67 - - - 66 - - - 69 - - - 68 - - - 63 - - - 62 - - - 65 - - - 64 - - - 91 - - - 90 - - - 93 - - - 92 - - - 87 - - - 86 - - - 89 - - - 88 - - - 83 - - - 82 - - - 85 - - - 84 - - - 79 - - - 78 - - - 81 - - - 80 - - - 11 - - - 10 - - - 13 - - - 12 - - - 7 - - - 6 - - - 9 - - - 8 - - - 3 - - - 2 - - - 5 - - - 4 - - - 1 - - - 27 - - - 26 - - - 29 - - - 28 - - - 23 - - - 22 - - - 25 - - - 24 - - - 19 - - - 18 - - - 21 - - - 20 - - - 15 - - - 14 - - - 17 - - - 16 - - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + clli-network NodeC @@ -1745,295 +342,14 @@ 1 - - 95 - - - 94 - - - 96 - - - 43 - - - 42 - - - 45 - - - 44 - - - 39 - - - 38 - - - 41 - - - 40 - - - 35 - - - 34 - - - 37 - - - 36 - - - 31 - - - 30 - - - 33 - - - 32 - - - 59 - - - 58 - - - 61 - - - 60 - - - 55 - - - 54 - - - 57 - - - 56 - - - 51 - - - 50 - - - 53 - - - 52 - - - 47 - - - 46 - - - 49 - - - 48 - - - 75 - - - 74 - - - 77 - - - 76 - - - 71 - - - 70 - - - 73 - - - 72 - - - 67 - - - 66 - - - 69 - - - 68 - - - 63 - - - 62 - - - 65 - - - 64 - - - 91 - - - 90 - - - 93 - - - 92 - - - 87 - - - 86 - - - 89 - - - 88 - - - 83 - - - 82 - - - 85 - - - 84 - - - 79 - - - 78 - - - 81 - - - 80 - - - 11 - - - 10 - - - 13 - - - 12 - - - 7 - - - 6 - - - 9 - - - 8 - - - 3 - - - 2 - - - 5 - - - 4 - - - 1 - - - 27 - - - 26 - - - 29 - - - 28 - - - 23 - - - 22 - - - 25 - - - 24 - - - 19 - - - 18 - - - 21 - - - 20 - - - 15 - - - 14 - - - 17 - - - 16 - - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + clli-network NodeC @@ -2081,294 +397,14 @@ 2 - - 95 - - - 94 - - - 96 - - - 43 - - - 42 - - - 45 - - - 44 - - - 39 - - - 38 - - - 41 - - - 40 - - - 35 - - - 34 - - - 37 - - - 36 - - - 31 - - - 30 - - - 33 - - - 32 - - - 59 - - - 58 - - - 61 - - - 60 - - - 55 - - - 54 - - - 57 - - - 56 - - - 51 - - - 50 - - - 53 - - - 52 - - - 47 - - - 46 - - - 49 - - - 48 - - - 75 - - - 74 - - - 77 - - - 76 - - - 71 - - - 70 - - - 73 - - - 72 - - - 67 - - - 66 - - - 69 - - - 68 - - - 63 - - - 62 - - - 65 - - - 64 - - - 91 - - - 90 - - - 93 - - - 92 - - - 87 - - - 86 - - - 89 - - - 88 - - - 83 - - - 82 - - - 85 - - - 84 - - - 79 - - - 78 - - - 81 - - - 80 - - - 11 - - - 10 - - - 13 - - - 12 - - - 7 - - - 6 - - - 9 - - - 8 - - - 3 - - - 2 - - - 5 - - - 4 - - - 1 - - - 27 - - - 26 - - - 29 - - - 28 - - - 23 - - - 22 - - - 25 - - - 24 - - - 19 - - - 18 - - - 21 - - - 20 - - - 15 - - - 14 - - - 17 - - - 16 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + clli-network @@ -2489,8 +525,6 @@ - ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX - DEG1-TTP-TXRX @@ -2718,8 +752,6 @@ - ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX - DEG2-TTP-TXRX @@ -3020,4 +1052,4 @@ - \ No newline at end of file + diff --git a/tests/sample_configs/NW-for-test-5-4.xml b/tests/sample_configs/NW-for-test-5-4.xml index 0cefc4811..e335b70c8 100644 --- a/tests/sample_configs/NW-for-test-5-4.xml +++ b/tests/sample_configs/NW-for-test-5-4.xml @@ -7,16 +7,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + s> openroadm-networkOpenROADM-1-1 clli-networkclli11 @@ -27,16 +25,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-1 clli-networkclli11 @@ -46,34 +42,30 @@ DEG3-CTP-RX DEGREE-RX-CTP DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - + + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + openroadm-networkOpenROADM-1-1 clli-networkclli11 OpenROADM-1-1-SRG1 SRG openroadm-networkOpenROADM-1-1 clli-networkclli11 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -138,16 +130,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-2 clli-networkclli12 @@ -158,16 +148,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-2 clli-networkclli12 @@ -178,16 +166,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-2 clli-networkclli12 @@ -195,16 +181,14 @@ openroadm-networkOpenROADM-1-2 clli-networkclli12 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -269,16 +253,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-3 clli-networkclli13 @@ -289,16 +271,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-3 clli-networkclli13 @@ -309,16 +289,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-3 clli-networkclli13 @@ -326,16 +304,14 @@ openroadm-networkOpenROADM-1-3 clli-networkclli13 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -400,16 +376,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-4 clli-networkclli14 @@ -420,16 +394,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-4 clli-networkclli14 @@ -440,16 +412,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-4 clli-networkclli14 @@ -457,16 +427,14 @@ openroadm-networkOpenROADM-1-4 clli-networkclli14 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -531,10 +499,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-1 clli-networkclli21 @@ -545,10 +517,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-1 clli-networkclli21 @@ -559,10 +535,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-1 clli-networkclli21 @@ -570,10 +550,14 @@ openroadm-networkOpenROADM-2-1 clli-networkclli21 - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -638,10 +622,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-2 clli-networkclli22 @@ -652,10 +640,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-2 clli-networkclli22 @@ -666,10 +658,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-2 clli-networkclli22 @@ -677,10 +673,14 @@ openroadm-networkOpenROADM-2-2 clli-networkclli22 - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -745,10 +745,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-3 clli-networkclli23 @@ -759,10 +763,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-3 clli-networkclli23 @@ -773,10 +781,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + > openroadm-networkOpenROADM-2-3 clli-networkclli23 @@ -784,10 +796,14 @@ openroadm-networkOpenROADM-2-3 clli-networkclli23 - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + > SRG1-CP-RX SRG1-CP-TX @@ -852,10 +868,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-4 clli-networkclli24 @@ -866,10 +886,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-4 clli-networkclli24 @@ -880,10 +904,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-4 clli-networkclli24 @@ -891,10 +919,14 @@ openroadm-networkOpenROADM-2-4 clli-networkclli24 - 2 - 3 - 4 - 5 + + cband + 191.325 + 6.25 + 8 + AP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -959,14 +991,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-1 clli-networkclli31 @@ -977,14 +1009,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-1 clli-networkclli31 @@ -995,14 +1027,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-1 clli-networkclli31 @@ -1010,14 +1042,14 @@ openroadm-networkOpenROADM-3-1 clli-networkclli31 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -1082,14 +1114,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-2 clli-networkclli32 @@ -1100,14 +1132,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-2 clli-networkclli32 @@ -1118,14 +1150,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-2 clli-networkclli32 @@ -1133,14 +1165,14 @@ openroadm-networkOpenROADM-3-2 clli-networkclli32 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + > SRG1-CP-RX SRG1-CP-TX @@ -1205,14 +1237,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-3 clli-networkclli33 @@ -1223,14 +1255,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-3 clli-networkclli33 @@ -1241,14 +1273,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-3 clli-networkclli33 @@ -1256,14 +1288,14 @@ openroadm-networkOpenROADM-3-3 clli-networkclli33 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -1328,14 +1360,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-4 clli-networkclli34 @@ -1346,14 +1378,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-4 clli-networkclli34 @@ -1364,14 +1396,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-4 clli-networkclli34 @@ -1379,14 +1411,14 @@ openroadm-networkOpenROADM-3-4 clli-networkclli34 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -1451,13 +1483,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-1 clli-networkclli41 @@ -1468,13 +1501,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-1 clli-networkclli41 @@ -1485,13 +1519,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-1 clli-networkclli41 @@ -1499,13 +1534,14 @@ openroadm-networkOpenROADM-4-1 clli-networkclli41 - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + > SRG1-CP-RX SRG1-CP-TX @@ -1570,13 +1606,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-2 clli-networkclli42 @@ -1587,13 +1624,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-2 clli-networkclli42 @@ -1604,13 +1642,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-2 clli-networkclli42 @@ -1618,13 +1657,14 @@ openroadm-networkOpenROADM-4-2 clli-networkclli42 - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -1689,13 +1729,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-3 clli-networkclli43 @@ -1706,13 +1747,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + > openroadm-networkOpenROADM-4-3 clli-networkclli43 @@ -1723,13 +1765,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-3 clli-networkclli43 @@ -1737,13 +1780,14 @@ openroadm-networkOpenROADM-4-3 clli-networkclli43 - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -1808,13 +1852,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-4 clli-networkclli44 @@ -1825,13 +1870,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + s> openroadm-networkOpenROADM-4-4 clli-networkclli44 @@ -1842,13 +1888,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-4 clli-networkclli44 @@ -1856,13 +1903,14 @@ openroadm-networkOpenROADM-4-4 clli-networkclli44 - 7 - 8 - 9 - 10 - 11 - 12 - 13 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -1927,12 +1975,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-1 clli-networkclli51 @@ -1943,12 +1993,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-1 clli-networkclli51 @@ -1959,12 +2011,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-1 clli-networkclli51 @@ -1972,12 +2026,14 @@ openroadm-networkOpenROADM-5-1 clli-networkclli51 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -2042,12 +2098,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-2 clli-networkclli52 @@ -2058,12 +2116,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-2 clli-networkclli52 @@ -2074,12 +2134,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-2 clli-networkclli52 @@ -2087,12 +2149,14 @@ openroadm-networkOpenROADM-5-2 clli-networkclli52 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -2157,12 +2221,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-3 clli-networkclli53 @@ -2173,12 +2239,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-3 clli-networkclli53 @@ -2189,12 +2257,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-3 clli-networkclli53 @@ -2202,12 +2272,14 @@ openroadm-networkOpenROADM-5-3 clli-networkclli53 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -2272,12 +2344,14 @@ DEG1-TTP-RX DEGREE-RX-TTP DEG1-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-4 clli-networkclli54 @@ -2288,12 +2362,14 @@ DEG2-TTP-RX DEGREE-RX-TTP DEG2-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-4 clli-networkclli54 @@ -2304,12 +2380,14 @@ DEG3-TTP-RX DEGREE-RX-TTP DEG3-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-4 clli-networkclli54 @@ -2317,12 +2395,14 @@ openroadm-networkOpenROADM-5-4 clli-networkclli54 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG1-CP-TX @@ -2705,7 +2785,7 @@ OpenROADM-1-2-DEG1-to-OpenROADM-1-1-DEG1 fiber1112 10 - 1 + ROADM-TO-ROADM OpenROADM-1-1-DEG1DEG1-TTP-TX OpenROADM-1-2-DEG1DEG1-TTP-RX @@ -2729,7 +2809,7 @@ OpenROADM-1-1-DEG1-to-OpenROADM-1-2-DEG1 fiber1211 10 - 1 + ROADM-TO-ROADM OpenROADM-1-2-DEG1DEG1-TTP-TX OpenROADM-1-1-DEG1DEG1-TTP-RX @@ -2753,7 +2833,7 @@ OpenROADM-1-3-DEG2-to-OpenROADM-1-2-DEG2 fiber1213 10 - 1 + ROADM-TO-ROADM OpenROADM-1-2-DEG2DEG2-TTP-TX OpenROADM-1-3-DEG2DEG2-TTP-RX @@ -2775,7 +2855,7 @@ OpenROADM-1-3-DEG2-to-OpenROADM-1-2-DEG2 OpenROADM-1-2-DEG2-to-OpenROADM-1-3-DEG2 - 1 + fiber1312 10 ROADM-TO-ROADM @@ -2801,7 +2881,7 @@ OpenROADM-1-4-DEG1-to-OpenROADM-1-3-DEG1 fiber1314 10 - 1 + ROADM-TO-ROADM OpenROADM-1-3-DEG1DEG1-TTP-TX OpenROADM-1-4-DEG1DEG1-TTP-RX @@ -2825,7 +2905,7 @@ OpenROADM-1-3-DEG1-to-OpenROADM-1-4-DEG1 fiber1413 10 - 1 + ROADM-TO-ROADM OpenROADM-1-4-DEG1DEG1-TTP-TX OpenROADM-1-3-DEG1DEG1-TTP-RX @@ -2849,7 +2929,7 @@ OpenROADM-1-1-DEG2-to-OpenROADM-1-4-DEG2 fiber1411 10 - 1 + ROADM-TO-ROADM OpenROADM-1-4-DEG2DEG2-TTP-TX OpenROADM-1-1-DEG2DEG2-TTP-RX @@ -2873,7 +2953,7 @@ OpenROADM-1-4-DEG2-to-OpenROADM-1-1-DEG2 fiber1114 10 - 1 + ROADM-TO-ROADM OpenROADM-1-1-DEG2DEG2-TTP-TX OpenROADM-1-4-DEG2DEG2-TTP-RX @@ -3217,7 +3297,7 @@ OpenROADM-2-2-DEG1-to-OpenROADM-2-1-DEG1 fiber2122 10 - 1 + ROADM-TO-ROADM OpenROADM-2-1-DEG1DEG1-TTP-TX OpenROADM-2-2-DEG1DEG1-TTP-RX @@ -3241,7 +3321,7 @@ OpenROADM-2-1-DEG1-to-OpenROADM-2-2-DEG1 fiber2221 10 - 1 + ROADM-TO-ROADM OpenROADM-2-2-DEG1DEG1-TTP-TX OpenROADM-2-1-DEG1DEG1-TTP-RX @@ -3265,7 +3345,7 @@ OpenROADM-2-3-DEG2-to-OpenROADM-2-2-DEG2 fiber2223 10 - 1 + ROADM-TO-ROADM OpenROADM-2-2-DEG2DEG2-TTP-TX OpenROADM-2-3-DEG2DEG2-TTP-RX @@ -3289,7 +3369,7 @@ OpenROADM-2-2-DEG2-to-OpenROADM-2-3-DEG2 fiber2322 10 - 1 + ROADM-TO-ROADM OpenROADM-2-3-DEG2DEG2-TTP-TX OpenROADM-2-2-DEG2DEG2-TTP-RX @@ -3313,7 +3393,7 @@ OpenROADM-2-4-DEG1-to-OpenROADM-2-3-DEG1 fiber2324 10 - 1 + ROADM-TO-ROADM OpenROADM-2-3-DEG1DEG1-TTP-TX OpenROADM-2-4-DEG1DEG1-TTP-RX @@ -3337,7 +3417,7 @@ OpenROADM-2-3-DEG1-to-OpenROADM-2-4-DEG1 fiber2423 10 - 1 + ROADM-TO-ROADM OpenROADM-2-4-DEG1DEG1-TTP-TX OpenROADM-2-3-DEG1DEG1-TTP-RX @@ -3361,7 +3441,7 @@ OpenROADM-2-1-DEG2-to-OpenROADM-2-4-DEG2 fiber2421 10 - 1 + ROADM-TO-ROADM OpenROADM-2-4-DEG2DEG2-TTP-TX OpenROADM-2-1-DEG2DEG2-TTP-RX @@ -3385,7 +3465,7 @@ OpenROADM-2-4-DEG2-to-OpenROADM-2-1-DEG2 fiber2124 10 - 1 + ROADM-TO-ROADM OpenROADM-2-1-DEG2DEG2-TTP-TX OpenROADM-2-4-DEG2DEG2-TTP-RX @@ -3733,7 +3813,7 @@ OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1 fiber3132 10 - 1 + ROADM-TO-ROADM OpenROADM-3-1-DEG1DEG1-TTP-TX OpenROADM-3-2-DEG1DEG1-TTP-RX @@ -3757,7 +3837,7 @@ OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1 fiber3231 10 - 1 + ROADM-TO-ROADM OpenROADM-3-2-DEG1DEG1-TTP-TX OpenROADM-3-1-DEG1DEG1-TTP-RX @@ -3781,7 +3861,7 @@ OpenROADM-3-3-DEG2-to-OpenROADM-3-2-DEG2 fiber3233 10 - 1 + ROADM-TO-ROADM OpenROADM-3-2-DEG2DEG2-TTP-TX OpenROADM-3-3-DEG2DEG2-TTP-RX @@ -3805,7 +3885,7 @@ OpenROADM-3-2-DEG2-to-OpenROADM-3-3-DEG2 fiber3332 10 - 1 + ROADM-TO-ROADM OpenROADM-3-3-DEG2DEG2-TTP-TX OpenROADM-3-2-DEG2DEG2-TTP-RX @@ -3829,7 +3909,7 @@ OpenROADM-3-4-DEG1-to-OpenROADM-3-3-DEG1 fiber3334 10 - 1 + ROADM-TO-ROADM OpenROADM-3-3-DEG1DEG1-TTP-TX OpenROADM-3-4-DEG1DEG1-TTP-RX @@ -3853,7 +3933,7 @@ OpenROADM-3-3-DEG1-to-OpenROADM-3-4-DEG1 fiber3433 10 - 1 + ROADM-TO-ROADM OpenROADM-3-4-DEG1DEG1-TTP-TX OpenROADM-3-3-DEG1DEG1-TTP-RX @@ -3877,7 +3957,7 @@ OpenROADM-3-1-DEG2-to-OpenROADM-3-4-DEG2 fiber3431 10 - 1 + ROADM-TO-ROADM OpenROADM-3-4-DEG2DEG2-TTP-TX OpenROADM-3-1-DEG2DEG2-TTP-RX @@ -3901,7 +3981,7 @@ OpenROADM-3-4-DEG2-to-OpenROADM-3-1-DEG2 fiber3431 10 - 1 + ROADM-TO-ROADM OpenROADM-3-1-DEG2DEG2-TTP-TX OpenROADM-3-4-DEG2DEG2-TTP-RX @@ -4245,7 +4325,7 @@ OpenROADM-4-2-DEG1-to-OpenROADM-4-1-DEG1 fiber4142 10 - 1 + ROADM-TO-ROADM OpenROADM-4-1-DEG1DEG1-TTP-TX OpenROADM-4-2-DEG1DEG1-TTP-RX @@ -4269,7 +4349,7 @@ OpenROADM-4-1-DEG1-to-OpenROADM-4-2-DEG1 fiber4241 10 - 1 + ROADM-TO-ROADM OpenROADM-4-2-DEG1DEG1-TTP-TX OpenROADM-4-1-DEG1DEG1-TTP-RX @@ -4293,7 +4373,7 @@ OpenROADM-4-3-DEG2-to-OpenROADM-4-2-DEG2 fiber4243 10 - 1 + ROADM-TO-ROADM OpenROADM-4-2-DEG2DEG2-TTP-TX OpenROADM-4-3-DEG2DEG2-TTP-RX @@ -4317,7 +4397,7 @@ OpenROADM-4-2-DEG2-to-OpenROADM-4-3-DEG2 fiber4342 10 - 1 + ROADM-TO-ROADM OpenROADM-4-3-DEG2DEG2-TTP-TX OpenROADM-4-2-DEG2DEG2-TTP-RX @@ -4341,7 +4421,7 @@ OpenROADM-4-4-DEG1-to-OpenROADM-4-3-DEG1 fiber4344 10 - 1 + ROADM-TO-ROADM OpenROADM-4-3-DEG1DEG1-TTP-TX OpenROADM-4-4-DEG1DEG1-TTP-RX @@ -4365,7 +4445,7 @@ OpenROADM-4-3-DEG1-to-OpenROADM-4-4-DEG1 fiber4443 10 - 1 + ROADM-TO-ROADM OpenROADM-4-4-DEG1DEG1-TTP-TX OpenROADM-4-3-DEG1DEG1-TTP-RX @@ -4389,7 +4469,7 @@ OpenROADM-4-1-DEG2-to-OpenROADM-4-4-DEG2 fiber4441 10 - 1 + ROADM-TO-ROADM OpenROADM-4-4-DEG2DEG2-TTP-TX OpenROADM-4-1-DEG2DEG2-TTP-RX @@ -4413,7 +4493,7 @@ OpenROADM-4-4-DEG2-to-OpenROADM-4-1-DEG2 fiber4144 10 - 1 + ROADM-TO-ROADM OpenROADM-4-1-DEG2DEG2-TTP-TX OpenROADM-4-4-DEG2DEG2-TTP-RX @@ -4757,7 +4837,7 @@ OpenROADM-5-2-DEG1-to-OpenROADM-5-1-DEG1 fiber5152 10 - 1 + ROADM-TO-ROADM OpenROADM-5-1-DEG1DEG1-TTP-TX OpenROADM-5-2-DEG1DEG1-TTP-RX @@ -4781,7 +4861,7 @@ OpenROADM-5-1-DEG1-to-OpenROADM-5-2-DEG1 fiber5251 10 - 1 + ROADM-TO-ROADM OpenROADM-5-2-DEG1DEG1-TTP-TX OpenROADM-5-1-DEG1DEG1-TTP-RX @@ -4805,7 +4885,7 @@ OpenROADM-5-3-DEG2-to-OpenROADM-5-2-DEG2 fiber5253 10 - 1 + ROADM-TO-ROADM OpenROADM-5-2-DEG2DEG2-TTP-TX OpenROADM-5-3-DEG2DEG2-TTP-RX @@ -4829,7 +4909,7 @@ OpenROADM-5-2-DEG2-to-OpenROADM-5-3-DEG2 fiber5352 10 - 1 + ROADM-TO-ROADM OpenROADM-5-3-DEG2DEG2-TTP-TX OpenROADM-5-2-DEG2DEG2-TTP-RX @@ -4853,7 +4933,7 @@ OpenROADM-5-4-DEG1-to-OpenROADM-5-3-DEG1 fiber5354 10 - 1 + ROADM-TO-ROADM OpenROADM-5-3-DEG1DEG1-TTP-TX OpenROADM-5-4-DEG1DEG1-TTP-RX @@ -4877,7 +4957,7 @@ OpenROADM-5-3-DEG1-to-OpenROADM-5-4-DEG1 fiber5453 10 - 1 + ROADM-TO-ROADM OpenROADM-5-4-DEG1DEG1-TTP-TX OpenROADM-5-3-DEG1DEG1-TTP-RX @@ -4901,7 +4981,7 @@ OpenROADM-5-1-DEG2-to-OpenROADM-5-4-DEG2 fiber5451 10 - 1 + ROADM-TO-ROADM OpenROADM-5-4-DEG2DEG2-TTP-TX OpenROADM-5-1-DEG2DEG2-TTP-RX @@ -4925,7 +5005,7 @@ OpenROADM-5-4-DEG2-to-OpenROADM-5-1-DEG2 fiber5154 10 - 1 + ROADM-TO-ROADM OpenROADM-5-1-DEG2DEG2-TTP-TX OpenROADM-5-4-DEG2DEG2-TTP-RX @@ -4949,7 +5029,7 @@ OpenROADM-2-1-DEG3-to-OpenROADM-1-4-DEG3 fiber1421 10 - 1 + ROADM-TO-ROADM OpenROADM-1-4-DEG3DEG3-TTP-TX OpenROADM-2-1-DEG3DEG3-TTP-RX @@ -4973,7 +5053,7 @@ OpenROADM-1-4-DEG3-to-OpenROADM-2-1-DEG3 fiber2114 10 - 1 + ROADM-TO-ROADM OpenROADM-2-1-DEG3DEG3-TTP-TX OpenROADM-1-4-DEG3DEG3-TTP-RX @@ -4997,7 +5077,7 @@ OpenROADM-2-2-DEG3-to-OpenROADM-1-3-DEG3 fiber1322 10 - 1 + ROADM-TO-ROADM OpenROADM-1-3-DEG3DEG3-TTP-TX OpenROADM-2-2-DEG3DEG3-TTP-RX @@ -5021,7 +5101,7 @@ OpenROADM-1-3-DEG3-to-OpenROADM-2-2-DEG3 fiber2213 10 - 1 + ROADM-TO-ROADM OpenROADM-2-2-DEG3DEG3-TTP-TX OpenROADM-1-3-DEG3DEG3-TTP-RX @@ -5045,7 +5125,7 @@ OpenROADM-3-1-DEG3-to-OpenROADM-2-4-DEG3 fiber2431 10 - 1 + ROADM-TO-ROADM OpenROADM-2-4-DEG3DEG3-TTP-TX OpenROADM-3-1-DEG3DEG3-TTP-RX @@ -5069,7 +5149,7 @@ OpenROADM-2-4-DEG3-to-OpenROADM-3-1-DEG3 fiber3124 10 - 1 + ROADM-TO-ROADM OpenROADM-3-1-DEG3DEG3-TTP-TX OpenROADM-2-4-DEG3DEG3-TTP-RX @@ -5093,7 +5173,7 @@ OpenROADM-3-2-DEG3-to-OpenROADM-2-3-DEG3 fiber2332 10 - 1 + ROADM-TO-ROADM OpenROADM-2-3-DEG3DEG3-TTP-TX OpenROADM-3-2-DEG3DEG3-TTP-RX @@ -5117,7 +5197,7 @@ OpenROADM-2-3-DEG3-to-OpenROADM-3-2-DEG3 fiber3223 10 - 1 + ROADM-TO-ROADM OpenROADM-3-2-DEG3DEG3-TTP-TX OpenROADM-2-3-DEG3DEG3-TTP-RX @@ -5141,7 +5221,7 @@ OpenROADM-4-1-DEG3-to-OpenROADM-3-4-DEG3 fiber3441 10 - 1 + ROADM-TO-ROADM OpenROADM-3-4-DEG3DEG3-TTP-TX OpenROADM-4-1-DEG3DEG3-TTP-RX @@ -5165,7 +5245,7 @@ OpenROADM-3-4-DEG3-to-OpenROADM-4-1-DEG3 fiber4134 10 - 1 + ROADM-TO-ROADM OpenROADM-4-1-DEG3DEG3-TTP-TX OpenROADM-3-4-DEG3DEG3-TTP-RX @@ -5189,7 +5269,7 @@ OpenROADM-4-2-DEG3-to-OpenROADM-3-3-DEG3 fiber3342 10 - 1 + ROADM-TO-ROADM OpenROADM-3-3-DEG3DEG3-TTP-TX OpenROADM-4-2-DEG3DEG3-TTP-RX @@ -5213,7 +5293,7 @@ OpenROADM-3-3-DEG3-to-OpenROADM-4-2-DEG3 fiber4233 10 - 1 + ROADM-TO-ROADM OpenROADM-4-2-DEG3DEG3-TTP-TX OpenROADM-3-3-DEG3DEG3-TTP-RX @@ -5237,7 +5317,7 @@ OpenROADM-5-1-DEG3-to-OpenROADM-4-4-DEG3 fiber4451 10 - 1 + ROADM-TO-ROADM OpenROADM-4-4-DEG3DEG3-TTP-TX OpenROADM-5-1-DEG3DEG3-TTP-RX @@ -5261,7 +5341,7 @@ OpenROADM-4-4-DEG3-to-OpenROADM-5-1-DEG3 fiber5144 10 - 1 + ROADM-TO-ROADM OpenROADM-5-1-DEG3DEG3-TTP-TX OpenROADM-4-4-DEG3DEG3-TTP-RX @@ -5285,7 +5365,6 @@ OpenROADM-5-2-DEG3-to-OpenROADM-4-3-DEG3 fiber4352 10 - 10 ROADM-TO-ROADM OpenROADM-4-3-DEG3DEG3-TTP-TX OpenROADM-5-2-DEG3DEG3-TTP-RX @@ -5309,7 +5388,6 @@ OpenROADM-4-3-DEG3-to-OpenROADM-5-2-DEG3 fiber5243 10 - 10 ROADM-TO-ROADM OpenROADM-5-2-DEG3DEG3-TTP-TX OpenROADM-4-3-DEG3DEG3-TTP-RX @@ -5333,7 +5411,6 @@ OpenROADM-1-1-DEG3-to-OpenROADM-5-4-DEG3 fiber5411 10 - 1 ROADM-TO-ROADM OpenROADM-5-4-DEG3DEG3-TTP-TX OpenROADM-1-1-DEG3DEG3-TTP-RX @@ -5357,7 +5434,6 @@ OpenROADM-5-4-DEG3-to-OpenROADM-1-1-DEG3 fiber1154 10 - 1 ROADM-TO-ROADM OpenROADM-1-1-DEG3DEG3-TTP-TX OpenROADM-5-4-DEG3DEG3-TTP-RX @@ -5381,7 +5457,6 @@ OpenROADM-1-2-DEG3-to-OpenROADM-5-3-DEG3 fiber5312 10 - 10 ROADM-TO-ROADM OpenROADM-5-3-DEG3DEG3-TTP-TX OpenROADM-1-2-DEG3DEG3-TTP-RX @@ -5405,7 +5480,6 @@ OpenROADM-5-3-DEG3-to-OpenROADM-1-2-DEG3 fiber1253 10 - 10 ROADM-TO-ROADM OpenROADM-1-2-DEG3DEG3-TTP-TX OpenROADM-5-3-DEG3DEG3-TTP-RX diff --git a/tests/sample_configs/NW-simple-topology.xml b/tests/sample_configs/NW-simple-topology.xml index deaf1caf4..2149db018 100644 --- a/tests/sample_configs/NW-simple-topology.xml +++ b/tests/sample_configs/NW-simple-topology.xml @@ -11,16 +11,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-1 clli-networkclli11 @@ -35,16 +33,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-1 clli-networkclli11 @@ -59,16 +55,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-1 clli-networkclli11 @@ -76,16 +70,14 @@ openroadm-networkOpenROADM-1-1 clli-networkclli11 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -210,16 +202,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-2 clli-networkclli12 @@ -234,16 +224,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-2 clli-networkclli12 @@ -258,16 +246,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-1-2 clli-networkclli12 @@ -275,16 +261,14 @@ openroadm-networkOpenROADM-1-2 clli-networkclli12 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 + + cband + 191.325 + 6.25 + 8 + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -402,16 +386,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-1 clli-networkclli21 @@ -426,16 +408,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-1 clli-networkclli21 @@ -450,16 +430,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-1 clli-networkclli21 @@ -467,16 +445,14 @@ openroadm-networkOpenROADM-2-1 clli-networkclli21 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -594,16 +570,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-2 clli-networkclli22 @@ -618,16 +592,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-2 clli-networkclli22 @@ -642,16 +614,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-2-2 clli-networkclli22 @@ -659,16 +629,14 @@ openroadm-networkOpenROADM-2-2 clli-networkclli22 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 + + cband + 191.325 + 6.25 + 8 + AAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -786,16 +754,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-1 clli-networkclli31 @@ -810,16 +776,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-1 clli-networkclli31 @@ -834,16 +798,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-1 clli-networkclli31 @@ -851,16 +813,14 @@ openroadm-networkOpenROADM-3-1 clli-networkclli31 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -978,16 +938,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-2 clli-networkclli32 @@ -1002,16 +960,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-2 clli-networkclli32 @@ -1026,16 +982,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-3-2 clli-networkclli32 @@ -1043,16 +997,14 @@ openroadm-networkOpenROADM-3-2 clli-networkclli32 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 + + cband + 191.325 + 6.25 + 8 + AAAAAP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -1170,16 +1122,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-1 clli-networkclli41 @@ -1194,16 +1144,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-1 clli-networkclli41 @@ -1218,16 +1166,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-1 clli-networkclli41 @@ -1235,16 +1181,14 @@ openroadm-networkOpenROADM-4-1 clli-networkclli41 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -1362,16 +1306,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + s> openroadm-networkOpenROADM-4-2 clli-networkclli42 @@ -1386,16 +1328,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-2 clli-networkclli42 @@ -1410,16 +1350,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-4-2 clli-networkclli42 @@ -1427,16 +1365,14 @@ openroadm-networkOpenROADM-4-2 clli-networkclli42 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 + + cband + 191.325 + 6.25 + 8 + AAAAAAAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -1554,16 +1490,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-1 clli-networkclli51 @@ -1578,16 +1512,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-1 clli-networkclli51 @@ -1602,16 +1534,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-1 clli-networkclli51 @@ -1619,16 +1549,14 @@ openroadm-networkOpenROADM-5-1 clli-networkclli51 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -1746,16 +1674,14 @@ DEG1-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-2 clli-networkclli52 @@ -1770,16 +1696,14 @@ DEG2-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-2 clli-networkclli52 @@ -1794,16 +1718,14 @@ DEG3-TTP-TX DEGREE-TX-TTP - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + openroadm-networkOpenROADM-5-2 clli-networkclli52 @@ -1811,16 +1733,14 @@ openroadm-networkOpenROADM-5-2 clli-networkclli52 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 + + cband + 191.325 + 6.25 + 8 + AAAAAAAAAAD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + SRG1-CP-RX SRG-RX-CP @@ -1851,7 +1771,7 @@ openroadm-networkXPONDER-5-2 clli-networkORANGE5 XPONDER - XPDR-NW1-RX XPONDER-NETWORK + XPDR-NW1-RX XPONDER-NETWORK Client-1 XPDR-NW1-RX @@ -2083,7 +2003,6 @@ OpenROADM-1-2-DEG1-to-OpenROADM-1-1-DEG1 fiber1112a 10 - 1 ROADM-TO-ROADM OpenROADM-1-1-DEG1DEG1-TTP-TX OpenROADM-1-2-DEG1DEG1-TTP-RX @@ -2107,7 +2026,6 @@ OpenROADM-1-1-DEG1-to-OpenROADM-1-2-DEG1 fiber1211a 10 - 1 ROADM-TO-ROADM OpenROADM-1-2-DEG1DEG1-TTP-TX OpenROADM-1-1-DEG1DEG1-TTP-RX @@ -2129,7 +2047,6 @@ OpenROADM-1-2-DEG2-to-OpenROADM-1-1-DEG2 OpenROADM-1-1-DEG2-to-OpenROADM-1-2-DEG2 - 1 fiber1211b 10 ROADM-TO-ROADM @@ -2155,7 +2072,6 @@ OpenROADM-1-2-DEG2-to-OpenROADM-1-1-DEG2 fiber1112b 10 - 1 ROADM-TO-ROADM OpenROADM-1-1-DEG2DEG2-TTP-TX OpenROADM-1-2-DEG2DEG2-TTP-RX @@ -2353,15 +2269,11 @@ OpenROADM-2-1-DEG1-to-OpenROADM-2-2-DEG1 OpenROADM-2-2-DEG1-to-OpenROADM-2-1-DEG1 - 1 ROADM-TO-ROADM OpenROADM-2-1-DEG1DEG1-TTP-TX OpenROADM-2-2-DEG1DEG1-TTP-RX - OpenROADM-2-2-DEG1-to-OpenROADM-2-1-DEG1 - 10 - fiber5 true 11.4 12 @@ -2378,15 +2290,11 @@ OpenROADM-2-2-DEG1-to-OpenROADM-2-1-DEG1 OpenROADM-2-1-DEG1-to-OpenROADM-2-2-DEG1 - 1 ROADM-TO-ROADM OpenROADM-2-2-DEG1DEG1-TTP-TX OpenROADM-2-1-DEG1DEG1-TTP-RX - OpenROADM-2-1-DEG1-to-OpenROADM-2-2-DEG1 - 10 - fiber6 true 11.4 12 @@ -2403,15 +2311,11 @@ OpenROADM-2-2-DEG2-to-OpenROADM-2-1-DEG2 OpenROADM-2-1-DEG2-to-OpenROADM-2-2-DEG2 - 1 ROADM-TO-ROADM OpenROADM-2-2-DEG2DEG2-TTP-TX OpenROADM-2-1-DEG2DEG2-TTP-RX - OpenROADM-2-1-DEG2-to-OpenROADM-2-2-DEG2 - 10 - fiber7 true 11.4 12 @@ -2428,15 +2332,11 @@ OpenROADM-2-1-DEG2-to-OpenROADM-2-2-DEG2 OpenROADM-2-2-DEG2-to-OpenROADM-2-1-DEG2 - 1 ROADM-TO-ROADM OpenROADM-2-1-DEG2DEG2-TTP-TX OpenROADM-2-2-DEG2DEG2-TTP-RX - OpenROADM-2-2-DEG2-to-OpenROADM-2-1-DEG2 - 10 - fiber8 true 11.4 12 @@ -2629,15 +2529,11 @@ OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1 OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1 - 1 ROADM-TO-ROADM OpenROADM-3-1-DEG1DEG1-TTP-TX OpenROADM-3-2-DEG1DEG1-TTP-RX - OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1 - 10 - fiber9 true 11.4 12 @@ -2654,15 +2550,11 @@ OpenROADM-3-2-DEG1-to-OpenROADM-3-1-DEG1 OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1 - 1 ROADM-TO-ROADM OpenROADM-3-2-DEG1DEG1-TTP-TX OpenROADM-3-1-DEG1DEG1-TTP-RX - OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1 - 10 - fiber10 true 11.4 12 @@ -2679,15 +2571,11 @@ OpenROADM-3-2-DEG2-to-OpenROADM-3-1-DEG2 OpenROADM-3-1-DEG2-to-OpenROADM-3-2-DEG2 - 1 ROADM-TO-ROADM OpenROADM-3-2-DEG2DEG2-TTP-TX OpenROADM-3-1-DEG2DEG2-TTP-RX - OpenROADM-3-1-DEG2-to-OpenROADM-3-2-DEG2 - 10 - fiber11 true 11.4 12 @@ -2704,15 +2592,11 @@ OpenROADM-3-1-DEG2-to-OpenROADM-3-2-DEG2 OpenROADM-3-2-DEG2-to-OpenROADM-3-1-DEG2 - 1 ROADM-TO-ROADM OpenROADM-3-1-DEG2DEG2-TTP-TX OpenROADM-3-2-DEG2DEG2-TTP-RX - OpenROADM-3-2-DEG2-to-OpenROADM-3-1-DEG2 - 10 - fiber12 true 11.4 12 @@ -2905,15 +2789,11 @@ OpenROADM-4-1-DEG1-to-OpenROADM-4-2-DEG1 OpenROADM-4-2-DEG1-to-OpenROADM-4-1-DEG1 - 1 ROADM-TO-ROADM OpenROADM-4-1-DEG1DEG1-TTP-TX OpenROADM-4-2-DEG1DEG1-TTP-RX - OpenROADM-4-2-DEG1-to-OpenROADM-4-1-DEG1 - 10 - fiber13 true 11.4 12 @@ -2930,15 +2810,11 @@ OpenROADM-4-2-DEG1-to-OpenROADM-4-1-DEG1 OpenROADM-4-1-DEG1-to-OpenROADM-4-2-DEG1 - 1 ROADM-TO-ROADM OpenROADM-4-2-DEG1DEG1-TTP-TX OpenROADM-4-1-DEG1DEG1-TTP-RX - OpenROADM-4-1-DEG1-to-OpenROADM-4-2-DEG1 - 10 - fiber14 true 11.4 12 @@ -2955,15 +2831,11 @@ OpenROADM-4-2-DEG2-to-OpenROADM-4-1-DEG2 OpenROADM-4-1-DEG2-to-OpenROADM-4-2-DEG2 - 1 ROADM-TO-ROADM OpenROADM-4-2-DEG2DEG2-TTP-TX OpenROADM-4-1-DEG2DEG2-TTP-RX - OpenROADM-4-1-DEG2-to-OpenROADM-4-2-DEG2 - 10 - fiber15 true 11.4 12 @@ -2980,15 +2852,11 @@ OpenROADM-4-1-DEG2-to-OpenROADM-4-2-DEG2 OpenROADM-4-2-DEG2-to-OpenROADM-4-1-DEG2 - 1 ROADM-TO-ROADM OpenROADM-4-1-DEG2DEG2-TTP-TX OpenROADM-4-2-DEG2DEG2-TTP-RX - OpenROADM-4-2-DEG2-to-OpenROADM-4-1-DEG2 - 10 - fiber16 true 11.4 12 @@ -3181,15 +3049,11 @@ OpenROADM-5-1-DEG1-to-OpenROADM-5-2-DEG1 OpenROADM-5-2-DEG1-to-OpenROADM-5-1-DEG1 - 1 ROADM-TO-ROADM OpenROADM-5-1-DEG1DEG1-TTP-TX OpenROADM-5-2-DEG1DEG1-TTP-RX - OpenROADM-5-2-DEG1-to-OpenROADM-5-1-DEG1 - 10 - fiber17 true 11.4 12 @@ -3206,15 +3070,11 @@ OpenROADM-5-2-DEG1-to-OpenROADM-5-1-DEG1 OpenROADM-5-1-DEG1-to-OpenROADM-5-2-DEG1 - 1 ROADM-TO-ROADM OpenROADM-5-2-DEG1DEG1-TTP-TX OpenROADM-5-1-DEG1DEG1-TTP-RX - OpenROADM-5-1-DEG1-to-OpenROADM-5-2-DEG1 - 10 - fiber18 true 11.4 12 @@ -3231,15 +3091,11 @@ OpenROADM-5-2-DEG2-to-OpenROADM-5-1-DEG2 OpenROADM-5-1-DEG2-to-OpenROADM-5-2-DEG2 - 1 ROADM-TO-ROADM OpenROADM-5-2-DEG2DEG2-TTP-TX OpenROADM-5-1-DEG2DEG2-TTP-RX - OpenROADM-5-1-DEG2-to-OpenROADM-5-2-DEG2 - 10 - fiber19 true 11.4 12 @@ -3256,15 +3112,11 @@ OpenROADM-5-1-DEG2-to-OpenROADM-5-2-DEG2 OpenROADM-5-2-DEG2-to-OpenROADM-5-1-DEG2 - 1 ROADM-TO-ROADM OpenROADM-5-1-DEG2DEG2-TTP-TX OpenROADM-5-2-DEG2DEG2-TTP-RX - OpenROADM-5-2-DEG2-to-OpenROADM-5-1-DEG2 - 10 - fiber20 true 11.4 12 @@ -3281,15 +3133,11 @@ OpenROADM-1-2-DEG3-to-OpenROADM-2-1-DEG3 OpenROADM-2-1-DEG3-to-OpenROADM-1-2-DEG3 - 1 ROADM-TO-ROADM OpenROADM-1-2-DEG3DEG3-TTP-TX OpenROADM-2-1-DEG3DEG3-TTP-RX - OpenROADM-2-1-DEG3-to-OpenROADM-1-2-DEG3 - 10 - fiber21 true 11.4 12 @@ -3306,15 +3154,11 @@ OpenROADM-2-1-DEG3-to-OpenROADM-1-2-DEG3 OpenROADM-1-2-DEG3-to-OpenROADM-2-1-DEG3 - 1 ROADM-TO-ROADM OpenROADM-2-1-DEG3DEG3-TTP-TX OpenROADM-1-2-DEG3DEG3-TTP-RX - OpenROADM-1-2-DEG3-to-OpenROADM-2-1-DEG3 - 10 - fiber22 true 11.4 12 @@ -3331,15 +3175,11 @@ OpenROADM-2-2-DEG3-to-OpenROADM-3-1-DEG3 OpenROADM-3-1-DEG3-to-OpenROADM-2-2-DEG3 - 1 ROADM-TO-ROADM OpenROADM-2-2-DEG3DEG3-TTP-TX OpenROADM-3-1-DEG3DEG3-TTP-RX - OpenROADM-3-1-DEG3-to-OpenROADM-2-2-DEG3 - 10 - fiber23 true 11.4 12 @@ -3356,15 +3196,11 @@ OpenROADM-3-1-DEG3-to-OpenROADM-2-2-DEG3 OpenROADM-2-2-DEG3-to-OpenROADM-3-1-DEG3 - 1 ROADM-TO-ROADM OpenROADM-3-1-DEG3DEG3-TTP-TX OpenROADM-2-2-DEG3DEG3-TTP-RX - OpenROADM-2-2-DEG3-to-OpenROADM-3-1-DEG3 - 10 - fiber24 true 11.4 12 @@ -3381,15 +3217,11 @@ OpenROADM-3-2-DEG3-to-OpenROADM-4-1-DEG3 OpenROADM-4-1-DEG3-to-OpenROADM-3-2-DEG3 - 1 ROADM-TO-ROADM OpenROADM-3-2-DEG3DEG3-TTP-TX OpenROADM-4-1-DEG3DEG3-TTP-RX - OpenROADM-4-1-DEG3-to-OpenROADM-3-2-DEG3 - 10 - fiber25 true 11.4 12 @@ -3406,15 +3238,11 @@ OpenROADM-4-1-DEG3-to-OpenROADM-3-2-DEG3 OpenROADM-3-2-DEG3-to-OpenROADM-4-1-DEG3 - 1 ROADM-TO-ROADM OpenROADM-4-1-DEG3DEG3-TTP-TX OpenROADM-3-2-DEG3DEG3-TTP-RX - OpenROADM-3-2-DEG3-to-OpenROADM-4-1-DEG3 - 10 - fiber26 true 11.4 12 @@ -3431,15 +3259,11 @@ OpenROADM-4-2-DEG3-to-OpenROADM-5-1-DEG3 OpenROADM-5-1-DEG3-to-OpenROADM-4-2-DEG3 - 1 ROADM-TO-ROADM OpenROADM-4-2-DEG3DEG3-TTP-TX OpenROADM-5-1-DEG3DEG3-TTP-RX - OpenROADM-5-1-DEG3-to-OpenROADM-4-2-DEG3 - 10 - fiber27 true 11.4 12 @@ -3456,15 +3280,11 @@ OpenROADM-5-1-DEG3-to-OpenROADM-4-2-DEG3 OpenROADM-4-2-DEG3-to-OpenROADM-5-1-DEG3 - 1 ROADM-TO-ROADM OpenROADM-5-1-DEG3DEG3-TTP-TX OpenROADM-4-2-DEG3DEG3-TTP-RX - OpenROADM-4-2-DEG3-to-OpenROADM-5-1-DEG3 - 10 - fiber28 true 11.4 12 @@ -3481,15 +3301,11 @@ OpenROADM-5-2-DEG3-to-OpenROADM-1-1-DEG3 OpenROADM-1-1-DEG3-to-OpenROADM-5-2-DEG3 - 1 ROADM-TO-ROADM OpenROADM-5-2-DEG3DEG3-TTP-TX OpenROADM-1-1-DEG3DEG3-TTP-RX - OpenROADM-1-1-DEG3-to-OpenROADM-5-2-DEG3 - 10 - fiber29 true 11.4 12 @@ -3506,15 +3322,11 @@ OpenROADM-1-1-DEG3-to-OpenROADM-5-2-DEG3 OpenROADM-5-2-DEG3-to-OpenROADM-1-1-DEG3 - 1 ROADM-TO-ROADM OpenROADM-1-1-DEG3DEG3-TTP-TX OpenROADM-5-2-DEG3DEG3-TTP-RX - OpenROADM-5-2-DEG3-to-OpenROADM-1-1-DEG3 - 10 - fiber30 true 11.4 12 diff --git a/tests/sample_configs/gnpy/openroadmTopology.json b/tests/sample_configs/gnpy/openroadmTopology.json index 6b7c84619..d5bbc405a 100644 --- a/tests/sample_configs/gnpy/openroadmTopology.json +++ b/tests/sample_configs/gnpy/openroadmTopology.json @@ -520,9 +520,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber12", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-2-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -552,9 +549,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber13", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-3-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -584,9 +578,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber21", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-1-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -616,9 +607,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber23", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-3-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -648,9 +636,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber25", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-5-DEG3", "dest-tp": "DEG3-TTP-RX" @@ -680,9 +665,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber31", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-1-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -712,9 +694,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber32", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-2-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -744,9 +723,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber35", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-5-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -776,9 +752,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber34", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-4-DEG2", "dest-tp": "DEG2-TTP-RX" @@ -808,9 +781,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber45", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-5-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -840,9 +810,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber43", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-3-DEG4", "dest-tp": "DEG4-TTP-RX" @@ -872,9 +839,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber54", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-4-DEG1", "dest-tp": "DEG1-TTP-RX" @@ -904,9 +868,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber53", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-3-DEG3", "dest-tp": "DEG3-TTP-RX" @@ -936,9 +897,6 @@ } }, "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", - "org-openroadm-common-network:clfi": "fiber52", - "org-openroadm-common-network:TE-metric": 10, - "org-openroadm-network-topology:link-latency": 1, "destination": { "dest-node": "OpenROADM-2-DEG3", "dest-tp": "DEG3-TTP-RX" @@ -1364,36 +1322,13 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ + "avail-freq-maps": [ { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -1431,36 +1366,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, + "avail-freq-maps": [ { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -1498,36 +1410,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, + "avail-freq-maps": [ { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -1596,36 +1485,13 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, + "avail-freq-maps": [ { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -1663,36 +1529,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, + "avail-freq-maps": [ { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -1730,36 +1573,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, + "avail-freq-maps": [ { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -1797,36 +1617,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":3, - "available-wavelengths": [ + "avail-freq-maps": [ { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -1895,36 +1692,13 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, + "avail-freq-maps": [ { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -1962,36 +1736,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, + "avail-freq-maps": [ { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2029,36 +1780,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, + "avail-freq-maps": [ { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2096,36 +1824,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":3, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, + "avail-freq-maps": [ { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2163,36 +1868,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":4, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, + "avail-freq-maps": [ { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2261,36 +1943,13 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ + "avail-freq-maps": [ { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2328,36 +1987,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, + "avail-freq-maps": [ { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2395,36 +2031,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, + "avail-freq-maps": [ { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2493,36 +2106,13 @@ } ], "org-openroadm-network-topology:srg-attributes": { - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, + "avail-freq-maps": [ { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2560,36 +2150,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":1, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, + "avail-freq-maps": [ { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2627,36 +2194,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":2, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, + "avail-freq-maps": [ { - "index": 4 - }, - { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, @@ -2694,36 +2238,13 @@ ], "org-openroadm-network-topology:degree-attributes": { "degree-number":3, - "available-wavelengths": [ - { - "index": 10 - }, - { - "index": 9 - }, - { - "index": 6 - }, - { - "index": 5 - }, - { - "index": 8 - }, - { - "index": 7 - }, - { - "index": 2 - }, - { - "index": 1 - }, - { - "index": 4 - }, + "avail-freq-maps": [ { - "index": 3 + "map-name": "cband", + "start-edge-freq": 191.325, + "freq-map-granularity": 6.25, + "effective-bits": 8, + "freq-map":"/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }, diff --git a/tests/sample_configs/honeynode-topo.xml b/tests/sample_configs/honeynode-topo.xml index 086a0601c..d17ae48ac 100644 --- a/tests/sample_configs/honeynode-topo.xml +++ b/tests/sample_configs/honeynode-topo.xml @@ -350,294 +350,14 @@ NodeC - - 93 - - - 94 - - - 95 - - - 96 - - - 29 - - - 30 - - - 31 - - - 32 - - - 33 - - - 34 - - - 35 - - - 36 - - - 37 - - - 38 - - - 39 - - - 40 - - - 41 - - - 42 - - - 43 - - - 44 - - - 45 - - - 46 - - - 47 - - - 48 - - - 49 - - - 50 - - - 51 - - - 52 - - - 53 - - - 54 - - - 55 - - - 56 - - - 57 - - - 58 - - - 59 - - - 60 - - - 61 - - - 62 - - - 63 - - - 64 - - - 65 - - - 66 - - - 67 - - - 68 - - - 69 - - - 70 - - - 71 - - - 72 - - - 73 - - - 74 - - - 75 - - - 76 - - - 77 - - - 78 - - - 79 - - - 80 - - - 81 - - - 82 - - - 83 - - - 84 - - - 85 - - - 86 - - - 87 - - - 88 - - - 89 - - - 90 - - - 91 - - - 92 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - 11 - - - 12 - - - 13 - - - 14 - - - 15 - - - 16 - - - 17 - - - 18 - - - 19 - - - 20 - - - 21 - - - 22 - - - 23 - - - 24 - - - 25 - - - 26 - - - 27 - - - 28 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + s> SRG @@ -662,294 +382,14 @@ 1 - - 93 - - - 94 - - - 95 - - - 96 - - - 29 - - - 30 - - - 31 - - - 32 - - - 33 - - - 34 - - - 35 - - - 36 - - - 37 - - - 38 - - - 39 - - - 40 - - - 41 - - - 42 - - - 43 - - - 44 - - - 45 - - - 46 - - - 47 - - - 48 - - - 49 - - - 50 - - - 51 - - - 52 - - - 53 - - - 54 - - - 55 - - - 56 - - - 57 - - - 58 - - - 59 - - - 60 - - - 61 - - - 62 - - - 63 - - - 64 - - - 65 - - - 66 - - - 67 - - - 68 - - - 69 - - - 70 - - - 71 - - - 72 - - - 73 - - - 74 - - - 75 - - - 76 - - - 77 - - - 78 - - - 79 - - - 80 - - - 81 - - - 82 - - - 83 - - - 84 - - - 85 - - - 86 - - - 87 - - - 88 - - - 89 - - - 90 - - - 91 - - - 92 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - 11 - - - 12 - - - 13 - - - 14 - - - 15 - - - 16 - - - 17 - - - 18 - - - 19 - - - 20 - - - 21 - - - 22 - - - 23 - - - 24 - - - 25 - - - 26 - - - 27 - - - 28 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + s> @@ -973,294 +413,14 @@ 2 - - 93 - - - 94 - - - 95 - - - 96 - - - 29 - - - 30 - - - 31 - - - 32 - - - 33 - - - 34 - - - 35 - - - 36 - - - 37 - - - 38 - - - 39 - - - 40 - - - 41 - - - 42 - - - 43 - - - 44 - - - 45 - - - 46 - - - 47 - - - 48 - - - 49 - - - 50 - - - 51 - - - 52 - - - 53 - - - 54 - - - 55 - - - 56 - - - 57 - - - 58 - - - 59 - - - 60 - - - 61 - - - 62 - - - 63 - - - 64 - - - 65 - - - 66 - - - 67 - - - 68 - - - 69 - - - 70 - - - 71 - - - 72 - - - 73 - - - 74 - - - 75 - - - 76 - - - 77 - - - 78 - - - 79 - - - 80 - - - 81 - - - 82 - - - 83 - - - 84 - - - 85 - - - 86 - - - 87 - - - 88 - - - 89 - - - 90 - - - 91 - - - 92 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - 11 - - - 12 - - - 13 - - - 14 - - - 15 - - - 16 - - - 17 - - - 18 - - - 19 - - - 20 - - - 21 - - - 22 - - - 23 - - - 24 - - - 25 - - - 26 - - - 27 - - - 28 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + s> @@ -1342,294 +502,14 @@ NodeA - - 93 - - - 94 - - - 95 - - - 96 - - - 29 - - - 30 - - - 31 - - - 32 - - - 33 - - - 34 - - - 35 - - - 36 - - - 37 - - - 38 - - - 39 - - - 40 - - - 41 - - - 42 - - - 43 - - - 44 - - - 45 - - - 46 - - - 47 - - - 48 - - - 49 - - - 50 - - - 51 - - - 52 - - - 53 - - - 54 - - - 55 - - - 56 - - - 57 - - - 58 - - - 59 - - - 60 - - - 61 - - - 62 - - - 63 - - - 64 - - - 65 - - - 66 - - - 67 - - - 68 - - - 69 - - - 70 - - - 71 - - - 72 - - - 73 - - - 74 - - - 75 - - - 76 - - - 77 - - - 78 - - - 79 - - - 80 - - - 81 - - - 82 - - - 83 - - - 84 - - - 85 - - - 86 - - - 87 - - - 88 - - - 89 - - - 90 - - - 91 - - - 92 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - 11 - - - 12 - - - 13 - - - 14 - - - 15 - - - 16 - - - 17 - - - 18 - - - 19 - - - 20 - - - 21 - - - 22 - - - 23 - - - 24 - - - 25 - - - 26 - - - 27 - - - 28 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + s> SRG @@ -1686,294 +566,14 @@ 2 - - 93 - - - 94 - - - 95 - - - 96 - - - 29 - - - 30 - - - 31 - - - 32 - - - 33 - - - 34 - - - 35 - - - 36 - - - 37 - - - 38 - - - 39 - - - 40 - - - 41 - - - 42 - - - 43 - - - 44 - - - 45 - - - 46 - - - 47 - - - 48 - - - 49 - - - 50 - - - 51 - - - 52 - - - 53 - - - 54 - - - 55 - - - 56 - - - 57 - - - 58 - - - 59 - - - 60 - - - 61 - - - 62 - - - 63 - - - 64 - - - 65 - - - 66 - - - 67 - - - 68 - - - 69 - - - 70 - - - 71 - - - 72 - - - 73 - - - 74 - - - 75 - - - 76 - - - 77 - - - 78 - - - 79 - - - 80 - - - 81 - - - 82 - - - 83 - - - 84 - - - 85 - - - 86 - - - 87 - - - 88 - - - 89 - - - 90 - - - 91 - - - 92 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - 11 - - - 12 - - - 13 - - - 14 - - - 15 - - - 16 - - - 17 - - - 18 - - - 19 - - - 20 - - - 21 - - - 22 - - - 23 - - - 24 - - - 25 - - - 26 - - - 27 - - - 28 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + s> @@ -2029,294 +629,14 @@ 1 - - 93 - - - 94 - - - 95 - - - 96 - - - 29 - - - 30 - - - 31 - - - 32 - - - 33 - - - 34 - - - 35 - - - 36 - - - 37 - - - 38 - - - 39 - - - 40 - - - 41 - - - 42 - - - 43 - - - 44 - - - 45 - - - 46 - - - 47 - - - 48 - - - 49 - - - 50 - - - 51 - - - 52 - - - 53 - - - 54 - - - 55 - - - 56 - - - 57 - - - 58 - - - 59 - - - 60 - - - 61 - - - 62 - - - 63 - - - 64 - - - 65 - - - 66 - - - 67 - - - 68 - - - 69 - - - 70 - - - 71 - - - 72 - - - 73 - - - 74 - - - 75 - - - 76 - - - 77 - - - 78 - - - 79 - - - 80 - - - 81 - - - 82 - - - 83 - - - 84 - - - 85 - - - 86 - - - 87 - - - 88 - - - 89 - - - 90 - - - 91 - - - 92 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - 10 - - - 11 - - - 12 - - - 13 - - - 14 - - - 15 - - - 16 - - - 17 - - - 18 - - - 19 - - - 20 - - - 21 - - - 22 - - - 23 - - - 24 - - - 25 - - - 26 - - - 27 - - - 28 - + + cband + 191.325 + 6.25 + 8 + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + s> diff --git a/tests/transportpce_tests/1.2.1/test_end2end.py b/tests/transportpce_tests/1.2.1/test_end2end.py index 43c034813..92032039e 100644 --- a/tests/transportpce_tests/1.2.1/test_end2end.py +++ b/tests/transportpce_tests/1.2.1/test_end2end.py @@ -11,22 +11,23 @@ # pylint: disable=no-member # pylint: disable=too-many-public-methods +import base64 import time import unittest import requests from common import test_utils +from common.test_utils import INDEX_1_USED_FREQ_MAP, INDEX_1_2_USED_FREQ_MAP, AVAILABLE_FREQ_MAP class TransportPCEFulltesting(unittest.TestCase): - cr_serv_sample_data = {"input": { "sdnc-request-header": { "request-id": "e3028bae-a90f-4ddd-a83f-cf224eba0e58", "rpc-action": "service-create", "request-system-id": "appname", "notification-url": - "http://localhost:8585/NotificationServer/notify" + "http://localhost:8585/NotificationServer/notify" }, "service-name": "service1", "common-id": "ASATT1234567", @@ -36,40 +37,40 @@ class TransportPCEFulltesting(unittest.TestCase): "node-id": "XPDRA01", "service-format": "Ethernet", "clli": "SNJSCAMCJP8", - "tx-direction": { - "port": { - "port-device-name": - "ROUTER_SNJSCAMCJP8_000000.00_00", - "port-type": "router", - "port-name": "Gigabit Ethernet_Tx.ge-5/0/0.0", - "port-rack": "000000.00", - "port-shelf": "00" - }, - "lgx": { - "lgx-device-name": - "LGX Panel_SNJSCAMCJP8_000000.00_00", - "lgx-port-name": "LGX Back.3", - "lgx-port-rack": "000000.00", - "lgx-port-shelf": "00" - } - }, + "tx-direction": { + "port": { + "port-device-name": + "ROUTER_SNJSCAMCJP8_000000.00_00", + "port-type": "router", + "port-name": "Gigabit Ethernet_Tx.ge-5/0/0.0", + "port-rack": "000000.00", + "port-shelf": "00" + }, + "lgx": { + "lgx-device-name": + "LGX Panel_SNJSCAMCJP8_000000.00_00", + "lgx-port-name": "LGX Back.3", + "lgx-port-rack": "000000.00", + "lgx-port-shelf": "00" + } + }, "rx-direction": { - "port": { - "port-device-name": - "ROUTER_SNJSCAMCJP8_000000.00_00", - "port-type": "router", - "port-name": "Gigabit Ethernet_Rx.ge-5/0/0.0", - "port-rack": "000000.00", - "port-shelf": "00" - }, - "lgx": { - "lgx-device-name": - "LGX Panel_SNJSCAMCJP8_000000.00_00", - "lgx-port-name": "LGX Back.4", - "lgx-port-rack": "000000.00", - "lgx-port-shelf": "00" - } - }, + "port": { + "port-device-name": + "ROUTER_SNJSCAMCJP8_000000.00_00", + "port-type": "router", + "port-name": "Gigabit Ethernet_Rx.ge-5/0/0.0", + "port-rack": "000000.00", + "port-shelf": "00" + }, + "lgx": { + "lgx-device-name": + "LGX Panel_SNJSCAMCJP8_000000.00_00", + "lgx-port-name": "LGX Back.4", + "lgx-port-rack": "000000.00", + "lgx-port-shelf": "00" + } + }, "optic-type": "gray" }, "service-z-end": { @@ -77,40 +78,40 @@ class TransportPCEFulltesting(unittest.TestCase): "node-id": "XPDRC01", "service-format": "Ethernet", "clli": "SNJSCAMCJT4", - "tx-direction": { - "port": { - "port-device-name": - "ROUTER_SNJSCAMCJT4_000000.00_00", - "port-type": "router", - "port-name": "Gigabit Ethernet_Tx.ge-1/0/0.0", - "port-rack": "000000.00", - "port-shelf": "00" - }, - "lgx": { - "lgx-device-name": - "LGX Panel_SNJSCAMCJT4_000000.00_00", - "lgx-port-name": "LGX Back.29", - "lgx-port-rack": "000000.00", - "lgx-port-shelf": "00" - } - }, + "tx-direction": { + "port": { + "port-device-name": + "ROUTER_SNJSCAMCJT4_000000.00_00", + "port-type": "router", + "port-name": "Gigabit Ethernet_Tx.ge-1/0/0.0", + "port-rack": "000000.00", + "port-shelf": "00" + }, + "lgx": { + "lgx-device-name": + "LGX Panel_SNJSCAMCJT4_000000.00_00", + "lgx-port-name": "LGX Back.29", + "lgx-port-rack": "000000.00", + "lgx-port-shelf": "00" + } + }, "rx-direction": { - "port": { - "port-device-name": - "ROUTER_SNJSCAMCJT4_000000.00_00", - "port-type": "router", - "port-name": "Gigabit Ethernet_Rx.ge-1/0/0.0", - "port-rack": "000000.00", - "port-shelf": "00" - }, - "lgx": { - "lgx-device-name": - "LGX Panel_SNJSCAMCJT4_000000.00_00", - "lgx-port-name": "LGX Back.30", - "lgx-port-rack": "000000.00", - "lgx-port-shelf": "00" - } - }, + "port": { + "port-device-name": + "ROUTER_SNJSCAMCJT4_000000.00_00", + "port-type": "router", + "port-name": "Gigabit Ethernet_Rx.ge-1/0/0.0", + "port-rack": "000000.00", + "port-shelf": "00" + }, + "lgx": { + "lgx-device-name": + "LGX Panel_SNJSCAMCJT4_000000.00_00", + "lgx-port-name": "LGX Back.30", + "lgx-port-rack": "000000.00", + "lgx-port-shelf": "00" + } + }, "optic-type": "gray" }, "due-date": "2016-11-28T00:00:01Z", @@ -191,7 +192,6 @@ class TransportPCEFulltesting(unittest.TestCase): def test_09_add_omsAttributes_ROADMA_ROADMC(self): # Config ROADMA-ROADMC oms-attributes data = {"span": { - "clfi": "fiber1", "auto-spanloss": "true", "spanloss-base": 11.4, "spanloss-current": 12, @@ -207,7 +207,6 @@ class TransportPCEFulltesting(unittest.TestCase): def test_10_add_omsAttributes_ROADMC_ROADMA(self): # Config ROADMC-ROADMA oms-attributes data = {"span": { - "clfi": "fiber1", "auto-spanloss": "true", "spanloss-base": 11.4, "spanloss-current": 12, @@ -313,10 +312,10 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADMA01-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, - res['node'][0][ - u'org-openroadm-network-topology:srg-attributes'][ - 'available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:srg-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': @@ -332,18 +331,18 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADMA01-DEG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, - res['node'][0][ - u'org-openroadm-network-topology:' - u'degree-attributes'][ - 'available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:degree-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG1-CTP-TXRX': - self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, + self.assertIn({u'map-name': 'cband', u'freq-map-granularity': 6.25, u'start-edge-freq': 191.325, + u'effective-bits': 8, u'freq-map': INDEX_1_USED_FREQ_MAP}, ele['org-openroadm-network-topology:' 'ctp-attributes'][ - 'used-wavelengths']) + 'avail-freq-maps']) if ele['tp-id'] == 'DEG1-TTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, ele['org-openroadm-network-topology:' @@ -419,10 +418,10 @@ class TransportPCEFulltesting(unittest.TestCase): # the following statement replaces self.assertDictContainsSubset deprecated in python 3.2 self.assertDictEqual( dict({ - 'connection-number': 'DEG1-TTP-TXRX-SRG1-PP2-TXRX-2', - 'wavelength-number': 2, - 'opticalControlMode': 'power' - }, **res['roadm-connections'][0]), + 'connection-number': 'DEG1-TTP-TXRX-SRG1-PP2-TXRX-2', + 'wavelength-number': 2, + 'opticalControlMode': 'power' + }, **res['roadm-connections'][0]), res['roadm-connections'][0] ) self.assertDictEqual( @@ -449,7 +448,7 @@ class TransportPCEFulltesting(unittest.TestCase): 'xpdr-network-attributes'][ 'wavelength']) if ele['tp-id'] == 'XPDR1-CLIENT1' or \ - ele['tp-id'] == 'XPDR1-CLIENT3': + ele['tp-id'] == 'XPDR1-CLIENT3': self.assertNotIn( 'org-openroadm-network-topology:xpdr-client-attributes', dict.keys(ele)) @@ -459,12 +458,11 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADMA01-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, res['node'][0][ - u'org-openroadm-network-topology:srg-attributes'][ - 'available-wavelengths']) - self.assertNotIn({u'index': 2}, res['node'][0][ - u'org-openroadm-network-topology:srg-attributes'][ - 'available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:srg-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") + self.assertEqual(freq_map_array[1], 0, "Index 2 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': @@ -492,21 +490,19 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADMA01-DEG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, res['node'][0][ - u'org-openroadm-network-topology:degree-attributes'][ - 'available-wavelengths']) - self.assertNotIn({u'index': 2}, res['node'][0][ - u'org-openroadm-network-topology:degree-attributes'][ - 'available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:degree-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") + self.assertEqual(freq_map_array[1], 0, "Index 2 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG1-CTP-TXRX': - self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, - ele['org-openroadm-network-topology:' - 'ctp-attributes']['used-wavelengths']) - self.assertIn({u'index': 2, u'frequency': 196.05, u'width': 40}, + self.assertIn({u'map-name': 'cband', u'freq-map-granularity': 6.25, u'start-edge-freq': 191.325, + u'effective-bits': 8, u'freq-map': INDEX_1_2_USED_FREQ_MAP}, ele['org-openroadm-network-topology:' - 'ctp-attributes']['used-wavelengths']) + 'ctp-attributes'][ + 'avail-freq-maps']) if ele['tp-id'] == 'DEG1-TTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, ele['org-openroadm-network-topology:' @@ -577,8 +573,8 @@ class TransportPCEFulltesting(unittest.TestCase): for ele in liste_tp: if ((ele[u'org-openroadm-common-network:tp-type'] == 'XPONDER-CLIENT') - and (ele['tp-id'] == 'XPDR1-CLIENT1' or ele[ - 'tp-id'] == 'XPDR1-CLIENT3')): + and (ele['tp-id'] == 'XPDR1-CLIENT1' or ele[ + 'tp-id'] == 'XPDR1-CLIENT3')): self.assertNotIn( 'org-openroadm-network-topology:xpdr-client-attributes', dict.keys(ele)) @@ -596,38 +592,26 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADMA01-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertIn({u'index': 1}, res['node'][0][ - u'org-openroadm-network-topology:srg-attributes'][ - 'available-wavelengths']) - self.assertIn({u'index': 2}, res['node'][0][ - u'org-openroadm-network-topology:srg-attributes'][ - 'available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:srg-attributes']['avail-freq-maps'][0]['freq-map']) + self.assertTrue(test_utils.check_freq_map(freq_map), "Index 1 and 2 should be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: - if ele['tp-id'] == 'SRG1-PP1-TXRX' or \ - ele['tp-id'] == 'SRG1-PP1-TXRX': - self.assertNotIn('org-openroadm-network-topology:pp-attributes', - dict.keys(ele)) - else: - self.assertNotIn('org-openroadm-network-topology:pp-attributes', - dict.keys(ele)) + self.assertNotIn('org-openroadm-network-topology:pp-attributes', dict.keys(ele)) time.sleep(10) def test_35_check_topo_ROADMA_DEG1(self): response = test_utils.get_ordm_topo_request("node/ROADMA01-DEG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertIn({u'index': 1}, res['node'][0][ - u'org-openroadm-network-topology:degree-attributes'][ - 'available-wavelengths']) - self.assertIn({u'index': 2}, res['node'][0][ - u'org-openroadm-network-topology:degree-attributes'][ - 'available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:degree-attributes']['avail-freq-maps'][0]['freq-map']) + self.assertTrue(test_utils.check_freq_map(freq_map), "Index 1 and 2 should be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG1-CTP-TXRX': - self.assertNotIn('org-openroadm-network-topology:' - 'ctp-attributes', dict.keys(ele)) + self.assertEqual(ele['org-openroadm-network-topology:ctp-attributes']['avail-freq-maps'][0]['freq-map'], + AVAILABLE_FREQ_MAP) if ele['tp-id'] == 'DEG1-TTP-TXRX': self.assertNotIn('org-openroadm-network-topology:' 'tx-ttp-attributes', dict.keys(ele)) diff --git a/tests/transportpce_tests/2.2.1/test_end2end.py b/tests/transportpce_tests/2.2.1/test_end2end.py index bc9b3a634..c20b0eba5 100644 --- a/tests/transportpce_tests/2.2.1/test_end2end.py +++ b/tests/transportpce_tests/2.2.1/test_end2end.py @@ -10,11 +10,12 @@ # pylint: disable=no-member # pylint: disable=too-many-public-methods - +import base64 import unittest import time import requests from common import test_utils +from common.test_utils import INDEX_1_USED_FREQ_MAP, INDEX_1_2_USED_FREQ_MAP, AVAILABLE_FREQ_MAP class TransportPCEFulltesting(unittest.TestCase): @@ -290,8 +291,10 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, - res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:srg-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': @@ -306,14 +309,18 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-DEG2") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, - res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:degree-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': - self.assertIn({u'index': 1, u'frequency': 196.1, - u'width': 40}, - ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) + self.assertIn({u'map-name': 'cband', u'freq-map-granularity': 6.25, u'start-edge-freq': 191.325, + u'effective-bits': 8, u'freq-map': INDEX_1_USED_FREQ_MAP}, + ele['org-openroadm-network-topology:' + 'ctp-attributes'][ + 'avail-freq-maps']) if ele['tp-id'] == 'DEG2-TTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, @@ -417,10 +424,11 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, res['node'][0] - [u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) - self.assertNotIn({u'index': 2}, res['node'][0] - [u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:srg-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") + self.assertEqual(freq_map_array[1], 0, "Index 2 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': @@ -444,18 +452,19 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-DEG2") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, res['node'][0] - [u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) - self.assertNotIn({u'index': 2}, res['node'][0] - [u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:degree-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") + self.assertEqual(freq_map_array[1], 0, "Index 2 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': - self.assertIn({u'index': 1, u'frequency': 196.1, - u'width': 40}, - ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) - self.assertIn({u'index': 2, u'frequency': 196.05, u'width': 40}, - ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) + self.assertIn({u'map-name': 'cband', u'freq-map-granularity': 6.25, u'start-edge-freq': 191.325, + u'effective-bits': 8, u'freq-map': INDEX_1_2_USED_FREQ_MAP}, + ele['org-openroadm-network-topology:' + 'ctp-attributes'][ + 'avail-freq-maps']) if ele['tp-id'] == 'DEG2-TTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, @@ -527,10 +536,11 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertIn({u'index': 1}, res['node'][0] - [u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) - self.assertIn({u'index': 2}, res['node'][0] - [u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:srg-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 255, "Index 1 should be available") + self.assertEqual(freq_map_array[1], 255, "Index 2 should be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX' or ele['tp-id'] == 'SRG1-PP1-TXRX': @@ -543,14 +553,14 @@ class TransportPCEFulltesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-DEG2") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertIn({u'index': 1}, res['node'][0] - [u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) - self.assertIn({u'index': 2}, res['node'][0] - [u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:degree-attributes']['avail-freq-maps'][0]['freq-map']) + self.assertTrue(test_utils.check_freq_map(freq_map), "Index 1 and 2 should be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': - self.assertNotIn('org-openroadm-network-topology:ctp-attributes', dict.keys(ele)) + self.assertEqual(ele['org-openroadm-network-topology:ctp-attributes']['avail-freq-maps'][0]['freq-map'], + AVAILABLE_FREQ_MAP) if ele['tp-id'] == 'DEG2-TTP-TXRX': self.assertNotIn('org-openroadm-network-topology:tx-ttp-attributes', dict.keys(ele)) time.sleep(10) diff --git a/tests/transportpce_tests/2.2.1/test_otn_end2end.py b/tests/transportpce_tests/2.2.1/test_otn_end2end.py index d2208da6d..7377cfb8e 100644 --- a/tests/transportpce_tests/2.2.1/test_otn_end2end.py +++ b/tests/transportpce_tests/2.2.1/test_otn_end2end.py @@ -12,10 +12,12 @@ # pylint: disable=no-member # pylint: disable=too-many-public-methods +import base64 import unittest import time import requests from common import test_utils +from common.test_utils import INDEX_1_USED_FREQ_MAP, INDEX_1_2_USED_FREQ_MAP, AVAILABLE_FREQ_MAP class TransportPCEtesting(unittest.TestCase): @@ -357,8 +359,10 @@ class TransportPCEtesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, - res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:srg-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': @@ -373,14 +377,16 @@ class TransportPCEtesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-DEG2") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertNotIn({u'index': 1}, - res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:degree-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 0, "Index 1 should not be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': - self.assertIn({u'index': 1, u'frequency': 196.1, - u'width': 40}, - ele['org-openroadm-network-topology:ctp-attributes']['used-wavelengths']) + self.assertIn({u'map-name': 'cband', u'freq-map-granularity': 6.25, u'start-edge-freq': 191.325, + u'effective-bits': 8, u'freq-map': INDEX_1_USED_FREQ_MAP}, + ele['org-openroadm-network-topology:ctp-attributes']['avail-freq-maps']) if ele['tp-id'] == 'DEG2-TTP-TXRX': self.assertIn({u'index': 1, u'frequency': 196.1, u'width': 40}, @@ -908,8 +914,10 @@ class TransportPCEtesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-SRG1") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertIn({u'index': 1}, - res['node'][0][u'org-openroadm-network-topology:srg-attributes']['available-wavelengths']) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:srg-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 255, "Index 1 should be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'SRG1-PP1-TXRX': @@ -920,12 +928,16 @@ class TransportPCEtesting(unittest.TestCase): response = test_utils.get_ordm_topo_request("node/ROADM-A1-DEG2") self.assertEqual(response.status_code, requests.codes.ok) res = response.json() - self.assertIn({u'index': 1}, - res['node'][0][u'org-openroadm-network-topology:degree-attributes']['available-wavelengths']) + print(res) + freq_map = base64.b64decode( + res['node'][0]['org-openroadm-network-topology:degree-attributes']['avail-freq-maps'][0]['freq-map']) + freq_map_array = [int(x) for x in freq_map] + self.assertEqual(freq_map_array[0], 255, "Index 1 should be available") liste_tp = res['node'][0]['ietf-network-topology:termination-point'] for ele in liste_tp: if ele['tp-id'] == 'DEG2-CTP-TXRX': - self.assertNotIn('org-openroadm-network-topology:ctp-attributes', dict.keys(ele)) + self.assertEqual(ele['org-openroadm-network-topology:ctp-attributes']['avail-freq-maps'][0]['freq-map'], + AVAILABLE_FREQ_MAP) if ele['tp-id'] == 'DEG2-TTP-TXRX': self.assertNotIn('org-openroadm-network-topology:tx-ttp-attributes', dict.keys(ele)) time.sleep(3) diff --git a/tests/transportpce_tests/2.2.1/test_tapi.py b/tests/transportpce_tests/2.2.1/test_tapi.py index d945c335b..7d0d0bd9e 100644 --- a/tests/transportpce_tests/2.2.1/test_tapi.py +++ b/tests/transportpce_tests/2.2.1/test_tapi.py @@ -481,7 +481,6 @@ class TransportTapitesting(unittest.TestCase): def test_30_add_oms_attributes(self): # Config ROADMA-ROADMC oms-attributes data = {"span": { - "clfi": "fiber1", "auto-spanloss": "true", "spanloss-base": 11.4, "spanloss-current": 12, @@ -495,7 +494,6 @@ class TransportTapitesting(unittest.TestCase): self.assertEqual(response.status_code, requests.codes.created) # Config ROADMC-ROADMA oms-attributes data = {"span": { - "clfi": "fiber1", "auto-spanloss": "true", "spanloss-base": 11.4, "spanloss-current": 12, diff --git a/tests/transportpce_tests/common/test_utils.py b/tests/transportpce_tests/common/test_utils.py index b541abb09..9d3bfec3e 100644 --- a/tests/transportpce_tests/common/test_utils.py +++ b/tests/transportpce_tests/common/test_utils.py @@ -11,6 +11,7 @@ # pylint: disable=no-member +import base64 import json import os import sys @@ -97,7 +98,7 @@ def start_tpce(): else: process = start_karaf() start_msg = KARAF_OK_START_MSG - if wait_until_log_contains(TPCE_LOG, start_msg , time_to_wait=60): + if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=60): print("OpenDaylight started !") else: print("OpenDaylight failed to start !") @@ -203,7 +204,7 @@ def delete_request(url): def mount_device(node_id, sim): - url = URL_CONFIG_NETCONF_TOPO+"node/"+node_id + url = URL_CONFIG_NETCONF_TOPO + "node/" + node_id body = {"node": [{ "node-id": node_id, "netconf-node-topology:username": NODES_LOGIN, @@ -213,10 +214,10 @@ def mount_device(node_id, sim): "netconf-node-topology:tcp-only": "false", "netconf-node-topology:pass-through": {}}]} response = put_request(url, body) - if wait_until_log_contains(TPCE_LOG, re.escape("Triggering notification stream NETCONF for node "+node_id), 60): - print("Node "+node_id+" correctly added to tpce topology", end='... ', flush=True) + if wait_until_log_contains(TPCE_LOG, re.escape("Triggering notification stream NETCONF for node " + node_id), 60): + print("Node " + node_id + " correctly added to tpce topology", end='... ', flush=True) else: - print("Node "+node_id+" still not added to tpce topology", end='... ', flush=True) + print("Node " + node_id + " still not added to tpce topology", end='... ', flush=True) if response.status_code == requests.codes.ok: print("It was probably loaded at start-up", end='... ', flush=True) # TODO an else-clause to abort test would probably be nice here @@ -224,12 +225,12 @@ def mount_device(node_id, sim): def unmount_device(node_id): - url = URL_CONFIG_NETCONF_TOPO+"node/"+node_id + url = URL_CONFIG_NETCONF_TOPO + "node/" + node_id response = delete_request(url) - if wait_until_log_contains(TPCE_LOG, re.escape("onDeviceDisConnected: "+node_id), 60): - print("Node "+node_id+" correctly deleted from tpce topology", end='... ', flush=True) + if wait_until_log_contains(TPCE_LOG, re.escape("onDeviceDisConnected: " + node_id), 60): + print("Node " + node_id + " correctly deleted from tpce topology", end='... ', flush=True) else: - print("Node "+node_id+" still not deleted from tpce topology", end='... ', flush=True) + print("Node " + node_id + " still not deleted from tpce topology", end='... ', flush=True) return response @@ -426,7 +427,7 @@ def wait_until_log_contains(log_file, regexp, time_to_wait=20): filelogs = open(log_file, 'r') filelogs.seek(0, 2) filefound = True - print("Searching for pattern '"+regexp+"' in "+os.path.basename(log_file), end='... ', flush=True) + print("Searching for pattern '" + regexp + "' in " + os.path.basename(log_file), end='... ', flush=True) compiled_regexp = re.compile(regexp) while True: line = filelogs.readline() @@ -437,7 +438,7 @@ def wait_until_log_contains(log_file, regexp, time_to_wait=20): if not line: time.sleep(0.1) except TimeoutError: - print("Pattern not found after "+str(time_to_wait), end=" seconds! ", flush=True) + print("Pattern not found after " + str(time_to_wait), end=" seconds! ", flush=True) except PermissionError: print("Permission Error when trying to access the log file", end=" ... ", flush=True) finally: @@ -463,3 +464,21 @@ class TimeOut: def __exit__(self, type, value, traceback): # pylint: disable=W0622 signal.alarm(0) + + +def check_freq_map(freq_map): + freq_map_array = [int(x) for x in freq_map] + return freq_map_array[0] == 255 and freq_map_array[1] == 255 + + +def set_used_index_for_freq_map(freq_map, index): + freq_map[index] = 0 + return freq_map + + +INDEX_1_USED_FREQ_MAP = base64.b64encode(set_used_index_for_freq_map(bytearray(b'\xFF' * 96), 0)).decode('UTF-8') + +INDEX_1_2_USED_FREQ_MAP = base64.b64encode(set_used_index_for_freq_map( + set_used_index_for_freq_map(bytearray(b'\xFF' * 96), 0), 1)).decode('utf-8') + +AVAILABLE_FREQ_MAP = base64.b64encode(bytearray(b'\xFF' * 96)).decode('UTF-8') -- 2.36.6