mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 12:49:18 +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) {
|
if (zebra_pw_check_reachability(pw) < 0) {
|
||||||
zebra_pw_uninstall(pw);
|
zebra_pw_uninstall(pw);
|
||||||
zebra_pw_install_failure(pw, PW_NOT_FORWARDING);
|
|
||||||
/* wait for NHT and try again later */
|
/* wait for NHT and try again later */
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
@ -167,6 +166,14 @@ static void zebra_pw_install(struct zebra_pw *pw)
|
|||||||
|
|
||||||
hook_call(pw_install, pw);
|
hook_call(pw_install, pw);
|
||||||
if (dplane_pw_install(pw) == ZEBRA_DPLANE_REQUEST_FAILURE) {
|
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);
|
zebra_pw_install_failure(pw, PW_NOT_FORWARDING);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user