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>
Thu, 6 May 2021 12:51:08 +0000 (14:51 +0200)
commitc7e7673eba61817d8a50979b4f86abb3ff0ccd6f
tree11bd1f66c88b5b009de42f28c97f0d489ea2d898
parent54b5a1b21b69d674e55b69be79ef86e5b2215406
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