network/ndisc: check if there exists a conflicting address
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 14 Feb 2024 04:39:48 +0000 (13:39 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 14 Feb 2024 04:59:04 +0000 (13:59 +0900)
commite720ad88f37e0c983df6b13d4e417968aa565b5e
tree3094fd17ff09a19cf78c6a2aec4bb54960f10c65
parent9e79ef91207e760b5f8d257a8c73f52eda1d4831
network/ndisc: check if there exists a conflicting address

Follow-up for 0a0c2672dbd22dc85d660e5baa7e1bef701beb88.

Before the commit, if a conflicting address exists or already requested,
then the configuration of newly requested address (especially, prefix
length) is mostly ignored silently.

However, after the commit, even if there exists a conflicting address,
networkd anyway tries to configure the newly requested address, and
enter failed state. Such situation can be triggered, e.g. when the DHCPv6
client is started earlier than NDisc, by WithoutRA=solicit.

Fixes #31263.
src/network/networkd-ndisc.c