mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 15:33:56 +00:00
nhrpd: Clear cache when shortcuts are cleared
This is required because with the cache entry in place traffic will continue via the shortcut path until the cache entry expires. Signed-off-by: Reuben Dowle <reuben.dowle@4rf.com>
This commit is contained in:
parent
32dbbf1a10
commit
2b55509d6c
@ -1076,7 +1076,8 @@ static void clear_nhrp_cache(struct nhrp_cache *c, void *data)
|
|||||||
if (c->cur.type <= NHRP_CACHE_DYNAMIC) {
|
if (c->cur.type <= NHRP_CACHE_DYNAMIC) {
|
||||||
nhrp_cache_update_binding(c, c->cur.type, -1, NULL, 0, NULL,
|
nhrp_cache_update_binding(c, c->cur.type, -1, NULL, 0, NULL,
|
||||||
NULL);
|
NULL);
|
||||||
ctx->count++;
|
if (ctx)
|
||||||
|
ctx->count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1106,6 +1107,12 @@ DEFUN(clear_nhrp, clear_nhrp_cmd,
|
|||||||
nhrp_cache_foreach(ifp, clear_nhrp_cache, &ctx);
|
nhrp_cache_foreach(ifp, clear_nhrp_cache, &ctx);
|
||||||
} else {
|
} else {
|
||||||
nhrp_shortcut_foreach(ctx.afi, clear_nhrp_shortcut, &ctx);
|
nhrp_shortcut_foreach(ctx.afi, clear_nhrp_shortcut, &ctx);
|
||||||
|
/* Clear cache also because when a shortcut is cleared then its
|
||||||
|
* cache entry should be cleared as well (otherwise traffic
|
||||||
|
* continues via the shortcut path)
|
||||||
|
*/
|
||||||
|
FOR_ALL_INTERFACES (vrf, ifp)
|
||||||
|
nhrp_cache_foreach(ifp, clear_nhrp_cache, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ctx.count) {
|
if (!ctx.count) {
|
||||||
|
Loading…
Reference in New Issue
Block a user