/** * Method to add a new TE LSP from a previous Path message received * * @param lsp * @param path */ public void forwardRSVPpath(LSPTE lsp, RSVPTEPathMessage path) throws LSPCreationException { log.info("Forwarding and Processing RSVP Path Message"); int nodeType = LSPParameters.LSP_NODE_TYPE_TRANSIT; if (lsp == null) log.info("Cosa Mala..."); if (lsp.getIdDestination() == null) log.info("IPDest is null"); if (localIP == null) log.info("IPLocal is null"); log.info( "Comparando: " + lsp.getIdDestination().getHostAddress() + " y " + localIP.getHostAddress()); if ((lsp.getIdDestination().getHostAddress()).equals(localIP.getHostAddress())) { nodeType = LSPParameters.LSP_NODE_TYPE_DESTINATION; log.info("New LSP, I am node Destination!"); } /* log.info("localIP.getHostAddress()::"+localIP.getHostAddress()); if(localIP.getHostAddress().equals("192.168.1.8")) { } if(localIP.getHostAddress().equals("192.168.1.9")) { nodeType = LSPParameters.LSP_NODE_TYPE_DESTINATION; } */ // DESTINATION NODE // if (nodeType == LSPParameters.LSP_NODE_TYPE_DESTINATION) { // crear el RSPV RESV y enviarlo de vuelta RSVPTEResvMessage resv = new RSVPTEResvMessage(); resv = resourceManager.getRSVPResvMessageFromDestination(path, lsp); LSPKey key = new LSPKey(lsp.getIdSource(), lsp.getIdLSP()); // Guardamos el LSP en la lista LSPList.put(key, lsp); // Enviamos el mensaje if (resv != null) { Inet4Address prox = resourceManager.getPreviousHopIPv4List().get(key); timeEnd_Node = System.nanoTime(); log.info("LSP Time Path Node Process (ms): " + ((timeEnd_Node - timeIni_Node) / 1000000)); log.info("Sending RSVP Resv message to " + prox.toString() + " !"); sendRSVPMessage(resv, prox); } // TRANSIT NODE // } else if (nodeType == LSPParameters.LSP_NODE_TYPE_TRANSIT) { log.info("New LSP, I am transit node"); ERO eroRSVP = new ERO(); LinkedList<EROSubobject> clone = (LinkedList<EROSubobject>) path.getEro().getEroSubobjects().clone(); eroRSVP.setEroSubobjects(clone); lsp.setEro(eroRSVP); boolean check = resourceManager.checkResources(lsp); if (check == false) { log.info("Error! No Resources in the Node!"); throw new LSPCreationException(LSPCreationErrorTypes.NO_RESOURCES); } else { LSPKey key = new LSPKey(lsp.getIdSource(), lsp.getIdLSP()); // Put the LSP in the list LSPList.put(key, lsp); RSVPTEPathMessage NewPath = resourceManager.forwardRSVPpath(lsp, path); timeEnd_Node = System.nanoTime(); log.info( "LSP Time to Process RSVP Path in Node (ms): " + ((timeEnd_Node - timeIni_Node) / 1000000)); Inet4Address prox = (resourceManager.getProxHopIPv4List()).get(key); log.info("Sending the RSVP PATH message to " + prox.toString() + " !"); sendRSVPMessage(NewPath, prox); } } }