mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 10:54:47 +00:00
zebra: Do not retry in 30 seconds on pw reachability failure
Currently the zebra pw code has setup a retry to install the pw after 30 seconds when it is decided that reachability to the pw is gone. This causes a failure mode where the pw code just goes and re-installs the pw after 30 seconds in the non-reachability case. Instead it should just be reinstalling after reachability is restored. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
parent
f50b1f7c22
commit
a8af2b2a9d
@ -147,7 +147,6 @@ void zebra_pw_update(struct zebra_pw *pw)
|
||||
{
|
||||
if (zebra_pw_check_reachability(pw) < 0) {
|
||||
zebra_pw_uninstall(pw);
|
||||
zebra_pw_install_failure(pw, PW_NOT_FORWARDING);
|
||||
/* wait for NHT and try again later */
|
||||
} else {
|
||||
/*
|
||||
@ -167,6 +166,14 @@ static void zebra_pw_install(struct zebra_pw *pw)
|
||||
|
||||
hook_call(pw_install, pw);
|
||||
if (dplane_pw_install(pw) == ZEBRA_DPLANE_REQUEST_FAILURE) {
|
||||
/*
|
||||
* Realistically this is never going to fail passing
|
||||
* the pw data down to the dplane. The failure modes
|
||||
* look like impossible events but we still return
|
||||
* on them.... but I don't see a real clean way to remove this
|
||||
* at all. So let's just leave the retry mechanism for
|
||||
* the moment.
|
||||
*/
|
||||
zebra_pw_install_failure(pw, PW_NOT_FORWARDING);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user