From: Ondrej Zajicek (work) Date: Fri, 17 Dec 2021 23:58:47 +0000 (+0100) Subject: Nest: Do not ignore secondary flag changes in ifa updates X-Git-Tag: v2.0.9~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b21104c97e59128973501fc23570e2d929f48923;p=thirdparty%2Fbird.git Nest: Do not ignore secondary flag changes in ifa updates Compare all IA_* flags that are set by sysdep iface code. The old code ignores IA_SECONDARY flag when comparing whether iface address updates from kernel changed anything. This is usually not an issue as kernel removes all secondary addresses due to removal of the primary one, but it breaks when sysctl 'promote_secondaries' is enabled and kernel promotes secondary addresses to primary ones. Thanks to 'Alexander' for the bugreport. --- diff --git a/nest/iface.c b/nest/iface.c index 83a633a39..682340c56 100644 --- a/nest/iface.c +++ b/nest/iface.c @@ -591,7 +591,7 @@ ifa_update(struct ifa *a) if (ipa_equal(b->brd, a->brd) && ipa_equal(b->opposite, a->opposite) && b->scope == a->scope && - !((b->flags ^ a->flags) & IA_PEER)) + !((b->flags ^ a->flags) & (IA_SECONDARY | IA_PEER | IA_HOST))) { b->flags |= IA_UPDATED; return b;