diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2020-06-22 12:00:22 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2020-06-24 10:37:31 +0200 |
commit | a39eb9ac148dc5566a908d65833033d74da8f16d (patch) | |
tree | 3cc48ecd303e7fab16032eee5e9f0b7ff38baa19 | |
parent | f6d654b18f059a0fe2ba82ae05c0c22295c86af4 (diff) | |
download | NetworkManager-bg/initrd-ipv6.tar.gz |
initrd: set ipv6.method=auto when the autoconfiguration field is 'none'bg/initrd-ipv6
The 7th field of:
ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|ibft}:[:[<mtu>][:<macaddr>]]
specifies which kind of autoconfiguration to do. 'none' and 'off' mean
static addresses.
The old network module of dracut used to leave kernel IPv6
autoconfiguration enabled when IPv4 static addresses were
configured. With NM, this corresponds to enabling IPv6 auto method.
https://bugzilla.redhat.com/show_bug.cgi?id=1848943
-rw-r--r-- | src/initrd/nmi-cmdline-reader.c | 2 | ||||
-rw-r--r-- | src/initrd/tests/test-cmdline-reader.c | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/initrd/nmi-cmdline-reader.c b/src/initrd/nmi-cmdline-reader.c index 2f4a8582fb..69e5e56d07 100644 --- a/src/initrd/nmi-cmdline-reader.c +++ b/src/initrd/nmi-cmdline-reader.c @@ -464,7 +464,7 @@ reader_parse_ip (Reader *reader, const char *sysfs_dir, char *argument) if (NM_IN_STRSET (kind, "none", "off")) { if (nm_setting_ip_config_get_num_addresses (s_ip6) == 0) { g_object_set (s_ip6, - NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_DISABLED, + NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, NULL); } if (nm_setting_ip_config_get_num_addresses (s_ip4) == 0) { diff --git a/src/initrd/tests/test-cmdline-reader.c b/src/initrd/tests/test-cmdline-reader.c index 74a6e65cd2..110770554c 100644 --- a/src/initrd/tests/test-cmdline-reader.c +++ b/src/initrd/tests/test-cmdline-reader.c @@ -186,7 +186,7 @@ test_if_ip4_manual (void) { gs_unref_hashtable GHashTable *connections = NULL; const char *const*ARGV = NM_MAKE_STRV ("ip=192.0.2.2::192.0.2.1:255.255.255.0:" - "hostname0.example.com:eth3::192.0.2.53", + "hostname0.example.com:eth3:none:192.0.2.53", "ip=203.0.113.2::203.0.113.1:26:" "hostname1.example.com:eth4"); NMConnection *connection; @@ -220,6 +220,11 @@ test_if_ip4_manual (void) g_assert_cmpstr (nm_setting_ip_config_get_gateway (s_ip4), ==, "192.0.2.1"); g_assert_cmpstr (nm_setting_ip_config_get_dhcp_hostname (s_ip4), ==, "hostname0.example.com"); + s_ip6 = nm_connection_get_setting_ip6_config (connection); + g_assert (s_ip6); + g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip6), ==, NM_SETTING_IP6_CONFIG_METHOD_AUTO); + g_assert (nm_setting_ip_config_get_may_fail (s_ip6)); + connection = g_hash_table_lookup (connections, "eth4"); g_assert (connection); nmtst_assert_connection_verifies_without_normalization (connection); |