Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vrrp: fix persistent FAULT state with use_vmac on a down base interface #2277

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

louis-6wind
Copy link
Contributor

If the base interface of VMAC is down at startup, the VRRP instance will remain on FAULT state even if the base interface is set up.

Since the base interface is down, the VMAC operational state is also down and there is no operational IPv6 address. keepalived increments vrrp->num_script_if_fault. When the interface comes up, the link-local IPv6 address is set but vrrp->num_script_if_fault is not decremented. keepalived considers that there is still a remaining fault and keeps the VRRP instance in FAULT state.

Increment vrrp->num_script_if_fault when an IPv6 appears on the VMAC.

Fixes: 4c7a94a ("vrrp: Make VMAC IPv6 link local address mirror parent interface")

If the base interface of VMAC is down at startup, the VRRP instance will
remain on FAULT state even if the base interface is set up.

keepalived uses a vrrp->num_script_if_fault fault counter that
is incremented when there is a new fault and decremented when the fault
is recovered. When the counter equals to zero, it considers there is no
fault. try_up_instance() is used to decrease the counter. Since
4c7a94a ("vrrp: Make VMAC IPv6 link local address mirror parent
interface"), it was not called anymore when a IPv6 link-local was back
on the VMAC interface.

Increment vrrp->num_script_if_fault when an IPv6 appears on the VMAC.

Fixes: 4c7a94a ("vrrp: Make VMAC IPv6 link local address mirror parent interface")
Signed-off-by: Louis Scalbert <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant