diff options
| author | Karen Schoener <karen@voltanet.io> | 2020-12-08 09:44:27 -0500 | 
|---|---|---|
| committer | Karen Schoener <karen@volta.io> | 2020-12-09 08:41:42 -0500 | 
| commit | cb135cc94303d2581987645f124bd6d4cecd80a6 (patch) | |
| tree | 5dd374ddd2105b3a82439ec1c4e8ea686b5e55d0 /isisd/isis_ldp_sync.h | |
| parent | b64e1733746a2cabb5b25b283407c095fc1c8c3a (diff) | |
isisd, ospfd: IGPs detect LDP down via zapi client close message
When ldp-sync is configured, IGPs take action if the LDP process goes down.
Currently, IGPs detect the LDP process is down if they do not receive a
periodic 'hello' message from LDP within 1 second.
Intermittently, this heartbeat mechanism causes false topotest failures.
When the failure occurs, LDP is busy receiving messages from zebra for a
few seconds.  During this time, LDP does not send the expected periodic
message.
With this change, IGPs detect LDP down via zapi client close message.
Signed-off-by: Karen Schoener <karen@voltanet.io>
Diffstat (limited to 'isisd/isis_ldp_sync.h')
| -rw-r--r-- | isisd/isis_ldp_sync.h | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/isisd/isis_ldp_sync.h b/isisd/isis_ldp_sync.h index 61ac946078..1b6058c5c9 100644 --- a/isisd/isis_ldp_sync.h +++ b/isisd/isis_ldp_sync.h @@ -20,6 +20,8 @@  #ifndef _ZEBRA_ISIS_LDP_SYNC_H  #define _ZEBRA_ISIS_LDP_SYNC_H +#include "zclient.h" +  /* Macro to log debug message */  #define ils_debug(...)                                                         \  	do {                                                                   \ @@ -36,6 +38,8 @@ extern void isis_ldp_sync_if_start(struct isis_circuit *circuit,  extern void isis_ldp_sync_if_remove(struct isis_circuit *circuit, bool remove);  extern void isis_ldp_sync_if_complete(struct isis_circuit *circuit);  extern void isis_ldp_sync_holddown_timer_add(struct isis_circuit *circuit); +extern void +isis_ldp_sync_handle_client_close(struct zapi_client_close_info *info);  extern void isis_ldp_sync_hello_timer_add(void);  extern void isis_ldp_sync_ldp_fail(struct isis_circuit *circuit);  extern int isis_ldp_sync_state_update(struct ldp_igp_sync_if_state state);  | 
