From b90250d7c3b1a6a90ac06f0826ba5ce5499376f2 Mon Sep 17 00:00:00 2001 From: esravik Date: Mon, 11 May 2015 13:27:09 +0530 Subject: [PATCH] added localDestination field to getNextHopPointer output Change-Id: Ic90238ad0eb47c3d65f51d7d338b23eb6ae4cdca Signed-off-by: esravik --- .../nexthopmgr-api/src/main/yang/l3nexthop.yang | 1 + .../vpnservice/nexthopmgr/NexthopManager.java | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/nexthopmgr/nexthopmgr-api/src/main/yang/l3nexthop.yang b/nexthopmgr/nexthopmgr-api/src/main/yang/l3nexthop.yang index 7a287b5b..8fdc6902 100644 --- a/nexthopmgr/nexthopmgr-api/src/main/yang/l3nexthop.yang +++ b/nexthopmgr/nexthopmgr-api/src/main/yang/l3nexthop.yang @@ -40,6 +40,7 @@ module l3nexthop { } output { leaf egressPointer {type uint32;} + leaf localDestination {type boolean;} } } } \ No newline at end of file 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 546e60f8..9864b61c 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 @@ -374,11 +374,19 @@ public class NexthopManager implements L3nexthopService, AutoCloseable { @Override public Future> getEgressPointer( GetEgressPointerInput input) { - long egressGroupId = - getNextHopPointer(input.getDpnId(), input.getVpnId(), input.getIpPrefix(), input.getNexthopIp()); GetEgressPointerOutputBuilder output = new GetEgressPointerOutputBuilder(); - output.setEgressPointer(egressGroupId); + + String endpointIp = interfaceManager.getEndpointIpForDpn(input.getDpnId()); + if (input.getNexthopIp().equals(endpointIp)) { + VpnNexthop vpnNextHop = getVpnNexthop(input.getVpnId(), input.getIpPrefix()); + output.setEgressPointer(vpnNextHop.getEgressPointer()); + output.setLocalDestination(true); + } else { + TunnelNexthop tunnelNextHop = getTunnelNexthop(input.getDpnId(), input.getNexthopIp()); + output.setEgressPointer(tunnelNextHop.getEgressPointer()); + output.setLocalDestination(false); + } RpcResultBuilder rpcResultBuilder = RpcResultBuilder.success(); rpcResultBuilder.withResult(output.build()); -- 2.36.6