diff options
| author | Mark Stapp <mstapp@nvidia.com> | 2021-11-16 13:38:31 -0500 | 
|---|---|---|
| committer | Mark Stapp <mstapp@nvidia.com> | 2022-03-08 16:16:55 -0500 | 
| commit | 2472d3e876dddbbae32e59209c49cefd432bd76b (patch) | |
| tree | 66343080e99cc05a82d8e9d091aa193d1f6a0070 /zebra/interface.c | |
| parent | 583ba572b7d4c486d1aba86de864e142cea433a2 (diff) | |
zebra: shutdown doesn't uninstall zebra's NHGs
When an interface goes down, it signals any related NHGs to
re-validate themselves. During zebra shutdown, ensure we remove
any NHGs we've installed.
Signed-off-by: Mark Stapp <mstapp@nvidia.com>
Diffstat (limited to 'zebra/interface.c')
| -rw-r--r-- | zebra/interface.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/zebra/interface.c b/zebra/interface.c index fbd2aac005..cefc39ab46 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -224,9 +224,13 @@ static int if_zebra_new_hook(struct interface *ifp)  static void if_nhg_dependents_check_valid(struct nhg_hash_entry *nhe)  {  	zebra_nhg_check_valid(nhe); -	if (!CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_VALID)) -		/* Assuming uninstalled as well here */ -		UNSET_FLAG(nhe->flags, NEXTHOP_GROUP_INSTALLED); +	if (!CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_VALID)) { +		/* If we're in shutdown, this interface event needs to clean +		 * up installed NHGs, so don't clear that flag directly. +		 */ +		if (!zrouter.in_shutdown) +			UNSET_FLAG(nhe->flags, NEXTHOP_GROUP_INSTALLED); +	}  }  static void if_down_nhg_dependents(const struct interface *ifp)  | 
