summaryrefslogtreecommitdiff
path: root/lib/if.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2020-08-20 14:42:56 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2020-08-28 07:51:06 -0400
commite7ff02539c22d6fde61844640bc1659e8588c09b (patch)
tree3e6d22c0c7518ec317b78742830ca213f7b89854 /lib/if.c
parent7cbdabffb6c11570e62e71a8b2818511c4756c60 (diff)
lib: Note old ifindex on shutdown
If we have an interface configured in a daemon on shutdown store the old ifindex value for retrieval on when it is possibly recreated. This is especially important for nexthop groups as that we had at one point in time the ability to restore the configuration but it was lost when we started deleting all deleted interfaces. We need the nexthop group subsystem to also mark that it has configured an interface. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'lib/if.c')
-rw-r--r--lib/if.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/if.c b/lib/if.c
index d8392708e1..10db574dc4 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -188,7 +188,9 @@ void if_destroy_via_zapi(struct interface *ifp)
if (ifp_master.destroy_hook)
(*ifp_master.destroy_hook)(ifp);
+ ifp->oldifindex = ifp->ifindex;
if_set_index(ifp, IFINDEX_INTERNAL);
+
if (!ifp->configured)
if_delete(&ifp);
}