network: neighbor: Always add neighbors with replace
authorWilliam A. Kennington III <william@wkennington.com>
Tue, 27 Apr 2021 08:25:58 +0000 (01:25 -0700)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 11 May 2021 08:14:45 +0000 (10:14 +0200)
commitcbbe6f78b7839bae605e0296f5d2ae2e3baa04a9
tree7c48993e872794074eddce0b3018717a8e41f715
parent324fd34842eb4d2ffaf4502308d5111c754b4856
network: neighbor: Always add neighbors with replace

We were duplicating setting flags for the message and a combination of
NLM_F_APPEND and NLM_F_CREATE which does not make sense. We should have
been using NLM_F_REPLACE and NLM_F_CREATE since the kernel can
dynamically create neighbors prior to us adding an entry. Otherwise, we
can end up with cases where the message will time out after ~25s even
though the neighbor still gets added. This delays the rest of the setup
of the interface even though the error is ultimately ignored.

(cherry picked from commit 192a9d95ea3e058afd824d38a9cea16ad0a84a57)
src/libsystemd/sd-netlink/rtnl-message.c
src/network/networkd-neighbor.c