network/ipv4acd: manage ACD engines with Address object
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 30 Jul 2024 15:25:43 +0000 (00:25 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 30 Jul 2024 20:35:20 +0000 (05:35 +0900)
commitd9ef1cc40757ff6d6875812510cb4c03e7e488b5
tree72e80c7b39f6ed91b417f62b0ff3d146475d8f58
parenta55d1b29a4cc2edc8550c5f4e062f2194807dcd3
network/ipv4acd: manage ACD engines with Address object

IPv4 addresses are managed with local and peer addresses and prefix
length. So, potentially, the same address with different prefix length
can be assigned on a link, e.g. 192.168.0.1/24 and 192.168.0.1/26.
If one of the address is configured with ACD but the other is not,
then previously ACD might be unexpectedly disabled or enabled on them,
as we managed ACD engines with only local addresses.

This makes ACD engines managed with the corresponding Address objects.
src/network/networkd-address.c
src/network/networkd-address.h
src/network/networkd-ipv4acd.c