summary refs log tree commit diff
path: root/clients/common/nm-meta-setting-desc.c
diff options
context:
space:
mode:
Diffstat (limited to 'clients/common/nm-meta-setting-desc.c')
-rw-r--r--clients/common/nm-meta-setting-desc.c578
1 files changed, 51 insertions, 527 deletions
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index f794c67b..3e4bd1bb 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -14,7 +14,7 @@
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
- * Copyright 2010 - 2018 Red Hat, Inc.
+ * Copyright 2010 - 2017 Red Hat, Inc.
  */
 
 #include "nm-default.h"
@@ -137,7 +137,7 @@ _parse_ip_route (int family,
 	nm_assert (!error || !*error);
 
 	str_clean = g_strstrip (g_strdup (str));
-	routev = nm_utils_strsplit_set (str_clean, " \t", FALSE);
+	routev = nm_utils_strsplit_set (str_clean, " \t");
 	if (!routev) {
 		g_set_error (error, 1, 0,
 		             "'%s' is not valid. %s",
@@ -192,20 +192,11 @@ _parse_ip_route (int family,
 				return NULL;
 			}
 
-			if (!attrs) {
-				attrs = g_hash_table_new_full (nm_str_hash,
-				                               g_str_equal,
-				                               g_free,
-				                               (GDestroyNotify) g_variant_unref);
-			}
+			if (!attrs)
+				attrs = g_hash_table_new (nm_str_hash, g_str_equal);
 
 			g_hash_table_iter_init (&iter, tmp_attrs);
 			while (g_hash_table_iter_next (&iter, (gpointer *) &iter_key, (gpointer *) &iter_value)) {
-
-				/* need to sink the reference, because nm_utils_parse_variant_attributes() returns
-				 * floating refs. */
-				g_variant_ref_sink (iter_value);
-
 				if (!nm_ip_route_attribute_validate (iter_key, iter_value, family, NULL, error)) {
 					g_prefix_error (error, "%s: ", iter_key);
 					g_hash_table_unref (tmp_attrs);
@@ -322,7 +313,7 @@ _parse_team_link_watcher (const char *str,
 	nm_assert (!error || !*error);
 
 	str_clean = g_strstrip (g_strdup (str));
-	watcherv = nm_utils_strsplit_set (str_clean, " \t", FALSE);
+	watcherv = nm_utils_strsplit_set (str_clean, " \t");
 	if (!watcherv) {
 		g_set_error (error, 1, 0, "'%s' is not valid", str);
 		return NULL;
@@ -331,7 +322,7 @@ _parse_team_link_watcher (const char *str,
 	for (i = 0; watcherv[i]; i++) {
 		gs_free const char **pair = NULL;
 
-		pair = nm_utils_strsplit_set (watcherv[i], "=", FALSE);
+		pair = nm_utils_strsplit_set (watcherv[i], "=");
 		if (!pair) {
 			g_set_error (error, 1, 0, "'%s' is not valid: %s", watcherv[i],
 			             "properties should be specified as 'key=value'");
@@ -784,9 +775,7 @@ _get_fcn_gobject_int (ARGS_GET_FCN)
 	GParamSpec *pspec;
 	nm_auto_unset_gvalue GValue gval = G_VALUE_INIT;
 	gint64 v;
-	guint base = 10;
 	const NMMetaUtilsIntValueInfo *value_infos;
-	char *return_str;
 
 	RETURN_UNSUPPORTED_GET_TYPE ();
 
@@ -812,38 +801,19 @@ _get_fcn_gobject_int (ARGS_GET_FCN)
 		break;
 	}
 
-	if (   property_info->property_typ_data
-	    && property_info->property_typ_data->subtype.gobject_int.base > 0) {
-		base = property_info->property_typ_data->subtype.gobject_int.base;
-	}
-
-	switch (base) {
-	case 10:
-		return_str = g_strdup_printf ("%"G_GINT64_FORMAT, v);
-		break;
-	case 16:
-		return_str = g_strdup_printf ("0x%"G_GINT64_MODIFIER"x", v);
-		break;
-	default:
-		return_str = NULL;
-		g_assert_not_reached ();
-	}
-
 	if (   get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY
 	    && property_info->property_typ_data
 	    && (value_infos = property_info->property_typ_data->subtype.gobject_int.value_infos)) {
 		for (; value_infos->nick; value_infos++) {
 			if (value_infos->value == v) {
-				char *old_str = return_str;
-
-				return_str = g_strdup_printf ("%s (%s)", old_str, value_infos->nick);
-				g_free (old_str);
-				break;
+				RETURN_STR_TO_FREE (g_strdup_printf ("%lli (%s)",
+				                                     (long long) v,
+				                                     value_infos->nick));
 			}
 		}
 	}
 
-	RETURN_STR_TO_FREE (return_str);
+	RETURN_STR_TO_FREE (g_strdup_printf ("%"G_GINT64_FORMAT, v));
 }
 
 static gconstpointer
@@ -1209,11 +1179,6 @@ _set_fcn_gobject_mtu (ARGS_SET_FCN)
 	return TRUE;
 }
 
-/* Ideally we'll be able to get this from a public header. */
-#ifndef IEEE802154_ADDR_LEN
-#define IEEE802154_ADDR_LEN 8
-#endif
-
 static gboolean
 _set_fcn_gobject_mac (ARGS_SET_FCN)
 {
@@ -1225,11 +1190,9 @@ _set_fcn_gobject_mac (ARGS_SET_FCN)
 	else
 		mode = NM_META_PROPERTY_TYPE_MAC_MODE_DEFAULT;
 
-	if (mode == NM_META_PROPERTY_TYPE_MAC_MODE_INFINIBAND) {
+	if (mode == NM_META_PROPERTY_TYPE_MAC_MODE_INFINIBAND)
 		valid = nm_utils_hwaddr_valid (value, INFINIBAND_ALEN);
-	} else if (mode == NM_META_PROPERTY_TYPE_MAC_MODE_WPAN) {
-		valid = nm_utils_hwaddr_valid (value, IEEE802154_ADDR_LEN);
-	} else {
+	else {
 		valid =    nm_utils_hwaddr_valid (value, ETH_ALEN)
 		        || (   mode == NM_META_PROPERTY_TYPE_MAC_MODE_CLONED
 		            && NM_CLONED_MAC_IS_SPECIAL (value));
@@ -1333,7 +1296,7 @@ fail:
 
 		if (!has_minmax && is_flags) {
 			min = 0;
-			max = (int) G_MAXUINT;
+			max = (gint) G_MAXUINT;
 		}
 
 		valid_all = nm_utils_enum_get_values (gtype, min, max);
@@ -1390,7 +1353,7 @@ _values_fcn_gobject_enum (ARGS_VALUES_FCN)
 		class = g_type_class_ref (gtype);
 		if (G_IS_FLAGS_CLASS (class)) {
 			min = 0;
-			max = (int) G_MAXUINT;
+			max = (gint) G_MAXUINT;
 		}
 	}
 
@@ -1598,7 +1561,7 @@ vpn_data_item (const char *key, const char *value, gpointer user_data)
 		gsize i; \
 		const char *item; \
 		nm_assert (!error || !*error); \
-		strv = nm_utils_strsplit_set (value, " \t,", FALSE); \
+		strv = nm_utils_strsplit_set (value, " \t,"); \
 		if (strv) { \
 			for (i = 0; strv[i]; i++) { \
 				if (!(item = nmc_string_is_valid (strv[i], valid_strv, error))) { \
@@ -1622,7 +1585,7 @@ vpn_data_item (const char *key, const char *value, gpointer user_data)
 		\
 		nm_assert (!error || !*error); \
 		\
-		strv = nm_utils_strsplit_set (value, ",", FALSE); \
+		strv = nm_utils_strsplit_set (value, ","); \
 		for (iter = strv; iter && *iter; iter++) { \
 			gs_free char *left_clone = g_strstrip (g_strdup (*iter)); \
 			char *left = left_clone; \
@@ -1709,7 +1672,7 @@ vpn_data_item (const char *key, const char *value, gpointer user_data)
 		\
 		nm_assert (!error || !*error); \
 		\
-		strv = nm_utils_strsplit_set (value, " \t,", FALSE); \
+		strv = nm_utils_strsplit_set (value, " \t,"); \
 		for (iter = strv; strv && *iter; iter++) { \
 			if (!nm_utils_hwaddr_aton (*iter, buf, ETH_ALEN)) { \
 				g_set_error (error, 1, 0, _("'%s' is not a valid MAC"), *iter); \
@@ -1863,7 +1826,7 @@ _set_fcn_vpn_service_type (ARGS_SET_FCN)
 	gs_free char *service_name = NULL;
 
 	service_name = nm_vpn_plugin_info_list_find_service_type (nm_vpn_get_plugin_infos (), value);
-	g_object_set (setting, property_info->property_name, service_name ?: value, NULL);
+	g_object_set (setting, property_info->property_name, service_name ? : value, NULL);
 	return TRUE;
 }
 
@@ -1927,7 +1890,7 @@ nmc_property_set_bytes (NMSetting *setting, const char *prop, const char *value,
 		goto done;
 
 	/* Otherwise, consider the following format: AA b 0xCc D */
-	strv = nm_utils_strsplit_set (val_strip, " \t", FALSE);
+	strv = nm_utils_strsplit_set (val_strip, " \t");
 	array = g_byte_array_sized_new (NM_PTRARRAY_LEN (strv));
 	for (iter = strv; iter && *iter; iter++) {
 		int v;
@@ -2147,7 +2110,7 @@ _get_fcn_802_1x_phase2_private_key (ARGS_GET_FCN)
 		\
 		nm_assert (error == NULL || *error == NULL); \
 		\
-		strv = nm_utils_strsplit_set (value, " \t,", FALSE); \
+		strv = nm_utils_strsplit_set (value, " \t,"); \
 		if (strv) { \
 			for (i = 0; strv[i]; i++) \
 				set_func (NM_SETTING_802_1X (setting), strv[i++]); \
@@ -2494,9 +2457,11 @@ _complete_fcn_connection_type (ARGS_COMPLETE_FCN)
 			if (!text || strncmp (text, v, text_len) == 0)
 				result[j++] = g_strdup (v);
 		}
-		v = setting_info->general->setting_name;
-		if (!text || strncmp (text, v, text_len) == 0)
-			result[j++] = g_strdup (v);
+		if (!text || !*text || !v) {
+			v = setting_info->general->setting_name;
+			if (!text || strncmp (text, v, text_len) == 0)
+				result[j++] = g_strdup (v);
+		}
 	}
 	if (j)
 		result[j++] = NULL;
@@ -2537,7 +2502,7 @@ _set_fcn_connection_permissions (ARGS_SET_FCN)
 
 	nm_assert (!error || !*error);
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	if (!verify_string_list (strv, property_info->property_name, permissions_valid, error))
 		return FALSE;
 
@@ -2662,7 +2627,7 @@ _set_fcn_connection_secondaries (ARGS_SET_FCN)
 	gs_free const char **strv = NULL;
 	const char *const*iter;
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	if (strv) {
 		for (iter = strv; *iter; iter++)
 			nm_setting_connection_add_secondary (NM_SETTING_CONNECTION (setting), *iter);
@@ -2726,19 +2691,19 @@ static gboolean
 _set_fcn_connection_metered (ARGS_SET_FCN)
 {
 	NMMetered metered;
-	NMTernary ts_val;
+	NMCTriStateValue ts_val;
 
-	if (!nmc_string_to_ternary (value, &ts_val, error))
+	if (!nmc_string_to_tristate (value, &ts_val, error))
 		return FALSE;
 
 	switch (ts_val) {
-	case NM_TERNARY_TRUE:
+	case NMC_TRI_STATE_YES:
 		metered = NM_METERED_YES;
 		break;
-	case NM_TERNARY_FALSE:
+	case NMC_TRI_STATE_NO:
 		metered = NM_METERED_NO;
 		break;
-	case NM_TERNARY_DEFAULT:
+	case NMC_TRI_STATE_UNKNOWN:
 		metered = NM_METERED_UNKNOWN;
 		break;
 	default:
@@ -2868,7 +2833,7 @@ _set_fcn_dcb_flags (ARGS_SET_FCN)
 		const char *const*iter;
 
 		/* Check for individual flag numbers */
-		strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+		strv = nm_utils_strsplit_set (value, " \t,");
 		for (iter = strv; iter && *iter; iter++) {
 			t = _nm_utils_ascii_str_to_int64 (*iter, 0, 0, DCB_ALL_FLAGS, -1);
 
@@ -3271,7 +3236,7 @@ _set_fcn_ip4_config_dns (ARGS_SET_FCN)
 
 	nm_assert (!error || !*error);
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	for (iter = strv; iter && *iter; iter++) {
 		gs_free char *addr = g_strstrip (g_strdup (*iter));
 
@@ -3316,7 +3281,7 @@ _set_fcn_ip4_config_dns_search (ARGS_SET_FCN)
 
 	nm_assert (!error || !*error);
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	if (!verify_string_list (strv, property_info->property_name, nmc_util_is_domain, error))
 		return FALSE;
 
@@ -3356,7 +3321,7 @@ _set_fcn_ip4_config_dns_options (ARGS_SET_FCN)
 	nm_assert (!error || !*error);
 
 	nm_setting_ip_config_clear_dns_options (NM_SETTING_IP_CONFIG (setting), TRUE);
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	if (strv) {
 		for (i = 0; strv[i]; i++)
 			nm_setting_ip_config_add_dns_option (NM_SETTING_IP_CONFIG (setting), strv[i]);
@@ -3391,7 +3356,7 @@ _set_fcn_ip4_config_addresses (ARGS_SET_FCN)
 	const char *const*iter;
 	NMIPAddress *ip4addr;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
+	strv = nm_utils_strsplit_set (value, ",");
 	for (iter = strv; *iter; iter++) {
 		ip4addr = _parse_ip_address (AF_INET, *iter, error);
 		if (!ip4addr)
@@ -3451,7 +3416,7 @@ _set_fcn_ip4_config_routes (ARGS_SET_FCN)
 	const char *const*iter;
 	NMIPRoute *ip4route;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
+	strv = nm_utils_strsplit_set (value, ",");
 	for (iter = strv; *iter; iter++) {
 		ip4route = _parse_ip_route (AF_INET, *iter, error);
 		if (!ip4route)
@@ -3515,7 +3480,7 @@ _set_fcn_ip6_config_dns (ARGS_SET_FCN)
 
 	nm_assert (!error || !*error);
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	for (iter = strv; iter && *iter; iter++) {
 		gs_free char *addr  = g_strstrip (g_strdup (*iter));
 
@@ -3560,7 +3525,7 @@ _set_fcn_ip6_config_dns_search (ARGS_SET_FCN)
 
 	nm_assert (!error || !*error);
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	if (!verify_string_list (strv, property_info->property_name, nmc_util_is_domain, error))
 		return FALSE;
 
@@ -3600,7 +3565,7 @@ _set_fcn_ip6_config_dns_options (ARGS_SET_FCN)
 	nm_assert (!error || !*error);
 
 	nm_setting_ip_config_clear_dns_options (NM_SETTING_IP_CONFIG (setting), TRUE);
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	if (strv) {
 		for (i = 0; strv[i]; i++)
 			nm_setting_ip_config_add_dns_option (NM_SETTING_IP_CONFIG (setting), strv[i]);
@@ -3642,7 +3607,7 @@ _set_fcn_ip6_config_addresses (ARGS_SET_FCN)
 	const char *const*iter;
 	NMIPAddress *ip6addr;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
+	strv = nm_utils_strsplit_set (value, ",");
 	for (iter = strv; strv && *iter; iter++) {
 		ip6addr = _parse_ip_address (AF_INET6, *iter, error);
 		if (!ip6addr)
@@ -3702,7 +3667,7 @@ _set_fcn_ip6_config_routes (ARGS_SET_FCN)
 	const char *const*iter;
 	NMIPRoute *ip6route;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
+	strv = nm_utils_strsplit_set (value, ",");
 	for (iter = strv; strv && *iter; iter++) {
 		ip6route = _parse_ip_route (AF_INET6, *iter, error);
 		if (!ip6route)
@@ -3738,68 +3703,6 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_routes,
                                _validate_and_remove_ipv6_route)
 
 static gconstpointer
-_get_fcn_match_interface_name (ARGS_GET_FCN)
-{
-	NMSettingMatch *s_match = NM_SETTING_MATCH (setting);
-	GString *str = NULL;
-	guint i, num;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	num = nm_setting_match_get_num_interface_names (s_match);
-	for (i = 0; i < num; i++) {
-		const char *name;
-		gs_free char *to_free = NULL;
-
-		if (i == 0)
-			str = g_string_new ("");
-		else
-			g_string_append_c (str, ' ');
-		name = nm_setting_match_get_interface_name (s_match, i);
-		g_string_append (str, _nm_utils_escape_spaces (name, &to_free));
-	}
-	RETURN_STR_TO_FREE (g_string_free (str, FALSE));
-}
-
-static gboolean
-_set_fcn_match_interface_name (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	gsize i;
-
-	nm_assert (!error || !*error);
-
-	strv = nm_utils_strsplit_set (value, " \t", TRUE);
-	if (strv) {
-		for (i = 0; strv[i]; i++) {
-			nm_setting_match_add_interface_name (NM_SETTING_MATCH (setting),
-			                                     _nm_utils_unescape_spaces ((char *) strv[i]));
-		}
-	}
-	return TRUE;
-}
-
-static gboolean
-_validate_and_remove_match_interface_name (NMSettingMatch *setting,
-                                           const char *interface_name,
-                                           GError **error)
-{
-	gboolean ret;
-
-	ret = nm_setting_match_remove_interface_name_by_value (setting, interface_name);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain interface name '%s'"),
-		             interface_name);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_match_interface_name,
-                               NM_SETTING_MATCH,
-                               nm_setting_match_get_num_interface_names,
-                               nm_setting_match_remove_interface_name,
-                               _validate_and_remove_match_interface_name)
-
-static gconstpointer
 _get_fcn_olpc_mesh_ssid (ARGS_GET_FCN)
 {
 	NMSettingOlpcMesh *s_olpc_mesh = NM_SETTING_OLPC_MESH (setting);
@@ -3844,37 +3747,6 @@ _validate_fcn_proxy_pac_script (const char *value, char **out_to_free, GError **
 }
 
 static gconstpointer
-_get_fcn_sriov_vfs (ARGS_GET_FCN)
-{
-	NMSettingSriov *s_sriov = NM_SETTING_SRIOV (setting);
-	GString *printable;
-	guint num_vfs, i;
-	NMSriovVF *vf;
-	char *str;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	printable = g_string_new (NULL);
-
-	num_vfs = nm_setting_sriov_get_num_vfs (s_sriov);
-	for (i = 0; i < num_vfs; i++) {
-		vf = nm_setting_sriov_get_vf (s_sriov, i);
-
-		if (printable->len > 0)
-			g_string_append (printable, ", ");
-
-		str = nm_utils_sriov_vf_to_str (vf, FALSE, NULL);
-		if (str) {
-			g_string_append (printable, str);
-			g_free (str);
-		}
-	}
-
-	NM_SET_OUT (out_is_default, num_vfs == 0);
-	RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
-}
-
-static gconstpointer
 _get_fcn_tc_config_qdiscs (ARGS_GET_FCN)
 {
 	NMSettingTCConfig *s_tc = NM_SETTING_TC_CONFIG (setting);
@@ -3906,28 +3778,6 @@ _get_fcn_tc_config_qdiscs (ARGS_GET_FCN)
 }
 
 static gboolean
-_set_fcn_sriov_vfs (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMSriovVF *vf;
-	GError *local = NULL;
-
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; strv && *iter; iter++) {
-		vf = nm_utils_sriov_vf_from_str (*iter, &local);
-		if (!vf) {
-			g_set_error (error, 1, 0, "%s. %s", local->message,
-			             _("The valid syntax is: vf [attribute=value]... [,vf [attribute=value]...]"));
-			return FALSE;
-		}
-		nm_setting_sriov_add_vf (NM_SETTING_SRIOV (setting), vf);
-		nm_sriov_vf_unref (vf);
-	}
-	return TRUE;
-}
-
-static gboolean
 _set_fcn_tc_config_qdiscs (ARGS_SET_FCN)
 {
 	gs_free const char **strv = NULL;
@@ -3935,7 +3785,7 @@ _set_fcn_tc_config_qdiscs (ARGS_SET_FCN)
 	NMTCQdisc *tc_qdisc;
 	GError *local = NULL;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
+	strv = nm_utils_strsplit_set (value, ",");
 	for (iter = strv; strv && *iter; iter++) {
 		tc_qdisc = nm_utils_tc_qdisc_from_str (*iter, &local);
 		if (!tc_qdisc) {
@@ -3950,34 +3800,6 @@ _set_fcn_tc_config_qdiscs (ARGS_SET_FCN)
 }
 
 static gboolean
-_validate_and_remove_sriov_vf (NMSettingSriov *setting,
-                               const char *value,
-                               GError **error)
-{
-	NMSriovVF *vf;
-	gboolean ret;
-
-	vf = nm_utils_sriov_vf_from_str (value, error);
-	if (!vf)
-		return FALSE;
-
-	ret = nm_setting_sriov_remove_vf_by_index (setting, nm_sriov_vf_get_index (vf));
-	if (!ret) {
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain vf with index %u"),
-		             nm_sriov_vf_get_index (vf));
-	}
-	nm_sriov_vf_unref (vf);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_sriov_vfs,
-                               NM_SETTING_SRIOV,
-                               nm_setting_sriov_get_num_vfs,
-                               nm_setting_sriov_remove_vf,
-                               _validate_and_remove_sriov_vf)
-
-
-static gboolean
 _validate_and_remove_tc_qdisc (NMSettingTCConfig *setting,
                                const char *value,
                                GError **error)
@@ -4040,7 +3862,7 @@ _set_fcn_tc_config_tfilters (ARGS_SET_FCN)
 	NMTCTfilter *tc_tfilter;
 	GError *local = NULL;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
+	strv = nm_utils_strsplit_set (value, ",");
 	for (iter = strv; strv && *iter; iter++) {
 		tc_tfilter = nm_utils_tc_tfilter_from_str (*iter, &local);
 		if (!tc_tfilter) {
@@ -4113,7 +3935,7 @@ _set_fcn_team_runner_tx_hash (ARGS_SET_FCN)
 
 	nm_assert (!error || !*error);
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t,");
 	for (iter = strv; strv && *iter; iter++) {
 		if (!_is_valid_team_runner_tx_hash_element (*iter, error))
 			return FALSE;
@@ -4185,7 +4007,7 @@ _set_fcn_team_link_watchers (ARGS_SET_FCN)
 	NMTeamLinkWatcher *watcher;
 
 	nm_setting_team_clear_link_watchers (NM_SETTING_TEAM (setting));
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
+	strv = nm_utils_strsplit_set (value, ",");
 	for (iter = strv; strv && *iter; iter++) {
 		watcher = _parse_team_link_watcher (*iter, error);
 		if (!watcher)
@@ -4259,7 +4081,7 @@ _set_fcn_team_port_link_watchers (ARGS_SET_FCN)
 	NMTeamLinkWatcher *watcher;
 
 	nm_setting_team_port_clear_link_watchers (NM_SETTING_TEAM_PORT (setting));
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
+	strv = nm_utils_strsplit_set (value, ",");
 	for (iter = strv; strv && *iter; iter++) {
 		watcher = _parse_team_link_watcher (*iter, error);
 		if (!watcher)
@@ -4539,7 +4361,7 @@ _set_fcn_wired_s390_subchannels (ARGS_SET_FCN)
 	gs_free const char **strv = NULL;
 	gsize len;
 
-	strv = nm_utils_strsplit_set (value, " ,\t", FALSE);
+	strv = nm_utils_strsplit_set (value, " ,\t");
 	len = NM_PTRARRAY_LEN (strv);
 	if (len != 2 && len != 3) {
 		g_set_error (error, 1, 0, _("'%s' is not valid; 2 or 3 strings should be provided"),
@@ -4892,85 +4714,6 @@ _validate_fcn_wireless_security_psk (const char *value, char **out_to_free, GErr
 
 /*****************************************************************************/
 
-static gconstpointer
-_get_fcn_ethtool (ARGS_GET_FCN)
-{
-	const char *s;
-	NMTernary val;
-	NMEthtoolID ethtool_id = property_info->property_typ_data->subtype.ethtool.ethtool_id;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	val = nm_setting_ethtool_get_feature (NM_SETTING_ETHTOOL (setting),
-	                                      nm_ethtool_data[ethtool_id]->optname);
-
-	if (val == NM_TERNARY_TRUE)
-		s = N_("on");
-	else if (val == NM_TERNARY_FALSE)
-		s = N_("off");
-	else {
-		s = NULL;
-		NM_SET_OUT (out_is_default, TRUE);
-		*out_flags |= NM_META_ACCESSOR_GET_OUT_FLAGS_HIDE;
-	}
-
-	if (s && get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
-		s = gettext (s);
-	return s;
-}
-
-static gboolean
-_set_fcn_ethtool (ARGS_SET_FCN)
-{
-	gs_free char *value_clone = NULL;
-	NMTernary val;
-	NMEthtoolID ethtool_id = property_info->property_typ_data->subtype.ethtool.ethtool_id;
-
-	value = nm_strstrip_avoid_copy (value, &value_clone);
-
-	if (NM_IN_STRSET (value, "1", "yes", "true", "on"))
-		val = NM_TERNARY_TRUE;
-	else if (NM_IN_STRSET (value, "0", "no", "false", "off"))
-		val = NM_TERNARY_FALSE;
-	else if (NM_IN_STRSET (value, "", "ignore", "default"))
-		val = NM_TERNARY_DEFAULT;
-	else {
-		g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_INVALID_ARGUMENT,
-		             _("'%s' is not valid; use 'on', 'off', or 'ignore'"),
-		             value);
-		return FALSE;
-	}
-
-	nm_setting_ethtool_set_feature (NM_SETTING_ETHTOOL (setting),
-	                                nm_ethtool_data[ethtool_id]->optname,
-	                                val);
-	return TRUE;
-}
-
-static const char *const*
-_complete_fcn_ethtool (ARGS_COMPLETE_FCN)
-{
-	static const char *const v[] = {
-		"true",
-		"false",
-		"1",
-		"0",
-		"yes",
-		"no",
-		"default",
-		"on",
-		"off",
-		"ignore",
-		NULL,
-	};
-
-	if (!text || !text[0])
-		return &v[7];
-	return v;
-}
-
-/*****************************************************************************/
-
 static const NMMetaPropertyInfo property_info_BOND_OPTIONS;
 
 #define NESTED_PROPERTY_INFO_BOND(...) \
@@ -5127,12 +4870,6 @@ static const NMMetaPropertyType _pt_gobject_devices = {
 	.complete_fcn =                 _complete_fcn_gobject_devices,
 };
 
-static const NMMetaPropertyType _pt_ethtool = {
-	.get_fcn =                      _get_fcn_ethtool,
-	.set_fcn =                      _set_fcn_ethtool,
-	.complete_fcn =                 _complete_fcn_ethtool,
-};
-
 /*****************************************************************************/
 
 #include "settings-docs.h"
@@ -5723,14 +5460,6 @@ static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = {
 			),
 		),
 	),
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_MULTI_CONNECT,
-		.property_type =                &_pt_gobject_enum,
-		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
-			PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
-				.get_gtype =            nm_connection_multi_connect_get_type,
-			),
-		),
-	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_AUTH_RETRIES,
 		.property_type =                &_pt_gobject_int,
 	),
@@ -5838,14 +5567,6 @@ static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = {
 			),
 		),
 	),
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_LLMNR,
-		.property_type =                &_pt_gobject_enum,
-		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
-			PROPERTY_TYP_DATA_SUBTYPE (gobject_enum,
-				.get_gtype =            nm_setting_connection_llmnr_get_type,
-			),
-		),
-	),
 	NULL
 };
 
@@ -5937,72 +5658,6 @@ static const NMMetaPropertyInfo *const property_infos_DCB[] = {
 	NULL
 };
 
-#define PROPERTY_INFO_ETHTOOL(xname) \
-	PROPERTY_INFO (NM_ETHTOOL_OPTNAME_##xname, NULL, \
-		.property_type = &_pt_ethtool, \
-		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (ethtool, \
-			.ethtool_id = NM_ETHTOOL_ID_##xname, \
-		), \
-	)
-
-#undef  _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_ETHTOOL
-static const NMMetaPropertyInfo *const property_infos_ETHTOOL[] = {
-	PROPERTY_INFO_ETHTOOL (FEATURE_ESP_HW_OFFLOAD),
-	PROPERTY_INFO_ETHTOOL (FEATURE_ESP_TX_CSUM_HW_OFFLOAD),
-	PROPERTY_INFO_ETHTOOL (FEATURE_FCOE_MTU),
-	PROPERTY_INFO_ETHTOOL (FEATURE_GRO),
-	PROPERTY_INFO_ETHTOOL (FEATURE_GSO),
-	PROPERTY_INFO_ETHTOOL (FEATURE_HIGHDMA),
-	PROPERTY_INFO_ETHTOOL (FEATURE_HW_TC_OFFLOAD),
-	PROPERTY_INFO_ETHTOOL (FEATURE_L2_FWD_OFFLOAD),
-	PROPERTY_INFO_ETHTOOL (FEATURE_LOOPBACK),
-	PROPERTY_INFO_ETHTOOL (FEATURE_LRO),
-	PROPERTY_INFO_ETHTOOL (FEATURE_NTUPLE),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RX),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RXHASH),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RXVLAN),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RX_ALL),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RX_FCS),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RX_GRO_HW),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RX_VLAN_FILTER),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RX_VLAN_STAG_FILTER),
-	PROPERTY_INFO_ETHTOOL (FEATURE_RX_VLAN_STAG_HW_PARSE),
-	PROPERTY_INFO_ETHTOOL (FEATURE_SG),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TLS_HW_RECORD),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TLS_HW_TX_OFFLOAD),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TSO),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TXVLAN),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_CHECKSUM_FCOE_CRC),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_CHECKSUM_IPV4),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_CHECKSUM_IPV6),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_CHECKSUM_IP_GENERIC),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_CHECKSUM_SCTP),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_ESP_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_FCOE_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_GRE_CSUM_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_GRE_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_GSO_PARTIAL),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_GSO_ROBUST),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_IPXIP4_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_IPXIP6_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_NOCACHE_COPY),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_SCATTER_GATHER),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_SCATTER_GATHER_FRAGLIST),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_SCTP_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_TCP6_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_TCP_ECN_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_TCP_MANGLEID_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_TCP_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_UDP_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_UDP_TNL_SEGMENTATION),
-	PROPERTY_INFO_ETHTOOL (FEATURE_TX_VLAN_STAG_HW_INSERT),
-	NULL,
-};
-
 #undef  _CURRENT_NM_META_SETTING_TYPE
 #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_GSM
 static const NMMetaPropertyInfo *const property_infos_GSM[] = {
@@ -6610,19 +6265,6 @@ static const NMMetaPropertyInfo *const property_infos_MACVLAN[] = {
 };
 
 #undef  _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_MATCH
-static const NMMetaPropertyInfo *const property_infos_MATCH[] = {
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_MATCH_INTERFACE_NAME,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_match_interface_name,
-			.set_fcn =                  _set_fcn_match_interface_name,
-			.remove_fcn =               _remove_fcn_match_interface_name,
-		),
-	),
-	NULL
-};
-
-#undef  _CURRENT_NM_META_SETTING_TYPE
 #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OLPC_MESH
 static const NMMetaPropertyInfo *const property_infos_OLPC_MESH[] = {
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_OLPC_MESH_SSID,
@@ -7162,25 +6804,6 @@ static const NMMetaPropertyInfo *const property_infos_SERIAL[] = {
 };
 
 #undef  _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_SRIOV
-static const NMMetaPropertyInfo *const property_infos_SRIOV[] = {
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_TOTAL_VFS,
-		.property_type =                &_pt_gobject_int,
-	),
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_VFS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_sriov_vfs,
-			.set_fcn =                  _set_fcn_sriov_vfs,
-			.remove_fcn =               _remove_fcn_sriov_vfs,
-		),
-	),
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_AUTOPROBE_DRIVERS,
-		.property_type =                &_pt_gobject_enum,
-	),
-	NULL
-};
-
-#undef  _CURRENT_NM_META_SETTING_TYPE
 #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_TUN
 static const NMMetaPropertyInfo *const property_infos_TUN[] = {
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_TUN_MODE,
@@ -7791,65 +7414,6 @@ static const NMMetaPropertyInfo *const property_infos_WIRELESS_SECURITY[] = {
 	NULL
 };
 
-#undef  _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_WPAN
-static const NMMetaPropertyInfo *const property_infos_WPAN[] = {
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_WPAN_MAC_ADDRESS,
-		.property_type =                &_pt_gobject_mac,
-		.is_cli_option =                TRUE,
-		.property_alias =               "mac",
-		.prompt =                       N_("MAC [none]"),
-		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (mac,
-			.mode =                     NM_META_PROPERTY_TYPE_MAC_MODE_WPAN,
-		),
-	),
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_WPAN_SHORT_ADDRESS,
-		.is_cli_option =                TRUE,
-		.property_alias =               "short-addr",
-		.prompt =                       N_("Short address (<0x0000-0xffff>)"),
-		.property_type =                &_pt_gobject_int,
-		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \
-			.base =			16,
-			.value_infos =          INT_VALUE_INFOS (
-				{
-					.value = G_MAXUINT16,
-					.nick = "unset",
-				}
-			),
-		),
-	),
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_WPAN_PAN_ID,
-		.is_cli_option =                TRUE,
-		.inf_flags =                    NM_META_PROPERTY_INF_FLAG_REQD,
-		.property_alias =               "pan-id",
-		.prompt =                       N_("PAN Identifier (<0x0000-0xffff>)"),
-		.property_type =                &_pt_gobject_int,
-		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int, \
-			.base =			16,
-			.value_infos =          INT_VALUE_INFOS (
-				{
-					.value = G_MAXUINT16,
-					.nick = "unset",
-				}
-			),
-		),
-	),
-	NULL
-};
-
-#undef  _CURRENT_NM_META_SETTING_TYPE
-#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_6LOWPAN
-static const NMMetaPropertyInfo *const property_infos_6LOWPAN[] = {
-	PROPERTY_INFO_WITH_DESC (NM_SETTING_6LOWPAN_PARENT,
-		.is_cli_option =                TRUE,
-		.property_alias =               "dev",
-		.inf_flags =                    NM_META_PROPERTY_INF_FLAG_REQD,
-		.prompt =                       N_("IEEE 802.15.4 (WPAN) parent device or connection UUID"),
-		.property_type =                &_pt_gobject_string,
-	),
-	NULL
-};
-
 /*****************************************************************************/
 
 static void
