public static final String PP_TOKEN = "PP";
- public static final String SERVICE_TYPE_100GE = "100GE";
+ public static final String SERVICE_TYPE_100GE_T = "100GEt";
+ public static final String SERVICE_TYPE_100GE_M = "100GEm";
public static final String SERVICE_TYPE_OTU4 = "OTU4";
+ public static final String SERVICE_TYPE_OTUC4 = "OTUC4";
public static final String SERVICE_TYPE_400GE = "400GE";
public static final String SERVICE_TYPE_1GE = "1GE";
public static final String SERVICE_TYPE_ODU4 = "ODU4";
+ public static final String SERVICE_TYPE_ODUC4 = "ODUC4";
private StringConstants() {
// hiding the default constructor
* Map for associate service type with nb slots.
*/
public static final Map<String, Integer> SPECTRAL_WIDTH_SLOT_NUMBER_MAP = Map.of(
- StringConstants.SERVICE_TYPE_100GE, NB_SLOTS_100G,
+ StringConstants.SERVICE_TYPE_100GE_T, NB_SLOTS_100G,
StringConstants.SERVICE_TYPE_400GE, NB_SLOTS_400G,
StringConstants.SERVICE_TYPE_OTU4, NB_SLOTS_100G);
.setAToZ(atozMap);
switch (rc.getServiceType()) {
case StringConstants.SERVICE_TYPE_400GE:
- case StringConstants.SERVICE_TYPE_100GE:
+ case StringConstants.SERVICE_TYPE_OTUC4:
+ case StringConstants.SERVICE_TYPE_100GE_T:
case StringConstants.SERVICE_TYPE_OTU4:
atoZDirectionBldr.setAToZMaxFrequency(new FrequencyTHz(rc.getMaxFreq()));
atoZDirectionBldr.setAToZMinFrequency(new FrequencyTHz(rc.getMinFreq()));
atoZDirectionBldr.setAToZWavelengthNumber(Uint32.valueOf(rc.getResultWavelength()));
break;
+ case StringConstants.SERVICE_TYPE_100GE_M:
case StringConstants.SERVICE_TYPE_10GE:
case StringConstants.SERVICE_TYPE_1GE:
case StringConstants.SERVICE_TYPE_ODU4:
+ case StringConstants.SERVICE_TYPE_ODUC4:
if (rc.getResultTribSlot() != null && rc.getResultTribPort() != null) {
@SuppressWarnings("unchecked")
List<Uint16> tribSlotList = (List<Uint16>) rc.getResultTribSlot().values().toArray()[0];
.setZToA(ztoaMap);
switch (rc.getServiceType()) {
case StringConstants.SERVICE_TYPE_400GE:
- case StringConstants.SERVICE_TYPE_100GE:
+ case StringConstants.SERVICE_TYPE_OTUC4:
+ case StringConstants.SERVICE_TYPE_100GE_T:
case StringConstants.SERVICE_TYPE_OTU4:
ztoADirectionBldr.setZToAMaxFrequency(new FrequencyTHz(rc.getMaxFreq()));
ztoADirectionBldr.setZToAMinFrequency(new FrequencyTHz(rc.getMinFreq()));
ztoADirectionBldr.setZToAWavelengthNumber(Uint32.valueOf(rc.getResultWavelength()));
break;
+ case StringConstants.SERVICE_TYPE_100GE_M:
case StringConstants.SERVICE_TYPE_10GE:
case StringConstants.SERVICE_TYPE_1GE:
case StringConstants.SERVICE_TYPE_ODU4:
shortestPathAtoZ = new ArrayList<>(pathAtoZ);
switch (serviceType) {
- case StringConstants.SERVICE_TYPE_100GE:
+ case StringConstants.SERVICE_TYPE_100GE_T:
+ case StringConstants.SERVICE_TYPE_OTUC4:
case StringConstants.SERVICE_TYPE_400GE:
case StringConstants.SERVICE_TYPE_OTU4:
LOG.info(
SpectrumAssignment spectrumAssignment = null;
//variable to deal with 1GE (Nb=1) and 10GE (Nb=10) cases
switch (serviceType) {
+ case StringConstants.SERVICE_TYPE_OTUC4:
case StringConstants.SERVICE_TYPE_400GE:
spectralWidthSlotNumber = GridConstant.SPECTRAL_WIDTH_SLOT_NUMBER_MAP
.getOrDefault(serviceType, GridConstant.NB_SLOTS_400G);
//fallthrough
- case StringConstants.SERVICE_TYPE_100GE:
+ case StringConstants.SERVICE_TYPE_100GE_T:
case StringConstants.SERVICE_TYPE_OTU4:
spectrumAssignment = getSpectrumAssignment(path,
allPceNodes, spectralWidthSlotNumber);
pceResult.setRC(ResponseCodes.RESPONSE_OK);
pceResult.setLocalCause(PceResult.LocalCause.NONE);
break;
+ case StringConstants.SERVICE_TYPE_100GE_M:
case StringConstants.SERVICE_TYPE_10GE:
- tribSlotNb = 8;
+ tribSlotNb = StringConstants.SERVICE_TYPE_10GE.equals(serviceType) ? 8 : 20;
//fallthrough
case StringConstants.SERVICE_TYPE_1GE:
pceResult.setRC(ResponseCodes.RESPONSE_FAILED);
}
break;
case StringConstants.SERVICE_TYPE_ODU4:
+ case StringConstants.SERVICE_TYPE_ODUC4:
pceResult.setRC(ResponseCodes.RESPONSE_OK);
- LOG.info("In PostAlgoPathValidator: ODU4 path found {}", path);
+ LOG.info("In PostAlgoPathValidator: ODU4/ODUC4 path found {}", path);
break;
default:
pceResult.setRC(ResponseCodes.RESPONSE_FAILED);
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.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mc.capabilities.McCapabilities;
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.state.types.rev191129.State;
+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.PortQual;
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;
serviceRate = input.getServiceAEnd().getServiceRate().toJava();
LOG.info("parseInput: A and Z :[{}] and [{}]", anodeId, znodeId);
- if (!(serviceFormatA.equals(serviceFormatZ))) {
- LOG.info("parseInput: different service format for A and Z not handled, will use service format from Aend");
- } else if (serviceRate == 100L) {
- switch (serviceFormatA) {
- case "Ethernet":
- case "OC":
- serviceType = StringConstants.SERVICE_TYPE_100GE;
- break;
- case "OTU":
- serviceType = StringConstants.SERVICE_TYPE_OTU4;
- break;
- case "ODU":
- serviceType = StringConstants.SERVICE_TYPE_ODU4;
- break;
- default:
- LOG.debug("parseInput: unsupported service type: Format {} Rate 100L", serviceFormatA);
- break;
- }
- //switch(serviceRate) may seem a better option at first glance.
- //But switching on Long or long is not directly possible in Java.
- //And casting to int bumps the limit here.
- //Passing by ENUM or String are possible alternatives.
- //Maybe HashMap and similar options should also be considered here.
- } else if ("Ethernet".equals(serviceFormatA)) {
- //only rate 100L is currently supported except in Ethernet
- if (serviceRate == 400L) {
- serviceType = StringConstants.SERVICE_TYPE_400GE;
- } else if (serviceRate == 10L) {
- serviceType = StringConstants.SERVICE_TYPE_10GE;
- } else if (serviceRate == 1L) {
- serviceType = StringConstants.SERVICE_TYPE_1GE;
- } else {
- LOG.debug("parseInput: unsupported service type: Format Ethernet Rate {}", serviceRate);
- }
- } else {
- LOG.debug("parseInput: unsupported service type: Format {} Rate {}",
- serviceFormatA, serviceRate);
- }
+
+ setServiceType();
if (StringConstants.SERVICE_TYPE_ODU4.equals(serviceType)
+ || StringConstants.SERVICE_TYPE_ODUC4.equals(serviceType)
+ || StringConstants.SERVICE_TYPE_100GE_M.equals(serviceType)
|| StringConstants.SERVICE_TYPE_10GE.equals(serviceType)
|| StringConstants.SERVICE_TYPE_1GE.equals(serviceType)) {
anodeId = input.getServiceAEnd().getTxDirection().getPort().getPortDeviceName();
return true;
}
+ private void setServiceType() {
+ if ("Ethernet".equals(serviceFormatA)) {
+ switch (serviceRate.intValue()) {
+ case 1:
+ serviceType = StringConstants.SERVICE_TYPE_1GE;
+ break;
+ case 10:
+ serviceType = StringConstants.SERVICE_TYPE_10GE;
+ break;
+ case 100:
+ serviceType = StringConstants.SERVICE_TYPE_100GE_T;
+ if (NodeTypes.Xpdr.equals(portMapping.getNode(input.getServiceAEnd().getNodeId())
+ .getNodeInfo().getNodeType())) {
+ if (input.getServiceAEnd().getTxDirection() != null
+ && input.getServiceAEnd().getTxDirection().getPort() != null
+ && input.getServiceAEnd().getTxDirection().getPort().getPortName() != null) {
+ String lcp = input.getServiceAEnd().getTxDirection().getPort().getPortName();
+ if (portMapping.getMapping(input.getServiceAEnd().getNodeId(), lcp) != null) {
+ Mapping mapping = portMapping.getMapping(input.getServiceAEnd().getNodeId(), lcp);
+ if (PortQual.SwitchClient.getName().equals(mapping.getPortQual())) {
+ serviceType = StringConstants.SERVICE_TYPE_100GE_M;
+ }
+ }
+ }
+ }
+ break;
+ case 400:
+ serviceType = StringConstants.SERVICE_TYPE_400GE;
+ break;
+ default:
+ LOG.warn("Invalid service-rate {}", serviceRate);
+ break;
+ }
+ }
+ if ("OC".equals(serviceFormatA) && Long.valueOf(100L).equals(serviceRate)) {
+ serviceType = StringConstants.SERVICE_TYPE_100GE_T;
+ }
+ if ("OTU".equals(serviceFormatA)) {
+ switch (serviceRate.intValue()) {
+ case 100:
+ serviceType = StringConstants.SERVICE_TYPE_OTU4;
+ break;
+ case 400:
+ serviceType = StringConstants.SERVICE_TYPE_OTUC4;
+ break;
+ default:
+ LOG.warn("Invalid service-rate {}", serviceRate);
+ break;
+ }
+ }
+ if ("ODU".equals(serviceFormatA)) {
+ switch (serviceRate.intValue()) {
+ case 100:
+ serviceType = StringConstants.SERVICE_TYPE_ODU4;
+ break;
+ case 400:
+ serviceType = StringConstants.SERVICE_TYPE_ODUC4;
+ break;
+ default:
+ LOG.warn("Invalid service-rate {}", serviceRate);
+ break;
+ }
+ }
+ }
+
private boolean readMdSal() {
InstanceIdentifier<Network> nwInstanceIdentifier = null;
- Network nw = null;
- if (("OC".equals(serviceFormatA)) || ("OTU".equals(serviceFormatA))
- || ("Ethernet".equals(serviceFormatA) && ((serviceRate == 100L) || (serviceRate == 400L)))) {
- LOG.info("readMdSal: network {}", NetworkUtils.OVERLAY_NETWORK_ID);
- nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class)
- .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))).build();
- } else if ("ODU".equals(serviceFormatA)
- || ("Ethernet".equals(serviceFormatA) && ((serviceRate == 10L) || (serviceRate == 1L)))) {
- LOG.info("readMdSal: network {}", NetworkUtils.OTN_NETWORK_ID);
- nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class)
- .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OTN_NETWORK_ID))).build();
+ switch (serviceType) {
+ case StringConstants.SERVICE_TYPE_100GE_T:
+ case StringConstants.SERVICE_TYPE_400GE:
+ case StringConstants.SERVICE_TYPE_OTU4:
+ case StringConstants.SERVICE_TYPE_OTUC4:
+ LOG.info("readMdSal: network {}", NetworkUtils.OVERLAY_NETWORK_ID);
+ nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class)
+ .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))).build();
+ break;
+ case StringConstants.SERVICE_TYPE_100GE_M:
+ case StringConstants.SERVICE_TYPE_ODU4:
+ case StringConstants.SERVICE_TYPE_ODUC4:
+ case StringConstants.SERVICE_TYPE_10GE:
+ case StringConstants.SERVICE_TYPE_1GE:
+ LOG.info("readMdSal: network {}", NetworkUtils.OTN_NETWORK_ID);
+ nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class)
+ .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OTN_NETWORK_ID))).build();
+ break;
+ default:
+ LOG.warn("readMdSal: unknown service-type for service-rate {} and service-format {}", serviceRate,
+ serviceFormatA);
+ break;
+ }
+
+ if (readTopology(nwInstanceIdentifier) != null) {
+ allNodes = readTopology(nwInstanceIdentifier).nonnullNode().values().stream().sorted((n1, n2)
+ -> n1.getNodeId().getValue().compareTo(n2.getNodeId().getValue())).collect(Collectors.toList());
+ Network1 nw1 = readTopology(nwInstanceIdentifier).augmentation(Network1.class);
+ if (nw1 != null) {
+ allLinks = nw1.nonnullLink().values().stream().sorted((l1, l2)
+ -> l1.getSource().getSourceTp().toString().compareTo(l2.getSource().getSourceTp().toString()))
+ .collect(Collectors.toList());
+ } else {
+ LOG.warn("no otn links in otn-topology");
+ }
+ if (allNodes == null || allNodes.isEmpty()) {
+ LOG.error("readMdSal: no nodes ");
+ return false;
+ }
+ LOG.info("readMdSal: network nodes: {} nodes added", allNodes.size());
+ LOG.debug("readMdSal: network nodes: {} nodes added", allNodes);
+
+ if (allLinks == null || allLinks.isEmpty()) {
+ LOG.error("readMdSal: no links ");
+ return false;
+ }
+ LOG.info("readMdSal: network links: {} links added", allLinks.size());
+ LOG.debug("readMdSal: network links: {} links added", allLinks);
+
+ return true;
} else {
- LOG.info("readMdSal: service-rate {} / service-format not handled {}", serviceRate, serviceFormatA);
+ LOG.error("readMdSal: network is null: {}", nwInstanceIdentifier);
return false;
}
+ }
+ private Network readTopology(InstanceIdentifier<Network> nwInstanceIdentifier) {
+ Network nw = null;
try {
Optional<Network> nwOptional =
networkTransactionService.read(LogicalDatastoreType.CONFIGURATION, nwInstanceIdentifier).get();
if (nwOptional.isPresent()) {
nw = nwOptional.get();
LOG.debug("readMdSal: network nodes: nwOptional.isPresent = true {}", nw);
+ networkTransactionService.close();
}
} catch (InterruptedException | ExecutionException e) {
LOG.error("readMdSal: Error reading topology {}", nwInstanceIdentifier);
throw new RuntimeException(
"readMdSal: Error reading from operational store, topology : " + nwInstanceIdentifier + " :" + e);
}
- networkTransactionService.close();
-
- if (nw == null) {
- LOG.error("readMdSal: network is null: {}", nwInstanceIdentifier);
- return false;
- }
- allNodes = nw.nonnullNode().values().stream().sorted((n1, n2)
- -> n1.getNodeId().getValue().compareTo(n2.getNodeId().getValue())).collect(Collectors.toList());
- Network1 nw1 = nw.augmentation(Network1.class);
- if (nw1 != null) {
- allLinks = nw1.nonnullLink().values().stream().sorted((l1, l2)
- -> l1.getSource().getSourceTp().toString().compareTo(l2.getSource().getSourceTp().toString()))
- .collect(Collectors.toList());
- } else {
- LOG.warn("no otn links in otn-topology");
- }
- if (allNodes == null || allNodes.isEmpty()) {
- LOG.error("readMdSal: no nodes ");
- return false;
- }
- LOG.info("readMdSal: network nodes: {} nodes added", allNodes.size());
- LOG.debug("readMdSal: network nodes: {} nodes added", allNodes);
-
- if (allLinks == null || allLinks.isEmpty()) {
- LOG.error("readMdSal: no links ");
- return false;
- }
- LOG.info("readMdSal: network links: {} links added", allLinks.size());
- LOG.debug("readMdSal: network links: {} links added", allLinks);
-
- return true;
+ return nw;
}
private boolean analyzeNw() {
LOG.debug("analyzeNw: allNodes size {}, allLinks size {}", allNodes.size(), allLinks.size());
- if (StringConstants.SERVICE_TYPE_100GE.equals(serviceType)
+ if (StringConstants.SERVICE_TYPE_100GE_T.equals(serviceType)
|| StringConstants.SERVICE_TYPE_OTU4.equals(serviceType)
- || StringConstants.SERVICE_TYPE_400GE.equals(serviceType)) {
+ || StringConstants.SERVICE_TYPE_400GE.equals(serviceType)
+ || StringConstants.SERVICE_TYPE_OTUC4.equals(serviceType)) {
// 100GE service and OTU4 service are handled at the openroadm-topology layer
for (Node node : allNodes) {
validateNode(node);
return false;
}
- if (StringConstants.SERVICE_TYPE_100GE.equals(serviceType)
- || StringConstants.SERVICE_TYPE_OTU4.equals(serviceType)
- || StringConstants.SERVICE_TYPE_400GE.equals(serviceType)) {
- // 100GE or 400GE or OTU4 services are handled at WDM Layer
- PceLink pcelink = new PceLink(link, source, dest);
- if (!pcelink.isValid()) {
- dropOppositeLink(link);
- LOG.error(" validateLink: Link is ignored due errors in network data or in opposite link");
- return false;
- }
- LinkId linkId = pcelink.getLinkId();
- if (validateLinkConstraints(pcelink).equals(ConstraintTypes.HARD_EXCLUDE)) {
- dropOppositeLink(link);
- LOG.debug("validateLink: constraints : link is ignored == {}", linkId.getValue());
- return false;
- }
- switch (pcelink.getlinkType()) {
- case ROADMTOROADM:
- case EXPRESSLINK:
- allPceLinks.put(linkId, pcelink);
- source.addOutgoingLink(pcelink);
- LOG.debug("validateLink: {}-LINK added to allPceLinks {}",
- pcelink.getlinkType(), pcelink);
- break;
- case ADDLINK:
- pcelink.setClient(source.getRdmSrgClient(pcelink.getSourceTP().toString()));
- addLinks.add(pcelink);
- LOG.debug("validateLink: ADD-LINK saved {}", pcelink);
- break;
- case DROPLINK:
- pcelink.setClient(dest.getRdmSrgClient(pcelink.getDestTP().toString()));
- dropLinks.add(pcelink);
- LOG.debug("validateLink: DROP-LINK saved {}", pcelink);
- break;
- case XPONDERINPUT:
- // store separately all SRG links directly
- azSrgs.add(sourceId);
- // connected to A/Z
- if (!dest.checkTP(pcelink.getDestTP().toString())) {
- LOG.debug(
- "validateLink: XPONDER-INPUT is rejected as NW port is busy - {} ", pcelink);
- return false;
- }
- if (dest.getXpdrClient(pcelink.getDestTP().toString()) != null) {
- pcelink.setClient(dest.getXpdrClient(pcelink.getDestTP().toString()));
- }
- allPceLinks.put(linkId, pcelink);
- source.addOutgoingLink(pcelink);
- LOG.debug("validateLink: XPONDER-INPUT link added to allPceLinks {}", pcelink);
- break;
- // does it mean XPONDER==>>SRG ?
- case XPONDEROUTPUT:
- // store separately all SRG links directly
- azSrgs.add(destId);
- // connected to A/Z
- if (!source.checkTP(pcelink.getSourceTP().toString())) {
- LOG.debug(
- "validateLink: XPONDER-OUTPUT is rejected as NW port is busy - {} ", pcelink);
- return false;
- }
- if (source.getXpdrClient(pcelink.getSourceTP().toString()) != null) {
- pcelink.setClient(source.getXpdrClient(pcelink.getSourceTP().toString()));
- }
- allPceLinks.put(linkId, pcelink);
- source.addOutgoingLink(pcelink);
- LOG.debug("validateLink: XPONDER-OUTPUT link added to allPceLinks {}", pcelink);
- break;
- default:
- LOG.warn("validateLink: link type is not supported {}", pcelink);
- }
- return true;
-
- } else if ((StringConstants.SERVICE_TYPE_ODU4.equals(serviceType))
- || (StringConstants.SERVICE_TYPE_10GE.equals(serviceType))
- || (StringConstants.SERVICE_TYPE_1GE.equals(serviceType))) {
- // ODU4, 1GE and 10GE services relying on ODU2, ODU2e or ODU0 services are handled at OTN layer
- PceLink pceOtnLink = new PceLink(link, source, dest);
-
- if (!pceOtnLink.isOtnValid(link, serviceType)) {
- dropOppositeLink(link);
- LOG.error(" validateLink: Link is ignored due errors in network data or in opposite link");
- return false;
- }
-
- LinkId linkId = pceOtnLink.getLinkId();
- if (validateLinkConstraints(pceOtnLink).equals(ConstraintTypes.HARD_EXCLUDE)) {
- dropOppositeLink(link);
- LOG.debug("validateLink: constraints : link is ignored == {}", linkId.getValue());
+ switch (serviceType) {
+ case StringConstants.SERVICE_TYPE_100GE_T:
+ case StringConstants.SERVICE_TYPE_OTU4:
+ case StringConstants.SERVICE_TYPE_OTUC4:
+ case StringConstants.SERVICE_TYPE_400GE:
+ return processPceLink(link, sourceId, destId, source, dest);
+ case StringConstants.SERVICE_TYPE_ODU4:
+ case StringConstants.SERVICE_TYPE_10GE:
+ case StringConstants.SERVICE_TYPE_100GE_M:
+ case StringConstants.SERVICE_TYPE_ODUC4:
+ case StringConstants.SERVICE_TYPE_1GE:
+ return processPceOtnLink(link, source, dest);
+ default:
+ LOG.error(" validateLink: Unmanaged service type {}", serviceType);
return false;
- }
-
- switch (pceOtnLink.getlinkType()) {
- case OTNLINK:
- if (dest.getXpdrClient(pceOtnLink.getDestTP().toString()) != null) {
- pceOtnLink.setClient(dest.getXpdrClient(pceOtnLink.getDestTP().toString()));
- }
-
- allPceLinks.put(linkId, pceOtnLink);
- source.addOutgoingLink(pceOtnLink);
- LOG.info("validateLink: OTN-LINK added to allPceLinks {}", pceOtnLink);
- break;
- default:
- LOG.warn("validateLink: link type is not supported {}", pceOtnLink);
- }
- return true;
-
- } else {
- LOG.error(" validateLink: Unmanaged service type {}", serviceType);
- return false;
}
-
}
private void validateNode(Node node) {
return true;
}
+ private boolean processPceLink(Link link, NodeId sourceId, NodeId destId, PceNode source, PceNode dest) {
+ PceLink pcelink = new PceLink(link, source, dest);
+ if (!pcelink.isValid()) {
+ dropOppositeLink(link);
+ LOG.error(" validateLink: Link is ignored due errors in network data or in opposite link");
+ return false;
+ }
+ LinkId linkId = pcelink.getLinkId();
+ if (validateLinkConstraints(pcelink).equals(ConstraintTypes.HARD_EXCLUDE)) {
+ dropOppositeLink(link);
+ LOG.debug("validateLink: constraints : link is ignored == {}", linkId.getValue());
+ return false;
+ }
+ switch (pcelink.getlinkType()) {
+ case ROADMTOROADM:
+ case EXPRESSLINK:
+ allPceLinks.put(linkId, pcelink);
+ source.addOutgoingLink(pcelink);
+ LOG.debug("validateLink: {}-LINK added to allPceLinks {}",
+ pcelink.getlinkType(), pcelink);
+ break;
+ case ADDLINK:
+ pcelink.setClient(source.getRdmSrgClient(pcelink.getSourceTP().toString()));
+ addLinks.add(pcelink);
+ LOG.debug("validateLink: ADD-LINK saved {}", pcelink);
+ break;
+ case DROPLINK:
+ pcelink.setClient(dest.getRdmSrgClient(pcelink.getDestTP().toString()));
+ dropLinks.add(pcelink);
+ LOG.debug("validateLink: DROP-LINK saved {}", pcelink);
+ break;
+ case XPONDERINPUT:
+ // store separately all SRG links directly
+ azSrgs.add(sourceId);
+ // connected to A/Z
+ if (!dest.checkTP(pcelink.getDestTP().toString())) {
+ LOG.debug(
+ "validateLink: XPONDER-INPUT is rejected as NW port is busy - {} ", pcelink);
+ return false;
+ }
+ if (dest.getXpdrClient(pcelink.getDestTP().toString()) != null) {
+ pcelink.setClient(dest.getXpdrClient(pcelink.getDestTP().toString()));
+ }
+ allPceLinks.put(linkId, pcelink);
+ source.addOutgoingLink(pcelink);
+ LOG.debug("validateLink: XPONDER-INPUT link added to allPceLinks {}", pcelink);
+ break;
+ // does it mean XPONDER==>>SRG ?
+ case XPONDEROUTPUT:
+ // store separately all SRG links directly
+ azSrgs.add(destId);
+ // connected to A/Z
+ if (!source.checkTP(pcelink.getSourceTP().toString())) {
+ LOG.debug(
+ "validateLink: XPONDER-OUTPUT is rejected as NW port is busy - {} ", pcelink);
+ return false;
+ }
+ if (source.getXpdrClient(pcelink.getSourceTP().toString()) != null) {
+ pcelink.setClient(source.getXpdrClient(pcelink.getSourceTP().toString()));
+ }
+ allPceLinks.put(linkId, pcelink);
+ source.addOutgoingLink(pcelink);
+ LOG.debug("validateLink: XPONDER-OUTPUT link added to allPceLinks {}", pcelink);
+ break;
+ default:
+ LOG.warn("validateLink: link type is not supported {}", pcelink);
+ }
+ return true;
+ }
+
+ private boolean processPceOtnLink(Link link, PceNode source, PceNode dest) {
+ PceLink pceOtnLink = new PceLink(link, source, dest);
+
+ if (!pceOtnLink.isOtnValid(link, serviceType)) {
+ dropOppositeLink(link);
+ LOG.error(" validateLink: Link is ignored due errors in network data or in opposite link");
+ return false;
+ }
+
+ LinkId linkId = pceOtnLink.getLinkId();
+ if (validateLinkConstraints(pceOtnLink).equals(ConstraintTypes.HARD_EXCLUDE)) {
+ dropOppositeLink(link);
+ LOG.debug("validateLink: constraints : link is ignored == {}", linkId.getValue());
+ return false;
+ }
+
+ switch (pceOtnLink.getlinkType()) {
+ case OTNLINK:
+ if (dest.getXpdrClient(pceOtnLink.getDestTP().toString()) != null) {
+ pceOtnLink.setClient(dest.getXpdrClient(pceOtnLink.getDestTP().toString()));
+ }
+
+ allPceLinks.put(linkId, pceOtnLink);
+ source.addOutgoingLink(pceOtnLink);
+ LOG.info("validateLink: OTN-LINK added to allPceLinks {}", pceOtnLink);
+ break;
+ default:
+ LOG.warn("validateLink: link type is not supported {}", pceOtnLink);
+ }
+ return true;
+ }
+
public PceNode getaendPceNode() {
return aendPceNode;
}
long neededBW;
OtnLinkType neededType = null;
switch (serviceType) {
-
+ case "ODUC4":
+ if (this.usedBandwidth != 0L) {
+ return false;
+ }
+ neededBW = 400000L;
+ neededType = OtnLinkType.OTUC4;
+ break;
case "ODU4":
if (this.usedBandwidth != 0L) {
return false;
case "ODU1":
neededBW = 2500L;
break;
+ case "100GEm":
+ neededBW = 100000L;
+ neededType = OtnLinkType.ODUC4;
+ break;
case "10GE":
neededBW = 10000L;
neededType = OtnLinkType.ODTU4;
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.port.types.rev200327.IfOCH;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOTUCnODUCn;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOtsiOtsigroup;
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;
}
switch (this.serviceType) {
case "400GE":
- if (mapping.getSupportedInterfaceCapability().contains(IfOTUCnODUCn.class)) {
+ if (mapping.getSupportedInterfaceCapability().contains(IfOtsiOtsigroup.class)) {
return true;
} else {
return false;
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.common.types.rev200327.ODTUCnTs;
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.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.port.types.rev200327.IfOtsiOtsigroup;
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;
.TerminationPoint1.class);
//TODO many nested if-structures below, this needs to be reworked
if (OpenroadmTpType.XPONDERNETWORK.equals(ocnTp1.getTpType())
- && StringConstants.SERVICE_TYPE_ODU4.equals(this.otnServiceType)) {
+ && (StringConstants.SERVICE_TYPE_ODU4.equals(this.otnServiceType)
+ || StringConstants.SERVICE_TYPE_ODUC4.equals(this.otnServiceType))) {
TerminationPoint1 ontTp1;
if (tp.augmentation(TerminationPoint1.class) != null) {
ontTp1 = tp.augmentation(TerminationPoint1.class);
node.getNodeId().getValue());
}
} else if (OpenroadmTpType.XPONDERNETWORK.equals(ocnTp1.getTpType())
- && (this.otnServiceType.equals(StringConstants.SERVICE_TYPE_10GE)
+ && (StringConstants.SERVICE_TYPE_10GE.equals(this.otnServiceType)
+ || StringConstants.SERVICE_TYPE_100GE_M.equals(this.otnServiceType)
|| StringConstants.SERVICE_TYPE_1GE.equals(this.otnServiceType))) {
TerminationPoint1 ontTp1;
if (tp.augmentation(TerminationPoint1.class) != null) {
} else {
continue;
}
- if (StringConstants.SERVICE_TYPE_10GE.equals(otnServiceType)
- && checkOdtuTTPforLoOduCreation(ontTp1, 10)
- || StringConstants.SERVICE_TYPE_1GE.equals(otnServiceType)
- && checkOdtuTTPforLoOduCreation(ontTp1, 1)) {
+ if ((StringConstants.SERVICE_TYPE_10GE.equals(otnServiceType)
+ && checkOdtuTTPforLoOduCreation(ontTp1, 10))
+ || (StringConstants.SERVICE_TYPE_1GE.equals(otnServiceType)
+ && checkOdtuTTPforLoOduCreation(ontTp1, 1))
+ || (StringConstants.SERVICE_TYPE_100GE_M.equals(otnServiceType)
+ && checkOdtuTTPforLoOduCreation(ontTp1, 20))) {
LOG.info("TP {} of XPONDER {} is validated", tp.getTpId(), node.getNodeId().getValue());
this.availableXpdrNWTps.add(tp.getTpId());
} else {
} else if (StringConstants.SERVICE_TYPE_1GE.equals(otnServiceType)) {
LOG.error("TP {} of {} does not allow ODU0 termination creation", tp.getTpId().getValue(),
node.getNodeId().getValue());
+ } else if (StringConstants.SERVICE_TYPE_100GE_M.equals(otnServiceType)) {
+ LOG.error("TP {} of {} does not allow ODU4 termination creation", tp.getTpId().getValue(),
+ node.getNodeId().getValue());
} else {
LOG.error("TP {} of {} does not allow any termination creation", tp.getTpId().getValue(),
node.getNodeId().getValue());
}
} else if (OpenroadmTpType.XPONDERCLIENT.equals(ocnTp1.getTpType())
&& (StringConstants.SERVICE_TYPE_10GE.equals(this.otnServiceType)
- || StringConstants.SERVICE_TYPE_1GE.equals(this.otnServiceType))) {
+ || StringConstants.SERVICE_TYPE_100GE_M.equals(this.otnServiceType)
+ || StringConstants.SERVICE_TYPE_1GE.equals(this.otnServiceType))) {
TerminationPoint1 ontTp1;
if (tp.augmentation(TerminationPoint1.class) != null) {
ontTp1 = tp.augmentation(TerminationPoint1.class);
}
}
- if ((StringConstants.SERVICE_TYPE_ODU4.equals(this.otnServiceType) && mode.equals("AZ"))
+ if (((StringConstants.SERVICE_TYPE_ODU4.equals(this.otnServiceType)
+ || StringConstants.SERVICE_TYPE_ODUC4.equals(this.otnServiceType)) && mode.equals("AZ"))
|| ((StringConstants.SERVICE_TYPE_10GE.equals(this.otnServiceType)
+ || StringConstants.SERVICE_TYPE_100GE_M.equals(this.otnServiceType)
|| StringConstants.SERVICE_TYPE_1GE.equals(this.otnServiceType))
&& ((mode.equals("AZ") && checkSwPool(availableXpdrClientTps, availableXpdrNWTps, 1, 1))
|| (mode.equals("intermediate") && checkSwPool(null, availableXpdrNWTps, 0, 2)))
private boolean checkTpForOdtuTermination(TerminationPoint1 ontTp1) {
for (SupportedInterfaceCapability sic : ontTp1.getTpSupportedInterfaces().getSupportedInterfaceCapability()
.values()) {
- LOG.debug("in checkTpForOduTermination - sic = {}", sic.getIfCapType());
- if (sic.getIfCapType().equals(IfOCHOTU4ODU4.class)
- && ontTp1.getXpdrTpPortConnectionAttributes().getTsPool() == null) {
+ LOG.info("in checkTpForOduTermination - sic = {}", sic.getIfCapType());
+ if ((sic.getIfCapType().equals(IfOCHOTU4ODU4.class) || sic.getIfCapType().equals(IfOtsiOtsigroup.class))
+ && (ontTp1.getXpdrTpPortConnectionAttributes() == null
+ || ontTp1.getXpdrTpPortConnectionAttributes().getTsPool() == null)) {
return true;
}
}
if (ontTp1.getXpdrTpPortConnectionAttributes() != null
&& ontTp1.getXpdrTpPortConnectionAttributes().getTsPool() != null
&& ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool() != null
- && ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool().values()
+ && (ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool().values()
.stream().findFirst().get().getOdtuType()
.equals(ODTU4TsAllocated.class)
+ ||
+ ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool().values()
+ .stream().findFirst().get().getOdtuType()
+ .equals(ODTUCnTs.class))
&& !ontTp1.getXpdrTpPortConnectionAttributes().getOdtuTpnPool().values()
.stream().findFirst().get().getTpnPool().isEmpty()
&& (ontTp1.getXpdrTpPortConnectionAttributes().getTsPool().size() >= tsNb)) {
return true;
}
break;
- case StringConstants.SERVICE_TYPE_100GE:
+ case StringConstants.SERVICE_TYPE_100GE_T:
+ case StringConstants.SERVICE_TYPE_100GE_M:
if (sic.getIfCapType().equals(If100GEODU4.class)) {
return true;
}
.collect(Collectors.toList());
for (TerminationPoint tp : networkTpList) {
- if (tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getOdtuTpnPool() != null
- && tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getOdtuTpnPool()
- .values().stream().findFirst().get().getOdtuType().equals(ODTU4TsAllocated.class)) {
+ if (tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes() != null
+ && tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getOdtuTpnPool() != null
+ && (tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getOdtuTpnPool()
+ .values().stream().findFirst().get().getOdtuType().equals(ODTU4TsAllocated.class)
+ || tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getOdtuTpnPool()
+ .values().stream().findFirst().get().getOdtuType().equals(ODTUCnTs.class))) {
@Nullable
List<Uint16> tpnPool = tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes()
.getOdtuTpnPool().values().stream().findFirst().get().getTpnPool();
.collect(Collectors.toList());
for (TerminationPoint tp : networkTpList) {
- if (tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getTsPool() != null) {
+ if (tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes() != null
+ && tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes().getTsPool() != null) {
@Nullable
List<Uint16> tsPool = tp.augmentation(TerminationPoint1.class).getXpdrTpPortConnectionAttributes()
.getTsPool();
pceResult = new PceResult();
pceResult.setRC("200");
pceResult.setRate(Long.valueOf(1));
- pceResult.setServiceType(StringConstants.SERVICE_TYPE_100GE);
+ pceResult.setServiceType(StringConstants.SERVICE_TYPE_100GE_T);
Map<LinkId, PceLink> map = Map.of(new LinkId("OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1"), pceLink);
pcePathDescription = new PcePathDescription(List.of(pceLink),
map, pceResult);
package org.opendaylight.transportpce.pce;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.transportpce.pce.utils.PceTestData;
import org.opendaylight.transportpce.pce.utils.PceTestUtils;
import org.opendaylight.transportpce.test.AbstractTest;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.MappingBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfo;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfoBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
@RunWith(MockitoJUnitRunner.class)
private PceSendingPceRPCs pceSendingPceRPCs;
private NetworkTransactionImpl networkTransaction;
+ private Mapping mapping;
@Mock
private YangParserFactory yangParserFactory;
@Mock
"mylogin", "mypassword", getDataStoreContextUtil().getBindingDOMCodecServices());
pceSendingPceRPCs = new PceSendingPceRPCs(PceTestData.getPCE_test1_request_54(),
networkTransaction, gnpyConsumer, portMapping);
+ mapping = new MappingBuilder().setLogicalConnectionPoint("logicalConnectionPoint").setPortQual("xpdr-client")
+ .build();
+ NodeInfo info = new NodeInfoBuilder().setNodeType(NodeTypes.Xpdr).build();
+ Nodes node = new NodesBuilder().withKey(new NodesKey("node")).setNodeId("node").setNodeInfo(info).build();
+ when(portMapping.getMapping(anyString(), anyString())).thenReturn(mapping);
+ when(portMapping.getNode(anyString())).thenReturn(node);
}
@Test
pceSendingPceRPCs =
new PceSendingPceRPCs(PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"),
networkTransaction, gnpyConsumer, portMapping);
-
+ when(portMapping.getMapping(anyString(), anyString())).thenReturn(mapping);
pceSendingPceRPCs.pathComputation();
Assert.assertTrue(gnpyConsumer.isAvailable());
jerseyServer.tearDown();
pceGraph = new PceGraph(pceOpticalNode, pceOpticalNode2, allPceNodes,
pceHardConstraints,
null, rc,
- StringConstants.SERVICE_TYPE_100GE);
+ StringConstants.SERVICE_TYPE_100GE_T);
Assert.assertEquals(pceGraph.calcPath(), false);
}
*/
package org.opendaylight.transportpce.pce.networkanalyzer;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
import java.util.concurrent.ExecutionException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.transportpce.common.StringConstants;
+import org.opendaylight.transportpce.common.mapping.PortMapping;
import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
import org.opendaylight.transportpce.common.network.RequestProcessor;
import org.opendaylight.transportpce.pce.constraints.PceConstraintsCalc;
import org.opendaylight.transportpce.pce.utils.TransactionUtils;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
-
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.MappingBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfo;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfoBuilder;
+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.NodeTypes;
+
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class PceCalculationTest extends AbstractTest {
private PceCalculation pceCalculation;
private PceConstraintsCalc pceConstraintsCalc;
private PceResult pceResult = new PceResult();
+ private Mapping mapping;
+
+ @Mock
+ private PortMapping portMapping;
// setup object
@Before
pceResult.setRC("200");
PceTestUtils.writeNetworkIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
TransactionUtils.getNetworkForSpanLoss());
-
pceConstraintsCalc = new PceConstraintsCalc(PceTestData.getPCERequest(),
new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())));
-
- pceCalculation = new PceCalculation(
- PceTestData.getPCERequest(),
- new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())),
- pceConstraintsCalc.getPceHardConstraints(),
- pceConstraintsCalc.getPceSoftConstraints(),
- pceResult,
- null);
+ mapping = new MappingBuilder().setLogicalConnectionPoint("logicalConnectionPoint").setPortQual("xpdr-client")
+ .build();
+ NodeInfo info = new NodeInfoBuilder().setNodeType(NodeTypes.Xpdr).build();
+ Nodes node = new NodesBuilder().withKey(new NodesKey("node")).setNodeId("node").setNodeInfo(info).build();
+ when(portMapping.getMapping(anyString(), anyString())).thenReturn(mapping);
+ when(portMapping.getNode(anyString())).thenReturn(node);
}
@Test
public void testPceCalculationValues() {
-
+ pceCalculation = new PceCalculation(
+ PceTestData.getPCERequest(),
+ new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())),
+ pceConstraintsCalc.getPceHardConstraints(),
+ pceConstraintsCalc.getPceSoftConstraints(),
+ pceResult,
+ portMapping);
pceCalculation.retrievePceNetwork();
- Assert.assertEquals(StringConstants.SERVICE_TYPE_100GE, pceCalculation.getServiceType());
+ Assert.assertEquals(StringConstants.SERVICE_TYPE_100GE_T, pceCalculation.getServiceType());
Assert.assertNotNull(pceCalculation.getReturnStructure());
Assert.assertNull(pceCalculation.getaendPceNode());
@Test
public void testPceCalculationValues2() {
-
pceCalculation = new PceCalculation(
PceTestData.getPathComputationRequestInputWithCoRoutingOrGeneral(),
new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())),
pceConstraintsCalc.getPceHardConstraints(),
pceConstraintsCalc.getPceSoftConstraints(),
- pceResult, null);
+ pceResult, portMapping);
pceCalculation.retrievePceNetwork();
- Assert.assertEquals(StringConstants.SERVICE_TYPE_100GE, pceCalculation.getServiceType());
+ Assert.assertEquals(StringConstants.SERVICE_TYPE_100GE_T, pceCalculation.getServiceType());
Assert.assertNotNull(pceCalculation.getReturnStructure());
Assert.assertNull(pceCalculation.getaendPceNode());
@Test
public void testPceCalculationValues42() {
-
PathComputationRequestInput input = PceTestData.getPathComputationRequestInputWithCoRoutingOrGeneral2();
pceConstraintsCalc = new PceConstraintsCalc(input,
new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())));
-
pceCalculation = new PceCalculation(
PceTestData.getPCE_test3_request_54(),
new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())),
pceConstraintsCalc.getPceHardConstraints(),
pceConstraintsCalc.getPceSoftConstraints(),
- pceResult, null);
-
+ pceResult, portMapping);
pceCalculation.retrievePceNetwork();
-// Assert.assertEquals(StringConstants.SERVICE_TYPE_100GE, pceCalculation.getServiceType());
+ Assert.assertEquals(StringConstants.SERVICE_TYPE_100GE_T, pceCalculation.getServiceType());
Assert.assertNotNull(pceCalculation.getReturnStructure());
Assert.assertNull(pceCalculation.getaendPceNode());
@Test
public void testIsPceOtnNodeValidNode() {
pceOtnNode = new PceOtnNode(node, OpenroadmNodeType.DEGREE,
- new NodeId("optical"), ServiceFormat.OMS.getName(), StringConstants.SERVICE_TYPE_100GE);
+ new NodeId("optical"), ServiceFormat.OMS.getName(), StringConstants.SERVICE_TYPE_100GE_M);
pceOtnNode.initXndrTps("AZ");
pceOtnNode.checkAvailableTribPort();
pceOtnNode.checkAvailableTribSlot();
@Test
public void testIsPceOtnNodeValidNodeTypeNull() {
pceOtnNode = new PceOtnNode(node, null,
- new NodeId("optical"), ServiceFormat.OMS.getName(), StringConstants.SERVICE_TYPE_100GE);
+ new NodeId("optical"), ServiceFormat.OMS.getName(), StringConstants.SERVICE_TYPE_100GE_M);
pceOtnNode.initXndrTps("AZ");
pceOtnNode.checkAvailableTribPort();
pceOtnNode.checkAvailableTribSlot();
@Test
public void testIsPceOtnNodeValidNodeTypeDeg() {
pceOtnNode = new PceOtnNode(node, OpenroadmNodeType.DEGREE,
- new NodeId("optical"), ServiceFormat.OMS.getName(), StringConstants.SERVICE_TYPE_100GE);
+ new NodeId("optical"), ServiceFormat.OMS.getName(), StringConstants.SERVICE_TYPE_100GE_M);
pceOtnNode.initXndrTps("AZ");
Assert.assertFalse("not valid node , its type isn't one of MUXPDR or SWITCH or TPDR" ,
pceOtnNode.isPceOtnNodeValid(pceOtnNode));
ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
.setRequestId("request 1")
.build();
+
ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
- .setServiceRate(Uint32.valueOf(0))
+ .setServiceRate(Uint32.valueOf(100))
+ .setServiceFormat(ServiceFormat.Ethernet)
.setNodeId("XPONDER-1-2")
.build();
ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
.setServiceRate(Uint32.valueOf(0))
+ .setServiceFormat(ServiceFormat.Ethernet)
.setNodeId("XPONDER-3-2")
.build();
PathComputationRequestInput input = new PathComputationRequestInputBuilder()
--- /dev/null
+{
+ "network": [
+ {
+ "network-id": "otn-topology",
+ "network-types": {
+ "org-openroadm-common-network:openroadm-common-network": {}
+ },
+ "node": [
+ {
+ "node-id": "XPDR-A2-XPDR1",
+ "org-openroadm-common-network:node-type": "TPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 1
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-400GE"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR1",
+ "tp-ref": "XPDR1-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-A2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR1"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-C2-XPDR1",
+ "org-openroadm-common-network:node-type": "TPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 1
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-400GE"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR1",
+ "tp-ref": "XPDR1-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-C2"
+ },
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR1"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-A2-XPDR2",
+ "org-openroadm-common-network:node-type": "MUXPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 2
+ },
+ "org-openroadm-otn-network-topology:switching-pools": {
+ "odu-switching-pools": [
+ {
+ "switching-pool-number": 1,
+ "switching-pool-type": "non-blocking",
+ "non-blocking-list": [
+ {
+ "nbl-number": 1,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-NETWORK1",
+ "XPDR2-CLIENT1"
+ ],
+ "available-interconnect-bandwidth": 10
+ },
+ {
+ "nbl-number": 2,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-CLIENT2",
+ "XPDR2-NETWORK1"
+ ],
+ "available-interconnect-bandwidth": 10
+ }
+ ]
+ }
+ ]
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR2-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR2",
+ "tp-ref": "XPDR2-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT2",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-A2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR2"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-C2-XPDR2",
+ "org-openroadm-common-network:node-type": "MUXPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 2
+ },
+ "org-openroadm-otn-network-topology:switching-pools": {
+ "odu-switching-pools": [
+ {
+ "switching-pool-number": 1,
+ "switching-pool-type": "non-blocking",
+ "non-blocking-list": [
+ {
+ "nbl-number": 1,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-NETWORK1",
+ "XPDR2-CLIENT1"
+ ],
+ "available-interconnect-bandwidth": 10
+ },
+ {
+ "nbl-number": 2,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-CLIENT2",
+ "XPDR2-NETWORK1"
+ ],
+ "available-interconnect-bandwidth": 10
+ }
+ ]
+ }
+ ]
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR2-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR2",
+ "tp-ref": "XPDR2-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT2",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-C2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR2"
+ },
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
--- /dev/null
+{
+ "network": [
+ {
+ "network-id": "otn-topology",
+ "network-types": {
+ "org-openroadm-common-network:openroadm-common-network": {}
+ },
+ "node": [
+ {
+ "node-id": "XPDR-A2-XPDR1",
+ "org-openroadm-common-network:node-type": "TPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 1
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-400GE"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR1",
+ "tp-ref": "XPDR1-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-A2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR1"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-C2-XPDR1",
+ "org-openroadm-common-network:node-type": "TPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 1
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-400GE"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR1",
+ "tp-ref": "XPDR1-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-C2"
+ },
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR1"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-A2-XPDR2",
+ "org-openroadm-common-network:node-type": "MUXPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 2
+ },
+ "org-openroadm-otn-network-topology:switching-pools": {
+ "odu-switching-pools": [
+ {
+ "switching-pool-number": 1,
+ "switching-pool-type": "non-blocking",
+ "non-blocking-list": [
+ {
+ "nbl-number": 1,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-NETWORK1",
+ "XPDR2-CLIENT1"
+ ],
+ "available-interconnect-bandwidth": 10
+ },
+ {
+ "nbl-number": 2,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-CLIENT2",
+ "XPDR2-NETWORK1"
+ ],
+ "available-interconnect-bandwidth": 10
+ }
+ ]
+ }
+ ]
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR2-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR2",
+ "tp-ref": "XPDR2-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODUCn",
+ "ts-pool": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 15,
+ 16,
+ 13,
+ 14,
+ 19,
+ 20,
+ 17,
+ 18,
+ 11,
+ 12,
+ 31,
+ 32,
+ 29,
+ 30,
+ 35,
+ 36,
+ 33,
+ 34,
+ 23,
+ 24,
+ 21,
+ 22,
+ 27,
+ 28,
+ 25,
+ 26,
+ 47,
+ 48,
+ 45,
+ 46,
+ 51,
+ 52,
+ 49,
+ 50,
+ 39,
+ 40,
+ 37,
+ 38,
+ 43,
+ 44,
+ 41,
+ 42,
+ 63,
+ 64,
+ 61,
+ 62,
+ 67,
+ 68,
+ 65,
+ 66,
+ 55,
+ 56,
+ 53,
+ 54,
+ 59,
+ 60,
+ 57,
+ 58,
+ 79,
+ 80,
+ 77,
+ 78,
+ 71,
+ 72,
+ 69,
+ 70,
+ 75,
+ 76,
+ 73,
+ 74
+ ],
+ "odtu-tpn-pool": [
+ {
+ "odtu-type": "org-openroadm-otn-common-types:ODTUCn.ts",
+ "tpn-pool": [
+ 1,
+ 3,
+ 2,
+ 4
+ ]
+ }
+ ]
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT2",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-A2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR2"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-C2-XPDR2",
+ "org-openroadm-common-network:node-type": "MUXPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 2
+ },
+ "org-openroadm-otn-network-topology:switching-pools": {
+ "odu-switching-pools": [
+ {
+ "switching-pool-number": 1,
+ "switching-pool-type": "non-blocking",
+ "non-blocking-list": [
+ {
+ "nbl-number": 1,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-NETWORK1",
+ "XPDR2-CLIENT1"
+ ],
+ "available-interconnect-bandwidth": 10
+ },
+ {
+ "nbl-number": 2,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-CLIENT2",
+ "XPDR2-NETWORK1"
+ ],
+ "available-interconnect-bandwidth": 10
+ }
+ ]
+ }
+ ]
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR2-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR2",
+ "tp-ref": "XPDR2-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODUCn",
+ "ts-pool": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 15,
+ 16,
+ 13,
+ 14,
+ 19,
+ 20,
+ 17,
+ 18,
+ 11,
+ 12,
+ 31,
+ 32,
+ 29,
+ 30,
+ 35,
+ 36,
+ 33,
+ 34,
+ 23,
+ 24,
+ 21,
+ 22,
+ 27,
+ 28,
+ 25,
+ 26,
+ 47,
+ 48,
+ 45,
+ 46,
+ 51,
+ 52,
+ 49,
+ 50,
+ 39,
+ 40,
+ 37,
+ 38,
+ 43,
+ 44,
+ 41,
+ 42,
+ 63,
+ 64,
+ 61,
+ 62,
+ 67,
+ 68,
+ 65,
+ 66,
+ 55,
+ 56,
+ 53,
+ 54,
+ 59,
+ 60,
+ 57,
+ 58,
+ 79,
+ 80,
+ 77,
+ 78,
+ 71,
+ 72,
+ 69,
+ 70,
+ 75,
+ 76,
+ 73,
+ 74
+ ],
+ "odtu-tpn-pool": [
+ {
+ "odtu-type": "org-openroadm-otn-common-types:ODTUCn.ts",
+ "tpn-pool": [
+ 1,
+ 3,
+ 2,
+ 4
+ ]
+ }
+ ]
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT2",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-C2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR2"
+ },
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ }
+ ]
+ }
+ ],
+ "ietf-network-topology:link": [
+ {
+ "link-id": "OTUC4-XPDR-A2-XPDR2-XPDR2-NETWORK1toXPDR-C2-XPDR2-XPDR2-NETWORK1",
+ "source": {
+ "source-node": "XPDR-A2-XPDR2",
+ "source-tp": "XPDR2-NETWORK1"
+ },
+ "destination": {
+ "dest-node": "XPDR-C2-XPDR2",
+ "dest-tp": "XPDR2-NETWORK1"
+ },
+ "org-openroadm-otn-network-topology:available-bandwidth": "0",
+ "org-openroadm-otn-network-topology:used-bandwidth": "400000",
+ "org-openroadm-common-network:link-type": "OTN-LINK",
+ "transportpce-topology:otn-link-type": "OTUC4",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:opposite-link": "OTUC4-XPDR-C2-XPDR2-XPDR2-NETWORK1toXPDR-A2-XPDR2-XPDR2-NETWORK1"
+ },
+ {
+ "link-id": "OTUC4-XPDR-C2-XPDR2-XPDR2-NETWORK1toXPDR-A2-XPDR2-XPDR2-NETWORK1",
+ "source": {
+ "source-node": "XPDR-C2-XPDR2",
+ "source-tp": "XPDR2-NETWORK1"
+ },
+ "destination": {
+ "dest-node": "XPDR-A2-XPDR2",
+ "dest-tp": "XPDR2-NETWORK1"
+ },
+ "org-openroadm-otn-network-topology:available-bandwidth": "0",
+ "org-openroadm-otn-network-topology:used-bandwidth": "400000",
+ "org-openroadm-common-network:link-type": "OTN-LINK",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "transportpce-topology:otn-link-type": "OTUC4",
+ "org-openroadm-common-network:opposite-link": "OTUC4-XPDR-A2-XPDR2-XPDR2-NETWORK1toXPDR-C2-XPDR2-XPDR2-NETWORK1"
+ },
+ {
+ "link-id": "ODUC4-XPDR-A2-XPDR2-XPDR2-NETWORK1toXPDR-C2-XPDR2-XPDR2-NETWORK1",
+ "source": {
+ "source-node": "XPDR-A2-XPDR2",
+ "source-tp": "XPDR2-NETWORK1"
+ },
+ "destination": {
+ "dest-node": "XPDR-C2-XPDR2",
+ "dest-tp": "XPDR2-NETWORK1"
+ },
+ "org-openroadm-otn-network-topology:available-bandwidth": "400000",
+ "org-openroadm-otn-network-topology:used-bandwidth": "0",
+ "org-openroadm-common-network:link-type": "OTN-LINK",
+ "transportpce-topology:otn-link-type": "ODUC4",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ODUC4-XPDR-C2-XPDR2-XPDR2-NETWORK1toXPDR-A2-XPDR2-XPDR2-NETWORK1"
+ },
+ {
+ "link-id": "ODUC4-XPDR-C2-XPDR2-XPDR2-NETWORK1toXPDR-A2-XPDR2-XPDR2-NETWORK1",
+ "source": {
+ "source-node": "XPDR-C2-XPDR2",
+ "source-tp": "XPDR2-NETWORK1"
+ },
+ "destination": {
+ "dest-node": "XPDR-A2-XPDR2",
+ "dest-tp": "XPDR2-NETWORK1"
+ },
+ "org-openroadm-otn-network-topology:available-bandwidth": "400000",
+ "org-openroadm-otn-network-topology:used-bandwidth": "0",
+ "org-openroadm-common-network:link-type": "OTN-LINK",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "transportpce-topology:otn-link-type": "ODUC4",
+ "org-openroadm-common-network:opposite-link": "ODUC4-XPDR-A2-XPDR2-XPDR2-NETWORK1toXPDR-C2-XPDR2-XPDR2-NETWORK1"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "network": [
+ {
+ "network-id": "otn-topology",
+ "network-types": {
+ "org-openroadm-common-network:openroadm-common-network": {}
+ },
+ "node": [
+ {
+ "node-id": "XPDR-A2-XPDR1",
+ "org-openroadm-common-network:node-type": "TPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 1
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-400GE"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR1",
+ "tp-ref": "XPDR1-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-A2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR1"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-C2-XPDR1",
+ "org-openroadm-common-network:node-type": "TPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 1
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-400GE"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR1",
+ "tp-ref": "XPDR1-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-C2"
+ },
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR1"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-A2-XPDR2",
+ "org-openroadm-common-network:node-type": "MUXPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 2
+ },
+ "org-openroadm-otn-network-topology:switching-pools": {
+ "odu-switching-pools": [
+ {
+ "switching-pool-number": 1,
+ "switching-pool-type": "non-blocking",
+ "non-blocking-list": [
+ {
+ "nbl-number": 1,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-NETWORK1",
+ "XPDR2-CLIENT1"
+ ],
+ "available-interconnect-bandwidth": 10
+ },
+ {
+ "nbl-number": 2,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-CLIENT2",
+ "XPDR2-NETWORK1"
+ ],
+ "available-interconnect-bandwidth": 10
+ }
+ ]
+ }
+ ]
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR2-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR2",
+ "tp-ref": "XPDR2-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT2",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-A2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-A2-XPDR2"
+ }
+ ]
+ },
+ {
+ "node-id": "XPDR-C2-XPDR2",
+ "org-openroadm-common-network:node-type": "MUXPDR",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-otn-network-topology:xpdr-attributes": {
+ "xpdr-number": 2
+ },
+ "org-openroadm-otn-network-topology:switching-pools": {
+ "odu-switching-pools": [
+ {
+ "switching-pool-number": 1,
+ "switching-pool-type": "non-blocking",
+ "non-blocking-list": [
+ {
+ "nbl-number": 1,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-NETWORK1",
+ "XPDR2-CLIENT1"
+ ],
+ "available-interconnect-bandwidth": 10
+ },
+ {
+ "nbl-number": 2,
+ "interconnect-bandwidth-unit": 1000000000,
+ "tp-list": [
+ "XPDR2-CLIENT2",
+ "XPDR2-NETWORK1"
+ ],
+ "available-interconnect-bandwidth": 10
+ }
+ ]
+ }
+ ]
+ },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR2-NETWORK1",
+ "supporting-termination-point": [
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR2",
+ "tp-ref": "XPDR2-NETWORK1"
+ }
+ ],
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-otsi-otsigroup"
+ }
+ ]
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT1",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ },
+ {
+ "tp-id": "XPDR2-CLIENT2",
+ "org-openroadm-otn-network-topology:tp-supported-interfaces": {
+ "supported-interface-capability": [
+ {
+ "if-cap-type": "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ },
+ {
+ "if-cap-type": "org-openroadm-port-types:if-100GE-ODU4"
+ }
+ ]
+ },
+ "org-openroadm-otn-network-topology:xpdr-tp-port-connection-attributes": {
+ "rate": "org-openroadm-otn-common-types:ODU4"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-C2"
+ },
+ {
+ "network-ref": "openroadm-topology",
+ "node-ref": "XPDR-C2-XPDR2"
+ },
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ }
+ ]
+ }
+ ],
+ "ietf-network-topology:link": [
+ {
+ "link-id": "OTUC4-XPDR-A2-XPDR2-XPDR2-NETWORK1toXPDR-C2-XPDR2-XPDR2-NETWORK1",
+ "source": {
+ "source-node": "XPDR-A2-XPDR2",
+ "source-tp": "XPDR2-NETWORK1"
+ },
+ "destination": {
+ "dest-node": "XPDR-C2-XPDR2",
+ "dest-tp": "XPDR2-NETWORK1"
+ },
+ "org-openroadm-otn-network-topology:available-bandwidth": "400000",
+ "org-openroadm-otn-network-topology:used-bandwidth": "0",
+ "org-openroadm-common-network:link-type": "OTN-LINK",
+ "transportpce-topology:otn-link-type": "OTUC4",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:opposite-link": "OTUC4-XPDR-C2-XPDR2-XPDR2-NETWORK1toXPDR-A2-XPDR2-XPDR2-NETWORK1"
+ },
+ {
+ "link-id": "OTUC4-XPDR-C2-XPDR2-XPDR2-NETWORK1toXPDR-A2-XPDR2-XPDR2-NETWORK1",
+ "source": {
+ "source-node": "XPDR-C2-XPDR2",
+ "source-tp": "XPDR2-NETWORK1"
+ },
+ "destination": {
+ "dest-node": "XPDR-A2-XPDR2",
+ "dest-tp": "XPDR2-NETWORK1"
+ },
+ "org-openroadm-otn-network-topology:available-bandwidth": "400000",
+ "org-openroadm-otn-network-topology:used-bandwidth": "0",
+ "org-openroadm-common-network:link-type": "OTN-LINK",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "transportpce-topology:otn-link-type": "OTUC4",
+ "org-openroadm-common-network:opposite-link": "OTUC4-XPDR-A2-XPDR2-XPDR2-NETWORK1toXPDR-C2-XPDR2-XPDR2-NETWORK1"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
"network": [
{
"network-id": "openroadm-topology",
- "ietf-network-topology:link": [
- {
- "link-id": "XPDR-C2-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP4-TXRX",
- "source": {
- "source-node": "XPDR-C2-XPDR1",
- "source-tp": "XPDR1-NETWORK1"
- },
- "org-openroadm-common-network:link-type": "XPONDER-OUTPUT",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-PP4-TXRXtoXPDR-C2-XPDR1-XPDR1-NETWORK1",
- "org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "SRG1-PP4-TXRX",
- "dest-node": "ROADM-C1-SRG1"
- }
- },
+ "network-types": {
+ "org-openroadm-common-network:openroadm-common-network": {}
+ },
+ "node": [
{
- "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX",
- "source": {
- "source-node": "ROADM-A1-DEG2",
- "source-tp": "DEG2-TTP-TXRX"
- },
- "org-openroadm-common-network:link-type": "ROADM-TO-ROADM",
+ "node-id": "ROADM-A1-SRG3",
+ "org-openroadm-common-network:node-type": "SRG",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "DEG1-TTP-TXRX",
- "dest-node": "ROADM-C1-DEG1"
- },
- "org-openroadm-network-topology:OMS-attributes": {
- "span": {
- "auto-spanloss": true,
- "spanloss-current": 12,
- "engineered-spanloss": 12.2,
- "spanloss-base": 11.4,
- "link-concatenation": [
- {
- "SRLG-Id": 0,
- "fiber-type": "smf",
- "pmd": 0.5,
- "SRLG-length": 100000
- }
- ]
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "SRG3-PP3-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG3-PP2-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG3-CP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-CP"
+ },
+ {
+ "tp-id": "SRG3-PP1-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG3-PP4-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
}
- }
- },
- {
- "link-id": "XPDR-C1-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP1-TXRX",
- "source": {
- "source-node": "XPDR-C1-XPDR1",
- "source-tp": "XPDR1-NETWORK1"
+ ],
+ "org-openroadm-network-topology:srg-attributes": {
+ "avail-freq-maps": [
+ {
+ "map-name": "cband",
+ "freq-map-granularity": 6.25,
+ "start-edge-freq": 191.325,
+ "effective-bits": 768,
+ "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
+ }
+ ]
},
- "org-openroadm-common-network:link-type": "XPONDER-OUTPUT",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-PP1-TXRXtoXPDR-C1-XPDR1-XPDR1-NETWORK1",
- "org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "SRG1-PP1-TXRX",
- "dest-node": "ROADM-C1-SRG1"
- }
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADM-A1"
+ }
+ ]
},
{
- "link-id": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX",
- "source": {
- "source-node": "ROADM-C1-DEG1",
- "source-tp": "DEG1-CTP-TXRX"
- },
- "org-openroadm-common-network:link-type": "DROP-LINK",
+ "node-id": "XPDR-A2-XPDR1",
+ "org-openroadm-common-network:node-type": "XPONDER",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "SRG1-CP-TXRX",
- "dest-node": "ROADM-C1-SRG1"
- }
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT",
+ "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "org-openroadm-network-topology:xpdr-network-attributes": {
+ "tail-equipment-id": "ROADM-A1-SRG1--SRG1-PP1-TXRX"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK",
+ "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-A2"
+ }
+ ]
},
{
- "link-id": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
- "source": {
- "source-node": "ROADM-A1-SRG3",
- "source-tp": "SRG3-CP-TXRX"
- },
- "org-openroadm-common-network:link-type": "ADD-LINK",
+ "node-id": "XPDR-C2-XPDR1",
+ "org-openroadm-common-network:node-type": "XPONDER",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "DEG1-CTP-TXRX",
- "dest-node": "ROADM-A1-DEG1"
- }
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR1-CLIENT1",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-CLIENT",
+ "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1"
+ },
+ {
+ "tp-id": "XPDR1-NETWORK1",
+ "org-openroadm-network-topology:xpdr-network-attributes": {
+ "tail-equipment-id": "ROADM-C1-SRG1--SRG1-PP1-TXRX"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK",
+ "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-C2"
+ },
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ }
+ ]
},
{
- "link-id": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
- "source": {
- "source-node": "ROADM-A1-SRG3",
- "source-tp": "SRG3-CP-TXRX"
- },
- "org-openroadm-common-network:link-type": "ADD-LINK",
+ "node-id": "XPDR-A2-XPDR2",
+ "org-openroadm-common-network:node-type": "XPONDER",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "DEG2-CTP-TXRX",
- "dest-node": "ROADM-A1-DEG2"
- }
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR2-NETWORK1",
+ "org-openroadm-network-topology:xpdr-network-attributes": {
+ "tail-equipment-id": "ROADM-A1-SRG1--SRG1-PP2-TXRX"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-A2"
+ }
+ ]
},
{
- "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX",
- "source": {
- "source-node": "ROADM-A1-DEG1",
- "source-tp": "DEG1-CTP-TXRX"
- },
- "org-openroadm-common-network:link-type": "DROP-LINK",
+ "node-id": "XPDR-C2-XPDR2",
+ "org-openroadm-common-network:node-type": "XPONDER",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "SRG3-CP-TXRX",
- "dest-node": "ROADM-A1-SRG3"
- }
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "XPDR2-NETWORK1",
+ "org-openroadm-network-topology:xpdr-network-attributes": {
+ "tail-equipment-id": "ROADM-C1-SRG1--SRG1-PP2-TXRX"
+ },
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
+ }
+ ],
+ "supporting-node": [
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "XPDR-C2"
+ },
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ }
+ ]
},
{
- "link-id": "ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1",
- "source": {
- "source-node": "ROADM-A1-SRG1",
- "source-tp": "SRG1-PP1-TXRX"
- },
- "org-openroadm-common-network:link-type": "XPONDER-INPUT",
+ "node-id": "ROADM-C1-SRG1",
+ "org-openroadm-common-network:node-type": "SRG",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "XPDR1-NETWORK1",
- "dest-node": "XPDR-A1-XPDR1"
- }
- },
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "SRG1-PP4-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP1-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP2-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP3-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-CP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-CP"
+ }
+ ],
+ "org-openroadm-network-topology:srg-attributes": {
+ "avail-freq-maps": [
+ {
+ "map-name": "cband",
+ "freq-map-granularity": 6.25,
+ "start-edge-freq": 191.325,
+ "effective-bits": 768,
+ "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
+ }
+ ]
+ },
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADM-C1"
+ }
+ ]
+ },
{
- "link-id": "ROADM-A1-SRG1-SRG1-PP4-TXRXtoXPDR-A2-XPDR1-XPDR1-NETWORK1",
- "source": {
- "source-node": "ROADM-A1-SRG1",
- "source-tp": "SRG1-PP4-TXRX"
+ "node-id": "ROADM-A1-SRG1",
+ "org-openroadm-common-network:node-type": "SRG",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "SRG1-PP4-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP1-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP2-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-PP3-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
+ },
+ {
+ "tp-id": "SRG1-CP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "SRG-TXRX-CP"
+ }
+ ],
+ "org-openroadm-network-topology:srg-attributes": {
+ "avail-freq-maps": [
+ {
+ "map-name": "cband",
+ "freq-map-granularity": 6.25,
+ "start-edge-freq": 191.325,
+ "effective-bits": 768,
+ "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
+ }
+ ]
},
- "org-openroadm-common-network:link-type": "XPONDER-INPUT",
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADM-A1"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADM-A1-DEG1",
+ "org-openroadm-common-network:node-type": "DEGREE",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "XPDR-A2-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP4-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "XPDR1-NETWORK1",
- "dest-node": "XPDR-A2-XPDR1"
- }
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG1-CTP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP"
+ },
+ {
+ "tp-id": "DEG1-TTP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP"
+ }
+ ],
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 1,
+ "avail-freq-maps": [
+ {
+ "map-name": "cband",
+ "freq-map-granularity": 6.25,
+ "start-edge-freq": 191.325,
+ "effective-bits": 768,
+ "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
+ }
+ ]
+ },
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADM-A1"
+ }
+ ]
},
{
- "link-id": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX",
- "source": {
- "source-node": "ROADM-C1-DEG1",
- "source-tp": "DEG1-TTP-TXRX"
+ "node-id": "ROADM-A1-DEG2",
+ "org-openroadm-common-network:node-type": "DEGREE",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG2-TTP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP"
+ },
+ {
+ "tp-id": "DEG2-CTP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP"
+ }
+ ],
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 2,
+ "avail-freq-maps": [
+ {
+ "map-name": "cband",
+ "freq-map-granularity": 6.25,
+ "start-edge-freq": 191.325,
+ "effective-bits": 768,
+ "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
+ }
+ ]
},
- "org-openroadm-common-network:link-type": "ROADM-TO-ROADM",
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeA"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADM-A1"
+ }
+ ]
+ },
+ {
+ "node-id": "ROADM-C1-DEG1",
+ "org-openroadm-common-network:node-type": "DEGREE",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "DEG2-TTP-TXRX",
- "dest-node": "ROADM-A1-DEG2"
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG1-CTP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP"
+ },
+ {
+ "tp-id": "DEG1-TTP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP"
+ }
+ ],
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 1,
+ "avail-freq-maps": [
+ {
+ "map-name": "cband",
+ "freq-map-granularity": 6.25,
+ "start-edge-freq": 191.325,
+ "effective-bits": 768,
+ "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
+ }
+ ]
},
- "org-openroadm-network-topology:OMS-attributes": {
- "span": {
- "auto-spanloss": true,
- "spanloss-current": 12,
- "engineered-spanloss": 12.2,
- "spanloss-base": 11.4,
- "link-concatenation": [
- {
- "SRLG-Id": 0,
- "fiber-type": "smf",
- "pmd": 0.5,
- "SRLG-length": 100000
- }
- ]
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADM-C1"
}
- }
+ ]
},
{
- "link-id": "ROADM-C1-SRG1-SRG1-PP4-TXRXtoXPDR-C2-XPDR1-XPDR1-NETWORK1",
+ "node-id": "ROADM-C1-DEG2",
+ "org-openroadm-common-network:node-type": "DEGREE",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "ietf-network-topology:termination-point": [
+ {
+ "tp-id": "DEG2-TTP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP"
+ },
+ {
+ "tp-id": "DEG2-CTP-TXRX",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP"
+ }
+ ],
+ "org-openroadm-network-topology:degree-attributes": {
+ "degree-number": 2,
+ "avail-freq-maps": [
+ {
+ "map-name": "cband",
+ "freq-map-granularity": 6.25,
+ "start-edge-freq": 191.325,
+ "effective-bits": 768,
+ "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
+ }
+ ]
+ },
+ "supporting-node": [
+ {
+ "network-ref": "clli-network",
+ "node-ref": "NodeC"
+ },
+ {
+ "network-ref": "openroadm-network",
+ "node-ref": "ROADM-C1"
+ }
+ ]
+ }
+ ],
+ "ietf-network-topology:link": [
+ {
+ "link-id": "ROADM-A1-SRG1-SRG1-PP2-TXRXtoXPDR-A2-XPDR2-XPDR2-NETWORK1",
"source": {
- "source-node": "ROADM-C1-SRG1",
- "source-tp": "SRG1-PP4-TXRX"
+ "source-node": "ROADM-A1-SRG1",
+ "source-tp": "SRG1-PP2-TXRX"
},
"org-openroadm-common-network:link-type": "XPONDER-INPUT",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "XPDR-C2-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP4-TXRX",
+ "org-openroadm-common-network:opposite-link": "XPDR-A2-XPDR2-XPDR2-NETWORK1toROADM-A1-SRG1-SRG1-PP2-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
- "dest-tp": "XPDR1-NETWORK1",
- "dest-node": "XPDR-C2-XPDR1"
+ "dest-tp": "XPDR2-NETWORK1",
+ "dest-node": "XPDR-A2-XPDR2"
}
},
{
- "link-id": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX",
+ "link-id": "ROADM-C1-SRG1-SRG1-PP2-TXRXtoXPDR-C2-XPDR2-XPDR2-NETWORK1",
"source": {
- "source-node": "ROADM-C1-DEG2",
- "source-tp": "DEG2-CTP-TXRX"
+ "source-node": "ROADM-C1-SRG1",
+ "source-tp": "SRG1-PP2-TXRX"
},
- "org-openroadm-common-network:link-type": "EXPRESS-LINK",
+ "org-openroadm-common-network:link-type": "XPONDER-INPUT",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX",
+ "org-openroadm-common-network:opposite-link": "XPDR-C2-XPDR2-XPDR2-NETWORK1toROADM-C1-SRG1-SRG1-PP2-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
- "dest-tp": "DEG1-CTP-TXRX",
- "dest-node": "ROADM-C1-DEG1"
+ "dest-tp": "XPDR2-NETWORK1",
+ "dest-node": "XPDR-C2-XPDR2"
}
},
{
- "link-id": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX",
+ "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX",
"source": {
- "source-node": "ROADM-C1-DEG2",
- "source-tp": "DEG2-CTP-TXRX"
+ "source-node": "ROADM-A1-DEG2",
+ "source-tp": "DEG2-TTP-TXRX"
},
- "org-openroadm-common-network:link-type": "DROP-LINK",
+ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
- "dest-tp": "SRG1-CP-TXRX",
- "dest-node": "ROADM-C1-SRG1"
+ "dest-tp": "DEG1-TTP-TXRX",
+ "dest-node": "ROADM-C1-DEG1"
+ },
+ "org-openroadm-network-topology:OMS-attributes": {
+ "span": {
+ "auto-spanloss": true,
+ "spanloss-current": 12,
+ "engineered-spanloss": 12.2,
+ "spanloss-base": 11.4,
+ "link-concatenation": [
+ {
+ "SRLG-Id": 0,
+ "fiber-type": "smf",
+ "pmd": 0.5,
+ "SRLG-length": 100000
+ }
+ ]
+ }
}
},
{
- "link-id": "XPDR-A2-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP4-TXRX",
+ "link-id": "XPDR-A2-XPDR2-XPDR2-NETWORK1toROADM-A1-SRG1-SRG1-PP2-TXRX",
"source": {
- "source-node": "XPDR-A2-XPDR1",
- "source-tp": "XPDR1-NETWORK1"
+ "source-node": "XPDR-A2-XPDR2",
+ "source-tp": "XPDR2-NETWORK1"
},
"org-openroadm-common-network:link-type": "XPONDER-OUTPUT",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-PP4-TXRXtoXPDR-A2-XPDR1-XPDR1-NETWORK1",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-PP2-TXRXtoXPDR-A2-XPDR2-XPDR2-NETWORK1",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
- "dest-tp": "SRG1-PP4-TXRX",
+ "dest-tp": "SRG1-PP2-TXRX",
"dest-node": "ROADM-A1-SRG1"
}
},
{
- "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX",
+ "link-id": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX",
"source": {
- "source-node": "ROADM-A1-DEG2",
- "source-tp": "DEG2-CTP-TXRX"
+ "source-node": "ROADM-C1-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
},
"org-openroadm-common-network:link-type": "DROP-LINK",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
"dest-tp": "SRG1-CP-TXRX",
- "dest-node": "ROADM-A1-SRG1"
+ "dest-node": "ROADM-C1-SRG1"
}
},
{
- "link-id": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX",
+ "link-id": "ROADM-C1-SRG1-SRG1-PP1-TXRXtoXPDR-C2-XPDR1-XPDR1-NETWORK1",
"source": {
- "source-node": "ROADM-C1-DEG1",
- "source-tp": "DEG1-CTP-TXRX"
+ "source-node": "ROADM-C1-SRG1",
+ "source-tp": "SRG1-PP1-TXRX"
},
- "org-openroadm-common-network:link-type": "EXPRESS-LINK",
+ "org-openroadm-common-network:link-type": "XPONDER-INPUT",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX",
+ "org-openroadm-common-network:opposite-link": "XPDR-C2-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP1-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
- "dest-tp": "DEG2-CTP-TXRX",
- "dest-node": "ROADM-C1-DEG2"
+ "dest-tp": "XPDR1-NETWORK1",
+ "dest-node": "XPDR-C2-XPDR1"
}
},
{
- "link-id": "XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX",
+ "link-id": "XPDR-A2-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX",
"source": {
- "source-node": "XPDR-A1-XPDR1",
+ "source-node": "XPDR-A2-XPDR1",
"source-tp": "XPDR1-NETWORK1"
},
"org-openroadm-common-network:link-type": "XPONDER-OUTPUT",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A2-XPDR1-XPDR1-NETWORK1",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
"dest-tp": "SRG1-PP1-TXRX",
}
},
{
- "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
- "source": {
- "source-node": "ROADM-A1-DEG2",
- "source-tp": "DEG2-CTP-TXRX"
- },
- "org-openroadm-common-network:link-type": "EXPRESS-LINK",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
- "org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "DEG1-CTP-TXRX",
- "dest-node": "ROADM-A1-DEG1"
- }
- },
- {
- "link-id": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
+ "link-id": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
"source": {
- "source-node": "ROADM-A1-SRG1",
- "source-tp": "SRG1-CP-TXRX"
+ "source-node": "ROADM-A1-SRG3",
+ "source-tp": "SRG3-CP-TXRX"
},
"org-openroadm-common-network:link-type": "ADD-LINK",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
"dest-tp": "DEG1-CTP-TXRX",
}
},
{
- "link-id": "ROADM-C1-SRG1-SRG1-PP1-TXRXtoXPDR-C1-XPDR1-XPDR1-NETWORK1",
+ "link-id": "ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A2-XPDR1-XPDR1-NETWORK1",
"source": {
- "source-node": "ROADM-C1-SRG1",
+ "source-node": "ROADM-A1-SRG1",
"source-tp": "SRG1-PP1-TXRX"
},
"org-openroadm-common-network:link-type": "XPONDER-INPUT",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "XPDR-C1-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP1-TXRX",
+ "org-openroadm-common-network:opposite-link": "XPDR-A2-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
"dest-tp": "XPDR1-NETWORK1",
- "dest-node": "XPDR-C1-XPDR1"
- }
- },
- {
- "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX",
- "source": {
- "source-node": "ROADM-A1-DEG2",
- "source-tp": "DEG2-CTP-TXRX"
- },
- "org-openroadm-common-network:link-type": "DROP-LINK",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
- "org-openroadm-common-network:administrative-state": "inService",
- "destination": {
- "dest-tp": "SRG3-CP-TXRX",
- "dest-node": "ROADM-A1-SRG3"
+ "dest-node": "XPDR-A2-XPDR1"
}
},
{
- "link-id": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
+ "link-id": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
"source": {
- "source-node": "ROADM-A1-SRG1",
- "source-tp": "SRG1-CP-TXRX"
+ "source-node": "ROADM-A1-SRG3",
+ "source-tp": "SRG3-CP-TXRX"
},
"org-openroadm-common-network:link-type": "ADD-LINK",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
"dest-tp": "DEG2-CTP-TXRX",
}
},
{
- "link-id": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX",
+ "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX",
"source": {
- "source-node": "ROADM-C1-SRG1",
- "source-tp": "SRG1-CP-TXRX"
+ "source-node": "ROADM-A1-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
},
- "org-openroadm-common-network:link-type": "ADD-LINK",
+ "org-openroadm-common-network:link-type": "DROP-LINK",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
- "dest-tp": "DEG2-CTP-TXRX",
- "dest-node": "ROADM-C1-DEG2"
+ "dest-tp": "SRG3-CP-TXRX",
+ "dest-node": "ROADM-A1-SRG3"
}
},
{
- "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX",
+ "link-id": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX",
"source": {
- "source-node": "ROADM-A1-DEG1",
- "source-tp": "DEG1-CTP-TXRX"
+ "source-node": "ROADM-C1-DEG1",
+ "source-tp": "DEG1-TTP-TXRX"
},
- "org-openroadm-common-network:link-type": "DROP-LINK",
+ "org-openroadm-common-network:link-type": "ROADM-TO-ROADM",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
- "dest-tp": "SRG1-CP-TXRX",
- "dest-node": "ROADM-A1-SRG1"
+ "dest-tp": "DEG2-TTP-TXRX",
+ "dest-node": "ROADM-A1-DEG2"
+ },
+ "org-openroadm-network-topology:OMS-attributes": {
+ "span": {
+ "auto-spanloss": true,
+ "spanloss-current": 12,
+ "engineered-spanloss": 12.2,
+ "spanloss-base": 11.4,
+ "link-concatenation": [
+ {
+ "SRLG-Id": 0,
+ "fiber-type": "smf",
+ "pmd": 0.5,
+ "SRLG-length": 100000
+ }
+ ]
+ }
}
},
{
- "link-id": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX",
+ "link-id": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX",
"source": {
- "source-node": "ROADM-C1-SRG1",
- "source-tp": "SRG1-CP-TXRX"
+ "source-node": "ROADM-C1-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
},
- "org-openroadm-common-network:link-type": "ADD-LINK",
+ "org-openroadm-common-network:link-type": "EXPRESS-LINK",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
"dest-tp": "DEG1-CTP-TXRX",
}
},
{
- "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
+ "link-id": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX",
"source": {
- "source-node": "ROADM-A1-DEG1",
- "source-tp": "DEG1-CTP-TXRX"
+ "source-node": "ROADM-C1-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
},
- "org-openroadm-common-network:link-type": "EXPRESS-LINK",
+ "org-openroadm-common-network:link-type": "DROP-LINK",
"org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
"destination": {
- "dest-tp": "DEG2-CTP-TXRX",
- "dest-node": "ROADM-A1-DEG2"
+ "dest-tp": "SRG1-CP-TXRX",
+ "dest-node": "ROADM-C1-SRG1"
}
- }
- ],
- "network-types": {
- "org-openroadm-common-network:openroadm-common-network": {}
- },
- "node": [
+ },
{
- "node-id": "ROADM-A1-SRG3",
- "org-openroadm-common-network:node-type": "SRG",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-network-topology:srg-attributes": {
- "avail-freq-maps": [
- {
- "map-name": "cband",
- "freq-map-granularity": 6.25,
- "start-edge-freq": 191.325,
- "effective-bits": 768,
- "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
- }
- ]
- },
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "SRG3-PP3-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG3-PP2-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG3-CP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-CP"
- },
- {
- "tp-id": "SRG3-PP1-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG3-PP4-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeA"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "ROADM-A1"
- }
- ]
+ "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX",
+ "source": {
+ "source-node": "ROADM-A1-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "DROP-LINK",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "destination": {
+ "dest-tp": "SRG1-CP-TXRX",
+ "dest-node": "ROADM-A1-SRG1"
+ }
},
{
- "node-id": "XPDR-A2-XPDR1",
- "org-openroadm-common-network:node-type": "XPONDER",
+ "link-id": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADM-C1-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "EXPRESS-LINK",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "XPDR1-CLIENT1",
- "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
- },
- {
- "tp-id": "XPDR1-NETWORK1",
- "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
- "org-openroadm-network-topology:xpdr-network-attributes": {
- "tail-equipment-id": "ROADM-A1-SRG1--SRG1-PP4-TXRX"
- },
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeA"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "XPDR-A2"
- }
- ]
+ "destination": {
+ "dest-tp": "DEG2-CTP-TXRX",
+ "dest-node": "ROADM-C1-DEG2"
+ }
},
{
- "node-id": "XPDR-C2-XPDR1",
- "org-openroadm-common-network:node-type": "XPONDER",
+ "link-id": "XPDR-C2-XPDR2-XPDR2-NETWORK1toROADM-C1-SRG1-SRG1-PP2-TXRX",
+ "source": {
+ "source-node": "XPDR-C2-XPDR2",
+ "source-tp": "XPDR2-NETWORK1"
+ },
+ "org-openroadm-common-network:link-type": "XPONDER-OUTPUT",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-PP2-TXRXtoXPDR-C2-XPDR2-XPDR2-NETWORK1",
"org-openroadm-common-network:administrative-state": "inService",
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "XPDR1-CLIENT1",
- "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
- },
- {
- "tp-id": "XPDR1-NETWORK1",
- "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
- "org-openroadm-network-topology:xpdr-network-attributes": {
- "tail-equipment-id": "ROADM-C1-SRG1--SRG1-PP4-TXRX"
- },
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "openroadm-network",
- "node-ref": "XPDR-C2"
- },
- {
- "network-ref": "clli-network",
- "node-ref": "NodeC"
- }
- ]
+ "destination": {
+ "dest-tp": "SRG1-PP2-TXRX",
+ "dest-node": "ROADM-C1-SRG1"
+ }
},
{
- "node-id": "XPDR-C1-XPDR1",
- "org-openroadm-common-network:node-type": "XPONDER",
+ "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADM-A1-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "EXPRESS-LINK",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "XPDR1-CLIENT1",
- "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
- },
- {
- "tp-id": "XPDR1-CLIENT2",
- "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK2",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
- },
- {
- "tp-id": "XPDR1-NETWORK2",
- "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT2",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
- },
- {
- "tp-id": "XPDR1-NETWORK1",
- "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
- "org-openroadm-network-topology:xpdr-network-attributes": {
- "tail-equipment-id": "ROADM-C1-SRG1--SRG1-PP1-TXRX"
- },
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeC"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "XPDR-C1"
- }
- ]
+ "destination": {
+ "dest-tp": "DEG1-CTP-TXRX",
+ "dest-node": "ROADM-A1-DEG1"
+ }
},
{
- "node-id": "ROADM-C1-SRG1",
- "org-openroadm-common-network:node-type": "SRG",
+ "link-id": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADM-A1-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "ADD-LINK",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-network-topology:srg-attributes": {
- "avail-freq-maps": [
- {
- "map-name": "cband",
- "freq-map-granularity": 6.25,
- "start-edge-freq": 191.325,
- "effective-bits": 768,
- "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
- }
- ]
- },
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "SRG1-PP4-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG1-PP1-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG1-PP2-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG1-PP3-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG1-CP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-CP"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeC"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "ROADM-C1"
- }
- ]
+ "destination": {
+ "dest-tp": "DEG1-CTP-TXRX",
+ "dest-node": "ROADM-A1-DEG1"
+ }
},
{
- "node-id": "ROADM-A1-SRG1",
- "org-openroadm-common-network:node-type": "SRG",
+ "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX",
+ "source": {
+ "source-node": "ROADM-A1-DEG2",
+ "source-tp": "DEG2-CTP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "DROP-LINK",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-network-topology:srg-attributes": {
- "avail-freq-maps": [
- {
- "map-name": "cband",
- "freq-map-granularity": 6.25,
- "start-edge-freq": 191.325,
- "effective-bits": 768,
- "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
- }
- ]
- },
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "SRG1-PP4-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG1-PP1-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG1-PP2-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG1-PP3-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-PP"
- },
- {
- "tp-id": "SRG1-CP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "SRG-TXRX-CP"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeA"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "ROADM-A1"
- }
- ]
+ "destination": {
+ "dest-tp": "SRG3-CP-TXRX",
+ "dest-node": "ROADM-A1-SRG3"
+ }
},
{
- "node-id": "ROADM-A1-DEG1",
- "org-openroadm-common-network:node-type": "DEGREE",
+ "link-id": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADM-A1-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "ADD-LINK",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-network-topology:degree-attributes": {
- "degree-number": 1,
- "avail-freq-maps": [
- {
- "map-name": "cband",
- "freq-map-granularity": 6.25,
- "start-edge-freq": 191.325,
- "effective-bits": 768,
- "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
- }
- ]
- },
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "DEG1-CTP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP"
- },
- {
- "tp-id": "DEG1-TTP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeA"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "ROADM-A1"
- }
- ]
+ "destination": {
+ "dest-tp": "DEG2-CTP-TXRX",
+ "dest-node": "ROADM-A1-DEG2"
+ }
},
{
- "node-id": "ROADM-A1-DEG2",
- "org-openroadm-common-network:node-type": "DEGREE",
+ "link-id": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADM-C1-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "ADD-LINK",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-network-topology:degree-attributes": {
- "degree-number": 2,
- "avail-freq-maps": [
- {
- "map-name": "cband",
- "freq-map-granularity": 6.25,
- "start-edge-freq": 191.325,
- "effective-bits": 768,
- "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
- }
- ]
- },
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "DEG2-TTP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP"
- },
- {
- "tp-id": "DEG2-CTP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeA"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "ROADM-A1"
- }
- ]
+ "destination": {
+ "dest-tp": "DEG2-CTP-TXRX",
+ "dest-node": "ROADM-C1-DEG2"
+ }
},
{
- "node-id": "XPDR-A1-XPDR1",
- "org-openroadm-common-network:node-type": "XPONDER",
+ "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX",
+ "source": {
+ "source-node": "ROADM-A1-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "DROP-LINK",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "XPDR1-CLIENT1",
- "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
- },
- {
- "tp-id": "XPDR1-CLIENT2",
- "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK2",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-CLIENT"
- },
- {
- "tp-id": "XPDR1-NETWORK2",
- "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT2",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
- },
- {
- "tp-id": "XPDR1-NETWORK1",
- "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1",
- "org-openroadm-network-topology:xpdr-network-attributes": {
- "tail-equipment-id": "ROADM-A1-SRG1--SRG1-PP1-TXRX"
- },
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "XPONDER-NETWORK"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "openroadm-network",
- "node-ref": "XPDR-A1"
- },
- {
- "network-ref": "clli-network",
- "node-ref": "NodeA"
- }
- ]
+ "destination": {
+ "dest-tp": "SRG1-CP-TXRX",
+ "dest-node": "ROADM-A1-SRG1"
+ }
},
{
- "node-id": "ROADM-C1-DEG1",
- "org-openroadm-common-network:node-type": "DEGREE",
+ "link-id": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX",
+ "source": {
+ "source-node": "ROADM-C1-SRG1",
+ "source-tp": "SRG1-CP-TXRX"
+ },
+ "org-openroadm-common-network:link-type": "ADD-LINK",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX",
"org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-network-topology:degree-attributes": {
- "degree-number": 1,
- "avail-freq-maps": [
- {
- "map-name": "cband",
- "freq-map-granularity": 6.25,
- "start-edge-freq": 191.325,
- "effective-bits": 768,
- "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
- }
- ]
- },
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "DEG1-CTP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP"
- },
- {
- "tp-id": "DEG1-TTP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeC"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "ROADM-C1"
- }
- ]
+ "destination": {
+ "dest-tp": "DEG1-CTP-TXRX",
+ "dest-node": "ROADM-C1-DEG1"
+ }
},
{
- "node-id": "ROADM-C1-DEG2",
- "org-openroadm-common-network:node-type": "DEGREE",
+ "link-id": "XPDR-C2-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP1-TXRX",
+ "source": {
+ "source-node": "XPDR-C2-XPDR1",
+ "source-tp": "XPDR1-NETWORK1"
+ },
+ "org-openroadm-common-network:link-type": "XPONDER-OUTPUT",
"org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-PP1-TXRXtoXPDR-C2-XPDR1-XPDR1-NETWORK1",
"org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-network-topology:degree-attributes": {
- "degree-number": 2,
- "avail-freq-maps": [
- {
- "map-name": "cband",
- "freq-map-granularity": 6.25,
- "start-edge-freq": 191.325,
- "effective-bits": 768,
- "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
- }
- ]
+ "destination": {
+ "dest-tp": "SRG1-PP1-TXRX",
+ "dest-node": "ROADM-C1-SRG1"
+ }
+ },
+ {
+ "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX",
+ "source": {
+ "source-node": "ROADM-A1-DEG1",
+ "source-tp": "DEG1-CTP-TXRX"
},
- "ietf-network-topology:termination-point": [
- {
- "tp-id": "DEG2-TTP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP"
- },
- {
- "tp-id": "DEG2-CTP-TXRX",
- "org-openroadm-common-network:operational-state": "inService",
- "org-openroadm-common-network:administrative-state": "inService",
- "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP"
- }
- ],
- "supporting-node": [
- {
- "network-ref": "clli-network",
- "node-ref": "NodeC"
- },
- {
- "network-ref": "openroadm-network",
- "node-ref": "ROADM-C1"
- }
- ]
+ "org-openroadm-common-network:link-type": "EXPRESS-LINK",
+ "org-openroadm-common-network:operational-state": "inService",
+ "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX",
+ "org-openroadm-common-network:administrative-state": "inService",
+ "destination": {
+ "dest-tp": "DEG2-CTP-TXRX",
+ "dest-node": "ROADM-A1-DEG2"
+ }
}
]
}
"node-model": "model1",
"node-ip-address": "1.2.3.4"
},
- "mapping": [],
+ "mapping": [
+ {
+ "logical-connection-point": "XPDR1-CLIENT1",
+ "port-qual": "xpdr-client"
+ }
+ ],
"mc-capabilities": [],
"cp-to-degree": [],
"switching-pool-lcp": []
"node-model": "model1",
"node-ip-address": "1.2.3.4"
},
- "mapping": [],
+ "mapping": [
+ {
+ "logical-connection-point": "XPDR1-CLIENT1",
+ "port-qual": "xpdr-client"
+ }
+ ],
"mc-capabilities": [],
"cp-to-degree": [],
"switching-pool-lcp": []
"node-model": "model1",
"node-ip-address": "1.2.3.4"
},
- "mapping": [],
+ "mapping": [
+ {
+ "logical-connection-point": "XPDR1-CLIENT1",
+ "port-qual": "xpdr-client"
+ }
+ ],
"mc-capabilities": [],
"cp-to-degree": [],
"switching-pool-lcp": []
"node-model": "model1",
"node-ip-address": "1.2.3.4"
},
- "mapping": [],
+ "mapping": [
+ {
+ "logical-connection-point": "XPDR1-CLIENT1",
+ "port-qual": "xpdr-client"
+ }
+ ],
"mc-capabilities": [],
"cp-to-degree": [],
"switching-pool-lcp": []
"node-model": "model1",
"node-ip-address": "1.2.3.4"
},
- "mapping": [],
+ "mapping": [
+ {
+ "logical-connection-point": "XPDR1-CLIENT1",
+ "port-qual": "xpdr-client"
+ }
+ ],
"mc-capabilities": [],
"cp-to-degree": [],
"switching-pool-lcp": []
{
"network": {
"nodes": [
+ {
+ "node-id": "XPDR-A2",
+ "node-info": {
+ "node-clli": "NodeA",
+ "node-vendor": "vendorA",
+ "openroadm-version": "7.1",
+ "node-ip-address": "1.2.3.4",
+ "node-type": "xpdr",
+ "node-model": "model"
+ },
+ "switching-pool-lcp": [
+ {
+ "switching-pool-number": 1,
+ "switching-pool-type": "blocking",
+ "non-blocking-list": [
+ {
+ "nbl-number": 2,
+ "lcp-list": [
+ "XPDR2-NETWORK1",
+ "XPDR2-CLIENT2"
+ ],
+ "interconnect-bandwidth": 0
+ },
+ {
+ "nbl-number": 1,
+ "lcp-list": [
+ "XPDR2-CLIENT1",
+ "XPDR2-NETWORK1"
+ ],
+ "interconnect-bandwidth": 0
+ }
+ ]
+ }
+ ],
+ "mapping": [
+ {
+ "logical-connection-point": "XPDR2-CLIENT1",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/2/1/1-PLUG-CLIENT",
+ "mpdr-restrictions": {
+ "min-trib-slot": "1.1",
+ "max-trib-slot": "1.20"
+ },
+ "supported-interface-capability": [
+ "org-openroadm-port-types:if-100GE-ODU4",
+ "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ ],
+ "port-oper-state": "InService",
+ "port-direction": "bidirectional",
+ "lcp-hash-val": "AK+Cna4EclRH",
+ "supporting-port": "C1",
+ "port-qual": "switch-client"
+ },
+ {
+ "logical-connection-point": "XPDR1-NETWORK1",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/1/2-PLUG-NET",
+ "supported-interface-capability": [
+ "org-openroadm-port-types:if-otsi-otsigroup"
+ ],
+ "port-oper-state": "InService",
+ "connection-map-lcp": "XPDR1-CLIENT1",
+ "port-direction": "bidirectional",
+ "xponder-type": "tpdr",
+ "lcp-hash-val": "AIGiVAQ4gDil",
+ "supporting-port": "L1",
+ "port-qual": "xpdr-network"
+ },
+ {
+ "logical-connection-point": "XPDR2-CLIENT2",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/2/1/2-PLUG-CLIENT",
+ "mpdr-restrictions": {
+ "min-trib-slot": "2.1",
+ "max-trib-slot": "2.20"
+ },
+ "supported-interface-capability": [
+ "org-openroadm-port-types:if-100GE-ODU4",
+ "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ ],
+ "port-oper-state": "InService",
+ "port-direction": "bidirectional",
+ "lcp-hash-val": "AK+Cna4EclRE",
+ "supporting-port": "C1",
+ "port-qual": "switch-client"
+ },
+ {
+ "logical-connection-point": "XPDR1-CLIENT1",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/1/1-PLUG-CLIENT",
+ "supported-interface-capability": [
+ "org-openroadm-port-types:if-400GE"
+ ],
+ "port-oper-state": "InService",
+ "connection-map-lcp": "XPDR1-NETWORK1",
+ "port-direction": "bidirectional",
+ "lcp-hash-val": "AODABTVSOHH0",
+ "supporting-port": "C1",
+ "port-qual": "xpdr-client"
+ },
+ {
+ "logical-connection-point": "XPDR2-NETWORK1",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/2/2-PLUG-NET",
+ "supported-interface-capability": [
+ "org-openroadm-port-types:if-otsi-otsigroup"
+ ],
+ "port-oper-state": "InService",
+ "port-direction": "bidirectional",
+ "xponder-type": "mpdr",
+ "lcp-hash-val": "LY9PxYJqUbw=",
+ "supporting-port": "L1",
+ "port-qual": "switch-network"
+ }
+ ],
+ "mc-capabilities": [
+ {
+ "mc-node-name": "XPDR-mcprofile",
+ "center-freq-granularity": 3.125,
+ "slot-width-granularity": 6.25
+ }
+ ]
+ },
{
"node-id": "ROADM-C1",
"node-info": {
- "node-type": "rdm",
- "node-model": "model2",
- "node-ip-address": "127.0.0.13",
"node-clli": "NodeC",
+ "node-vendor": "vendorA",
"openroadm-version": "2.2.1",
- "node-vendor": "vendorA"
+ "node-ip-address": "127.0.0.13",
+ "node-type": "rdm",
+ "node-model": "model2"
},
"cp-to-degree": [
{
],
"mapping": [
{
- "logical-connection-point": "SRG1-PP3-TXRX",
- "supporting-circuit-pack-name": "3/0",
+ "logical-connection-point": "SRG1-PP2-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C3"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "3/0",
+ "supporting-port": "C2",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG1-PP1-TXRX",
- "supporting-circuit-pack-name": "3/0",
+ "logical-connection-point": "SRG1-PP4-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C1"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "3/0",
+ "supporting-port": "C4",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "DEG1-TTP-TXRX",
- "supporting-oms": "OMS-DEG1-TTP-TXRX",
- "supporting-circuit-pack-name": "1/0",
- "supporting-ots": "OTS-DEG1-TTP-TXRX",
+ "logical-connection-point": "DEG2-TTP-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "L1"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "2/0",
+ "supporting-port": "L1",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG1-PP2-TXRX",
- "supporting-circuit-pack-name": "3/0",
+ "logical-connection-point": "SRG1-PP3-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C2"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "3/0",
+ "supporting-port": "C3",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG1-PP4-TXRX",
- "supporting-circuit-pack-name": "3/0",
+ "logical-connection-point": "DEG1-TTP-TXRX",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/0",
+ "supporting-ots": "OTS-DEG1-TTP-TXRX",
+ "port-oper-state": "InService",
"port-direction": "bidirectional",
- "supporting-port": "C4"
+ "supporting-port": "L1",
+ "supporting-oms": "OMS-DEG1-TTP-TXRX"
},
{
- "logical-connection-point": "DEG2-TTP-TXRX",
- "supporting-circuit-pack-name": "2/0",
+ "logical-connection-point": "SRG1-PP1-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "L1"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "3/0",
+ "supporting-port": "C1",
+ "port-oper-state": "InService"
}
],
"mc-capabilities": [
]
},
{
- "node-id": "XPDR-A2",
+ "node-id": "XPDR-C2",
+ "node-info": {
+ "node-clli": "NodeC",
+ "node-vendor": "vendorA",
+ "openroadm-version": "7.1",
+ "node-ip-address": "1.2.3.4",
+ "node-type": "xpdr",
+ "node-model": "model"
+ },
+ "switching-pool-lcp": [
+ {
+ "switching-pool-number": 1,
+ "switching-pool-type": "blocking",
+ "non-blocking-list": [
+ {
+ "nbl-number": 2,
+ "lcp-list": [
+ "XPDR2-NETWORK1",
+ "XPDR2-CLIENT2"
+ ],
+ "interconnect-bandwidth": 0
+ },
+ {
+ "nbl-number": 1,
+ "lcp-list": [
+ "XPDR2-CLIENT1",
+ "XPDR2-NETWORK1"
+ ],
+ "interconnect-bandwidth": 0
+ }
+ ]
+ }
+ ],
"mapping": [
+ {
+ "logical-connection-point": "XPDR2-CLIENT1",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/2/1/1-PLUG-CLIENT",
+ "mpdr-restrictions": {
+ "min-trib-slot": "1.1",
+ "max-trib-slot": "1.20"
+ },
+ "supported-interface-capability": [
+ "org-openroadm-port-types:if-100GE-ODU4",
+ "org-openroadm-port-types:if-OCH-OTU4-ODU4"
+ ],
+ "port-oper-state": "InService",
+ "port-direction": "bidirectional",
+ "lcp-hash-val": "AP2/mp+mI1y5",
+ "supporting-port": "C1",
+ "port-qual": "switch-client"
+ },
{
"logical-connection-point": "XPDR1-NETWORK1",
- "supporting-circuit-pack-name": "1/0/1-PLUG-NET",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/1/2-PLUG-NET",
"supported-interface-capability": [
- "org-openroadm-port-types:if-OTUCn-ODUCn"
+ "org-openroadm-port-types:if-otsi-otsigroup"
],
- "lcp-hash-val": "AIGiVAQ4gDil",
+ "port-oper-state": "InService",
+ "connection-map-lcp": "XPDR1-CLIENT1",
"port-direction": "bidirectional",
"xponder-type": "tpdr",
+ "lcp-hash-val": "ZbICgmaBrJM=",
"supporting-port": "L1",
- "port-qual": "xpdr-network",
- "connection-map-lcp": "XPDR1-CLIENT1"
+ "port-qual": "xpdr-network"
},
{
- "logical-connection-point": "XPDR1-CLIENT1",
- "supporting-circuit-pack-name": "1/0/1-PLUG-CLIENT",
+ "logical-connection-point": "XPDR2-CLIENT2",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/2/1/2-PLUG-CLIENT",
+ "mpdr-restrictions": {
+ "min-trib-slot": "2.1",
+ "max-trib-slot": "2.20"
+ },
"supported-interface-capability": [
- "org-openroadm-port-types:if-400GE"
+ "org-openroadm-port-types:if-100GE-ODU4",
+ "org-openroadm-port-types:if-OCH-OTU4-ODU4"
],
- "lcp-hash-val": "AODABTVSOHH0",
+ "port-oper-state": "InService",
"port-direction": "bidirectional",
+ "lcp-hash-val": "AP2/mp+mI1y6",
"supporting-port": "C1",
- "port-qual": "xpdr-client",
- "connection-map-lcp": "XPDR1-NETWORK1"
- }
- ],
- "node-info": {
- "node-type": "xpdr",
- "node-model": "model2",
- "node-ip-address": "1.2.3.4",
- "node-clli": "NodeA",
- "openroadm-version": "7.1",
- "node-vendor": "vendorA"
- }
- },
- {
- "node-id": "XPDR-C2",
- "mapping": [
+ "port-qual": "switch-client"
+ },
{
- "logical-connection-point": "XPDR1-NETWORK1",
- "supporting-circuit-pack-name": "1/0/1-PLUG-NET",
+ "logical-connection-point": "XPDR1-CLIENT1",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/1/1-PLUG-CLIENT",
"supported-interface-capability": [
- "org-openroadm-port-types:if-OTUCn-ODUCn"
+ "org-openroadm-port-types:if-400GE"
],
- "lcp-hash-val": "ZbICgmaBrJM=",
+ "port-oper-state": "InService",
+ "connection-map-lcp": "XPDR1-NETWORK1",
"port-direction": "bidirectional",
- "xponder-type": "tpdr",
- "supporting-port": "L1",
- "port-qual": "xpdr-network",
- "connection-map-lcp": "XPDR1-CLIENT1"
+ "lcp-hash-val": "M5cViLS5z3o=",
+ "supporting-port": "C1",
+ "port-qual": "xpdr-client"
},
{
- "logical-connection-point": "XPDR1-CLIENT1",
- "supporting-circuit-pack-name": "1/0/1-PLUG-CLIENT",
+ "logical-connection-point": "XPDR2-NETWORK1",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/2/2-PLUG-NET",
"supported-interface-capability": [
- "org-openroadm-port-types:if-400GE"
+ "org-openroadm-port-types:if-otsi-otsigroup"
],
- "lcp-hash-val": "M5cViLS5z3o=",
+ "port-oper-state": "InService",
"port-direction": "bidirectional",
- "supporting-port": "C1",
- "port-qual": "xpdr-client",
- "connection-map-lcp": "XPDR1-NETWORK1"
+ "xponder-type": "mpdr",
+ "lcp-hash-val": "Nmbu2MNHvc4=",
+ "supporting-port": "L1",
+ "port-qual": "switch-network"
}
],
- "node-info": {
- "node-type": "xpdr",
- "node-model": "model2",
- "node-ip-address": "1.2.3.4",
- "node-clli": "NodeC",
- "openroadm-version": "7.1",
- "node-vendor": "vendorA"
- }
+ "mc-capabilities": [
+ {
+ "mc-node-name": "XPDR-mcprofile",
+ "center-freq-granularity": 3.125,
+ "slot-width-granularity": 6.25
+ }
+ ]
},
{
"node-id": "ROADM-A1",
"node-info": {
- "node-type": "rdm",
- "node-model": "model2",
- "node-ip-address": "127.0.0.11",
"node-clli": "NodeA",
+ "node-vendor": "vendorA",
"openroadm-version": "2.2.1",
- "node-vendor": "vendorA"
+ "node-ip-address": "127.0.0.11",
+ "node-type": "rdm",
+ "node-model": "model2"
},
"cp-to-degree": [
{
],
"mapping": [
{
- "logical-connection-point": "SRG1-PP3-TXRX",
- "supporting-circuit-pack-name": "3/0",
+ "logical-connection-point": "SRG3-PP1-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C3"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "5/0",
+ "supporting-port": "C1",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG3-PP2-TXRX",
- "supporting-circuit-pack-name": "5/0",
+ "logical-connection-point": "SRG1-PP2-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C2"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "3/0",
+ "supporting-port": "C2",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG1-PP1-TXRX",
- "supporting-circuit-pack-name": "3/0",
+ "logical-connection-point": "SRG3-PP4-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C1"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "5/0",
+ "supporting-port": "C4",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "DEG1-TTP-TXRX",
- "supporting-circuit-pack-name": "1/0",
+ "logical-connection-point": "SRG1-PP4-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "L1"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "3/0",
+ "supporting-port": "C4",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG3-PP1-TXRX",
- "supporting-circuit-pack-name": "5/0",
+ "logical-connection-point": "SRG3-PP3-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C1"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "5/0",
+ "supporting-port": "C3",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG1-PP2-TXRX",
- "supporting-circuit-pack-name": "3/0",
+ "logical-connection-point": "DEG2-TTP-TXRX",
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "2/0",
+ "supporting-ots": "OTS-DEG2-TTP-TXRX",
+ "port-oper-state": "InService",
"port-direction": "bidirectional",
- "supporting-port": "C2"
+ "supporting-port": "L1",
+ "supporting-oms": "OMS-DEG2-TTP-TXRX"
},
{
- "logical-connection-point": "SRG1-PP4-TXRX",
- "supporting-circuit-pack-name": "3/0",
+ "logical-connection-point": "SRG1-PP3-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C4"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "3/0",
+ "supporting-port": "C3",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG3-PP4-TXRX",
- "supporting-circuit-pack-name": "5/0",
+ "logical-connection-point": "SRG3-PP2-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C4"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "5/0",
+ "supporting-port": "C2",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "SRG3-PP3-TXRX",
- "supporting-circuit-pack-name": "5/0",
+ "logical-connection-point": "DEG1-TTP-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "C3"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "1/0",
+ "supporting-port": "L1",
+ "port-oper-state": "InService"
},
{
- "logical-connection-point": "DEG2-TTP-TXRX",
- "supporting-oms": "OMS-DEG2-TTP-TXRX",
- "supporting-circuit-pack-name": "2/0",
- "supporting-ots": "OTS-DEG2-TTP-TXRX",
+ "logical-connection-point": "SRG1-PP1-TXRX",
"port-direction": "bidirectional",
- "supporting-port": "L1"
+ "port-admin-state": "InService",
+ "supporting-circuit-pack-name": "3/0",
+ "supporting-port": "C1",
+ "port-oper-state": "InService"
}
],
"mc-capabilities": [
TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),
"..", "..", "sample_configs", "honeynode-topo400G.json")
with open(TOPO_BI_DIR_FILE, 'r') as topo_bi_dir:
- cls.simple_topo_bi_dir_data = topo_bi_dir.read()
+ cls.topo_bi_dir_data = topo_bi_dir.read()
+
+ OTN_TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ "..", "..", "sample_configs", "honeynode-otntopo400G.json")
+ with open(OTN_TOPO_BI_DIR_FILE, 'r') as otn_topo_bi_dir:
+ cls.otn_topo_bi_dir_data = otn_topo_bi_dir.read()
+
+ OTUC4_OTN_TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ "..", "..", "sample_configs", "honeynode-otntopo400GwithOTUC4.json")
+ with open(OTUC4_OTN_TOPO_BI_DIR_FILE, 'r') as otuc4_otn_topo_bi_dir:
+ cls.otuc4_otn_topo_bi_dir_data = otuc4_otn_topo_bi_dir.read()
+
+ ODUC4_OTN_TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ "..", "..", "sample_configs", "honeynode-otntopo400GwithODUC4.json")
+ with open(ODUC4_OTN_TOPO_BI_DIR_FILE, 'r') as oduc4_otn_topo_bi_dir:
+ cls.oduc4_otn_topo_bi_dir_data = oduc4_otn_topo_bi_dir.read()
PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),
"..", "..", "sample_configs", "pce_portmapping_71.json")
self.assertIn(response.status_code, (requests.codes.ok, requests.codes.created))
time.sleep(2)
- # Load simple bidirectional topology
- def test_02_load_simple_topology_bi(self):
- response = test_utils.put_jsonrequest(test_utils.URL_CONFIG_ORDM_TOPO, self.simple_topo_bi_dir_data)
+ # Load openroadm topology
+ def test_02_load_openroadm_topology_bi(self):
+ response = test_utils.put_jsonrequest(test_utils.URL_CONFIG_ORDM_TOPO, self.topo_bi_dir_data)
self.assertEqual(response.status_code, requests.codes.ok)
time.sleep(2)
# Path Computation success
- def test_03_path_computation_xpdr_bi(self):
+ def test_03_path_computation_400G_xpdr_bi(self):
response = test_utils.path_computation_request("request-1", "service-1",
{"node-id": "XPDR-A2", "service-rate": "400",
"service-format": "Ethernet", "clli": "nodeA"},
['zToA-direction']['modulation-format'])
time.sleep(5)
- # Test deleted complex topology
- def test_04_test_topology_complex_deleted(self):
- response = test_utils.get_ordm_topo_request("node/XPONDER-3-2")
- self.assertEqual(response.status_code, requests.codes.conflict)
- time.sleep(1)
+ # Load otn topology
+ def test_04_load_otn_topology_bi(self):
+ response = test_utils.put_jsonrequest(test_utils.URL_CONFIG_OTN_TOPO, self.otn_topo_bi_dir_data)
+ self.assertEqual(response.status_code, requests.codes.ok)
+ time.sleep(2)
+
+ # Path Computation success
+ def test_05_path_computation_OTUC4_xpdr_bi(self):
+ response = test_utils.path_computation_request("request-1", "service-OTUC4",
+ {"service-rate": "400", "clli": "NodeA",
+ "service-format": "OTU", "node-id": "XPDR-A2",
+ "rx-direction": {"port": {"port-device-name": "XPDR-A2-XPDR2"}}
+ },
+ {"service-rate": "400", "clli": "NodeC",
+ "service-format": "OTU", "node-id": "XPDR-C2",
+ "rx-direction": {"port": {"port-device-name": "XPDR-C2-XPDR2"}}
+ })
+ self.assertEqual(response.status_code, requests.codes.ok)
+ res = response.json()
+ self.assertIn('Path is calculated',
+ res['output']['configuration-response-common']['response-message'])
+
+ self.assertEqual(1, res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['aToZ-wavelength-number'])
+ self.assertEqual(400, res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['rate'])
+ self.assertEqual(196.0375, res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['aToZ-min-frequency'])
+ self.assertEqual(196.12500, res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['aToZ-max-frequency'])
+ self.assertEqual('dp-qam16', res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['modulation-format'])
+
+ self.assertEqual(1, res['output']['response-parameters']['path-description']
+ ['zToA-direction']['zToA-wavelength-number'])
+ self.assertEqual(400, res['output']['response-parameters']['path-description']
+ ['zToA-direction']['rate'])
+ self.assertEqual(196.0375, res['output']['response-parameters']['path-description']
+ ['zToA-direction']['zToA-min-frequency'])
+ self.assertEqual(196.12500, res['output']['response-parameters']['path-description']
+ ['zToA-direction']['zToA-max-frequency'])
+ self.assertEqual('dp-qam16', res['output']['response-parameters']['path-description']
+ ['zToA-direction']['modulation-format'])
+ time.sleep(5)
+
+ # Load otn topology with OTUC4 links
+ def test_06_load_otuc4_otn_topology_bi(self):
+ response = test_utils.put_jsonrequest(test_utils.URL_CONFIG_OTN_TOPO, self.otuc4_otn_topo_bi_dir_data)
+ self.assertEqual(response.status_code, requests.codes.ok)
+ time.sleep(2)
+
+ # Path Computation success
+ def test_07_path_computation_ODUC4_xpdr_bi(self):
+ response = test_utils.path_computation_request("request-1", "service-ODUC4",
+ {"service-rate": "400", "clli": "NodeA", "service-format": "ODU",
+ "node-id": "XPDR-A2-XPDR2",
+ "tx-direction": {"port": {"port-device-name": "XPDR-A2-XPDR2"}}
+ },
+ {"service-rate": "400", "clli": "NodeC", "service-format": "ODU",
+ "node-id": "XPDR-C2-XPDR2",
+ "tx-direction": {"port": {"port-device-name": "XPDR-C2-XPDR2"}}
+ })
+ self.assertEqual(response.status_code, requests.codes.ok)
+ res = response.json()
+ self.assertIn('Path is calculated',
+ res['output']['configuration-response-common']['response-message'])
+
+ self.assertEqual(400, res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['rate'])
+ self.assertEqual('dp-qam16', res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['modulation-format'])
+
+ self.assertEqual(400, res['output']['response-parameters']['path-description']
+ ['zToA-direction']['rate'])
+ self.assertEqual('dp-qam16', res['output']['response-parameters']['path-description']
+ ['zToA-direction']['modulation-format'])
+ time.sleep(5)
- # Delete portmapping
- def test_05_delete_port_mapping(self):
- response = test_utils.delete_request(test_utils.URL_FULL_PORTMAPPING)
+ # Load otn topology with OTUC4 links
+ def test_08_load_oduc4_otn_topology_bi(self):
+ response = test_utils.put_jsonrequest(test_utils.URL_CONFIG_OTN_TOPO, self.oduc4_otn_topo_bi_dir_data)
self.assertEqual(response.status_code, requests.codes.ok)
time.sleep(2)
+ # Path Computation success
+ def test_09_path_computation_100G_xpdr_bi(self):
+ response = test_utils.path_computation_request("request-1", "service-100GE",
+ {"service-rate": "100", "clli": "NodeA", "service-format": "Ethernet",
+ "node-id": "XPDR-A2",
+ "tx-direction": {"port": {"port-device-name": "XPDR-A2-XPDR2",
+ "port-name": "XPDR2-CLIENT1"}}},
+ {"service-rate": "100", "clli": "NodeC", "service-format": "Ethernet",
+ "node-id": "XPDR-C2",
+ "tx-direction": {"port": {"port-device-name": "XPDR-C2-XPDR2",
+ "port-name": "XPDR2-CLIENT1"}}})
+
+ self.assertEqual(response.status_code, requests.codes.ok)
+ res = response.json()
+ self.assertIn('Path is calculated',
+ res['output']['configuration-response-common']['response-message'])
+
+ self.assertEqual(100, res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['rate'])
+ self.assertEqual(1, res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['trib-port-number'])
+ self.assertEqual(1, res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['trib-slot-number'])
+ self.assertEqual('dp-qpsk', res['output']['response-parameters']['path-description']
+ ['aToZ-direction']['modulation-format'])
+
+ self.assertEqual(100, res['output']['response-parameters']['path-description']
+ ['zToA-direction']['rate'])
+ self.assertEqual(1, res['output']['response-parameters']['path-description']
+ ['zToA-direction']['trib-port-number'])
+ self.assertEqual(1, res['output']['response-parameters']['path-description']
+ ['zToA-direction']['trib-slot-number'])
+ self.assertEqual('dp-qpsk', res['output']['response-parameters']['path-description']
+ ['zToA-direction']['modulation-format'])
+ time.sleep(5)
if __name__ == "__main__":
unittest.main(verbosity=2)