lib: small BFD session notifier improvement

Cache current monotime to avoid unnecessary calls.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
This commit is contained in:
Rafael Zalamena 2021-03-02 08:52:35 -03:00
parent a099abe55b
commit 3e6376b813

View file

@ -1079,6 +1079,7 @@ static int zclient_bfd_session_update(ZAPI_CALLBACK_ARGS)
struct interface *ifp;
int remote_cbit = false;
int state = BFD_STATUS_UNKNOWN;
time_t now;
size_t addrlen;
struct prefix dp;
struct prefix sp;
@ -1119,6 +1120,9 @@ static int zclient_bfd_session_update(ZAPI_CALLBACK_ARGS)
break;
}
/* Cache current time to avoid multiple monotime clock calls. */
now = monotime(NULL);
/* Notify all matching sessions about update. */
TAILQ_FOREACH (bsp, &bsglobal.bsplist, entry) {
/* Skip disabled or not installed entries. */
@ -1151,7 +1155,7 @@ static int zclient_bfd_session_update(ZAPI_CALLBACK_ARGS)
if ((int)bsp->bss.state == state)
continue;
bsp->bss.last_event = monotime(NULL);
bsp->bss.last_event = now;
bsp->bss.previous_state = bsp->bss.state;
bsp->bss.state = state;
bsp->bss.remote_cbit = remote_cbit;