@@ -7981,7 +7545,6 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN)
 #define SETTING_PRETTY_NAME_CONNECTION          N_("General settings")
 #define SETTING_PRETTY_NAME_DCB                 N_("DCB settings")
 #define SETTING_PRETTY_NAME_DUMMY               N_("Dummy settings")
-#define SETTING_PRETTY_NAME_ETHTOOL             N_("Ethtool settings")
 #define SETTING_PRETTY_NAME_GENERIC             N_("Generic settings")
 #define SETTING_PRETTY_NAME_GSM                 N_("GSM mobile broadband connection")
 #define SETTING_PRETTY_NAME_INFINIBAND          N_("InfiniBand connection")
@@ -7990,7 +7553,6 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN)
 #define SETTING_PRETTY_NAME_IP_TUNNEL           N_("IP-tunnel settings")
 #define SETTING_PRETTY_NAME_MACSEC              N_("MACsec connection")
 #define SETTING_PRETTY_NAME_MACVLAN             N_("macvlan connection")
-#define SETTING_PRETTY_NAME_MATCH               N_("Match")
 #define SETTING_PRETTY_NAME_OLPC_MESH           N_("OLPC Mesh connection")
 #define SETTING_PRETTY_NAME_OVS_BRIDGE          N_("OpenVSwitch bridge settings")
 #define SETTING_PRETTY_NAME_OVS_INTERFACE       N_("OpenVSwitch interface settings")
