mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 03:30:09 +01:00
ip6: remove standalone DHCP method since DHCPv6 can't provide gateways
All IPv6 enabled sites are expected to provide router advertisement support apparently. If standalone DHCP is really used in the wild then we can clearly re-enable it later.
This commit is contained in:
parent
d0ec39e66d
commit
a729d2f649
5 changed files with 35 additions and 56 deletions
|
|
@ -471,8 +471,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error)
|
|||
NM_SETTING_IP6_CONFIG_ADDRESSES);
|
||||
return FALSE;
|
||||
}
|
||||
} else if ( !strcmp (priv->method, NM_SETTING_IP6_CONFIG_METHOD_AUTO)
|
||||
|| !strcmp (priv->method, NM_SETTING_IP6_CONFIG_METHOD_DHCP)) {
|
||||
} else if (!strcmp (priv->method, NM_SETTING_IP6_CONFIG_METHOD_AUTO)) {
|
||||
/* nothing to do */
|
||||
} else {
|
||||
g_set_error (error,
|
||||
|
|
@ -613,34 +612,30 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class)
|
|||
* NMSettingIP6Config:method:
|
||||
*
|
||||
* IPv6 configuration method. If 'auto' is specified then the appropriate
|
||||
* automatic method (DHCP, PPP, advertisement, etc) is used for the
|
||||
* interface and most other properties can be left unset. To force the use
|
||||
* of DHCP only, specify 'dhcp'; this method is only valid for ethernet-
|
||||
* based hardware. If 'link-local' is specified, then an IPv6 link-local
|
||||
* address will be assigned to the interface. If 'manual' is specified,
|
||||
* static IP addressing is used and at least one IP address must be given
|
||||
* in the 'addresses' property. If 'ignored' is specified, IPv6
|
||||
* configuration is not done. This property must be set. NOTE: the 'shared'
|
||||
* method are not yet supported.
|
||||
* automatic method (DHCP, PPP, router advertisement, etc) is used for the
|
||||
* interface and most other properties can be left unset. If 'link-local'
|
||||
* is specified, then an IPv6 link-local address will be assigned to the
|
||||
* interface. If 'manual' is specified, static IP addressing is used and
|
||||
* at least one IP address must be given in the 'addresses' property. If
|
||||
* 'ignored' is specified, IPv6 configuration is not done. This property
|
||||
* must be set. NOTE: the 'shared' method are not yet supported.
|
||||
**/
|
||||
g_object_class_install_property
|
||||
(object_class, PROP_METHOD,
|
||||
g_param_spec_string (NM_SETTING_IP6_CONFIG_METHOD,
|
||||
"Method",
|
||||
"IPv6 configuration method. If 'auto' is specified "
|
||||
"then the appropriate automatic method (PPP, router "
|
||||
"advertisement, etc) is used for the device and "
|
||||
"most other properties can be left unset. To force "
|
||||
"the use of DHCP only, specify 'dhcp'; this method "
|
||||
"is only valid for ethernet-based hardware. If "
|
||||
"'link-local' is specified, then an IPv6 link-local "
|
||||
"address will be assigned to the interface. If "
|
||||
"'manual' is specified, static IP addressing is "
|
||||
"used and at least one IP address must be given in "
|
||||
" the 'addresses' property. If 'ignored' is "
|
||||
"specified, IPv6 configuration is not done. This "
|
||||
"property must be set. NOTE: the 'shared' method"
|
||||
"is not yet supported.",
|
||||
"then the appropriate automatic method (DHCP, PPP, "
|
||||
"router advertisement, etc) is used for the "
|
||||
"interface and most other properties can be left "
|
||||
"unset. If 'link-local' is specified, then an "
|
||||
"IPv6 link-local address will be assigned to the "
|
||||
"interface. If 'manual' is specified, static IP "
|
||||
"addressing is used and at least one IP address "
|
||||
"must be given in the 'addresses' property. If "
|
||||
"'ignored' is specified, IPv6 configuration is not "
|
||||
"done. This property must be set. NOTE: the "
|
||||
"'shared' method are not yet supported.",
|
||||
NULL,
|
||||
G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
|
||||
|
||||
|
|
@ -766,26 +761,26 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class)
|
|||
/**
|
||||
* NMSettingIP6Config:ignore-auto-routes:
|
||||
*
|
||||
* When the method is set to 'auto' or 'dhcp' and this property is set to
|
||||
* TRUE, automatically configured routes are ignored and only routes
|
||||
* specified in #NMSettingIP6Config:routes, if any, are used.
|
||||
* When the method is set to 'auto' and this property is set to TRUE,
|
||||
* automatically configured routes are ignored and only routes specified
|
||||
* in #NMSettingIP6Config:routes, if any, are used.
|
||||
**/
|
||||
g_object_class_install_property
|
||||
(object_class, PROP_IGNORE_AUTO_ROUTES,
|
||||
g_param_spec_boolean (NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES,
|
||||
"Ignore automatic routes",
|
||||
"When the method is set to 'auto' or 'dhcp' and this "
|
||||
"property is set to TRUE, automatically configured "
|
||||
"routes are ignored and only routes specified in the "
|
||||
"'routes' property, if any, are used.",
|
||||
"When the method is set to 'auto' and this property "
|
||||
"is set to TRUE, automatically configured routes are "
|
||||
"ignored and only routes specified in the 'routes' "
|
||||
"property, if any, are used.",
|
||||
FALSE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | NM_SETTING_PARAM_SERIALIZE));
|
||||
|
||||
/**
|
||||
* NMSettingIP6Config:ignore-auto-dns:
|
||||
*
|
||||
* When the method is set to 'auto' or 'dhcp' and this property is set to
|
||||
* TRUE, automatically configured nameservers and search domains are ignored
|
||||
* When the method is set to 'auto' and this property is set to TRUE,
|
||||
* automatically configured nameservers and search domains are ignored
|
||||
* and only nameservers and search domains specified in
|
||||
* #NMSettingIP6Config:dns and #NMSettingIP6Config:dns-search, if any, are
|
||||
* used.
|
||||
|
|
@ -794,11 +789,11 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class)
|
|||
(object_class, PROP_IGNORE_AUTO_DNS,
|
||||
g_param_spec_boolean (NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS,
|
||||
"Ignore DHCPv6/RDNSS DNS",
|
||||
"When the method is set to 'auto' or 'dhcp' and this "
|
||||
"property is set to TRUE, automatically configured "
|
||||
"nameservers and search domains are ignored and only "
|
||||
"nameservers and search domains specified in the 'dns' "
|
||||
"and 'dns-search' properties, if any, are used.",
|
||||
"When the method is set to 'auto' and this property "
|
||||
"is set to TRUE, automatically configured nameservers "
|
||||
"and search domains are ignored and only nameservers "
|
||||
"and search domains specified in 'dns' and 'dns-search' "
|
||||
"properties, if any, are used.",
|
||||
FALSE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | NM_SETTING_PARAM_SERIALIZE));
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@ GQuark nm_setting_ip6_config_error_quark (void);
|
|||
|
||||
#define NM_SETTING_IP6_CONFIG_METHOD_IGNORE "ignore"
|
||||
#define NM_SETTING_IP6_CONFIG_METHOD_AUTO "auto"
|
||||
#define NM_SETTING_IP6_CONFIG_METHOD_DHCP "dhcp"
|
||||
#define NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL "link-local"
|
||||
#define NM_SETTING_IP6_CONFIG_METHOD_MANUAL "manual"
|
||||
#define NM_SETTING_IP6_CONFIG_METHOD_SHARED "shared"
|
||||
|
|
|
|||
|
|
@ -1648,13 +1648,6 @@ real_act_stage3_ip6_config_start (NMDevice *self, NMDeviceStateReason *reason)
|
|||
}
|
||||
nm_ip6_manager_begin_addrconf (priv->ip6_manager, nm_device_get_ip_ifindex (self));
|
||||
ret = NM_ACT_STAGE_RETURN_POSTPONE;
|
||||
} else if (ip6_method_matches (connection, NM_SETTING_IP6_CONFIG_METHOD_DHCP)) {
|
||||
/* Router advertisements shouldn't be used in pure DHCP mode */
|
||||
if (priv->ip6_accept_ra_path)
|
||||
nm_utils_do_sysctl (priv->ip6_accept_ra_path, "0\n");
|
||||
|
||||
priv->dhcp6_mode = IP6_DHCP_OPT_MANAGED;
|
||||
ret = dhcp6_start (self, connection, priv->dhcp6_mode, reason);
|
||||
} else if (ip6_method_matches (connection, NM_SETTING_IP6_CONFIG_METHOD_IGNORE)) {
|
||||
/* reset the saved RA value when ipv6 is ignored */
|
||||
if (priv->ip6_accept_ra_path) {
|
||||
|
|
@ -2108,8 +2101,7 @@ real_act_stage4_get_ip6_config (NMDevice *self,
|
|||
*reason = NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE;
|
||||
goto out;
|
||||
}
|
||||
} else if (ip6_method_matches (connection, NM_SETTING_IP6_CONFIG_METHOD_DHCP))
|
||||
g_assert (priv->dhcp6_client); /* sanity check */
|
||||
}
|
||||
|
||||
/* Autoconf might have triggered DHCPv6 too */
|
||||
if (priv->dhcp6_client) {
|
||||
|
|
|
|||
|
|
@ -1389,7 +1389,7 @@ make_ip6_setting (shvarFile *ifcfg,
|
|||
char *value = NULL;
|
||||
char *str_value;
|
||||
char *route6_path = NULL;
|
||||
gboolean bool_value, ipv6forwarding, ipv6_autoconf, dhcp6 = FALSE;
|
||||
gboolean bool_value, ipv6forwarding, ipv6_autoconf;
|
||||
char *method = NM_SETTING_IP6_CONFIG_METHOD_MANUAL;
|
||||
guint32 i;
|
||||
shvarFile *network_ifcfg;
|
||||
|
|
@ -1466,12 +1466,9 @@ make_ip6_setting (shvarFile *ifcfg,
|
|||
/* Find out method property */
|
||||
ipv6forwarding = svTrueValue (ifcfg, "IPV6FORWARDING", FALSE);
|
||||
ipv6_autoconf = svTrueValue (ifcfg, "IPV6_AUTOCONF", !ipv6forwarding);
|
||||
dhcp6 = svTrueValue (ifcfg, "DHCPV6C", FALSE);
|
||||
|
||||
if (ipv6_autoconf)
|
||||
method = NM_SETTING_IP6_CONFIG_METHOD_AUTO;
|
||||
else if (dhcp6)
|
||||
method = NM_SETTING_IP6_CONFIG_METHOD_DHCP;
|
||||
else {
|
||||
/* IPV6_AUTOCONF=no and no IPv6 address -> method 'link-local' */
|
||||
str_value = svGetValue (ifcfg, "IPV6ADDR", FALSE);
|
||||
|
|
|
|||
|
|
@ -1271,10 +1271,6 @@ write_ip6_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
|
|||
svSetValue (ifcfg, "IPV6INIT", "yes", FALSE);
|
||||
svSetValue (ifcfg, "IPV6_AUTOCONF", "yes", FALSE);
|
||||
svSetValue (ifcfg, "DHCPV6C", NULL, FALSE);
|
||||
} else if (!strcmp (value, NM_SETTING_IP6_CONFIG_METHOD_DHCP)) {
|
||||
svSetValue (ifcfg, "IPV6INIT", "yes", FALSE);
|
||||
svSetValue (ifcfg, "IPV6_AUTOCONF", "no", FALSE);
|
||||
svSetValue (ifcfg, "DHCPV6C", "yes", FALSE);
|
||||
} else if (!strcmp (value, NM_SETTING_IP6_CONFIG_METHOD_MANUAL)) {
|
||||
svSetValue (ifcfg, "IPV6INIT", "yes", FALSE);
|
||||
svSetValue (ifcfg, "IPV6_AUTOCONF", "no", FALSE);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue