From: Vishal Thapar Date: Wed, 13 May 2015 16:19:18 +0000 (+0530) Subject: Misc fixes in vpnservice X-Git-Tag: release/lithium~26 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=b82dbce9d44654fb93d944c35806f5915020a400;p=vpnservice.git Misc fixes in vpnservice 1. Fixes some issues when adding vpnInterface 2. Fixes exception when adding interface 3. Cleans up some logging. Change-Id: I97c277df16c02406951977578dd5e4568ed9e770 Signed-off-by: Vishal Thapar --- diff --git a/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java b/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java index b0e7098c..96f22c4a 100644 --- a/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java +++ b/fibmanager/fibmanager-impl/src/main/java/org/opendaylight/vpnservice/fibmanager/FibManager.java @@ -263,10 +263,11 @@ public class FibManager extends AbstractDataChangeListener implements private void makeConnectedRoute(long dpId, long vpnId, VrfEntry vrfEntry, String rd, long groupId, int addOrRemove) { + LOG.trace("makeConnectedRoute: vrfEntry {}",vrfEntry); String values[] = vrfEntry.getDestPrefix().split("/"); - LOG.debug("Adding route to DPN. ip {} masklen {}", values[0], values[1]); String ipAddress = values[0]; - int prefixLength = Integer.parseInt(values[1]); + int prefixLength = (values.length == 1) ? 32 : Integer.parseInt(values[1]); + LOG.debug("Adding route to DPN. ip {} masklen {}", ipAddress, prefixLength); InetAddress destPrefix = null; try { destPrefix = InetAddress.getByName(ipAddress); @@ -293,7 +294,8 @@ public class FibManager extends AbstractDataChangeListener implements if(addOrRemove == NwConstants.ADD_FLOW) { actionsInfos.add(new ActionInfo(ActionType.group, new String[] { String.valueOf(groupId)})); - actionsInfos.add(new ActionInfo(ActionType.push_mpls, new String[] { Long.toString(vrfEntry.getLabel())})); + actionsInfos.add(new ActionInfo(ActionType.push_mpls, new String[] { null })); + actionsInfos.add(new ActionInfo(ActionType.set_field_mpls_label, new String[] { Long.toString(vrfEntry.getLabel())})); instructions.add(new InstructionInfo(InstructionType.write_actions, actionsInfos)); } @@ -338,7 +340,7 @@ public class FibManager extends AbstractDataChangeListener implements } else { mdsalManager.removeFlow(flowEntity); } - LOG.debug("LFIB Entry for dpID {} : label : {} grpup {} modified successfully {}",dpId, label, groupId ); + LOG.debug("LFIB Entry for dpID {} : label : {} group {} modified successfully {}",dpId, label, groupId ); } private String getFlowRef(long dpnId, short tableId, long label, String nextHop) { diff --git a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/InterfaceManager.java b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/InterfaceManager.java index 7737e010..d494ab55 100644 --- a/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/InterfaceManager.java +++ b/interfacemgr/interfacemgr-impl/src/main/java/org/opendaylight/vpnservice/interfacemgr/InterfaceManager.java @@ -439,7 +439,7 @@ public class InterfaceManager extends AbstractDataChangeListener impl //TODO: This should be an MDSAL Util method return Long.parseLong(IfmUtil.getDpnFromNodeConnectorId(port.getId())); } catch (NullPointerException e) { - LOG.error("OFPort for Interface {} not found", ifName); + LOG.error("dpn for Interface {} not found", ifName); } return 0L; } diff --git a/nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/NexthopManager.java b/nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/NexthopManager.java index a8f411c7..571cdce3 100644 --- a/nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/NexthopManager.java +++ b/nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/NexthopManager.java @@ -64,7 +64,7 @@ public class NexthopManager implements L3nexthopService, AutoCloseable { private static final FutureCallback DEFAULT_CALLBACK = new FutureCallback() { public void onSuccess(Void result) { - LOG.info("Success in Datastore write operation"); + LOG.debug("Success in Datastore write operation"); } public void onFailure(Throwable error) { LOG.error("Error in Datastore write operation", error); @@ -159,6 +159,7 @@ public class NexthopManager implements L3nexthopService, AutoCloseable { long vpnId = getVpnId(vpnName); long dpnId = interfaceManager.getDpnForInterface(ifName); VpnNexthop nexthop = getVpnNexthop(vpnId, ipAddress); + LOG.trace("nexthop: {}", nexthop); if (nexthop == null) { List listBucketInfo = new ArrayList(); List listActionInfo = interfaceManager.getInterfaceEgressActions(ifName); @@ -230,7 +231,7 @@ public class NexthopManager implements L3nexthopService, AutoCloseable { InstanceIdentifier id1 = idBuilder .child(VpnNexthop.class, new VpnNexthopKey(ipPrefix)).build(); - + LOG.trace("Adding nextHop {} to Operational DS", nh); asyncWrite(LogicalDatastoreType.OPERATIONAL, id1, nh, DEFAULT_CALLBACK); } @@ -382,6 +383,7 @@ public class NexthopManager implements L3nexthopService, AutoCloseable { GetEgressPointerOutputBuilder output = new GetEgressPointerOutputBuilder(); String endpointIp = interfaceManager.getEndpointIpForDpn(input.getDpnId()); + LOG.trace("getEgressPointer: input {}, endpointIp {}", input, endpointIp); if (input.getNexthopIp().equals(endpointIp)) { VpnNexthop vpnNextHop = getVpnNexthop(input.getVpnId(), input.getIpPrefix()); output.setEgressPointer(vpnNextHop.getEgressPointer()); diff --git a/nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/OdlInterfaceChangeListener.java b/nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/OdlInterfaceChangeListener.java index e8a5bc2e..69cce9f9 100644 --- a/nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/OdlInterfaceChangeListener.java +++ b/nexthopmgr/nexthopmgr-impl/src/main/java/org/opendaylight/vpnservice/nexthopmgr/OdlInterfaceChangeListener.java @@ -8,6 +8,8 @@ package org.opendaylight.vpnservice.nexthopmgr; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; + import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.DataChangeListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; @@ -69,14 +71,18 @@ public class OdlInterfaceChangeListener extends AbstractDataChangeListener identifier, Interface intrf) { - LOG.info("key: " + identifier + ", value=" + intrf ); + LOG.trace("key: " + identifier + ", value=" + intrf ); if (intrf.getType().equals(L3tunnel.class)) { IfL3tunnel intfData = intrf.getAugmentation(IfL3tunnel.class); - String gwIp = intfData.getGatewayIp().toString(); - String remoteIp = intfData.getRemoteIp().toString(); + IpAddress gatewayIp = intfData.getGatewayIp(); + String gwIp = (gatewayIp == null) ? null : gatewayIp.toString(); + String remoteIp = null; if (gwIp != null) { remoteIp = gwIp; + } else { + IpAddress remIp = intfData.getRemoteIp(); + remoteIp = (remIp == null) ? null : remIp.toString(); } NodeConnectorId ofPort = intrf.getAugmentation(BaseIds.class).getOfPortId(); nexthopManager.createRemoteNextHop(intrf.getName(), ofPort.toString(), remoteIp); diff --git a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnInterfaceManager.java b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnInterfaceManager.java index 3221a474..4dce70d2 100644 --- a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnInterfaceManager.java +++ b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnInterfaceManager.java @@ -178,20 +178,23 @@ public class VpnInterfaceManager extends AbstractDataChangeListener interfaceId = VpnUtil.getVpnInterfaceIdentifier(intfName); asyncWrite(LogicalDatastoreType.OPERATIONAL, interfaceId, opInterface, DEFAULT_CALLBACK); + for (Adjacency nextHop : nextHops) { + String key = nextHop.getIpAddress(); + long label = getUniqueId(key); + updatePrefixToBGP(rd, nextHop, nextHopIp, label); + } } }