import java.util.Iterator;
import java.util.List;
import java.util.Map;
-
import org.jgrapht.GraphPath;
import org.jgrapht.alg.shortestpath.KShortestSimplePaths;
import org.jgrapht.alg.shortestpath.PathValidator;
import org.jgrapht.graph.DefaultDirectedWeightedGraph;
import org.opendaylight.transportpce.common.ResponseCodes;
+import org.opendaylight.transportpce.common.StringConstants;
import org.opendaylight.transportpce.pce.constraints.PceConstraints;
import org.opendaylight.transportpce.pce.networkanalyzer.PceLink;
import org.opendaylight.transportpce.pce.networkanalyzer.PceNode;
import org.opendaylight.transportpce.pce.networkanalyzer.PceResult;
import org.opendaylight.transportpce.pce.networkanalyzer.PceResult.LocalCause;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
pceResult.getResponseCode(), ResponseCodes.RESPONSE_OK);
if (!pceResult.getResponseCode().equals(ResponseCodes.RESPONSE_OK)) {
- LOG.info("In calcPath: post algo validations DROPPED the path {}", path);
+ LOG.warn("In calcPath: post algo validations DROPPED the path {}", path);
continue;
}
}
shortestPathAtoZ = new ArrayList<>(pathAtoZ);
- if (("100GE".equals(serviceType)) || ("OTU4".equals(serviceType))) {
- LOG.info("In calcPath Path FOUND path for wl [{}], hops {}, distance per metrics {}, path AtoZ {}",
- pceResult.getResultWavelength(), pathAtoZ.size(), path.getWeight(), pathAtoZ);
- break;
- } else {
- // Service is at OTN layer and is relying on a supporting wavelength service
- LOG.info("In calcPath Path FOUND path for hops {}, distance per metrics {}, path AtoZ {}",
+ switch (serviceType) {
+
+ case StringConstants.SERVICE_TYPE_100GE_T:
+ case StringConstants.SERVICE_TYPE_OTUC4:
+ case StringConstants.SERVICE_TYPE_400GE:
+ case StringConstants.SERVICE_TYPE_OTU4:
+ LOG.info(
+ "In calcPath Path FOUND path for wl [{}], min Freq assignment {}, max Freq assignment {},"
+ + " hops {}, distance per metrics {}, path AtoZ {}",
+ pceResult.getResultWavelength(), pceResult.getMinFreq(), pceResult.getMaxFreq(),
pathAtoZ.size(), path.getWeight(), pathAtoZ);
- break;
+ break;
+
+ default:
+ LOG.info(
+ "In calcPath Path FOUND path for hops {}, distance per metrics {}, path AtoZ {}",
+ pathAtoZ.size(), path.getWeight(), pathAtoZ);
+ break;
}
+ break;
}
if (shortestPathAtoZ != null) {
- LOG.info("In calcPath CHOOSEN PATH for wl [{}], hops {}, path AtoZ {}",
- pceResult.getResultWavelength(), shortestPathAtoZ.size(), shortestPathAtoZ);
+ LOG.info("In calcPath CHOOSEN PATH for wl [{}], min freq {}, max freq {}, hops {}, path AtoZ {}",
+ pceResult.getResultWavelength(), pceResult.getMinFreq(), pceResult.getMaxFreq(),
+ shortestPathAtoZ.size(), shortestPathAtoZ);
}
LOG.info("In calcPath : pceResult {}", pceResult);
return (pceResult.getStatus());
Iterator<Map.Entry<NodeId, PceNode>> nodes = allPceNodes.entrySet().iterator();
while (nodes.hasNext()) {
Map.Entry<NodeId, PceNode> node = nodes.next();
- weightedGraph.addVertex(node.getValue().getNodeId().getValue());
- LOG.debug("In populateWithNodes in node : {}", node.getValue());
+ if (State.InService.equals(node.getValue().getState())) {
+ weightedGraph.addVertex(node.getValue().getNodeId().getValue());
+ LOG.debug("In populateWithNodes in node : {}", node.getValue());
+ }
}
}
if (!validateLinkforGraph(link)) {
continue;
}
+ if (State.InService.equals(link.getState())) {
+ PceGraphEdge graphLink = new PceGraphEdge(link);
+ weightedGraph.addEdge(link.getSourceId().getValue(), link.getDestId().getValue(), graphLink);
- PceGraphEdge graphLink = new PceGraphEdge(link);
- weightedGraph.addEdge(link.getSourceId().getValue(), link.getDestId().getValue(), graphLink);
-
- weightedGraph.setEdgeWeight(graphLink, chooseWeight(link));
+ weightedGraph.setEdgeWeight(graphLink, chooseWeight(link));
+ }
}
}
return true;
case PropagationDelay :
weight = link.getLatency();
LOG.debug("In PceGraph PropagationDelay is used as a metrics. {}", link);
- if ((("1GE".equals(serviceType)) || ("10GE".equals(serviceType)) || ("ODU4".equals(serviceType)))
- && (weight == 0)) {
+ if ((weight == 0)
+ && ("1GE".equals(serviceType) || "10GE".equals(serviceType) || "ODU4".equals(serviceType))) {
LOG.warn("PropagationDelay set as metric, but latency is null: is latency set for OTN link {}?",
link);
}