- public void deleteRoute(InetAddress destPrefix, int prefixLength, int vpnId, String rd, long dpId) {
- LOG.info("deleting route "+destPrefix.getHostAddress()+ " "+vpnId);
+ public void deleteRoute(final long dpId, final long vpnId, final VrfTablesKey vrfTableKey,
+ final VrfEntry vrfEntry) {
+ LOG.debug("deleting route "+ vrfEntry.getDestPrefix() + " "+vpnId);
+ String rd = vrfTableKey.getRouteDistinguisher();
+ GetEgressPointerOutput adjacency = resolveAdjacency(dpId, vpnId, vrfEntry);
+ long groupId = -1;
+ boolean isLocalRoute = false;
+ if(adjacency != null) {
+ groupId = adjacency.getEgressPointer();
+ isLocalRoute = adjacency.isLocalDestination();
+ }
+ if(groupId == -1) {
+ LOG.error("Could not get nexthop group id for nexthop: {} in vpn {}",
+ vrfEntry.getNextHopAddress(), rd);
+ LOG.warn("Failed to add Route: {} in vpn: {}",
+ vrfEntry.getDestPrefix(), rd);
+ return;
+ }
+
+ makeConnectedRoute(dpId, vpnId, vrfEntry, rd, groupId, NwConstants.DEL_FLOW);