- private List<List<Integer>> chooseTribPort(GraphPath<String, PceGraphEdge> path, Map<NodeId, PceNode> allPceNodes) {
- List<List<Integer>> tribPort = new ArrayList<>();
- boolean statusOK = true;
- boolean check = false;
- Object nodeClass = allPceNodes.getClass();
- if (nodeClass.getClass().isInstance(PceNode.class)) {
- LOG.debug("In choosetribPort: AllPceNodes contains PceNode instance, no trib port search");
- return tribPort;
- } else if (nodeClass.getClass().isInstance(PceOtnNode.class)) {
- LOG.debug("In choosetribPort: {} {}", path.getLength(), path.toString());
- for (PceGraphEdge edge : path.getEdgeList()) {
- LOG.debug("In chooseTribPort: source {} ", edge.link().getSourceId().toString());
- PceNode pceNode = allPceNodes.get(edge.link().getSourceId());
- Object tps = allPceNodes.get(edge.link().getSourceTP());
- Object tpd = allPceNodes.get(edge.link().getDestTP());
- if ((pceNode.getAvailableTribPorts().containsKey(tps.toString()))
- && (pceNode.getAvailableTribPorts().containsKey(tpd.toString()))) {
-
- List<Integer> tribPortEdgeSourceN = new ArrayList<>();
- List<Integer> tribPortEdgeDestN = new ArrayList<>();
- tribPortEdgeSourceN = pceNode.getAvailableTribPorts().get(tps.toString());
- tribPortEdgeDestN = pceNode.getAvailableTribPorts().get(tps.toString());
- check = false;
- for (int i = 0; i <= 9; i++) {
- if (tribPortEdgeSourceN.get(i) == null) {
- break;
- }
- if (tribPortEdgeSourceN.get(i) == tribPortEdgeDestN.get(i)) {
- check = true;
- } else {
- check = false;
- LOG.debug("In chooseTribPort: Misalignement of trib port between source {} and dest {}",
- edge.link().getSourceId().toString(), edge.link().getDestId().toString());
- break;
- }
- }
- if (check) {
- tribPort.add(tribPortEdgeSourceN);
- }
- } else {
- LOG.debug("In chooseTribPort: source {} does not have provisonned hosting HO interface ",
- edge.link().getSourceId().toString());
- statusOK = false;
+ private Map<String, Uint16> chooseTribPort(GraphPath<String,
+ PceGraphEdge> path, Map<NodeId, PceNode> allPceNodes) {
+ LOG.info("In choosetribPort: edgeList = {} ", path.getEdgeList());
+ Map<String, Uint16> tribPortMap = new HashMap<>();
+
+ for (PceGraphEdge edge : path.getEdgeList()) {
+ NodeId linkSrcNode = edge.link().getSourceId();
+ String linkSrcTp = edge.link().getSourceTP().toString();
+ NodeId linkDestNode = edge.link().getDestId();
+ String linkDestTp = edge.link().getDestTP().toString();
+ PceNode pceOtnNodeSrc = allPceNodes.get(linkSrcNode);
+ PceNode pceOtnNodeDest = allPceNodes.get(linkDestNode);
+ List<Uint16> srcTpnPool = pceOtnNodeSrc.getAvailableTribPorts().get(linkSrcTp);
+ List<Uint16> destTpnPool = pceOtnNodeDest.getAvailableTribPorts().get(linkDestTp);
+ List<Uint16> commonEdgeTpnPool = new ArrayList<>();
+ for (Uint16 integer : srcTpnPool) {
+ if (destTpnPool.contains(integer)) {
+ commonEdgeTpnPool.add(integer);