diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2024-10-04 09:51:46 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2024-10-07 20:36:45 -0400 | 
| commit | a8af2b2a9d0f9fe059f645ee033087a293ab6b35 (patch) | |
| tree | 9883ae6e74110cdbc5ad3d76c4cdc2f7792d2583 /zebra | |
| parent | f50b1f7c226753c1f4c0ccfeeb78271106924cd8 (diff) | |
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>
Diffstat (limited to 'zebra')
| -rw-r--r-- | zebra/zebra_pw.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/zebra/zebra_pw.c b/zebra/zebra_pw.c index d7128a1f39..c8ffaf0bbe 100644 --- a/zebra/zebra_pw.c +++ b/zebra/zebra_pw.c @@ -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;  	}  | 
