From fbb1a3986655f92e21e80515671a6784c51dbcea Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 21 May 2021 04:01:24 +0900 Subject: [PATCH 1/3] ordered-set: introduce ordered_set_get() --- src/basic/ordered-set.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/basic/ordered-set.h b/src/basic/ordered-set.h index 64df41766f..3ee47350b3 100644 --- a/src/basic/ordered-set.h +++ b/src/basic/ordered-set.h @@ -34,6 +34,10 @@ static inline int ordered_set_put(OrderedSet *s, void *p) { return ordered_hashmap_put((OrderedHashmap*) s, p, p); } +static inline void *ordered_set_get(OrderedSet *s, const void *p) { + return ordered_hashmap_get((OrderedHashmap*) s, p); +} + static inline unsigned ordered_set_size(OrderedSet *s) { return ordered_hashmap_size((OrderedHashmap*) s); } From c3b94251305878421dfd74db7da3c9258af87d93 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 21 May 2021 04:02:01 +0900 Subject: [PATCH 2/3] network: make link_configure() static --- src/network/networkd-link.c | 2 +- src/network/networkd-link.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 05e9ddacef..e853b45d13 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -2067,7 +2067,7 @@ static int link_drop_config(Link *link) { return r; } -int link_configure(Link *link) { +static int link_configure(Link *link) { int r; assert(link); diff --git a/src/network/networkd-link.h b/src/network/networkd-link.h index 22cde53d3d..f6da6d9be6 100644 --- a/src/network/networkd-link.h +++ b/src/network/networkd-link.h @@ -241,7 +241,6 @@ int link_stop_engines(Link *link, bool may_keep_dhcp); const char* link_state_to_string(LinkState s) _const_; LinkState link_state_from_string(const char *s) _pure_; -int link_configure(Link *link); int link_reconfigure(Link *link, bool force); int manager_udev_process_link(sd_device_monitor *monitor, sd_device *device, void *userdata); From 75d5abd29876c31e8ea3a30bb397d2cbd3cfbbb6 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sat, 22 May 2021 08:15:00 +0900 Subject: [PATCH 3/3] network: IPv6LinkLocalAddressGenerationMode=none disables IPv6LL addressing --- man/systemd.network.xml | 14 +++++++++----- src/network/networkd-network.c | 2 ++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/man/systemd.network.xml b/man/systemd.network.xml index 61acea1a8b..e267d4d40c 100644 --- a/man/systemd.network.xml +++ b/man/systemd.network.xml @@ -422,11 +422,15 @@ IPv6LinkLocalAddressGenerationMode= - Specifies how IPv6 link local address is generated. Takes one of eui64, - none, stable-privacy and random. - When unset, the kernel's default will be used. Note that if LinkLocalAddressing= - not configured as ipv6 then IPv6LinkLocalAddressGenerationMode= - is ignored. + Specifies how IPv6 link local address is generated. Takes one of + eui64, none, stable-privacy and + random. When unset, the kernel's default will be used. Note that if + LinkLocalAddressing= is no or + ipv4, then IPv6LinkLocalAddressGenerationMode= will + be ignored. Also, even if LinkLocalAddressing= is yes + or ipv6, setting + IPv6LinkLocalAddressGenerationMode=none disables to configure an IPv6 + link-local address. diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index bf2c0e99d4..0fa505bcbb 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -170,6 +170,8 @@ int network_verify(Network *network) { if (network->link_local < 0) network->link_local = network->bridge ? ADDRESS_FAMILY_NO : ADDRESS_FAMILY_IPV6; + if (network->ipv6ll_address_gen_mode == IPV6_LINK_LOCAL_ADDRESSS_GEN_MODE_NONE) + SET_FLAG(network->link_local, ADDRESS_FAMILY_IPV6, false); /* IPMasquerade implies IPForward */ network->ip_forward |= network->ip_masquerade;