Stale MIP FIB/Flow entries present upon deletion of VRRP master
[netvirt.git] / fibmanager / impl / src / main / java / org / opendaylight / netvirt / fibmanager / FibUtil.java
index 08a1cb904e46e6d1250a52d0ea4b9b6f62a59343..41ca0e553807d7a75306ea3e23e21fe0ce79737e 100644 (file)
@@ -897,4 +897,20 @@ public class FibUtil {
         }
         return false;
     }
+
+    public static boolean checkFibEntryExist(DataBroker broker, String rd, String prefix, String nextHopIp) {
+        InstanceIdentifier<VrfEntry> vrfEntryId =
+                InstanceIdentifier.builder(FibEntries.class).child(VrfTables.class, new VrfTablesKey(rd))
+                        .child(VrfEntry.class, new VrfEntryKey(prefix)).build();
+        Optional<VrfEntry> entry = MDSALUtil.read(broker, LogicalDatastoreType.CONFIGURATION, vrfEntryId);
+        if (entry.isPresent()) {
+            List<RoutePaths> paths = entry.get().getRoutePaths();
+            for (RoutePaths path: paths) {
+                if (path.getNexthopAddress().equals(nextHopIp)) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
 }