From b102cdca6b8b05c6cba687ada5801a229906a7dd Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 20 Feb 2019 10:07:20 +0900 Subject: [PATCH] network: do not disable dynamic addressing for bridge slaves This effectively reverts 5971cb9de9081b537945d28895df70992e5664d0 and 2b00a4e03dc375465de7f60f3a6937cbe8ffdf31. Usually, it is not necessary to assign addresses to bridge slaves, but such functionality is supported by kernel. If users explicitly request such configuration, networkd should support that. --- src/network/networkd-link.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index f894bb5c58..77f345aeda 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -158,7 +158,7 @@ static bool link_ipv6_enabled(Link *link) { if (!socket_ipv6_is_supported()) return false; - if (link->network->bridge || link->network->bond) + if (link->network->bond) return false; if (manager_sysctl_ipv6_enabled(link->manager) == 0) @@ -959,23 +959,20 @@ void link_check_ready(Link *link) { !link->ipv4ll_route) return; - if (!link->network->bridge) { + if (link_ipv6ll_enabled(link) && + in_addr_is_null(AF_INET6, (const union in_addr_union*) &link->ipv6ll_address)) + return; - if (link_ipv6ll_enabled(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) && + !link->dhcp4_configured) || + (link_dhcp6_enabled(link) && !link_dhcp4_enabled(link) && + !link->dhcp6_configured) || + (link_dhcp4_enabled(link) && link_dhcp6_enabled(link) && + !link->dhcp4_configured && !link->dhcp6_configured)) + return; - if ((link_dhcp4_enabled(link) && !link_dhcp6_enabled(link) && - !link->dhcp4_configured) || - (link_dhcp6_enabled(link) && !link_dhcp4_enabled(link) && - !link->dhcp6_configured) || - (link_dhcp4_enabled(link) && link_dhcp6_enabled(link) && - !link->dhcp4_configured && !link->dhcp6_configured)) - return; - - if (link_ipv6_accept_ra_enabled(link) && !link->ndisc_configured) - return; - } + if (link_ipv6_accept_ra_enabled(link) && !link->ndisc_configured) + return; if (link->state != LINK_STATE_CONFIGURED) link_enter_configured(link); @@ -1420,7 +1417,7 @@ int link_set_mtu(Link *link, uint32_t mtu) { return log_link_error_errno(link, r, "Could not allocate RTM_SETLINK message: %m"); /* If IPv6 not configured (no static IPv6 address and IPv6LL autoconfiguration is disabled) - * for this interface, or if it is a bridge slave, then disable IPv6 else enable it. */ + * for this interface, then disable IPv6 else enable it. */ (void) link_enable_ipv6(link); /* IPv6 protocol requires a minimum MTU of IPV6_MTU_MIN(1280) bytes