summaryrefslogtreecommitdiff
path: root/zebra/zebra_static.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zebra_static.c')
-rw-r--r--zebra/zebra_static.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/zebra/zebra_static.c b/zebra/zebra_static.c
index d55ec055e6..7d104f30d9 100644
--- a/zebra/zebra_static.c
+++ b/zebra/zebra_static.c
@@ -325,7 +325,7 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p, struct static_
{
/* Update route in kernel if it's in fib */
if (CHECK_FLAG(rib->status, RIB_ENTRY_SELECTED_FIB))
- rib_install_kernel (rn, rib, 1);
+ rib_install_kernel (rn, rib, rib);
/* Update redistribution if it's selected */
if (CHECK_FLAG(rib->flags, ZEBRA_FLAG_SELECTED))
redistribute_update (&rn->p, rib, NULL);
@@ -403,7 +403,8 @@ static_add_route (afi_t afi, safi_t safi, u_char type, struct prefix *p,
&& (! ifindex || ifindex == si->ifindex))
{
if ((distance == si->distance) && (tag == si->tag) &&
- !memcmp (&si->snh_label, snh_label, sizeof (struct static_nh_label)))
+ !memcmp (&si->snh_label, snh_label, sizeof (struct static_nh_label)) &&
+ si->flags == flags)
{
route_unlock_node (rn);
return 0;