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)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 27 Apr 2021 15:06:20 +0000 (00:06 +0900)
commit192a9d95ea3e058afd824d38a9cea16ad0a84a57
treea4613c656bab2695aadf82dd63b3827bf8958856
parent45b1fc3a88b2f5102ecabfabdf0ee4f175aecd64
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.
src/libsystemd/sd-netlink/rtnl-message.c
src/network/networkd-neighbor.c