From c3c80a63a22a1cc281e151beda88d926bb2822bf Mon Sep 17 00:00:00 2001 From: Wen Liang Date: Tue, 5 Nov 2024 08:45:47 -0500 Subject: [PATCH] l3cfg: never retry ACD on NOARP interfaces After upgrading to RHEL-9.4, customers have reported that `ip monitor` repeatedly logs the same route additions every 30 seconds. This issue appears to stem from NetworkManager continually retrying to add the same routes due to keep retrying Address Conflict Detection (ACD) on NOARP interfaces. To prevent unnecessary route additions and reduce log noise, this change modifies NetworkManager's behavior to stop retrying ACD on interfaces with the NOARP flag. This fix addresses route instability and excessive logging for affected NOARP configurations. https://issues.redhat.com/browse/RHEL-59125 (cherry picked from commit 883399606f9e7807f59cdd1523926bc28989b51f) (cherry picked from commit 429a4d1996c17572d77f04e4f7aea3cef648d1c8) --- src/core/nm-l3cfg.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/core/nm-l3cfg.c b/src/core/nm-l3cfg.c index 83a02af521..a7189d3e60 100644 --- a/src/core/nm-l3cfg.c +++ b/src/core/nm-l3cfg.c @@ -3143,6 +3143,15 @@ handle_start_defending: * warning and start a timer to retry. This way (of having a timer pending) * we also back off and are rate limited from retrying too frequently. */ _LOGT_acd(acd_data, "start announcing failed to create probe (%s)", failure_reason); + + if (!nm_platform_link_uses_arp(self->priv.platform, self->priv.ifindex)) { + _LOGT_acd( + acd_data, + "give up on ACD and never retry since interface '%s' is configured with NOARP", + nmp_object_link_get_ifname(self->priv.plobj)); + return; + } + _l3_acd_data_timeout_schedule(acd_data, ACD_WAIT_TIME_ANNOUNCE_RESTART_MSEC); return; }