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
This commit is contained in:
Wen Liang
2024-11-05 08:45:47 -05:00
committed by Wen Liang
parent eb620e0e7e
commit 883399606f

View File

@@ -3140,6 +3140,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;
}