https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221146
--- Comment #28 from Johan Ström <jo...@stromnet.se> --- Michael, thanks for the quick pointer! Setting net.inet.carp.senderr_demotion_factor=0 makes CARP no longer react this way to individual up/down of underlying lagg interfaces. Instead I just get "carp: demoted by 0 to 0 (send error 50 on vlan18)", and no CARP change. As for this "send error 50", I assume 50 is ENETDOWN, so for some reason the lagg driver signals this for a brief moment while changing it's setup. Not sure how to proceed in hunting down the root cause for that, but this is not really a super critical setup, mostly doing this for experimenting. For the record, the other end is a HP 1820-24G (J9980A) and the lagg config is "laggproto lacp laggport ix0 laggport ix1 laggport ix2 laggport ix3" (unrelated carp rambling below:) Regarding why it did not automatically come back when net.inet.carp.preempt=0, it's of course by design.. In carp(4) DESCRIPTION section for this sysctl (and on when googling it and reading up on it a bit, and studying the carp source) it's clear that it is actually a way to make it more aggressive in enforcing that the node with the lower advskew is always MASTER. With =0 it won't go in until it stops seeing the current master, regardless of advskew. In the EXAMPLE section of carp(4) the same option is described as a way to make multiple interfaces change state at the same time, so I had missed the above fact: "When one of the physical interfaces of host A fails, advskew is demoted to a configured value on all its carp vhids. Due to the preempt option, host B would start announcing itself, and thus preempt host A on both interfaces instead of just the failed one." One thing about the text above which almost bit me (as in thinking it was not behaving as expected) was this: If I (on the current master with lower advskew) deconfigured a VLAN from the LACP VLAN trunk of current master, the other node no longer sees the masters announcements, and takes over as master. This only happened for that particular VLAN though, and that confused me.. Doesn't the EXAMPLE say that it should affect all all interfaces when preempt=1? Yes, for *ifdown* events... In this scenario it just stopped seeing any incoming traffic in that VLAN... so ofcourse it did not demote the other interfaces, which it would have done with the value of net.inet.carp.ifdown_demotion_factor if the interface actually went down.. Sorry for my rambling, but perhaps someone else (or me, when I have forgotten the details) might stumble upon it in the future and can benefit from it! -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ freebsd-net@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"