mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-12 11:18:59 +00:00
zebra: Static route does not reach kernel.
A static route like below: ip route 172.16.1.0/30 192.168.101.162 11 does not move properly to a new interface when the interface used goes down. Zebra reports that it have moved but kernel isn't informed so the route is lost. * zebra_rib.c: (nexthop_active_update) if ifindex has changed, then the route should be considered to have changed. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
This commit is contained in:
parent
3f4ab7f9e9
commit
c3a5606302
@ -905,7 +905,7 @@ static int
|
|||||||
nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
|
nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
|
||||||
{
|
{
|
||||||
struct nexthop *nexthop;
|
struct nexthop *nexthop;
|
||||||
int prev_active, new_active;
|
int prev_active, prev_index, new_active;
|
||||||
|
|
||||||
rib->nexthop_active_num = 0;
|
rib->nexthop_active_num = 0;
|
||||||
UNSET_FLAG (rib->flags, ZEBRA_FLAG_CHANGED);
|
UNSET_FLAG (rib->flags, ZEBRA_FLAG_CHANGED);
|
||||||
@ -913,9 +913,11 @@ nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
|
|||||||
for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
|
for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
|
||||||
{
|
{
|
||||||
prev_active = CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
|
prev_active = CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
|
||||||
|
prev_index = nexthop->ifindex;
|
||||||
if ((new_active = nexthop_active_check (rn, rib, nexthop, set)))
|
if ((new_active = nexthop_active_check (rn, rib, nexthop, set)))
|
||||||
rib->nexthop_active_num++;
|
rib->nexthop_active_num++;
|
||||||
if (prev_active != new_active)
|
if (prev_active != new_active ||
|
||||||
|
prev_index != nexthop->ifindex)
|
||||||
SET_FLAG (rib->flags, ZEBRA_FLAG_CHANGED);
|
SET_FLAG (rib->flags, ZEBRA_FLAG_CHANGED);
|
||||||
}
|
}
|
||||||
return rib->nexthop_active_num;
|
return rib->nexthop_active_num;
|
||||||
|
Loading…
Reference in New Issue
Block a user