@@ -8000,7 +7562,6 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN)
 #define SETTING_PRETTY_NAME_PPPOE               N_("PPPoE")
 #define SETTING_PRETTY_NAME_PROXY               N_("Proxy")
 #define SETTING_PRETTY_NAME_SERIAL              N_("Serial settings")
-#define SETTING_PRETTY_NAME_SRIOV               N_("SR-IOV settings")
 #define SETTING_PRETTY_NAME_TC_CONFIG           N_("Traffic controls")
 #define SETTING_PRETTY_NAME_TEAM                N_("Team device")
 #define SETTING_PRETTY_NAME_TEAM_PORT           N_("Team port")
@@ -8013,8 +7574,6 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN)
 #define SETTING_PRETTY_NAME_WIRED               N_("Wired Ethernet")
 #define SETTING_PRETTY_NAME_WIRELESS            N_("Wi-Fi connection")
 #define SETTING_PRETTY_NAME_WIRELESS_SECURITY   N_("Wi-Fi security settings")
-#define SETTING_PRETTY_NAME_WPAN                N_("WPAN settings")
-#define SETTING_PRETTY_NAME_6LOWPAN             N_("6LOWPAN settings")
 
 #define NM_META_SETTING_VALID_PARTS(...) \
 	((const NMMetaSettingValidPartItem *const[]) { __VA_ARGS__  NULL })
