initrd: set ipv6.method=auto when the autoconfiguration field is 'none'

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
This commit is contained in:
Beniamino Galvani 2020-06-22 12:00:22 +02:00
parent f6d654b18f
commit a39eb9ac14
2 changed files with 7 additions and 2 deletions

View file

@ -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) {

View file

@ -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);