summaryrefslogtreecommitdiff
path: root/lib/bfd.c
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2024-12-04 07:37:00 -0500
committerGitHub <noreply@github.com>2024-12-04 07:37:00 -0500
commit0b26493ea638b31ff52c8fc2e493dca5087658db (patch)
tree3f238c87aa1e48445c9eb58579860ba6592debe1 /lib/bfd.c
parent1e23469c99b4373d677d99a8327e3d13283bdddb (diff)
parent595a608498f85b3e35fe6530681fefb2b119e727 (diff)
Merge pull request #17574 from opensourcerouting/fix/backports_fix_branch
Stabilize stable/10.2
Diffstat (limited to 'lib/bfd.c')
-rw-r--r--lib/bfd.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/bfd.c b/lib/bfd.c
index 4535fc1233..bc4b1c5b51 100644
--- a/lib/bfd.c
+++ b/lib/bfd.c
@@ -32,6 +32,8 @@ enum bfd_session_event {
BSE_UNINSTALL,
/** Install the BFD session configuration. */
BSE_INSTALL,
+ /** We should install but it couldn't because of a error talking to zebra */
+ BSE_VALID_FOR_INSTALL,
};
/**
@@ -527,6 +529,10 @@ static void _bfd_sess_send(struct event *t)
vrf_id_to_name(bsp->args.vrf_id), bsp->args.vrf_id,
bsp->lastev == BSE_INSTALL ? "installed"
: "uninstalled");
+
+ bsp->installed = false;
+ if (bsp->lastev == BSE_INSTALL)
+ bsp->lastev = BSE_VALID_FOR_INSTALL;
}
}
@@ -883,7 +889,7 @@ int zclient_bfd_session_replay(ZAPI_CALLBACK_ARGS)
/* Replay all activated peers. */
TAILQ_FOREACH (bsp, &bsglobal.bsplist, entry) {
/* Skip not installed sessions. */
- if (!bsp->installed)
+ if (!bsp->installed && bsp->lastev != BSE_VALID_FOR_INSTALL)
continue;
/* We are reconnecting, so we must send installation. */