From: Suraj Ranjan Date: Fri, 15 Apr 2016 07:22:30 +0000 (+0530) Subject: Clean up subnet routes when vpn is out of a dpn. X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=vpnservice.git;a=commitdiff_plain;h=9623d5d491778f4d5de823e53f583b74710c810f;ds=sidebyside Clean up subnet routes when vpn is out of a dpn. Fix to clean up subnet route flows on a dpn for a vpn when the vpn is removed from that dpn. Change-Id: I8fe43b3c80493f72fc08a1801d2a6cb81260f79a Signed-off-by: Suraj Ranjan Co-Authored-By: Vivekanandan Narasimhan --- 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 b9906ada..57a336e7 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 @@ -778,6 +778,17 @@ public class FibManager extends AbstractDataChangeListener implements Optional vrfTable = FibUtil.read(broker, LogicalDatastoreType.CONFIGURATION, id); if (vrfTable.isPresent()) { for (VrfEntry vrfEntry : vrfTable.get().getVrfEntry()) { + /* Handle subnet routes here */ + RdToElanOpEntry rdToElanOpEntry= getRdToElanOpEntry(broker, rd, + vrfEntry.getDestPrefix()); + if (rdToElanOpEntry != null) { + LOG.trace("Cleaning subnetroute {} on dpn {} for vpn {} : cleanUpDpnForVpn", vrfEntry.getDestPrefix(), + dpnId, rd); + makeConnectedRoute(dpnId, vpnId, vrfEntry, rd, null, NwConstants.DEL_FLOW); + makeLFibTableEntry(dpnId, vrfEntry.getLabel(), null, + vrfEntry.getNextHopAddress(),NwConstants.DEL_FLOW); + continue; + } // Passing null as we don't know the dpn // to which prefix is attached at this point deleteRemoteRoute(null, dpnId, vpnId, vrfTable.get().getKey(), vrfEntry);