diff options
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r-- | zebra/zebra_rib.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index d4395db1..5ea93112 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -2013,6 +2013,13 @@ rib_delete_ipv4 (int type, int flags, struct prefix_ipv4 *p, inet_ntoa (*gate), ifindex); + if (IS_ZEBRA_DEBUG_KERNEL && !gate) + zlog_debug ("rib_delete_ipv4(): route delete %s/%d directly, %s ifindex %d", + inet_ntop (AF_INET, &p->prefix, buf1, BUFSIZ), + p->prefixlen, + ifindex2ifname(ifindex), + ifindex); + /* Lookup route node. */ rn = route_node_lookup (table, (struct prefix *) p); if (! rn) @@ -2059,7 +2066,7 @@ rib_delete_ipv4 (int type, int flags, struct prefix_ipv4 *p, break; } /* Make sure that the route found has the same gateway. */ - else if (gate == NULL || + else if (gate != NULL && ((nexthop = rib->nexthop) && (IPV4_ADDR_SAME (&nexthop->gate.ipv4, gate) || IPV4_ADDR_SAME (&nexthop->rgate.ipv4, gate)))) |