mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-25 07:28:41 +00:00
lib: Speed up reconnection attempts for zapi
Currently the zapi reconnection is once every 10 seconds for the first 3 times and then once every 60 seconds from then on out. We are seeing interesting behavior under loaded systems where zebra is just slow to come up and daemons are spending a long time waiting to connect. Let's just make things a bit more aggressive. Change the code to attempt to reconnect once every second for 30 seconds and then change to once every 5 seconds from then on out. This should help with non-integrated configuration on system startup. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
parent
267dc19825
commit
fe180581bd
@ -4693,6 +4693,9 @@ void zclient_redistribute_default(int command, struct zclient *zclient,
|
||||
zebra_redistribute_default_send(command, zclient, afi, vrf_id);
|
||||
}
|
||||
|
||||
#define ZCLIENT_QUICK_RECONNECT 1
|
||||
#define ZCLIENT_SLOW_RECONNECT 5
|
||||
#define ZCLIENT_SWITCH_TO_SLOW 30
|
||||
static void zclient_event(enum zclient_event event, struct zclient *zclient)
|
||||
{
|
||||
switch (event) {
|
||||
@ -4702,11 +4705,13 @@ static void zclient_event(enum zclient_event event, struct zclient *zclient)
|
||||
break;
|
||||
case ZCLIENT_CONNECT:
|
||||
if (zclient_debug)
|
||||
zlog_debug(
|
||||
"zclient connect failures: %d schedule interval is now %d",
|
||||
zclient->fail, zclient->fail < 3 ? 10 : 60);
|
||||
zlog_debug("zclient connect failures: %d schedule interval is now %d",
|
||||
zclient->fail,
|
||||
zclient->fail < ZCLIENT_SWITCH_TO_SLOW ? ZCLIENT_QUICK_RECONNECT
|
||||
: ZCLIENT_SLOW_RECONNECT);
|
||||
event_add_timer(zclient->master, zclient_connect, zclient,
|
||||
zclient->fail < 3 ? 10 : 60,
|
||||
zclient->fail < ZCLIENT_SWITCH_TO_SLOW ? ZCLIENT_QUICK_RECONNECT
|
||||
: ZCLIENT_SLOW_RECONNECT,
|
||||
&zclient->t_connect);
|
||||
break;
|
||||
case ZCLIENT_READ:
|
||||
|
Loading…
Reference in New Issue
Block a user