Skip to content

Commit

Permalink
Merge pull request #16175 from FRRouting/mergify/bp/stable/10.0/pr-16170
Browse files Browse the repository at this point in the history
nhrpd: cleans up shortcut cache entries on termination (backport #16170)
  • Loading branch information
Jafaral authored Jun 6, 2024
2 parents 4930253 + 69807d7 commit 9285b37
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
4 changes: 2 additions & 2 deletions nhrpd/nhrp_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,13 @@ static void nhrp_request_stop(void)
debugf(NHRP_DEBUG_COMMON, "Exiting...");
frr_early_fini();

vrf_terminate();
nhrp_shortcut_terminate();
nhrp_nhs_terminate();
nhrp_zebra_terminate();
vici_terminate();
evmgr_terminate();
vrf_terminate();
nhrp_vc_terminate();
nhrp_shortcut_terminate();

debugf(NHRP_DEBUG_COMMON, "Done.");

Expand Down
12 changes: 8 additions & 4 deletions nhrpd/nhrp_shortcut.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ DEFINE_MTYPE_STATIC(NHRPD, NHRP_SHORTCUT, "NHRP shortcut");
static struct route_table *shortcut_rib[AFI_MAX];

static void nhrp_shortcut_do_purge(struct event *t);
static void nhrp_shortcut_delete(struct nhrp_shortcut *s);
static void nhrp_shortcut_delete(struct nhrp_shortcut *s,
void *arg __attribute__((__unused__)));
static void nhrp_shortcut_send_resolution_req(struct nhrp_shortcut *s);

static void nhrp_shortcut_check_use(struct nhrp_shortcut *s)
Expand Down Expand Up @@ -72,7 +73,7 @@ static void nhrp_shortcut_cache_notify(struct notifier_block *n,
s->route_installed = 0;
}
if (cmd == NOTIFY_CACHE_DELETE)
nhrp_shortcut_delete(s);
nhrp_shortcut_delete(s, NULL);
break;
}
}
Expand Down Expand Up @@ -132,7 +133,8 @@ static void nhrp_shortcut_update_binding(struct nhrp_shortcut *s,
}
}

static void nhrp_shortcut_delete(struct nhrp_shortcut *s)
static void nhrp_shortcut_delete(struct nhrp_shortcut *s,
void *arg __attribute__((__unused__)))
{
struct route_node *rn;
afi_t afi = family2afi(PREFIX_FAMILY(s->p));
Expand All @@ -158,7 +160,7 @@ static void nhrp_shortcut_do_purge(struct event *t)
{
struct nhrp_shortcut *s = EVENT_ARG(t);
s->t_timer = NULL;
nhrp_shortcut_delete(s);
nhrp_shortcut_delete(s, NULL);
}

static struct nhrp_shortcut *nhrp_shortcut_get(struct prefix *p)
Expand Down Expand Up @@ -469,6 +471,8 @@ void nhrp_shortcut_init(void)

void nhrp_shortcut_terminate(void)
{
nhrp_shortcut_foreach(AFI_IP, nhrp_shortcut_delete, NULL);
nhrp_shortcut_foreach(AFI_IP6, nhrp_shortcut_delete, NULL);
route_table_finish(shortcut_rib[AFI_IP]);
route_table_finish(shortcut_rib[AFI_IP6]);
}
Expand Down

0 comments on commit 9285b37

Please sign in to comment.