summaryrefslogtreecommitdiffstats
path: root/src/network/networkd-link.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-06-03 10:07:16 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-06-04 10:49:26 +0200
commit3cd5924c850929b03bc8d4ba5db614d662edb49a (patch)
treee79b7347d9dd984c7fd32734bae9846703191b42 /src/network/networkd-link.c
parentchange fs/file-max to LONG_MAX instead of ULONG_MAX (diff)
downloadsystemd-3cd5924c850929b03bc8d4ba5db614d662edb49a.tar.xz
systemd-3cd5924c850929b03bc8d4ba5db614d662edb49a.zip
network: make link become configured state when at least one dynamic protocol provide an address
Before this, to speed up the system boot with IPv4 only network, we need to specify `IPv6AcceptRA=no`, as it is enabled by default. Closes #15469.
Diffstat (limited to 'src/network/networkd-link.c')
-rw-r--r--src/network/networkd-link.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 6ca6bfa8e4..805aff3ab1 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -1133,16 +1133,14 @@ void link_check_ready(Link *link) {
in_addr_is_null(AF_INET6, (const union in_addr_union*) &link->ipv6ll_address))
return;
- if ((link_dhcp4_enabled(link) || link_dhcp6_enabled(link)) &&
+ if ((link_dhcp4_enabled(link) || link_dhcp6_enabled(link) || link_ipv6_accept_ra_enabled(link)) &&
!link->dhcp4_configured &&
!link->dhcp6_configured &&
+ !link->ndisc_configured &&
!(link_ipv4ll_enabled(link, ADDRESS_FAMILY_FALLBACK_IPV4) && link->ipv4ll_address))
- /* When DHCP is enabled, at least one protocol must provide an address, or
+ /* When DHCP or RA is enabled, at least one protocol must provide an address, or
* an IPv4ll fallback address must be configured. */
return;
-
- if (link_ipv6_accept_ra_enabled(link) && !link->ndisc_configured)
- return;
}
if (link->state != LINK_STATE_CONFIGURED)