mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
Merge branch 'pull/3165'
...with an additional comment. Signed-off-by: David Lamparter <equinox@diac24.net>
This commit is contained in:
commit
cd5f56bb4e
|
@ -878,6 +878,9 @@ int rib_lookup_ipv4_route(struct prefix_ipv4 *p, union sockunion *qgate,
|
|||
#define RIB_SYSTEM_ROUTE(R) \
|
||||
((R)->type == ZEBRA_ROUTE_KERNEL || (R)->type == ZEBRA_ROUTE_CONNECT)
|
||||
|
||||
#define RIB_KERNEL_ROUTE(R) \
|
||||
((R)->type == ZEBRA_ROUTE_KERNEL)
|
||||
|
||||
/* This function verifies reachability of one given nexthop, which can be
|
||||
* numbered or unnumbered, IPv4 or IPv6. The result is unconditionally stored
|
||||
* in nexthop->flags field. If the 4th parameter, 'set', is non-zero,
|
||||
|
@ -1408,8 +1411,15 @@ static void rib_process_del_fib(struct zebra_vrf *zvrf, struct route_node *rn,
|
|||
}
|
||||
|
||||
/* Update nexthop for route, reset changed flag. */
|
||||
nexthop_active_update(rn, old, 1);
|
||||
UNSET_FLAG(old->status, ROUTE_ENTRY_CHANGED);
|
||||
/* Note: this code also handles the Linux case when an interface goes
|
||||
* down, causing the kernel to delete routes without sending DELROUTE
|
||||
* notifications
|
||||
*/
|
||||
if (!nexthop_active_update(rn, old, 1) &&
|
||||
(RIB_KERNEL_ROUTE(old)))
|
||||
SET_FLAG(old->status, ROUTE_ENTRY_REMOVED);
|
||||
else
|
||||
UNSET_FLAG(old->status, ROUTE_ENTRY_CHANGED);
|
||||
}
|
||||
|
||||
static void rib_process_update_fib(struct zebra_vrf *zvrf,
|
||||
|
|
Loading…
Reference in a new issue