diff options
Diffstat (limited to 'zebra/interface.c')
| -rw-r--r-- | zebra/interface.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c index 23ff91faa3..15f8339c08 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -261,6 +261,12 @@ static int if_zebra_delete_hook(struct interface *ifp) if (ifp->info) { zebra_if = ifp->info; + /* If we set protodown, clear it now from the kernel */ + if (ZEBRA_IF_IS_PROTODOWN(zebra_if) && + !ZEBRA_IF_IS_PROTODOWN_ONLY_EXTERNAL(zebra_if)) + zebra_if_set_protodown(ifp, false, ZEBRA_PROTODOWN_ALL); + + /* Free installed address chains tree. */ if (zebra_if->ipv4_subnets) route_table_finish(zebra_if->ipv4_subnets); |