@@ -8042,12 +7601,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 		.pretty_name =                      SETTING_PRETTY_NAME_##type, \
 		__VA_ARGS__ \
 	}
-	SETTING_INFO (6LOWPAN,
-		.valid_parts = NM_META_SETTING_VALID_PARTS (
-			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
-			NM_META_SETTING_VALID_PART_ITEM (6LOWPAN,               TRUE),
-		),
-	),
 	SETTING_INFO (802_1X),
 	SETTING_INFO (ADSL,
 		.valid_parts = NM_META_SETTING_VALID_PARTS (
@@ -8070,7 +7623,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (BOND,                  TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (BRIDGE,
@@ -8078,7 +7630,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (BRIDGE,                TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (BRIDGE_PORT),
@@ -8093,13 +7644,11 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 	),
 	SETTING_INFO (CONNECTION),
 	SETTING_INFO (DCB),
-	SETTING_INFO (ETHTOOL),
 	SETTING_INFO_EMPTY (DUMMY,
 		.valid_parts = NM_META_SETTING_VALID_PARTS (
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (DUMMY,                 TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO_EMPTY (GENERIC,
@@ -8121,8 +7670,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 		.valid_parts = NM_META_SETTING_VALID_PARTS (
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (INFINIBAND,            TRUE),
-			NM_META_SETTING_VALID_PART_ITEM (SRIOV,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 		.setting_init_fcn =             _setting_init_fcn_infiniband,
 	),
@@ -8136,8 +7683,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 		.valid_parts = NM_META_SETTING_VALID_PARTS (
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (IP_TUNNEL,             TRUE),
-			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (MACSEC,
@@ -8146,7 +7691,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (MACSEC,                TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
 			NM_META_SETTING_VALID_PART_ITEM (802_1X,                FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (MACVLAN,
@@ -8154,10 +7698,8 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (MACVLAN,               TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
-	SETTING_INFO (MATCH),
 	SETTING_INFO (OLPC_MESH,
 		.alias =                            "olpc-mesh",
 		.valid_parts = NM_META_SETTING_VALID_PARTS (
@@ -8180,7 +7722,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (IP4_CONFIG,            FALSE),
 			NM_META_SETTING_VALID_PART_ITEM (IP6_CONFIG,            FALSE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (OVS_PATCH),
@@ -8200,7 +7741,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (PPP,                   FALSE),
 			NM_META_SETTING_VALID_PART_ITEM (802_1X,                FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (PPP),
@@ -8208,14 +7748,12 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 		.setting_init_fcn =             _setting_init_fcn_proxy,
 	),
 	SETTING_INFO (SERIAL),
-	SETTING_INFO (SRIOV),
 	SETTING_INFO (TC_CONFIG),
 	SETTING_INFO (TEAM,
 		.valid_parts = NM_META_SETTING_VALID_PARTS (
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (TEAM,                  TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (TEAM_PORT),
@@ -8224,7 +7762,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (TUN,                   TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 		.setting_init_fcn =             _setting_init_fcn_tun,
 	),
@@ -8234,7 +7771,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (VLAN,                  TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 		.setting_init_fcn =             _setting_init_fcn_vlan,
 	),
@@ -8249,7 +7785,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (VXLAN,                 TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (WIMAX,
@@ -8265,8 +7800,6 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (WIRED,                 TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (802_1X,                FALSE),
 			NM_META_SETTING_VALID_PART_ITEM (DCB,                   FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (SRIOV,                 FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 	),
 	SETTING_INFO (WIRELESS,
@@ -8276,19 +7809,12 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
 			NM_META_SETTING_VALID_PART_ITEM (WIRELESS,              TRUE),
 			NM_META_SETTING_VALID_PART_ITEM (WIRELESS_SECURITY,     FALSE),
 			NM_META_SETTING_VALID_PART_ITEM (802_1X,                FALSE),
-			NM_META_SETTING_VALID_PART_ITEM (ETHTOOL,               FALSE),
 		),
 		.setting_init_fcn =             _setting_init_fcn_wireless,
 	),
 	SETTING_INFO (WIRELESS_SECURITY,
 		.alias =                            "wifi-sec",
 	),
-	SETTING_INFO (WPAN,
-		.valid_parts = NM_META_SETTING_VALID_PARTS (
-			NM_META_SETTING_VALID_PART_ITEM (CONNECTION,            TRUE),
-			NM_META_SETTING_VALID_PART_ITEM (WPAN,                  TRUE),
-		),
-	),
 };
 
 /*****************************************************************************/
@@ -8301,7 +7827,6 @@ const NMMetaSettingValidPartItem *const nm_meta_setting_info_valid_parts_default
 /*****************************************************************************/
 
 static const NMMetaSettingValidPartItem *const valid_settings_noslave[] = {
-	NM_META_SETTING_VALID_PART_ITEM (MATCH,      FALSE),
 	NM_META_SETTING_VALID_PART_ITEM (IP4_CONFIG, FALSE),
 	NM_META_SETTING_VALID_PART_ITEM (IP6_CONFIG, FALSE),
 	NM_META_SETTING_VALID_PART_ITEM (TC_CONFIG,  FALSE),
@@ -8380,7 +7905,6 @@ _meta_type_setting_info_editor_get_fcn (const NMMetaAbstractInfo *abstract_info,
                                         const NMMetaEnvironment *environment,
                                         gpointer environment_user_data,
                                         gpointer target,
-                                        gpointer target_data,
                                         NMMetaAccessorGetType get_type,
                                         NMMetaAccessorGetFlags get_flags,
                                         NMMetaAccessorGetOutFlags *out_flags,
@@ -8391,7 +7915,6 @@ _meta_type_setting_info_editor_get_fcn (const NMMetaAbstractInfo *abstract_info,
 
 	nm_assert (!out_to_free || !*out_to_free);
 	nm_assert (out_flags && !*out_flags);
-	nm_assert (!target_data);
 
 	if (!NM_IN_SET (get_type,
 	                NM_META_ACCESSOR_GET_TYPE_PARSABLE,
@@ -8408,7 +7931,6 @@ _meta_type_property_info_get_fcn (const NMMetaAbstractInfo *abstract_info,
                                   const NMMetaEnvironment *environment,
                                   gpointer environment_user_data,
                                   gpointer target,
-                                  gpointer target_data,
                                   NMMetaAccessorGetType get_type,
                                   NMMetaAccessorGetFlags get_flags,
                                   NMMetaAccessorGetOutFlags *out_flags,
@@ -8455,6 +7977,7 @@ _meta_type_setting_info_editor_get_nested (const NMMetaAbstractInfo *abstract_in
 	info = (const NMMetaSettingInfoEditor *) abstract_info;
 
 	NM_SET_OUT (out_len, info->properties_num);
+	*out_to_free = NULL;
 	return (const NMMetaAbstractInfo *const*) info->properties;
 }
 
@@ -8464,6 +7987,7 @@ _meta_type_property_info_get_nested (const NMMetaAbstractInfo *abstract_info,
                                      gpointer *out_to_free)
 {
 	NM_SET_OUT (out_len, 0);
+	*out_to_free = NULL;
 	return NULL;
 }