summary refs log tree commit diff
path: root/clients
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2019-04-21 21:09:51 +0200
committerMichael Biebl <biebl@debian.org>2019-04-21 21:09:51 +0200
commit85563b7fc7ec2cd21e38debb9b28db342e2e8e7c (patch)
treecce7b0b02d28fae2df9fdf2c1804cacd1500f2d7 /clients
parent9a6dcbf895f9da01768e64b73cec88c16157d91e (diff)
New upstream version 1.18.0 upstream/1.18.0
Diffstat (limited to 'clients')
-rw-r--r--clients/cli/connections.c256
-rw-r--r--clients/cli/devices.c1
-rw-r--r--clients/cli/general.c4
-rw-r--r--clients/cli/meson.build2
-rw-r--r--clients/cli/settings.c261
-rw-r--r--clients/cli/settings.h13
-rw-r--r--clients/cli/utils.c3
-rw-r--r--clients/common/meson.build4
-rw-r--r--clients/common/nm-client-utils.c4
-rw-r--r--clients/common/nm-client-utils.h8
-rw-r--r--clients/common/nm-meta-setting-access.c16
-rw-r--r--clients/common/nm-meta-setting-access.h2
-rw-r--r--clients/common/nm-meta-setting-desc.c4108
-rw-r--r--clients/common/nm-meta-setting-desc.h83
-rw-r--r--clients/common/nm-secret-agent-simple.c49
-rw-r--r--clients/common/nm-vpn-helpers.c67
-rw-r--r--clients/common/settings-docs.h4
-rw-r--r--clients/common/settings-docs.h.in4
-rw-r--r--clients/common/tests/meson.build2
-rw-r--r--clients/meson.build2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001.expected92
-rw-r--r--clients/tests/test-client.check-on-disk/test_002.expected52
-rw-r--r--clients/tests/test-client.check-on-disk/test_003.expected1474
-rw-r--r--clients/tests/test-client.check-on-disk/test_004.expected3542
-rwxr-xr-xclients/tests/test-client.py4
-rw-r--r--clients/tui/meson.build3
-rw-r--r--clients/tui/nmt-editor.c4
-rw-r--r--clients/tui/nmt-mac-entry.c2
28 files changed, 5434 insertions, 4632 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index 6db44f87..6ee3b49f 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -1276,12 +1276,18 @@ static void
 update_secrets_in_connection (NMRemoteConnection *remote, NMConnection *local)
 {
 	GetSecretsData data = { 0, };
+	GType setting_type;
 	int i;
 
 	data.local = local;
 	data.loop = g_main_loop_new (NULL, FALSE);
 
 	for (i = 0; i < _NM_META_SETTING_TYPE_NUM; i++) {
+		setting_type = nm_meta_setting_infos[i].get_setting_gtype();
+		if (!nm_connection_get_setting (NM_CONNECTION (remote), setting_type))
+			continue;
+		if (!nm_meta_setting_info_editor_has_secrets (nm_meta_setting_info_editor_find_by_gtype (setting_type)))
+			continue;
 		data.setting_name = nm_meta_setting_infos[i].setting_name;
 		nm_remote_connection_get_secrets_async (remote,
 		                                        nm_meta_setting_infos[i].setting_name,
@@ -1522,15 +1528,13 @@ split_required_fields_for_con_show (const char *input,
                                     char **active_flds,
                                     GError **error)
 {
-	char **fields, **iter;
-	char *dot;
-	GString *str1, *str2;
-	gboolean found;
+	gs_free const char **fields = NULL;
+	const char *const*iter;
+	nm_auto_free_gstring GString *str1 = NULL;
+	nm_auto_free_gstring GString *str2 = NULL;
 	gboolean group_profile = FALSE;
 	gboolean group_active = FALSE;
-	gboolean success = TRUE;
-	gboolean is_all, is_common;
-	int i;
+	gboolean do_free;
 
 	if (!input) {
 		*profile_flds = NULL;
@@ -1541,25 +1545,30 @@ split_required_fields_for_con_show (const char *input,
 	str1 = g_string_new (NULL);
 	str2 = g_string_new (NULL);
 
-	/* Split supplied fields string */
-	fields = g_strsplit_set (input, ",", -1);
+	fields = nm_utils_strsplit_set_with_empty (input, ",");
 	for (iter = fields; iter && *iter; iter++) {
-		g_strstrip (*iter);
-		dot = strchr (*iter, '.');
+		char *s_mutable = (char *) (*iter);
+		char *dot;
+		gboolean is_all;
+		gboolean is_common;
+		gboolean found;
+		int i;
+
+		g_strstrip (s_mutable);
+		dot = strchr (s_mutable, '.');
 		if (dot)
 			*dot = '\0';
 
-		is_all = !dot && strcasecmp (*iter, "all") == 0;
-		is_common = !dot && strcasecmp (*iter, "common") == 0;
+		is_all = !dot && strcasecmp (s_mutable, "all") == 0;
+		is_common = !dot && strcasecmp (s_mutable, "common") == 0;
 
 		found = FALSE;
-
 		for (i = 0; i < _NM_META_SETTING_TYPE_NUM; i++) {
 			if (   is_all || is_common
-			    || !strcasecmp (*iter, nm_meta_setting_infos[i].setting_name)) {
+			    || !strcasecmp (s_mutable, nm_meta_setting_infos[i].setting_name)) {
 				if (dot)
 					*dot = '.';
-				g_string_append (str1, *iter);
+				g_string_append (str1, s_mutable);
 				g_string_append_c (str1, ',');
 				found = TRUE;
 				break;
@@ -1567,12 +1576,13 @@ split_required_fields_for_con_show (const char *input,
 		}
 		if (found)
 			continue;
+
 		for (i = 0; nmc_fields_con_active_details_groups[i]; i++) {
 			if (   is_all || is_common
-			    || !strcasecmp (*iter, nmc_fields_con_active_details_groups[i]->name)) {
+			    || !strcasecmp (s_mutable, nmc_fields_con_active_details_groups[i]->name)) {
 				if (dot)
 					*dot = '.';
-				g_string_append (str2, *iter);
+				g_string_append (str2, s_mutable);
 				g_string_append_c (str2, ',');
 				found = TRUE;
 				break;
@@ -1581,55 +1591,49 @@ split_required_fields_for_con_show (const char *input,
 		if (!found) {
 			if (dot)
 				*dot = '.';
-			if (!strcasecmp (*iter, CON_SHOW_DETAIL_GROUP_PROFILE))
+			if (!strcasecmp (s_mutable, CON_SHOW_DETAIL_GROUP_PROFILE))
 				group_profile = TRUE;
-			else if (!strcasecmp (*iter, CON_SHOW_DETAIL_GROUP_ACTIVE))
+			else if (!strcasecmp (s_mutable, CON_SHOW_DETAIL_GROUP_ACTIVE))
 				group_active = TRUE;
 			else {
-				char *allowed1 = nm_meta_abstract_infos_get_names_str ((const NMMetaAbstractInfo *const*) nm_meta_setting_infos_editor_p (), NULL);
-				char *allowed2 = nm_meta_abstract_infos_get_names_str ((const NMMetaAbstractInfo *const*) nmc_fields_con_active_details_groups, NULL);
+				gs_free char *allowed1 = nm_meta_abstract_infos_get_names_str ((const NMMetaAbstractInfo *const*) nm_meta_setting_infos_editor_p (), NULL);
+				gs_free char *allowed2 = nm_meta_abstract_infos_get_names_str ((const NMMetaAbstractInfo *const*) nmc_fields_con_active_details_groups, NULL);
+
 				g_set_error (error, NMCLI_ERROR, 0, _("invalid field '%s'; allowed fields: %s and %s, or %s,%s"),
-				             *iter, allowed1, allowed2, CON_SHOW_DETAIL_GROUP_PROFILE, CON_SHOW_DETAIL_GROUP_ACTIVE);
-				g_free (allowed1);
-				g_free (allowed2);
-				success = FALSE;
-				break;
+				             s_mutable, allowed1, allowed2, CON_SHOW_DETAIL_GROUP_PROFILE, CON_SHOW_DETAIL_GROUP_ACTIVE);
+				return FALSE;
 			}
 		}
 	}
-	if (fields)
-		g_strfreev (fields);
 
 	/* Handle pseudo groups: profile, active */
-	if (success && group_profile) {
+	if (group_profile) {
 		if (str1->len > 0) {
 			g_set_error (error, NMCLI_ERROR, 0, _("'%s' has to be alone"),
 			             CON_SHOW_DETAIL_GROUP_PROFILE);
-			success = FALSE;
-		} else
-			g_string_assign (str1, "all,");
+			return FALSE;
+		}
+		g_string_assign (str1, "all,");
 	}
-	if (success && group_active) {
+	if (group_active) {
 		if (str2->len > 0) {
 			g_set_error (error, NMCLI_ERROR, 0, _("'%s' has to be alone"),
 			             CON_SHOW_DETAIL_GROUP_ACTIVE);
-			success = FALSE;
-		} else
-			g_string_assign (str2, "all,");
+			return FALSE;
+		}
+		g_string_assign (str2, "all,");
 	}
 
-	if (success) {
-		if (str1->len > 0)
-			g_string_truncate (str1, str1->len - 1);
-		if (str2->len > 0)
-			g_string_truncate (str2, str2->len - 1);
-		*profile_flds = g_string_free (str1, str1->len == 0);
-		*active_flds = g_string_free (str2, str2->len == 0);
-	} else {
-		g_string_free (str1, TRUE);
-		g_string_free (str2, TRUE);
-	}
-	return success;
+	if (str1->len > 0)
+		g_string_truncate (str1, str1->len - 1);
+	if (str2->len > 0)
+		g_string_truncate (str2, str2->len - 1);
+
+	do_free = (str1->len == 0);
+	*profile_flds = g_string_free (g_steal_pointer (&str1), do_free);
+	do_free = (str2->len == 0);
+	*active_flds = g_string_free (g_steal_pointer (&str2), do_free);
+	return TRUE;
 }
 
 typedef enum {
@@ -1870,7 +1874,7 @@ parse_preferred_connection_order (const char *order, GError **error)
 	gboolean inverse, unique;
 	int i;
 
-	strv = nm_utils_strsplit_set (order, ":", FALSE);
+	strv = nm_utils_strsplit_set (order, ":");
 	if (!strv) {
 		g_set_error (error, NMCLI_ERROR, 0,
 		             _("incorrect string '%s' of '--order' option"), order);
@@ -2674,7 +2678,7 @@ parse_passwords (const char *passwd_file, GError **error)
 		return NULL;
 	}
 
-	strv = nm_utils_strsplit_set (contents, "\r\n", FALSE);
+	strv = nm_utils_strsplit_set (contents, "\r\n");
 	for (iter = strv; *iter; iter++) {
 		gs_free char *iter_s = g_strdup (*iter);
 
@@ -3959,11 +3963,12 @@ set_property (NMClient *client,
               char modifier,
               GError **error)
 {
-	gs_free char *property_name = NULL, *value_free = NULL;
+	gs_free char *property_name = NULL;
+	gs_free_error GError *local = NULL;
 	NMSetting *setting;
-	GError *local = NULL;
 
-	g_assert (setting_name && setting_name[0]);
+	nm_assert (setting_name && setting_name[0]);
+	nm_assert (NM_IN_SET (modifier, '\0', '+', '-'));
 
 	setting = nm_connection_get_setting_by_name (connection, setting_name);
 	if (!setting) {
@@ -3977,48 +3982,26 @@ set_property (NMClient *client,
 		g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
 		             _("Error: invalid property '%s': %s."),
 		             property, local->message);
-		g_clear_error (&local);
 		return FALSE;
 	}
 
-	if (modifier != '-') {
-		/* Set/add value */
-		if (modifier != '+') {
-			/* We allow the existing property value to be passed as parameter,
-			 * so make a copy if we are going to free it.
-			 */
-			value = value_free = g_strdup (value);
-			nmc_setting_reset_property (setting, property_name, NULL);
-		}
-		if (!nmc_setting_set_property (client, setting, property_name, value, &local)) {
-			g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
-			             _("Error: failed to modify %s.%s: %s."),
-			             setting_name, property, local->message);
-			g_clear_error (&local);
-			return FALSE;
-		}
-	} else {
-		/* Remove value
-		 * - either empty: remove whole value
-		 * - or specified by index <0-n>: remove item at the index
-		 * - or option name: remove item with the option name
-		 */
-		if (value) {
-			unsigned long idx;
-
-			if (nmc_string_to_uint (value, TRUE, 0, G_MAXUINT32, &idx))
-				nmc_setting_remove_property_option (setting, property_name, NULL, idx, &local);
-			else
-				nmc_setting_remove_property_option (setting, property_name, value, 0, &local);
-			if (local) {
-				g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
-				             _("Error: failed to remove a value from %s.%s: %s."),
-				             setting_name, property,  local->message);
-				g_clear_error (&local);
-				return FALSE;
-			}
-		} else
-			nmc_setting_reset_property (setting, property_name, NULL);
+	if (!nmc_setting_set_property (client,
+	                               setting,
+	                               property_name,
+	                               (  (modifier == '-' && !value)
+	                                ? '\0'
+	                                : modifier),
+	                               value,
+	                               &local)) {
+		g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_USER_INPUT,
+		             _("Error: failed to %s %s.%s: %s."),
+		             (  modifier != '-'
+		              ? "modify"
+		              : "remove a value from"),
+		             setting_name,
+		             property,
+		             local->message);
+		return FALSE;
 	}
 
 	/* Don't ask for this property in interactive mode. */
@@ -6904,7 +6887,6 @@ property_edit_submenu (NmCli *nmc,
 		gs_free char *cmd_property_user = NULL;
 		gs_free char *cmd_property_arg = NULL;
 		gs_free char *prop_val_user = NULL;
-		nm_auto_unset_gvalue GValue prop_g_value = G_VALUE_INIT;
 		gboolean removed;
 		gboolean dirty;
 
@@ -6954,24 +6936,17 @@ property_edit_submenu (NmCli *nmc,
 			} else
 				prop_val_user = g_strdup (cmd_property_arg);
 
-			/* nmc_setting_set_property() only adds new value, thus we have to
-			 * remove the original value and save it for error cases.
-			 */
-			if (cmdsub == NMC_EDITOR_SUB_CMD_SET) {
-				nmc_property_get_gvalue (curr_setting, prop_name, &prop_g_value);
-				nmc_property_set_default_value (curr_setting, prop_name);
-			}
-
-			set_result = nmc_setting_set_property (nmc->client, curr_setting, prop_name, prop_val_user, &tmp_err);
+			set_result = nmc_setting_set_property (nmc->client,
+			                                       curr_setting,
+			                                       prop_name,
+			                                         (cmdsub == NMC_EDITOR_SUB_CMD_SET)
+			                                       ? '\0'
+			                                       : '+',
+			                                       prop_val_user,
+			                                       &tmp_err);
 			if (!set_result) {
 				g_print (_("Error: failed to set '%s' property: %s\n"), prop_name, tmp_err->message);
 				g_clear_error (&tmp_err);
-				if (cmdsub == NMC_EDITOR_SUB_CMD_SET) {
-					/* Block change signals and restore original value */
-					g_signal_handlers_block_matched (curr_setting, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL);
-					nmc_property_set_gvalue (curr_setting, prop_name, &prop_g_value);
-					g_signal_handlers_unblock_matched (curr_setting, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL);
-				}
 			}
 			break;
 
@@ -6982,41 +6957,23 @@ property_edit_submenu (NmCli *nmc,
 			                              _("Edit '%s' value: "),
 			                              prop_name);
 
-			nmc_property_get_gvalue (curr_setting, prop_name, &prop_g_value);
-			nmc_property_set_default_value (curr_setting, prop_name);
-
-			if (!nmc_setting_set_property (nmc->client, curr_setting, prop_name, prop_val_user, &tmp_err)) {
+			if (!nmc_setting_set_property (nmc->client, curr_setting, prop_name, '\0', prop_val_user, &tmp_err)) {
 				g_print (_("Error: failed to set '%s' property: %s\n"), prop_name, tmp_err->message);
 				g_clear_error (&tmp_err);
-				g_signal_handlers_block_matched (curr_setting, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL);
-				nmc_property_set_gvalue (curr_setting, prop_name, &prop_g_value);
-				g_signal_handlers_unblock_matched (curr_setting, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL);
 			}
 			break;
 
 		case NMC_EDITOR_SUB_CMD_REMOVE:
-			if (cmd_property_arg) {
-				unsigned long val_int = G_MAXUINT32;
-				gs_free char *option = NULL;
-
-				if (!nmc_string_to_uint (cmd_property_arg, TRUE, 0, G_MAXUINT32, &val_int)) {
-					option = g_strdup (cmd_property_arg);
-					g_strstrip (option);
-				}
-
-				if (!nmc_setting_remove_property_option (curr_setting, prop_name,
-				                                         option,
-				                                         (guint32) val_int,
-				                                         &tmp_err)) {
-					g_print (_("Error: %s\n"), tmp_err->message);
-					g_clear_error (&tmp_err);
-				}
-			} else {
-				if (!nmc_setting_reset_property (curr_setting, prop_name, &tmp_err)) {
-					g_print (_("Error: failed to remove value of '%s': %s\n"), prop_name,
-					         tmp_err->message);
-					g_clear_error (&tmp_err);
-				}
+			if (!nmc_setting_set_property (nmc->client,
+			                               curr_setting,
+			                               prop_name,
+			                               (  cmd_property_arg
+			                                ? '-'
+			                                : '\0'),
+			                               cmd_property_arg,
+			                               &tmp_err)) {
+				g_print (_("Error: %s\n"), tmp_err->message);
+				g_clear_error (&tmp_err);
 			}
 			break;
 
@@ -7367,8 +7324,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 					                              _("Enter '%s' value: "),
 					                              prop_name);
 
-					/* Set property value */
-					if (!nmc_setting_set_property (nmc->client, menu_ctx.curr_setting, prop_name, prop_val_user, &tmp_err)) {
+					if (!nmc_setting_set_property (nmc->client, menu_ctx.curr_setting, prop_name, '+', prop_val_user, &tmp_err)) {
 						g_print (_("Error: failed to set '%s' property: %s\n"), prop_name, tmp_err->message);
 						g_clear_error (&tmp_err);
 					}
@@ -7428,8 +7384,13 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 					                          prop_name);
 				}
 
-				/* Set property value */
-				if (!nmc_setting_set_property (nmc->client, ss, prop_name, cmd_arg_v, &tmp_err)) {
+				/* setting a value in edit mode "appends". That seems unexpected behavior. */
+				if (!nmc_setting_set_property (nmc->client,
+				                               ss,
+				                               prop_name,
+				                               cmd_arg_v ? '+' : '\0',
+				                               cmd_arg_v,
+				                               &tmp_err)) {
 					g_print (_("Error: failed to set '%s' property: %s\n"),
 					         prop_name, tmp_err->message);
 					g_clear_error (&tmp_err);
@@ -7526,8 +7487,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 					if (!prop_name)
 						break;
 
-					/* Delete property value */
-					if (!nmc_setting_reset_property (menu_ctx.curr_setting, prop_name, &tmp_err)) {
+					if (!nmc_setting_set_property (nmc->client, menu_ctx.curr_setting, prop_name, '\0', NULL, &tmp_err)) {
 						g_print (_("Error: failed to remove value of '%s': %s\n"), prop_name,
 						         tmp_err->message);
 						g_clear_error (&tmp_err);
@@ -7577,8 +7537,7 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 
 					prop_name = is_property_valid (ss, cmd_arg_p, &tmp_err);
 					if (prop_name) {
-						/* Delete property value */
-						if (!nmc_setting_reset_property (ss, prop_name, &tmp_err)) {
+						if (!nmc_setting_set_property (nmc->client, ss, prop_name, '\0', NULL, &tmp_err)) {
 							g_print (_("Error: failed to remove value of '%s': %s\n"), prop_name,
 							         tmp_err->message);
 							g_clear_error (&tmp_err);
@@ -8148,6 +8107,9 @@ editor_init_existing_connection (NMConnection *connection)
 	NMSettingWireless *s_wireless;
 	NMSettingConnection *s_con;
 
+	/* FIXME: this approach of connecting handlers to do something is fundamentally
+	 * flawed. See the comment in nmc_setting_ip6_connect_handlers(). */
+
 	s_ip4 = nm_connection_get_setting_ip4_config (connection);
 	s_ip6 = nm_connection_get_setting_ip6_config (connection);
 	s_proxy = nm_connection_get_setting_proxy (connection);
@@ -8585,7 +8547,7 @@ delete_cb (GObject *con, GAsyncResult *result, gpointer user_data)
 		if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
 			return;
 		g_string_printf (info->nmc->return_text, _("Error: not all connections deleted."));
-		g_printerr (_("Error: Connection deletion failed: %s"),
+		g_printerr (_("Error: Connection deletion failed: %s\n"),
 		            error->message);
 		g_error_free (error);
 		info->nmc->return_value = NMC_RESULT_ERROR_CON_DEL;
diff --git a/clients/cli/devices.c b/clients/cli/devices.c
index 04a8c988..ad3a44c4 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -3888,6 +3888,7 @@ do_device_wifi_hotspot (NmCli *nmc, int argc, char **argv)
 	info->nmc = nmc;
 	info->device = device;
 	info->hotspot = TRUE;
+	info->create = TRUE;
 
 	nm_client_add_and_activate_connection_async (nmc->client,
 	                                             connection,
diff --git a/clients/cli/general.c b/clients/cli/general.c
index 2c22bdc9..d713426b 100644
--- a/clients/cli/general.c
+++ b/clients/cli/general.c
@@ -23,7 +23,7 @@
 
 #include <stdlib.h>
 
-#include "nm-common-macros.h"
+#include "nm-libnm-core-intern/nm-common-macros.h"
 
 #include "nm-client-utils.h"
 
@@ -1350,7 +1350,7 @@ do_overview (NmCli *nmc, int argc, char **argv)
 	g_print (_("Use \"nmcli device show\" to get complete information about known devices and\n"
 	           "\"nmcli connection show\" to get an overview on active connection profiles.\n"
 	           "\n"
-	           "Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.\n"));
+	           "Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.\n"));
 
 	return NMC_RESULT_SUCCESS;
 }
diff --git a/clients/cli/meson.build b/clients/cli/meson.build
index 11fe1cd1..396466a2 100644
--- a/clients/cli/meson.build
+++ b/clients/cli/meson.build
@@ -22,7 +22,7 @@ deps = [
   libnm_dep,
   libnmc_base_dep,
   libnmc_dep,
-  nm_core_dep,
+  libnm_core_dep,
   readline_dep,
 ]
 
diff --git a/clients/cli/settings.c b/clients/cli/settings.c
index a04c8eb6..2446cb08 100644
--- a/clients/cli/settings.c
+++ b/clients/cli/settings.c
@@ -24,7 +24,7 @@
 #include <stdlib.h>
 #include <arpa/inet.h>
 
-#include "nm-common-macros.h"
+#include "nm-libnm-core-intern/nm-common-macros.h"
 
 #include "nm-client-utils.h"
 #include "nm-vpn-helpers.h"
@@ -89,7 +89,7 @@ ipv4_addresses_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_dat
 static void
 ipv4_method_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_data)
 {
-	static GValue value = G_VALUE_INIT;
+	static GPtrArray *old_value = NULL;
 	static gboolean answered = FALSE;
 	static gboolean answer = FALSE;
 
@@ -103,17 +103,17 @@ ipv4_method_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_data)
 				answer = get_answer ("ipv4.addresses", NULL);
 			}
 			if (answer) {
-				if (G_IS_VALUE (&value))
-					g_value_unset (&value);
-				nmc_property_get_gvalue (NM_SETTING (object), NM_SETTING_IP_CONFIG_ADDRESSES, &value);
+				nm_clear_pointer (&old_value, g_ptr_array_unref);
+				g_object_get (object, NM_SETTING_IP_CONFIG_ADDRESSES, &old_value, NULL);
 				g_object_set (object, NM_SETTING_IP_CONFIG_ADDRESSES, NULL, NULL);
 			}
 		}
 	} else {
 		answered = FALSE;
-		if (G_IS_VALUE (&value)) {
-			nmc_property_set_gvalue (NM_SETTING (object), NM_SETTING_IP_CONFIG_ADDRESSES, &value);
-			g_value_unset (&value);
+		if (old_value) {
+			gs_unref_ptrarray GPtrArray *v = g_steal_pointer (&old_value);
+
+			g_object_set (object, NM_SETTING_IP_CONFIG_ADDRESSES, v, NULL);
 		}
 	}
 
@@ -142,6 +142,25 @@ ipv6_addresses_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_dat
 		}
 	} else {
 		answered = FALSE;
+		/* FIXME: editor_init_existing_connection() and registering handlers is not the
+		 *  right approach.
+		 *
+		 * This only happens to work because in nmcli's edit mode
+		 * tends to append addresses -- instead of setting them.
+		 * If we would change that (to behavior I'd expect), we'd get:
+		 *
+		 *   nmcli> set ipv6.addresses fc01::1:5/68
+		 *   Do you also want to set 'ipv6.method' to 'manual'? [yes]: y
+		 *   nmcli> set ipv6.addresses fc01::1:6/68
+		 *   Do you also want to set 'ipv6.method' to 'manual'? [yes]:
+		 *
+		 * That's because nmc_setting_set_property() calls set_fcn(). With modifier '\0'
+		 * (set), it would first clear all addresses before adding the address. Thereby
+		 * emitting multiple property changed signals.
+		 *
+		 * That can be avoided by freezing/thawing the signals, but this solution
+		 * here is ugly in general.
+		 */
 		if (!g_strcmp0 (nm_setting_ip_config_get_method (NM_SETTING_IP_CONFIG (object)), NM_SETTING_IP6_CONFIG_METHOD_MANUAL))
 			g_object_set (object, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO, NULL);
 	}
@@ -152,7 +171,7 @@ ipv6_addresses_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_dat
 static void
 ipv6_method_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_data)
 {
-	static GValue value = G_VALUE_INIT;
+	static GPtrArray *old_value = NULL;
 	static gboolean answered = FALSE;
 	static gboolean answer = FALSE;
 
@@ -166,17 +185,17 @@ ipv6_method_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_data)
 				answer = get_answer ("ipv6.addresses", NULL);
 			}
 			if (answer) {
-				if (G_IS_VALUE (&value))
-					g_value_unset (&value);
-				nmc_property_get_gvalue (NM_SETTING (object), NM_SETTING_IP_CONFIG_ADDRESSES, &value);
+				nm_clear_pointer (&old_value, g_ptr_array_unref);
+				g_object_get (object, NM_SETTING_IP_CONFIG_ADDRESSES, &old_value, NULL);
 				g_object_set (object, NM_SETTING_IP_CONFIG_ADDRESSES, NULL, NULL);
 			}
 		}
 	} else {
 		answered = FALSE;
-		if (G_IS_VALUE (&value)) {
-			nmc_property_set_gvalue (NM_SETTING (object), NM_SETTING_IP_CONFIG_ADDRESSES, &value);
-			g_value_unset (&value);
+		if (old_value) {
+			gs_unref_ptrarray GPtrArray *v = g_steal_pointer (&old_value);
+
+			g_object_set (object, NM_SETTING_IP_CONFIG_ADDRESSES, v, NULL);
 		}
 	}
 
@@ -319,7 +338,7 @@ _set_fcn_precheck_connection_secondaries (NMClient *client,
 	char **iter;
 	gboolean modified = FALSE;
 
-	strv0 = nm_utils_strsplit_set (value, " \t,", FALSE);
+	strv0 = nm_utils_strsplit_set (value, " \t,");
 	if (!strv0)
 		return TRUE;
 
@@ -509,152 +528,73 @@ nmc_setting_get_property_parsable (NMSetting *setting, const char *prop, GError
 	return get_property_val (setting, prop, NM_META_ACCESSOR_GET_TYPE_PARSABLE, TRUE, error);
 }
 
-static gboolean
-_set_fcn_call (const NMMetaPropertyInfo *property_info,
-               NMSetting *setting,
-               const char *value,
-               GError **error)
-{
-	return property_info->property_type->set_fcn (property_info,
-	                                              nmc_meta_environment,
-	                                              nmc_meta_environment_arg,
-	                                              setting,
-	                                              value,
-	                                              error);
-}
-
-/*
- * Generic function for setting property value.
- *
- * Sets property=value in setting by calling specialized functions.
- * If value is NULL then default property value is set.
- *
- * Returns: TRUE on success; FALSE on failure and sets error
- */
 gboolean
-nmc_setting_set_property (NMClient *client, NMSetting *setting, const char *prop, const char *value, GError **error)
+nmc_setting_set_property (NMClient *client,
+                          NMSetting *setting,
+                          const char *prop,
+                          char modifier,
+                          const char *value,
+                          GError **error)
 {
 	const NMMetaPropertyInfo *property_info;
+	gs_free char *value_to_free = NULL;
+	gboolean success;
 
 	g_return_val_if_fail (NM_IS_SETTING (setting), FALSE);
 	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+	g_return_val_if_fail (NM_IN_SET (modifier, '\0', '-', '+'), FALSE);
 
-	if ((property_info = nm_meta_property_info_find_by_setting (setting, prop))) {
-
-		if (!value) {
-			/* No value argument sets default value */
-			nmc_property_set_default_value (setting, prop);
-			return TRUE;
-		}
-
-		if (property_info->property_type->set_fcn) {
-			switch (property_info->setting_info->general->meta_type) {
-			case NM_META_SETTING_TYPE_CONNECTION:
-				if (nm_streq (property_info->property_name, NM_SETTING_CONNECTION_SECONDARIES)) {
-					gs_free char *value_coerced = NULL;
-
-					if (!_set_fcn_precheck_connection_secondaries (client, value, &value_coerced, error))
-						return FALSE;
+	if (!(property_info = nm_meta_property_info_find_by_setting (setting, prop)))
+		goto out_fail_read_only;
+	if (!property_info->property_type->set_fcn)
+		goto out_fail_read_only;
 
-					return _set_fcn_call (property_info,
-					                      setting,
-					                      value_coerced ?: value,
-					                      error);
-				}
-				break;
-			default:
-				break;
-			}
-			return _set_fcn_call (property_info,
-			                      setting,
-			                      value,
-			                      error);
-		}
+	if (   NM_IN_SET (modifier, '+', '-')
+	    && !value) {
+		/* nothing to do. */
+		return TRUE;
 	}
 
-	g_set_error_literal (error, 1, 0, _("the property can't be changed"));
-	return FALSE;
-}
-
-void
-nmc_property_set_default_value (NMSetting *setting, const char *prop)
-{
-	GValue value = G_VALUE_INIT;
-	GParamSpec *param_spec;
-
-	param_spec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (setting)), prop);
-	if (param_spec) {
-		g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (param_spec));
-		g_param_value_set_default (param_spec, &value);
-		g_object_set_property (G_OBJECT (setting), prop, &value);
+	if (   modifier == '-'
+	    && !property_info->property_type->set_supports_remove) {
+		/* The property is a plain property. It does not support '-'.
+		 *
+		 * Maybe we should fail, but just return silently. */
+		return TRUE;
 	}
-}
-
-/*
- * Generic function for resetting (single value) properties.
- *
- * The function resets the property value to the default one. It respects
- * nmcli restrictions for changing properties. So if 'set_func' is NULL,
- * resetting the value is denied.
- *
- * Returns: TRUE on success; FALSE on failure and sets error
- */
-gboolean
-nmc_setting_reset_property (NMSetting *setting, const char *prop, GError **error)
-{
-	const NMMetaPropertyInfo *property_info;
-
-	g_return_val_if_fail (NM_IS_SETTING (setting), FALSE);
-	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
-	if ((property_info = nm_meta_property_info_find_by_setting (setting, prop))) {
-		if (property_info->property_type->set_fcn) {
-			nmc_property_set_default_value (setting, prop);
-			return TRUE;
+	if (value) {
+		switch (property_info->setting_info->general->meta_type) {
+		case NM_META_SETTING_TYPE_CONNECTION:
+			if (nm_streq (property_info->property_name, NM_SETTING_CONNECTION_SECONDARIES)) {
+				if (!_set_fcn_precheck_connection_secondaries (client, value, &value_to_free, error))
+					return FALSE;
+				if (value_to_free)
+					value = value_to_free;
+			}
+			break;
+		default:
+			break;
 		}
 	}
 
-	g_set_error_literal (error, 1, 0, _("the property can't be changed"));
+	g_object_freeze_notify (G_OBJECT (setting));
+	success = property_info->property_type->set_fcn (property_info,
+	                                                 nmc_meta_environment,
+	                                                 nmc_meta_environment_arg,
+	                                                 setting,
+	                                                 modifier,
+	                                                 value,
+	                                                 error);
+	g_object_thaw_notify (G_OBJECT (setting));
+	return success;
+
+out_fail_read_only:
+	nm_utils_error_set (error, NM_UTILS_ERROR_UNKNOWN, _("the property can't be changed"));
 	return FALSE;
 }
 
 /*
- * Generic function for removing items for collection-type properties.
- *
- * If 'option' is not NULL, it tries to remove it, otherwise 'idx' is used.
- * For single-value properties (not having specialized remove function) this
- * function does nothing and just returns TRUE.
- *
- * Returns: TRUE on success; FALSE on failure and sets error
- */
-gboolean
-nmc_setting_remove_property_option (NMSetting *setting,
-                                    const char *prop,
-                                    const char *option,
-                                    guint32 idx,
-                                    GError **error)
-{
-	const NMMetaPropertyInfo *property_info;
-
-	g_return_val_if_fail (NM_IS_SETTING (setting), FALSE);
-	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
-	if ((property_info = nm_meta_property_info_find_by_setting (setting, prop))) {
-		if (property_info->property_type->remove_fcn) {
-			return property_info->property_type->remove_fcn (property_info,
-			                                                 nmc_meta_environment,
-			                                                 nmc_meta_environment_arg,
-			                                                 setting,
-			                                                 option,
-			                                                 idx,
-			                                                 error);
-		}
-	}
-
-	return TRUE;
-}
-
-/*
  * Get valid property names for a setting.
  *
  * Returns: string array with the properties or NULL on failure.
@@ -749,41 +689,6 @@ nmc_setting_get_property_desc (NMSetting *setting, const char *prop)
 	                        nmcli_desc ?: "");
 }
 
-/*
- * Gets setting:prop property value and returns it in 'value'.
- * Caller is responsible for freeing the GValue resources using g_value_unset()
- */
-gboolean
-nmc_property_get_gvalue (NMSetting *setting, const char *prop, GValue *value)
-{
-	GParamSpec *param_spec;
-
-	param_spec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (setting)), prop);
-	if (param_spec) {
-		memset (value, 0, sizeof (GValue));
-		g_value_init (value, G_PARAM_SPEC_VALUE_TYPE (param_spec));
-		g_object_get_property (G_OBJECT (setting), prop, value);
-		return TRUE;
-	}
-	return FALSE;
-}
-
-/*
- * Sets setting:prop property value from 'value'.
- */
-gboolean
-nmc_property_set_gvalue (NMSetting *setting, const char *prop, GValue *value)
-{
-	GParamSpec *param_spec;
-
-	param_spec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (setting)), prop);
-	if (param_spec && G_VALUE_TYPE (value) == G_PARAM_SPEC_VALUE_TYPE (param_spec)) {
-		g_object_set_property (G_OBJECT (setting), prop, value);
-		return TRUE;
-	}
-	return FALSE;
-}
-
 /*****************************************************************************/
 
 gboolean
diff --git a/clients/cli/settings.h b/clients/cli/settings.h
index 4e7e38df..1ff93685 100644
--- a/clients/cli/settings.h
+++ b/clients/cli/settings.h
@@ -45,20 +45,9 @@ char       *nmc_setting_get_property_parsable (NMSetting *setting,
 gboolean    nmc_setting_set_property (NMClient *client,
                                       NMSetting *setting,
                                       const char *prop,
+                                      char modifier,
                                       const char *val,
                                       GError **error);
-gboolean    nmc_setting_reset_property (NMSetting *setting,
-                                        const char *prop,
-                                        GError **error);
-gboolean    nmc_setting_remove_property_option (NMSetting *setting,
-                                                const char *prop,
-                                                const char *option,
-                                                guint32 idx,
-                                                GError **error);
-void nmc_property_set_default_value (NMSetting *setting, const char *prop);
-
-gboolean nmc_property_get_gvalue (NMSetting *setting, const char *prop, GValue *value);
-gboolean nmc_property_set_gvalue (NMSetting *setting, const char *prop, GValue *value);
 
 gboolean setting_details (const NmcConfig *nmc_config, NMSetting *setting, const char *one_prop);
 
diff --git a/clients/cli/utils.c b/clients/cli/utils.c
index 0e74ba88..a8b81279 100644
--- a/clients/cli/utils.c
+++ b/clients/cli/utils.c
@@ -508,7 +508,8 @@ nmc_string_to_arg_array (const char *line, const char *delim, gboolean unquote,
 	gs_free const char **arr0 = NULL;
 	char **arr;
 
-	arr0 = nm_utils_strsplit_set (line ?: "", delim ?: " \t", FALSE);
+	arr0 = nm_utils_strsplit_set (line ?: "",
+	                              delim ?: " \t");
 	if (!arr0)
 		arr = g_new0 (char *, 1);
 	else
diff --git a/clients/common/meson.build b/clients/common/meson.build
index b4b6bcac..fed0f3bf 100644
--- a/clients/common/meson.build
+++ b/clients/common/meson.build
@@ -4,7 +4,7 @@ nm_polkit_listener = files('nm-polkit-listener.c')
 
 deps = [
   libnm_dep,
-  nm_core_dep,
+  shared_nm_libnm_core_aux_dep,
 ]
 
 cflags = clients_cflags + [
@@ -55,7 +55,7 @@ libnmc = static_library(
   sources: files(
     'nm-meta-setting-access.c',
     'nm-meta-setting-desc.c',
-  ) + shared_nm_meta_setting_c + shared_nm_ethtool_utils_c + [settings_docs_source],
+  ) + shared_nm_meta_setting_c + [settings_docs_source],
   dependencies: deps,
   c_args: cflags,
   link_with: libnmc_base,
diff --git a/clients/common/nm-client-utils.c b/clients/common/nm-client-utils.c
index 1241131a..0a155dae 100644
--- a/clients/common/nm-client-utils.c
+++ b/clients/common/nm-client-utils.c
@@ -82,6 +82,10 @@ nmc_string_to_uint_base (const char *str,
 	char *end;
 	unsigned long int tmp;
 
+	if (!str || !str[0])
+		return FALSE;
+
+	/* FIXME: don't use this function, replace by _nm_utils_ascii_str_to_int64() */
 	errno = 0;
 	tmp = strtoul (str, &end, base);
 	if (errno || *end != '\0' || (range_check && (tmp < min || tmp > max))) {
diff --git a/clients/common/nm-client-utils.h b/clients/common/nm-client-utils.h
index a5bc05fa..08a39f03 100644
--- a/clients/common/nm-client-utils.h
+++ b/clients/common/nm-client-utils.h
@@ -23,13 +23,7 @@
 #include "nm-meta-setting.h"
 #include "nm-active-connection.h"
 #include "nm-device.h"
-
-
-#define nm_auto_unref_ip_address nm_auto (_nm_ip_address_unref)
-NM_AUTO_DEFINE_FCN0 (NMIPAddress *, _nm_ip_address_unref, nm_ip_address_unref)
-
-#define nm_auto_unref_wgpeer nm_auto (_nm_auto_unref_wgpeer)
-NM_AUTO_DEFINE_FCN0 (NMWireGuardPeer *, _nm_auto_unref_wgpeer, nm_wireguard_peer_unref)
+#include "nm-libnm-core-intern/nm-libnm-core-utils.h"
 
 const NMObject **nmc_objects_sort_by_path (const NMObject *const*objs, gssize len);
 
diff --git a/clients/common/nm-meta-setting-access.c b/clients/common/nm-meta-setting-access.c
index bd4064de..8399f29d 100644
--- a/clients/common/nm-meta-setting-access.c
+++ b/clients/common/nm-meta-setting-access.c
@@ -101,6 +101,22 @@ nm_meta_setting_info_editor_get_property_info (const NMMetaSettingInfoEditor *se
 	return NULL;
 }
 
+gboolean
+nm_meta_setting_info_editor_has_secrets (const NMMetaSettingInfoEditor *setting_info)
+{
+	guint i;
+
+	if (!setting_info)
+		return FALSE;
+
+	for (i = 0; i < setting_info->properties_num; i++) {
+		if (setting_info->properties[i]->is_secret)
+			return TRUE;
+	}
+
+	return FALSE;
+}
+
 const NMMetaPropertyInfo *
 nm_meta_property_info_find_by_name (const char *setting_name, const char *property_name)
 {
diff --git a/clients/common/nm-meta-setting-access.h b/clients/common/nm-meta-setting-access.h
index 9898cc5a..ec1c2ba0 100644
--- a/clients/common/nm-meta-setting-access.h
+++ b/clients/common/nm-meta-setting-access.h
@@ -39,6 +39,8 @@ const NMMetaPropertyInfo *nm_meta_property_info_find_by_name (const char *settin
 const NMMetaPropertyInfo *nm_meta_property_info_find_by_setting (NMSetting *setting,
                                                                  const char *property_name);
 
+gboolean nm_meta_setting_info_editor_has_secrets (const NMMetaSettingInfoEditor *setting_info);
+
 /*****************************************************************************/
 
 const NMMetaSettingInfoEditor *const*nm_meta_setting_infos_editor_p (void);
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index 6e35228a..698ded86 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -24,8 +24,10 @@
 #include <stdlib.h>
 #include <arpa/inet.h>
 
-#include "nm-common-macros.h"
-#include "nm-utils/nm-enum-utils.h"
+#include "nm-libnm-core-intern/nm-common-macros.h"
+#include "nm-glib-aux/nm-enum-utils.h"
+#include "nm-glib-aux/nm-secret-utils.h"
+#include "nm-libnm-core-intern/nm-libnm-core-utils.h"
 
 #include "nm-vpn-helpers.h"
 #include "nm-client-utils.h"
@@ -74,6 +76,196 @@ _gtype_property_get_gtype (GType gtype, const char *property_name)
 
 /*****************************************************************************/
 
+static int
+_int64_cmp_desc (gconstpointer a,
+                 gconstpointer b,
+                 gpointer user_data)
+{
+	NM_CMP_DIRECT (*((const gint64 *) b), *((const gint64 *) a));
+	return 0;
+}
+
+static gint64 *
+_value_str_as_index_list (const char *value, gsize *out_len)
+{
+	gs_free char *str_clone_free = NULL;
+	gboolean str_cloned = FALSE;
+	char *str;
+	gsize i, j;
+	gsize n_alloc;
+	gsize len;
+	gs_free gint64 *arr = NULL;
+
+	*out_len = 0;
+
+	if (!value)
+		return NULL;
+
+	str = (char *) value;
+	n_alloc = 0;
+	len = 0;
+	while (TRUE) {
+		gint64 i64;
+		const char *s;
+		gsize good;
+
+		good = strcspn (str, ","NM_ASCII_SPACES);
+		if (good == 0) {
+			if (str[0] == '\0')
+				break;
+			str++;
+			continue;
+		}
+		if (str[good] == '\0') {
+			s = str;
+			str += good;
+		} else {
+			if (!str_cloned) {
+				str_cloned = TRUE;
+				str = nm_strndup_a (200, str, strlen (str), &str_clone_free);
+			}
+			s = str;
+			str[good] = '\0';
+			str += good + 1;
+		}
+
+		i64 = _nm_utils_ascii_str_to_int64 (s, 10, 0, G_MAXINT64, -1);
+		if (i64 == -1)
+			return NULL;
+
+		if (len >= n_alloc) {
+			if (n_alloc > 0) {
+				n_alloc = n_alloc * 2;
+				arr = g_realloc (arr, n_alloc * sizeof (gint64));
+			} else {
+				n_alloc = 4;
+				arr = g_new (gint64, n_alloc);
+			}
+		}
+		arr[len++] = i64;
+	}
+
+	if (len > 1) {
+		/* sort the list of indexes descendingly, and drop duplicates. */
+		g_qsort_with_data (arr,
+		                   len,
+		                   sizeof (gint64),
+		                   _int64_cmp_desc,
+		                   NULL);
+		j = 1;
+		for (i = 1; i < len; i++) {
+			nm_assert (arr[i - 1] >= arr[i]);
+			if (arr[i - 1] > arr[i])
+				arr[j++] = arr[i];
+		}
+		len = j;
+	}
+
+	*out_len = len;
+	return g_steal_pointer (&arr);
+}
+
+#define ESCAPED_TOKENS_WITH_SPACES_DELIMTER  ' '
+#define ESCAPED_TOKENS_WITH_SPACES_DELIMTERS NM_ASCII_SPACES","
+
+#define ESCAPED_TOKENS_DELIMITER        ','
+#define ESCAPED_TOKENS_DELIMITERS       ","
+
+typedef enum {
+	VALUE_STRSPLIT_MODE_OBJLIST,
+	VALUE_STRSPLIT_MODE_MULTILIST,
+	VALUE_STRSPLIT_MODE_ESCAPED_TOKENS,
+	VALUE_STRSPLIT_MODE_ESCAPED_TOKENS_WITH_SPACES,
+} ValueStrsplitMode;
+
+static const char **
+_value_strsplit (const char *value,
+                 ValueStrsplitMode split_mode,
+                 gsize *out_len)
+{
+	gs_free const char **strv = NULL;
+	gsize i;
+	gsize len;
+
+	/* FIXME: some modes should support backslash escaping.
+	 * In particular, to distingish from _value_str_as_index_list(), which
+	 * does not accept '\\'. */
+
+	/* note that all modes remove empty tokens (",", "a,,b", ",,"). */
+	switch (split_mode) {
+	case VALUE_STRSPLIT_MODE_OBJLIST:
+		strv = nm_utils_strsplit_set (value, ESCAPED_TOKENS_DELIMITERS);
+		break;
+	case VALUE_STRSPLIT_MODE_MULTILIST:
+		strv = nm_utils_strsplit_set (value, ESCAPED_TOKENS_WITH_SPACES_DELIMTERS);
+		break;
+	case VALUE_STRSPLIT_MODE_ESCAPED_TOKENS:
+		strv = nm_utils_escaped_tokens_split (value, ESCAPED_TOKENS_DELIMITERS);
+		NM_SET_OUT (out_len, NM_PTRARRAY_LEN (strv));
+		return g_steal_pointer (&strv);
+	case VALUE_STRSPLIT_MODE_ESCAPED_TOKENS_WITH_SPACES:
+		strv = nm_utils_escaped_tokens_split (value, ESCAPED_TOKENS_WITH_SPACES_DELIMTERS);
+		NM_SET_OUT (out_len, NM_PTRARRAY_LEN (strv));
+		return g_steal_pointer (&strv);
+	default:
+		nm_assert_not_reached ();
+		break;
+	}
+
+	NM_SET_OUT (out_len, 0);
+
+	if (!strv)
+		return NULL;
+
+	len = 0;
+	for (i = 0; strv[i]; i++) {
+		const char *s = strv[i];
+
+		s = nm_str_skip_leading_spaces (s);
+		if (s[0] == '\0')
+			continue;
+
+		g_strchomp ((char *) s);
+		strv[len++] = s;
+	}
+	strv[len] = NULL;
+
+	NM_SET_OUT (out_len, len);
+	return g_steal_pointer (&strv);
+}
+
+static gboolean
+_value_strsplit_assert_unsplitable (const char *str)
+{
+#if NM_MORE_ASSERTS > 5
+	gs_free const char **strv_test = NULL;
+	gsize j, l;
+
+	/* Assert that we cannot split the token and that it
+	 * has no unescaped delimiters. */
+
+	strv_test = _value_strsplit (str,
+	                             VALUE_STRSPLIT_MODE_ESCAPED_TOKENS,
+	                             NULL);
+	nm_assert (NM_PTRARRAY_LEN (strv_test) == 1);
+
+	for (j = 0; str[j] != '\0'; ) {
+		if (str[j] == '\\') {
+			j++;
+			nm_assert (str[j] != '\0');
+		} else
+			nm_assert (!NM_IN_SET (str[j], '\0', ','));
+		j++;
+	}
+	l = j;
+	nm_assert (   !g_ascii_isspace (str[l - 1])
+	           || (   l >= 2
+	               && str[l - 2] == '\\'));
+#endif
+
+	return TRUE;
+}
+
 static NMIPAddress *
 _parse_ip_address (int family, const char *address, GError **error)
 {
@@ -123,20 +315,20 @@ _parse_ip_route (int family,
 	gint64 metric = -1;
 	guint i;
 	gs_free const char **routev = NULL;
-	gs_free char *str_clean = NULL;
+	gs_free char *str_clean_free = NULL;
+	const char *str_clean;
 	gs_free char *dest_clone = NULL;
 	const char *dest;
 	const char *plen;
 	gs_unref_hashtable GHashTable *attrs = NULL;
-	GHashTable *tmp_attrs;
 #define ROUTE_SYNTAX _("The valid syntax is: 'ip[/prefix] [next-hop] [metric] [attribute=val]... [,ip[/prefix] ...]'")
 
 	nm_assert (NM_IN_SET (family, AF_INET, AF_INET6));
 	nm_assert (str);
 	nm_assert (!error || !*error);
 
-	str_clean = g_strstrip (g_strdup (str));
-	routev = nm_utils_strsplit_set (str_clean, " \t", FALSE);
+	str_clean = nm_strstrip_avoid_copy_a (300, str, &str_clean_free);
+	routev = nm_utils_strsplit_set (str_clean, " \t");
 	if (!routev) {
 		g_set_error (error, 1, 0,
 		             "'%s' is not valid. %s",
@@ -182,6 +374,7 @@ _parse_ip_route (int family,
 			GHashTableIter iter;
 			char *iter_key;
 			GVariant *iter_value;
+			gs_unref_hashtable GHashTable *tmp_attrs = NULL;
 
 			tmp_attrs = nm_utils_parse_variant_attributes (routev[i], ' ', '=', FALSE,
 			                                               nm_ip_route_get_variant_attribute_spec(),
@@ -207,13 +400,11 @@ _parse_ip_route (int family,
 
 				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);
 					return NULL;
 				}
 				g_hash_table_insert (attrs, iter_key, iter_value);
 				g_hash_table_iter_steal (&iter);
 			}
-			g_hash_table_unref (tmp_attrs);
 		} else {
 			g_set_error (error, 1, 0, "%s", ROUTE_SYNTAX);
 			return NULL;
@@ -298,7 +489,8 @@ _parse_team_link_watcher (const char *str,
                           GError **error)
 {
 	gs_free const char **watcherv = NULL;
-	gs_free char *str_clean = NULL;
+	gs_free char *str_clean_free = NULL;
+	const char *str_clean;
 	guint i;
 	gs_free const char *name = NULL;
 	int val1 = 0, val2 = 0, val3 = 3, val4 = -1;
@@ -309,8 +501,8 @@ _parse_team_link_watcher (const char *str,
 	nm_assert (str);
 	nm_assert (!error || !*error);
 
-	str_clean = g_strstrip (g_strdup (str));
-	watcherv = nm_utils_strsplit_set (str_clean, " \t", FALSE);
+	str_clean = nm_strstrip_avoid_copy_a (300, str, &str_clean_free);
+	watcherv = nm_utils_strsplit_set (str_clean, " \t");
 	if (!watcherv) {
 		g_set_error (error, 1, 0, "'%s' is not valid", str);
 		return NULL;
@@ -319,7 +511,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'");
@@ -398,62 +590,6 @@ _parse_team_link_watcher (const char *str,
 #define MAX_8021P_PRIO 7  /* Max 802.1p priority */
 
 /*
- * Parse VLAN priority mappings from the following format: 2:1,3:4,7:3
- * and verify if the priority numbers are valid
- *
- * Return: string array with split maps, or NULL on error
- * Caller is responsible for freeing the array.
- */
-static char **
-_parse_vlan_priority_maps (const char *priority_map,
-                           NMVlanPriorityMap map_type,
-                           GError **error)
-{
-	char **mapping = NULL, **iter;
-	unsigned long from, to, from_max, to_max;
-
-	g_return_val_if_fail (priority_map != NULL, NULL);
-	g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-
-	if (map_type == NM_VLAN_INGRESS_MAP) {
-		from_max = MAX_8021P_PRIO;
-		to_max = MAX_SKB_PRIO;
-	} else {
-		from_max = MAX_SKB_PRIO;
-		to_max = MAX_8021P_PRIO;
-	}
-
-	mapping = g_strsplit (priority_map, ",", 0);
-	for (iter = mapping; iter && *iter; iter++) {
-		char *left, *right;
-
-		left = g_strstrip (*iter);
-		right = strchr (left, ':');
-		if (!right) {
-			g_set_error (error, 1, 0, _("invalid priority map '%s'"), *iter);
-			g_strfreev (mapping);
-			return NULL;
-		}
-		*right++ = '\0';
-
-		if (!nmc_string_to_uint (left, TRUE, 0, from_max, &from)) {
-			g_set_error (error, 1, 0, _("priority '%s' is not valid (<0-%ld>)"),
-			             left, from_max);
-			g_strfreev (mapping);
-			return NULL;
-		}
-		if (!nmc_string_to_uint (right, TRUE, 0, to_max, &to)) {
-			g_set_error (error, 1, 0, _("priority '%s' is not valid (<0-%ld>)"),
-			             right, to_max);
-			g_strfreev (mapping);
-			return NULL;
-		}
-		*(right-1) = ':'; /* Put back ':' */
-	}
-	return mapping;
-}
-
-/*
  * nmc_proxy_check_script:
  * @script: file name with PAC script, or raw PAC Script data
  * @out_script: raw PAC Script (with removed new-line characters)
@@ -646,10 +782,10 @@ _env_warn_fcn (const NMMetaEnvironment *environment,
 	const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, NMMetaAccessorGetType get_type, NMMetaAccessorGetFlags get_flags, NMMetaAccessorGetOutFlags *out_flags, gboolean *out_is_default, gpointer *out_to_free
 
 #define ARGS_SET_FCN \
-	const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, const char *value, GError **error
+	const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, char modifier, const char *value, GError **error
 
 #define ARGS_REMOVE_FCN \
-	const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, const char *value, guint32 idx, GError **error
+	const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, NMSetting *setting, const char *value, GError **error
 
 #define ARGS_COMPLETE_FCN \
 	const NMMetaPropertyInfo *property_info, const NMMetaEnvironment *environment, gpointer environment_user_data, const NMMetaOperationContext *operation_context, const char *text, char ***out_to_free
@@ -660,6 +796,46 @@ _env_warn_fcn (const NMMetaEnvironment *environment,
 #define ARGS_SETTING_INIT_FCN \
 	const NMMetaSettingInfoEditor *setting_info, NMSetting *setting, NMMetaAccessorSettingInitType init_type
 
+static gboolean
+_SET_FCN_DO_RESET_DEFAULT (const NMMetaPropertyInfo *property_info, char modifier, const char *value)
+{
+	nm_assert (property_info);
+	nm_assert (!property_info->property_type->set_supports_remove);
+	nm_assert (NM_IN_SET (modifier, '\0', '+'));
+	nm_assert (value || modifier == '\0');
+
+	return value == NULL;
+}
+
+static gboolean
+_SET_FCN_DO_RESET_DEFAULT_WITH_SUPPORTS_REMOVE (const NMMetaPropertyInfo *property_info, char modifier, const char *value)
+{
+	nm_assert (property_info);
+	nm_assert (property_info->property_type->set_supports_remove);
+	nm_assert (NM_IN_SET (modifier, '\0', '+', '-'));
+	nm_assert (value || modifier == '\0');
+
+	return value == NULL;
+}
+
+static gboolean
+_SET_FCN_DO_SET_ALL (char modifier, const char *value)
+{
+	nm_assert (NM_IN_SET (modifier, '\0', '+', '-'));
+	nm_assert (value);
+
+	return modifier == '\0';
+}
+
+static gboolean
+_SET_FCN_DO_REMOVE (char modifier, const char *value)
+{
+	nm_assert (NM_IN_SET (modifier, '\0', '+', '-'));
+	nm_assert (value);
+
+	return modifier == '-';
+}
+
 #define RETURN_UNSUPPORTED_GET_TYPE() \
 	G_STMT_START { \
 		if (!NM_IN_SET (get_type, \
@@ -677,7 +853,7 @@ _env_warn_fcn (const NMMetaEnvironment *environment,
 	} G_STMT_END
 
 static gboolean
-property_is_default (NMSetting *setting, const char *prop_name)
+_gobject_property_is_default (NMSetting *setting, const char *prop_name)
 {
 	nm_auto_unset_gvalue GValue v = G_VALUE_INIT;
 	GParamSpec *pspec;
@@ -703,32 +879,30 @@ property_is_default (NMSetting *setting, const char *prop_name)
 	return g_param_value_defaults (pspec, &v);
 }
 
-static gconstpointer
-_get_fcn_nmc_with_default (ARGS_GET_FCN)
+static gboolean
+_gobject_property_reset (NMSetting *setting,
+                         const char *prop_name,
+                         gboolean reset_default)
 {
-	const char *s;
-	char *s_full;
-	GValue val = G_VALUE_INIT;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-	NM_SET_OUT (out_is_default, property_is_default (setting, property_info->property_name));
+	nm_auto_unset_gvalue GValue v = G_VALUE_INIT;
+	GParamSpec *pspec;
 
-	if (property_info->property_typ_data->subtype.get_with_default.fcn (setting)) {
-		if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
-			return _("(default)");
-		return "";
-	}
+	pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (setting)),
+	                                      prop_name);
+	if (!G_IS_PARAM_SPEC (pspec))
+		g_return_val_if_reached (FALSE);
 
-	g_value_init (&val, G_TYPE_STRING);
-	g_object_get_property (G_OBJECT (setting), property_info->property_name, &val);
-	s = g_value_get_string (&val);
-	if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
-		s_full = s ? g_strdup_printf ("\"%s\"", s) : g_strdup ("");
-	else
-		s_full = g_strdup (s && *s ? s : " ");
-	g_value_unset (&val);
+	g_value_init (&v, pspec->value_type);
+	if (reset_default)
+		g_param_value_defaults (pspec, &v);
+	g_object_set_property (G_OBJECT (setting), prop_name, &v);
+	return TRUE;
+}
 
-	RETURN_STR_TO_FREE (s_full);
+static gboolean
+_gobject_property_reset_default (NMSetting *setting, const char *prop_name)
+{
+	return _gobject_property_reset (setting, prop_name, TRUE);
 }
 
 static gconstpointer
@@ -738,13 +912,20 @@ _get_fcn_gobject_impl (const NMMetaPropertyInfo *property_info,
                        gboolean *out_is_default,
                        gpointer *out_to_free)
 {
-	char *s;
-	const char *s_c;
+	const char *cstr;
 	GType gtype_prop;
 	nm_auto_unset_gvalue GValue val = G_VALUE_INIT;
 
 	RETURN_UNSUPPORTED_GET_TYPE ();
-	NM_SET_OUT (out_is_default, property_is_default (setting, property_info->property_name));
+	NM_SET_OUT (out_is_default, _gobject_property_is_default (setting, property_info->property_name));
+
+	if (   property_info->property_typ_data
+	    && property_info->property_typ_data->is_default_fcn
+	    && property_info->property_typ_data->is_default_fcn (setting)) {
+		if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
+			return _("(default)");
+		return "";
+	}
 
 	gtype_prop = _gobject_property_get_gtype (G_OBJECT (setting), property_info->property_name);
 
@@ -755,15 +936,35 @@ _get_fcn_gobject_impl (const NMMetaPropertyInfo *property_info,
 		g_object_get_property (G_OBJECT (setting), property_info->property_name, &val);
 		b = g_value_get_boolean (&val);
 		if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY)
-			s_c = b ? _("yes") : _("no");
+			cstr = b ? _("yes") : _("no");
 		else
-			s_c = b ? "yes" : "no";
-		return s_c;
+			cstr = b ? "yes" : "no";
+		return cstr;
 	} else {
+		char *str;
+
+		/* Note that we register certain transform functions in nmc_value_transforms_register().
+		 * This makes G_TYPE_STRV working.
+		 *
+		 * FIXME: that is particularly ugly because it's non-obvious which code relies
+		 * on nmc_value_transforms_register(). Also, nmc_value_transforms_register() is
+		 * in clients/cli, while we are here in clients/common. */
 		g_value_init (&val, G_TYPE_STRING);
 		g_object_get_property (G_OBJECT (setting), property_info->property_name, &val);
-		s = g_value_dup_string (&val);
-		RETURN_STR_TO_FREE (s);
+		cstr = g_value_get_string (&val);
+
+		if (   property_info->property_typ_data
+		    && property_info->property_typ_data->is_default_fcn) {
+			if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY) {
+				str =   cstr
+				      ? g_strdup_printf ("\"%s\"", cstr)
+				      : g_strdup ("");
+			} else
+				str = g_strdup (cstr && cstr[0] ? cstr : " ");
+		} else
+			str = cstr ? g_strdup (cstr) : NULL;
+
+		RETURN_STR_TO_FREE (str);
 	}
 }
 
@@ -842,10 +1043,9 @@ _get_fcn_gobject_int (ARGS_GET_FCN)
 		for (; value_infos->nick; value_infos++) {
 			if (   ( is_uint64 && value_infos->value.u64 == v.u64)
 			    || (!is_uint64 && value_infos->value.i64 == v.i64)) {
-				char *old_str = return_str;
+				gs_free char *old_str = return_str;
 
 				return_str = g_strdup_printf ("%s (%s)", old_str, value_infos->nick);
-				g_free (old_str);
 				break;
 			}
 		}
@@ -1033,6 +1233,9 @@ _set_fcn_gobject_string (ARGS_SET_FCN)
 {
 	gs_free char *to_free = NULL;
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
 	if (property_info->property_typ_data) {
 		if (property_info->property_typ_data->subtype.gobject_string.validate_fcn) {
 			value = property_info->property_typ_data->subtype.gobject_string.validate_fcn (value, &to_free, error);
@@ -1055,6 +1258,9 @@ _set_fcn_gobject_bool (ARGS_SET_FCN)
 {
 	gboolean val_bool;
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
 	if (!nmc_string_to_bool (value, &val_bool, error))
 		return FALSE;
 
@@ -1076,6 +1282,9 @@ _set_fcn_gobject_int (ARGS_SET_FCN)
 	guint base = 10;
 	const NMMetaUtilsIntValueInfo *value_infos;
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
 	pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (setting)), property_info->property_name);
 	if (!G_IS_PARAM_SPEC (pspec))
 		g_return_val_if_reached (FALSE);
@@ -1085,14 +1294,10 @@ _set_fcn_gobject_int (ARGS_SET_FCN)
 	if (property_info->property_typ_data) {
 		if (   value
 		    && (value_infos = property_info->property_typ_data->subtype.gobject_int.value_infos)) {
-			gs_free char *vv_stripped = NULL;
-			const char *vv = nm_str_skip_leading_spaces (value);
-
-			if (vv[0] && g_ascii_isspace (vv[strlen (vv) - 1])) {
-				vv_stripped = g_strstrip (g_strdup (vv));
-				vv = vv_stripped;
-			}
+			gs_free char *vv_free = NULL;
+			const char *vv;
 
+			vv = nm_strstrip_avoid_copy_a (300, value, &vv_free);
 			for (; value_infos->nick; value_infos++) {
 				if (nm_streq (value_infos->nick, vv)) {
 					v = value_infos->value;
@@ -1216,7 +1421,10 @@ _set_fcn_gobject_mtu (ARGS_SET_FCN)
 	const GParamSpec *pspec;
 	gint64 v;
 
-	if (nm_streq0 (value, "auto"))
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
+	if (nm_streq (value, "auto"))
 		value = "0";
 
 	pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (setting)),
@@ -1254,6 +1462,9 @@ _set_fcn_gobject_mac (ARGS_SET_FCN)
 	NMMetaPropertyTypeMacMode mode;
 	gboolean valid;
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
 	if (property_info->property_typ_data)
 		mode = property_info->property_typ_data->subtype.mac.mode;
 	else
@@ -1289,6 +1500,9 @@ _set_fcn_gobject_enum (ARGS_SET_FCN)
 	gboolean is_flags;
 	int v;
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
 	if (property_info->property_typ_data) {
 		if (property_info->property_typ_data->subtype.gobject_enum.get_gtype) {
 			gtype = property_info->property_typ_data->subtype.gobject_enum.get_gtype ();
@@ -1559,25 +1773,6 @@ vlan_flags_to_string (guint32 flags, NMMetaAccessorGetType get_type)
 }
 
 static char *
-vlan_priorities_to_string (NMSettingVlan *s_vlan, NMVlanPriorityMap map)
-{
-	GString *priorities;
-	int i;
-
-	priorities = g_string_new (NULL);
-	for (i = 0; i < nm_setting_vlan_get_num_priorities (s_vlan, map); i++) {
-		guint32 from, to;
-
-		if (nm_setting_vlan_get_priority (s_vlan, map, i, &from, &to))
-			g_string_append_printf (priorities, "%d:%d,", from, to);
-	}
-	if (priorities->len)
-		g_string_truncate (priorities, priorities->len-1);  /* chop off trailing ',' */
-
-	return g_string_free (priorities, FALSE);
-}
-
-static char *
 secret_flags_to_string (guint32 flags, NMMetaAccessorGetType get_type)
 {
 	GString *flag_str;
@@ -1619,166 +1814,204 @@ vpn_data_item (const char *key, const char *value, gpointer user_data)
 	g_string_append_printf (ret_str, "%s = %s", key, value);
 }
 
-#define DEFINE_SETTER_STR_LIST_MULTI(def_func, s_macro, set_func) \
-	static gboolean \
-	def_func (NMSetting *setting, \
-	          const char *prop, \
-	          const char *value, \
-	          const char **valid_strv, \
-	          GError **error) \
-	{ \
-		gs_free const char **strv = NULL; \
-		gsize i; \
-		const char *item; \
-		nm_assert (!error || !*error); \
-		strv = nm_utils_strsplit_set (value, " \t,", FALSE); \
-		if (strv) { \
-			for (i = 0; strv[i]; i++) { \
-				if (!(item = nmc_string_is_valid (strv[i], valid_strv, error))) { \
-					return FALSE; \
-				} \
-				set_func (s_macro (setting), item); \
-			} \
-		} \
-		return TRUE; \
+static const char *
+_multilist_do_validate (const NMMetaPropertyInfo *property_info,
+                        NMSetting *setting,
+                        const char *item,
+                        GError **error)
+{
+	if (property_info->property_typ_data->values_static) {
+		nm_assert (!property_info->property_typ_data->subtype.multilist.validate_fcn);
+		return nmc_string_is_valid (item,
+		                            (const char **) property_info->property_typ_data->values_static,
+		                            error);
+	}
+	if (property_info->property_typ_data->subtype.multilist.validate_fcn) {
+		return property_info->property_typ_data->subtype.multilist.validate_fcn (item,
+		                                                                         error);
+	}
+	if (property_info->property_typ_data->subtype.multilist.validate2_fcn) {
+		return property_info->property_typ_data->subtype.multilist.validate2_fcn (setting,
+		                                                                          item,
+		                                                                          error);
 	}
 
-#define DEFINE_SETTER_OPTIONS(def_func, s_macro, s_type, add_func, valid_func1, valid_func2) \
-	static gboolean \
-	def_func (ARGS_SET_FCN) \
-	{ \
-		gs_free const char **strv = NULL; \
-		const char **iter; \
-		const char **(*valid_func1_p) (s_type *) = valid_func1; \
-		const char * (*valid_func2_p) (const char *, const char *, GError **) = valid_func2; \
-		const char *opt_name, *opt_val; \
-		\
-		nm_assert (!error || !*error); \
-		\
-		strv = nm_utils_strsplit_set (value, ",", FALSE); \
-		for (iter = strv; iter && *iter; iter++) { \
-			gs_free char *left_clone = g_strstrip (g_strdup (*iter)); \
-			char *left = left_clone; \
-			char *right = strchr (left, '='); \
-			if (!right) { \
-				g_set_error (error, 1, 0, _("'%s' is not valid; use <option>=<value>"), *iter); \
-				return FALSE; \
-			} \
-			*right++ = '\0'; \
-			g_strchomp (left); \
-			\
-			if (valid_func1_p) { \
-				const char **valid_options = valid_func1_p (s_macro (setting)); \
-				if (!(opt_name = nmc_string_is_valid (left, valid_options, error))) { \
-					return FALSE; \
-				} \
-			} else \
-				opt_name = left;\
-			\
-			opt_val = g_strchug (right); \
-			if (valid_func2_p) { \
-				if (!(opt_val = valid_func2_p ((const char *) left, (const char *) opt_val, error))) { \
-					return FALSE; \
-				}\
-			}\
-			add_func (s_macro (setting), opt_name, opt_val); \
-		} \
-		return TRUE; \
+	return item;
+}
+
+static gboolean
+_set_fcn_multilist (ARGS_SET_FCN)
+{
+	gs_free const char **strv = NULL;
+	gsize i, j, nstrv;
+
+	if (_SET_FCN_DO_RESET_DEFAULT_WITH_SUPPORTS_REMOVE (property_info, modifier, value)) {
+		if (property_info->property_typ_data->subtype.multilist.clear_all_fcn) {
+			property_info->property_typ_data->subtype.multilist.clear_all_fcn (setting);
+			return TRUE;
+		}
+		return _gobject_property_reset (setting, property_info->property_name, FALSE);
+	}
+
+	if (   _SET_FCN_DO_REMOVE (modifier, value)
+	    && (   property_info->property_typ_data->subtype.multilist.remove_by_idx_fcn_u32
+	        || property_info->property_typ_data->subtype.multilist.remove_by_idx_fcn_s
+	        || property_info->property_typ_data->subtype.multilist.remove_by_idx_fcn_u)) {
+		gs_free gint64 *indexes = NULL;
+
+		indexes = _value_str_as_index_list (value, &nstrv);
+		if (indexes) {
+			gint64 num;
+
+			if (property_info->property_typ_data->subtype.multilist.get_num_fcn_u32)
+				num = property_info->property_typ_data->subtype.multilist.get_num_fcn_u32 (setting);
+			else
+				num = property_info->property_typ_data->subtype.multilist.get_num_fcn_u (setting);
+			for (i = 0; i < nstrv; i++) {
+				gint64 idx = indexes[i];
+
+				if (idx >= num)
+					continue;
+
+				if (property_info->property_typ_data->subtype.multilist.remove_by_idx_fcn_u32)
+					property_info->property_typ_data->subtype.multilist.remove_by_idx_fcn_u32 (setting, idx);
+				else if (property_info->property_typ_data->subtype.multilist.remove_by_idx_fcn_s)
+					property_info->property_typ_data->subtype.multilist.remove_by_idx_fcn_s (setting, idx);
+				else
+					property_info->property_typ_data->subtype.multilist.remove_by_idx_fcn_u (setting, idx);
+			}
+			return TRUE;
+		}
 	}
 
-#define DEFINE_REMOVER_INDEX_OR_VALUE(def_func, s_macro, num_func, rem_func_idx, rem_func_val) \
-	static gboolean \
-	def_func (ARGS_REMOVE_FCN) \
-	{ \
-		guint32 num; \
-		if (value) { \
-			gboolean ret; \
-			char *value_stripped = g_strstrip (g_strdup (value)); \
-			ret = rem_func_val (s_macro (setting), value_stripped, error); \
-			g_free (value_stripped); \
-			return ret; \
-		} \
-		num = num_func (s_macro (setting)); \
-		if (num == 0) { \
-			g_set_error_literal (error, 1, 0, _("no item to remove")); \
-			return FALSE; \
-		} \
-		if (idx >= num) { \
-			g_set_error (error, 1, 0, _("index '%d' is not in range <0-%d>"), idx, num - 1); \
-			return FALSE; \
-		} \
-		rem_func_idx (s_macro (setting), idx); \
-		return TRUE; \
+	strv = _value_strsplit (value,
+	                          property_info->property_typ_data->subtype.multilist.strsplit_plain
+	                        ? VALUE_STRSPLIT_MODE_MULTILIST
+	                        : (  property_info->property_typ_data->subtype.multilist.strsplit_with_spaces
+	                           ? VALUE_STRSPLIT_MODE_ESCAPED_TOKENS_WITH_SPACES
+	                           : VALUE_STRSPLIT_MODE_ESCAPED_TOKENS),
+	                        &nstrv);
+
+	j = 0;
+	for (i = 0; i < nstrv; i++) {
+		const char *item = strv[i];
+
+		item = _multilist_do_validate (property_info,
+		                               setting,
+		                               item,
+		                               error);
+		if (!item)
+			return FALSE;
+		strv[j++] = item;
 	}
+	nstrv = j;
 
-#define DEFINE_REMOVER_OPTION(def_func, s_macro, rem_func) \
-	static gboolean \
-	def_func (ARGS_REMOVE_FCN) \
-	{ \
-		gboolean success = FALSE; \
-		if (value && *value) { \
-			success = rem_func (s_macro (setting), value); \
-			if (!success) \
-				g_set_error (error, 1, 0, _("invalid option '%s'"), value); \
-		} else \
-			g_set_error_literal (error, 1, 0, _("missing option")); \
-		return success; \
-	}
-
-#define DEFINE_ALLOWED_VAL_FUNC(def_func, valid_values) \
-	static const char *const* \
-	def_func (NMSetting *setting, const char *prop) \
-	{ \
-		return valid_values; \
+	if (_SET_FCN_DO_SET_ALL (modifier, value)) {
+		if (property_info->property_typ_data->subtype.multilist.clear_all_fcn)
+			property_info->property_typ_data->subtype.multilist.clear_all_fcn (setting);
+		else
+			_gobject_property_reset (setting, property_info->property_name, FALSE);
 	}
 
-#define DEFINE_SETTER_MAC_BLACKLIST(def_func, s_macro, add_func) \
-	static gboolean \
-	def_func (ARGS_SET_FCN) \
-	{ \
-		guint8 buf[32]; \
-		gs_free const char **strv = NULL; \
-		const char *const*iter; \
-		\
-		nm_assert (!error || !*error); \
-		\
-		strv = nm_utils_strsplit_set (value, " \t,", FALSE); \
-		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); \
-				return FALSE; \
-			} \
-		} \
-		\
-		for (iter = strv; strv && *iter; iter++) \
-			add_func (s_macro (setting), *iter); \
-		\
-		return TRUE; \
+	for (i = 0; i < nstrv; i++) {
+		if (_SET_FCN_DO_REMOVE (modifier, value)) {
+			property_info->property_typ_data->subtype.multilist.remove_by_value_fcn (setting,
+			                                                                         strv[i]);
+		} else {
+			if (property_info->property_typ_data->subtype.multilist.add2_fcn)
+				property_info->property_typ_data->subtype.multilist.add2_fcn (setting, strv[i]);
+			else
+				property_info->property_typ_data->subtype.multilist.add_fcn (setting, strv[i]);
+		}
 	}
+	return TRUE;
+}
 
 static gboolean
-verify_string_list (const char *const*strv,
-                    const char *prop,
-                    gboolean (*validate_func) (const char *),
-                    GError **error)
+_set_fcn_optionlist (ARGS_SET_FCN)
 {
-	const char *const*iter;
+	gs_free const char **strv = NULL;
+	gs_free const char **strv_val = NULL;
+	gsize i, nstrv;
 
 	nm_assert (!error || !*error);
 
+	if (_SET_FCN_DO_RESET_DEFAULT_WITH_SUPPORTS_REMOVE (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
+	nstrv = 0;
+	strv = nm_utils_strsplit_set (value, ",");
 	if (strv) {
-		for (iter = strv; *iter; iter++) {
-			if (**iter == '\0')
-				continue;
-			if (validate_func) {
-				if (!validate_func (*iter)) {
-					g_set_error (error, 1, 0, _("'%s' is not valid"),
-					             *iter);
+		strv_val = g_new (const char *, NM_PTRARRAY_LEN (strv));
+		for (i = 0; strv[i]; i++) {
+			const char *opt_name;
+			const char *opt_value;
+
+			opt_name = nm_str_skip_leading_spaces (strv[i]);
+
+			/* FIXME: support backslash escaping for the option list. */
+			opt_value = strchr (opt_name, '=');
+			if (opt_value) {
+				((char *) opt_value)[0] = '\0';
+				opt_value++;
+				opt_value = nm_str_skip_leading_spaces (opt_value);
+				g_strchomp ((char *) opt_value);
+			}
+			g_strchomp ((char *) opt_name);
+
+			if (   property_info->property_type->values_fcn
+			    || property_info->property_typ_data->values_static) {
+				gs_strfreev char **valid_options_to_free = NULL;
+				const char *const*valid_options;
+
+				if (property_info->property_type->values_fcn)
+					valid_options = property_info->property_type->values_fcn (property_info, &valid_options_to_free);
+				else
+					valid_options = property_info->property_typ_data->values_static;
+
+				opt_name = nmc_string_is_valid (opt_name, (const char **) valid_options, error);
+				if (!opt_name)
+					return FALSE;
+			}
+
+			if (opt_value) {
+				if (_SET_FCN_DO_REMOVE (modifier, value))
+					opt_value = NULL;
+			} else {
+				if (!_SET_FCN_DO_REMOVE (modifier, value)) {
+					nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+					                    _("'%s' is not valid; use <option>=<value>"),
+					                    opt_name);
 					return FALSE;
 				}
 			}
+
+			if (   opt_value
+			    && opt_value[0] == '\0'
+			    && property_info->property_typ_data->subtype.optionlist.no_empty_value) {
+				nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+				                    _("cannot set empty \"%s\" option"),
+				                    opt_name);
+				return FALSE;
+			}
+
+			strv[nstrv] = opt_name;
+			strv_val[nstrv] = opt_value;
+			nstrv++;
 		}
 	}
+
+	if (_SET_FCN_DO_SET_ALL (modifier, value))
+		_gobject_property_reset (setting, property_info->property_name, FALSE);
+
+	for (i = 0; i < nstrv; i++) {
+		if (!property_info->property_typ_data->subtype.optionlist.set_fcn (setting,
+		                                                                   strv[i],
+		                                                                   strv_val[i],
+		                                                                   error))
+			return FALSE;
+	}
+
 	return TRUE;
 }
 
@@ -1811,11 +2044,13 @@ validate_flags (NMSetting *setting, const char* prop, guint val, GError **error)
 
 	if (g_param_value_validate (pspec, &value)) {
 		GParamSpecFlags *pspec_flags = (GParamSpecFlags *) pspec;
-		char *flag_values = flag_values_to_string (pspec_flags->flags_class->values,
-		                                           pspec_flags->flags_class->n_values);
+		gs_free char *flag_values = NULL;
+
+		flag_values = flag_values_to_string (pspec_flags->flags_class->values,
+		                                     pspec_flags->flags_class->n_values);
+
 		g_set_error (error, 1, 0, _("'%u' flags are not valid; use combination of %s"),
 		             val, flag_values);
-		g_free (flag_values);
 		success = FALSE;
 	}
 	g_value_unset (&value);
@@ -1823,30 +2058,12 @@ validate_flags (NMSetting *setting, const char* prop, guint val, GError **error)
 }
 
 static gboolean
-check_and_set_string (NMSetting *setting,
-                      const char *prop,
-                      const char *val,
-                      const char **valid_strv,
-                      GError **error)
-{
-	const char *checked_val;
-
-	nm_assert (!error || !*error);
-
-	checked_val = nmc_string_is_valid (val, valid_strv, error);
-	if (!checked_val)
-		return FALSE;
-
-	g_object_set (setting, prop, checked_val, NULL);
-	return TRUE;
-}
-
-static gboolean
 _set_fcn_gobject_flags (ARGS_SET_FCN)
 {
 	unsigned long val_int;
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
 	if (!nmc_string_to_uint (value, TRUE, 0, G_MAXUINT, &val_int)) {
 		g_set_error (error, 1, 0, _("'%s' is not a valid number (or out of range)"), value);
@@ -1864,9 +2081,10 @@ _set_fcn_gobject_flags (ARGS_SET_FCN)
 static gboolean
 _set_fcn_gobject_ssid (ARGS_SET_FCN)
 {
-	GBytes *ssid;
+	gs_unref_bytes GBytes *ssid = NULL;
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
 	if (strlen (value) > 32) {
 		g_set_error (error, 1, 0, _("'%s' is not valid"), value);
@@ -1875,14 +2093,14 @@ _set_fcn_gobject_ssid (ARGS_SET_FCN)
 
 	ssid = g_bytes_new (value, strlen (value));
 	g_object_set (setting, property_info->property_name, ssid, NULL);
-	g_bytes_unref (ssid);
 	return TRUE;
 }
 
 static gboolean
 _set_fcn_gobject_ifname (ARGS_SET_FCN)
 {
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
 	if (!nm_utils_is_valid_iface_name (value, error))
 		return FALSE;
@@ -1895,6 +2113,9 @@ _set_fcn_vpn_service_type (ARGS_SET_FCN)
 {
 	gs_free char *service_name = NULL;
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
 	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);
 	return TRUE;
@@ -1933,11 +2154,11 @@ _complete_fcn_vpn_service_type (ARGS_COMPLETE_FCN)
 	return (const char *const*) (*out_to_free = values);
 }
 
-static gboolean
-nmc_util_is_domain (const char *domain)
+static const char *
+_multilist_validate_fcn_is_domain (const char *domain, GError **error)
 {
 	//FIXME: implement
-	return TRUE;
+	return domain;
 }
 
 static gboolean
@@ -1950,9 +2171,10 @@ _set_fcn_gobject_bytes (ARGS_SET_FCN)
 	gs_unref_bytes GBytes *bytes = NULL;
 	GByteArray *array;
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
-	val_strip = nm_strstrip_avoid_copy (value, &val_strip_free);
+	val_strip = nm_strstrip_avoid_copy_a (300, value, &val_strip_free);
 
 	/* First try hex string in the format of AAbbCCDd */
 	bytes = nm_utils_hexstr2bin (val_strip);
@@ -1970,7 +2192,7 @@ _set_fcn_gobject_bytes (ARGS_SET_FCN)
 	}
 
 	/* Otherwise, consider the following format: AA b 0xCc D */
-	strv = nm_utils_strsplit_set (value, " \t", FALSE);
+	strv = nm_utils_strsplit_set (value, " \t");
 	array = g_byte_array_sized_new (NM_PTRARRAY_LEN (strv));
 	for (iter = strv; iter && *iter; iter++) {
 		int v;
@@ -1995,113 +2217,85 @@ done:
 /*****************************************************************************/
 
 static gconstpointer
-_get_fcn_802_1x_ca_cert (ARGS_GET_FCN)
+_get_fcn_cert_8021x (ARGS_GET_FCN)
 {
 	NMSetting8021x *s_8021X = NM_SETTING_802_1X (setting);
-	char *ca_cert_str = NULL;
+	const NMSetting8021xSchemeVtable *vtable;
+	char *str = NULL;
 
 	RETURN_UNSUPPORTED_GET_TYPE ();
 
-	switch (nm_setting_802_1x_get_ca_cert_scheme (s_8021X)) {
-	case NM_SETTING_802_1X_CK_SCHEME_BLOB:
-		ca_cert_str = bytes_to_string (nm_setting_802_1x_get_ca_cert_blob (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PATH:
-		ca_cert_str = g_strdup (nm_setting_802_1x_get_ca_cert_path (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PKCS11:
-		ca_cert_str = g_strdup (nm_setting_802_1x_get_ca_cert_uri (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_UNKNOWN:
-		break;
-	}
-
-	NM_SET_OUT (out_is_default, !ca_cert_str || !ca_cert_str[0]);
-	RETURN_STR_TO_FREE (ca_cert_str);
-}
-
-static gconstpointer
-_get_fcn_802_1x_client_cert (ARGS_GET_FCN)
-{
-	NMSetting8021x *s_8021X = NM_SETTING_802_1X (setting);
-	char *cert_str = NULL;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
+	vtable = &nm_setting_8021x_scheme_vtable[property_info->property_typ_data->subtype.cert_8021x.scheme_type];
 
-	switch (nm_setting_802_1x_get_client_cert_scheme (s_8021X)) {
+	switch (vtable->scheme_func (s_8021X)) {
 	case NM_SETTING_802_1X_CK_SCHEME_BLOB:
-		if (NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS))
-			cert_str = bytes_to_string (nm_setting_802_1x_get_client_cert_blob (s_8021X));
-		else
+		if (   vtable->is_secret
+		    && !NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS))
 			return _get_text_hidden (get_type);
+		str = bytes_to_string (vtable->blob_func (s_8021X));
 		break;
 	case NM_SETTING_802_1X_CK_SCHEME_PATH:
-		cert_str = g_strdup (nm_setting_802_1x_get_client_cert_path (s_8021X));
+		str = g_strdup (vtable->path_func (s_8021X));
 		break;
 	case NM_SETTING_802_1X_CK_SCHEME_PKCS11:
-		cert_str = g_strdup (nm_setting_802_1x_get_client_cert_uri (s_8021X));
+		str = g_strdup (vtable->uri_func (s_8021X));
 		break;
 	case NM_SETTING_802_1X_CK_SCHEME_UNKNOWN:
 		break;
 	}
 
-	NM_SET_OUT (out_is_default, !cert_str || !cert_str[0]);
-	RETURN_STR_TO_FREE (cert_str);
+	NM_SET_OUT (out_is_default, !str || !str[0]);
+	RETURN_STR_TO_FREE (str);
 }
 
-static gconstpointer
-_get_fcn_802_1x_phase2_ca_cert (ARGS_GET_FCN)
+static gboolean
+_set_fcn_cert_8021x (ARGS_SET_FCN)
 {
-	NMSetting8021x *s_8021X = NM_SETTING_802_1X (setting);
-	char *phase2_ca_cert_str = NULL;
+	gs_free char *value_to_free = NULL;
+	NMSetting8021xCKScheme scheme = NM_SETTING_802_1X_CK_SCHEME_PATH;
+	const NMSetting8021xSchemeVtable *vtable;
 
-	RETURN_UNSUPPORTED_GET_TYPE ();
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
-	switch (nm_setting_802_1x_get_phase2_ca_cert_scheme (s_8021X)) {
-	case NM_SETTING_802_1X_CK_SCHEME_BLOB:
-		phase2_ca_cert_str = bytes_to_string (nm_setting_802_1x_get_phase2_ca_cert_blob (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PATH:
-		phase2_ca_cert_str = g_strdup (nm_setting_802_1x_get_phase2_ca_cert_path (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PKCS11:
-		phase2_ca_cert_str = g_strdup (nm_setting_802_1x_get_phase2_ca_cert_uri (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_UNKNOWN:
-		break;
-	}
+	value = nm_strstrip_avoid_copy_a (300, value, &value_to_free);
 
-	NM_SET_OUT (out_is_default, !phase2_ca_cert_str || !phase2_ca_cert_str[0]);
-	RETURN_STR_TO_FREE (phase2_ca_cert_str);
-}
+	if (strncmp (value, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11)) == 0)
+		scheme = NM_SETTING_802_1X_CK_SCHEME_PKCS11;
+	else if (strncmp (value, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH)) == 0)
+		value += NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH);
 
-static gconstpointer
-_get_fcn_802_1x_phase2_client_cert (ARGS_GET_FCN)
-{
-	NMSetting8021x *s_8021X = NM_SETTING_802_1X (setting);
-	char *cert_str = NULL;
+	vtable = &nm_setting_8021x_scheme_vtable[property_info->property_typ_data->subtype.cert_8021x.scheme_type];
 
-	RETURN_UNSUPPORTED_GET_TYPE ();
+	if (vtable->is_secret) {
+		gs_free char *path = NULL;
+		nm_auto_free_secret char *password_free = NULL;
+		char *password;
 
-	switch (nm_setting_802_1x_get_phase2_client_cert_scheme (s_8021X)) {
-	case NM_SETTING_802_1X_CK_SCHEME_BLOB:
-		if (NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS))
-			cert_str = bytes_to_string (nm_setting_802_1x_get_phase2_client_cert_blob (s_8021X));
-		else
-			return _get_text_hidden (get_type);
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PATH:
-		cert_str = g_strdup (nm_setting_802_1x_get_phase2_client_cert_path (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PKCS11:
-		cert_str = g_strdup (nm_setting_802_1x_get_phase2_client_cert_uri (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_UNKNOWN:
-		break;
-	}
+		path = g_strdup (value);
+		password = path + strcspn (path, " \t");
+		if (password[0] != '\0') {
+			password[0] = '\0';
+			while (nm_utils_is_separator (password[0]))
+				password++;
+		} else {
+			password_free = g_strdup (vtable->passwd_func (NM_SETTING_802_1X (setting)));
+			password = password_free;
+		}
 
-	NM_SET_OUT (out_is_default, !cert_str || !cert_str[0]);
-	RETURN_STR_TO_FREE (cert_str);
+		return vtable->set_private_key_func (NM_SETTING_802_1X (setting),
+		                                     path,
+		                                     password,
+		                                     scheme,
+		                                     NULL,
+		                                     error);
+	} else {
+		return vtable->set_cert_func (NM_SETTING_802_1X (setting),
+		                              value,
+		                              scheme,
+		                              NULL,
+		                              error);
+	}
 }
 
 static gconstpointer
@@ -2120,219 +2314,6 @@ _get_fcn_gobject_bytes (ARGS_GET_FCN)
 }
 
 static gconstpointer
-_get_fcn_802_1x_private_key (ARGS_GET_FCN)
-{
-	NMSetting8021x *s_8021X = NM_SETTING_802_1X (setting);
-	char *key_str = NULL;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	switch (nm_setting_802_1x_get_private_key_scheme (s_8021X)) {
-	case NM_SETTING_802_1X_CK_SCHEME_BLOB:
-		if (NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS))
-			key_str = bytes_to_string (nm_setting_802_1x_get_private_key_blob (s_8021X));
-		else
-			return _get_text_hidden (get_type);
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PATH:
-		key_str = g_strdup (nm_setting_802_1x_get_private_key_path (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PKCS11:
-		key_str = g_strdup (nm_setting_802_1x_get_private_key_uri (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_UNKNOWN:
-		break;
-	}
-
-	NM_SET_OUT (out_is_default, !key_str || !key_str[0]);
-	RETURN_STR_TO_FREE (key_str);
-}
-
-static gconstpointer
-_get_fcn_802_1x_phase2_private_key (ARGS_GET_FCN)
-{
-	NMSetting8021x *s_8021X = NM_SETTING_802_1X (setting);
-	char *key_str = NULL;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	switch (nm_setting_802_1x_get_phase2_private_key_scheme (s_8021X)) {
-	case NM_SETTING_802_1X_CK_SCHEME_BLOB:
-		if (NM_FLAGS_HAS (get_flags, NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS))
-			key_str = bytes_to_string (nm_setting_802_1x_get_phase2_private_key_blob (s_8021X));
-		else
-			return _get_text_hidden (get_type);
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PATH:
-		key_str = g_strdup (nm_setting_802_1x_get_phase2_private_key_path (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_PKCS11:
-		key_str = g_strdup (nm_setting_802_1x_get_phase2_private_key_uri (s_8021X));
-		break;
-	case NM_SETTING_802_1X_CK_SCHEME_UNKNOWN:
-		break;
-	}
-
-	NM_SET_OUT (out_is_default, !key_str || !key_str[0]);
-	RETURN_STR_TO_FREE (key_str);
-}
-
-#define DEFINE_SETTER_STR_LIST(def_func, set_func) \
-	static gboolean \
-	def_func (ARGS_SET_FCN) \
-	{ \
-		const char **strv = NULL; \
-		gsize i; \
-		\
-		nm_assert (error == NULL || *error == NULL); \
-		\
-		strv = nm_utils_strsplit_set (value, " \t,", FALSE); \
-		if (strv) { \
-			for (i = 0; strv[i]; i++) \
-				set_func (NM_SETTING_802_1X (setting), strv[i]); \
-		} \
-		return TRUE; \
-	}
-
-#define DEFINE_SETTER_CERT(def_func, set_func) \
-	static gboolean \
-	def_func (ARGS_SET_FCN) \
-	{ \
-		char *val_strip = g_strstrip (g_strdup (value)); \
-		char *p = val_strip; \
-		NMSetting8021xCKScheme scheme = NM_SETTING_802_1X_CK_SCHEME_PATH; \
-		gboolean success; \
-		\
-		if (strncmp (val_strip, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11)) == 0) \
-			scheme = NM_SETTING_802_1X_CK_SCHEME_PKCS11; \
-		else if (strncmp (val_strip, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH)) == 0) \
-			p += NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH); \
-		\
-		success = set_func (NM_SETTING_802_1X (setting), p, scheme, NULL, error); \
-		g_free (val_strip); \
-		return success; \
-	}
-
-#define DEFINE_SETTER_PRIV_KEY(def_func, pwd_func, set_func) \
-	static gboolean \
-	def_func (ARGS_SET_FCN) \
-	{ \
-		gs_free char *path = NULL; \
-		gs_free char *password_free = NULL; \
-		char *password; \
-		NMSetting8021xCKScheme scheme = NM_SETTING_802_1X_CK_SCHEME_PATH; \
-		\
-		value = nm_str_skip_leading_spaces (value); \
-		\
-		if (strncmp (value, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PKCS11)) == 0) \
-			scheme = NM_SETTING_802_1X_CK_SCHEME_PKCS11; \
-		else if (strncmp (value, NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH, NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH)) == 0) \
-			value += NM_STRLEN (NM_SETTING_802_1X_CERT_SCHEME_PREFIX_PATH); \
-		\
-		path = g_strdup (value); \
-		password = path + strcspn (path, " \t"); \
-		if (password[0] != '\0') { \
-			password[0] = '\0'; \
-			while (nm_utils_is_separator (password[0])) \
-				password++; \
-		} else \
-			password = password_free = g_strdup (pwd_func (NM_SETTING_802_1X (setting))); \
-		return set_func (NM_SETTING_802_1X (setting), path, password, scheme, NULL, error); \
-	}
-
-DEFINE_SETTER_STR_LIST_MULTI (check_and_add_eap_method,
-                              NM_SETTING_802_1X,
-                              nm_setting_802_1x_add_eap_method)
-
-static gboolean
-_set_fcn_802_1x_eap (ARGS_SET_FCN)
-{
-	return check_and_add_eap_method (setting,
-	                                 property_info->property_name,
-	                                 value,
-	                                 (const char **) property_info->property_typ_data->values_static,
-	                                 error);
-}
-
-static gboolean
-_validate_and_remove_eap_method (NMSetting8021x *setting,
-                                 const char *eap,
-                                 GError **error)
-{
-	gboolean ret;
-
-	ret = nm_setting_802_1x_remove_eap_method_by_value (setting, eap);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain EAP method '%s'"), eap);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_802_1x_eap,
-                               NM_SETTING_802_1X,
-                               nm_setting_802_1x_get_num_eap_methods,
-                               nm_setting_802_1x_remove_eap_method,
-                               _validate_and_remove_eap_method)
-
-DEFINE_SETTER_CERT (_set_fcn_802_1x_ca_cert, nm_setting_802_1x_set_ca_cert)
-
-DEFINE_SETTER_STR_LIST (_set_fcn_802_1x_altsubject_matches, nm_setting_802_1x_add_altsubject_match)
-
-static gboolean
-_validate_and_remove_altsubject_match (NMSetting8021x *setting,
-                                       const char *altsubject_match,
-                                       GError **error)
-{
-	gboolean ret;
-
-	ret = nm_setting_802_1x_remove_altsubject_match_by_value (setting, altsubject_match);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain alternative subject match '%s'"),
-		             altsubject_match);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_802_1x_altsubject_matches,
-                               NM_SETTING_802_1X,
-                               nm_setting_802_1x_get_num_altsubject_matches,
-                               nm_setting_802_1x_remove_altsubject_match,
-                               _validate_and_remove_altsubject_match)
-
-DEFINE_SETTER_CERT (_set_fcn_802_1x_client_cert, nm_setting_802_1x_set_client_cert)
-
-DEFINE_SETTER_CERT (_set_fcn_802_1x_phase2_ca_cert, nm_setting_802_1x_set_phase2_ca_cert)
-
-DEFINE_SETTER_STR_LIST (_set_fcn_802_1x_phase2_altsubject_matches, nm_setting_802_1x_add_phase2_altsubject_match)
-
-static gboolean
-_validate_and_remove_phase2_altsubject_match (NMSetting8021x *setting,
-                                              const char *phase2_altsubject_match,
-                                              GError **error)
-{
-	gboolean ret;
-
-	ret = nm_setting_802_1x_remove_phase2_altsubject_match_by_value (setting, phase2_altsubject_match);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain \"phase2\" alternative subject match '%s'"),
-		             phase2_altsubject_match);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_802_1x_phase2_altsubject_matches,
-                               NM_SETTING_802_1X,
-                               nm_setting_802_1x_get_num_phase2_altsubject_matches,
-                               nm_setting_802_1x_remove_phase2_altsubject_match,
-                               _validate_and_remove_phase2_altsubject_match)
-
-DEFINE_SETTER_CERT (_set_fcn_802_1x_phase2_client_cert, nm_setting_802_1x_set_phase2_client_cert)
-
-DEFINE_SETTER_PRIV_KEY (_set_fcn_802_1x_private_key,
-                        nm_setting_802_1x_get_private_key_password,
-                        nm_setting_802_1x_set_private_key)
-
-DEFINE_SETTER_PRIV_KEY (_set_fcn_802_1x_phase2_private_key,
-                        nm_setting_802_1x_get_phase2_private_key_password,
-                        nm_setting_802_1x_set_phase2_private_key)
-
-static gconstpointer
 _get_fcn_bond_options (ARGS_GET_FCN)
 {
 	NMSettingBond *s_bond = NM_SETTING_BOND (setting);
@@ -2365,59 +2346,40 @@ _get_fcn_bond_options (ARGS_GET_FCN)
 	RETURN_STR_TO_FREE (g_string_free (bond_options_s, FALSE));
 }
 
-/*  example: miimon=100,mode=balance-rr, updelay=5 */
 static gboolean
-_validate_and_remove_bond_option (NMSettingBond *setting, const char *option)
-{
-	const char *opt;
-	const char **valid_options;
-
-	valid_options = nm_setting_bond_get_valid_options (setting);
-	opt = nmc_string_is_valid (option, valid_options, NULL);
-
-	if (opt)
-		return nm_setting_bond_remove_option (setting, opt);
-	else
-		return FALSE;
-}
-
-static const char *
-_validate_bond_option_value (const char *option, const char *value, GError **error)
-{
-	if (!g_strcmp0 (option, NM_SETTING_BOND_OPTION_MODE))
-		return nmc_bond_validate_mode (value, error);
-
-	return value;
-}
-
-static gboolean
-_bond_add_option (NMSettingBond *setting,
-                  const char *name,
-                  const char *value)
+_optionlist_set_fcn_bond_options (NMSetting *setting,
+                                  const char *name,
+                                  const char *value,
+                                  GError **error)
 {
 	gs_free char *tmp_value = NULL;
 	char *p;
 
-	if (nm_streq0 (name, NM_SETTING_BOND_OPTION_ARP_IP_TARGET)) {
+	if (!value) {
+		nm_setting_bond_remove_option (NM_SETTING_BOND (setting), name);
+		return TRUE;
+	}
+
+	if (nm_streq (name, NM_SETTING_BOND_OPTION_MODE)) {
+		value = nmc_bond_validate_mode (value, error);
+		if (!value)
+			return FALSE;
+	} else if (nm_streq (name, NM_SETTING_BOND_OPTION_ARP_IP_TARGET)) {
 		value = tmp_value = g_strdup (value);
 		for (p = tmp_value; p && *p; p++)
 			if (*p == ' ')
 				*p = ',';
 	}
 
-	return nm_setting_bond_add_option (setting, name, value);
+	if (!nm_setting_bond_add_option (NM_SETTING_BOND (setting), name, value)) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    _("failed to set bond option \"%s\""),
+		                    name);
+		return FALSE;
+	}
+	return TRUE;
 }
 
-DEFINE_SETTER_OPTIONS (_set_fcn_bond_options,
-                       NM_SETTING_BOND,
-                       NMSettingBond,
-                       _bond_add_option,
-                       nm_setting_bond_get_valid_options,
-                       _validate_bond_option_value)
-DEFINE_REMOVER_OPTION (_remove_fcn_bond_options,
-                       NM_SETTING_BOND,
-                       _validate_and_remove_bond_option)
-
 static const char *
 _describe_fcn_bond_options (ARGS_DESCRIBE_FCN)
 {
@@ -2456,25 +2418,27 @@ _get_fcn_connection_permissions (ARGS_GET_FCN)
 	GString *perm = NULL;
 	const char *perm_item;
 	const char *perm_type;
-	int i;
+	guint i, n;
 
 	RETURN_UNSUPPORTED_GET_TYPE ();
 
-	perm = g_string_new (NULL);
-	for (i = 0; i < nm_setting_connection_get_num_permissions (s_con); i++) {
-		if (nm_setting_connection_get_permission (s_con, i, &perm_type, &perm_item, NULL))
-			g_string_append_printf (perm, "%s:%s,", perm_type, perm_item);
+	n = nm_setting_connection_get_num_permissions (s_con);
+	for (i = 0; i < n; i++) {
+		if (!nm_setting_connection_get_permission (s_con, i, &perm_type, &perm_item, NULL))
+			continue;
+
+		if (!perm)
+			perm = g_string_new (NULL);
+		else
+			g_string_append_c (perm, ',');
+		g_string_append_printf (perm, "%s:%s", perm_type, perm_item);
 	}
 
-	NM_SET_OUT (out_is_default, perm->len == 0);
+	NM_SET_OUT (out_is_default, !perm);
 
-	if (perm->len > 0) {
-		g_string_truncate (perm, perm->len-1); /* remove trailing , */
+	if (perm)
 		RETURN_STR_TO_FREE (g_string_free (perm, FALSE));
-	}
 
-	/* No value from get_permission */
-	g_string_free (perm, TRUE);
 	return NULL;
 }
 
@@ -2495,6 +2459,11 @@ _set_fcn_connection_type (ARGS_SET_FCN)
 		return FALSE;
 	}
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value)) {
+		g_object_set (G_OBJECT (setting), property_info->property_name, NULL, NULL);
+		return TRUE;
+	}
+
 	uuid = nm_utils_uuid_generate ();
 	g_object_set (G_OBJECT (setting),
 	              NM_SETTING_CONNECTION_UUID, uuid,
@@ -2541,75 +2510,61 @@ _complete_fcn_connection_type (ARGS_COMPLETE_FCN)
 	return (const char *const*) (*out_to_free = result);
 }
 
-/* define from libnm-core/nm-setting-connection.c */
 #define PERM_USER_PREFIX  "user:"
 
-static gboolean
-permissions_valid (const char *perm)
+static const char *
+_sanitize_connection_permission_user (const char *perm)
 {
-	if (!perm || perm[0] == '\0')
-		return FALSE;
+	if (NM_STR_HAS_PREFIX (perm, PERM_USER_PREFIX))
+		perm += NM_STRLEN (PERM_USER_PREFIX);
 
-	if (strncmp (perm, PERM_USER_PREFIX, strlen (PERM_USER_PREFIX)) == 0) {
-		if (   strlen (perm) <= strlen (PERM_USER_PREFIX)
-		    || strchr (perm + strlen (PERM_USER_PREFIX), ':'))
-			return  FALSE;
-	} else {
-		if (strchr (perm, ':'))
-			return  FALSE;
-	}
+	if (perm[0] == '\0')
+		return NULL;
+	if (!g_utf8_validate (perm, -1, NULL))
+		return NULL;
 
-	return TRUE;
+	return perm;
 }
 
-static gboolean
-_set_fcn_connection_permissions (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	gsize i;
-
-	nm_assert (!error || !*error);
-
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
-	if (!verify_string_list (strv, property_info->property_name, permissions_valid, error))
-		return FALSE;
-
-	for (i = 0; strv && strv[i]; i++) {
-		const char *user = strv[i];
-
-		if (strncmp (user, PERM_USER_PREFIX, NM_STRLEN (PERM_USER_PREFIX)) == 0)
-			user += NM_STRLEN (PERM_USER_PREFIX);
-		nm_setting_connection_add_permission (NM_SETTING_CONNECTION (setting), "user", user, NULL);
+static const char *
+_multilist_validate2_fcn_connection_permissions (NMSetting *setting,
+                                                 const char *item,
+                                                 GError **error)
+{
+	if (!_sanitize_connection_permission_user (item)) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    _("invalid permission \"%s\""),
+		                    item);
+		return NULL;
 	}
+	return item;
+}
 
+static gboolean
+_multilist_set_fcn_connection_permissions (NMSetting *setting,
+                                           const char *item)
+{
+	item = _sanitize_connection_permission_user (item);
+	nm_setting_connection_add_permission (NM_SETTING_CONNECTION (setting), "user", item, NULL);
 	return TRUE;
 }
 
 static gboolean
-_validate_and_remove_connection_permission (NMSettingConnection *setting,
-                                            const char *perm,
-                                            GError **error)
+_multilist_remove_by_value_fcn_connection_permissions (NMSetting *setting,
+                                                       const char *item)
 {
-	gboolean ret;
+	const char *sanitized;
 
-	ret = nm_setting_connection_remove_permission_by_value (setting, "user", perm, NULL);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain permission '%s'"), perm);
-	return ret;
+	sanitized = _sanitize_connection_permission_user (item);
+	nm_setting_connection_remove_permission_by_value (NM_SETTING_CONNECTION (setting), "user", sanitized ?: item, NULL);
+	return TRUE;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_connection_permissions,
-                               NM_SETTING_CONNECTION,
-                               nm_setting_connection_get_num_permissions,
-                               nm_setting_connection_remove_permission,
-                               _validate_and_remove_connection_permission)
 
 static gboolean
 _set_fcn_connection_master (ARGS_SET_FCN)
 {
-	nm_assert (!error || !*error);
-
-	if (!value)
-		;
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		value = NULL;
 	else if (!*value)
 		value = NULL;
 	else if (   !nm_utils_is_valid_iface_name (value, NULL)
@@ -2689,44 +2644,20 @@ _complete_fcn_connection_master (ARGS_COMPLETE_FCN)
 	return (const char *const*) (*out_to_free = result);
 }
 
-static gboolean
-_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);
-	if (strv) {
-		for (iter = strv; *iter; iter++)
-			nm_setting_connection_add_secondary (NM_SETTING_CONNECTION (setting), *iter);
-	}
-	return TRUE;
-}
-
-static gboolean
-_validate_and_remove_connection_secondary (NMSettingConnection *setting,
-                                           const char *secondary_uuid,
-                                           GError **error)
+static const char *
+_multilist_validate2_fcn_uuid (NMSetting *setting,
+                               const char *item,
+                               GError **error)
 {
-	gboolean ret;
-
-	if (!nm_utils_is_uuid (secondary_uuid)) {
-		g_set_error (error, 1, 0,
-		             _("the value '%s' is not a valid UUID"), secondary_uuid);
-		return FALSE;
+	if (!nm_utils_is_uuid (item)) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    _("the value '%s' is not a valid UUID"),
+		                    item);
+		return NULL;
 	}
 
-	ret = nm_setting_connection_remove_secondary_by_value (setting, secondary_uuid);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain UUID '%s'"), secondary_uuid);
-	return ret;
+	return item;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_connection_secondaries,
-                               NM_SETTING_CONNECTION,
-                               nm_setting_connection_get_num_secondaries,
-                               nm_setting_connection_remove_secondary,
-                               _validate_and_remove_connection_secondary)
 
 static gconstpointer
 _get_fcn_connection_metered (ARGS_GET_FCN)
@@ -2761,6 +2692,9 @@ _set_fcn_connection_metered (ARGS_SET_FCN)
 	NMMetered metered;
 	NMTernary ts_val;
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
 	if (!nmc_string_to_ternary (value, &ts_val, error))
 		return FALSE;
 
@@ -2810,87 +2744,54 @@ dcb_flags_to_string (NMSettingDcbFlags flags)
 	return g_string_free (flag_str, FALSE);
 }
 
-#define DEFINE_DCB_FLAGS_GETTER(func_name, property_name) \
-	static gconstpointer \
-	func_name (ARGS_GET_FCN) \
-	{ \
-		guint v; \
-		GValue val = G_VALUE_INIT; \
-		\
-		RETURN_UNSUPPORTED_GET_TYPE (); \
-		g_value_init (&val, G_TYPE_UINT); \
-		g_object_get_property (G_OBJECT (setting), property_name, &val); \
-		v = g_value_get_uint (&val); \
-		g_value_unset (&val); \
-		RETURN_STR_TO_FREE (dcb_flags_to_string (v)); \
-	}
+static gconstpointer
+_get_fcn_dcb (ARGS_GET_FCN)
+{
+	NMSettingDcb *s_dcb = NM_SETTING_DCB (setting);
+	GString *str;
+	guint i;
 
-#define DEFINE_DCB_BOOL_GETTER(func_name, getter_func_name) \
-	static gconstpointer \
-	func_name (ARGS_GET_FCN) \
-	{ \
-		NMSettingDcb *s_dcb = NM_SETTING_DCB (setting); \
-		GString *str; \
-		guint i; \
-		\
-		RETURN_UNSUPPORTED_GET_TYPE (); \
-		\
-		str = g_string_new (NULL); \
-		for (i = 0; i < 8; i++) { \
-			if (getter_func_name (s_dcb,  i)) \
-				g_string_append_c (str, '1'); \
-			else \
-				g_string_append_c (str, '0'); \
-			if (i < 7) \
-				g_string_append_c (str, ','); \
-		} \
-		\
-		RETURN_STR_TO_FREE (g_string_free (str, FALSE)); \
-	}
+	RETURN_UNSUPPORTED_GET_TYPE ();
 
-#define DEFINE_DCB_UINT_GETTER(func_name, getter_func_name) \
-	static gconstpointer \
-	func_name (ARGS_GET_FCN) \
-	{ \
-		NMSettingDcb *s_dcb = NM_SETTING_DCB (setting); \
-		GString *str; \
-		guint i; \
-		\
-		RETURN_UNSUPPORTED_GET_TYPE (); \
-		\
-		str = g_string_new (NULL); \
-		for (i = 0; i < 8; i++) { \
-			g_string_append_printf (str, "%u", getter_func_name (s_dcb, i)); \
-			if (i < 7) \
-				g_string_append_c (str, ','); \
-		} \
-		\
-		RETURN_STR_TO_FREE (g_string_free (str, FALSE)); \
-	}
+	str = g_string_new (NULL);
+	for (i = 0; i < 8; i++) {
+		guint v;
 
-DEFINE_DCB_FLAGS_GETTER (_get_fcn_dcb_app_fcoe_flags, NM_SETTING_DCB_APP_FCOE_FLAGS)
-DEFINE_DCB_FLAGS_GETTER (_get_fcn_dcb_app_iscsi_flags, NM_SETTING_DCB_APP_ISCSI_FLAGS)
-DEFINE_DCB_FLAGS_GETTER (_get_fcn_dcb_app_fip_flags, NM_SETTING_DCB_APP_FIP_FLAGS)
+		v = property_info->property_typ_data->subtype.dcb.get_fcn (s_dcb, i);
 
-DEFINE_DCB_FLAGS_GETTER (_get_fcn_dcb_priority_flow_control_flags, NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS)
-DEFINE_DCB_BOOL_GETTER (_get_fcn_dcb_priority_flow_control, nm_setting_dcb_get_priority_flow_control)
+		if (i > 0)
+			g_string_append_c (str, ',');
+		g_string_append_printf (str, "%u", v);
+	}
 
-DEFINE_DCB_FLAGS_GETTER (_get_fcn_dcb_priority_group_flags, NM_SETTING_DCB_PRIORITY_GROUP_FLAGS)
-DEFINE_DCB_UINT_GETTER (_get_fcn_dcb_priority_group_id, nm_setting_dcb_get_priority_group_id)
-DEFINE_DCB_UINT_GETTER (_get_fcn_dcb_priority_group_bandwidth, nm_setting_dcb_get_priority_group_bandwidth)
-DEFINE_DCB_UINT_GETTER (_get_fcn_dcb_priority_bandwidth, nm_setting_dcb_get_priority_bandwidth)
-DEFINE_DCB_BOOL_GETTER (_get_fcn_dcb_priority_strict, nm_setting_dcb_get_priority_strict_bandwidth)
-DEFINE_DCB_UINT_GETTER (_get_fcn_dcb_priority_traffic_class, nm_setting_dcb_get_priority_traffic_class)
+	RETURN_STR_TO_FREE (g_string_free (str, FALSE));
+}
 
 #define DCB_ALL_FLAGS (NM_SETTING_DCB_FLAG_ENABLE | NM_SETTING_DCB_FLAG_ADVERTISE | NM_SETTING_DCB_FLAG_WILLING)
 
+static gconstpointer
+_get_fcn_dcb_flags (ARGS_GET_FCN)
+{
+	nm_auto_unset_gvalue GValue val = G_VALUE_INIT;
+	guint v;
+
+	RETURN_UNSUPPORTED_GET_TYPE ();
+
+	g_value_init (&val, G_TYPE_UINT);
+	g_object_get_property (G_OBJECT (setting), property_info->property_name, &val);
+	v = g_value_get_uint (&val);
+
+	RETURN_STR_TO_FREE (dcb_flags_to_string (v));
+}
+
 static gboolean
 _set_fcn_dcb_flags (ARGS_SET_FCN)
 {
 	NMSettingDcbFlags flags = NM_SETTING_DCB_FLAG_NONE;
 	long int t;
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
 	/* Check for overall hex numeric value */
 	t = _nm_utils_ascii_str_to_int64 (value, 0, 0, DCB_ALL_FLAGS, -1);
@@ -2901,7 +2802,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);
 
@@ -2938,17 +2839,15 @@ static gboolean
 dcb_parse_uint_array (const char *val,
                       guint max,
                       guint other,
-                      guint *out_array,
+                      guint out_array[static 8],
                       GError **error)
 {
-	gs_strfreev char **items = NULL;
-	char **iter;
+	gs_free const char **items = NULL;
+	const char *const*iter;
 	gsize i;
 
-	nm_assert (out_array);
-
-	items = g_strsplit_set (val, ",", -1);
-	if (g_strv_length (items) != 8) {
+	items = nm_utils_strsplit_set_with_empty (val, ",");
+	if (NM_PTRARRAY_LEN (items) != 8) {
 		g_set_error_literal (error, 1, 0, _("must contain 8 comma-separated numbers"));
 		return FALSE;
 	}
@@ -2957,8 +2856,6 @@ dcb_parse_uint_array (const char *val,
 	for (iter = items; *iter; iter++) {
 		gint64 num;
 
-		*iter = g_strstrip (*iter);
-
 		num = _nm_utils_ascii_str_to_int64 (*iter, 10, 0, other ?: max, -1);
 
 		/* If number is greater than 'max' it must equal 'other' */
@@ -2995,117 +2892,89 @@ dcb_check_feature_enabled (const NMMetaEnvironment *environment, gpointer *envir
 }
 
 static gboolean
-_set_fcn_dcb_priority_flow_control (ARGS_SET_FCN)
+_set_fcn_dcb (ARGS_SET_FCN)
 {
 	guint i = 0;
-	guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+	guint nums[8] = { 0, };
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
-	if (!dcb_parse_uint_array (value, 1, 0, nums, error))
+	if (!dcb_parse_uint_array (value,
+	                           property_info->property_typ_data->subtype.dcb.max,
+	                           property_info->property_typ_data->subtype.dcb.other,
+	                           nums,
+	                           error))
 		return FALSE;
 
-	for (i = 0; i < 8; i++)
-		nm_setting_dcb_set_priority_flow_control (NM_SETTING_DCB (setting), i, !!nums[i]);
-
-	dcb_check_feature_enabled (environment, environment_user_data, NM_SETTING_DCB (setting), NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS);
-	return TRUE;
-}
-
-static gboolean
-_set_fcn_dcb_priority_group_id (ARGS_SET_FCN)
-{
-	guint i = 0;
-	guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+	if (property_info->property_typ_data->subtype.dcb.is_percent) {
+		guint sum = 0;
 
-	nm_assert (!error || !*error);
-
-	if (!dcb_parse_uint_array (value, 7, 15, nums, error))
-		return FALSE;
-
-	for (i = 0; i < 8; i++)
-		nm_setting_dcb_set_priority_group_id (NM_SETTING_DCB (setting), i, nums[i]);
-
-	dcb_check_feature_enabled (environment, environment_user_data, NM_SETTING_DCB (setting), NM_SETTING_DCB_PRIORITY_GROUP_FLAGS);
-	return TRUE;
-}
-
-static gboolean
-_set_fcn_dcb_priority_group_bandwidth (ARGS_SET_FCN)
-{
-	guint i = 0, sum = 0;
-	guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
-
-	nm_assert (!error || !*error);
-
-	if (!dcb_parse_uint_array (value, 100, 0, nums, error))
-		return FALSE;
-
-	for (i = 0; i < 8; i++)
-		sum += nums[i];
-	if (sum != 100) {
-		g_set_error_literal (error, 1, 0, _("bandwidth percentages must total 100%%"));
-		return FALSE;
+		for (i = 0; i < 8; i++) {
+			sum += nums[i];
+			if (nums[i] > 100 || sum > 100)
+				break;
+		}
+		if (sum != 100) {
+			g_set_error_literal (error, 1, 0, _("bandwidth percentages must total 100%%"));
+			return FALSE;
+		}
 	}
 
 	for (i = 0; i < 8; i++)
-		nm_setting_dcb_set_priority_group_bandwidth (NM_SETTING_DCB (setting), i, nums[i]);
+		property_info->property_typ_data->subtype.dcb.set_fcn (NM_SETTING_DCB (setting), i, nums[i]);
 
 	dcb_check_feature_enabled (environment, environment_user_data, NM_SETTING_DCB (setting), NM_SETTING_DCB_PRIORITY_GROUP_FLAGS);
 	return TRUE;
 }
 
-static gboolean
-_set_fcn_dcb_priority_bandwidth (ARGS_SET_FCN)
+static gconstpointer
+_get_fcn_dcb_bool (ARGS_GET_FCN)
 {
-	guint i = 0;
-	guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
-
-	nm_assert (!error || !*error);
-
-	if (!dcb_parse_uint_array (value, 100, 0, nums, error))
-		return FALSE;
-
-	for (i = 0; i < 8; i++)
-		nm_setting_dcb_set_priority_bandwidth (NM_SETTING_DCB (setting), i, nums[i]);
-
-	dcb_check_feature_enabled (environment, environment_user_data, NM_SETTING_DCB (setting), NM_SETTING_DCB_PRIORITY_GROUP_FLAGS);
-	return TRUE;
-}
+	NMSettingDcb *s_dcb = NM_SETTING_DCB (setting);
+	GString *str;
+	guint i;
 
-static gboolean
-_set_fcn_dcb_priority_strict (ARGS_SET_FCN)
-{
-	guint i = 0;
-	guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+	RETURN_UNSUPPORTED_GET_TYPE ();
 
-	nm_assert (!error || !*error);
+	str = g_string_new (NULL);
+	for (i = 0; i < 8; i++) {
+		gboolean v;
 
-	if (!dcb_parse_uint_array (value, 1, 0, nums, error))
-		return FALSE;
+		v = property_info->property_typ_data->subtype.dcb_bool.get_fcn (s_dcb, i);
 
-	for (i = 0; i < 8; i++)
-		nm_setting_dcb_set_priority_strict_bandwidth (NM_SETTING_DCB (setting), i, !!nums[i]);
+		if (i > 0)
+			g_string_append_c (str, ',');
+		g_string_append_c (str, v ? '1': '0');
+	}
 
-	dcb_check_feature_enabled (environment, environment_user_data, NM_SETTING_DCB (setting), NM_SETTING_DCB_PRIORITY_GROUP_FLAGS);
-	return TRUE;
+	RETURN_STR_TO_FREE (g_string_free (str, FALSE));
 }
 
 static gboolean
-_set_fcn_dcb_priority_traffic_class (ARGS_SET_FCN)
+_set_fcn_dcb_bool (ARGS_SET_FCN)
 {
 	guint i = 0;
-	guint nums[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+	guint nums[8] = { 0, };
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
-	if (!dcb_parse_uint_array (value, 7, 0, nums, error))
+	if (!dcb_parse_uint_array (value, 1, 0, nums, error))
 		return FALSE;
 
-	for (i = 0; i < 8; i++)
-		nm_setting_dcb_set_priority_traffic_class (NM_SETTING_DCB (setting), i, nums[i]);
+	for (i = 0; i < 8; i++) {
+		property_info->property_typ_data->subtype.dcb_bool.set_fcn (NM_SETTING_DCB (setting),
+		                                                            i,
+		                                                            !!nums[i]);
+	}
 
-	dcb_check_feature_enabled (environment, environment_user_data, NM_SETTING_DCB (setting), NM_SETTING_DCB_PRIORITY_GROUP_FLAGS);
+	dcb_check_feature_enabled (environment,
+	                           environment_user_data,
+	                           NM_SETTING_DCB (setting),
+	                           (  property_info->property_typ_data->subtype.dcb_bool.with_flow_control_flags
+	                            ? NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS
+	                            : NM_SETTING_DCB_PRIORITY_GROUP_FLAGS));
 	return TRUE;
 }
 
@@ -3114,9 +2983,10 @@ _set_fcn_gsm_sim_operator_id (ARGS_SET_FCN)
 {
 	const char *p = value;
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
-	if (strlen (value) != 5 && strlen (value) != 6) {
+	if (!NM_IN_SET (strlen (value), 5, 6)) {
 		g_set_error_literal (error, 1, 0, _("SIM operator ID must be a 5 or 6 number MCCMNC code"));
 		return FALSE;
 	}
@@ -3137,16 +3007,16 @@ _set_fcn_gsm_sim_operator_id (ARGS_SET_FCN)
 static gboolean
 _set_fcn_infiniband_p_key (ARGS_SET_FCN)
 {
-	const gint64 INVALID = G_MININT64;
 	gint64 p_key;
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
 	if (nm_streq (value, "default"))
 		p_key = -1;
 	else {
-		p_key = _nm_utils_ascii_str_to_int64 (value, 0, -1, G_MAXUINT16, INVALID);
-		if (p_key == INVALID) {
+		p_key = _nm_utils_ascii_str_to_int64 (value, 0, -1, G_MAXUINT16, -2);
+		if (p_key == -2) {
 			g_set_error (error, 1, 0, _("'%s' is not a valid IBoIP P_Key"), value);
 			return FALSE;
 		}
@@ -3177,525 +3047,383 @@ _get_fcn_infiniband_p_key (ARGS_GET_FCN)
 }
 
 static gconstpointer
-_get_fcn_ip_config_addresses (ARGS_GET_FCN)
-{
-	NMSettingIPConfig *s_ip = NM_SETTING_IP_CONFIG (setting);
-	GString *printable;
-	guint num_addresses, i;
-	NMIPAddress *addr;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	printable = g_string_new (NULL);
-
-	num_addresses = NM_MIN ((guint) G_MAXINT, nm_setting_ip_config_get_num_addresses (s_ip));
-	for (i = 0; i < num_addresses; i++) {
-		addr = nm_setting_ip_config_get_address (s_ip, i);
-
-		if (printable->len > 0)
-			g_string_append (printable, ", ");
-
-		g_string_append_printf (printable, "%s/%u",
-		                        nm_ip_address_get_address (addr),
-		                        nm_ip_address_get_prefix (addr));
-	}
-
-	NM_SET_OUT (out_is_default, num_addresses == 0);
-	RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
-}
-
-static gconstpointer
-_get_fcn_ip_config_routes (ARGS_GET_FCN)
+_get_fcn_objlist (ARGS_GET_FCN)
 {
-	NMSettingIPConfig *s_ip = NM_SETTING_IP_CONFIG (setting);
-	GString *printable;
-	guint num_routes, i;
-	NMIPRoute *route;
+	GString *str = NULL;
+	guint num;
+	guint idx;
 
 	RETURN_UNSUPPORTED_GET_TYPE ();
 
-	printable = g_string_new (NULL);
-
-	num_routes = NM_MIN ((guint) G_MAXINT, nm_setting_ip_config_get_num_routes (s_ip));
-	for (i = 0; i < num_routes; i++) {
-		gs_free char *attr_str = NULL;
-		gs_strfreev char **attr_names = NULL;
-		gs_unref_hashtable GHashTable *hash = g_hash_table_new (nm_str_hash, g_str_equal);
-		int j;
+	num = property_info->property_typ_data->subtype.objlist.get_num_fcn (setting);
 
-		route = nm_setting_ip_config_get_route (s_ip, i);
+	for (idx = 0; idx < num; idx++) {
+		gsize start_offset;
 
-		attr_names = nm_ip_route_get_attribute_names (route);
-		for (j = 0; attr_names && attr_names[j]; j++) {
-			g_hash_table_insert (hash, attr_names[j],
-			                     nm_ip_route_get_attribute (route, attr_names[j]));
+		if (!str)
+			str = g_string_new (NULL);
+		else if (str->len > 0) {
+			if (   get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY
+			    && property_info->property_typ_data->subtype.objlist.delimit_pretty_with_semicolon)
+				g_string_append (str, "; ");
+			else {
+				G_STATIC_ASSERT_EXPR (ESCAPED_TOKENS_DELIMITER == ',');
+				g_string_append (str, ", ");
+			}
 		}
 
-		attr_str = nm_utils_format_variant_attributes (hash, ' ', '=');
+		start_offset = str->len;
 
-		if (get_type != NM_META_ACCESSOR_GET_TYPE_PRETTY) {
-			if (printable->len > 0)
-				g_string_append (printable, ", ");
+		property_info->property_typ_data->subtype.objlist.obj_to_str_fcn (get_type,
+		                                                                  setting,
+		                                                                  idx,
+		                                                                  str);
 
-			g_string_append_printf (printable, "%s/%u",
-			                        nm_ip_route_get_dest (route),
-			                        nm_ip_route_get_prefix (route));
-
-			if (nm_ip_route_get_next_hop (route))
-				g_string_append_printf (printable, " %s", nm_ip_route_get_next_hop (route));
-			if (nm_ip_route_get_metric (route) != -1)
-				g_string_append_printf (printable, " %u", (guint32) nm_ip_route_get_metric (route));
-			if (attr_str)
-				g_string_append_printf (printable, " %s", attr_str);
-		} else {
-
-			if (printable->len > 0)
-				g_string_append (printable, "; ");
-
-			g_string_append (printable, "{ ");
-
-			g_string_append_printf (printable, "ip = %s/%u",
-			                        nm_ip_route_get_dest (route),
-			                        nm_ip_route_get_prefix (route));
-
-			if (nm_ip_route_get_next_hop (route)) {
-				g_string_append_printf (printable, ", nh = %s",
-				                        nm_ip_route_get_next_hop (route));
-			}
-
-			if (nm_ip_route_get_metric (route) != -1)
-				g_string_append_printf (printable, ", mt = %u", (guint32) nm_ip_route_get_metric (route));
-			if (attr_str)
-				g_string_append_printf (printable, " %s", attr_str);
-
-			g_string_append (printable, " }");
+		if (start_offset == str->len) {
+			/* nothing was appended. Remove the delimiter again. */
+			nm_assert_not_reached ();
+			if (str->len > 0)
+				g_string_truncate (str, str->len - 2);
+			continue;
 		}
+
+		nm_assert (start_offset < str->len);
+		nm_assert (strlen (str->str) == str->len);
+		nm_assert (   property_info->property_typ_data->subtype.objlist.strsplit_plain
+		           || get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY
+		           || _value_strsplit_assert_unsplitable (&str->str[start_offset]));
 	}
 
-	NM_SET_OUT (out_is_default, num_routes == 0);
-	RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
+	NM_SET_OUT (out_is_default, num == 0);
+	if (str)
+		RETURN_STR_TO_FREE (g_string_free (str, FALSE));
+	return NULL;
 }
 
-static const char *ipv4_valid_methods[] = {
-	NM_SETTING_IP4_CONFIG_METHOD_AUTO,
-	NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL,
-	NM_SETTING_IP4_CONFIG_METHOD_MANUAL,
-	NM_SETTING_IP4_CONFIG_METHOD_SHARED,
-	NM_SETTING_IP4_CONFIG_METHOD_DISABLED,
-	NULL
-};
-
-static gboolean
-_set_fcn_ip4_config_method (ARGS_SET_FCN)
+static void
+_objlist_obj_to_str_fcn_ip_config_addresses (NMMetaAccessorGetType get_type,
+                                             NMSetting *setting,
+                                             guint idx,
+                                             GString *str)
 {
-	/* Silently accept "static" and convert to "manual" */
-	if (value && strlen (value) > 1 && matches (value, "static"))
-		value = NM_SETTING_IP4_CONFIG_METHOD_MANUAL;
+	NMIPAddress *obj;
 
-	return check_and_set_string (setting, property_info->property_name, value, ipv4_valid_methods, error);
+	obj = nm_setting_ip_config_get_address (NM_SETTING_IP_CONFIG (setting),
+	                                        idx);
+	g_string_append_printf (str,
+	                        "%s/%u",
+	                        nm_ip_address_get_address (obj),
+	                        nm_ip_address_get_prefix (obj));
 }
 
-static gboolean
-_set_fcn_ip4_config_dns (ARGS_SET_FCN)
+static void
+_objlist_obj_to_str_fcn_ip_config_routes (NMMetaAccessorGetType get_type,
+                                          NMSetting *setting,
+                                          guint idx,
+                                          GString *str)
 {
-	const char **strv = NULL;
-	const char *const*iter;
-	in_addr_t ip4_addr;
-
-	nm_assert (!error || !*error);
+	NMIPRoute *route;
+	gs_free char *attr_str = NULL;
+	gs_strfreev char **attr_names = NULL;
+	gs_unref_hashtable GHashTable *hash = g_hash_table_new (nm_str_hash, g_str_equal);
+	int j;
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
-	for (iter = strv; iter && *iter; iter++) {
-		gs_free char *addr = g_strstrip (g_strdup (*iter));
+	route = nm_setting_ip_config_get_route (NM_SETTING_IP_CONFIG (setting), idx);
 
-		if (inet_pton (AF_INET, addr, &ip4_addr) < 1) {
-			g_set_error (error, 1, 0, _("invalid IPv4 address '%s'"), addr);
-			return FALSE;
-		}
-		nm_setting_ip_config_add_dns (NM_SETTING_IP_CONFIG (setting), addr);
+	attr_names = nm_ip_route_get_attribute_names (route);
+	for (j = 0; attr_names && attr_names[j]; j++) {
+		g_hash_table_insert (hash, attr_names[j],
+		                     nm_ip_route_get_attribute (route, attr_names[j]));
 	}
-	return TRUE;
-}
 
-static gboolean
-_validate_and_remove_ipv4_dns (NMSettingIPConfig *setting,
-                               const char *dns,
-                               GError **error)
-{
-	guint32 ip4_addr;
-	gboolean ret;
+	attr_str = nm_utils_format_variant_attributes (hash, ' ', '=');
 
-	if (inet_pton (AF_INET, dns, &ip4_addr) < 1) {
-		g_set_error (error, 1, 0, _("invalid IPv4 address '%s'"), dns);
-		return FALSE;
-	}
+	if (get_type != NM_META_ACCESSOR_GET_TYPE_PRETTY) {
+		g_string_append_printf (str, "%s/%u",
+		                        nm_ip_route_get_dest (route),
+		                        nm_ip_route_get_prefix (route));
 
-	ret = nm_setting_ip_config_remove_dns_by_value (setting, dns);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain DNS server '%s'"), dns);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_dns,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_dns,
-                               nm_setting_ip_config_remove_dns,
-                               _validate_and_remove_ipv4_dns)
+		if (nm_ip_route_get_next_hop (route))
+			g_string_append_printf (str, " %s", nm_ip_route_get_next_hop (route));
+		if (nm_ip_route_get_metric (route) != -1)
+			g_string_append_printf (str, " %u", (guint32) nm_ip_route_get_metric (route));
+		if (attr_str)
+			g_string_append_printf (str, " %s", attr_str);
+	} else {
+		g_string_append (str, "{ ");
 
-static gboolean
-_set_fcn_ip_config_dns_search (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	gsize i;
+		g_string_append_printf (str, "ip = %s/%u",
+		                        nm_ip_route_get_dest (route),
+		                        nm_ip_route_get_prefix (route));
 
-	nm_assert (!error || !*error);
+		if (nm_ip_route_get_next_hop (route)) {
+			g_string_append_printf (str, ", nh = %s",
+			                        nm_ip_route_get_next_hop (route));
+		}
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
-	if (!verify_string_list (strv, property_info->property_name, nmc_util_is_domain, error))
-		return FALSE;
+		if (nm_ip_route_get_metric (route) != -1)
+			g_string_append_printf (str, ", mt = %u", (guint32) nm_ip_route_get_metric (route));
+		if (attr_str)
+			g_string_append_printf (str, " %s", attr_str);
 
-	if (strv) {
-		for (i = 0; strv[i]; i++)
-			nm_setting_ip_config_add_dns_search (NM_SETTING_IP_CONFIG (setting), strv[i]);
+		g_string_append (str, " }");
 	}
-	return TRUE;
-}
-
-static gboolean
-_validate_and_remove_ip_dns_search (NMSettingIPConfig *setting,
-                                    const char *dns_search,
-                                    GError **error)
-{
-	gboolean ret;
-
-	ret = nm_setting_ip_config_remove_dns_search_by_value (setting, dns_search);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain DNS search domain '%s'"),
-		             dns_search);
-	return ret;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ip_config_dns_search,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_dns_searches,
-                               nm_setting_ip_config_remove_dns_search,
-                               _validate_and_remove_ip_dns_search)
 
 static gboolean
-_set_fcn_ip_config_dns_options (ARGS_SET_FCN)
+_set_fcn_ip_config_method (ARGS_SET_FCN)
 {
-	gs_free const char **strv = NULL;
-	NMSettingIPConfig *s_ip;
-	gsize i;
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
-	nm_assert (!error || !*error);
-	s_ip = NM_SETTING_IP_CONFIG (setting);
-
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
-	if (strv) {
-		for (i = 0; strv[i]; i++) {
-			nm_setting_ip_config_remove_dns_option_by_value (s_ip, strv[i]);
-			nm_setting_ip_config_add_dns_option (s_ip, strv[i]);
-		}
+	/* Silently accept "static" and convert to "manual" */
+	if (   strlen (value) > 1
+	    && matches (value, "static")) {
+		if (nm_setting_ip_config_get_addr_family (NM_SETTING_IP_CONFIG (setting)) == AF_INET)
+			value = NM_SETTING_IP4_CONFIG_METHOD_MANUAL;
+		else
+			value = NM_SETTING_IP6_CONFIG_METHOD_MANUAL;
 	}
-	return TRUE;
-}
-
-static gboolean
-_validate_and_remove_ip_dns_option (NMSettingIPConfig *setting,
-                                    const char *dns_option,
-                                    GError **error)
-{
-	gboolean ret;
-
-	ret = nm_setting_ip_config_remove_dns_option_by_value (setting, dns_option);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain DNS option '%s'"),
-		             dns_option);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ip_config_dns_options,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_dns_options,
-                               nm_setting_ip_config_remove_dns_option,
-                               _validate_and_remove_ip_dns_option)
 
-static gboolean
-_set_fcn_ip4_config_addresses (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMIPAddress *ip4addr;
+	value = nmc_string_is_valid (value,
+	                             (const char **) property_info->property_typ_data->values_static,
+	                             error);
+	if (!value)
+		return FALSE;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; *iter; iter++) {
-		ip4addr = _parse_ip_address (AF_INET, *iter, error);
-		if (!ip4addr)
-			return FALSE;
-		nm_setting_ip_config_add_address (NM_SETTING_IP_CONFIG (setting), ip4addr);
-		nm_ip_address_unref (ip4addr);
-	}
+	g_object_set (setting, property_info->property_name, value, NULL);
 	return TRUE;
 }
 
-static gboolean
-_validate_and_remove_ipv4_address (NMSettingIPConfig *setting,
-                                   const char *address,
-                                   GError **error)
+static const char *
+_multilist_validate2_fcn_ip_config_dns (NMSetting *setting,
+                                        const char *value,
+                                        GError **error)
 {
-	NMIPAddress *ip4addr;
-	gboolean ret;
+	int addr_family = nm_setting_ip_config_get_addr_family (NM_SETTING_IP_CONFIG (setting));
 
-	ip4addr = _parse_ip_address (AF_INET, address, error);
-	if (!ip4addr)
-		return FALSE;
-
-	ret = nm_setting_ip_config_remove_address_by_value (setting, ip4addr);
-	if (!ret) {
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain IP address '%s'"), address);
+	if (!nm_utils_parse_inaddr (addr_family, value, NULL)) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    _("invalid IPv%c address '%s'"),
+		                    nm_utils_addr_family_to_char (addr_family),
+		                    value);
+		return NULL;
 	}
-	nm_ip_address_unref (ip4addr);
-	return ret;
+
+	return value;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_addresses,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_addresses,
-                               nm_setting_ip_config_remove_address,
-                               _validate_and_remove_ipv4_address)
 
 static gboolean
-_set_fcn_ip4_config_gateway (ARGS_SET_FCN)
+_multilist_add_fcn_ip_config_dns_options (NMSetting *setting,
+                                          const char *item)
 {
-	gs_free char *addr = NULL;
-
-	addr = g_strstrip (g_strdup (value));
+	NMSettingIPConfig *s_ip = NM_SETTING_IP_CONFIG (setting);
 
-	if (!nm_utils_ipaddr_valid (AF_INET, addr)) {
-		g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_INVALID_ARGUMENT,
-	                 _("invalid gateway address '%s'"), value);
-		return FALSE;
+	if (!nm_setting_ip_config_add_dns_option (s_ip, item)) {
+		/* maybe it failed, because the element already existed. *sigh*. */
+		nm_setting_ip_config_remove_dns_option_by_value (s_ip, item);
+		return nm_setting_ip_config_add_dns_option (s_ip, item);
 	}
-	g_object_set (setting, property_info->property_name, addr, NULL);
 	return TRUE;
 }
 
 static gboolean
-_set_fcn_ip4_config_routes (ARGS_SET_FCN)
+_set_fcn_objlist (ARGS_SET_FCN)
 {
 	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMIPRoute *ip4route;
+	gsize i, nstrv;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; *iter; iter++) {
-		ip4route = _parse_ip_route (AF_INET, *iter, error);
-		if (!ip4route)
-			return FALSE;
-		nm_setting_ip_config_add_route (NM_SETTING_IP_CONFIG (setting), ip4route);
-		nm_ip_route_unref (ip4route);
+	if (_SET_FCN_DO_RESET_DEFAULT_WITH_SUPPORTS_REMOVE (property_info, modifier, value)) {
+		if (property_info->property_typ_data->subtype.objlist.clear_all_fcn) {
+			property_info->property_typ_data->subtype.objlist.clear_all_fcn (setting);
+			return TRUE;
+		}
+		return _gobject_property_reset_default (setting, property_info->property_name);
 	}
-	return TRUE;
-}
-
-static gboolean
-_validate_and_remove_ipv4_route (NMSettingIPConfig *setting,
-                                 const char *route,
-                                 GError **error)
-{
-	NMIPRoute *ip4route;
-	gboolean ret;
-
-	ip4route = _parse_ip_route (AF_INET, route, error);
-	if (!ip4route)
-		return FALSE;
 
-	ret = nm_setting_ip_config_remove_route_by_value (setting, ip4route);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain route '%s'"), route);
-	nm_ip_route_unref (ip4route);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_routes,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_routes,
-                               nm_setting_ip_config_remove_route,
-                               _validate_and_remove_ipv4_route)
-
-static const char *ipv6_valid_methods[] = {
-	NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
-	NM_SETTING_IP6_CONFIG_METHOD_AUTO,
-	NM_SETTING_IP6_CONFIG_METHOD_DHCP,
-	NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL,
-	NM_SETTING_IP6_CONFIG_METHOD_MANUAL,
-	NM_SETTING_IP6_CONFIG_METHOD_SHARED,
-	NULL
-};
-
-static gboolean
-_set_fcn_ip6_config_method (ARGS_SET_FCN)
-{
-	/* Silently accept "static" and convert to "manual" */
-	if (value && strlen (value) > 1 && matches (value, "static"))
-		value = NM_SETTING_IP6_CONFIG_METHOD_MANUAL;
+	if (   _SET_FCN_DO_REMOVE (modifier, value)
+	    && (   property_info->property_typ_data->subtype.objlist.remove_by_idx_fcn_u
+	        || property_info->property_typ_data->subtype.objlist.remove_by_idx_fcn_s)) {
+		gs_free gint64 *indexes = NULL;
 
-	return check_and_set_string (setting, property_info->property_name, value, ipv6_valid_methods, error);
-}
+		indexes = _value_str_as_index_list (value, &nstrv);
+		if (indexes) {
+			gint64 num;
 
-static gboolean
-_set_fcn_ip6_config_dns (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	struct in6_addr ip6_addr;
+			num = property_info->property_typ_data->subtype.objlist.get_num_fcn (setting);
+			for (i = 0; i < nstrv; i++) {
+				gint64 idx = indexes[i];
 
-	nm_assert (!error || !*error);
+				if (idx >= num)
+					continue;
+				if (property_info->property_typ_data->subtype.objlist.remove_by_idx_fcn_u)
+					property_info->property_typ_data->subtype.objlist.remove_by_idx_fcn_u (setting, idx);
+				else
+					property_info->property_typ_data->subtype.objlist.remove_by_idx_fcn_s (setting, idx);
+			}
+			return TRUE;
+		}
+	}
 
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
-	for (iter = strv; iter && *iter; iter++) {
-		gs_free char *addr  = g_strstrip (g_strdup (*iter));
+	strv = _value_strsplit (value,
+	                          property_info->property_typ_data->subtype.objlist.strsplit_plain
+	                        ? VALUE_STRSPLIT_MODE_OBJLIST
+	                        : VALUE_STRSPLIT_MODE_ESCAPED_TOKENS,
+	                        &nstrv);
 
-		if (inet_pton (AF_INET6, addr, &ip6_addr) < 1) {
-			g_set_error (error, 1, 0, _("invalid IPv6 address '%s'"), addr);
+	if (_SET_FCN_DO_SET_ALL (modifier, value)) {
+		if (property_info->property_typ_data->subtype.objlist.clear_all_fcn)
+			property_info->property_typ_data->subtype.objlist.clear_all_fcn (setting);
+		else
+			_gobject_property_reset (setting, property_info->property_name, FALSE);
+	}
+
+	for (i = 0; i < nstrv; i++) {
+		/* FIXME: there is the problem here that set_fcn() might succed on the first item
+		 * (modifying it), and fail to parse the second one.
+		 *
+		 * Optimally, we would first parse all input strings before starting the
+		 * modify the setting. The setting should only be modified if (and only if)
+		 * the entire operation succeeds to set all items.
+		 *
+		 * Currently, in interactive mode this leads to odd behavior.
+		 *
+		 * This does not only affect objlist.set_fcn() or _pt_objlist properties.
+		 * E.g. we also call _gobject_property_reset() before validating the input. */
+		if (!property_info->property_typ_data->subtype.objlist.set_fcn (setting,
+		                                                                !_SET_FCN_DO_REMOVE (modifier, value),
+		                                                                strv[i],
+		                                                                error))
 			return FALSE;
-		}
-		nm_setting_ip_config_add_dns (NM_SETTING_IP_CONFIG (setting), addr);
 	}
 	return TRUE;
 }
 
 static gboolean
-_validate_and_remove_ipv6_dns (NMSettingIPConfig *setting,
-                               const char *dns,
-                               GError **error)
+_objlist_set_fcn_ip_config_addresses (NMSetting *setting,
+                                      gboolean do_add,
+                                      const char *value,
+                                      GError **error)
 {
-	struct in6_addr ip6_addr;
-	gboolean ret;
+	int addr_family = nm_setting_ip_config_get_addr_family (NM_SETTING_IP_CONFIG (setting));
+	nm_auto_unref_ip_address NMIPAddress *addr = NULL;
 
-	if (inet_pton (AF_INET6, dns, &ip6_addr) < 1) {
-		g_set_error (error, 1, 0, _("invalid IPv6 address '%s'"), dns);
+	addr = _parse_ip_address (addr_family, value, error);
+	if (!addr)
 		return FALSE;
-	}
-
-	ret = nm_setting_ip_config_remove_dns_by_value (setting, dns);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain DNS server '%s'"), dns);
-	return ret;
+	if (do_add)
+		nm_setting_ip_config_add_address (NM_SETTING_IP_CONFIG (setting), addr);
+	else
+		nm_setting_ip_config_remove_address_by_value (NM_SETTING_IP_CONFIG (setting), addr);
+	return TRUE;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_dns,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_dns,
-                               nm_setting_ip_config_remove_dns,
-                               _validate_and_remove_ipv6_dns)
 
 static gboolean
-_dns_options_is_default (NMSettingIPConfig *setting)
+_set_fcn_ip_config_gateway (ARGS_SET_FCN)
 {
-	return    nm_setting_ip_config_has_dns_options (setting)
-	       && !nm_setting_ip_config_get_num_dns_options (setting);
-}
+	gs_free char *value_to_free = NULL;
+	int addr_family = nm_setting_ip_config_get_addr_family (NM_SETTING_IP_CONFIG (setting));
 
-static gboolean
-_set_fcn_ip6_config_addresses (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMIPAddress *ip6addr;
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; strv && *iter; iter++) {
-		ip6addr = _parse_ip_address (AF_INET6, *iter, error);
-		if (!ip6addr)
-			return FALSE;
-		nm_setting_ip_config_add_address (NM_SETTING_IP_CONFIG (setting), ip6addr);
-		nm_ip_address_unref (ip6addr);
+	value = nm_strstrip_avoid_copy_a (300, value, &value_to_free);
+
+	if (!nm_utils_ipaddr_valid (addr_family, value)) {
+		g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		             _("invalid gateway address '%s'"),
+		             value);
+		return FALSE;
 	}
+
+	g_object_set (setting, property_info->property_name, value, NULL);
 	return TRUE;
 }
 
 static gboolean
-_validate_and_remove_ipv6_address (NMSettingIPConfig *setting,
-                                   const char *address,
+_objlist_set_fcn_ip_config_routes (NMSetting *setting,
+                                   gboolean do_add,
+                                   const char *value,
                                    GError **error)
 {
-	NMIPAddress *ip6addr;
-	gboolean ret;
+	int addr_family = nm_setting_ip_config_get_addr_family (NM_SETTING_IP_CONFIG (setting));
+	nm_auto_unref_ip_route NMIPRoute *route = NULL;
 
-	ip6addr = _parse_ip_address (AF_INET6, address, error);
-	if (!ip6addr)
+	route = _parse_ip_route (addr_family, value, error);
+	if (!route)
 		return FALSE;
-
-	ret = nm_setting_ip_config_remove_address_by_value (setting, ip6addr);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain IP address '%s'"), address);
-	nm_ip_address_unref (ip6addr);
-	return ret;
+	if (do_add)
+		nm_setting_ip_config_add_route (NM_SETTING_IP_CONFIG (setting), route);
+	else
+		nm_setting_ip_config_remove_route_by_value (NM_SETTING_IP_CONFIG (setting), route);
+	return TRUE;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_addresses,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_addresses,
-                               nm_setting_ip_config_remove_address,
-                               _validate_and_remove_ipv6_address)
 
 static gboolean
-_set_fcn_ip6_config_gateway (ARGS_SET_FCN)
+_is_default_func_ip_config_dns_options (NMSetting *setting)
 {
-	gs_free char *addr = NULL;
-
-	addr = g_strstrip (g_strdup (value));
-
-	if (!nm_utils_ipaddr_valid (AF_INET6, addr)) {
-		g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_INVALID_ARGUMENT,
-		             _("invalid gateway address '%s'"),
-		             addr);
-		return FALSE;
-	}
-
-	g_object_set (setting, property_info->property_name, addr, NULL);
-	return TRUE;
+	return    nm_setting_ip_config_has_dns_options (NM_SETTING_IP_CONFIG (setting))
+	       && !nm_setting_ip_config_get_num_dns_options (NM_SETTING_IP_CONFIG (setting));
 }
 
-static gboolean
-_set_fcn_ip6_config_routes (ARGS_SET_FCN)
+static void
+_objlist_obj_to_str_fcn_ip_config_routing_rules (NMMetaAccessorGetType get_type,
+                                                 NMSetting *setting,
+                                                 guint idx,
+                                                 GString *str)
 {
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMIPRoute *ip6route;
+	NMIPRoutingRule *rule;
+	gs_free char *s = NULL;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; strv && *iter; iter++) {
-		ip6route = _parse_ip_route (AF_INET6, *iter, error);
-		if (!ip6route)
-			return FALSE;
-		nm_setting_ip_config_add_route (NM_SETTING_IP_CONFIG (setting), ip6route);
-		nm_ip_route_unref (ip6route);
-	}
-	return TRUE;
+	rule = nm_setting_ip_config_get_routing_rule (NM_SETTING_IP_CONFIG (setting), idx);
+	s = nm_ip_routing_rule_to_string (rule,
+	                                  NM_IP_ROUTING_RULE_AS_STRING_FLAGS_NONE,
+	                                  NULL,
+	                                  NULL);
+	if (s)
+		nm_utils_escaped_tokens_escape_gstr (s, ESCAPED_TOKENS_DELIMITERS, str);
 }
 
 static gboolean
-_validate_and_remove_ipv6_route (NMSettingIPConfig *setting,
-                                 const char *route,
-                                 GError **error)
+_objlist_set_fcn_ip_config_routing_rules (NMSetting *setting,
+                                          gboolean do_add,
+                                          const char *str,
+                                          GError **error)
 {
-	NMIPRoute *ip6route;
-	gboolean ret;
-
-	ip6route = _parse_ip_route (AF_INET6, route, error);
-	if (!ip6route)
+	NMSettingIPConfig *s_ip = NM_SETTING_IP_CONFIG (setting);
+	nm_auto_unref_ip_routing_rule NMIPRoutingRule *rule = NULL;
+	guint i, n;
+
+	rule = nm_ip_routing_rule_from_string (str,
+	                                       (  NM_IP_ROUTING_RULE_AS_STRING_FLAGS_VALIDATE
+	                                        | (  NM_IS_SETTING_IP4_CONFIG (setting)
+	                                           ? NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET
+	                                           : NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6)),
+	                                       NULL,
+	                                       error);
+	if (!rule)
 		return FALSE;
 
-	ret = nm_setting_ip_config_remove_route_by_value (setting, ip6route);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain route '%s'"), route);
-	nm_ip_route_unref (ip6route);
-	return ret;
+	/* also for @do_add, we first always search whether such a rule already exist
+	 * and remove the first occurance.
+	 *
+	 * The effect is, that we don't add multiple times the same rule,
+	 * and that if the rule already exists, it gets moved to the end (append).
+	 */
+	n = nm_setting_ip_config_get_num_routing_rules (s_ip);
+	for (i = 0; i < n; i++) {
+		NMIPRoutingRule *rr;
+
+		rr = nm_setting_ip_config_get_routing_rule (s_ip, i);
+		if (nm_ip_routing_rule_cmp (rule, rr) == 0) {
+			nm_setting_ip_config_remove_routing_rule (s_ip, i);
+			break;
+		}
+	}
+	if (do_add)
+		nm_setting_ip_config_add_routing_rule (s_ip, rule);
+	return TRUE;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_routes,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_routes,
-                               nm_setting_ip_config_remove_route,
-                               _validate_and_remove_ipv6_route)
 
 static gconstpointer
 _get_fcn_match_interface_name (ARGS_GET_FCN)
@@ -3709,55 +3437,22 @@ _get_fcn_match_interface_name (ARGS_GET_FCN)
 	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)
+		name = nm_setting_match_get_interface_name (s_match, i);
+		if (!name || !name[0])
+			continue;
+		if (!str)
 			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));
+			g_string_append_c (str, ESCAPED_TOKENS_WITH_SPACES_DELIMTER);
+		nm_utils_escaped_tokens_escape_gstr (name, ESCAPED_TOKENS_WITH_SPACES_DELIMTERS, str);
 	}
-	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;
+	NM_SET_OUT (out_is_default, num == 0);
+	if (!str)
+		return NULL;
+	RETURN_STR_TO_FREE (g_string_free (str, FALSE));
 }
-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)
@@ -3783,7 +3478,8 @@ _set_fcn_olpc_mesh_channel (ARGS_SET_FCN)
 {
 	unsigned long chan_int;
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
 	if (!nmc_string_to_uint (value, TRUE, 1, 13, &chan_int)) {
 		g_set_error (error, 1, 0, _("'%s' is not a valid channel; use <1-13>"), value);
@@ -3803,240 +3499,182 @@ _validate_fcn_proxy_pac_script (const char *value, char **out_to_free, GError **
 	RETURN_STR_TO_FREE (script);
 }
 
-static gconstpointer
-_get_fcn_sriov_vfs (ARGS_GET_FCN)
+static void
+_objlist_obj_to_str_fcn_sriov_vfs (NMMetaAccessorGetType get_type,
+                                   NMSetting *setting,
+                                   guint idx,
+                                   GString *str)
 {
-	NMSettingSriov *s_sriov = NM_SETTING_SRIOV (setting);
-	GString *printable;
-	guint num_vfs, i;
+	gs_free char *s = NULL;
 	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));
+	vf = nm_setting_sriov_get_vf (NM_SETTING_SRIOV (setting), idx);
+	s = nm_utils_sriov_vf_to_str (vf, FALSE, NULL);
+	if (s)
+		g_string_append (str, s);
 }
 
-static gconstpointer
-_get_fcn_tc_config_qdiscs (ARGS_GET_FCN)
+static void
+_objlist_obj_to_str_fcn_tc_config_qdiscs (NMMetaAccessorGetType get_type,
+                                          NMSetting *setting,
+                                          guint idx,
+                                          GString *str)
 {
-	NMSettingTCConfig *s_tc = NM_SETTING_TC_CONFIG (setting);
-	GString *printable;
-	guint num_qdiscs, i;
+	gs_free char *s = NULL;
 	NMTCQdisc *qdisc;
-	char *str;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	printable = g_string_new (NULL);
-
-	num_qdiscs = nm_setting_tc_config_get_num_qdiscs (s_tc);
-	for (i = 0; i < num_qdiscs; i++) {
-		qdisc = nm_setting_tc_config_get_qdisc (s_tc, i);
 
-		if (printable->len > 0)
-			g_string_append (printable, ", ");
-
-		str = nm_utils_tc_qdisc_to_str (qdisc, NULL);
-		if (str) {
-			g_string_append (printable, str);
-			g_free (str);
-		}
-	}
-
-	NM_SET_OUT (out_is_default, num_qdiscs == 0);
-	RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
+	qdisc = nm_setting_tc_config_get_qdisc (NM_SETTING_TC_CONFIG (setting), idx);
+	s = nm_utils_tc_qdisc_to_str (qdisc, NULL);
+	if (s)
+		g_string_append (str, s);
 }
 
-static gboolean
-_set_fcn_sriov_vfs (ARGS_SET_FCN)
+static void
+_objlist_obj_to_str_fcn_bridge_vlans (NMMetaAccessorGetType get_type,
+                                      NMSetting *setting,
+                                      guint idx,
+                                      GString *str)
 {
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMSriovVF *vf;
-	GError *local = NULL;
+	gs_free char *s = NULL;
+	NMBridgeVlan *vlan;
 
-	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;
+	if (NM_IS_SETTING_BRIDGE (setting))
+		vlan = nm_setting_bridge_get_vlan (NM_SETTING_BRIDGE (setting), idx);
+	else
+		vlan = nm_setting_bridge_port_get_vlan (NM_SETTING_BRIDGE_PORT (setting), idx);
+
+	s = nm_bridge_vlan_to_str (vlan, NULL);
+	if (s)
+		nm_utils_escaped_tokens_escape_gstr_assert (s, ESCAPED_TOKENS_DELIMITERS, str);
 }
 
 static gboolean
-_set_fcn_tc_config_qdiscs (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMTCQdisc *tc_qdisc;
-	GError *local = NULL;
-
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; strv && *iter; iter++) {
-		tc_qdisc = nm_utils_tc_qdisc_from_str (*iter, &local);
-		if (!tc_qdisc) {
-			g_set_error (error, 1, 0, "%s %s", local->message,
-			             _("The valid syntax is: '[root | parent <handle>] [handle <handle>] <qdisc>'"));
-			return FALSE;
-		}
-		nm_setting_tc_config_add_qdisc (NM_SETTING_TC_CONFIG (setting), tc_qdisc);
-		nm_tc_qdisc_unref (tc_qdisc);
+_objlist_set_fcn_sriov_vfs (NMSetting *setting,
+                            gboolean do_add,
+                            const char *value,
+                            GError **error)
+{
+	nm_auto_unref_sriov_vf NMSriovVF *vf = NULL;
+	gs_free_error GError *local = NULL;
+
+	vf = nm_utils_sriov_vf_from_str (value, &local);
+	if (!vf) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    "%s. %s",
+		                    local->message,
+		                    _("The valid syntax is: vf [attribute=value]... [,vf [attribute=value]...]"));
+		return FALSE;
 	}
+	if (do_add)
+		nm_setting_sriov_add_vf (NM_SETTING_SRIOV (setting), vf);
+	else
+		nm_setting_sriov_remove_vf_by_index (NM_SETTING_SRIOV (setting), nm_sriov_vf_get_index (vf));
 	return TRUE;
 }
 
 static gboolean
-_validate_and_remove_sriov_vf (NMSettingSriov *setting,
-                               const char *value,
-                               GError **error)
+_objlist_set_fcn_tc_config_qdiscs (NMSetting *setting,
+                                   gboolean do_add,
+                                   const char *value,
+                                   GError **error)
 {
-	NMSriovVF *vf;
-	gboolean ret;
+	nm_auto_unref_tc_qdisc NMTCQdisc *tc_qdisc = NULL;
+	gs_free_error GError *local = NULL;
 
-	vf = nm_utils_sriov_vf_from_str (value, error);
-	if (!vf)
+	tc_qdisc = nm_utils_tc_qdisc_from_str (value, &local);
+	if (!tc_qdisc) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    "%s. %s",
+		                    local->message,
+		                    _("The valid syntax is: '[root | parent <handle>] [handle <handle>] <kind>'"));
 		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;
+	if (do_add)
+		nm_setting_tc_config_add_qdisc (NM_SETTING_TC_CONFIG (setting), tc_qdisc);
+	else
+		nm_setting_tc_config_remove_qdisc_by_value (NM_SETTING_TC_CONFIG (setting), tc_qdisc);
+	return TRUE;
 }
-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,
+_objlist_set_fcn_bridge_vlans (NMSetting *setting,
+                               gboolean do_add,
                                const char *value,
                                GError **error)
 {
-	NMTCQdisc *qdisc;
-	gboolean ret;
+	nm_auto_unref_bridge_vlan NMBridgeVlan *vlan = NULL;
+	gs_free_error GError *local = NULL;
+	guint16 vid_start, vid_end;
 
-	qdisc = nm_utils_tc_qdisc_from_str (value, error);
-	if (!qdisc)
+	vlan = nm_bridge_vlan_from_str (value, &local);
+	if (!vlan) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    "%s. %s",
+		                    local->message,
+		                    _("The valid syntax is: '<vid>[-<vid>] [pvid] [untagged]'"));
 		return FALSE;
+	}
 
-	ret = nm_setting_tc_config_remove_qdisc_by_value (setting, qdisc);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain qdisc '%s'"), value);
-	nm_tc_qdisc_unref (qdisc);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_tc_config_qdiscs,
-                               NM_SETTING_TC_CONFIG,
-                               nm_setting_tc_config_get_num_qdiscs,
-                               nm_setting_tc_config_remove_qdisc,
-                               _validate_and_remove_tc_qdisc)
-
-static gconstpointer
-_get_fcn_tc_config_tfilters (ARGS_GET_FCN)
-{
-	NMSettingTCConfig *s_tc = NM_SETTING_TC_CONFIG (setting);
-	GString *printable;
-	guint num_tfilters, i;
-	NMTCTfilter *tfilter;
-	char *str;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	printable = g_string_new (NULL);
-
-	num_tfilters = nm_setting_tc_config_get_num_tfilters (s_tc);
-	for (i = 0; i < num_tfilters; i++) {
-		tfilter = nm_setting_tc_config_get_tfilter (s_tc, i);
-
-		if (printable->len > 0)
-			g_string_append (printable, ", ");
-
-		str = nm_utils_tc_tfilter_to_str (tfilter, NULL);
-		if (str) {
-			g_string_append (printable, str);
-			g_free (str);
+	if (NM_IS_SETTING_BRIDGE (setting)) {
+		if (do_add)
+			nm_setting_bridge_add_vlan (NM_SETTING_BRIDGE (setting), vlan);
+		else {
+			nm_bridge_vlan_get_vid_range (vlan, &vid_start, &vid_end);
+			nm_setting_bridge_remove_vlan_by_vid (NM_SETTING_BRIDGE (setting),
+			                                      vid_start, vid_end);
+		}
+	} else {
+		if (do_add)
+			nm_setting_bridge_port_add_vlan (NM_SETTING_BRIDGE_PORT (setting), vlan);
+		else {
+			nm_bridge_vlan_get_vid_range (vlan, &vid_start, &vid_end);
+			nm_setting_bridge_port_remove_vlan_by_vid (NM_SETTING_BRIDGE_PORT (setting),
+			                                           vid_start,
+			                                           vid_end);
 		}
 	}
 
-	NM_SET_OUT (out_is_default, num_tfilters == 0);
-	RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
+	return TRUE;
 }
 
-static gboolean
-_set_fcn_tc_config_tfilters (ARGS_SET_FCN)
+static void
+_objlist_obj_to_str_fcn_tc_config_tfilters (NMMetaAccessorGetType get_type,
+                                            NMSetting *setting,
+                                            guint idx,
+                                            GString *str)
 {
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMTCTfilter *tc_tfilter;
-	GError *local = NULL;
+	NMTCTfilter *tfilter;
+	gs_free char *s = NULL;
 
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; strv && *iter; iter++) {
-		tc_tfilter = nm_utils_tc_tfilter_from_str (*iter, &local);
-		if (!tc_tfilter) {
-			g_set_error (error, 1, 0, "%s %s", local->message,
-			             _("The valid syntax is: '[root | parent <handle>] [handle <handle>] <tfilter>'"));
-			return FALSE;
-		}
-		nm_setting_tc_config_add_tfilter (NM_SETTING_TC_CONFIG (setting), tc_tfilter);
-		nm_tc_tfilter_unref (tc_tfilter);
-	}
-	return TRUE;
+	tfilter = nm_setting_tc_config_get_tfilter (NM_SETTING_TC_CONFIG (setting), idx);
+	s = nm_utils_tc_tfilter_to_str (tfilter, NULL);
+	if (s)
+		g_string_append (str, s);
 }
 
 static gboolean
-_validate_and_remove_tc_tfilter (NMSettingTCConfig *setting,
-                               const char *value,
-                               GError **error)
+_objlist_set_fcn_tc_config_tfilters (NMSetting *setting,
+                                     gboolean do_add,
+                                     const char *value,
+                                     GError **error)
 {
-	NMTCTfilter *tfilter;
-	gboolean ret;
+	gs_free_error GError *local = NULL;
+	nm_auto_unref_tc_tfilter NMTCTfilter *tc_tfilter = NULL;
 
-	tfilter = nm_utils_tc_tfilter_from_str (value, error);
-	if (!tfilter)
+	tc_tfilter = nm_utils_tc_tfilter_from_str (value, &local);
+	if (!tc_tfilter) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    "%s. %s",
+		                    local->message,
+		                    _("The valid syntax is: '[root | parent <handle>] [handle <handle>] <kind>'"));
 		return FALSE;
-
-	ret = nm_setting_tc_config_remove_tfilter_by_value (setting, tfilter);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain tfilter '%s'"), value);
-	nm_tc_tfilter_unref (tfilter);
-	return ret;
+	}
+	if (do_add)
+		nm_setting_tc_config_add_tfilter (NM_SETTING_TC_CONFIG (setting), tc_tfilter);
+	else
+		nm_setting_tc_config_remove_tfilter_by_value (NM_SETTING_TC_CONFIG (setting), tc_tfilter);
+	return TRUE;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_tc_config_tfilters,
-                               NM_SETTING_TC_CONFIG,
-                               nm_setting_tc_config_get_num_tfilters,
-                               nm_setting_tc_config_remove_tfilter,
-                               _validate_and_remove_tc_tfilter)
 
 static const char *
 _validate_fcn_team_config (const char *value, char **out_to_free, GError **error)
@@ -4048,214 +3686,129 @@ _validate_fcn_team_config (const char *value, char **out_to_free, GError **error
 	RETURN_STR_TO_FREE (json);
 }
 
-static gboolean
-_is_valid_team_runner_tx_hash_element (const char *tx_hash_element,
-                                       GError **error)
-{
-	nm_assert (!error || !*error);
-
-	if (NM_IN_STRSET (tx_hash_element,
-	                  "eth", "vlan", "ipv4", "ipv6", "ip",
-	                  "l3", "tcp", "udp", "sctp", "l4")) {
-		return TRUE;
-	}
-
-	g_set_error (error, 1, 0, "'%s' is not valid. %s", tx_hash_element,
-	             "Valid tx-hashes: [eth, vlan, ipv4, ipv6, ip, l3, tcp, udp, sctp, l4]");
-	return FALSE;
-}
-
-static gboolean
-_set_fcn_team_runner_tx_hash (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-
-	nm_assert (!error || !*error);
-
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
-	for (iter = strv; strv && *iter; iter++) {
-		if (!_is_valid_team_runner_tx_hash_element (*iter, error))
-			return FALSE;
-	}
-
+static void
+_multilist_clear_all_fcn_team_runner_tx_hash (NMSetting *setting)
+{
+	/* Workaround libnm bug (confirmed against version 1.16.0).
+	 * We need to both clear the GObject property and call the libnm API.
+	 *
+	 * This workaround was added in nmcli as [1]. This needs fixing in libnm.
+	 *
+	 * Without this, CI test "team_abs_set_runner_tx_hash" fails.
+	 * Try (without the following workaround): */
+#if 0
+     $ (nmcli connection delete team0 ; :); \
+       nmcli connection add type team con-name team0 ifname team0 autoconnect no \
+           team.runner lacp && \
+       echo ">>> FIRST:" && \
+       PAGER= nmcli -o connection show team0 && \
+       nmcli connection modify team0 team.runner-tx-hash l3 && \
+       echo ">>> AFTER:" && \
+       PAGER= nmcli -o connection show team0
+#endif
+	/* See also:
+	 *
+	 *   - https://github.com/NetworkManager/NetworkManager/pull/318
+	 *   - https://bugzilla.redhat.com/show_bug.cgi?id=1691619
+	 *
+	 * [1] https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=350dbb55abf3a80267c398e6f64c2cee4645475a
+	 */
+
+	/* it appears, we don't really need _gobject_property_reset(). Just to be sure
+	 * also call it. */
+	_gobject_property_reset (setting, NM_SETTING_TEAM_RUNNER_TX_HASH, FALSE);
 	while (nm_setting_team_get_num_runner_tx_hash (NM_SETTING_TEAM (setting)))
 		nm_setting_team_remove_runner_tx_hash (NM_SETTING_TEAM (setting), 0);
-
-	for (iter = strv; strv && *iter; iter++)
-		nm_setting_team_add_runner_tx_hash (NM_SETTING_TEAM (setting), *iter);
-
-	return TRUE;
 }
 
-static gboolean
-_validate_and_remove_team_runner_tx_hash (NMSettingTeam *setting,
-                                         const char *tx_hash,
-                                         GError **error)
-{
-	if (!nm_setting_team_remove_runner_tx_hash_by_value (setting, tx_hash)) {
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain string '%s'"),
-		             tx_hash);
-		return FALSE;
+static void
+_objlist_clear_all_fcn_team_link_watchers (NMSetting *setting)
+{
+	/* the same workaround as _multilist_clear_all_fcn_team_runner_tx_hash() above.
+	 *
+	 * Reproduce with: */
+#if 0
+     $ (nmcli connection delete team0 ; :); \
+       nmcli connection add type team con-name team0 ifname team0 autoconnect no \
+             team.link-watchers 'name=arp_ping source-host=172.16.1.1 target-host=172.16.1.254, name=ethtool delay-up=3' && \
+       echo ">>> FIRST:" && \
+       PAGER= nmcli -o connection show team0 && \
+       nmcli connection modify team0 team.link-watchers 'name=ethtool delay-up=4' && \
+       echo ">>> AFTER:" && \
+       PAGER= nmcli -o connection show team0
+
+       (nmcli connection delete team0-slave ; :); \
+       nmcli connection add type ethernet con-name team0-slave master team0 slave-type team ifname eth0 autoconnect no \
+             team-port.link-watchers 'name=arp_ping source-host=172.16.1.1 target-host=172.16.1.254, name=ethtool delay-up=3' && \
+       echo ">>> FIRST:" && \
+       PAGER= nmcli -o connection show team0-slave && \
+       nmcli connection modify team0-slave team.link-watchers 'name=ethtool delay-up=4' && \
+       echo ">>> AFTER:" && \
+       PAGER= nmcli -o connection show team0-slave
+#endif
+	/* See also:
+	 *
+	 *   - https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=72bf38cad6ca6033d0117bf67b0e726001922d8f
+	 *   - https://github.com/NetworkManager/NetworkManager/pull/318
+	 *   - https://bugzilla.redhat.com/show_bug.cgi?id=1691619
+	 */
+
+	/* In this case, it appears both GObject reset and nm_setting_team*_clear_link_watchers()
+	 * work (on their own). So, we might not need the workaround.
+	 * Just to be sure, as something is not right with libnm here. */
+	if (NM_IS_SETTING_TEAM (setting)) {
+		_gobject_property_reset (setting, NM_SETTING_TEAM_LINK_WATCHERS, FALSE);
+		nm_setting_team_clear_link_watchers (NM_SETTING_TEAM (setting));
+	} else {
+		_gobject_property_reset (setting, NM_SETTING_TEAM_PORT_LINK_WATCHERS, FALSE);
+		nm_setting_team_port_clear_link_watchers (NM_SETTING_TEAM_PORT (setting));
 	}
-
-	return TRUE;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_team_runner_tx_hash,
-                               NM_SETTING_TEAM,
-                               nm_setting_team_get_num_runner_tx_hash,
-                               nm_setting_team_remove_runner_tx_hash,
-                               _validate_and_remove_team_runner_tx_hash)
 
-static gconstpointer
-_get_fcn_team_link_watchers (ARGS_GET_FCN)
+static void
+_objlist_obj_to_str_fcn_team_link_watchers (NMMetaAccessorGetType get_type,
+                                            NMSetting *setting,
+                                            guint idx,
+                                            GString *str)
 {
-	NMSettingTeam *s_team = NM_SETTING_TEAM (setting);
-	GString *printable;
-	guint num_watchers, i;
 	NMTeamLinkWatcher *watcher;
-	char *watcher_str;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
+	gs_free char *s = NULL;
 
-	printable = g_string_new (NULL);
-
-	num_watchers = nm_setting_team_get_num_link_watchers (s_team);
-	for (i = 0; i < num_watchers; i++) {
-		watcher = nm_setting_team_get_link_watcher (s_team, i);
-		watcher_str = _dump_team_link_watcher (watcher);
-		if (watcher_str) {
-			if (printable->len > 0)
-				g_string_append (printable, ", ");
-			g_string_append (printable, watcher_str);
-			g_free (watcher_str);
-		}
-	}
+	if (NM_IS_SETTING_TEAM (setting))
+		watcher = nm_setting_team_get_link_watcher (NM_SETTING_TEAM (setting), idx);
+	else
+		watcher = nm_setting_team_port_get_link_watcher (NM_SETTING_TEAM_PORT (setting), idx);
 
-	NM_SET_OUT (out_is_default, num_watchers == 0);
-	RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
+	s = _dump_team_link_watcher (watcher);
+	if (s)
+		g_string_append (str, s);
 }
 
 static gboolean
-_set_fcn_team_link_watchers (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMTeamLinkWatcher *watcher;
-
-	nm_setting_team_clear_link_watchers (NM_SETTING_TEAM (setting));
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; strv && *iter; iter++) {
-		watcher = _parse_team_link_watcher (*iter, error);
-		if (!watcher)
-			return FALSE;
-		nm_setting_team_add_link_watcher (NM_SETTING_TEAM (setting), watcher);
-		nm_team_link_watcher_unref (watcher);
-	}
-	return TRUE;
-}
-
-static gboolean
-_validate_and_remove_team_link_watcher (NMSettingTeam *setting,
-                                        const char *watcher_str,
-                                        GError **error)
+_objlist_set_fcn_team_link_watchers (NMSetting *setting,
+                                     gboolean do_add,
+                                     const char *value,
+                                     GError **error)
 {
-	NMTeamLinkWatcher *watcher;
-	gboolean ret;
+	nm_auto_unref_team_link_watcher NMTeamLinkWatcher *watcher = NULL;
 
-	watcher = _parse_team_link_watcher (watcher_str, error);
+	watcher = _parse_team_link_watcher (value, error);
 	if (!watcher)
 		return FALSE;
-
-	ret = nm_setting_team_remove_link_watcher_by_value (setting, watcher);
-	if (!ret) {
-		g_set_error (error, 1, 0, _("the property doesn't contain link watcher '%s'"),
-		             watcher_str);
-	}
-	nm_team_link_watcher_unref (watcher);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_team_link_watchers,
-                               NM_SETTING_TEAM,
-                               nm_setting_team_get_num_link_watchers,
-                               nm_setting_team_remove_link_watcher,
-                               _validate_and_remove_team_link_watcher)
-
-static gconstpointer
-_get_fcn_team_port_link_watchers (ARGS_GET_FCN)
-{
-	NMSettingTeamPort *s_team_port = NM_SETTING_TEAM_PORT (setting);
-	GString *printable;
-	guint num_watchers, i;
-	NMTeamLinkWatcher *watcher;
-	char *watcher_str;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
-
-	printable = g_string_new (NULL);
-
-	num_watchers = nm_setting_team_port_get_num_link_watchers (s_team_port);
-	for (i = 0; i < num_watchers; i++) {
-		watcher = nm_setting_team_port_get_link_watcher (s_team_port, i);
-		watcher_str = _dump_team_link_watcher (watcher);
-		if (watcher_str) {
-			if (printable->len > 0)
-				g_string_append (printable, ", ");
-			g_string_append (printable, watcher_str);
-			g_free (watcher_str);
-		}
-	}
-
-	NM_SET_OUT (out_is_default, num_watchers == 0);
-	RETURN_STR_TO_FREE (g_string_free (printable, FALSE));
-}
-
-static gboolean
-_set_fcn_team_port_link_watchers (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	const char *const*iter;
-	NMTeamLinkWatcher *watcher;
-
-	nm_setting_team_port_clear_link_watchers (NM_SETTING_TEAM_PORT (setting));
-	strv = nm_utils_strsplit_set (value, ",", FALSE);
-	for (iter = strv; strv && *iter; iter++) {
-		watcher = _parse_team_link_watcher (*iter, error);
-		if (!watcher)
-			return FALSE;
-		nm_setting_team_port_add_link_watcher (NM_SETTING_TEAM_PORT (setting), watcher);
-		nm_team_link_watcher_unref (watcher);
+	if (NM_IS_SETTING_TEAM (setting)) {
+		if (do_add)
+			nm_setting_team_add_link_watcher (NM_SETTING_TEAM (setting), watcher);
+		else
+			nm_setting_team_remove_link_watcher_by_value (NM_SETTING_TEAM (setting), watcher);
+	} else {
+		if (do_add)
+			nm_setting_team_port_add_link_watcher (NM_SETTING_TEAM_PORT (setting), watcher);
+		else
+			nm_setting_team_port_remove_link_watcher_by_value (NM_SETTING_TEAM_PORT (setting), watcher);
 	}
 	return TRUE;
 }
 
-static gboolean
-_validate_and_remove_team_port_link_watcher (NMSettingTeamPort *setting,
-                                             const char *watcher_str,
-                                             GError **error)
-{
-	NMTeamLinkWatcher *watcher;
-	gboolean ret;
-
-	watcher = _parse_team_link_watcher (watcher_str, error);
-	if (!watcher)
-		return FALSE;
-
-	ret = nm_setting_team_port_remove_link_watcher_by_value (setting, watcher);
-	if (!ret) {
-		g_set_error (error, 1, 0, _("the property doesn't contain link watcher '%s'"),
-		             watcher_str);
-	}
-	nm_team_link_watcher_unref (watcher);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_team_port_link_watchers,
-                               NM_SETTING_TEAM_PORT,
-                               nm_setting_team_port_get_num_link_watchers,
-                               nm_setting_team_port_remove_link_watcher,
-                               _validate_and_remove_team_port_link_watcher)
-
 static gconstpointer
 _get_fcn_vlan_flags (ARGS_GET_FCN)
 {
@@ -4269,142 +3822,92 @@ _get_fcn_vlan_flags (ARGS_GET_FCN)
 	RETURN_STR_TO_FREE (vlan_flags_to_string (flags, get_type));
 }
 
-static gconstpointer
-_get_fcn_vlan_ingress_priority_map (ARGS_GET_FCN)
+static NMVlanPriorityMap
+_vlan_priority_map_type_from_property_info (const NMMetaPropertyInfo *property_info)
 {
-	NMSettingVlan *s_vlan = NM_SETTING_VLAN (setting);
-	char *str;
-
-	RETURN_UNSUPPORTED_GET_TYPE ();
+	nm_assert (property_info);
+	nm_assert (property_info->setting_info == &nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_VLAN]);
+	nm_assert (NM_IN_STRSET (property_info->property_name, NM_SETTING_VLAN_INGRESS_PRIORITY_MAP,
+	                                                       NM_SETTING_VLAN_EGRESS_PRIORITY_MAP));
 
-	str = vlan_priorities_to_string (s_vlan, NM_VLAN_INGRESS_MAP);
-	NM_SET_OUT (out_is_default, !str || !str[0]);
-	RETURN_STR_TO_FREE (str);
+	return   nm_streq (property_info->property_name, NM_SETTING_VLAN_INGRESS_PRIORITY_MAP)
+	       ? NM_VLAN_INGRESS_MAP
+	       : NM_VLAN_EGRESS_MAP;
 }
 
 static gconstpointer
-_get_fcn_vlan_egress_priority_map (ARGS_GET_FCN)
+_get_fcn_vlan_xgress_priority_map (ARGS_GET_FCN)
 {
+	NMVlanPriorityMap map_type = _vlan_priority_map_type_from_property_info (property_info);
 	NMSettingVlan *s_vlan = NM_SETTING_VLAN (setting);
-	char *str;
+	GString *str = NULL;
+	guint32 i, num;
 
 	RETURN_UNSUPPORTED_GET_TYPE ();
 
-	str = vlan_priorities_to_string (s_vlan, NM_VLAN_EGRESS_MAP);
-	NM_SET_OUT (out_is_default, !str || !str[0]);
-	RETURN_STR_TO_FREE (str);
-}
-
-static gboolean
-_set_vlan_xgress_priority_map (NMSetting *setting,
-                               const char *value,
-                               NMVlanPriorityMap map_type,
-                               GError **error)
-{
-	char **prio_map, **p;
-
-	prio_map = _parse_vlan_priority_maps (value, map_type, error);
-	if (!prio_map)
-		return FALSE;
+	num = nm_setting_vlan_get_num_priorities (s_vlan, map_type);
+	for (i = 0; i < num; i++) {
+		guint32 from, to;
 
-	for (p = prio_map; p && *p; p++)
-		nm_setting_vlan_add_priority_str (NM_SETTING_VLAN (setting), map_type, *p);
+		if (!nm_setting_vlan_get_priority (s_vlan, map_type, i, &from, &to))
+			continue;
 
-	g_strfreev (prio_map);
-	return TRUE;
-}
+		if (!str)
+			str = g_string_new (NULL);
+		else
+			g_string_append_c (str, ESCAPED_TOKENS_WITH_SPACES_DELIMTER);
+		g_string_append_printf (str, "%d:%d", from, to);
+	}
 
-static gboolean
-_set_fcn_vlan_ingress_priority_map (ARGS_SET_FCN)
-{
-	return _set_vlan_xgress_priority_map (setting, value, NM_VLAN_INGRESS_MAP, error);
+	NM_SET_OUT (out_is_default, num == 0);
+	if (!str)
+		return NULL;
+	RETURN_STR_TO_FREE (g_string_free (str, FALSE));
 }
 
 static gboolean
-_set_fcn_vlan_egress_priority_map (ARGS_SET_FCN)
+_set_fcn_vlan_xgress_priority_map (ARGS_SET_FCN)
 {
-	return _set_vlan_xgress_priority_map (setting, value, NM_VLAN_EGRESS_MAP, error);
-}
+	NMVlanPriorityMap map_type = _vlan_priority_map_type_from_property_info (property_info);
+	gs_free const char **prio_map = NULL;
+	gsize i, len;
 
-static gboolean
-_remove_vlan_xgress_priority_map (const NMMetaEnvironment *environment,
-                                  gpointer environment_user_data,
-                                  NMSetting *setting,
-                                  const NMMetaPropertyInfo *property_info,
-                                  const char *value,
-                                  guint32 idx,
-                                  NMVlanPriorityMap map_type,
-                                  GError **error)
-{
-	guint32 num;
+	if (_SET_FCN_DO_RESET_DEFAULT_WITH_SUPPORTS_REMOVE (property_info, modifier, value)) {
+		nm_setting_vlan_clear_priorities (NM_SETTING_VLAN (setting), map_type);
+		return TRUE;
+	}
 
-	/* If value != NULL, remove by value */
-	if (value) {
-		gboolean ret;
-		char **prio_map;
-		gs_free char *v = g_strdup (value);
+	prio_map = _value_strsplit (value, VALUE_STRSPLIT_MODE_ESCAPED_TOKENS_WITH_SPACES, &len);
 
-		prio_map = _parse_vlan_priority_maps (v, map_type, error);
-		if (!prio_map)
+	for (i = 0; i < len; i++) {
+		if (!nm_utils_vlan_priority_map_parse_str (map_type,
+		                                           prio_map[i],
+		                                           _SET_FCN_DO_REMOVE (modifier, value),
+		                                           NULL,
+		                                           NULL,
+		                                           NULL)) {
+			g_set_error (error, 1, 0, _("invalid priority map '%s'"), prio_map[i]);
 			return FALSE;
-		if (prio_map[1]) {
-			_env_warn_fcn (environment, environment_user_data,
-			               NM_META_ENV_WARN_LEVEL_WARN,
-			               N_("only one mapping at a time is supported; taking the first one (%s)"),
-			               prio_map[0]);
 		}
-		ret = nm_setting_vlan_remove_priority_str_by_value (NM_SETTING_VLAN (setting),
-		                                                    map_type,
-		                                                    prio_map[0]);
-
-		if (!ret)
-			g_set_error (error, 1, 0, _("the property doesn't contain mapping '%s'"), prio_map[0]);
-		g_strfreev (prio_map);
-		return ret;
 	}
 
-	/* Else remove by index */
-	num = nm_setting_vlan_get_num_priorities (NM_SETTING_VLAN (setting), map_type);
-	if (num == 0) {
-		g_set_error_literal (error, 1, 0, _("no priority to remove"));
-		return FALSE;
-	}
-	if (idx >= num) {
-		g_set_error (error, 1, 0, _("index '%d' is not in the range of <0-%d>"),
-		             idx, num - 1);
-		return FALSE;
-	}
+	if (_SET_FCN_DO_SET_ALL (modifier, value))
+		nm_setting_vlan_clear_priorities (NM_SETTING_VLAN (setting), map_type);
 
-	nm_setting_vlan_remove_priority (NM_SETTING_VLAN (setting), map_type, idx);
+	for (i = 0; i < len; i++) {
+		if (_SET_FCN_DO_REMOVE (modifier, value)) {
+			nm_setting_vlan_remove_priority_str_by_value (NM_SETTING_VLAN (setting),
+			                                              map_type,
+			                                              prio_map[i]);
+		} else {
+			nm_setting_vlan_add_priority_str (NM_SETTING_VLAN (setting),
+			                                  map_type,
+			                                  prio_map[i]);
+		}
+	}
 	return TRUE;
 }
 
-static gboolean
-_remove_fcn_vlan_ingress_priority_map (ARGS_REMOVE_FCN)
-{
-	return _remove_vlan_xgress_priority_map (environment,
-	                                         environment_user_data,
-	                                         setting,
-	                                         property_info,
-	                                         value,
-	                                         idx,
-	                                         NM_VLAN_INGRESS_MAP,
-	                                         error);
-}
-
-static gboolean
-_remove_fcn_vlan_egress_priority_map (ARGS_REMOVE_FCN)
-{
-	return _remove_vlan_xgress_priority_map (environment,
-	                                         environment_user_data,
-	                                         setting,
-	                                         property_info,
-	                                         value,
-	                                         idx,
-	                                         NM_VLAN_EGRESS_MAP,
-	                                         error);
-}
-
 static gconstpointer
 _get_fcn_vpn_data (ARGS_GET_FCN)
 {
@@ -4433,65 +3936,31 @@ _get_fcn_vpn_secrets (ARGS_GET_FCN)
 	RETURN_STR_TO_FREE (g_string_free (secret_str, FALSE));
 }
 
-static const char *
-_validate_vpn_hash_value (const char *option, const char *value, GError **error)
+static gboolean
+_optionlist_set_fcn_vpn_data (NMSetting *setting,
+                              const char *option,
+                              const char *value,
+                              GError **error)
 {
-	/* nm_setting_vpn_add_data_item() and nm_setting_vpn_add_secret() does not
-	 * allow empty strings */
-	if (!value || !*value) {
-		g_set_error (error, 1, 0, _("'%s' cannot be empty"), option);
-		return NULL;
-	}
-	return value;
+	if (value)
+		nm_setting_vpn_add_data_item (NM_SETTING_VPN (setting), option, value);
+	else
+		nm_setting_vpn_remove_data_item (NM_SETTING_VPN (setting), option);
+	return TRUE;
 }
 
-DEFINE_SETTER_OPTIONS (_set_fcn_vpn_data,
-                       NM_SETTING_VPN,
-                       NMSettingVpn,
-                       nm_setting_vpn_add_data_item,
-                       NULL,
-                       _validate_vpn_hash_value)
-DEFINE_REMOVER_OPTION (_remove_fcn_vpn_data,
-                       NM_SETTING_VPN,
-                       nm_setting_vpn_remove_data_item)
-
-DEFINE_SETTER_OPTIONS (_set_fcn_vpn_secrets,
-                       NM_SETTING_VPN,
-                       NMSettingVpn,
-                       nm_setting_vpn_add_secret,
-                       NULL,
-                       _validate_vpn_hash_value)
-DEFINE_REMOVER_OPTION (_remove_fcn_vpn_secrets,
-                       NM_SETTING_VPN,
-                       nm_setting_vpn_remove_secret)
-
-DEFINE_SETTER_MAC_BLACKLIST (_set_fcn_wired_mac_address_blacklist,
-                             NM_SETTING_WIRED,
-                             nm_setting_wired_add_mac_blacklist_item)
-
 static gboolean
-_validate_and_remove_wired_mac_blacklist_item (NMSettingWired *setting,
-                                              const char *mac,
-                                              GError **error)
+_optionlist_set_fcn_vpn_secrets (NMSetting *setting,
+                                 const char *option,
+                                 const char *value,
+                                 GError **error)
 {
-	gboolean ret;
-	guint8 buf[32];
-
-	if (!nm_utils_hwaddr_aton (mac, buf, ETH_ALEN)) {
-		g_set_error (error, 1, 0, _("'%s' is not a valid MAC address"), mac);
-                return FALSE;
-	}
-
-	ret = nm_setting_wired_remove_mac_blacklist_item_by_value (setting, mac);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain MAC address '%s'"), mac);
-	return ret;
+	if (value)
+		nm_setting_vpn_add_secret (NM_SETTING_VPN (setting), option, value);
+	else
+		nm_setting_vpn_remove_secret (NM_SETTING_VPN (setting), option);
+	return TRUE;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_wired_mac_address_blacklist,
-                               NM_SETTING_WIRED,
-                               nm_setting_wired_get_num_mac_blacklist_items,
-                               nm_setting_wired_remove_mac_blacklist_item,
-                               _validate_and_remove_wired_mac_blacklist_item)
 
 static gboolean
 _set_fcn_wired_s390_subchannels (ARGS_SET_FCN)
@@ -4499,7 +3968,10 @@ _set_fcn_wired_s390_subchannels (ARGS_SET_FCN)
 	gs_free const char **strv = NULL;
 	gsize len;
 
-	strv = nm_utils_strsplit_set (value, " ,\t", FALSE);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
+
+	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"),
@@ -4511,28 +3983,21 @@ _set_fcn_wired_s390_subchannels (ARGS_SET_FCN)
 	return TRUE;
 }
 
-static const char *
-_validate_s390_option_value (const char *option, const char *value, GError **error)
+static gboolean
+_optionlist_set_fcn_wired_s390_options (NMSetting *setting,
+                                        const char *name,
+                                        const char *value,
+                                        GError **error)
 {
-	/*  nm_setting_wired_add_s390_option() requires value len in <1,199> interval */
-	if (!value || !*value || strlen (value) >= 200) {
-		g_set_error (error, 1, 0, _("'%s' string value should consist of 1 - 199 characters"), option);
-		return NULL;
-	}
-	return value;
+	if (value)
+		nm_setting_wired_add_s390_option (NM_SETTING_WIRED (setting), name, value);
+	else
+		nm_setting_wired_remove_s390_option (NM_SETTING_WIRED (setting), name);
+	return TRUE;
 }
-DEFINE_SETTER_OPTIONS (_set_fcn_wired_s390_options,
-                       NM_SETTING_WIRED,
-                       NMSettingWired,
-                       nm_setting_wired_add_s390_option,
-                       nm_setting_wired_get_valid_s390_options,
-                       _validate_s390_option_value)
-DEFINE_REMOVER_OPTION (_remove_fcn_wired_s390_options,
-                       NM_SETTING_WIRED,
-                       nm_setting_wired_remove_s390_option)
 
 static const char *const*
-_values_fcn__wired_s390_options (ARGS_VALUES_FCN)
+_values_fcn_wired_s390_options (ARGS_VALUES_FCN)
 {
 	return nm_setting_wired_get_valid_s390_options (NULL);
 }
@@ -4579,7 +4044,8 @@ _set_fcn_wireless_channel (ARGS_SET_FCN)
 {
 	unsigned long chan_int;
 
-	nm_assert (!error || !*error);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value))
+		return _gobject_property_reset_default (setting, property_info->property_name);
 
 	if (!nmc_string_to_uint (value, FALSE, 0, 0, &chan_int)) {
 		g_set_error (error, 1, 0, _("'%s' is not a valid channel"), value);
@@ -4596,33 +4062,21 @@ _set_fcn_wireless_channel (ARGS_SET_FCN)
 	return TRUE;
 }
 
-DEFINE_SETTER_MAC_BLACKLIST (_set_fcn_wireless_mac_address_blacklist,
-                             NM_SETTING_WIRELESS,
-                             nm_setting_wireless_add_mac_blacklist_item)
-
-static gboolean
-_validate_and_remove_wifi_mac_blacklist_item (NMSettingWireless *setting,
-                                              const char *mac,
-                                              GError **error)
+static const char *
+_multilist_validate2_fcn_mac_addr (NMSetting *setting,
+                                   const char *item,
+                                   GError **error)
 {
-	gboolean ret;
-	guint8 buf[32];
+	guint8 buf[ETH_ALEN];
 
-	if (!nm_utils_hwaddr_aton (mac, buf, ETH_ALEN)) {
-		g_set_error (error, 1, 0, _("'%s' is not a valid MAC address"), mac);
-                return FALSE;
+	if (!nm_utils_hwaddr_aton (item, buf, ETH_ALEN)) {
+		nm_utils_error_set (error, NM_UTILS_ERROR_INVALID_ARGUMENT,
+		                    _("'%s' is not a valid MAC address"), item);
+		return NULL;
 	}
 
-	ret = nm_setting_wireless_remove_mac_blacklist_item_by_value (setting, mac);
-	if (!ret)
-		g_set_error (error, 1, 0, _("the property doesn't contain MAC address '%s'"), mac);
-	return ret;
+	return item;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_wireless_mac_address_blacklist,
-                               NM_SETTING_WIRELESS,
-                               nm_setting_wireless_get_num_mac_blacklist_items,
-                               nm_setting_wireless_remove_mac_blacklist_item,
-                               _validate_and_remove_wifi_mac_blacklist_item)
 
 static gconstpointer
 _get_fcn_wireless_security_wep_key (ARGS_GET_FCN)
@@ -4644,114 +4098,6 @@ _get_fcn_wireless_security_wep_key (ARGS_GET_FCN)
 	RETURN_STR_TO_FREE (key);
 }
 
-static const char *wifi_sec_valid_protos[] = { "wpa", "rsn", NULL };
-
-DEFINE_SETTER_STR_LIST_MULTI (check_and_add_wifi_sec_proto,
-                              NM_SETTING_WIRELESS_SECURITY,
-                              nm_setting_wireless_security_add_proto)
-
-static gboolean
-_set_fcn_wireless_security_proto (ARGS_SET_FCN)
-{
-	return check_and_add_wifi_sec_proto (setting, property_info->property_name, value, wifi_sec_valid_protos, error);
-}
-
-static gboolean
-_validate_and_remove_wifi_sec_proto (NMSettingWirelessSecurity *setting,
-                                     const char *proto,
-                                     GError **error)
-{
-	gboolean ret;
-	const char *valid;
-
-	valid = nmc_string_is_valid (proto, wifi_sec_valid_protos, error);
-	if (!valid)
-		return FALSE;
-
-	ret = nm_setting_wireless_security_remove_proto_by_value (setting, proto);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain protocol '%s'"), proto);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_wireless_security_proto,
-                               NM_SETTING_WIRELESS_SECURITY,
-                               nm_setting_wireless_security_get_num_protos,
-                               nm_setting_wireless_security_remove_proto,
-                               _validate_and_remove_wifi_sec_proto)
-
-static const char *wifi_sec_valid_pairwises[] = { "tkip", "ccmp", NULL };
-
-DEFINE_SETTER_STR_LIST_MULTI (check_and_add_wifi_sec_pairwise,
-                              NM_SETTING_WIRELESS_SECURITY,
-                              nm_setting_wireless_security_add_pairwise)
-
-static gboolean
-_set_fcn_wireless_security_pairwise (ARGS_SET_FCN)
-{
-	return check_and_add_wifi_sec_pairwise (setting, property_info->property_name, value, wifi_sec_valid_pairwises, error);
-}
-
-static gboolean
-_validate_and_remove_wifi_sec_pairwise (NMSettingWirelessSecurity *setting,
-                                        const char *pairwise,
-                                        GError **error)
-{
-	gboolean ret;
-	const char *valid;
-
-	valid = nmc_string_is_valid (pairwise, wifi_sec_valid_pairwises, error);
-	if (!valid)
-		return FALSE;
-
-	ret = nm_setting_wireless_security_remove_pairwise_by_value (setting, pairwise);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain protocol '%s'"), pairwise);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_wireless_security_pairwise,
-                               NM_SETTING_WIRELESS_SECURITY,
-                               nm_setting_wireless_security_get_num_pairwise,
-                               nm_setting_wireless_security_remove_pairwise,
-                               _validate_and_remove_wifi_sec_pairwise)
-
-static const char *wifi_sec_valid_groups[] = { "wep40", "wep104", "tkip", "ccmp", NULL };
-
-DEFINE_SETTER_STR_LIST_MULTI (check_and_add_wifi_sec_group,
-                              NM_SETTING_WIRELESS_SECURITY,
-                              nm_setting_wireless_security_add_group)
-
-static gboolean
-_set_fcn_wireless_security_group (ARGS_SET_FCN)
-{
-	return check_and_add_wifi_sec_group (setting, property_info->property_name, value, wifi_sec_valid_groups, error);
-}
-
-static gboolean
-_validate_and_remove_wifi_sec_group (NMSettingWirelessSecurity *setting,
-                                     const char *group,
-                                     GError **error)
-{
-	gboolean ret;
-	const char *valid;
-
-	valid = nmc_string_is_valid (group, wifi_sec_valid_groups, error);
-	if (!valid)
-		return FALSE;
-
-	ret = nm_setting_wireless_security_remove_group_by_value (setting, group);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain protocol '%s'"), group);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_wireless_security_group,
-                               NM_SETTING_WIRELESS_SECURITY,
-                               nm_setting_wireless_security_get_num_groups,
-                               nm_setting_wireless_security_remove_group,
-                               _validate_and_remove_wifi_sec_group)
-
 static gboolean
 _set_fcn_wireless_wep_key (ARGS_SET_FCN)
 {
@@ -4761,6 +4107,11 @@ _set_fcn_wireless_wep_key (ARGS_SET_FCN)
 
 	nm_assert (!error || !*error);
 
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value)) {
+		g_object_set (setting, property_info->property_name, NULL, NULL);
+		return TRUE;
+	}
+
 	/* Get currently set type */
 	type = nm_setting_wireless_security_get_wep_key_type (NM_SETTING_WIRELESS_SECURITY (setting));
 
@@ -4872,11 +4223,16 @@ _get_fcn_ethtool (ARGS_GET_FCN)
 static gboolean
 _set_fcn_ethtool (ARGS_SET_FCN)
 {
-	gs_free char *value_clone = NULL;
+	gs_free char *value_to_free = NULL;
 	NMTernary val;
 	NMEthtoolID ethtool_id = property_info->property_typ_data->subtype.ethtool.ethtool_id;
 
-	value = nm_strstrip_avoid_copy (value, &value_clone);
+	if (_SET_FCN_DO_RESET_DEFAULT (property_info, modifier, value)) {
+		val = NM_TERNARY_DEFAULT;
+		goto set;
+	}
+
+	value = nm_strstrip_avoid_copy_a (300, value, &value_to_free);
 
 	if (NM_IN_STRSET (value, "1", "yes", "true", "on"))
 		val = NM_TERNARY_TRUE;
@@ -4891,6 +4247,7 @@ _set_fcn_ethtool (ARGS_SET_FCN)
 		return FALSE;
 	}
 
+set:
 	nm_setting_ethtool_set_feature (NM_SETTING_ETHTOOL (setting),
 	                                nm_ethtool_data[ethtool_id]->optname,
 	                                val);
@@ -5082,12 +4439,58 @@ static const NMMetaPropertyType _pt_gobject_devices = {
 	.complete_fcn =                 _complete_fcn_gobject_devices,
 };
 
+static const NMMetaPropertyType _pt_dcb_flags = {
+	.get_fcn =                      _get_fcn_dcb_flags,
+	.set_fcn =                      _set_fcn_dcb_flags,
+};
+
+static const NMMetaPropertyType _pt_dcb_bool = {
+	.get_fcn =                      _get_fcn_dcb_bool,
+	.set_fcn =                      _set_fcn_dcb_bool,
+};
+
+static const NMMetaPropertyType _pt_dcb = {
+	.get_fcn =                      _get_fcn_dcb,
+	.set_fcn =                      _set_fcn_dcb,
+};
+
+static const NMMetaPropertyType _pt_cert_8021x = {
+	.get_fcn =                      _get_fcn_cert_8021x,
+	.set_fcn =                      _set_fcn_cert_8021x,
+};
+
 static const NMMetaPropertyType _pt_ethtool = {
 	.get_fcn =                      _get_fcn_ethtool,
 	.set_fcn =                      _set_fcn_ethtool,
 	.complete_fcn =                 _complete_fcn_ethtool,
 };
 
+static const NMMetaPropertyType _pt_multilist = {
+	.get_fcn =                      _get_fcn_gobject,
+	.set_fcn =                      _set_fcn_multilist,
+	.set_supports_remove =          TRUE,
+};
+
+static const NMMetaPropertyType _pt_objlist = {
+	.get_fcn =                  _get_fcn_objlist,
+	.set_fcn =                  _set_fcn_objlist,
+	.set_supports_remove =      TRUE,
+};
+
+#define MULTILIST_GET_NUM_FCN_U32(type, func)       (((func) == ((guint32  (*) (type *              )) (func))) ? ((guint32  (*) (NMSetting *              )) (func)) : NULL)
+#define MULTILIST_GET_NUM_FCN_U(type, func)         (((func) == ((guint    (*) (type *              )) (func))) ? ((guint    (*) (NMSetting *              )) (func)) : NULL)
+#define MULTILIST_ADD_FCN(type, func)               (((func) == ((gboolean (*) (type *, const char *)) (func))) ? ((gboolean (*) (NMSetting *, const char *)) (func)) : NULL)
+#define MULTILIST_ADD2_FCN(type, func)              (((func) == ((void     (*) (type *, const char *)) (func))) ? ((void     (*) (NMSetting *, const char *)) (func)) : NULL)
+#define MULTILIST_REMOVE_BY_IDX_FCN_U32(type, func) (((func) == ((void     (*) (type *, guint32     )) (func))) ? ((void     (*) (NMSetting *, guint32     )) (func)) : NULL)
+#define MULTILIST_REMOVE_BY_IDX_FCN_S(type, func)   (((func) == ((void     (*) (type *, int         )) (func))) ? ((void     (*) (NMSetting *, int         )) (func)) : NULL)
+#define MULTILIST_REMOVE_BY_IDX_FCN_U(type, func)   (((func) == ((void     (*) (type *, guint       )) (func))) ? ((void     (*) (NMSetting *, guint       )) (func)) : NULL)
+#define MULTILIST_REMOVE_BY_VALUE_FCN(type, func)   (((func) == ((gboolean (*) (type *, const char *)) (func))) ? ((gboolean (*) (NMSetting *, const char *)) (func)) : NULL)
+
+#define OBJLIST_GET_NUM_FCN(type, func)             (((func) == ((guint    (*) (type *              )) (func))) ? ((guint    (*) (NMSetting *              )) (func)) : NULL)
+#define OBJLIST_CLEAR_ALL_FCN(type, func)           (((func) == ((void     (*) (type *              )) (func))) ? ((void     (*) (NMSetting *              )) (func)) : NULL)
+#define OBJLIST_REMOVE_BY_IDX_FCN_U(type, func)     (((func) == ((void     (*) (type *, guint       )) (func))) ? ((void     (*) (NMSetting *, guint       )) (func)) : NULL)
+#define OBJLIST_REMOVE_BY_IDX_FCN_S(type, func)     (((func) == ((void     (*) (type *, int         )) (func))) ? ((void     (*) (NMSetting *, int         )) (func)) : NULL)
+
 /*****************************************************************************/
 
 #include "settings-docs.h"
@@ -5112,11 +4515,6 @@ static const NMMetaPropertyType _pt_ethtool = {
 #define ENUM_VALUE_INFOS(...)  (((const NMUtilsEnumValueInfo    []) { __VA_ARGS__ { .nick = NULL, }, }))
 #define INT_VALUE_INFOS(...)   (((const NMMetaUtilsIntValueInfo []) { __VA_ARGS__ { .nick = NULL, }, }))
 
-#define GET_FCN_WITH_DEFAULT(type, func) \
-	/* macro that returns @func as const (gboolean(*)(NMSetting*)) type, but checks
-	 * that the actual type is (gboolean(*)(type *)). */ \
-	((gboolean (*) (NMSetting *)) ((sizeof (func == ((gboolean (*) (type *)) func))) ? func : func) )
-
 #define MTU_GET_FCN(type, func) \
 	/* macro that returns @func as const (guint32(*)(NMSetting*)) type, but checks
 	 * that the actual type is (guint32(*)(type *)). */ \
@@ -5174,12 +4572,15 @@ static const NMMetaPropertyInfo *const property_infos_6LOWPAN[] = {
 #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_802_1X
 static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_EAP,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_802_1x_eap,
-			.remove_fcn =               _remove_fcn_802_1x_eap,
-		),
+		.property_type =                &_pt_multilist,
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSetting8021x, nm_setting_802_1x_get_num_eap_methods),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSetting8021x, nm_setting_802_1x_add_eap_method),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_eap_method),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_eap_method_by_value),
+				.strsplit_plain =       TRUE,
+			),
 			.values_static =            NM_MAKE_STRV ("leap", "md5", "tls", "peap", "ttls", "sim", "fast", "pwd"),
 		),
 	),
@@ -5198,9 +4599,9 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 		       "  [file://]<file path>\n"
 		       "Note that nmcli does not support specifying certificates as raw blob data.\n"
 		       "Example: /home/cimrman/cacert.crt\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_802_1x_ca_cert,
-			.set_fcn =                  _set_fcn_802_1x_ca_cert,
+		.property_type =                &_pt_cert_8021x,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x,
+			.scheme_type =              NM_SETTING_802_1X_SCHEME_TYPE_CA_CERT,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CA_CERT_PASSWORD,
@@ -5217,10 +4618,15 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 		.property_type =                &_pt_gobject_string,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_ALTSUBJECT_MATCHES,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_802_1x_altsubject_matches,
-			.remove_fcn =               _remove_fcn_802_1x_altsubject_matches,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSetting8021x, nm_setting_802_1x_get_num_altsubject_matches),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSetting8021x, nm_setting_802_1x_add_altsubject_match),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_altsubject_match),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_altsubject_match_by_value),
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH,
@@ -5232,9 +4638,9 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 		       "  [file://]<file path>\n"
 		       "Note that nmcli does not support specifying certificates as raw blob data.\n"
 		       "Example: /home/cimrman/jara.crt\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_802_1x_client_cert,
-			.set_fcn =                  _set_fcn_802_1x_client_cert,
+		.property_type =                &_pt_cert_8021x,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x,
+			.scheme_type =              NM_SETTING_802_1X_SCHEME_TYPE_CLIENT_CERT,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_CLIENT_CERT_PASSWORD,
@@ -5290,9 +4696,9 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 		       "  [file://]<file path>\n"
 		       "Note that nmcli does not support specifying certificates as raw blob data.\n"
 		       "Example: /home/cimrman/ca-zweite-phase.crt\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_802_1x_phase2_ca_cert,
-			.set_fcn =                  _set_fcn_802_1x_phase2_ca_cert,
+		.property_type =                &_pt_cert_8021x,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x,
+			.scheme_type =              NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CA_CERT,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD,
@@ -5309,10 +4715,15 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 		.property_type =                &_pt_gobject_string,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_802_1x_phase2_altsubject_matches,
-			.remove_fcn =               _remove_fcn_802_1x_phase2_altsubject_matches,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSetting8021x, nm_setting_802_1x_get_num_phase2_altsubject_matches),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSetting8021x, nm_setting_802_1x_add_phase2_altsubject_match),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSetting8021x, nm_setting_802_1x_remove_phase2_altsubject_match),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSetting8021x, nm_setting_802_1x_remove_phase2_altsubject_match_by_value),
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH,
@@ -5325,9 +4736,9 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 		       "  [file://]<file path>\n"
 		       "Note that nmcli does not support specifying certificates as raw blob data.\n"
 		       "Example: /home/cimrman/jara-zweite-phase.crt\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_802_1x_phase2_client_cert,
-			.set_fcn =                  _set_fcn_802_1x_phase2_client_cert,
+		.property_type =                &_pt_cert_8021x,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x,
+			.scheme_type =              NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_CLIENT_CERT,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD,
@@ -5368,9 +4779,9 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 		       "  [file://]<file path> [<password>]\n"
 		       "Note that nmcli does not support specifying private key as raw blob data.\n"
 		       "Example: /home/cimrman/jara-priv-key Dardanely\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_802_1x_private_key,
-			.set_fcn =                  _set_fcn_802_1x_private_key,
+		.property_type =                &_pt_cert_8021x,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x,
+			.scheme_type =              NM_SETTING_802_1X_SCHEME_TYPE_PRIVATE_KEY,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD,
@@ -5386,9 +4797,9 @@ static const NMMetaPropertyInfo *const property_infos_802_1X[] = {
 		       "  [file://]<file path> [<password>]\n"
 		       "Note that nmcli does not support specifying private key as raw blob data.\n"
 		       "Example: /home/cimrman/jara-priv-key Dardanely\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_802_1x_phase2_private_key,
-			.set_fcn =                  _set_fcn_802_1x_phase2_private_key,
+		.property_type =                &_pt_cert_8021x,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (cert_8021x,
+			.scheme_type =              NM_SETTING_802_1X_SCHEME_TYPE_PHASE2_PRIVATE_KEY,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD,
@@ -5498,11 +4909,14 @@ static const NMMetaPropertyInfo property_info_BOND_OPTIONS =
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.describe_fcn =             _describe_fcn_bond_options,
 			.get_fcn =                  _get_fcn_bond_options,
-			.set_fcn =                  _set_fcn_bond_options,
-			.remove_fcn =               _remove_fcn_bond_options,
+			.set_fcn =                  _set_fcn_optionlist,
+			.set_supports_remove =      TRUE,
 			.values_fcn =               _values_fcn_bond_options,
 		),
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (optionlist,
+				.set_fcn =              _optionlist_set_fcn_bond_options,
+			),
 			.nested =                   &nm_meta_property_typ_data_bond,
 		),
 	);
@@ -5569,6 +4983,23 @@ static const NMMetaPropertyInfo *const property_infos_BRIDGE[] = {
 		.prompt =                       N_("Enable IGMP snooping [no]"),
 		.property_type =                &_pt_gobject_bool,
 	),
+	PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_VLAN_FILTERING,
+		.property_type =                &_pt_gobject_bool,
+	),
+	PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID,
+		.property_type =                &_pt_gobject_int,
+	),
+	PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_VLANS,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingBridge, nm_setting_bridge_get_num_vlans),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingBridge, nm_setting_bridge_clear_vlans),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_bridge_vlans,
+				.set_fcn =              _objlist_set_fcn_bridge_vlans,
+			),
+		),
+	),
 	NULL
 };
 
@@ -5593,6 +5024,17 @@ static const NMMetaPropertyInfo *const property_infos_BRIDGE_PORT[] = {
 		.prompt =                       N_("Hairpin [no]"),
 		.property_type =                &_pt_gobject_bool,
 	),
+	PROPERTY_INFO_WITH_DESC (NM_SETTING_BRIDGE_PORT_VLANS,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingBridgePort, nm_setting_bridge_port_get_num_vlans),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingBridgePort, nm_setting_bridge_port_clear_vlans),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_bridge_vlans,
+				.set_fcn =              _objlist_set_fcn_bridge_vlans,
+			),
+		),
+	),
 	NULL
 };
 
@@ -5714,8 +5156,18 @@ static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = {
 		        "Example: alice bob charlie\n"),
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_connection_permissions,
-			.set_fcn =                  _set_fcn_connection_permissions,
-			.remove_fcn =               _remove_fcn_connection_permissions,
+			.set_fcn =                  _set_fcn_multilist,
+			.set_supports_remove =      TRUE,
+		),
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSettingConnection, nm_setting_connection_get_num_permissions),
+				.add_fcn =              _multilist_set_fcn_connection_permissions,
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingConnection, nm_setting_connection_remove_permission),
+				.remove_by_value_fcn =  _multilist_remove_by_value_fcn_connection_permissions,
+				.validate2_fcn =        _multilist_validate2_fcn_connection_permissions,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_ZONE,
@@ -5756,10 +5208,16 @@ static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = {
 		       "VPNs as secondary connections at the moment.\n"
 		       "The items can be separated by commas or spaces.\n\n"
 		       "Example: private-openvpn, fe6ba5d8-c2fc-4aae-b2e3-97efddd8d9a7\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_connection_secondaries,
-			.remove_fcn =               _remove_fcn_connection_secondaries,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSettingConnection, nm_setting_connection_get_num_secondaries),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingConnection, nm_setting_connection_add_secondary),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingConnection, nm_setting_connection_remove_secondary),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingConnection, nm_setting_connection_remove_secondary_by_value),
+				.validate2_fcn =        _multilist_validate2_fcn_uuid,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT,
@@ -5819,10 +5277,7 @@ static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = {
 #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_DCB
 static const NMMetaPropertyInfo *const property_infos_DCB[] = {
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FCOE_FLAGS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_app_fcoe_flags,
-			.set_fcn =                  _set_fcn_dcb_flags,
-		),
+		.property_type =                &_pt_dcb_flags,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FCOE_PRIORITY,
 		DEFINE_DCB_PROPRITY_PROPERTY_TYPE
@@ -5835,69 +5290,73 @@ static const NMMetaPropertyInfo *const property_infos_DCB[] = {
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_ISCSI_FLAGS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_app_iscsi_flags,
-			.set_fcn =                  _set_fcn_dcb_flags,
-		),
+		.property_type =                &_pt_dcb_flags,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_ISCSI_PRIORITY,
 		DEFINE_DCB_PROPRITY_PROPERTY_TYPE
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FIP_FLAGS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_app_fip_flags,
-			.set_fcn =                  _set_fcn_dcb_flags,
-		),
+		.property_type =                &_pt_dcb_flags,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_APP_FIP_PRIORITY,
 		DEFINE_DCB_PROPRITY_PROPERTY_TYPE
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_priority_flow_control_flags,
-			.set_fcn =                  _set_fcn_dcb_flags,
-		),
+		.property_type =                &_pt_dcb_flags,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_FLOW_CONTROL,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_priority_flow_control,
-			.set_fcn =                  _set_fcn_dcb_priority_flow_control,
+		.property_type =                &_pt_dcb_bool,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb_bool,
+			.get_fcn                    = nm_setting_dcb_get_priority_flow_control,
+			.set_fcn                    = nm_setting_dcb_set_priority_flow_control,
+			.with_flow_control_flags    = TRUE,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_GROUP_FLAGS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_priority_group_flags,
-			.set_fcn =                  _set_fcn_dcb_flags,
-		),
+		.property_type =                &_pt_dcb_flags,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_GROUP_ID,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_priority_group_id,
-			.set_fcn =                  _set_fcn_dcb_priority_group_id,
+		.property_type =                &_pt_dcb,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb,
+			.get_fcn =                  nm_setting_dcb_get_priority_group_id,
+			.set_fcn =                  nm_setting_dcb_set_priority_group_id,
+			.max =                      7,
+			.other =                    15,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_priority_group_bandwidth,
-			.set_fcn =                  _set_fcn_dcb_priority_group_bandwidth,
+		.property_type =                &_pt_dcb,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb,
+			.get_fcn =                  nm_setting_dcb_get_priority_group_bandwidth,
+			.set_fcn =                  nm_setting_dcb_set_priority_group_bandwidth,
+			.max =                      100,
+			.other =                    0,
+			.is_percent =               TRUE,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_BANDWIDTH,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_priority_bandwidth,
-			.set_fcn =                  _set_fcn_dcb_priority_bandwidth,
+		.property_type =                &_pt_dcb,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb,
+			.get_fcn =                  nm_setting_dcb_get_priority_bandwidth,
+			.set_fcn =                  nm_setting_dcb_set_priority_bandwidth,
+			.max =                      100,
+			.other =                    0,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_priority_strict,
-			.set_fcn =                  _set_fcn_dcb_priority_strict,
+		.property_type =                &_pt_dcb_bool,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb_bool,
+			.get_fcn                    = nm_setting_dcb_get_priority_strict_bandwidth,
+			.set_fcn                    = nm_setting_dcb_set_priority_strict_bandwidth,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_dcb_priority_traffic_class,
-			.set_fcn =                  _set_fcn_dcb_priority_traffic_class,
+		.property_type =                &_pt_dcb,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (dcb,
+			.get_fcn =                  nm_setting_dcb_get_priority_traffic_class,
+			.set_fcn =                  nm_setting_dcb_set_priority_traffic_class,
+			.max =                      7,
+			.other =                    0,
 		),
 	),
 	NULL
@@ -5994,7 +5453,6 @@ static const NMMetaPropertyInfo *const property_infos_GSM[] = {
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_APN,
 		.is_cli_option =                TRUE,
 		.property_alias =               "apn",
-		.inf_flags =                    NM_META_PROPERTY_INF_FLAG_REQD,
 		.prompt =                       N_("APN"),
 		.property_type =                &_pt_gobject_string,
 	),
@@ -6090,37 +5548,56 @@ static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = {
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_METHOD, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_METHOD,
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip4_config_method,
+			.set_fcn =                  _set_fcn_ip_config_method,
 		),
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
-			.values_static =            ipv4_valid_methods,
+			.values_static =            NM_MAKE_STRV (NM_SETTING_IP4_CONFIG_METHOD_AUTO,
+			                                          NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL,
+			                                          NM_SETTING_IP4_CONFIG_METHOD_MANUAL,
+			                                          NM_SETTING_IP4_CONFIG_METHOD_SHARED,
+			                                          NM_SETTING_IP4_CONFIG_METHOD_DISABLED),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS,
 		.describe_message =
 		    N_("Enter a list of IPv4 addresses of DNS servers.\n\n"
 		       "Example: 8.8.8.8, 8.8.4.4\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip4_config_dns,
-			.remove_fcn =               _remove_fcn_ipv4_config_dns,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u =        MULTILIST_GET_NUM_FCN_U       (NMSettingIPConfig, nm_setting_ip_config_get_num_dns),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingIPConfig, nm_setting_ip_config_add_dns),
+				.remove_by_idx_fcn_s =  MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_by_value),
+				.validate2_fcn =        _multilist_validate2_fcn_ip_config_dns,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_SEARCH, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_SEARCH,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip_config_dns_search,
-			.remove_fcn =               _remove_fcn_ip_config_dns_search,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u =        MULTILIST_GET_NUM_FCN_U       (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_searches),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingIPConfig, nm_setting_ip_config_add_dns_search),
+				.remove_by_idx_fcn_s =  MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search_by_value),
+				.validate_fcn =         _multilist_validate_fcn_is_domain,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_OPTIONS, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_OPTIONS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_nmc_with_default,
-			.set_fcn =                  _set_fcn_ip_config_dns_options,
-			.remove_fcn =               _remove_fcn_ip_config_dns_options,
-		),
-		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (get_with_default,
-			.fcn =                      GET_FCN_WITH_DEFAULT (NMSettingIPConfig, _dns_options_is_default),
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u =        MULTILIST_GET_NUM_FCN_U       (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_options),
+				.add_fcn =              _multilist_add_fcn_ip_config_dns_options,
+				.remove_by_idx_fcn_s =  MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option_by_value),
+				.strsplit_plain =       TRUE,
+			),
+			.is_default_fcn =           _is_default_func_ip_config_dns_options,
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_PRIORITY, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_PRIORITY,
@@ -6136,10 +5613,16 @@ static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = {
 		       "  ip[/prefix], ip[/prefix],...\n"
 		       "Missing prefix is regarded as prefix of 32.\n\n"
 		       "Example: 192.168.1.5/24, 10.0.0.11/24\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_ip_config_addresses,
-			.set_fcn =                  _set_fcn_ip4_config_addresses,
-			.remove_fcn =               _remove_fcn_ipv4_config_addresses,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingIPConfig, nm_setting_ip_config_get_num_addresses),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingIPConfig, nm_setting_ip_config_clear_addresses),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_ip_config_addresses,
+				.set_fcn =              _objlist_set_fcn_ip_config_addresses,
+				.remove_by_idx_fcn_s =  OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_address),
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_GATEWAY, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_GATEWAY,
@@ -6148,7 +5631,7 @@ static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = {
 		.prompt =                       N_("IPv4 gateway [none]"),
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip4_config_gateway,
+			.set_fcn =                  _set_fcn_ip_config_gateway,
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTES, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTES,
@@ -6160,10 +5643,17 @@ static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = {
 		       "Missing metric means default (NM/kernel will set a default value).\n\n"
 		       "Examples: 192.168.2.0/24 192.168.2.1 3, 10.1.0.0/16 10.0.0.254\n"
 		       "          10.1.2.0/24\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_ip_config_routes,
-			.set_fcn =                  _set_fcn_ip4_config_routes,
-			.remove_fcn =               _remove_fcn_ipv4_config_routes,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingIPConfig, nm_setting_ip_config_get_num_routes),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingIPConfig, nm_setting_ip_config_clear_routes),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_ip_config_routes,
+				.set_fcn =              _objlist_set_fcn_ip_config_routes,
+				.remove_by_idx_fcn_s =  OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_route),
+				.delimit_pretty_with_semicolon = TRUE,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTE_METRIC, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ROUTE_METRIC,
@@ -6184,6 +5674,22 @@ static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = {
 			),
 		),
 	),
+	PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTING_RULES, NULL,
+		.describe_message =
+		    N_("Enter a list of IPv4 routing rules formatted as:\n"
+		       "  priority [prio] [from [src]] [to [dst]], ,...\n"
+		       "\n"),
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingIPConfig, nm_setting_ip_config_get_num_routing_rules),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingIPConfig, nm_setting_ip_config_clear_routing_rules),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_ip_config_routing_rules,
+				.set_fcn =              _objlist_set_fcn_ip_config_routing_rules,
+				.remove_by_idx_fcn_u =  OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingIPConfig, nm_setting_ip_config_remove_routing_rule),
+			),
+		),
+	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES,
 		.property_type =                &_pt_gobject_bool,
 	),
@@ -6247,10 +5753,15 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_METHOD, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_METHOD,
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip6_config_method,
+			.set_fcn =                  _set_fcn_ip_config_method,
 		),
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
-			.values_static =            ipv6_valid_methods,
+			.values_static =            NM_MAKE_STRV (NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+			                                          NM_SETTING_IP6_CONFIG_METHOD_AUTO,
+			                                          NM_SETTING_IP6_CONFIG_METHOD_DHCP,
+			                                          NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL,
+			                                          NM_SETTING_IP6_CONFIG_METHOD_MANUAL,
+			                                          NM_SETTING_IP6_CONFIG_METHOD_SHARED),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS,
@@ -6263,27 +5774,42 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
 		       "all other IPv6 configuration methods, these DNS "
 		       "servers are used as the only DNS servers for this connection.\n\n"
 		       "Example: 2607:f0d0:1002:51::4, 2607:f0d0:1002:51::1\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip6_config_dns,
-			.remove_fcn =               _remove_fcn_ipv6_config_dns,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u =        MULTILIST_GET_NUM_FCN_U       (NMSettingIPConfig, nm_setting_ip_config_get_num_dns),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingIPConfig, nm_setting_ip_config_add_dns),
+				.remove_by_idx_fcn_s =  MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_by_value),
+				.validate2_fcn =        _multilist_validate2_fcn_ip_config_dns,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_SEARCH, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_SEARCH,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip_config_dns_search,
-			.remove_fcn =               _remove_fcn_ip_config_dns_search,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u =        MULTILIST_GET_NUM_FCN_U       (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_searches),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingIPConfig, nm_setting_ip_config_add_dns_search),
+				.remove_by_idx_fcn_s =  MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_search_by_value),
+				.validate_fcn =         _multilist_validate_fcn_is_domain,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_OPTIONS, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_OPTIONS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_nmc_with_default,
-			.set_fcn =                  _set_fcn_ip_config_dns_options,
-			.remove_fcn =               _remove_fcn_ip_config_dns_options,
-		),
-		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (get_with_default,
-			.fcn =     GET_FCN_WITH_DEFAULT (NMSettingIPConfig, _dns_options_is_default),
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u =        MULTILIST_GET_NUM_FCN_U       (NMSettingIPConfig, nm_setting_ip_config_get_num_dns_options),
+				.add_fcn =              _multilist_add_fcn_ip_config_dns_options,
+				.remove_by_idx_fcn_s =  MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingIPConfig, nm_setting_ip_config_remove_dns_option_by_value),
+				.strsplit_plain =       TRUE,
+			),
+			.is_default_fcn =           _is_default_func_ip_config_dns_options,
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_PRIORITY, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_PRIORITY,
@@ -6299,10 +5825,16 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
 		       "  ip[/prefix], ip[/prefix],...\n"
 		       "Missing prefix is regarded as prefix of 128.\n\n"
 		       "Example: 2607:f0d0:1002:51::4/64, 1050:0:0:0:5:600:300c:326b\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_ip_config_addresses,
-			.set_fcn =                  _set_fcn_ip6_config_addresses,
-			.remove_fcn =               _remove_fcn_ipv6_config_addresses,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingIPConfig, nm_setting_ip_config_get_num_addresses),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingIPConfig, nm_setting_ip_config_clear_addresses),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_ip_config_addresses,
+				.set_fcn =              _objlist_set_fcn_ip_config_addresses,
+				.remove_by_idx_fcn_s =  OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_address),
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_GATEWAY, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_GATEWAY,
@@ -6311,7 +5843,7 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
 		.prompt =                       N_("IPv6 gateway [none]"),
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip6_config_gateway,
+			.set_fcn =                  _set_fcn_ip_config_gateway,
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTES, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTES,
@@ -6323,10 +5855,17 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
 		       "Missing metric means default (NM/kernel will set a default value).\n\n"
 		       "Examples: 2001:db8:beef:2::/64 2001:db8:beef::2, 2001:db8:beef:3::/64 2001:db8:beef::3 2\n"
 		       "          abbe::/64 55\n"),
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_ip_config_routes,
-			.set_fcn =                  _set_fcn_ip6_config_routes,
-			.remove_fcn =               _remove_fcn_ipv6_config_routes,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingIPConfig, nm_setting_ip_config_get_num_routes),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingIPConfig, nm_setting_ip_config_clear_routes),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_ip_config_routes,
+				.set_fcn =              _objlist_set_fcn_ip_config_routes,
+				.remove_by_idx_fcn_s =  OBJLIST_REMOVE_BY_IDX_FCN_S (NMSettingIPConfig, nm_setting_ip_config_remove_route),
+				.delimit_pretty_with_semicolon = TRUE,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTE_METRIC, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ROUTE_METRIC,
@@ -6347,6 +5886,22 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
 			),
 		),
 	),
+	PROPERTY_INFO (NM_SETTING_IP_CONFIG_ROUTING_RULES, NULL,
+		.describe_message =
+		    N_("Enter a list of IPv6 routing rules formatted as:\n"
+		       "  priority [prio] [from [src]] [to [dst]], ,...\n"
+		       "\n"),
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingIPConfig, nm_setting_ip_config_get_num_routing_rules),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingIPConfig, nm_setting_ip_config_clear_routing_rules),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_ip_config_routing_rules,
+				.set_fcn =              _objlist_set_fcn_ip_config_routing_rules,
+				.remove_by_idx_fcn_u =  OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingIPConfig, nm_setting_ip_config_remove_routing_rule),
+			),
+		),
+	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES,
 		.property_type =                &_pt_gobject_bool,
 	),
@@ -6581,8 +6136,17 @@ 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,
+			.set_fcn =                  _set_fcn_multilist,
+			.set_supports_remove =      TRUE,
+		),
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u   =      MULTILIST_GET_NUM_FCN_U       (NMSettingMatch, nm_setting_match_get_num_interface_names),
+				.add2_fcn =             MULTILIST_ADD2_FCN            (NMSettingMatch, nm_setting_match_add_interface_name),
+				.remove_by_idx_fcn_s =  MULTILIST_REMOVE_BY_IDX_FCN_S (NMSettingMatch, nm_setting_match_remove_interface_name),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingMatch, nm_setting_match_remove_interface_name_by_value),
+				.strsplit_with_spaces = TRUE,
+			),
 		),
 	),
 	NULL
@@ -6893,10 +6457,15 @@ static const NMMetaPropertyInfo *const property_infos_SRIOV[] = {
 		.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_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingSriov, nm_setting_sriov_get_num_vfs),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingSriov, nm_setting_sriov_clear_vfs),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_sriov_vfs,
+				.set_fcn =              _objlist_set_fcn_sriov_vfs,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_SRIOV_AUTOPROBE_DRIVERS,
@@ -6909,17 +6478,29 @@ static const NMMetaPropertyInfo *const property_infos_SRIOV[] = {
 #define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_TC_CONFIG
 static const NMMetaPropertyInfo *const property_infos_TC_CONFIG[] = {
 	PROPERTY_INFO (NM_SETTING_TC_CONFIG_QDISCS, DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_tc_config_qdiscs,
-			.set_fcn =                  _set_fcn_tc_config_qdiscs,
-			.remove_fcn =               _remove_fcn_tc_config_qdiscs,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingTCConfig, nm_setting_tc_config_get_num_qdiscs),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingTCConfig, nm_setting_tc_config_clear_qdiscs),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_tc_config_qdiscs,
+				.set_fcn =              _objlist_set_fcn_tc_config_qdiscs,
+				.remove_by_idx_fcn_u =  OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTCConfig, nm_setting_tc_config_remove_qdisc),
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_TC_CONFIG_TFILTERS, DESCRIBE_DOC_NM_SETTING_TC_CONFIG_TFILTERS,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_tc_config_tfilters,
-			.set_fcn =                  _set_fcn_tc_config_tfilters,
-			.remove_fcn =               _remove_fcn_tc_config_tfilters,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingTCConfig, nm_setting_tc_config_get_num_tfilters),
+				.clear_all_fcn =        OBJLIST_CLEAR_ALL_FCN       (NMSettingTCConfig, nm_setting_tc_config_clear_tfilters),
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_tc_config_tfilters,
+				.set_fcn =              _objlist_set_fcn_tc_config_tfilters,
+				.remove_by_idx_fcn_u =  OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTCConfig, nm_setting_tc_config_remove_tfilter),
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	NULL
@@ -7002,10 +6583,18 @@ static const NMMetaPropertyInfo *const property_infos_TEAM[] = {
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_TX_HASH,
-		.property_type =  DEFINE_PROPERTY_TYPE (
-			.get_fcn =                   _get_fcn_gobject,
-			.set_fcn =                   _set_fcn_team_runner_tx_hash,
-			.remove_fcn =                _remove_fcn_team_runner_tx_hash,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u =        MULTILIST_GET_NUM_FCN_U       (NMSettingTeam, nm_setting_team_get_num_runner_tx_hash),
+				.clear_all_fcn =        _multilist_clear_all_fcn_team_runner_tx_hash,
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingTeam, nm_setting_team_add_runner_tx_hash),
+				.remove_by_idx_fcn_u =  MULTILIST_REMOVE_BY_IDX_FCN_U (NMSettingTeam, nm_setting_team_remove_runner_tx_hash),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingTeam, nm_setting_team_remove_runner_tx_hash_by_value),
+				.strsplit_plain =       TRUE,
+			),
+			.values_static =            NM_MAKE_STRV ("eth", "vlan", "ipv4", "ipv6", "ip",
+			                                          "l3", "tcp", "udp", "sctp", "l4"),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_TX_BALANCER,
@@ -7065,10 +6654,16 @@ static const NMMetaPropertyInfo *const property_infos_TEAM[] = {
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_LINK_WATCHERS,
 		.describe_message =             TEAM_LINK_WATCHERS_DESCRIBE_MESSAGE,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_team_link_watchers,
-			.set_fcn =                  _set_fcn_team_link_watchers,
-			.remove_fcn =               _remove_fcn_team_link_watchers,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingTeam, nm_setting_team_get_num_link_watchers),
+				.clear_all_fcn =        _objlist_clear_all_fcn_team_link_watchers,
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_team_link_watchers,
+				.set_fcn =              _objlist_set_fcn_team_link_watchers,
+				.remove_by_idx_fcn_u =  OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTeam, nm_setting_team_remove_link_watcher),
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	NULL
@@ -7136,10 +6731,16 @@ static const NMMetaPropertyInfo *const property_infos_TEAM_PORT[] = {
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_LINK_WATCHERS,
 		.describe_message =             TEAM_LINK_WATCHERS_DESCRIBE_MESSAGE,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_team_port_link_watchers,
-			.set_fcn =                  _set_fcn_team_port_link_watchers,
-			.remove_fcn =               _remove_fcn_team_port_link_watchers,
+		.property_type =                &_pt_objlist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (objlist,
+				.get_num_fcn =          OBJLIST_GET_NUM_FCN         (NMSettingTeamPort, nm_setting_team_port_get_num_link_watchers),
+				.clear_all_fcn =        _objlist_clear_all_fcn_team_link_watchers,
+				.obj_to_str_fcn =       _objlist_obj_to_str_fcn_team_link_watchers,
+				.set_fcn =              _objlist_set_fcn_team_link_watchers,
+				.remove_by_idx_fcn_u =  OBJLIST_REMOVE_BY_IDX_FCN_U (NMSettingTeamPort, nm_setting_team_port_remove_link_watcher),
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	NULL
@@ -7224,9 +6825,9 @@ static const NMMetaPropertyInfo *const property_infos_VLAN[] = {
 		.property_alias =               "ingress",
 		.prompt =                       N_("Ingress priority maps [none]"),
 		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_vlan_ingress_priority_map,
-			.set_fcn =                  _set_fcn_vlan_ingress_priority_map,
-			.remove_fcn =               _remove_fcn_vlan_ingress_priority_map,
+			.get_fcn =                  _get_fcn_vlan_xgress_priority_map,
+			.set_fcn =                  _set_fcn_vlan_xgress_priority_map,
+			.set_supports_remove =      TRUE,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_VLAN_EGRESS_PRIORITY_MAP,
@@ -7234,9 +6835,9 @@ static const NMMetaPropertyInfo *const property_infos_VLAN[] = {
 		.property_alias =               "egress",
 		.prompt =                       N_("Egress priority maps [none]"),
 		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_vlan_egress_priority_map,
-			.set_fcn =                  _set_fcn_vlan_egress_priority_map,
-			.remove_fcn =               _remove_fcn_vlan_egress_priority_map,
+			.get_fcn =                  _get_fcn_vlan_xgress_priority_map,
+			.set_fcn =                  _set_fcn_vlan_xgress_priority_map,
+			.set_supports_remove =      TRUE,
 		),
 	),
 	NULL
@@ -7266,16 +6867,24 @@ static const NMMetaPropertyInfo *const property_infos_VPN[] = {
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_DATA,
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_vpn_data,
-			.set_fcn =                  _set_fcn_vpn_data,
-			.remove_fcn =               _remove_fcn_vpn_data,
+			.set_fcn =                  _set_fcn_optionlist,
+			.set_supports_remove =      TRUE,
+		),
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist,
+			.set_fcn =                  _optionlist_set_fcn_vpn_data,
+			.no_empty_value =           TRUE,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_SECRETS,
 		.is_secret =                    TRUE,
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_vpn_secrets,
-			.set_fcn =                  _set_fcn_vpn_secrets,
-			.remove_fcn =               _remove_fcn_vpn_secrets,
+			.set_fcn =                  _set_fcn_optionlist,
+			.set_supports_remove =      TRUE,
+		),
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist,
+			.set_fcn =                  _optionlist_set_fcn_vpn_secrets,
+			.no_empty_value =           TRUE,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_VPN_PERSISTENT,
@@ -7448,10 +7057,16 @@ static const NMMetaPropertyInfo *const property_infos_WIRED[] = {
 		.property_type =                &_pt_gobject_string,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_wired_mac_address_blacklist,
-			.remove_fcn =               _remove_fcn_wired_mac_address_blacklist,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSettingWired, nm_setting_wired_get_num_mac_blacklist_items),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingWired, nm_setting_wired_add_mac_blacklist_item),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWired, nm_setting_wired_remove_mac_blacklist_item),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWired, nm_setting_wired_remove_mac_blacklist_item_by_value),
+				.validate2_fcn =        _multilist_validate2_fcn_mac_addr,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_MTU,
@@ -7482,9 +7097,13 @@ static const NMMetaPropertyInfo *const property_infos_WIRED[] = {
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.describe_fcn =             _describe_fcn_wired_s390_options,
 			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_wired_s390_options,
-			.remove_fcn =               _remove_fcn_wired_s390_options,
-			.values_fcn =               _values_fcn__wired_s390_options,
+			.set_fcn =                  _set_fcn_optionlist,
+			.set_supports_remove =      TRUE,
+			.values_fcn =               _values_fcn_wired_s390_options,
+		),
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (optionlist,
+			.set_fcn =                  _optionlist_set_fcn_wired_s390_options,
+			.no_empty_value =           TRUE,
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRED_WAKE_ON_LAN,
@@ -7612,10 +7231,16 @@ static const NMMetaPropertyInfo *const property_infos_WIRELESS[] = {
 		.property_type =                &_pt_gobject_string,
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_wireless_mac_address_blacklist,
-			.remove_fcn =               _remove_fcn_wireless_mac_address_blacklist,
+		.property_type =                &_pt_multilist,
+		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSettingWireless, nm_setting_wireless_get_num_mac_blacklist_items),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingWireless, nm_setting_wireless_add_mac_blacklist_item),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWireless, nm_setting_wireless_remove_mac_blacklist_item),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWireless, nm_setting_wireless_remove_mac_blacklist_item_by_value),
+				.validate2_fcn =        _multilist_validate2_fcn_mac_addr,
+				.strsplit_plain =       TRUE,
+			),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION,
@@ -7688,33 +7313,42 @@ static const NMMetaPropertyInfo *const property_infos_WIRELESS_SECURITY[] = {
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_PROTO,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_wireless_security_proto,
-			.remove_fcn =               _remove_fcn_wireless_security_proto,
-		),
+		.property_type =                &_pt_multilist,
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
-			.values_static =            wifi_sec_valid_protos,
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_protos),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingWirelessSecurity, nm_setting_wireless_security_add_proto),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_proto),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_proto_by_value),
+				.strsplit_plain =       TRUE,
+			),
+			.values_static =            NM_MAKE_STRV ("wpa", "rsn"),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_PAIRWISE,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_wireless_security_pairwise,
-			.remove_fcn =               _remove_fcn_wireless_security_pairwise,
-		),
+		.property_type =                &_pt_multilist,
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
-			.values_static =            wifi_sec_valid_pairwises,
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_pairwise),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingWirelessSecurity, nm_setting_wireless_security_add_pairwise),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_pairwise),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_pairwise_by_value),
+				.strsplit_plain =       TRUE,
+			),
+			.values_static =            NM_MAKE_STRV ("tkip", "ccmp"),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_GROUP,
-		.property_type = DEFINE_PROPERTY_TYPE (
-			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_wireless_security_group,
-			.remove_fcn =               _remove_fcn_wireless_security_group,
-		),
+		.property_type =                &_pt_multilist,
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
-			.values_static =            wifi_sec_valid_groups,
+			PROPERTY_TYP_DATA_SUBTYPE (multilist,
+				.get_num_fcn_u32 =      MULTILIST_GET_NUM_FCN_U32     (NMSettingWirelessSecurity, nm_setting_wireless_security_get_num_groups),
+				.add_fcn =              MULTILIST_ADD_FCN             (NMSettingWirelessSecurity, nm_setting_wireless_security_add_group),
+				.remove_by_idx_fcn_u32 = MULTILIST_REMOVE_BY_IDX_FCN_U32 (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_group),
+				.remove_by_value_fcn =  MULTILIST_REMOVE_BY_VALUE_FCN (NMSettingWirelessSecurity, nm_setting_wireless_security_remove_group_by_value),
+				.strsplit_plain =       TRUE,
+			),
+			.values_static =            NM_MAKE_STRV ("wep40", "wep104", "tkip", "ccmp"),
 		),
 	),
 	PROPERTY_INFO_WITH_DESC (NM_SETTING_WIRELESS_SECURITY_PMF,
diff --git a/clients/common/nm-meta-setting-desc.h b/clients/common/nm-meta-setting-desc.h
index e3f9d230..b69a07b5 100644
--- a/clients/common/nm-meta-setting-desc.h
+++ b/clients/common/nm-meta-setting-desc.h
@@ -20,9 +20,9 @@
 #ifndef __NM_META_SETTING_DESC_H__
 #define __NM_META_SETTING_DESC_H__
 
-#include "nm-utils/nm-obj.h"
+#include "nm-glib-aux/nm-obj.h"
 #include "nm-meta-setting.h"
-#include "nm-ethtool-utils.h"
+#include "nm-libnm-core-intern/nm-ethtool-utils.h"
 
 struct _NMDevice;
 
@@ -209,15 +209,9 @@ struct _NMMetaPropertyType {
 	                     const NMMetaEnvironment *environment,
 	                     gpointer environment_user_data,
 	                     NMSetting *setting,
+	                     char modifier,
 	                     const char *value,
 	                     GError **error);
-	gboolean (*remove_fcn) (const NMMetaPropertyInfo *property_info,
-	                        const NMMetaEnvironment *environment,
-	                        gpointer environment_user_data,
-	                        NMSetting *setting,
-	                        const char *option,
-	                        guint32 idx,
-	                        GError **error);
 
 	const char *const*(*values_fcn) (const NMMetaPropertyInfo *property_info,
 	                                 char ***out_to_free);
@@ -228,6 +222,10 @@ struct _NMMetaPropertyType {
 	                                   const NMMetaOperationContext *operation_context,
 	                                   const char *text,
 	                                   char ***out_to_free);
+
+	/* Whether set_fcn() supports the '-' modifier. That is, whether the property
+	 * is a list type. */
+	bool set_supports_remove:1;
 };
 
 struct _NMUtilsEnumValueInfo;
@@ -245,9 +243,6 @@ typedef struct {
 struct _NMMetaPropertyTypData {
 	union {
 		struct {
-			gboolean (*fcn) (NMSetting *setting);
-		} get_with_default;
-		struct {
 			GType (*get_gtype) (void);
 			int min;
 			int max;
@@ -272,15 +267,77 @@ struct _NMMetaPropertyTypData {
 			bool legacy_format:1;
 		} gobject_bytes;
 		struct {
+			guint32 (*get_num_fcn_u32) (NMSetting *setting);
+			guint (*get_num_fcn_u) (NMSetting *setting);
+			void (*clear_all_fcn) (NMSetting *setting);
+			gboolean (*add_fcn) (NMSetting *setting,
+			                     const char *item);
+			void (*add2_fcn) (NMSetting *setting,
+			                  const char *item);
+			const char *(*validate_fcn) (const char *item, GError **error);
+			const char *(*validate2_fcn) (NMSetting *setting, const char *item, GError **error);
+			void (*remove_by_idx_fcn_u32) (NMSetting *setting, guint32 idx);
+			void (*remove_by_idx_fcn_u) (NMSetting *setting, guint idx);
+			void (*remove_by_idx_fcn_s) (NMSetting *setting, int idx);
+			gboolean (*remove_by_value_fcn) (NMSetting *setting, const char *item);
+			bool strsplit_plain:1;
+			bool strsplit_with_spaces:1;
+		} multilist;
+		struct {
+			guint (*get_num_fcn) (NMSetting *setting);
+			void (*obj_to_str_fcn) (NMMetaAccessorGetType get_type,
+			                        NMSetting *setting,
+			                        guint idx,
+			                        GString *str);
+			gboolean (*set_fcn) (NMSetting *setting,
+			                     gboolean do_add /* or else remove. */,
+			                     const char *value,
+			                     GError **error);
+			void (*clear_all_fcn) (NMSetting *setting);
+			void (*remove_by_idx_fcn_u) (NMSetting *setting, guint idx);
+			void (*remove_by_idx_fcn_s) (NMSetting *setting, int idx);
+			bool delimit_pretty_with_semicolon:1;
+			bool strsplit_plain:1;
+		} objlist;
+		struct {
+			gboolean (*set_fcn) (NMSetting *setting,
+			                     const char *option,
+			                     const char *value,
+			                     GError **error);
+			bool no_empty_value:1;
+		} optionlist;
+		struct {
 			guint32 (*get_fcn) (NMSetting *setting);
 		} mtu;
 		struct {
+			NMSetting8021xSchemeType scheme_type;
+		} cert_8021x;
+		struct {
 			NMMetaPropertyTypeMacMode mode;
 		} mac;
 		struct {
+			guint (*get_fcn) (NMSettingDcb *setting,
+			                  guint user_priority);
+			void (*set_fcn) (NMSettingDcb *setting,
+			                 guint id,
+			                 guint value);
+			guint max;
+			guint other;
+			bool is_percent:1;
+		} dcb;
+		struct {
+			gboolean (*get_fcn) (NMSettingDcb *s_dcb,
+			                     guint priority);
+			void (*set_fcn) (NMSettingDcb *setting,
+			                 guint user_priority,
+			                 gboolean enabled);
+			bool with_flow_control_flags:1;
+		} dcb_bool;
+		struct {
 			NMEthtoolID ethtool_id;
 		} ethtool;
 	} subtype;
+	gboolean (*is_default_fcn) (NMSetting *setting);
 	const char *const*values_static;
 	const NMMetaPropertyTypDataNested *nested;
 	NMMetaPropertyTypFlags typ_flags;
@@ -380,7 +437,7 @@ struct _NMMetaType {
 	                          NMMetaAccessorGetType get_type,
 	                          NMMetaAccessorGetFlags get_flags,
 	                          NMMetaAccessorGetOutFlags *out_flags,
-	                          gboolean *out_is_defalt,
+	                          gboolean *out_is_default,
 	                          gpointer *out_to_free);
 	const char *const*(*complete_fcn) (const NMMetaAbstractInfo *info,
 	                                   const NMMetaEnvironment *environment,
diff --git a/clients/common/nm-secret-agent-simple.c b/clients/common/nm-secret-agent-simple.c
index cd3ce2ee..f3a398d7 100644
--- a/clients/common/nm-secret-agent-simple.c
+++ b/clients/common/nm-secret-agent-simple.c
@@ -38,7 +38,7 @@
 
 #include "nm-vpn-service-plugin.h"
 #include "nm-vpn-helpers.h"
-#include "nm-utils/nm-secret-utils.h"
+#include "nm-glib-aux/nm-secret-utils.h"
 
 /*****************************************************************************/
 
@@ -741,16 +741,8 @@ try_spawn_vpn_auth_helper (RequestData *request,
                            GPtrArray *secrets)
 {
 	NMSettingVpn *s_vpn = nm_connection_get_setting_vpn (request->connection);
-        NMVpnPluginInfo *plugin_info;
-	gboolean supports_external;
-	const char *auth_dialog_argv[] = { NULL,
-		"-u", nm_connection_get_uuid (request->connection),
-		"-n", nm_connection_get_id (request->connection),
-		"-s", nm_setting_vpn_get_service_type (s_vpn),
-		"--external-ui-mode",
-		"-i",
-		NULL, /* [9], slot for "-r" */
-		NULL };
+	gs_unref_ptrarray GPtrArray *auth_dialog_argv = NULL;
+	NMVpnPluginInfo *plugin_info;
 	const char *s;
 	GPid auth_dialog_pid;
 	int auth_dialog_in_fd;
@@ -762,6 +754,7 @@ try_spawn_vpn_auth_helper (RequestData *request,
 	char *auth_dialog_request_str;
 	gsize auth_dialog_request_len;
 	AuthDialogData *data;
+	int i;
 
 	plugin_info = nm_vpn_plugin_info_list_find_by_service (nm_vpn_get_plugin_infos (),
 	                                                       nm_setting_vpn_get_service_type (s_vpn));
@@ -769,17 +762,37 @@ try_spawn_vpn_auth_helper (RequestData *request,
 		return FALSE;
 
 	s = nm_vpn_plugin_info_lookup_property (plugin_info, "GNOME", "supports-external-ui-mode");
-	supports_external = _nm_utils_ascii_str_to_bool (s, FALSE);
-	if (!supports_external)
+	if (!_nm_utils_ascii_str_to_bool (s, FALSE))
 		return FALSE;
 
-	auth_dialog_argv[0] = nm_vpn_plugin_info_lookup_property (plugin_info, "GNOME", "auth-dialog");
-	g_return_val_if_fail (auth_dialog_argv[0], FALSE);
+	auth_dialog_argv = g_ptr_array_new ();
+
+	s = nm_vpn_plugin_info_lookup_property (plugin_info, "GNOME", "auth-dialog");
+	g_return_val_if_fail (s, FALSE);
+	g_ptr_array_add (auth_dialog_argv, (gpointer) s);
+
+	g_ptr_array_add (auth_dialog_argv, "-u");
+	g_ptr_array_add (auth_dialog_argv, (gpointer) nm_connection_get_uuid (request->connection));
+	g_ptr_array_add (auth_dialog_argv, "-n");
+	g_ptr_array_add (auth_dialog_argv, (gpointer) nm_connection_get_id (request->connection));
+	g_ptr_array_add (auth_dialog_argv, "-s");
+	g_ptr_array_add (auth_dialog_argv, (gpointer) nm_setting_vpn_get_service_type (s_vpn));
+	g_ptr_array_add (auth_dialog_argv, "--external-ui-mode");
+	g_ptr_array_add (auth_dialog_argv, "-i");
 
 	if (request->flags & NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW)
-		auth_dialog_argv[9] = "-r";
+		g_ptr_array_add (auth_dialog_argv, "-r");
+
+	s = nm_vpn_plugin_info_lookup_property (plugin_info, "GNOME", "supports-hints");
+	if (_nm_utils_ascii_str_to_bool (s, FALSE)) {
+		for (i = 0; request->hints[i]; i++) {
+			g_ptr_array_add (auth_dialog_argv, "-t");
+			g_ptr_array_add (auth_dialog_argv, request->hints[i]);
+		}
+	}
 
-	if (!g_spawn_async_with_pipes (NULL, (char **)auth_dialog_argv, NULL,
+	g_ptr_array_add (auth_dialog_argv, NULL);
+	if (!g_spawn_async_with_pipes (NULL, (char **) auth_dialog_argv->pdata, NULL,
 	                               G_SPAWN_DO_NOT_REAP_CHILD,
 	                               NULL, NULL,
 	                               &auth_dialog_pid,
@@ -889,7 +902,7 @@ request_secrets_from_ui (RequestData *request)
 			title = _("PIN code required");
 			msg = g_strdup (_("PIN code is needed for the mobile broadband device"));
 
-			secret = _secret_real_new_plain (NM_SECRET_AGENT_SECRET_TYPE_PROPERTY,
+			secret = _secret_real_new_plain (NM_SECRET_AGENT_SECRET_TYPE_SECRET,
 			                                 _("PIN"),
 			                                 NM_SETTING (s_gsm),
 			                                 NM_SETTING_GSM_PIN);
diff --git a/clients/common/nm-vpn-helpers.c b/clients/common/nm-vpn-helpers.c
index ea905972..081d6056 100644
--- a/clients/common/nm-vpn-helpers.c
+++ b/clients/common/nm-vpn-helpers.c
@@ -30,8 +30,8 @@
 
 #include "nm-client-utils.h"
 #include "nm-utils.h"
-#include "nm-utils/nm-io-utils.h"
-#include "nm-utils/nm-secret-utils.h"
+#include "nm-glib-aux/nm-io-utils.h"
+#include "nm-glib-aux/nm-secret-utils.h"
 
 /*****************************************************************************/
 
@@ -181,18 +181,17 @@ _extract_variable_value (char *line, const char *tag, char **value)
 {
 	char *p1, *p2;
 
-	if (g_str_has_prefix (line, tag)) {
-		p1 = line + strlen (tag);
-		p2 = line + strlen (line) - 1;
-		if ((*p1 == '\'' || *p1 == '"') && (*p1 == *p2)) {
-			p1++;
-			*p2 = '\0';
-		}
-		if (value)
-			*value = g_strdup (p1);
-		return TRUE;
+	if (!g_str_has_prefix (line, tag))
+		return FALSE;
+
+	p1 = line + strlen (tag);
+	p2 = line + strlen (line) - 1;
+	if ((*p1 == '\'' || *p1 == '"') && (*p1 == *p2)) {
+		p1++;
+		*p2 = '\0';
 	}
-	return FALSE;
+	NM_SET_OUT (value, g_strdup (p1));
+	return TRUE;
 }
 
 gboolean
@@ -203,10 +202,9 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
                                         int *status,
                                         GError **error)
 {
-	char *output = NULL;
-	gboolean ret;
-	char **strv = NULL, **iter;
-	char *argv[4];
+	gs_free char *output = NULL;
+	gs_free const char **output_v = NULL;
+	const char *const*iter;
 	const char *path;
 	const char *const DEFAULT_PATHS[] = {
 		"/sbin/",
@@ -223,17 +221,17 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
 	if (!path)
 		return FALSE;
 
-	argv[0] = (char *) path;
-	argv[1] = "--authenticate";
-	argv[2] = (char *) host;
-	argv[3] = NULL;
-
-	ret = g_spawn_sync (NULL, argv, NULL,
-	                    G_SPAWN_SEARCH_PATH | G_SPAWN_CHILD_INHERITS_STDIN,
-	                    NULL, NULL,  &output, NULL,
-	                    status, error);
-
-	if (!ret)
+	if (!g_spawn_sync (NULL,
+	                   (char **) NM_MAKE_STRV (path, "--authenticate", host),
+	                   NULL,
+	                     G_SPAWN_SEARCH_PATH
+	                   | G_SPAWN_CHILD_INHERITS_STDIN,
+	                   NULL,
+	                   NULL,
+	                   &output,
+	                   NULL,
+	                   status,
+	                   error))
 		return FALSE;
 
 	/* Parse output and set cookie, gateway and gwcert
@@ -242,13 +240,14 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
 	 * HOST='1.2.3.4'
 	 * FINGERPRINT='sha1:32bac90cf09a722e10ecc1942c67fe2ac8c21e2e'
 	 */
-	strv = g_strsplit_set (output ?: "", "\r\n", 0);
-	for (iter = strv; iter && *iter; iter++) {
-		_extract_variable_value (*iter, "COOKIE=", cookie);
-		_extract_variable_value (*iter, "HOST=", gateway);
-		_extract_variable_value (*iter, "FINGERPRINT=", gwcert);
+	output_v = nm_utils_strsplit_set_with_empty (output, "\r\n");
+	for (iter = output_v; iter && *iter; iter++) {
+		char *s_mutable = (char *) *iter;
+
+		_extract_variable_value (s_mutable, "COOKIE=", cookie);
+		_extract_variable_value (s_mutable, "HOST=", gateway);
+		_extract_variable_value (s_mutable, "FINGERPRINT=", gwcert);
 	}
-	g_strfreev (strv);
 
 	return TRUE;
 }
diff --git a/clients/common/settings-docs.h b/clients/common/settings-docs.h
index 7b958faa..811f2f16 100644
--- a/clients/common/settings-docs.h
+++ b/clients/common/settings-docs.h
@@ -118,9 +118,13 @@
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_SNOOPING N_("Controls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_PRIORITY N_("Sets the Spanning Tree Protocol (STP) priority for this bridge.  Lower values are \"better\"; the lowest priority bridge will be elected the root bridge.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_STP N_("Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID N_("The default PVID for the ports of the bridge, that is the VLAN id assigned to incoming untagged frames.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_VLAN_FILTERING N_("Control whether VLAN filtering is enabled on the bridge.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_VLANS N_("Array of bridge VLAN objects. In addition to the VLANs specified here, the bridge will also have the default-pvid VLAN configured  by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE N_("Enables or disables \"hairpin mode\" for the port, which allows frames to be sent back out through the port the frame was received on.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PATH_COST N_("The Spanning Tree Protocol (STP) port cost for destinations via this port.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PRIORITY N_("The Spanning Tree Protocol (STP) priority of this bridge port.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_VLANS N_("Array of bridge VLAN objects. In addition to the VLANs specified here, the port will also have the default-pvid VLAN configured on the bridge by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.")
 #define DESCRIBE_DOC_NM_SETTING_CDMA_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
 #define DESCRIBE_DOC_NM_SETTING_CDMA_NUMBER N_("The number to dial to establish the connection to the CDMA-based mobile broadband network, if any.  If not specified, the default number (#777) is used when required.")
 #define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD N_("The password used to authenticate with the network, if required.  Many providers do not require a password, or accept any password.  But if a password is required, it is specified here.")
diff --git a/clients/common/settings-docs.h.in b/clients/common/settings-docs.h.in
index 7b958faa..811f2f16 100644
--- a/clients/common/settings-docs.h.in
+++ b/clients/common/settings-docs.h.in
@@ -118,9 +118,13 @@
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_MULTICAST_SNOOPING N_("Controls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_PRIORITY N_("Sets the Spanning Tree Protocol (STP) priority for this bridge.  Lower values are \"better\"; the lowest priority bridge will be elected the root bridge.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_STP N_("Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID N_("The default PVID for the ports of the bridge, that is the VLAN id assigned to incoming untagged frames.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_VLAN_FILTERING N_("Control whether VLAN filtering is enabled on the bridge.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_VLANS N_("Array of bridge VLAN objects. In addition to the VLANs specified here, the bridge will also have the default-pvid VLAN configured  by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE N_("Enables or disables \"hairpin mode\" for the port, which allows frames to be sent back out through the port the frame was received on.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PATH_COST N_("The Spanning Tree Protocol (STP) port cost for destinations via this port.")
 #define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_PRIORITY N_("The Spanning Tree Protocol (STP) priority of this bridge port.")
+#define DESCRIBE_DOC_NM_SETTING_BRIDGE_PORT_VLANS N_("Array of bridge VLAN objects. In addition to the VLANs specified here, the port will also have the default-pvid VLAN configured on the bridge by the bridge.vlan-default-pvid property. In nmcli the VLAN list can be specified with the following syntax: $vid [pvid] [untagged] [, $vid [pvid] [untagged]]... where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.")
 #define DESCRIBE_DOC_NM_SETTING_CDMA_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
 #define DESCRIBE_DOC_NM_SETTING_CDMA_NUMBER N_("The number to dial to establish the connection to the CDMA-based mobile broadband network, if any.  If not specified, the default number (#777) is used when required.")
 #define DESCRIBE_DOC_NM_SETTING_CDMA_PASSWORD N_("The password used to authenticate with the network, if required.  Many providers do not require a password, or accept any password.  But if a password is required, it is specified here.")
diff --git a/clients/common/tests/meson.build b/clients/common/tests/meson.build
index 060bab48..3eb32a47 100644
--- a/clients/common/tests/meson.build
+++ b/clients/common/tests/meson.build
@@ -4,7 +4,7 @@ deps = [
   libnm_dep,
   libnmc_dep,
   libnmc_base_dep,
-  nm_core_dep,
+  libnm_core_dep,
 ]
 
 exe = executable(
diff --git a/clients/meson.build b/clients/meson.build
index 1b98ebcb..76d39fa7 100644
--- a/clients/meson.build
+++ b/clients/meson.build
@@ -2,7 +2,7 @@ name = 'nm-online'
 
 deps = [
   libnm_dep,
-  nm_core_dep,
+  libnm_core_dep,
 ]
 
 clients_cflags = [
diff --git a/clients/tests/test-client.check-on-disk/test_001.expected b/clients/tests/test-client.check-on-disk/test_001.expected
index 616e457c..7439cf8b 100644
--- a/clients/tests/test-client.check-on-disk/test_001.expected
+++ b/clients/tests/test-client.check-on-disk/test_001.expected
@@ -1,5 +1,5 @@
 size: 395
-location: clients/tests/test-client.py:841:test_001()/1
+location: clients/tests/test-client.py:842:test_001()/1
 cmd: $NMCLI 
 lang: C
 returncode: 0
@@ -11,11 +11,11 @@ DNS configuration:
 Use "nmcli device show" to get complete information about known devices and
 "nmcli connection show" to get an overview on active connection profiles.
 
-Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.
+Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
 
 <<<
 size: 438
-location: clients/tests/test-client.py:841:test_001()/2
+location: clients/tests/test-client.py:842:test_001()/2
 cmd: $NMCLI 
 lang: pl_PL.UTF-8
 returncode: 0
@@ -28,12 +28,12 @@ Polecenie „nmcli device show” wyświetli pełne informacje o znanych
 urządzeniach, a „nmcli connection show” wyświetli przegląd aktywnych
 profili połączeń.
 
-Strony podręcznika nmcli(1) i nmcli-examples(5) zawierają pełne informacje
+Strony podręcznika nmcli(1) i nmcli-examples(7) zawierają pełne informacje
 o użyciu.
 
 <<<
 size: 188
-location: clients/tests/test-client.py:843:test_001()/3
+location: clients/tests/test-client.py:844:test_001()/3
 cmd: $NMCLI -f AP -mode multiline -p d show wlan0
 lang: C
 returncode: 10
@@ -43,7 +43,7 @@ Error: Device 'wlan0' not found.
 
 <<<
 size: 214
-location: clients/tests/test-client.py:843:test_001()/4
+location: clients/tests/test-client.py:844:test_001()/4
 cmd: $NMCLI -f AP -mode multiline -p d show wlan0
 lang: pl_PL.UTF-8
 returncode: 10
@@ -53,7 +53,7 @@ Błąd: Nie odnaleziono urządzenia „wlan0”.
 
 <<<
 size: 120
-location: clients/tests/test-client.py:845:test_001()/5
+location: clients/tests/test-client.py:846:test_001()/5
 cmd: $NMCLI c s
 lang: C
 returncode: 0
@@ -63,7 +63,7 @@ stdout: 1 bytes
 
 <<<
 size: 130
-location: clients/tests/test-client.py:845:test_001()/6
+location: clients/tests/test-client.py:846:test_001()/6
 cmd: $NMCLI c s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -73,7 +73,7 @@ stdout: 1 bytes
 
 <<<
 size: 192
-location: clients/tests/test-client.py:847:test_001()/7
+location: clients/tests/test-client.py:848:test_001()/7
 cmd: $NMCLI bogus s
 lang: C
 returncode: 2
@@ -83,7 +83,7 @@ Error: argument 'bogus' not understood. Try passing --help instead.
 
 <<<
 size: 221
-location: clients/tests/test-client.py:847:test_001()/8
+location: clients/tests/test-client.py:848:test_001()/8
 cmd: $NMCLI bogus s
 lang: pl_PL.UTF-8
 returncode: 2
@@ -93,7 +93,7 @@ Błąd: nie zrozumiano parametru „bogus”. Można użyć „--help” zamiast
 
 <<<
 size: 1488
-location: clients/tests/test-client.py:850:test_001()/9
+location: clients/tests/test-client.py:851:test_001()/9
 cmd: $NMCLI general permissions
 lang: C
 returncode: 0
@@ -120,7 +120,7 @@ org.freedesktop.NetworkManager.wifi.scan                          unknown
 
 <<<
 size: 1517
-location: clients/tests/test-client.py:850:test_001()/10
+location: clients/tests/test-client.py:851:test_001()/10
 cmd: $NMCLI general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -147,7 +147,7 @@ org.freedesktop.NetworkManager.wifi.scan                          nieznane
 
 <<<
 size: 1618
-location: clients/tests/test-client.py:850:test_001()/11
+location: clients/tests/test-client.py:851:test_001()/11
 cmd: $NMCLI --color yes general permissions
 lang: C
 returncode: 0
@@ -174,7 +174,7 @@ org.freedesktop.NetworkManager.wifi.scan                          unknown
 
 <<<
 size: 1646
-location: clients/tests/test-client.py:850:test_001()/12
+location: clients/tests/test-client.py:851:test_001()/12
 cmd: $NMCLI --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -201,7 +201,7 @@ org.freedesktop.NetworkManager.wifi.scan                          nieznane
 
 <<<
 size: 1695
-location: clients/tests/test-client.py:850:test_001()/13
+location: clients/tests/test-client.py:851:test_001()/13
 cmd: $NMCLI --pretty general permissions
 lang: C
 returncode: 0
@@ -232,7 +232,7 @@ org.freedesktop.NetworkManager.wifi.scan                          unknown
 
 <<<
 size: 1753
-location: clients/tests/test-client.py:850:test_001()/14
+location: clients/tests/test-client.py:851:test_001()/14
 cmd: $NMCLI --pretty general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -263,7 +263,7 @@ org.freedesktop.NetworkManager.wifi.scan                          nieznane
 
 <<<
 size: 1824
-location: clients/tests/test-client.py:850:test_001()/15
+location: clients/tests/test-client.py:851:test_001()/15
 cmd: $NMCLI --pretty --color yes general permissions
 lang: C
 returncode: 0
@@ -294,7 +294,7 @@ org.freedesktop.NetworkManager.wifi.scan                          unknown
 
 <<<
 size: 1882
-location: clients/tests/test-client.py:850:test_001()/16
+location: clients/tests/test-client.py:851:test_001()/16
 cmd: $NMCLI --pretty --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -325,7 +325,7 @@ org.freedesktop.NetworkManager.wifi.scan                          nieznane
 
 <<<
 size: 1094
-location: clients/tests/test-client.py:850:test_001()/17
+location: clients/tests/test-client.py:851:test_001()/17
 cmd: $NMCLI --terse general permissions
 lang: C
 returncode: 0
@@ -351,7 +351,7 @@ org.freedesktop.NetworkManager.wifi.scan:unknown
 
 <<<
 size: 1104
-location: clients/tests/test-client.py:850:test_001()/18
+location: clients/tests/test-client.py:851:test_001()/18
 cmd: $NMCLI --terse general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -377,7 +377,7 @@ org.freedesktop.NetworkManager.wifi.scan:unknown
 
 <<<
 size: 1224
-location: clients/tests/test-client.py:850:test_001()/19
+location: clients/tests/test-client.py:851:test_001()/19
 cmd: $NMCLI --terse --color yes general permissions
 lang: C
 returncode: 0
@@ -403,7 +403,7 @@ org.freedesktop.NetworkManager.wifi.scan:unknown
 
 <<<
 size: 1234
-location: clients/tests/test-client.py:850:test_001()/20
+location: clients/tests/test-client.py:851:test_001()/20
 cmd: $NMCLI --terse --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -429,7 +429,7 @@ org.freedesktop.NetworkManager.wifi.scan:unknown
 
 <<<
 size: 1504
-location: clients/tests/test-client.py:850:test_001()/21
+location: clients/tests/test-client.py:851:test_001()/21
 cmd: $NMCLI --mode tabular general permissions
 lang: C
 returncode: 0
@@ -456,7 +456,7 @@ org.freedesktop.NetworkManager.wifi.scan                          unknown
 
 <<<
 size: 1532
-location: clients/tests/test-client.py:850:test_001()/22
+location: clients/tests/test-client.py:851:test_001()/22
 cmd: $NMCLI --mode tabular general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -483,7 +483,7 @@ org.freedesktop.NetworkManager.wifi.scan                          nieznane
 
 <<<
 size: 1633
-location: clients/tests/test-client.py:850:test_001()/23
+location: clients/tests/test-client.py:851:test_001()/23
 cmd: $NMCLI --mode tabular --color yes general permissions
 lang: C
 returncode: 0
@@ -510,7 +510,7 @@ org.freedesktop.NetworkManager.wifi.scan                          unknown
 
 <<<
 size: 1661
-location: clients/tests/test-client.py:850:test_001()/24
+location: clients/tests/test-client.py:851:test_001()/24
 cmd: $NMCLI --mode tabular --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -537,7 +537,7 @@ org.freedesktop.NetworkManager.wifi.scan                          nieznane
 
 <<<
 size: 1710
-location: clients/tests/test-client.py:850:test_001()/25
+location: clients/tests/test-client.py:851:test_001()/25
 cmd: $NMCLI --mode tabular --pretty general permissions
 lang: C
 returncode: 0
@@ -568,7 +568,7 @@ org.freedesktop.NetworkManager.wifi.scan                          unknown
 
 <<<
 size: 1768
-location: clients/tests/test-client.py:850:test_001()/26
+location: clients/tests/test-client.py:851:test_001()/26
 cmd: $NMCLI --mode tabular --pretty general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -599,7 +599,7 @@ org.freedesktop.NetworkManager.wifi.scan                          nieznane
 
 <<<
 size: 1839
-location: clients/tests/test-client.py:850:test_001()/27
+location: clients/tests/test-client.py:851:test_001()/27
 cmd: $NMCLI --mode tabular --pretty --color yes general permissions
 lang: C
 returncode: 0
@@ -630,7 +630,7 @@ org.freedesktop.NetworkManager.wifi.scan                          unknown
 
 <<<
 size: 1897
-location: clients/tests/test-client.py:850:test_001()/28
+location: clients/tests/test-client.py:851:test_001()/28
 cmd: $NMCLI --mode tabular --pretty --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -661,7 +661,7 @@ org.freedesktop.NetworkManager.wifi.scan                          nieznane
 
 <<<
 size: 1109
-location: clients/tests/test-client.py:850:test_001()/29
+location: clients/tests/test-client.py:851:test_001()/29
 cmd: $NMCLI --mode tabular --terse general permissions
 lang: C
 returncode: 0
@@ -687,7 +687,7 @@ org.freedesktop.NetworkManager.wifi.scan:unknown
 
 <<<
 size: 1119
-location: clients/tests/test-client.py:850:test_001()/30
+location: clients/tests/test-client.py:851:test_001()/30
 cmd: $NMCLI --mode tabular --terse general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -713,7 +713,7 @@ org.freedesktop.NetworkManager.wifi.scan:unknown
 
 <<<
 size: 1239
-location: clients/tests/test-client.py:850:test_001()/31
+location: clients/tests/test-client.py:851:test_001()/31
 cmd: $NMCLI --mode tabular --terse --color yes general permissions
 lang: C
 returncode: 0
@@ -739,7 +739,7 @@ org.freedesktop.NetworkManager.wifi.scan:unknown
 
 <<<
 size: 1249
-location: clients/tests/test-client.py:850:test_001()/32
+location: clients/tests/test-client.py:851:test_001()/32
 cmd: $NMCLI --mode tabular --terse --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -765,7 +765,7 @@ org.freedesktop.NetworkManager.wifi.scan:unknown
 
 <<<
 size: 2464
-location: clients/tests/test-client.py:850:test_001()/33
+location: clients/tests/test-client.py:851:test_001()/33
 cmd: $NMCLI --mode multiline general permissions
 lang: C
 returncode: 0
@@ -808,7 +808,7 @@ VALUE:                                  unknown
 
 <<<
 size: 2481
-location: clients/tests/test-client.py:850:test_001()/34
+location: clients/tests/test-client.py:851:test_001()/34
 cmd: $NMCLI --mode multiline general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -851,7 +851,7 @@ VALUE:                                  nieznane
 
 <<<
 size: 2593
-location: clients/tests/test-client.py:850:test_001()/35
+location: clients/tests/test-client.py:851:test_001()/35
 cmd: $NMCLI --mode multiline --color yes general permissions
 lang: C
 returncode: 0
@@ -894,7 +894,7 @@ VALUE:                                  unknown
 
 <<<
 size: 2610
-location: clients/tests/test-client.py:850:test_001()/36
+location: clients/tests/test-client.py:851:test_001()/36
 cmd: $NMCLI --mode multiline --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -937,7 +937,7 @@ VALUE:                                  nieznane
 
 <<<
 size: 4046
-location: clients/tests/test-client.py:850:test_001()/37
+location: clients/tests/test-client.py:851:test_001()/37
 cmd: $NMCLI --mode multiline --pretty general permissions
 lang: C
 returncode: 0
@@ -1000,7 +1000,7 @@ VALUE:                                  unknown
 
 <<<
 size: 4068
-location: clients/tests/test-client.py:850:test_001()/38
+location: clients/tests/test-client.py:851:test_001()/38
 cmd: $NMCLI --mode multiline --pretty general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1063,7 +1063,7 @@ VALUE:                                  nieznane
 
 <<<
 size: 4175
-location: clients/tests/test-client.py:850:test_001()/39
+location: clients/tests/test-client.py:851:test_001()/39
 cmd: $NMCLI --mode multiline --pretty --color yes general permissions
 lang: C
 returncode: 0
@@ -1126,7 +1126,7 @@ VALUE:                                  unknown
 
 <<<
 size: 4197
-location: clients/tests/test-client.py:850:test_001()/40
+location: clients/tests/test-client.py:851:test_001()/40
 cmd: $NMCLI --mode multiline --pretty --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1189,7 +1189,7 @@ VALUE:                                  nieznane
 
 <<<
 size: 1401
-location: clients/tests/test-client.py:850:test_001()/41
+location: clients/tests/test-client.py:851:test_001()/41
 cmd: $NMCLI --mode multiline --terse general permissions
 lang: C
 returncode: 0
@@ -1232,7 +1232,7 @@ VALUE:unknown
 
 <<<
 size: 1411
-location: clients/tests/test-client.py:850:test_001()/42
+location: clients/tests/test-client.py:851:test_001()/42
 cmd: $NMCLI --mode multiline --terse general permissions
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1275,7 +1275,7 @@ VALUE:unknown
 
 <<<
 size: 1530
-location: clients/tests/test-client.py:850:test_001()/43
+location: clients/tests/test-client.py:851:test_001()/43
 cmd: $NMCLI --mode multiline --terse --color yes general permissions
 lang: C
 returncode: 0
@@ -1318,7 +1318,7 @@ VALUE:unknown
 
 <<<
 size: 1540
-location: clients/tests/test-client.py:850:test_001()/44
+location: clients/tests/test-client.py:851:test_001()/44
 cmd: $NMCLI --mode multiline --terse --color yes general permissions
 lang: pl_PL.UTF-8
 returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002.expected b/clients/tests/test-client.check-on-disk/test_002.expected
index a80fa009..668212ab 100644
--- a/clients/tests/test-client.check-on-disk/test_002.expected
+++ b/clients/tests/test-client.check-on-disk/test_002.expected
@@ -1,5 +1,5 @@
 size: 377
-location: clients/tests/test-client.py:856:test_002()/1
+location: clients/tests/test-client.py:857:test_002()/1
 cmd: $NMCLI d
 lang: C
 returncode: 0
@@ -14,7 +14,7 @@ wlan1   wifi      unavailable  --
 
 <<<
 size: 392
-location: clients/tests/test-client.py:856:test_002()/2
+location: clients/tests/test-client.py:857:test_002()/2
 cmd: $NMCLI d
 lang: pl_PL.UTF-8
 returncode: 0
@@ -29,7 +29,7 @@ wlan1   wifi      niedostępne  --
 
 <<<
 size: 978
-location: clients/tests/test-client.py:858:test_002()/3
+location: clients/tests/test-client.py:859:test_002()/3
 cmd: $NMCLI -f all d
 lang: C
 returncode: 0
@@ -44,7 +44,7 @@ wlan1   wifi      unavailable  unknown           unknown           /org/freedesk
 
 <<<
 size: 993
-location: clients/tests/test-client.py:858:test_002()/4
+location: clients/tests/test-client.py:859:test_002()/4
 cmd: $NMCLI -f all d
 lang: pl_PL.UTF-8
 returncode: 0
@@ -59,7 +59,7 @@ wlan1   wifi      niedostępne  nieznane          nieznane          /org/freedes
 
 <<<
 size: 739
-location: clients/tests/test-client.py:860:test_002()/5
+location: clients/tests/test-client.py:861:test_002()/5
 cmd: $NMCLI 
 lang: C
 returncode: 0
@@ -91,11 +91,11 @@ DNS configuration:
 Use "nmcli device show" to get complete information about known devices and
 "nmcli connection show" to get an overview on active connection profiles.
 
-Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.
+Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
 
 <<<
 size: 812
-location: clients/tests/test-client.py:860:test_002()/6
+location: clients/tests/test-client.py:861:test_002()/6
 cmd: $NMCLI 
 lang: pl_PL.UTF-8
 returncode: 0
@@ -128,12 +128,12 @@ Polecenie „nmcli device show” wyświetli pełne informacje o znanych
 urządzeniach, a „nmcli connection show” wyświetli przegląd aktywnych
 profili połączeń.
 
-Strony podręcznika nmcli(1) i nmcli-examples(5) zawierają pełne informacje
+Strony podręcznika nmcli(1) i nmcli-examples(7) zawierają pełne informacje
 o użyciu.
 
 <<<
 size: 1250
-location: clients/tests/test-client.py:862:test_002()/7
+location: clients/tests/test-client.py:863:test_002()/7
 cmd: $NMCLI -f AP -mode multiline d show wlan0
 lang: C
 returncode: 0
@@ -166,7 +166,7 @@ AP[3].SECURITY:                         WPA1 WPA2
 
 <<<
 size: 1287
-location: clients/tests/test-client.py:862:test_002()/8
+location: clients/tests/test-client.py:863:test_002()/8
 cmd: $NMCLI -f AP -mode multiline d show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -199,7 +199,7 @@ AP[3].SECURITY:                         WPA1 WPA2
 
 <<<
 size: 1704
-location: clients/tests/test-client.py:863:test_002()/9
+location: clients/tests/test-client.py:864:test_002()/9
 cmd: $NMCLI -f AP -mode multiline -p d show wlan0
 lang: C
 returncode: 0
@@ -238,7 +238,7 @@ AP[3].SECURITY:                         WPA1 WPA2
 
 <<<
 size: 1749
-location: clients/tests/test-client.py:863:test_002()/10
+location: clients/tests/test-client.py:864:test_002()/10
 cmd: $NMCLI -f AP -mode multiline -p d show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -277,7 +277,7 @@ AP[3].SECURITY:                         WPA1 WPA2
 
 <<<
 size: 581
-location: clients/tests/test-client.py:864:test_002()/11
+location: clients/tests/test-client.py:865:test_002()/11
 cmd: $NMCLI -f AP -mode multiline -t d show wlan0
 lang: C
 returncode: 0
@@ -310,7 +310,7 @@ AP[3].SECURITY:WPA1 WPA2
 
 <<<
 size: 618
-location: clients/tests/test-client.py:864:test_002()/12
+location: clients/tests/test-client.py:865:test_002()/12
 cmd: $NMCLI -f AP -mode multiline -t d show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -343,7 +343,7 @@ AP[3].SECURITY:WPA1 WPA2
 
 <<<
 size: 455
-location: clients/tests/test-client.py:865:test_002()/13
+location: clients/tests/test-client.py:866:test_002()/13
 cmd: $NMCLI -f AP -mode tabular d show wlan0
 lang: C
 returncode: 0
@@ -356,7 +356,7 @@ AP[3]          wlan0-ap-2  Infra  1     54 Mbit/s  34      **    WPA1 WPA2
 
 <<<
 size: 499
-location: clients/tests/test-client.py:865:test_002()/14
+location: clients/tests/test-client.py:866:test_002()/14
 cmd: $NMCLI -f AP -mode tabular d show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -369,7 +369,7 @@ AP[3]          wlan0-ap-2  Infrastruktura  1     54 Mb/s  34      **    WPA1 W
 
 <<<
 size: 614
-location: clients/tests/test-client.py:866:test_002()/15
+location: clients/tests/test-client.py:867:test_002()/15
 cmd: $NMCLI -f AP -mode tabular -p d show wlan0
 lang: C
 returncode: 0
@@ -386,7 +386,7 @@ AP[3]          wlan0-ap-2  Infra  1     54 Mbit/s  34      **    WPA1 WPA2
 
 <<<
 size: 694
-location: clients/tests/test-client.py:866:test_002()/16
+location: clients/tests/test-client.py:867:test_002()/16
 cmd: $NMCLI -f AP -mode tabular -p d show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -403,7 +403,7 @@ AP[3]          wlan0-ap-2  Infrastruktura  1     54 Mb/s  34      **    WPA1 W
 
 <<<
 size: 309
-location: clients/tests/test-client.py:867:test_002()/17
+location: clients/tests/test-client.py:868:test_002()/17
 cmd: $NMCLI -f AP -mode tabular -t d show wlan0
 lang: C
 returncode: 0
@@ -415,7 +415,7 @@ AP[3]: :wlan0-ap-2:Infra:1:54 Mbit/s:34:**  :WPA1 WPA2
 
 <<<
 size: 346
-location: clients/tests/test-client.py:867:test_002()/18
+location: clients/tests/test-client.py:868:test_002()/18
 cmd: $NMCLI -f AP -mode tabular -t d show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -427,7 +427,7 @@ AP[3]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:34:**  :WPA1 WPA2
 
 <<<
 size: 1973
-location: clients/tests/test-client.py:869:test_002()/19
+location: clients/tests/test-client.py:870:test_002()/19
 cmd: $NMCLI -f ALL d wifi
 lang: C
 returncode: 0
@@ -445,7 +445,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 2041
-location: clients/tests/test-client.py:869:test_002()/20
+location: clients/tests/test-client.py:870:test_002()/20
 cmd: $NMCLI -f ALL d wifi
 lang: pl_PL.UTF-8
 returncode: 0
@@ -463,7 +463,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 246
-location: clients/tests/test-client.py:871:test_002()/21
+location: clients/tests/test-client.py:872:test_002()/21
 cmd: $NMCLI c
 lang: C
 returncode: 0
@@ -474,7 +474,7 @@ con-1  5fcfd6d7-1e63-3332-8826-a7eda103792d  ethernet  --
 
 <<<
 size: 256
-location: clients/tests/test-client.py:871:test_002()/22
+location: clients/tests/test-client.py:872:test_002()/22
 cmd: $NMCLI c
 lang: pl_PL.UTF-8
 returncode: 0
@@ -485,7 +485,7 @@ con-1  5fcfd6d7-1e63-3332-8826-a7eda103792d  ethernet  --
 
 <<<
 size: 1224
-location: clients/tests/test-client.py:873:test_002()/23
+location: clients/tests/test-client.py:874:test_002()/23
 cmd: $NMCLI c s con-1
 lang: C
 returncode: 0
@@ -517,7 +517,7 @@ connection.llmnr:                       -1 (default)
 
 <<<
 size: 1236
-location: clients/tests/test-client.py:873:test_002()/24
+location: clients/tests/test-client.py:874:test_002()/24
 cmd: $NMCLI c s con-1
 lang: pl_PL.UTF-8
 returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003.expected b/clients/tests/test-client.check-on-disk/test_003.expected
index c2eac2c6..ded1e9d7 100644
--- a/clients/tests/test-client.check-on-disk/test_003.expected
+++ b/clients/tests/test-client.check-on-disk/test_003.expected
@@ -1,5 +1,5 @@
 size: 244
-location: clients/tests/test-client.py:884:test_003()/1
+location: clients/tests/test-client.py:885:test_003()/1
 cmd: $NMCLI c add type ethernet ifname '*' con-name con-xx1
 lang: C
 returncode: 0
@@ -9,7 +9,7 @@ Connection 'con-xx1' (UUID-con-xx1-REPLACED-REPLACED-REPLA) successfully added.
 
 <<<
 size: 316
-location: clients/tests/test-client.py:887:test_003()/2
+location: clients/tests/test-client.py:888:test_003()/2
 cmd: $NMCLI c s
 lang: C
 returncode: 0
@@ -21,7 +21,7 @@ con-xx1  UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  --
 
 <<<
 size: 326
-location: clients/tests/test-client.py:887:test_003()/3
+location: clients/tests/test-client.py:888:test_003()/3
 cmd: $NMCLI c s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -33,7 +33,7 @@ con-xx1  UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  --
 
 <<<
 size: 332
-location: clients/tests/test-client.py:892:test_003()/4
+location: clients/tests/test-client.py:893:test_003()/4
 cmd: $NMCLI connection add type gsm autoconnect no con-name con-gsm1 ifname '*' apn xyz.con-gsm1 serial.baud 5 serial.send-delay 100 serial.pari 1
 lang: C
 returncode: 0
@@ -43,7 +43,7 @@ Connection 'con-gsm1' (UUID-con-gsm1-REPLACED-REPLACED-REPL) successfully added.
 
 <<<
 size: 228
-location: clients/tests/test-client.py:897:test_003()/5
+location: clients/tests/test-client.py:898:test_003()/5
 cmd: $NMCLI c add type ethernet ifname '*'
 lang: C
 returncode: 0
@@ -53,7 +53,7 @@ Connection 'ethernet' (UUID-ethernet-REPLACED-REPLACED-REPL) successfully added.
 
 <<<
 size: 451
-location: clients/tests/test-client.py:900:test_003()/6
+location: clients/tests/test-client.py:901:test_003()/6
 cmd: $NMCLI c s
 lang: C
 returncode: 0
@@ -67,7 +67,7 @@ ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  ethernet  --
 
 <<<
 size: 461
-location: clients/tests/test-client.py:900:test_003()/7
+location: clients/tests/test-client.py:901:test_003()/7
 cmd: $NMCLI c s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -81,7 +81,7 @@ ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  ethernet  --
 
 <<<
 size: 1514
-location: clients/tests/test-client.py:903:test_003()/8
+location: clients/tests/test-client.py:904:test_003()/8
 cmd: $NMCLI -f ALL c s
 lang: C
 returncode: 0
@@ -95,7 +95,7 @@ ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  ethernet  0          never
 
 <<<
 size: 1524
-location: clients/tests/test-client.py:903:test_003()/9
+location: clients/tests/test-client.py:904:test_003()/9
 cmd: $NMCLI -f ALL c s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -109,7 +109,7 @@ ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  ethernet  0          nigdy
 
 <<<
 size: 229
-location: clients/tests/test-client.py:907:test_003()/10
+location: clients/tests/test-client.py:908:test_003()/10
 cmd: $NMCLI --complete-args -f ALL c s ''
 lang: C
 returncode: 0
@@ -130,7 +130,7 @@ path
 uuid
 <<<
 size: 239
-location: clients/tests/test-client.py:907:test_003()/11
+location: clients/tests/test-client.py:908:test_003()/11
 cmd: $NMCLI --complete-args -f ALL c s ''
 lang: pl_PL.UTF-8
 returncode: 0
@@ -150,12 +150,12 @@ id
 path
 uuid
 <<<
-size: 3987
-location: clients/tests/test-client.py:910:test_003()/12
+size: 4073
+location: clients/tests/test-client.py:911:test_003()/12
 cmd: $NMCLI con s con-gsm1
 lang: C
 returncode: 0
-stdout: 3853 bytes
+stdout: 3939 bytes
 >>>
 connection.id:                          con-gsm1
 connection.uuid:                        UUID-con-gsm1-REPLACED-REPLACED-REPL
@@ -190,6 +190,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -210,6 +211,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -244,12 +246,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 4016
-location: clients/tests/test-client.py:910:test_003()/13
+size: 4102
+location: clients/tests/test-client.py:911:test_003()/13
 cmd: $NMCLI con s con-gsm1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3872 bytes
+stdout: 3958 bytes
 >>>
 connection.id:                          con-gsm1
 connection.uuid:                        UUID-con-gsm1-REPLACED-REPLACED-REPL
@@ -284,6 +286,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -304,6 +307,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -339,7 +343,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 252
-location: clients/tests/test-client.py:923:test_003()/14
+location: clients/tests/test-client.py:924:test_003()/14
 cmd: $NMCLI con up ethernet ifname eth0
 lang: C
 returncode: 0
@@ -349,7 +353,7 @@ Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkMa
 
 <<<
 size: 452
-location: clients/tests/test-client.py:926:test_003()/15
+location: clients/tests/test-client.py:927:test_003()/15
 cmd: $NMCLI con
 lang: C
 returncode: 0
@@ -363,7 +367,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  --
 
 <<<
 size: 462
-location: clients/tests/test-client.py:926:test_003()/16
+location: clients/tests/test-client.py:927:test_003()/16
 cmd: $NMCLI con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -377,7 +381,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  --
 
 <<<
 size: 1730
-location: clients/tests/test-client.py:929:test_003()/17
+location: clients/tests/test-client.py:930:test_003()/17
 cmd: $NMCLI -f ALL con
 lang: C
 returncode: 0
@@ -391,7 +395,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 1745
-location: clients/tests/test-client.py:929:test_003()/18
+location: clients/tests/test-client.py:930:test_003()/18
 cmd: $NMCLI -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -405,7 +409,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 774
-location: clients/tests/test-client.py:932:test_003()/19
+location: clients/tests/test-client.py:933:test_003()/19
 cmd: $NMCLI -f ALL con s -a
 lang: C
 returncode: 0
@@ -416,7 +420,7 @@ ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  ethernet  0          never
 
 <<<
 size: 786
-location: clients/tests/test-client.py:932:test_003()/20
+location: clients/tests/test-client.py:933:test_003()/20
 cmd: $NMCLI -f ALL con s -a
 lang: pl_PL.UTF-8
 returncode: 0
@@ -427,7 +431,7 @@ ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  ethernet  0          nigdy
 
 <<<
 size: 352
-location: clients/tests/test-client.py:935:test_003()/21
+location: clients/tests/test-client.py:936:test_003()/21
 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act
 lang: C
 returncode: 0
@@ -438,7 +442,7 @@ ACTIVE-PATH                                         DEVICE  UUID
 
 <<<
 size: 362
-location: clients/tests/test-client.py:935:test_003()/22
+location: clients/tests/test-client.py:936:test_003()/22
 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act
 lang: pl_PL.UTF-8
 returncode: 0
@@ -449,7 +453,7 @@ ACTIVE-PATH                                         DEVICE  UUID
 
 <<<
 size: 241
-location: clients/tests/test-client.py:938:test_003()/23
+location: clients/tests/test-client.py:939:test_003()/23
 cmd: $NMCLI -f UUID,NAME con s --active
 lang: C
 returncode: 0
@@ -460,7 +464,7 @@ UUID-ethernet-REPLACED-REPLACED-REPL  ethernet
 
 <<<
 size: 251
-location: clients/tests/test-client.py:938:test_003()/24
+location: clients/tests/test-client.py:939:test_003()/24
 cmd: $NMCLI -f UUID,NAME con s --active
 lang: pl_PL.UTF-8
 returncode: 0
@@ -470,12 +474,12 @@ UUID                                  NAME
 UUID-ethernet-REPLACED-REPLACED-REPL  ethernet 
 
 <<<
-size: 3805
-location: clients/tests/test-client.py:941:test_003()/25
+size: 3891
+location: clients/tests/test-client.py:942:test_003()/25
 cmd: $NMCLI -f ALL con s ethernet
 lang: C
 returncode: 0
-stdout: 3664 bytes
+stdout: 3750 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -524,6 +528,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -544,6 +549,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -560,12 +566,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 3833
-location: clients/tests/test-client.py:941:test_003()/26
+size: 3919
+location: clients/tests/test-client.py:942:test_003()/26
 cmd: $NMCLI -f ALL con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3682 bytes
+stdout: 3768 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -614,6 +620,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -634,6 +641,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -651,7 +659,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 199
-location: clients/tests/test-client.py:944:test_003()/27
+location: clients/tests/test-client.py:945:test_003()/27
 cmd: $NMCLI -f GENERAL.STATE con s ethernet
 lang: C
 returncode: 0
@@ -661,7 +669,7 @@ GENERAL.STATE:                          activated
 
 <<<
 size: 210
-location: clients/tests/test-client.py:944:test_003()/28
+location: clients/tests/test-client.py:945:test_003()/28
 cmd: $NMCLI -f GENERAL.STATE con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
@@ -670,12 +678,12 @@ stdout: 51 bytes
 GENERAL.STATE:                          aktywowano
 
 <<<
-size: 4462
-location: clients/tests/test-client.py:947:test_003()/29
+size: 4548
+location: clients/tests/test-client.py:948:test_003()/29
 cmd: $NMCLI con s ethernet
 lang: C
 returncode: 0
-stdout: 4328 bytes
+stdout: 4414 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -724,6 +732,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -744,6 +753,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -772,12 +782,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4494
-location: clients/tests/test-client.py:947:test_003()/30
+size: 4580
+location: clients/tests/test-client.py:948:test_003()/30
 cmd: $NMCLI con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4350 bytes
+stdout: 4436 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -826,6 +836,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -846,6 +857,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -875,7 +887,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1459
-location: clients/tests/test-client.py:950:test_003()/31
+location: clients/tests/test-client.py:951:test_003()/31
 cmd: $NMCLI -f ALL dev s eth0
 lang: C
 returncode: 0
@@ -895,7 +907,7 @@ Unknown parameter: eth0
 
 <<<
 size: 1474
-location: clients/tests/test-client.py:950:test_003()/32
+location: clients/tests/test-client.py:951:test_003()/32
 cmd: $NMCLI -f ALL dev s eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -915,7 +927,7 @@ Nieznany parametr: eth0
 
 <<<
 size: 3494
-location: clients/tests/test-client.py:953:test_003()/33
+location: clients/tests/test-client.py:954:test_003()/33
 cmd: $NMCLI -f ALL dev show eth0
 lang: C
 returncode: 0
@@ -981,7 +993,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 3529
-location: clients/tests/test-client.py:953:test_003()/34
+location: clients/tests/test-client.py:954:test_003()/34
 cmd: $NMCLI -f ALL dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1047,7 +1059,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 2239
-location: clients/tests/test-client.py:956:test_003()/35
+location: clients/tests/test-client.py:957:test_003()/35
 cmd: $NMCLI -f ALL -t dev show eth0
 lang: C
 returncode: 0
@@ -1113,7 +1125,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2249
-location: clients/tests/test-client.py:956:test_003()/36
+location: clients/tests/test-client.py:957:test_003()/36
 cmd: $NMCLI -f ALL -t dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1179,7 +1191,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 252
-location: clients/tests/test-client.py:923:test_003()/37
+location: clients/tests/test-client.py:924:test_003()/37
 cmd: $NMCLI con up ethernet ifname eth1
 lang: C
 returncode: 0
@@ -1189,7 +1201,7 @@ Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkMa
 
 <<<
 size: 518
-location: clients/tests/test-client.py:926:test_003()/38
+location: clients/tests/test-client.py:927:test_003()/38
 cmd: $NMCLI con
 lang: C
 returncode: 0
@@ -1204,7 +1216,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  --
 
 <<<
 size: 528
-location: clients/tests/test-client.py:926:test_003()/39
+location: clients/tests/test-client.py:927:test_003()/39
 cmd: $NMCLI con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1219,7 +1231,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  --
 
 <<<
 size: 2050
-location: clients/tests/test-client.py:929:test_003()/40
+location: clients/tests/test-client.py:930:test_003()/40
 cmd: $NMCLI -f ALL con
 lang: C
 returncode: 0
@@ -1234,7 +1246,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2066
-location: clients/tests/test-client.py:929:test_003()/41
+location: clients/tests/test-client.py:930:test_003()/41
 cmd: $NMCLI -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1249,7 +1261,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 1094
-location: clients/tests/test-client.py:932:test_003()/42
+location: clients/tests/test-client.py:933:test_003()/42
 cmd: $NMCLI -f ALL con s -a
 lang: C
 returncode: 0
@@ -1261,7 +1273,7 @@ ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  ethernet  0          never
 
 <<<
 size: 1107
-location: clients/tests/test-client.py:932:test_003()/43
+location: clients/tests/test-client.py:933:test_003()/43
 cmd: $NMCLI -f ALL con s -a
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1273,7 +1285,7 @@ ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  ethernet  0          nigdy
 
 <<<
 size: 450
-location: clients/tests/test-client.py:935:test_003()/44
+location: clients/tests/test-client.py:936:test_003()/44
 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act
 lang: C
 returncode: 0
@@ -1285,7 +1297,7 @@ ACTIVE-PATH                                         DEVICE  UUID
 
 <<<
 size: 460
-location: clients/tests/test-client.py:935:test_003()/45
+location: clients/tests/test-client.py:936:test_003()/45
 cmd: $NMCLI -f ACTIVE-PATH,DEVICE,UUID con s -act
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1297,7 +1309,7 @@ ACTIVE-PATH                                         DEVICE  UUID
 
 <<<
 size: 241
-location: clients/tests/test-client.py:938:test_003()/46
+location: clients/tests/test-client.py:939:test_003()/46
 cmd: $NMCLI -f UUID,NAME con s --active
 lang: C
 returncode: 0
@@ -1308,7 +1320,7 @@ UUID-ethernet-REPLACED-REPLACED-REPL  ethernet
 
 <<<
 size: 251
-location: clients/tests/test-client.py:938:test_003()/47
+location: clients/tests/test-client.py:939:test_003()/47
 cmd: $NMCLI -f UUID,NAME con s --active
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1318,12 +1330,12 @@ UUID                                  NAME
 UUID-ethernet-REPLACED-REPLACED-REPL  ethernet 
 
 <<<
-size: 3805
-location: clients/tests/test-client.py:941:test_003()/48
+size: 3891
+location: clients/tests/test-client.py:942:test_003()/48
 cmd: $NMCLI -f ALL con s ethernet
 lang: C
 returncode: 0
-stdout: 3664 bytes
+stdout: 3750 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -1372,6 +1384,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -1392,6 +1405,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -1408,12 +1422,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 3833
-location: clients/tests/test-client.py:941:test_003()/49
+size: 3919
+location: clients/tests/test-client.py:942:test_003()/49
 cmd: $NMCLI -f ALL con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3682 bytes
+stdout: 3768 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -1462,6 +1476,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -1482,6 +1497,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -1499,7 +1515,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 251
-location: clients/tests/test-client.py:944:test_003()/50
+location: clients/tests/test-client.py:945:test_003()/50
 cmd: $NMCLI -f GENERAL.STATE con s ethernet
 lang: C
 returncode: 0
@@ -1511,7 +1527,7 @@ GENERAL.STATE:                          activated
 
 <<<
 size: 263
-location: clients/tests/test-client.py:944:test_003()/51
+location: clients/tests/test-client.py:945:test_003()/51
 cmd: $NMCLI -f GENERAL.STATE con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1522,12 +1538,12 @@ GENERAL.STATE:                          aktywowano
 GENERAL.STATE:                          aktywowano
 
 <<<
-size: 5127
-location: clients/tests/test-client.py:947:test_003()/52
+size: 5213
+location: clients/tests/test-client.py:948:test_003()/52
 cmd: $NMCLI con s ethernet
 lang: C
 returncode: 0
-stdout: 4993 bytes
+stdout: 5079 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -1576,6 +1592,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -1596,6 +1613,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -1637,12 +1655,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 5163
-location: clients/tests/test-client.py:947:test_003()/53
+size: 5249
+location: clients/tests/test-client.py:948:test_003()/53
 cmd: $NMCLI con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5019 bytes
+stdout: 5105 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -1691,6 +1709,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -1711,6 +1730,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -1753,7 +1773,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1459
-location: clients/tests/test-client.py:950:test_003()/54
+location: clients/tests/test-client.py:951:test_003()/54
 cmd: $NMCLI -f ALL dev s eth0
 lang: C
 returncode: 0
@@ -1773,7 +1793,7 @@ Unknown parameter: eth0
 
 <<<
 size: 1474
-location: clients/tests/test-client.py:950:test_003()/55
+location: clients/tests/test-client.py:951:test_003()/55
 cmd: $NMCLI -f ALL dev s eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1793,7 +1813,7 @@ Nieznany parametr: eth0
 
 <<<
 size: 3494
-location: clients/tests/test-client.py:953:test_003()/56
+location: clients/tests/test-client.py:954:test_003()/56
 cmd: $NMCLI -f ALL dev show eth0
 lang: C
 returncode: 0
@@ -1859,7 +1879,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 3529
-location: clients/tests/test-client.py:953:test_003()/57
+location: clients/tests/test-client.py:954:test_003()/57
 cmd: $NMCLI -f ALL dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1925,7 +1945,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 2239
-location: clients/tests/test-client.py:956:test_003()/58
+location: clients/tests/test-client.py:957:test_003()/58
 cmd: $NMCLI -f ALL -t dev show eth0
 lang: C
 returncode: 0
@@ -1991,7 +2011,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2249
-location: clients/tests/test-client.py:956:test_003()/59
+location: clients/tests/test-client.py:957:test_003()/59
 cmd: $NMCLI -f ALL -t dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2057,7 +2077,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2068
-location: clients/tests/test-client.py:971:test_003()/60
+location: clients/tests/test-client.py:972:test_003()/60
 cmd: $NMCLI -f ALL con
 lang: C
 returncode: 0
@@ -2072,7 +2092,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2090
-location: clients/tests/test-client.py:971:test_003()/61
+location: clients/tests/test-client.py:972:test_003()/61
 cmd: $NMCLI -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2087,7 +2107,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 375
-location: clients/tests/test-client.py:974:test_003()/62
+location: clients/tests/test-client.py:975:test_003()/62
 cmd: $NMCLI -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -2101,7 +2121,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 385
-location: clients/tests/test-client.py:974:test_003()/63
+location: clients/tests/test-client.py:975:test_003()/63
 cmd: $NMCLI -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2114,12 +2134,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL  gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet 
 
 <<<
-size: 5130
-location: clients/tests/test-client.py:977:test_003()/64
+size: 5216
+location: clients/tests/test-client.py:978:test_003()/64
 cmd: $NMCLI con s ethernet
 lang: C
 returncode: 0
-stdout: 4996 bytes
+stdout: 5082 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -2168,6 +2188,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -2188,6 +2209,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -2229,12 +2251,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 5167
-location: clients/tests/test-client.py:977:test_003()/65
+size: 5253
+location: clients/tests/test-client.py:978:test_003()/65
 cmd: $NMCLI con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5023 bytes
+stdout: 5109 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -2283,6 +2305,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -2303,6 +2326,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -2344,12 +2368,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4505
-location: clients/tests/test-client.py:980:test_003()/66
+size: 4591
+location: clients/tests/test-client.py:981:test_003()/66
 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 4331 bytes
+stdout: 4417 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -2398,6 +2422,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -2418,6 +2443,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -2446,12 +2472,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4538
-location: clients/tests/test-client.py:980:test_003()/67
+size: 4624
+location: clients/tests/test-client.py:981:test_003()/67
 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4354 bytes
+stdout: 4440 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -2500,6 +2526,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -2520,6 +2547,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -2549,7 +2577,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 3494
-location: clients/tests/test-client.py:983:test_003()/68
+location: clients/tests/test-client.py:984:test_003()/68
 cmd: $NMCLI -f all dev show eth0
 lang: C
 returncode: 0
@@ -2615,7 +2643,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 3529
-location: clients/tests/test-client.py:983:test_003()/69
+location: clients/tests/test-client.py:984:test_003()/69
 cmd: $NMCLI -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2681,7 +2709,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 2350
-location: clients/tests/test-client.py:971:test_003()/70
+location: clients/tests/test-client.py:972:test_003()/70
 cmd: $NMCLI --color yes -f ALL con
 lang: C
 returncode: 0
@@ -2696,7 +2724,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2372
-location: clients/tests/test-client.py:971:test_003()/71
+location: clients/tests/test-client.py:972:test_003()/71
 cmd: $NMCLI --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2711,7 +2739,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 405
-location: clients/tests/test-client.py:974:test_003()/72
+location: clients/tests/test-client.py:975:test_003()/72
 cmd: $NMCLI --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -2725,7 +2753,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 415
-location: clients/tests/test-client.py:974:test_003()/73
+location: clients/tests/test-client.py:975:test_003()/73
 cmd: $NMCLI --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2738,12 +2766,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL  gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet 
 
 <<<
-size: 5142
-location: clients/tests/test-client.py:977:test_003()/74
+size: 5228
+location: clients/tests/test-client.py:978:test_003()/74
 cmd: $NMCLI --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 4996 bytes
+stdout: 5082 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -2792,6 +2820,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -2812,6 +2841,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -2853,12 +2883,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 5179
-location: clients/tests/test-client.py:977:test_003()/75
+size: 5265
+location: clients/tests/test-client.py:978:test_003()/75
 cmd: $NMCLI --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5023 bytes
+stdout: 5109 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -2907,6 +2937,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -2927,6 +2958,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -2968,12 +3000,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4517
-location: clients/tests/test-client.py:980:test_003()/76
+size: 4603
+location: clients/tests/test-client.py:981:test_003()/76
 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 4331 bytes
+stdout: 4417 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -3022,6 +3054,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -3042,6 +3075,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -3070,12 +3104,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4550
-location: clients/tests/test-client.py:980:test_003()/77
+size: 4636
+location: clients/tests/test-client.py:981:test_003()/77
 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4354 bytes
+stdout: 4440 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -3124,6 +3158,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -3144,6 +3179,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -3173,7 +3209,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 3506
-location: clients/tests/test-client.py:983:test_003()/78
+location: clients/tests/test-client.py:984:test_003()/78
 cmd: $NMCLI --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -3239,7 +3275,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 3541
-location: clients/tests/test-client.py:983:test_003()/79
+location: clients/tests/test-client.py:984:test_003()/79
 cmd: $NMCLI --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3305,7 +3341,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 2554
-location: clients/tests/test-client.py:971:test_003()/80
+location: clients/tests/test-client.py:972:test_003()/80
 cmd: $NMCLI --pretty -f ALL con
 lang: C
 returncode: 0
@@ -3324,7 +3360,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2598
-location: clients/tests/test-client.py:971:test_003()/81
+location: clients/tests/test-client.py:972:test_003()/81
 cmd: $NMCLI --pretty -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3343,7 +3379,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 586
-location: clients/tests/test-client.py:974:test_003()/82
+location: clients/tests/test-client.py:975:test_003()/82
 cmd: $NMCLI --pretty -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -3361,7 +3397,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 616
-location: clients/tests/test-client.py:974:test_003()/83
+location: clients/tests/test-client.py:975:test_003()/83
 cmd: $NMCLI --pretty -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3378,12 +3414,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL  gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet 
 
 <<<
-size: 6384
-location: clients/tests/test-client.py:977:test_003()/84
+size: 6470
+location: clients/tests/test-client.py:978:test_003()/84
 cmd: $NMCLI --pretty con s ethernet
 lang: C
 returncode: 0
-stdout: 6241 bytes
+stdout: 6327 bytes
 >>>
 ===============================================================================
                      Connection profile details (ethernet)
@@ -3437,6 +3473,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -3458,6 +3495,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -3509,12 +3547,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 6440
-location: clients/tests/test-client.py:977:test_003()/85
+size: 6526
+location: clients/tests/test-client.py:978:test_003()/85
 cmd: $NMCLI --pretty con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 6287 bytes
+stdout: 6373 bytes
 >>>
 ===============================================================================
                     Szczegóły profilu połączenia (ethernet)
@@ -3568,6 +3606,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -3589,6 +3628,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -3640,12 +3680,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 5446
-location: clients/tests/test-client.py:980:test_003()/86
+size: 5532
+location: clients/tests/test-client.py:981:test_003()/86
 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 5263 bytes
+stdout: 5349 bytes
 >>>
 ===============================================================================
                      Connection profile details (ethernet)
@@ -3699,6 +3739,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -3720,6 +3761,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -3754,12 +3796,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 5491
-location: clients/tests/test-client.py:980:test_003()/87
+size: 5577
+location: clients/tests/test-client.py:981:test_003()/87
 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5298 bytes
+stdout: 5384 bytes
 >>>
 ===============================================================================
                     Szczegóły profilu połączenia (ethernet)
@@ -3813,6 +3855,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -3834,6 +3877,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -3869,7 +3913,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 4354
-location: clients/tests/test-client.py:983:test_003()/88
+location: clients/tests/test-client.py:984:test_003()/88
 cmd: $NMCLI --pretty -f all dev show eth0
 lang: C
 returncode: 0
@@ -3946,7 +3990,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 4395
-location: clients/tests/test-client.py:983:test_003()/89
+location: clients/tests/test-client.py:984:test_003()/89
 cmd: $NMCLI --pretty -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4023,7 +4067,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 2836
-location: clients/tests/test-client.py:971:test_003()/90
+location: clients/tests/test-client.py:972:test_003()/90
 cmd: $NMCLI --pretty --color yes -f ALL con
 lang: C
 returncode: 0
@@ -4042,7 +4086,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2880
-location: clients/tests/test-client.py:971:test_003()/91
+location: clients/tests/test-client.py:972:test_003()/91
 cmd: $NMCLI --pretty --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4061,7 +4105,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 616
-location: clients/tests/test-client.py:974:test_003()/92
+location: clients/tests/test-client.py:975:test_003()/92
 cmd: $NMCLI --pretty --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -4079,7 +4123,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 646
-location: clients/tests/test-client.py:974:test_003()/93
+location: clients/tests/test-client.py:975:test_003()/93
 cmd: $NMCLI --pretty --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4096,12 +4140,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL  gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet 
 
 <<<
-size: 6396
-location: clients/tests/test-client.py:977:test_003()/94
+size: 6482
+location: clients/tests/test-client.py:978:test_003()/94
 cmd: $NMCLI --pretty --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 6241 bytes
+stdout: 6327 bytes
 >>>
 ===============================================================================
                      Connection profile details (ethernet)
@@ -4155,6 +4199,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -4176,6 +4221,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -4227,12 +4273,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 6452
-location: clients/tests/test-client.py:977:test_003()/95
+size: 6538
+location: clients/tests/test-client.py:978:test_003()/95
 cmd: $NMCLI --pretty --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 6287 bytes
+stdout: 6373 bytes
 >>>
 ===============================================================================
                     Szczegóły profilu połączenia (ethernet)
@@ -4286,6 +4332,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -4307,6 +4354,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -4358,12 +4406,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 5458
-location: clients/tests/test-client.py:980:test_003()/96
+size: 5544
+location: clients/tests/test-client.py:981:test_003()/96
 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 5263 bytes
+stdout: 5349 bytes
 >>>
 ===============================================================================
                      Connection profile details (ethernet)
@@ -4417,6 +4465,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -4438,6 +4487,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -4472,12 +4522,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 5503
-location: clients/tests/test-client.py:980:test_003()/97
+size: 5589
+location: clients/tests/test-client.py:981:test_003()/97
 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5298 bytes
+stdout: 5384 bytes
 >>>
 ===============================================================================
                     Szczegóły profilu połączenia (ethernet)
@@ -4531,6 +4581,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -4552,6 +4603,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -4587,7 +4639,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 4366
-location: clients/tests/test-client.py:983:test_003()/98
+location: clients/tests/test-client.py:984:test_003()/98
 cmd: $NMCLI --pretty --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -4664,7 +4716,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 4407
-location: clients/tests/test-client.py:983:test_003()/99
+location: clients/tests/test-client.py:984:test_003()/99
 cmd: $NMCLI --pretty --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4741,7 +4793,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 1185
-location: clients/tests/test-client.py:971:test_003()/100
+location: clients/tests/test-client.py:972:test_003()/100
 cmd: $NMCLI --terse -f ALL con
 lang: C
 returncode: 0
@@ -4755,7 +4807,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 1195
-location: clients/tests/test-client.py:971:test_003()/101
+location: clients/tests/test-client.py:972:test_003()/101
 cmd: $NMCLI --terse -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4769,7 +4821,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 341
-location: clients/tests/test-client.py:974:test_003()/102
+location: clients/tests/test-client.py:975:test_003()/102
 cmd: $NMCLI --terse -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -4782,7 +4834,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 351
-location: clients/tests/test-client.py:974:test_003()/103
+location: clients/tests/test-client.py:975:test_003()/103
 cmd: $NMCLI --terse -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4794,12 +4846,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
-size: 2769
-location: clients/tests/test-client.py:977:test_003()/104
+size: 2809
+location: clients/tests/test-client.py:978:test_003()/104
 cmd: $NMCLI --terse con s ethernet
 lang: C
 returncode: 0
-stdout: 2626 bytes
+stdout: 2666 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -4848,6 +4900,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -4868,6 +4921,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -4909,12 +4963,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2779
-location: clients/tests/test-client.py:977:test_003()/105
+size: 2819
+location: clients/tests/test-client.py:978:test_003()/105
 cmd: $NMCLI --terse con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2626 bytes
+stdout: 2666 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -4963,6 +5017,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -4983,6 +5038,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -5024,12 +5080,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2441
-location: clients/tests/test-client.py:980:test_003()/106
+size: 2481
+location: clients/tests/test-client.py:981:test_003()/106
 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 2258 bytes
+stdout: 2298 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -5078,6 +5134,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -5098,6 +5155,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -5126,12 +5184,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2451
-location: clients/tests/test-client.py:980:test_003()/107
+size: 2491
+location: clients/tests/test-client.py:981:test_003()/107
 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2258 bytes
+stdout: 2298 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -5180,6 +5238,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -5200,6 +5259,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -5229,7 +5289,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 2245
-location: clients/tests/test-client.py:983:test_003()/108
+location: clients/tests/test-client.py:984:test_003()/108
 cmd: $NMCLI --terse -f all dev show eth0
 lang: C
 returncode: 0
@@ -5295,7 +5355,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2255
-location: clients/tests/test-client.py:983:test_003()/109
+location: clients/tests/test-client.py:984:test_003()/109
 cmd: $NMCLI --terse -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5361,7 +5421,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 1467
-location: clients/tests/test-client.py:971:test_003()/110
+location: clients/tests/test-client.py:972:test_003()/110
 cmd: $NMCLI --terse --color yes -f ALL con
 lang: C
 returncode: 0
@@ -5375,7 +5435,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 1477
-location: clients/tests/test-client.py:971:test_003()/111
+location: clients/tests/test-client.py:972:test_003()/111
 cmd: $NMCLI --terse --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5389,7 +5449,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 371
-location: clients/tests/test-client.py:974:test_003()/112
+location: clients/tests/test-client.py:975:test_003()/112
 cmd: $NMCLI --terse --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -5402,7 +5462,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 381
-location: clients/tests/test-client.py:974:test_003()/113
+location: clients/tests/test-client.py:975:test_003()/113
 cmd: $NMCLI --terse --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5414,12 +5474,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
-size: 2781
-location: clients/tests/test-client.py:977:test_003()/114
+size: 2821
+location: clients/tests/test-client.py:978:test_003()/114
 cmd: $NMCLI --terse --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 2626 bytes
+stdout: 2666 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -5468,6 +5528,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -5488,6 +5549,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -5529,12 +5591,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2791
-location: clients/tests/test-client.py:977:test_003()/115
+size: 2831
+location: clients/tests/test-client.py:978:test_003()/115
 cmd: $NMCLI --terse --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2626 bytes
+stdout: 2666 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -5583,6 +5645,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -5603,6 +5666,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -5644,12 +5708,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2453
-location: clients/tests/test-client.py:980:test_003()/116
+size: 2493
+location: clients/tests/test-client.py:981:test_003()/116
 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 2258 bytes
+stdout: 2298 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -5698,6 +5762,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -5718,6 +5783,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -5746,12 +5812,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2463
-location: clients/tests/test-client.py:980:test_003()/117
+size: 2503
+location: clients/tests/test-client.py:981:test_003()/117
 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2258 bytes
+stdout: 2298 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -5800,6 +5866,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -5820,6 +5887,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -5849,7 +5917,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 2257
-location: clients/tests/test-client.py:983:test_003()/118
+location: clients/tests/test-client.py:984:test_003()/118
 cmd: $NMCLI --terse --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -5915,7 +5983,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2267
-location: clients/tests/test-client.py:983:test_003()/119
+location: clients/tests/test-client.py:984:test_003()/119
 cmd: $NMCLI --terse --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5981,7 +6049,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2084
-location: clients/tests/test-client.py:971:test_003()/120
+location: clients/tests/test-client.py:972:test_003()/120
 cmd: $NMCLI --mode tabular -f ALL con
 lang: C
 returncode: 0
@@ -5996,7 +6064,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2106
-location: clients/tests/test-client.py:971:test_003()/121
+location: clients/tests/test-client.py:972:test_003()/121
 cmd: $NMCLI --mode tabular -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6011,7 +6079,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 391
-location: clients/tests/test-client.py:974:test_003()/122
+location: clients/tests/test-client.py:975:test_003()/122
 cmd: $NMCLI --mode tabular -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -6025,7 +6093,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 401
-location: clients/tests/test-client.py:974:test_003()/123
+location: clients/tests/test-client.py:975:test_003()/123
 cmd: $NMCLI --mode tabular -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6038,12 +6106,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL  gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet 
 
 <<<
-size: 3416
-location: clients/tests/test-client.py:977:test_003()/124
+size: 3476
+location: clients/tests/test-client.py:978:test_003()/124
 cmd: $NMCLI --mode tabular con s ethernet
 lang: C
 returncode: 0
-stdout: 3266 bytes
+stdout: 3326 bytes
 >>>
 name        id        uuid                                  stable-id  type            interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-ethernet  --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
@@ -6051,11 +6119,11 @@ connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-eth
 name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-address  generate-mac-address-mask  mac-address-blacklist  mtu   s390-subchannels  s390-nettype  s390-options  wake-on-lan  wake-on-lan-password 
 802-3-ethernet  --    0      --      no              --           --                  --                         --                     auto  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 proxy  none    no            --       --         
@@ -6069,12 +6137,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 
 <<<
-size: 3450
-location: clients/tests/test-client.py:977:test_003()/125
+size: 3510
+location: clients/tests/test-client.py:978:test_003()/125
 cmd: $NMCLI --mode tabular con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3290 bytes
+stdout: 3350 bytes
 >>>
 name        id        uuid                                  stable-id  type            interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-ethernet  --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
@@ -6082,11 +6150,11 @@ connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-eth
 name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-address  generate-mac-address-mask  mac-address-blacklist  mtu           s390-subchannels  s390-nettype  s390-options  wake-on-lan  wake-on-lan-password 
 802-3-ethernet  --    0      --      nie             --           --                  --                         --                     automatyczne  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 proxy  none    nie           --       --         
@@ -6100,12 +6168,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 
 <<<
-size: 2974
-location: clients/tests/test-client.py:980:test_003()/126
+size: 3034
+location: clients/tests/test-client.py:981:test_003()/126
 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 2784 bytes
+stdout: 2844 bytes
 >>>
 name        id        uuid                                  stable-id  type            interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-ethernet  --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
@@ -6113,11 +6181,11 @@ connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-eth
 name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-address  generate-mac-address-mask  mac-address-blacklist  mtu   s390-subchannels  s390-nettype  s390-options  wake-on-lan  wake-on-lan-password 
 802-3-ethernet  --    0      --      no              --           --                  --                         --                     auto  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 proxy  none    no            --       --         
@@ -6127,12 +6195,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 
 <<<
-size: 3006
-location: clients/tests/test-client.py:980:test_003()/127
+size: 3066
+location: clients/tests/test-client.py:981:test_003()/127
 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2806 bytes
+stdout: 2866 bytes
 >>>
 name        id        uuid                                  stable-id  type            interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-ethernet  --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
@@ -6140,11 +6208,11 @@ connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-eth
 name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-address  generate-mac-address-mask  mac-address-blacklist  mtu           s390-subchannels  s390-nettype  s390-options  wake-on-lan  wake-on-lan-password 
 802-3-ethernet  --    0      --      nie             --           --                  --                         --                     automatyczne  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 proxy  none    nie           --       --         
@@ -6155,7 +6223,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 <<<
 size: 2971
-location: clients/tests/test-client.py:983:test_003()/128
+location: clients/tests/test-client.py:984:test_003()/128
 cmd: $NMCLI --mode tabular -f all dev show eth0
 lang: C
 returncode: 0
@@ -6187,7 +6255,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 3002
-location: clients/tests/test-client.py:983:test_003()/129
+location: clients/tests/test-client.py:984:test_003()/129
 cmd: $NMCLI --mode tabular -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6219,7 +6287,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 2366
-location: clients/tests/test-client.py:971:test_003()/130
+location: clients/tests/test-client.py:972:test_003()/130
 cmd: $NMCLI --mode tabular --color yes -f ALL con
 lang: C
 returncode: 0
@@ -6234,7 +6302,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2388
-location: clients/tests/test-client.py:971:test_003()/131
+location: clients/tests/test-client.py:972:test_003()/131
 cmd: $NMCLI --mode tabular --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6249,7 +6317,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 421
-location: clients/tests/test-client.py:974:test_003()/132
+location: clients/tests/test-client.py:975:test_003()/132
 cmd: $NMCLI --mode tabular --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -6263,7 +6331,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 431
-location: clients/tests/test-client.py:974:test_003()/133
+location: clients/tests/test-client.py:975:test_003()/133
 cmd: $NMCLI --mode tabular --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6276,12 +6344,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL  gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet 
 
 <<<
-size: 3428
-location: clients/tests/test-client.py:977:test_003()/134
+size: 3488
+location: clients/tests/test-client.py:978:test_003()/134
 cmd: $NMCLI --mode tabular --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 3266 bytes
+stdout: 3326 bytes
 >>>
 name        id        uuid                                  stable-id  type            interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-ethernet  --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
@@ -6289,11 +6357,11 @@ connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-eth
 name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-address  generate-mac-address-mask  mac-address-blacklist  mtu   s390-subchannels  s390-nettype  s390-options  wake-on-lan  wake-on-lan-password 
 802-3-ethernet  --    0      --      no              --           --                  --                         --                     auto  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 proxy  none    no            --       --         
@@ -6307,12 +6375,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 
 <<<
-size: 3462
-location: clients/tests/test-client.py:977:test_003()/135
+size: 3522
+location: clients/tests/test-client.py:978:test_003()/135
 cmd: $NMCLI --mode tabular --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3290 bytes
+stdout: 3350 bytes
 >>>
 name        id        uuid                                  stable-id  type            interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-ethernet  --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
@@ -6320,11 +6388,11 @@ connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-eth
 name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-address  generate-mac-address-mask  mac-address-blacklist  mtu           s390-subchannels  s390-nettype  s390-options  wake-on-lan  wake-on-lan-password 
 802-3-ethernet  --    0      --      nie             --           --                  --                         --                     automatyczne  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 proxy  none    nie           --       --         
@@ -6338,12 +6406,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 
 <<<
-size: 2986
-location: clients/tests/test-client.py:980:test_003()/136
+size: 3046
+location: clients/tests/test-client.py:981:test_003()/136
 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 2784 bytes
+stdout: 2844 bytes
 >>>
 name        id        uuid                                  stable-id  type            interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-ethernet  --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
@@ -6351,11 +6419,11 @@ connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-eth
 name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-address  generate-mac-address-mask  mac-address-blacklist  mtu   s390-subchannels  s390-nettype  s390-options  wake-on-lan  wake-on-lan-password 
 802-3-ethernet  --    0      --      no              --           --                  --                         --                     auto  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 proxy  none    no            --       --         
@@ -6365,12 +6433,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 
 <<<
-size: 3018
-location: clients/tests/test-client.py:980:test_003()/137
+size: 3078
+location: clients/tests/test-client.py:981:test_003()/137
 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2806 bytes
+stdout: 2866 bytes
 >>>
 name        id        uuid                                  stable-id  type            interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-ethernet  --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
@@ -6378,11 +6446,11 @@ connection  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  --         802-3-eth
 name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-address  generate-mac-address-mask  mac-address-blacklist  mtu           s390-subchannels  s390-nettype  s390-options  wake-on-lan  wake-on-lan-password 
 802-3-ethernet  --    0      --      nie             --           --                  --                         --                     automatyczne  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 proxy  none    nie           --       --         
@@ -6393,7 +6461,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 <<<
 size: 2983
-location: clients/tests/test-client.py:983:test_003()/138
+location: clients/tests/test-client.py:984:test_003()/138
 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -6425,7 +6493,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 3014
-location: clients/tests/test-client.py:983:test_003()/139
+location: clients/tests/test-client.py:984:test_003()/139
 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6457,7 +6525,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 2570
-location: clients/tests/test-client.py:971:test_003()/140
+location: clients/tests/test-client.py:972:test_003()/140
 cmd: $NMCLI --mode tabular --pretty -f ALL con
 lang: C
 returncode: 0
@@ -6476,7 +6544,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2614
-location: clients/tests/test-client.py:971:test_003()/141
+location: clients/tests/test-client.py:972:test_003()/141
 cmd: $NMCLI --mode tabular --pretty -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6495,7 +6563,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 602
-location: clients/tests/test-client.py:974:test_003()/142
+location: clients/tests/test-client.py:975:test_003()/142
 cmd: $NMCLI --mode tabular --pretty -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -6513,7 +6581,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 632
-location: clients/tests/test-client.py:974:test_003()/143
+location: clients/tests/test-client.py:975:test_003()/143
 cmd: $NMCLI --mode tabular --pretty -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6530,12 +6598,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL  gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet 
 
 <<<
-size: 5607
-location: clients/tests/test-client.py:977:test_003()/144
+size: 5697
+location: clients/tests/test-client.py:978:test_003()/144
 cmd: $NMCLI --mode tabular --pretty con s ethernet
 lang: C
 returncode: 0
-stdout: 5448 bytes
+stdout: 5538 bytes
 >>>
 =========================================
   Connection profile details (ethernet)
@@ -6548,13 +6616,13 @@ name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-add
 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 802-3-ethernet  --    0      --      no              --           --                  --                         --                     auto  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 --------------------------------------------------
@@ -6577,12 +6645,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 
 <<<
-size: 5701
-location: clients/tests/test-client.py:977:test_003()/145
+size: 5791
+location: clients/tests/test-client.py:978:test_003()/145
 cmd: $NMCLI --mode tabular --pretty con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5532 bytes
+stdout: 5622 bytes
 >>>
 ===========================================
   Szczegóły profilu połączenia (ethernet)
@@ -6595,13 +6663,13 @@ name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-add
 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 802-3-ethernet  --    0      --      nie             --           --                  --                         --                     automatyczne  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 --------------------------------------------------
@@ -6624,12 +6692,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 
 <<<
-size: 4713
-location: clients/tests/test-client.py:980:test_003()/146
+size: 4803
+location: clients/tests/test-client.py:981:test_003()/146
 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 4514 bytes
+stdout: 4604 bytes
 >>>
 =========================================
   Connection profile details (ethernet)
@@ -6642,13 +6710,13 @@ name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-add
 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 802-3-ethernet  --    0      --      no              --           --                  --                         --                     auto  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 --------------------------------------------------
@@ -6663,12 +6731,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 
 <<<
-size: 4785
-location: clients/tests/test-client.py:980:test_003()/147
+size: 4875
+location: clients/tests/test-client.py:981:test_003()/147
 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4576 bytes
+stdout: 4666 bytes
 >>>
 ===========================================
   Szczegóły profilu połączenia (ethernet)
@@ -6681,13 +6749,13 @@ name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-add
 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 802-3-ethernet  --    0      --      nie             --           --                  --                         --                     automatyczne  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 --------------------------------------------------
@@ -6703,7 +6771,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 <<<
 size: 4468
-location: clients/tests/test-client.py:983:test_003()/148
+location: clients/tests/test-client.py:984:test_003()/148
 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0
 lang: C
 returncode: 0
@@ -6746,7 +6814,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 4536
-location: clients/tests/test-client.py:983:test_003()/149
+location: clients/tests/test-client.py:984:test_003()/149
 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6789,7 +6857,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 2852
-location: clients/tests/test-client.py:971:test_003()/150
+location: clients/tests/test-client.py:972:test_003()/150
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con
 lang: C
 returncode: 0
@@ -6808,7 +6876,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2896
-location: clients/tests/test-client.py:971:test_003()/151
+location: clients/tests/test-client.py:972:test_003()/151
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6827,7 +6895,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 632
-location: clients/tests/test-client.py:974:test_003()/152
+location: clients/tests/test-client.py:975:test_003()/152
 cmd: $NMCLI --mode tabular --pretty --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -6845,7 +6913,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 662
-location: clients/tests/test-client.py:974:test_003()/153
+location: clients/tests/test-client.py:975:test_003()/153
 cmd: $NMCLI --mode tabular --pretty --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6862,12 +6930,12 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL  gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet 
 
 <<<
-size: 5619
-location: clients/tests/test-client.py:977:test_003()/154
+size: 5709
+location: clients/tests/test-client.py:978:test_003()/154
 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 5448 bytes
+stdout: 5538 bytes
 >>>
 =========================================
   Connection profile details (ethernet)
@@ -6880,13 +6948,13 @@ name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-add
 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 802-3-ethernet  --    0      --      no              --           --                  --                         --                     auto  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 --------------------------------------------------
@@ -6909,12 +6977,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 
 <<<
-size: 5713
-location: clients/tests/test-client.py:977:test_003()/155
+size: 5803
+location: clients/tests/test-client.py:978:test_003()/155
 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5532 bytes
+stdout: 5622 bytes
 >>>
 ===========================================
   Szczegóły profilu połączenia (ethernet)
@@ -6927,13 +6995,13 @@ name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-add
 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 802-3-ethernet  --    0      --      nie             --           --                  --                         --                     automatyczne  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 --------------------------------------------------
@@ -6956,12 +7024,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 
 <<<
-size: 4725
-location: clients/tests/test-client.py:980:test_003()/156
+size: 4815
+location: clients/tests/test-client.py:981:test_003()/156
 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 4514 bytes
+stdout: 4604 bytes
 >>>
 =========================================
   Connection profile details (ethernet)
@@ -6974,13 +7042,13 @@ name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-add
 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 802-3-ethernet  --    0      --      no              --           --                  --                         --                     auto  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 --------------------------------------------------
@@ -6995,12 +7063,12 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 
 <<<
-size: 4797
-location: clients/tests/test-client.py:980:test_003()/157
+size: 4887
+location: clients/tests/test-client.py:981:test_003()/157
 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4576 bytes
+stdout: 4666 bytes
 >>>
 ===========================================
   Szczegóły profilu połączenia (ethernet)
@@ -7013,13 +7081,13 @@ name            port  speed  duplex  auto-negotiate  mac-address  cloned-mac-add
 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 802-3-ethernet  --    0      --      nie             --           --                  --                         --                     automatyczne  --                --            --            default      --                   
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name   method  browser-only  pac-url  pac-script 
 --------------------------------------------------
@@ -7035,7 +7103,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 <<<
 size: 4480
-location: clients/tests/test-client.py:983:test_003()/158
+location: clients/tests/test-client.py:984:test_003()/158
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -7078,7 +7146,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 4548
-location: clients/tests/test-client.py:983:test_003()/159
+location: clients/tests/test-client.py:984:test_003()/159
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7121,7 +7189,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 1200
-location: clients/tests/test-client.py:971:test_003()/160
+location: clients/tests/test-client.py:972:test_003()/160
 cmd: $NMCLI --mode tabular --terse -f ALL con
 lang: C
 returncode: 0
@@ -7135,7 +7203,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 1210
-location: clients/tests/test-client.py:971:test_003()/161
+location: clients/tests/test-client.py:972:test_003()/161
 cmd: $NMCLI --mode tabular --terse -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7149,7 +7217,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 356
-location: clients/tests/test-client.py:974:test_003()/162
+location: clients/tests/test-client.py:975:test_003()/162
 cmd: $NMCLI --mode tabular --terse -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -7162,7 +7230,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 366
-location: clients/tests/test-client.py:974:test_003()/163
+location: clients/tests/test-client.py:975:test_003()/163
 cmd: $NMCLI --mode tabular --terse -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7174,72 +7242,72 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
-size: 828
-location: clients/tests/test-client.py:977:test_003()/164
+size: 830
+location: clients/tests/test-client.py:978:test_003()/164
 cmd: $NMCLI --mode tabular --terse con s ethernet
 lang: C
 returncode: 0
-stdout: 671 bytes
+stdout: 673 bytes
 >>>
 connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
 802-3-ethernet::0::no:::::auto::::default:
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 proxy:none:no::
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 <<<
-size: 838
-location: clients/tests/test-client.py:977:test_003()/165
+size: 840
+location: clients/tests/test-client.py:978:test_003()/165
 cmd: $NMCLI --mode tabular --terse con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 671 bytes
+stdout: 673 bytes
 >>>
 connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
 802-3-ethernet::0::no:::::auto::::default:
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 proxy:none:no::
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 <<<
-size: 681
-location: clients/tests/test-client.py:980:test_003()/166
+size: 683
+location: clients/tests/test-client.py:981:test_003()/166
 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 484 bytes
+stdout: 486 bytes
 >>>
 connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
 802-3-ethernet::0::no:::::auto::::default:
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 proxy:none:no::
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 <<<
-size: 691
-location: clients/tests/test-client.py:980:test_003()/167
+size: 693
+location: clients/tests/test-client.py:981:test_003()/167
 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 484 bytes
+stdout: 486 bytes
 >>>
 connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
 802-3-ethernet::0::no:::::auto::::default:
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 proxy:none:no::
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 <<<
 size: 1375
-location: clients/tests/test-client.py:983:test_003()/168
+location: clients/tests/test-client.py:984:test_003()/168
 cmd: $NMCLI --mode tabular --terse -f all dev show eth0
 lang: C
 returncode: 0
@@ -7256,7 +7324,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7
 
 <<<
 size: 1385
-location: clients/tests/test-client.py:983:test_003()/169
+location: clients/tests/test-client.py:984:test_003()/169
 cmd: $NMCLI --mode tabular --terse -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7273,7 +7341,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7
 
 <<<
 size: 1482
-location: clients/tests/test-client.py:971:test_003()/170
+location: clients/tests/test-client.py:972:test_003()/170
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con
 lang: C
 returncode: 0
@@ -7287,7 +7355,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 1492
-location: clients/tests/test-client.py:971:test_003()/171
+location: clients/tests/test-client.py:972:test_003()/171
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7301,7 +7369,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 386
-location: clients/tests/test-client.py:974:test_003()/172
+location: clients/tests/test-client.py:975:test_003()/172
 cmd: $NMCLI --mode tabular --terse --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -7314,7 +7382,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 396
-location: clients/tests/test-client.py:974:test_003()/173
+location: clients/tests/test-client.py:975:test_003()/173
 cmd: $NMCLI --mode tabular --terse --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7326,72 +7394,72 @@ UUID-con-gsm1-REPLACED-REPLACED-REPL:gsm
 UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
-size: 840
-location: clients/tests/test-client.py:977:test_003()/174
+size: 842
+location: clients/tests/test-client.py:978:test_003()/174
 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 671 bytes
+stdout: 673 bytes
 >>>
 connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
 802-3-ethernet::0::no:::::auto::::default:
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 proxy:none:no::
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 <<<
-size: 850
-location: clients/tests/test-client.py:977:test_003()/175
+size: 852
+location: clients/tests/test-client.py:978:test_003()/175
 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 671 bytes
+stdout: 673 bytes
 >>>
 connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
 802-3-ethernet::0::no:::::auto::::default:
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 proxy:none:no::
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth1:activated:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 <<<
-size: 693
-location: clients/tests/test-client.py:980:test_003()/176
+size: 695
+location: clients/tests/test-client.py:981:test_003()/176
 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 484 bytes
+stdout: 486 bytes
 >>>
 connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
 802-3-ethernet::0::no:::::auto::::default:
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 proxy:none:no::
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 <<<
-size: 703
-location: clients/tests/test-client.py:980:test_003()/177
+size: 705
+location: clients/tests/test-client.py:981:test_003()/177
 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 484 bytes
+stdout: 486 bytes
 >>>
 connection:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL::802-3-ethernet::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
 802-3-ethernet::0::no:::::auto::::default:
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 proxy:none:no::
 GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::no:/org/freedesktop/NetworkManager/ActiveConnection/1:/org/freedesktop/NetworkManager/Settings/Connection/4::
 
 <<<
 size: 1387
-location: clients/tests/test-client.py:983:test_003()/178
+location: clients/tests/test-client.py:984:test_003()/178
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -7408,7 +7476,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7
 
 <<<
 size: 1397
-location: clients/tests/test-client.py:983:test_003()/179
+location: clients/tests/test-client.py:984:test_003()/179
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7425,7 +7493,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7
 
 <<<
 size: 4198
-location: clients/tests/test-client.py:971:test_003()/180
+location: clients/tests/test-client.py:972:test_003()/180
 cmd: $NMCLI --mode multiline -f ALL con
 lang: C
 returncode: 0
@@ -7509,7 +7577,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 4220
-location: clients/tests/test-client.py:971:test_003()/181
+location: clients/tests/test-client.py:972:test_003()/181
 cmd: $NMCLI --mode multiline -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7593,7 +7661,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 652
-location: clients/tests/test-client.py:974:test_003()/182
+location: clients/tests/test-client.py:975:test_003()/182
 cmd: $NMCLI --mode multiline -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -7610,7 +7678,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 662
-location: clients/tests/test-client.py:974:test_003()/183
+location: clients/tests/test-client.py:975:test_003()/183
 cmd: $NMCLI --mode multiline -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7626,12 +7694,12 @@ UUID:                                   UUID-con-xx1-REPLACED-REPLACED-REPLA
 TYPE:                                   ethernet
 
 <<<
-size: 5148
-location: clients/tests/test-client.py:977:test_003()/184
+size: 5234
+location: clients/tests/test-client.py:978:test_003()/184
 cmd: $NMCLI --mode multiline con s ethernet
 lang: C
 returncode: 0
-stdout: 4996 bytes
+stdout: 5082 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -7680,6 +7748,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -7700,6 +7769,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -7741,12 +7811,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 5185
-location: clients/tests/test-client.py:977:test_003()/185
+size: 5271
+location: clients/tests/test-client.py:978:test_003()/185
 cmd: $NMCLI --mode multiline con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5023 bytes
+stdout: 5109 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -7795,6 +7865,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -7815,6 +7886,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -7856,12 +7928,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4523
-location: clients/tests/test-client.py:980:test_003()/186
+size: 4609
+location: clients/tests/test-client.py:981:test_003()/186
 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 4331 bytes
+stdout: 4417 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -7910,6 +7982,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -7930,6 +8003,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -7958,12 +8032,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4556
-location: clients/tests/test-client.py:980:test_003()/187
+size: 4642
+location: clients/tests/test-client.py:981:test_003()/187
 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4354 bytes
+stdout: 4440 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -8012,6 +8086,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -8032,6 +8107,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -8061,7 +8137,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 3512
-location: clients/tests/test-client.py:983:test_003()/188
+location: clients/tests/test-client.py:984:test_003()/188
 cmd: $NMCLI --mode multiline -f all dev show eth0
 lang: C
 returncode: 0
@@ -8127,7 +8203,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 3547
-location: clients/tests/test-client.py:983:test_003()/189
+location: clients/tests/test-client.py:984:test_003()/189
 cmd: $NMCLI --mode multiline -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -8193,7 +8269,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 4480
-location: clients/tests/test-client.py:971:test_003()/190
+location: clients/tests/test-client.py:972:test_003()/190
 cmd: $NMCLI --mode multiline --color yes -f ALL con
 lang: C
 returncode: 0
@@ -8277,7 +8353,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 4502
-location: clients/tests/test-client.py:971:test_003()/191
+location: clients/tests/test-client.py:972:test_003()/191
 cmd: $NMCLI --mode multiline --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -8361,7 +8437,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 682
-location: clients/tests/test-client.py:974:test_003()/192
+location: clients/tests/test-client.py:975:test_003()/192
 cmd: $NMCLI --mode multiline --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -8378,7 +8454,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 692
-location: clients/tests/test-client.py:974:test_003()/193
+location: clients/tests/test-client.py:975:test_003()/193
 cmd: $NMCLI --mode multiline --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -8394,12 +8470,12 @@ UUID:                                   UUID-con-xx1-REPLACED-REPLACED-REPLA
 TYPE:                                   ethernet
 
 <<<
-size: 5160
-location: clients/tests/test-client.py:977:test_003()/194
+size: 5246
+location: clients/tests/test-client.py:978:test_003()/194
 cmd: $NMCLI --mode multiline --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 4996 bytes
+stdout: 5082 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -8448,6 +8524,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -8468,6 +8545,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -8509,12 +8587,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 5197
-location: clients/tests/test-client.py:977:test_003()/195
+size: 5283
+location: clients/tests/test-client.py:978:test_003()/195
 cmd: $NMCLI --mode multiline --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5023 bytes
+stdout: 5109 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -8563,6 +8641,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -8583,6 +8662,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -8624,12 +8704,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4535
-location: clients/tests/test-client.py:980:test_003()/196
+size: 4621
+location: clients/tests/test-client.py:981:test_003()/196
 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 4331 bytes
+stdout: 4417 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -8678,6 +8758,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -8698,6 +8779,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -8726,12 +8808,12 @@ GENERAL.ZONE:                           --
 GENERAL.MASTER-PATH:                    --
 
 <<<
-size: 4568
-location: clients/tests/test-client.py:980:test_003()/197
+size: 4654
+location: clients/tests/test-client.py:981:test_003()/197
 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4354 bytes
+stdout: 4440 bytes
 >>>
 connection.id:                          ethernet
 connection.uuid:                        UUID-ethernet-REPLACED-REPLACED-REPL
@@ -8780,6 +8862,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -8800,6 +8883,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -8829,7 +8913,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 3524
-location: clients/tests/test-client.py:983:test_003()/198
+location: clients/tests/test-client.py:984:test_003()/198
 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -8895,7 +8979,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 3559
-location: clients/tests/test-client.py:983:test_003()/199
+location: clients/tests/test-client.py:984:test_003()/199
 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -8961,7 +9045,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 4824
-location: clients/tests/test-client.py:971:test_003()/200
+location: clients/tests/test-client.py:972:test_003()/200
 cmd: $NMCLI --mode multiline --pretty -f ALL con
 lang: C
 returncode: 0
@@ -9053,7 +9137,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 4852
-location: clients/tests/test-client.py:971:test_003()/201
+location: clients/tests/test-client.py:972:test_003()/201
 cmd: $NMCLI --mode multiline --pretty -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9145,7 +9229,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 1199
-location: clients/tests/test-client.py:974:test_003()/202
+location: clients/tests/test-client.py:975:test_003()/202
 cmd: $NMCLI --mode multiline --pretty -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -9169,7 +9253,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 1215
-location: clients/tests/test-client.py:974:test_003()/203
+location: clients/tests/test-client.py:975:test_003()/203
 cmd: $NMCLI --mode multiline --pretty -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9192,12 +9276,12 @@ TYPE:                                   ethernet
 -------------------------------------------------------------------------------
 
 <<<
-size: 6402
-location: clients/tests/test-client.py:977:test_003()/204
+size: 6488
+location: clients/tests/test-client.py:978:test_003()/204
 cmd: $NMCLI --mode multiline --pretty con s ethernet
 lang: C
 returncode: 0
-stdout: 6241 bytes
+stdout: 6327 bytes
 >>>
 ===============================================================================
                      Connection profile details (ethernet)
@@ -9251,6 +9335,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -9272,6 +9357,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -9323,12 +9409,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 6458
-location: clients/tests/test-client.py:977:test_003()/205
+size: 6544
+location: clients/tests/test-client.py:978:test_003()/205
 cmd: $NMCLI --mode multiline --pretty con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 6287 bytes
+stdout: 6373 bytes
 >>>
 ===============================================================================
                     Szczegóły profilu połączenia (ethernet)
@@ -9382,6 +9468,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -9403,6 +9490,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -9454,12 +9542,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 5464
-location: clients/tests/test-client.py:980:test_003()/206
+size: 5550
+location: clients/tests/test-client.py:981:test_003()/206
 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 5263 bytes
+stdout: 5349 bytes
 >>>
 ===============================================================================
                      Connection profile details (ethernet)
@@ -9513,6 +9601,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -9534,6 +9623,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -9568,12 +9658,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 5509
-location: clients/tests/test-client.py:980:test_003()/207
+size: 5595
+location: clients/tests/test-client.py:981:test_003()/207
 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5298 bytes
+stdout: 5384 bytes
 >>>
 ===============================================================================
                     Szczegóły profilu połączenia (ethernet)
@@ -9627,6 +9717,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -9648,6 +9739,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -9683,7 +9775,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 4372
-location: clients/tests/test-client.py:983:test_003()/208
+location: clients/tests/test-client.py:984:test_003()/208
 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0
 lang: C
 returncode: 0
@@ -9760,7 +9852,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 4413
-location: clients/tests/test-client.py:983:test_003()/209
+location: clients/tests/test-client.py:984:test_003()/209
 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9837,7 +9929,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 5106
-location: clients/tests/test-client.py:971:test_003()/210
+location: clients/tests/test-client.py:972:test_003()/210
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con
 lang: C
 returncode: 0
@@ -9929,7 +10021,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 5134
-location: clients/tests/test-client.py:971:test_003()/211
+location: clients/tests/test-client.py:972:test_003()/211
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10021,7 +10113,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 1229
-location: clients/tests/test-client.py:974:test_003()/212
+location: clients/tests/test-client.py:975:test_003()/212
 cmd: $NMCLI --mode multiline --pretty --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -10045,7 +10137,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 1245
-location: clients/tests/test-client.py:974:test_003()/213
+location: clients/tests/test-client.py:975:test_003()/213
 cmd: $NMCLI --mode multiline --pretty --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10068,12 +10160,12 @@ TYPE:                                   ethernet
 -------------------------------------------------------------------------------
 
 <<<
-size: 6414
-location: clients/tests/test-client.py:977:test_003()/214
+size: 6500
+location: clients/tests/test-client.py:978:test_003()/214
 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 6241 bytes
+stdout: 6327 bytes
 >>>
 ===============================================================================
                      Connection profile details (ethernet)
@@ -10127,6 +10219,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -10148,6 +10241,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -10199,12 +10293,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 6470
-location: clients/tests/test-client.py:977:test_003()/215
+size: 6556
+location: clients/tests/test-client.py:978:test_003()/215
 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 6287 bytes
+stdout: 6373 bytes
 >>>
 ===============================================================================
                     Szczegóły profilu połączenia (ethernet)
@@ -10258,6 +10352,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -10279,6 +10374,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -10330,12 +10426,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 5476
-location: clients/tests/test-client.py:980:test_003()/216
+size: 5562
+location: clients/tests/test-client.py:981:test_003()/216
 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 5263 bytes
+stdout: 5349 bytes
 >>>
 ===============================================================================
                      Connection profile details (ethernet)
@@ -10389,6 +10485,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -10410,6 +10507,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -10444,12 +10542,12 @@ GENERAL.MASTER-PATH:                    --
 -------------------------------------------------------------------------------
 
 <<<
-size: 5521
-location: clients/tests/test-client.py:980:test_003()/217
+size: 5607
+location: clients/tests/test-client.py:981:test_003()/217
 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5298 bytes
+stdout: 5384 bytes
 >>>
 ===============================================================================
                     Szczegóły profilu połączenia (ethernet)
@@ -10503,6 +10601,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -10524,6 +10623,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -10559,7 +10659,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 4384
-location: clients/tests/test-client.py:983:test_003()/218
+location: clients/tests/test-client.py:984:test_003()/218
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -10636,7 +10736,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 4425
-location: clients/tests/test-client.py:983:test_003()/219
+location: clients/tests/test-client.py:984:test_003()/219
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10713,7 +10813,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   UUID-ethernet-REPLACED-REPLACED-REPL | e
 
 <<<
 size: 1897
-location: clients/tests/test-client.py:971:test_003()/220
+location: clients/tests/test-client.py:972:test_003()/220
 cmd: $NMCLI --mode multiline --terse -f ALL con
 lang: C
 returncode: 0
@@ -10797,7 +10897,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1
 
 <<<
 size: 1907
-location: clients/tests/test-client.py:971:test_003()/221
+location: clients/tests/test-client.py:972:test_003()/221
 cmd: $NMCLI --mode multiline --terse -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10881,7 +10981,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1
 
 <<<
 size: 398
-location: clients/tests/test-client.py:974:test_003()/222
+location: clients/tests/test-client.py:975:test_003()/222
 cmd: $NMCLI --mode multiline --terse -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -10898,7 +10998,7 @@ TYPE:802-3-ethernet
 
 <<<
 size: 408
-location: clients/tests/test-client.py:974:test_003()/223
+location: clients/tests/test-client.py:975:test_003()/223
 cmd: $NMCLI --mode multiline --terse -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10914,12 +11014,12 @@ UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA
 TYPE:802-3-ethernet
 
 <<<
-size: 2786
-location: clients/tests/test-client.py:977:test_003()/224
+size: 2826
+location: clients/tests/test-client.py:978:test_003()/224
 cmd: $NMCLI --mode multiline --terse con s ethernet
 lang: C
 returncode: 0
-stdout: 2626 bytes
+stdout: 2666 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -10968,6 +11068,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -10988,6 +11089,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -11029,12 +11131,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2796
-location: clients/tests/test-client.py:977:test_003()/225
+size: 2836
+location: clients/tests/test-client.py:978:test_003()/225
 cmd: $NMCLI --mode multiline --terse con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2626 bytes
+stdout: 2666 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -11083,6 +11185,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -11103,6 +11206,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -11144,12 +11248,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2458
-location: clients/tests/test-client.py:980:test_003()/226
+size: 2498
+location: clients/tests/test-client.py:981:test_003()/226
 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 2258 bytes
+stdout: 2298 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -11198,6 +11302,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -11218,6 +11323,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -11246,12 +11352,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2468
-location: clients/tests/test-client.py:980:test_003()/227
+size: 2508
+location: clients/tests/test-client.py:981:test_003()/227
 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2258 bytes
+stdout: 2298 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -11300,6 +11406,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -11320,6 +11427,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -11349,7 +11457,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 2262
-location: clients/tests/test-client.py:983:test_003()/228
+location: clients/tests/test-client.py:984:test_003()/228
 cmd: $NMCLI --mode multiline --terse -f all dev show eth0
 lang: C
 returncode: 0
@@ -11415,7 +11523,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2272
-location: clients/tests/test-client.py:983:test_003()/229
+location: clients/tests/test-client.py:984:test_003()/229
 cmd: $NMCLI --mode multiline --terse -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -11481,7 +11589,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2179
-location: clients/tests/test-client.py:971:test_003()/230
+location: clients/tests/test-client.py:972:test_003()/230
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con
 lang: C
 returncode: 0
@@ -11565,7 +11673,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1
 
 <<<
 size: 2189
-location: clients/tests/test-client.py:971:test_003()/231
+location: clients/tests/test-client.py:972:test_003()/231
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -11649,7 +11757,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1
 
 <<<
 size: 428
-location: clients/tests/test-client.py:974:test_003()/232
+location: clients/tests/test-client.py:975:test_003()/232
 cmd: $NMCLI --mode multiline --terse --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -11666,7 +11774,7 @@ TYPE:802-3-ethernet
 
 <<<
 size: 438
-location: clients/tests/test-client.py:974:test_003()/233
+location: clients/tests/test-client.py:975:test_003()/233
 cmd: $NMCLI --mode multiline --terse --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -11682,12 +11790,12 @@ UUID:UUID-con-xx1-REPLACED-REPLACED-REPLA
 TYPE:802-3-ethernet
 
 <<<
-size: 2798
-location: clients/tests/test-client.py:977:test_003()/234
+size: 2838
+location: clients/tests/test-client.py:978:test_003()/234
 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet
 lang: C
 returncode: 0
-stdout: 2626 bytes
+stdout: 2666 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -11736,6 +11844,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -11756,6 +11865,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -11797,12 +11907,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2808
-location: clients/tests/test-client.py:977:test_003()/235
+size: 2848
+location: clients/tests/test-client.py:978:test_003()/235
 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2626 bytes
+stdout: 2666 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -11851,6 +11961,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -11871,6 +11982,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -11912,12 +12024,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2470
-location: clients/tests/test-client.py:980:test_003()/236
+size: 2510
+location: clients/tests/test-client.py:981:test_003()/236
 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
-stdout: 2258 bytes
+stdout: 2298 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -11966,6 +12078,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -11986,6 +12099,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -12014,12 +12128,12 @@ GENERAL.ZONE:
 GENERAL.MASTER-PATH:
 
 <<<
-size: 2480
-location: clients/tests/test-client.py:980:test_003()/237
+size: 2520
+location: clients/tests/test-client.py:981:test_003()/237
 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2258 bytes
+stdout: 2298 bytes
 >>>
 connection.id:ethernet
 connection.uuid:UUID-ethernet-REPLACED-REPLACED-REPL
@@ -12068,6 +12182,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -12088,6 +12203,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -12117,7 +12233,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 2274
-location: clients/tests/test-client.py:983:test_003()/238
+location: clients/tests/test-client.py:984:test_003()/238
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -12183,7 +12299,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2284
-location: clients/tests/test-client.py:983:test_003()/239
+location: clients/tests/test-client.py:984:test_003()/239
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12249,7 +12365,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethe
 
 <<<
 size: 2069
-location: clients/tests/test-client.py:971:test_003()/240
+location: clients/tests/test-client.py:972:test_003()/240
 cmd: $NMCLI -f ALL con
 lang: C
 returncode: 0
@@ -12264,7 +12380,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2091
-location: clients/tests/test-client.py:971:test_003()/241
+location: clients/tests/test-client.py:972:test_003()/241
 cmd: $NMCLI -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12279,7 +12395,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 328
-location: clients/tests/test-client.py:974:test_003()/242
+location: clients/tests/test-client.py:975:test_003()/242
 cmd: $NMCLI -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -12292,7 +12408,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 338
-location: clients/tests/test-client.py:974:test_003()/243
+location: clients/tests/test-client.py:975:test_003()/243
 cmd: $NMCLI -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12305,7 +12421,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 180
-location: clients/tests/test-client.py:977:test_003()/244
+location: clients/tests/test-client.py:978:test_003()/244
 cmd: $NMCLI con s ethernet
 lang: C
 returncode: 10
@@ -12315,7 +12431,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 202
-location: clients/tests/test-client.py:977:test_003()/245
+location: clients/tests/test-client.py:978:test_003()/245
 cmd: $NMCLI con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -12325,7 +12441,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 841
-location: clients/tests/test-client.py:980:test_003()/246
+location: clients/tests/test-client.py:981:test_003()/246
 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -12346,7 +12462,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 856
-location: clients/tests/test-client.py:980:test_003()/247
+location: clients/tests/test-client.py:981:test_003()/247
 cmd: $NMCLI c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12367,7 +12483,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 3515
-location: clients/tests/test-client.py:983:test_003()/248
+location: clients/tests/test-client.py:984:test_003()/248
 cmd: $NMCLI -f all dev show eth0
 lang: C
 returncode: 0
@@ -12433,7 +12549,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <invisible> | /org/freedesktop/NetworkMa
 
 <<<
 size: 3552
-location: clients/tests/test-client.py:983:test_003()/249
+location: clients/tests/test-client.py:984:test_003()/249
 cmd: $NMCLI -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12499,7 +12615,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <niewidoczne> | /org/freedesktop/Network
 
 <<<
 size: 2351
-location: clients/tests/test-client.py:971:test_003()/250
+location: clients/tests/test-client.py:972:test_003()/250
 cmd: $NMCLI --color yes -f ALL con
 lang: C
 returncode: 0
@@ -12514,7 +12630,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2373
-location: clients/tests/test-client.py:971:test_003()/251
+location: clients/tests/test-client.py:972:test_003()/251
 cmd: $NMCLI --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12529,7 +12645,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 340
-location: clients/tests/test-client.py:974:test_003()/252
+location: clients/tests/test-client.py:975:test_003()/252
 cmd: $NMCLI --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -12542,7 +12658,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 350
-location: clients/tests/test-client.py:974:test_003()/253
+location: clients/tests/test-client.py:975:test_003()/253
 cmd: $NMCLI --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12555,7 +12671,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 192
-location: clients/tests/test-client.py:977:test_003()/254
+location: clients/tests/test-client.py:978:test_003()/254
 cmd: $NMCLI --color yes con s ethernet
 lang: C
 returncode: 10
@@ -12565,7 +12681,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 214
-location: clients/tests/test-client.py:977:test_003()/255
+location: clients/tests/test-client.py:978:test_003()/255
 cmd: $NMCLI --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -12575,7 +12691,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 853
-location: clients/tests/test-client.py:980:test_003()/256
+location: clients/tests/test-client.py:981:test_003()/256
 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -12596,7 +12712,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 868
-location: clients/tests/test-client.py:980:test_003()/257
+location: clients/tests/test-client.py:981:test_003()/257
 cmd: $NMCLI --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12617,7 +12733,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 3527
-location: clients/tests/test-client.py:983:test_003()/258
+location: clients/tests/test-client.py:984:test_003()/258
 cmd: $NMCLI --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -12683,7 +12799,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <invisible> | /org/freedesktop/NetworkMa
 
 <<<
 size: 3564
-location: clients/tests/test-client.py:983:test_003()/259
+location: clients/tests/test-client.py:984:test_003()/259
 cmd: $NMCLI --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12749,7 +12865,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <niewidoczne> | /org/freedesktop/Network
 
 <<<
 size: 2555
-location: clients/tests/test-client.py:971:test_003()/260
+location: clients/tests/test-client.py:972:test_003()/260
 cmd: $NMCLI --pretty -f ALL con
 lang: C
 returncode: 0
@@ -12768,7 +12884,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2599
-location: clients/tests/test-client.py:971:test_003()/261
+location: clients/tests/test-client.py:972:test_003()/261
 cmd: $NMCLI --pretty -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12787,7 +12903,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 539
-location: clients/tests/test-client.py:974:test_003()/262
+location: clients/tests/test-client.py:975:test_003()/262
 cmd: $NMCLI --pretty -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -12804,7 +12920,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 569
-location: clients/tests/test-client.py:974:test_003()/263
+location: clients/tests/test-client.py:975:test_003()/263
 cmd: $NMCLI --pretty -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12821,7 +12937,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 189
-location: clients/tests/test-client.py:977:test_003()/264
+location: clients/tests/test-client.py:978:test_003()/264
 cmd: $NMCLI --pretty con s ethernet
 lang: C
 returncode: 10
@@ -12831,7 +12947,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 211
-location: clients/tests/test-client.py:977:test_003()/265
+location: clients/tests/test-client.py:978:test_003()/265
 cmd: $NMCLI --pretty con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -12841,7 +12957,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 1377
-location: clients/tests/test-client.py:980:test_003()/266
+location: clients/tests/test-client.py:981:test_003()/266
 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -12869,7 +12985,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1404
-location: clients/tests/test-client.py:980:test_003()/267
+location: clients/tests/test-client.py:981:test_003()/267
 cmd: $NMCLI --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12897,7 +13013,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 4375
-location: clients/tests/test-client.py:983:test_003()/268
+location: clients/tests/test-client.py:984:test_003()/268
 cmd: $NMCLI --pretty -f all dev show eth0
 lang: C
 returncode: 0
@@ -12974,7 +13090,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <invisible> | /org/freedesktop/NetworkMa
 
 <<<
 size: 4418
-location: clients/tests/test-client.py:983:test_003()/269
+location: clients/tests/test-client.py:984:test_003()/269
 cmd: $NMCLI --pretty -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13051,7 +13167,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <niewidoczne> | /org/freedesktop/Network
 
 <<<
 size: 2837
-location: clients/tests/test-client.py:971:test_003()/270
+location: clients/tests/test-client.py:972:test_003()/270
 cmd: $NMCLI --pretty --color yes -f ALL con
 lang: C
 returncode: 0
@@ -13070,7 +13186,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2881
-location: clients/tests/test-client.py:971:test_003()/271
+location: clients/tests/test-client.py:972:test_003()/271
 cmd: $NMCLI --pretty --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13089,7 +13205,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 551
-location: clients/tests/test-client.py:974:test_003()/272
+location: clients/tests/test-client.py:975:test_003()/272
 cmd: $NMCLI --pretty --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -13106,7 +13222,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 581
-location: clients/tests/test-client.py:974:test_003()/273
+location: clients/tests/test-client.py:975:test_003()/273
 cmd: $NMCLI --pretty --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13123,7 +13239,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 201
-location: clients/tests/test-client.py:977:test_003()/274
+location: clients/tests/test-client.py:978:test_003()/274
 cmd: $NMCLI --pretty --color yes con s ethernet
 lang: C
 returncode: 10
@@ -13133,7 +13249,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 223
-location: clients/tests/test-client.py:977:test_003()/275
+location: clients/tests/test-client.py:978:test_003()/275
 cmd: $NMCLI --pretty --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -13143,7 +13259,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 1389
-location: clients/tests/test-client.py:980:test_003()/276
+location: clients/tests/test-client.py:981:test_003()/276
 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -13171,7 +13287,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1416
-location: clients/tests/test-client.py:980:test_003()/277
+location: clients/tests/test-client.py:981:test_003()/277
 cmd: $NMCLI --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13199,7 +13315,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 4387
-location: clients/tests/test-client.py:983:test_003()/278
+location: clients/tests/test-client.py:984:test_003()/278
 cmd: $NMCLI --pretty --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -13276,7 +13392,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <invisible> | /org/freedesktop/NetworkMa
 
 <<<
 size: 4430
-location: clients/tests/test-client.py:983:test_003()/279
+location: clients/tests/test-client.py:984:test_003()/279
 cmd: $NMCLI --pretty --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13353,7 +13469,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <niewidoczne> | /org/freedesktop/Network
 
 <<<
 size: 1161
-location: clients/tests/test-client.py:971:test_003()/280
+location: clients/tests/test-client.py:972:test_003()/280
 cmd: $NMCLI --terse -f ALL con
 lang: C
 returncode: 0
@@ -13367,7 +13483,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 1171
-location: clients/tests/test-client.py:971:test_003()/281
+location: clients/tests/test-client.py:972:test_003()/281
 cmd: $NMCLI --terse -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13381,7 +13497,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 289
-location: clients/tests/test-client.py:974:test_003()/282
+location: clients/tests/test-client.py:975:test_003()/282
 cmd: $NMCLI --terse -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -13393,7 +13509,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 299
-location: clients/tests/test-client.py:974:test_003()/283
+location: clients/tests/test-client.py:975:test_003()/283
 cmd: $NMCLI --terse -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13405,7 +13521,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 188
-location: clients/tests/test-client.py:977:test_003()/284
+location: clients/tests/test-client.py:978:test_003()/284
 cmd: $NMCLI --terse con s ethernet
 lang: C
 returncode: 10
@@ -13415,7 +13531,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 210
-location: clients/tests/test-client.py:977:test_003()/285
+location: clients/tests/test-client.py:978:test_003()/285
 cmd: $NMCLI --terse con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -13425,7 +13541,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 552
-location: clients/tests/test-client.py:980:test_003()/286
+location: clients/tests/test-client.py:981:test_003()/286
 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -13446,7 +13562,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 562
-location: clients/tests/test-client.py:980:test_003()/287
+location: clients/tests/test-client.py:981:test_003()/287
 cmd: $NMCLI --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13467,7 +13583,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 2265
-location: clients/tests/test-client.py:983:test_003()/288
+location: clients/tests/test-client.py:984:test_003()/288
 cmd: $NMCLI --terse -f all dev show eth0
 lang: C
 returncode: 0
@@ -13533,7 +13649,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:<invisible> | /org/freedesktop/NetworkManag
 
 <<<
 size: 2275
-location: clients/tests/test-client.py:983:test_003()/289
+location: clients/tests/test-client.py:984:test_003()/289
 cmd: $NMCLI --terse -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13599,7 +13715,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:<invisible> | /org/freedesktop/NetworkManag
 
 <<<
 size: 1443
-location: clients/tests/test-client.py:971:test_003()/290
+location: clients/tests/test-client.py:972:test_003()/290
 cmd: $NMCLI --terse --color yes -f ALL con
 lang: C
 returncode: 0
@@ -13613,7 +13729,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 1453
-location: clients/tests/test-client.py:971:test_003()/291
+location: clients/tests/test-client.py:972:test_003()/291
 cmd: $NMCLI --terse --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13627,7 +13743,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 301
-location: clients/tests/test-client.py:974:test_003()/292
+location: clients/tests/test-client.py:975:test_003()/292
 cmd: $NMCLI --terse --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -13639,7 +13755,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 311
-location: clients/tests/test-client.py:974:test_003()/293
+location: clients/tests/test-client.py:975:test_003()/293
 cmd: $NMCLI --terse --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13651,7 +13767,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 200
-location: clients/tests/test-client.py:977:test_003()/294
+location: clients/tests/test-client.py:978:test_003()/294
 cmd: $NMCLI --terse --color yes con s ethernet
 lang: C
 returncode: 10
@@ -13661,7 +13777,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 222
-location: clients/tests/test-client.py:977:test_003()/295
+location: clients/tests/test-client.py:978:test_003()/295
 cmd: $NMCLI --terse --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -13671,7 +13787,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 564
-location: clients/tests/test-client.py:980:test_003()/296
+location: clients/tests/test-client.py:981:test_003()/296
 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -13692,7 +13808,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 574
-location: clients/tests/test-client.py:980:test_003()/297
+location: clients/tests/test-client.py:981:test_003()/297
 cmd: $NMCLI --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13713,7 +13829,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 2277
-location: clients/tests/test-client.py:983:test_003()/298
+location: clients/tests/test-client.py:984:test_003()/298
 cmd: $NMCLI --terse --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -13779,7 +13895,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:<invisible> | /org/freedesktop/NetworkManag
 
 <<<
 size: 2287
-location: clients/tests/test-client.py:983:test_003()/299
+location: clients/tests/test-client.py:984:test_003()/299
 cmd: $NMCLI --terse --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13845,7 +13961,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:<invisible> | /org/freedesktop/NetworkManag
 
 <<<
 size: 2084
-location: clients/tests/test-client.py:971:test_003()/300
+location: clients/tests/test-client.py:972:test_003()/300
 cmd: $NMCLI --mode tabular -f ALL con
 lang: C
 returncode: 0
@@ -13860,7 +13976,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2106
-location: clients/tests/test-client.py:971:test_003()/301
+location: clients/tests/test-client.py:972:test_003()/301
 cmd: $NMCLI --mode tabular -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13875,7 +13991,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 343
-location: clients/tests/test-client.py:974:test_003()/302
+location: clients/tests/test-client.py:975:test_003()/302
 cmd: $NMCLI --mode tabular -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -13888,7 +14004,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 353
-location: clients/tests/test-client.py:974:test_003()/303
+location: clients/tests/test-client.py:975:test_003()/303
 cmd: $NMCLI --mode tabular -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13901,7 +14017,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 195
-location: clients/tests/test-client.py:977:test_003()/304
+location: clients/tests/test-client.py:978:test_003()/304
 cmd: $NMCLI --mode tabular con s ethernet
 lang: C
 returncode: 10
@@ -13911,7 +14027,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 217
-location: clients/tests/test-client.py:977:test_003()/305
+location: clients/tests/test-client.py:978:test_003()/305
 cmd: $NMCLI --mode tabular con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -13921,7 +14037,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 676
-location: clients/tests/test-client.py:980:test_003()/306
+location: clients/tests/test-client.py:981:test_003()/306
 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -13933,7 +14049,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 <<<
 size: 690
-location: clients/tests/test-client.py:980:test_003()/307
+location: clients/tests/test-client.py:981:test_003()/307
 cmd: $NMCLI --mode tabular c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13945,7 +14061,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 <<<
 size: 3011
-location: clients/tests/test-client.py:983:test_003()/308
+location: clients/tests/test-client.py:984:test_003()/308
 cmd: $NMCLI --mode tabular -f all dev show eth0
 lang: C
 returncode: 0
@@ -13977,7 +14093,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 3046
-location: clients/tests/test-client.py:983:test_003()/309
+location: clients/tests/test-client.py:984:test_003()/309
 cmd: $NMCLI --mode tabular -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14009,7 +14125,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 2366
-location: clients/tests/test-client.py:971:test_003()/310
+location: clients/tests/test-client.py:972:test_003()/310
 cmd: $NMCLI --mode tabular --color yes -f ALL con
 lang: C
 returncode: 0
@@ -14024,7 +14140,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2388
-location: clients/tests/test-client.py:971:test_003()/311
+location: clients/tests/test-client.py:972:test_003()/311
 cmd: $NMCLI --mode tabular --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14039,7 +14155,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 355
-location: clients/tests/test-client.py:974:test_003()/312
+location: clients/tests/test-client.py:975:test_003()/312
 cmd: $NMCLI --mode tabular --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -14052,7 +14168,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 365
-location: clients/tests/test-client.py:974:test_003()/313
+location: clients/tests/test-client.py:975:test_003()/313
 cmd: $NMCLI --mode tabular --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14065,7 +14181,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 207
-location: clients/tests/test-client.py:977:test_003()/314
+location: clients/tests/test-client.py:978:test_003()/314
 cmd: $NMCLI --mode tabular --color yes con s ethernet
 lang: C
 returncode: 10
@@ -14075,7 +14191,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 229
-location: clients/tests/test-client.py:977:test_003()/315
+location: clients/tests/test-client.py:978:test_003()/315
 cmd: $NMCLI --mode tabular --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -14085,7 +14201,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 688
-location: clients/tests/test-client.py:980:test_003()/316
+location: clients/tests/test-client.py:981:test_003()/316
 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -14097,7 +14213,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 <<<
 size: 702
-location: clients/tests/test-client.py:980:test_003()/317
+location: clients/tests/test-client.py:981:test_003()/317
 cmd: $NMCLI --mode tabular --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14109,7 +14225,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 <<<
 size: 3023
-location: clients/tests/test-client.py:983:test_003()/318
+location: clients/tests/test-client.py:984:test_003()/318
 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -14141,7 +14257,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 3058
-location: clients/tests/test-client.py:983:test_003()/319
+location: clients/tests/test-client.py:984:test_003()/319
 cmd: $NMCLI --mode tabular --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14173,7 +14289,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 2570
-location: clients/tests/test-client.py:971:test_003()/320
+location: clients/tests/test-client.py:972:test_003()/320
 cmd: $NMCLI --mode tabular --pretty -f ALL con
 lang: C
 returncode: 0
@@ -14192,7 +14308,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2614
-location: clients/tests/test-client.py:971:test_003()/321
+location: clients/tests/test-client.py:972:test_003()/321
 cmd: $NMCLI --mode tabular --pretty -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14211,7 +14327,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 554
-location: clients/tests/test-client.py:974:test_003()/322
+location: clients/tests/test-client.py:975:test_003()/322
 cmd: $NMCLI --mode tabular --pretty -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -14228,7 +14344,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 584
-location: clients/tests/test-client.py:974:test_003()/323
+location: clients/tests/test-client.py:975:test_003()/323
 cmd: $NMCLI --mode tabular --pretty -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14245,7 +14361,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 204
-location: clients/tests/test-client.py:977:test_003()/324
+location: clients/tests/test-client.py:978:test_003()/324
 cmd: $NMCLI --mode tabular --pretty con s ethernet
 lang: C
 returncode: 10
@@ -14255,7 +14371,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 226
-location: clients/tests/test-client.py:977:test_003()/325
+location: clients/tests/test-client.py:978:test_003()/325
 cmd: $NMCLI --mode tabular --pretty con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -14265,7 +14381,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 1232
-location: clients/tests/test-client.py:980:test_003()/326
+location: clients/tests/test-client.py:981:test_003()/326
 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -14284,7 +14400,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 <<<
 size: 1277
-location: clients/tests/test-client.py:980:test_003()/327
+location: clients/tests/test-client.py:981:test_003()/327
 cmd: $NMCLI --mode tabular --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14303,7 +14419,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 <<<
 size: 4528
-location: clients/tests/test-client.py:983:test_003()/328
+location: clients/tests/test-client.py:984:test_003()/328
 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0
 lang: C
 returncode: 0
@@ -14346,7 +14462,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 4602
-location: clients/tests/test-client.py:983:test_003()/329
+location: clients/tests/test-client.py:984:test_003()/329
 cmd: $NMCLI --mode tabular --pretty -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14389,7 +14505,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 2852
-location: clients/tests/test-client.py:971:test_003()/330
+location: clients/tests/test-client.py:972:test_003()/330
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con
 lang: C
 returncode: 0
@@ -14408,7 +14524,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          never
 
 <<<
 size: 2896
-location: clients/tests/test-client.py:971:test_003()/331
+location: clients/tests/test-client.py:972:test_003()/331
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14427,7 +14543,7 @@ con-xx1   UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet  0          nigdy
 
 <<<
 size: 566
-location: clients/tests/test-client.py:974:test_003()/332
+location: clients/tests/test-client.py:975:test_003()/332
 cmd: $NMCLI --mode tabular --pretty --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -14444,7 +14560,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 596
-location: clients/tests/test-client.py:974:test_003()/333
+location: clients/tests/test-client.py:975:test_003()/333
 cmd: $NMCLI --mode tabular --pretty --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14461,7 +14577,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA  ethernet
 
 <<<
 size: 216
-location: clients/tests/test-client.py:977:test_003()/334
+location: clients/tests/test-client.py:978:test_003()/334
 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet
 lang: C
 returncode: 10
@@ -14471,7 +14587,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 238
-location: clients/tests/test-client.py:977:test_003()/335
+location: clients/tests/test-client.py:978:test_003()/335
 cmd: $NMCLI --mode tabular --pretty --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -14481,7 +14597,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 1244
-location: clients/tests/test-client.py:980:test_003()/336
+location: clients/tests/test-client.py:981:test_003()/336
 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -14500,7 +14616,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     deactivating
 
 <<<
 size: 1289
-location: clients/tests/test-client.py:980:test_003()/337
+location: clients/tests/test-client.py:981:test_003()/337
 cmd: $NMCLI --mode tabular --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14519,7 +14635,7 @@ GENERAL  ethernet  UUID-ethernet-REPLACED-REPLACED-REPL  eth0     dezaktywowanie
 
 <<<
 size: 4540
-location: clients/tests/test-client.py:983:test_003()/338
+location: clients/tests/test-client.py:984:test_003()/338
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -14562,7 +14678,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 4614
-location: clients/tests/test-client.py:983:test_003()/339
+location: clients/tests/test-client.py:984:test_003()/339
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14605,7 +14721,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}  5fcfd6
 
 <<<
 size: 1176
-location: clients/tests/test-client.py:971:test_003()/340
+location: clients/tests/test-client.py:972:test_003()/340
 cmd: $NMCLI --mode tabular --terse -f ALL con
 lang: C
 returncode: 0
@@ -14619,7 +14735,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 1186
-location: clients/tests/test-client.py:971:test_003()/341
+location: clients/tests/test-client.py:972:test_003()/341
 cmd: $NMCLI --mode tabular --terse -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14633,7 +14749,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 304
-location: clients/tests/test-client.py:974:test_003()/342
+location: clients/tests/test-client.py:975:test_003()/342
 cmd: $NMCLI --mode tabular --terse -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -14645,7 +14761,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 314
-location: clients/tests/test-client.py:974:test_003()/343
+location: clients/tests/test-client.py:975:test_003()/343
 cmd: $NMCLI --mode tabular --terse -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14657,7 +14773,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 203
-location: clients/tests/test-client.py:977:test_003()/344
+location: clients/tests/test-client.py:978:test_003()/344
 cmd: $NMCLI --mode tabular --terse con s ethernet
 lang: C
 returncode: 10
@@ -14667,7 +14783,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 225
-location: clients/tests/test-client.py:977:test_003()/345
+location: clients/tests/test-client.py:978:test_003()/345
 cmd: $NMCLI --mode tabular --terse con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -14677,7 +14793,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 386
-location: clients/tests/test-client.py:980:test_003()/346
+location: clients/tests/test-client.py:981:test_003()/346
 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -14687,7 +14803,7 @@ GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::n
 
 <<<
 size: 396
-location: clients/tests/test-client.py:980:test_003()/347
+location: clients/tests/test-client.py:981:test_003()/347
 cmd: $NMCLI --mode tabular --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14697,7 +14813,7 @@ GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::n
 
 <<<
 size: 1395
-location: clients/tests/test-client.py:983:test_003()/348
+location: clients/tests/test-client.py:984:test_003()/348
 cmd: $NMCLI --mode tabular --terse -f all dev show eth0
 lang: C
 returncode: 0
@@ -14714,7 +14830,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7
 
 <<<
 size: 1405
-location: clients/tests/test-client.py:983:test_003()/349
+location: clients/tests/test-client.py:984:test_003()/349
 cmd: $NMCLI --mode tabular --terse -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14731,7 +14847,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7
 
 <<<
 size: 1458
-location: clients/tests/test-client.py:971:test_003()/350
+location: clients/tests/test-client.py:972:test_003()/350
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con
 lang: C
 returncode: 0
@@ -14745,7 +14861,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 1468
-location: clients/tests/test-client.py:971:test_003()/351
+location: clients/tests/test-client.py:972:test_003()/351
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14759,7 +14875,7 @@ con-xx1:UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet:0:never:yes:0:no:/or
 
 <<<
 size: 316
-location: clients/tests/test-client.py:974:test_003()/352
+location: clients/tests/test-client.py:975:test_003()/352
 cmd: $NMCLI --mode tabular --terse --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -14771,7 +14887,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 326
-location: clients/tests/test-client.py:974:test_003()/353
+location: clients/tests/test-client.py:975:test_003()/353
 cmd: $NMCLI --mode tabular --terse --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14783,7 +14899,7 @@ UUID-con-xx1-REPLACED-REPLACED-REPLA:802-3-ethernet
 
 <<<
 size: 215
-location: clients/tests/test-client.py:977:test_003()/354
+location: clients/tests/test-client.py:978:test_003()/354
 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet
 lang: C
 returncode: 10
@@ -14793,7 +14909,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 237
-location: clients/tests/test-client.py:977:test_003()/355
+location: clients/tests/test-client.py:978:test_003()/355
 cmd: $NMCLI --mode tabular --terse --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -14803,7 +14919,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 398
-location: clients/tests/test-client.py:980:test_003()/356
+location: clients/tests/test-client.py:981:test_003()/356
 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -14813,7 +14929,7 @@ GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::n
 
 <<<
 size: 408
-location: clients/tests/test-client.py:980:test_003()/357
+location: clients/tests/test-client.py:981:test_003()/357
 cmd: $NMCLI --mode tabular --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14823,7 +14939,7 @@ GENERAL:ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:eth0:deactivating:no:no::n
 
 <<<
 size: 1407
-location: clients/tests/test-client.py:983:test_003()/358
+location: clients/tests/test-client.py:984:test_003()/358
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -14840,7 +14956,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7
 
 <<<
 size: 1417
-location: clients/tests/test-client.py:983:test_003()/359
+location: clients/tests/test-client.py:984:test_003()/359
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14857,7 +14973,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7
 
 <<<
 size: 4194
-location: clients/tests/test-client.py:971:test_003()/360
+location: clients/tests/test-client.py:972:test_003()/360
 cmd: $NMCLI --mode multiline -f ALL con
 lang: C
 returncode: 0
@@ -14941,7 +15057,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 4214
-location: clients/tests/test-client.py:971:test_003()/361
+location: clients/tests/test-client.py:972:test_003()/361
 cmd: $NMCLI --mode multiline -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15025,7 +15141,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 526
-location: clients/tests/test-client.py:974:test_003()/362
+location: clients/tests/test-client.py:975:test_003()/362
 cmd: $NMCLI --mode multiline -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -15040,7 +15156,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 536
-location: clients/tests/test-client.py:974:test_003()/363
+location: clients/tests/test-client.py:975:test_003()/363
 cmd: $NMCLI --mode multiline -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15055,7 +15171,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 197
-location: clients/tests/test-client.py:977:test_003()/364
+location: clients/tests/test-client.py:978:test_003()/364
 cmd: $NMCLI --mode multiline con s ethernet
 lang: C
 returncode: 10
@@ -15065,7 +15181,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 219
-location: clients/tests/test-client.py:977:test_003()/365
+location: clients/tests/test-client.py:978:test_003()/365
 cmd: $NMCLI --mode multiline con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -15075,7 +15191,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 858
-location: clients/tests/test-client.py:980:test_003()/366
+location: clients/tests/test-client.py:981:test_003()/366
 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -15096,7 +15212,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 873
-location: clients/tests/test-client.py:980:test_003()/367
+location: clients/tests/test-client.py:981:test_003()/367
 cmd: $NMCLI --mode multiline c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15117,7 +15233,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 3532
-location: clients/tests/test-client.py:983:test_003()/368
+location: clients/tests/test-client.py:984:test_003()/368
 cmd: $NMCLI --mode multiline -f all dev show eth0
 lang: C
 returncode: 0
@@ -15183,7 +15299,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <invisible> | /org/freedesktop/NetworkMa
 
 <<<
 size: 3569
-location: clients/tests/test-client.py:983:test_003()/369
+location: clients/tests/test-client.py:984:test_003()/369
 cmd: $NMCLI --mode multiline -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15249,7 +15365,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <niewidoczne> | /org/freedesktop/Network
 
 <<<
 size: 4476
-location: clients/tests/test-client.py:971:test_003()/370
+location: clients/tests/test-client.py:972:test_003()/370
 cmd: $NMCLI --mode multiline --color yes -f ALL con
 lang: C
 returncode: 0
@@ -15333,7 +15449,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 4496
-location: clients/tests/test-client.py:971:test_003()/371
+location: clients/tests/test-client.py:972:test_003()/371
 cmd: $NMCLI --mode multiline --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15417,7 +15533,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 538
-location: clients/tests/test-client.py:974:test_003()/372
+location: clients/tests/test-client.py:975:test_003()/372
 cmd: $NMCLI --mode multiline --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -15432,7 +15548,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 548
-location: clients/tests/test-client.py:974:test_003()/373
+location: clients/tests/test-client.py:975:test_003()/373
 cmd: $NMCLI --mode multiline --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15447,7 +15563,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 209
-location: clients/tests/test-client.py:977:test_003()/374
+location: clients/tests/test-client.py:978:test_003()/374
 cmd: $NMCLI --mode multiline --color yes con s ethernet
 lang: C
 returncode: 10
@@ -15457,7 +15573,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 231
-location: clients/tests/test-client.py:977:test_003()/375
+location: clients/tests/test-client.py:978:test_003()/375
 cmd: $NMCLI --mode multiline --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -15467,7 +15583,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 870
-location: clients/tests/test-client.py:980:test_003()/376
+location: clients/tests/test-client.py:981:test_003()/376
 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -15488,7 +15604,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 885
-location: clients/tests/test-client.py:980:test_003()/377
+location: clients/tests/test-client.py:981:test_003()/377
 cmd: $NMCLI --mode multiline --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15509,7 +15625,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 3544
-location: clients/tests/test-client.py:983:test_003()/378
+location: clients/tests/test-client.py:984:test_003()/378
 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -15575,7 +15691,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <invisible> | /org/freedesktop/NetworkMa
 
 <<<
 size: 3581
-location: clients/tests/test-client.py:983:test_003()/379
+location: clients/tests/test-client.py:984:test_003()/379
 cmd: $NMCLI --mode multiline --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15641,7 +15757,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <niewidoczne> | /org/freedesktop/Network
 
 <<<
 size: 4820
-location: clients/tests/test-client.py:971:test_003()/380
+location: clients/tests/test-client.py:972:test_003()/380
 cmd: $NMCLI --mode multiline --pretty -f ALL con
 lang: C
 returncode: 0
@@ -15733,7 +15849,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 4846
-location: clients/tests/test-client.py:971:test_003()/381
+location: clients/tests/test-client.py:972:test_003()/381
 cmd: $NMCLI --mode multiline --pretty -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15825,7 +15941,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 992
-location: clients/tests/test-client.py:974:test_003()/382
+location: clients/tests/test-client.py:975:test_003()/382
 cmd: $NMCLI --mode multiline --pretty -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -15846,7 +15962,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 1008
-location: clients/tests/test-client.py:974:test_003()/383
+location: clients/tests/test-client.py:975:test_003()/383
 cmd: $NMCLI --mode multiline --pretty -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15867,7 +15983,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 206
-location: clients/tests/test-client.py:977:test_003()/384
+location: clients/tests/test-client.py:978:test_003()/384
 cmd: $NMCLI --mode multiline --pretty con s ethernet
 lang: C
 returncode: 10
@@ -15877,7 +15993,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 228
-location: clients/tests/test-client.py:977:test_003()/385
+location: clients/tests/test-client.py:978:test_003()/385
 cmd: $NMCLI --mode multiline --pretty con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -15887,7 +16003,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 1394
-location: clients/tests/test-client.py:980:test_003()/386
+location: clients/tests/test-client.py:981:test_003()/386
 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -15915,7 +16031,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1421
-location: clients/tests/test-client.py:980:test_003()/387
+location: clients/tests/test-client.py:981:test_003()/387
 cmd: $NMCLI --mode multiline --pretty c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15943,7 +16059,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 4392
-location: clients/tests/test-client.py:983:test_003()/388
+location: clients/tests/test-client.py:984:test_003()/388
 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0
 lang: C
 returncode: 0
@@ -16020,7 +16136,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <invisible> | /org/freedesktop/NetworkMa
 
 <<<
 size: 4435
-location: clients/tests/test-client.py:983:test_003()/389
+location: clients/tests/test-client.py:984:test_003()/389
 cmd: $NMCLI --mode multiline --pretty -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16097,7 +16213,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <niewidoczne> | /org/freedesktop/Network
 
 <<<
 size: 5102
-location: clients/tests/test-client.py:971:test_003()/390
+location: clients/tests/test-client.py:972:test_003()/390
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con
 lang: C
 returncode: 0
@@ -16189,7 +16305,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 5128
-location: clients/tests/test-client.py:971:test_003()/391
+location: clients/tests/test-client.py:972:test_003()/391
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16281,7 +16397,7 @@ FILENAME:                               /etc/NetworkManager/system-connections/c
 
 <<<
 size: 1004
-location: clients/tests/test-client.py:974:test_003()/392
+location: clients/tests/test-client.py:975:test_003()/392
 cmd: $NMCLI --mode multiline --pretty --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -16302,7 +16418,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 1020
-location: clients/tests/test-client.py:974:test_003()/393
+location: clients/tests/test-client.py:975:test_003()/393
 cmd: $NMCLI --mode multiline --pretty --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16323,7 +16439,7 @@ TYPE:                                   ethernet
 
 <<<
 size: 218
-location: clients/tests/test-client.py:977:test_003()/394
+location: clients/tests/test-client.py:978:test_003()/394
 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet
 lang: C
 returncode: 10
@@ -16333,7 +16449,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 240
-location: clients/tests/test-client.py:977:test_003()/395
+location: clients/tests/test-client.py:978:test_003()/395
 cmd: $NMCLI --mode multiline --pretty --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -16343,7 +16459,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 1406
-location: clients/tests/test-client.py:980:test_003()/396
+location: clients/tests/test-client.py:981:test_003()/396
 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -16371,7 +16487,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1433
-location: clients/tests/test-client.py:980:test_003()/397
+location: clients/tests/test-client.py:981:test_003()/397
 cmd: $NMCLI --mode multiline --pretty --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16399,7 +16515,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 4404
-location: clients/tests/test-client.py:983:test_003()/398
+location: clients/tests/test-client.py:984:test_003()/398
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -16476,7 +16592,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <invisible> | /org/freedesktop/NetworkMa
 
 <<<
 size: 4447
-location: clients/tests/test-client.py:983:test_003()/399
+location: clients/tests/test-client.py:984:test_003()/399
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16553,7 +16669,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:   <niewidoczne> | /org/freedesktop/Network
 
 <<<
 size: 1873
-location: clients/tests/test-client.py:971:test_003()/400
+location: clients/tests/test-client.py:972:test_003()/400
 cmd: $NMCLI --mode multiline --terse -f ALL con
 lang: C
 returncode: 0
@@ -16637,7 +16753,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1
 
 <<<
 size: 1883
-location: clients/tests/test-client.py:971:test_003()/401
+location: clients/tests/test-client.py:972:test_003()/401
 cmd: $NMCLI --mode multiline --terse -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16721,7 +16837,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1
 
 <<<
 size: 336
-location: clients/tests/test-client.py:974:test_003()/402
+location: clients/tests/test-client.py:975:test_003()/402
 cmd: $NMCLI --mode multiline --terse -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -16736,7 +16852,7 @@ TYPE:802-3-ethernet
 
 <<<
 size: 346
-location: clients/tests/test-client.py:974:test_003()/403
+location: clients/tests/test-client.py:975:test_003()/403
 cmd: $NMCLI --mode multiline --terse -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16751,7 +16867,7 @@ TYPE:802-3-ethernet
 
 <<<
 size: 205
-location: clients/tests/test-client.py:977:test_003()/404
+location: clients/tests/test-client.py:978:test_003()/404
 cmd: $NMCLI --mode multiline --terse con s ethernet
 lang: C
 returncode: 10
@@ -16761,7 +16877,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 227
-location: clients/tests/test-client.py:977:test_003()/405
+location: clients/tests/test-client.py:978:test_003()/405
 cmd: $NMCLI --mode multiline --terse con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -16771,7 +16887,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 569
-location: clients/tests/test-client.py:980:test_003()/406
+location: clients/tests/test-client.py:981:test_003()/406
 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -16792,7 +16908,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 579
-location: clients/tests/test-client.py:980:test_003()/407
+location: clients/tests/test-client.py:981:test_003()/407
 cmd: $NMCLI --mode multiline --terse c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16813,7 +16929,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 2282
-location: clients/tests/test-client.py:983:test_003()/408
+location: clients/tests/test-client.py:984:test_003()/408
 cmd: $NMCLI --mode multiline --terse -f all dev show eth0
 lang: C
 returncode: 0
@@ -16879,7 +16995,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:<invisible> | /org/freedesktop/NetworkManag
 
 <<<
 size: 2292
-location: clients/tests/test-client.py:983:test_003()/409
+location: clients/tests/test-client.py:984:test_003()/409
 cmd: $NMCLI --mode multiline --terse -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16945,7 +17061,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:<invisible> | /org/freedesktop/NetworkManag
 
 <<<
 size: 2155
-location: clients/tests/test-client.py:971:test_003()/410
+location: clients/tests/test-client.py:972:test_003()/410
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con
 lang: C
 returncode: 0
@@ -17029,7 +17145,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1
 
 <<<
 size: 2165
-location: clients/tests/test-client.py:971:test_003()/411
+location: clients/tests/test-client.py:972:test_003()/411
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -17113,7 +17229,7 @@ FILENAME:/etc/NetworkManager/system-connections/con-xx1
 
 <<<
 size: 348
-location: clients/tests/test-client.py:974:test_003()/412
+location: clients/tests/test-client.py:975:test_003()/412
 cmd: $NMCLI --mode multiline --terse --color yes -f UUID,TYPE con
 lang: C
 returncode: 0
@@ -17128,7 +17244,7 @@ TYPE:802-3-ethernet
 
 <<<
 size: 358
-location: clients/tests/test-client.py:974:test_003()/413
+location: clients/tests/test-client.py:975:test_003()/413
 cmd: $NMCLI --mode multiline --terse --color yes -f UUID,TYPE con
 lang: pl_PL.UTF-8
 returncode: 0
@@ -17143,7 +17259,7 @@ TYPE:802-3-ethernet
 
 <<<
 size: 217
-location: clients/tests/test-client.py:977:test_003()/414
+location: clients/tests/test-client.py:978:test_003()/414
 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet
 lang: C
 returncode: 10
@@ -17153,7 +17269,7 @@ Error: ethernet - no such connection profile.
 
 <<<
 size: 239
-location: clients/tests/test-client.py:977:test_003()/415
+location: clients/tests/test-client.py:978:test_003()/415
 cmd: $NMCLI --mode multiline --terse --color yes con s ethernet
 lang: pl_PL.UTF-8
 returncode: 10
@@ -17163,7 +17279,7 @@ Błąd: ethernet — nie ma takiego profilu połączenia.
 
 <<<
 size: 581
-location: clients/tests/test-client.py:980:test_003()/416
+location: clients/tests/test-client.py:981:test_003()/416
 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: C
 returncode: 0
@@ -17184,7 +17300,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 591
-location: clients/tests/test-client.py:980:test_003()/417
+location: clients/tests/test-client.py:981:test_003()/417
 cmd: $NMCLI --mode multiline --terse --color yes c s /org/freedesktop/NetworkManager/ActiveConnection/1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -17205,7 +17321,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 2294
-location: clients/tests/test-client.py:983:test_003()/418
+location: clients/tests/test-client.py:984:test_003()/418
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0
 lang: C
 returncode: 0
@@ -17271,7 +17387,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[3]:<invisible> | /org/freedesktop/NetworkManag
 
 <<<
 size: 2304
-location: clients/tests/test-client.py:983:test_003()/419
+location: clients/tests/test-client.py:984:test_003()/419
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0
 lang: pl_PL.UTF-8
 returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_004.expected b/clients/tests/test-client.check-on-disk/test_004.expected
index d62778c5..48f68a5b 100644
--- a/clients/tests/test-client.check-on-disk/test_004.expected
+++ b/clients/tests/test-client.check-on-disk/test_004.expected
@@ -1,5 +1,5 @@
 size: 252
-location: clients/tests/test-client.py:994:test_004()/1
+location: clients/tests/test-client.py:995:test_004()/1
 cmd: $NMCLI c add type wifi ifname '*' ssid foobar con-name con-xx1
 lang: C
 returncode: 0
@@ -9,7 +9,7 @@ Connection 'con-xx1' (UUID-con-xx1-REPLACED-REPLACED-REPLA) successfully added.
 
 <<<
 size: 228
-location: clients/tests/test-client.py:996:test_004()/2
+location: clients/tests/test-client.py:997:test_004()/2
 cmd: $NMCLI connection mod con-xx1 ip.gateway ''
 lang: C
 returncode: 2
@@ -19,7 +19,7 @@ Error: invalid or not allowed setting 'ip': 'ip' is ambiguous: ipv4, ipv6.
 
 <<<
 size: 317
-location: clients/tests/test-client.py:997:test_004()/3
+location: clients/tests/test-client.py:998:test_004()/3
 cmd: $NMCLI connection mod con-xx1 ipv4.gateway 172.16.0.1
 lang: pl_PL.UTF-8
 returncode: 1
@@ -29,7 +29,7 @@ Błąd: zmodyfikowanie połączenia „con-xx1” się nie powiodło: ipv4.gatew
 
 <<<
 size: 277
-location: clients/tests/test-client.py:998:test_004()/4
+location: clients/tests/test-client.py:999:test_004()/4
 cmd: $NMCLI connection mod con-xx1 ipv6.gateway ::99
 lang: C
 returncode: 1
@@ -38,8 +38,8 @@ stderr: 119 bytes
 Error: Failed to modify connection 'con-xx1': ipv6.gateway: gateway cannot be set if there are no addresses configured
 
 <<<
-size: 267
-location: clients/tests/test-client.py:999:test_004()/5
+size: 268
+location: clients/tests/test-client.py:1000:test_004()/5
 cmd: $NMCLI connection mod con-xx1 802.abc ''
 lang: C
 returncode: 2
@@ -49,21 +49,21 @@ Error: invalid or not allowed setting '802': '802' is ambiguous: 802-11-wireless
 
 <<<
 size: 137
-location: clients/tests/test-client.py:1000:test_004()/6
+location: clients/tests/test-client.py:1001:test_004()/6
 cmd: $NMCLI connection mod con-xx1 802-11-wireless.band a
 lang: C
 returncode: 0
 size: 243
-location: clients/tests/test-client.py:1001:test_004()/7
+location: clients/tests/test-client.py:1002:test_004()/7
 cmd: $NMCLI connection mod con-xx1 ipv4.addresses 192.168.77.5/24 ipv4.routes '2.3.4.5/32 192.168.77.1' ipv6.addresses 1:2:3:4::6/64 ipv6.routes 1:2:3:4:5:6::5/128
 lang: C
 returncode: 0
-size: 4048
-location: clients/tests/test-client.py:1003:test_004()/8
+size: 4134
+location: clients/tests/test-client.py:1004:test_004()/8
 cmd: $NMCLI con s con-xx1
 lang: C
 returncode: 0
-stdout: 3915 bytes
+stdout: 4001 bytes
 >>>
 connection.id:                          con-xx1
 connection.uuid:                        UUID-con-xx1-REPLACED-REPLACED-REPLA
@@ -115,6 +115,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            { ip = 2.3.4.5/32, nh = 192.168.77.1 }
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -135,6 +136,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            { ip = 1:2:3:4:5:6:0:5/128 }
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -151,12 +153,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 4076
-location: clients/tests/test-client.py:1003:test_004()/9
+size: 4162
+location: clients/tests/test-client.py:1004:test_004()/9
 cmd: $NMCLI con s con-xx1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3933 bytes
+stdout: 4019 bytes
 >>>
 connection.id:                          con-xx1
 connection.uuid:                        UUID-con-xx1-REPLACED-REPLACED-REPLA
@@ -208,6 +210,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            { ip = 2.3.4.5/32, nh = 192.168.77.1 }
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -228,6 +231,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            { ip = 1:2:3:4:5:6:0:5/128 }
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -245,7 +249,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 321
-location: clients/tests/test-client.py:1010:test_004()/10
+location: clients/tests/test-client.py:1011:test_004()/10
 cmd: $NMCLI connection add type vpn con-name con-vpn-1 ifname '*' vpn-type openvpn vpn.data 'key1 = val1,   key2  = val2, key3=val3'
 lang: C
 returncode: 0
@@ -255,7 +259,7 @@ Connection 'con-vpn-1' (UUID-con-vpn-1-REPLACED-REPLACED-REP) successfully added
 
 <<<
 size: 393
-location: clients/tests/test-client.py:1013:test_004()/11
+location: clients/tests/test-client.py:1014:test_004()/11
 cmd: $NMCLI con s
 lang: C
 returncode: 0
@@ -268,7 +272,7 @@ con-xx1    UUID-con-xx1-REPLACED-REPLACED-REPLA  wifi      --
 
 <<<
 size: 403
-location: clients/tests/test-client.py:1013:test_004()/12
+location: clients/tests/test-client.py:1014:test_004()/12
 cmd: $NMCLI con s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -280,12 +284,12 @@ con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  vpn       --
 con-xx1    UUID-con-xx1-REPLACED-REPLACED-REPLA  wifi      --     
 
 <<<
-size: 3515
-location: clients/tests/test-client.py:1015:test_004()/13
+size: 3601
+location: clients/tests/test-client.py:1016:test_004()/13
 cmd: $NMCLI con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3379 bytes
+stdout: 3465 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -320,6 +324,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -340,6 +345,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -362,12 +368,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 3535
-location: clients/tests/test-client.py:1015:test_004()/14
+size: 3621
+location: clients/tests/test-client.py:1016:test_004()/14
 cmd: $NMCLI con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3389 bytes
+stdout: 3475 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -402,6 +408,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -422,6 +429,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -445,7 +453,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 240
-location: clients/tests/test-client.py:1017:test_004()/15
+location: clients/tests/test-client.py:1018:test_004()/15
 cmd: $NMCLI con up con-xx1
 lang: C
 returncode: 0
@@ -455,7 +463,7 @@ Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkMa
 
 <<<
 size: 393
-location: clients/tests/test-client.py:1019:test_004()/16
+location: clients/tests/test-client.py:1020:test_004()/16
 cmd: $NMCLI con s
 lang: C
 returncode: 0
@@ -468,7 +476,7 @@ con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  vpn       --
 
 <<<
 size: 403
-location: clients/tests/test-client.py:1019:test_004()/17
+location: clients/tests/test-client.py:1020:test_004()/17
 cmd: $NMCLI con s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -481,7 +489,7 @@ con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  vpn       --
 
 <<<
 size: 242
-location: clients/tests/test-client.py:1021:test_004()/18
+location: clients/tests/test-client.py:1022:test_004()/18
 cmd: $NMCLI con up con-vpn-1
 lang: C
 returncode: 0
@@ -491,7 +499,7 @@ Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkMa
 
 <<<
 size: 393
-location: clients/tests/test-client.py:1023:test_004()/19
+location: clients/tests/test-client.py:1024:test_004()/19
 cmd: $NMCLI con s
 lang: C
 returncode: 0
@@ -504,7 +512,7 @@ con-1      5fcfd6d7-1e63-3332-8826-a7eda103792d  ethernet  --
 
 <<<
 size: 403
-location: clients/tests/test-client.py:1023:test_004()/20
+location: clients/tests/test-client.py:1024:test_004()/20
 cmd: $NMCLI con s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -516,12 +524,12 @@ con-xx1    UUID-con-xx1-REPLACED-REPLACED-REPLA  wifi      wlan0
 con-1      5fcfd6d7-1e63-3332-8826-a7eda103792d  ethernet  --     
 
 <<<
-size: 4597
-location: clients/tests/test-client.py:1025:test_004()/21
+size: 4683
+location: clients/tests/test-client.py:1026:test_004()/21
 cmd: $NMCLI con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4461 bytes
+stdout: 4547 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -556,6 +564,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -576,6 +585,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -618,12 +628,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4623
-location: clients/tests/test-client.py:1025:test_004()/22
+size: 4709
+location: clients/tests/test-client.py:1026:test_004()/22
 cmd: $NMCLI con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4477 bytes
+stdout: 4563 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -658,6 +668,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -678,6 +689,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -720,12 +732,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4603
-location: clients/tests/test-client.py:1036:test_004()/23
+size: 4689
+location: clients/tests/test-client.py:1037:test_004()/23
 cmd: $NMCLI con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4467 bytes
+stdout: 4553 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -760,6 +772,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -780,6 +793,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -822,12 +836,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4633
-location: clients/tests/test-client.py:1036:test_004()/24
+size: 4719
+location: clients/tests/test-client.py:1037:test_004()/24
 cmd: $NMCLI con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4487 bytes
+stdout: 4573 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -862,6 +876,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -882,6 +897,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -924,12 +940,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4603
-location: clients/tests/test-client.py:1038:test_004()/25
+size: 4689
+location: clients/tests/test-client.py:1039:test_004()/25
 cmd: $NMCLI con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4467 bytes
+stdout: 4553 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -964,6 +980,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -984,6 +1001,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -1026,12 +1044,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4633
-location: clients/tests/test-client.py:1038:test_004()/26
+size: 4719
+location: clients/tests/test-client.py:1039:test_004()/26
 cmd: $NMCLI con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4487 bytes
+stdout: 4573 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -1066,6 +1084,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -1086,6 +1105,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -1128,12 +1148,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 3522
-location: clients/tests/test-client.py:1041:test_004()/27
+size: 3608
+location: clients/tests/test-client.py:1042:test_004()/27
 cmd: $NMCLI -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3379 bytes
+stdout: 3465 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -1168,6 +1188,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -1188,6 +1209,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -1210,12 +1232,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 3542
-location: clients/tests/test-client.py:1041:test_004()/28
+size: 3628
+location: clients/tests/test-client.py:1042:test_004()/28
 cmd: $NMCLI -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3389 bytes
+stdout: 3475 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -1250,6 +1272,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -1270,6 +1293,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -1293,7 +1317,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 476
-location: clients/tests/test-client.py:1047:test_004()/29
+location: clients/tests/test-client.py:1048:test_004()/29
 cmd: $NMCLI -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -1308,7 +1332,7 @@ vpn.timeout:                            0
 
 <<<
 size: 487
-location: clients/tests/test-client.py:1047:test_004()/30
+location: clients/tests/test-client.py:1048:test_004()/30
 cmd: $NMCLI -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1323,7 +1347,7 @@ vpn.timeout:                            0
 
 <<<
 size: 813
-location: clients/tests/test-client.py:1050:test_004()/31
+location: clients/tests/test-client.py:1051:test_004()/31
 cmd: $NMCLI -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -1344,7 +1368,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 826
-location: clients/tests/test-client.py:1050:test_004()/32
+location: clients/tests/test-client.py:1051:test_004()/32
 cmd: $NMCLI -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1365,7 +1389,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 383
-location: clients/tests/test-client.py:1053:test_004()/33
+location: clients/tests/test-client.py:1054:test_004()/33
 cmd: $NMCLI dev s
 lang: C
 returncode: 0
@@ -1380,7 +1404,7 @@ wlan1   wifi      unavailable  --
 
 <<<
 size: 398
-location: clients/tests/test-client.py:1053:test_004()/34
+location: clients/tests/test-client.py:1054:test_004()/34
 cmd: $NMCLI dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1395,7 +1419,7 @@ wlan1   wifi      niedostępne  --
 
 <<<
 size: 1410
-location: clients/tests/test-client.py:1056:test_004()/35
+location: clients/tests/test-client.py:1057:test_004()/35
 cmd: $NMCLI -f all dev status
 lang: C
 returncode: 0
@@ -1410,7 +1434,7 @@ wlan1   wifi      unavailable  unknown           unknown           /org/freedesk
 
 <<<
 size: 1425
-location: clients/tests/test-client.py:1056:test_004()/36
+location: clients/tests/test-client.py:1057:test_004()/36
 cmd: $NMCLI -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1425,7 +1449,7 @@ wlan1   wifi      niedostępne  nieznane          nieznane          /org/freedes
 
 <<<
 size: 8047
-location: clients/tests/test-client.py:1059:test_004()/37
+location: clients/tests/test-client.py:1060:test_004()/37
 cmd: $NMCLI dev show
 lang: C
 returncode: 0
@@ -1571,7 +1595,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 8078
-location: clients/tests/test-client.py:1059:test_004()/38
+location: clients/tests/test-client.py:1060:test_004()/38
 cmd: $NMCLI dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -1717,7 +1741,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 20660
-location: clients/tests/test-client.py:1062:test_004()/39
+location: clients/tests/test-client.py:1063:test_004()/39
 cmd: $NMCLI -f all dev show
 lang: C
 returncode: 0
@@ -2106,7 +2130,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 20810
-location: clients/tests/test-client.py:1062:test_004()/40
+location: clients/tests/test-client.py:1063:test_004()/40
 cmd: $NMCLI -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2495,7 +2519,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1498
-location: clients/tests/test-client.py:1065:test_004()/41
+location: clients/tests/test-client.py:1066:test_004()/41
 cmd: $NMCLI dev show wlan0
 lang: C
 returncode: 0
@@ -2528,7 +2552,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 1509
-location: clients/tests/test-client.py:1065:test_004()/42
+location: clients/tests/test-client.py:1066:test_004()/42
 cmd: $NMCLI dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2561,7 +2585,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 4847
-location: clients/tests/test-client.py:1068:test_004()/43
+location: clients/tests/test-client.py:1069:test_004()/43
 cmd: $NMCLI -f all dev show wlan0
 lang: C
 returncode: 0
@@ -2661,7 +2685,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 4902
-location: clients/tests/test-client.py:1068:test_004()/44
+location: clients/tests/test-client.py:1069:test_004()/44
 cmd: $NMCLI -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2761,7 +2785,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1960
-location: clients/tests/test-client.py:1071:test_004()/45
+location: clients/tests/test-client.py:1072:test_004()/45
 cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -2806,7 +2830,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 1984
-location: clients/tests/test-client.py:1071:test_004()/46
+location: clients/tests/test-client.py:1072:test_004()/46
 cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2851,7 +2875,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 1960
-location: clients/tests/test-client.py:1074:test_004()/47
+location: clients/tests/test-client.py:1075:test_004()/47
 cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -2896,7 +2920,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 1984
-location: clients/tests/test-client.py:1074:test_004()/48
+location: clients/tests/test-client.py:1075:test_004()/48
 cmd: $NMCLI -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2941,7 +2965,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 514
-location: clients/tests/test-client.py:1077:test_004()/49
+location: clients/tests/test-client.py:1078:test_004()/49
 cmd: $NMCLI -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -2956,7 +2980,7 @@ wlan1   wifi      /org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 524
-location: clients/tests/test-client.py:1077:test_004()/50
+location: clients/tests/test-client.py:1078:test_004()/50
 cmd: $NMCLI -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -2971,7 +2995,7 @@ wlan1   wifi      /org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 1984
-location: clients/tests/test-client.py:1080:test_004()/51
+location: clients/tests/test-client.py:1081:test_004()/51
 cmd: $NMCLI -f ALL device wifi list
 lang: C
 returncode: 0
@@ -2989,7 +3013,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 2052
-location: clients/tests/test-client.py:1080:test_004()/52
+location: clients/tests/test-client.py:1081:test_004()/52
 cmd: $NMCLI -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3007,7 +3031,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 618
-location: clients/tests/test-client.py:1082:test_004()/53
+location: clients/tests/test-client.py:1083:test_004()/53
 cmd: $NMCLI -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -3025,7 +3049,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 678
-location: clients/tests/test-client.py:1082:test_004()/54
+location: clients/tests/test-client.py:1083:test_004()/54
 cmd: $NMCLI -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3043,7 +3067,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 2097
-location: clients/tests/test-client.py:1085:test_004()/55
+location: clients/tests/test-client.py:1086:test_004()/55
 cmd: $NMCLI -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -3061,7 +3085,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 2165
-location: clients/tests/test-client.py:1085:test_004()/56
+location: clients/tests/test-client.py:1086:test_004()/56
 cmd: $NMCLI -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3079,7 +3103,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 737
-location: clients/tests/test-client.py:1087:test_004()/57
+location: clients/tests/test-client.py:1088:test_004()/57
 cmd: $NMCLI -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -3092,7 +3116,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infra  1     2412 MH
 
 <<<
 size: 765
-location: clients/tests/test-client.py:1087:test_004()/58
+location: clients/tests/test-client.py:1088:test_004()/58
 cmd: $NMCLI -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3105,7 +3129,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infrastruktura  1
 
 <<<
 size: 310
-location: clients/tests/test-client.py:1089:test_004()/59
+location: clients/tests/test-client.py:1090:test_004()/59
 cmd: $NMCLI -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -3118,7 +3142,7 @@ IN-USE  SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
 
 <<<
 size: 336
-location: clients/tests/test-client.py:1089:test_004()/60
+location: clients/tests/test-client.py:1090:test_004()/60
 cmd: $NMCLI -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3131,7 +3155,7 @@ IN-USE  SSID        MODE            CHAN  RATE     SIGNAL  BARS  SECURITY
 
 <<<
 size: 850
-location: clients/tests/test-client.py:1092:test_004()/61
+location: clients/tests/test-client.py:1093:test_004()/61
 cmd: $NMCLI -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -3144,7 +3168,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infra  1     2412 MH
 
 <<<
 size: 878
-location: clients/tests/test-client.py:1092:test_004()/62
+location: clients/tests/test-client.py:1093:test_004()/62
 cmd: $NMCLI -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3157,7 +3181,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infrastruktura  1
 
 <<<
 size: 4850
-location: clients/tests/test-client.py:1094:test_004()/63
+location: clients/tests/test-client.py:1095:test_004()/63
 cmd: $NMCLI -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -3257,7 +3281,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 4905
-location: clients/tests/test-client.py:1094:test_004()/64
+location: clients/tests/test-client.py:1095:test_004()/64
 cmd: $NMCLI -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3357,7 +3381,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1511
-location: clients/tests/test-client.py:1096:test_004()/65
+location: clients/tests/test-client.py:1097:test_004()/65
 cmd: $NMCLI -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -3390,7 +3414,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 1522
-location: clients/tests/test-client.py:1096:test_004()/66
+location: clients/tests/test-client.py:1097:test_004()/66
 cmd: $NMCLI -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3423,7 +3447,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 4988
-location: clients/tests/test-client.py:1098:test_004()/67
+location: clients/tests/test-client.py:1099:test_004()/67
 cmd: $NMCLI -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -3523,7 +3547,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 5043
-location: clients/tests/test-client.py:1098:test_004()/68
+location: clients/tests/test-client.py:1099:test_004()/68
 cmd: $NMCLI -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -3622,12 +3646,72 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings
 CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 4615
-location: clients/tests/test-client.py:1036:test_004()/69
+size: 1434
+location: clients/tests/test-client.py:1102:test_004()/69
+cmd: $NMCLI dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1288 bytes
+>>>
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+
+<<<
+size: 1444
+location: clients/tests/test-client.py:1102:test_004()/70
+cmd: $NMCLI dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1288 bytes
+>>>
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+
+<<<
+size: 4701
+location: clients/tests/test-client.py:1037:test_004()/71
 cmd: $NMCLI --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4467 bytes
+stdout: 4553 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -3662,6 +3746,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -3682,6 +3767,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -3724,12 +3810,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4645
-location: clients/tests/test-client.py:1036:test_004()/70
+size: 4731
+location: clients/tests/test-client.py:1037:test_004()/72
 cmd: $NMCLI --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4487 bytes
+stdout: 4573 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -3764,6 +3850,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -3784,6 +3871,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -3826,12 +3914,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4615
-location: clients/tests/test-client.py:1038:test_004()/71
+size: 4701
+location: clients/tests/test-client.py:1039:test_004()/73
 cmd: $NMCLI --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4467 bytes
+stdout: 4553 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -3866,6 +3954,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -3886,6 +3975,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -3928,12 +4018,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4645
-location: clients/tests/test-client.py:1038:test_004()/72
+size: 4731
+location: clients/tests/test-client.py:1039:test_004()/74
 cmd: $NMCLI --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4487 bytes
+stdout: 4573 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -3968,6 +4058,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -3988,6 +4079,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -4030,12 +4122,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 3534
-location: clients/tests/test-client.py:1041:test_004()/73
+size: 3620
+location: clients/tests/test-client.py:1042:test_004()/75
 cmd: $NMCLI --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3379 bytes
+stdout: 3465 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -4070,6 +4162,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -4090,6 +4183,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -4112,12 +4206,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 3554
-location: clients/tests/test-client.py:1041:test_004()/74
+size: 3640
+location: clients/tests/test-client.py:1042:test_004()/76
 cmd: $NMCLI --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3389 bytes
+stdout: 3475 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -4152,6 +4246,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -4172,6 +4267,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -4195,7 +4291,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 488
-location: clients/tests/test-client.py:1047:test_004()/75
+location: clients/tests/test-client.py:1048:test_004()/77
 cmd: $NMCLI --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -4210,7 +4306,7 @@ vpn.timeout:                            0
 
 <<<
 size: 499
-location: clients/tests/test-client.py:1047:test_004()/76
+location: clients/tests/test-client.py:1048:test_004()/78
 cmd: $NMCLI --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4225,7 +4321,7 @@ vpn.timeout:                            0
 
 <<<
 size: 825
-location: clients/tests/test-client.py:1050:test_004()/77
+location: clients/tests/test-client.py:1051:test_004()/79
 cmd: $NMCLI --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -4246,7 +4342,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 838
-location: clients/tests/test-client.py:1050:test_004()/78
+location: clients/tests/test-client.py:1051:test_004()/80
 cmd: $NMCLI --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4267,7 +4363,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 555
-location: clients/tests/test-client.py:1053:test_004()/79
+location: clients/tests/test-client.py:1054:test_004()/81
 cmd: $NMCLI --color yes dev s
 lang: C
 returncode: 0
@@ -4282,7 +4378,7 @@ DEVICE  TYPE      STATE        CONNECTION
 
 <<<
 size: 570
-location: clients/tests/test-client.py:1053:test_004()/80
+location: clients/tests/test-client.py:1054:test_004()/82
 cmd: $NMCLI --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4297,7 +4393,7 @@ DEVICE  TYPE      STATE        CONNECTION
 
 <<<
 size: 1782
-location: clients/tests/test-client.py:1056:test_004()/81
+location: clients/tests/test-client.py:1057:test_004()/83
 cmd: $NMCLI --color yes -f all dev status
 lang: C
 returncode: 0
@@ -4312,7 +4408,7 @@ DEVICE  TYPE      STATE        IP4-CONNECTIVITY  IP6-CONNECTIVITY  DBUS-PATH
 
 <<<
 size: 1797
-location: clients/tests/test-client.py:1056:test_004()/82
+location: clients/tests/test-client.py:1057:test_004()/84
 cmd: $NMCLI --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4327,7 +4423,7 @@ DEVICE  TYPE      STATE        IP4-CONNECTIVITY  IP6-CONNECTIVITY  DBUS-PATH
 
 <<<
 size: 8059
-location: clients/tests/test-client.py:1059:test_004()/83
+location: clients/tests/test-client.py:1060:test_004()/85
 cmd: $NMCLI --color yes dev show
 lang: C
 returncode: 0
@@ -4473,7 +4569,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 8090
-location: clients/tests/test-client.py:1059:test_004()/84
+location: clients/tests/test-client.py:1060:test_004()/86
 cmd: $NMCLI --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -4619,7 +4715,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 20960
-location: clients/tests/test-client.py:1062:test_004()/85
+location: clients/tests/test-client.py:1063:test_004()/87
 cmd: $NMCLI --color yes -f all dev show
 lang: C
 returncode: 0
@@ -5008,7 +5104,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 21110
-location: clients/tests/test-client.py:1062:test_004()/86
+location: clients/tests/test-client.py:1063:test_004()/88
 cmd: $NMCLI --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5397,7 +5493,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1510
-location: clients/tests/test-client.py:1065:test_004()/87
+location: clients/tests/test-client.py:1066:test_004()/89
 cmd: $NMCLI --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -5430,7 +5526,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 1521
-location: clients/tests/test-client.py:1065:test_004()/88
+location: clients/tests/test-client.py:1066:test_004()/90
 cmd: $NMCLI --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5463,7 +5559,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 5075
-location: clients/tests/test-client.py:1068:test_004()/89
+location: clients/tests/test-client.py:1069:test_004()/91
 cmd: $NMCLI --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -5563,7 +5659,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 5130
-location: clients/tests/test-client.py:1068:test_004()/90
+location: clients/tests/test-client.py:1069:test_004()/92
 cmd: $NMCLI --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5663,7 +5759,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1972
-location: clients/tests/test-client.py:1071:test_004()/91
+location: clients/tests/test-client.py:1072:test_004()/93
 cmd: $NMCLI --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -5708,7 +5804,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 1996
-location: clients/tests/test-client.py:1071:test_004()/92
+location: clients/tests/test-client.py:1072:test_004()/94
 cmd: $NMCLI --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5753,7 +5849,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 1972
-location: clients/tests/test-client.py:1074:test_004()/93
+location: clients/tests/test-client.py:1075:test_004()/95
 cmd: $NMCLI --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -5798,7 +5894,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 1996
-location: clients/tests/test-client.py:1074:test_004()/94
+location: clients/tests/test-client.py:1075:test_004()/96
 cmd: $NMCLI --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5843,7 +5939,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 646
-location: clients/tests/test-client.py:1077:test_004()/95
+location: clients/tests/test-client.py:1078:test_004()/97
 cmd: $NMCLI --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -5858,7 +5954,7 @@ DEVICE  TYPE      DBUS-PATH
 
 <<<
 size: 656
-location: clients/tests/test-client.py:1077:test_004()/96
+location: clients/tests/test-client.py:1078:test_004()/98
 cmd: $NMCLI --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5873,7 +5969,7 @@ DEVICE  TYPE      DBUS-PATH
 
 <<<
 size: 2608
-location: clients/tests/test-client.py:1080:test_004()/97
+location: clients/tests/test-client.py:1081:test_004()/99
 cmd: $NMCLI --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -5890,8 +5986,8 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA-FLAGS  RSN-FLAGS  DEVICE  ACTIVE  IN-USE  DBUS-PATH 
 
 <<<
-size: 2676
-location: clients/tests/test-client.py:1080:test_004()/98
+size: 2677
+location: clients/tests/test-client.py:1081:test_004()/100
 cmd: $NMCLI --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5908,8 +6004,8 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA-FLAGS  RSN-FLAGS  DEVICE  ACTIVE  IN-USE  DBUS-PATH 
 
 <<<
-size: 918
-location: clients/tests/test-client.py:1082:test_004()/99
+size: 919
+location: clients/tests/test-client.py:1083:test_004()/101
 cmd: $NMCLI --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -5927,7 +6023,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 979
-location: clients/tests/test-client.py:1082:test_004()/100
+location: clients/tests/test-client.py:1083:test_004()/102
 cmd: $NMCLI --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5945,7 +6041,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 2722
-location: clients/tests/test-client.py:1085:test_004()/101
+location: clients/tests/test-client.py:1086:test_004()/103
 cmd: $NMCLI --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -5963,7 +6059,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 2790
-location: clients/tests/test-client.py:1085:test_004()/102
+location: clients/tests/test-client.py:1086:test_004()/104
 cmd: $NMCLI --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -5981,7 +6077,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 903
-location: clients/tests/test-client.py:1087:test_004()/103
+location: clients/tests/test-client.py:1088:test_004()/105
 cmd: $NMCLI --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -5994,7 +6090,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 
 <<<
 size: 931
-location: clients/tests/test-client.py:1087:test_004()/104
+location: clients/tests/test-client.py:1088:test_004()/106
 cmd: $NMCLI --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6007,7 +6103,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 
 <<<
 size: 395
-location: clients/tests/test-client.py:1089:test_004()/105
+location: clients/tests/test-client.py:1090:test_004()/107
 cmd: $NMCLI --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -6020,7 +6116,7 @@ IN-USE  SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
 
 <<<
 size: 421
-location: clients/tests/test-client.py:1089:test_004()/106
+location: clients/tests/test-client.py:1090:test_004()/108
 cmd: $NMCLI --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6033,7 +6129,7 @@ IN-USE  SSID        MODE            CHAN  RATE     SIGNAL  BARS  SECURITY
 
 <<<
 size: 1016
-location: clients/tests/test-client.py:1092:test_004()/107
+location: clients/tests/test-client.py:1093:test_004()/109
 cmd: $NMCLI --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -6046,7 +6142,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 
 <<<
 size: 1044
-location: clients/tests/test-client.py:1092:test_004()/108
+location: clients/tests/test-client.py:1093:test_004()/110
 cmd: $NMCLI --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6059,7 +6155,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 
 <<<
 size: 5079
-location: clients/tests/test-client.py:1094:test_004()/109
+location: clients/tests/test-client.py:1095:test_004()/111
 cmd: $NMCLI --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -6159,7 +6255,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 5134
-location: clients/tests/test-client.py:1094:test_004()/110
+location: clients/tests/test-client.py:1095:test_004()/112
 cmd: $NMCLI --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6259,7 +6355,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1524
-location: clients/tests/test-client.py:1096:test_004()/111
+location: clients/tests/test-client.py:1097:test_004()/113
 cmd: $NMCLI --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -6292,7 +6388,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 1535
-location: clients/tests/test-client.py:1096:test_004()/112
+location: clients/tests/test-client.py:1097:test_004()/114
 cmd: $NMCLI --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6325,7 +6421,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 5217
-location: clients/tests/test-client.py:1098:test_004()/113
+location: clients/tests/test-client.py:1099:test_004()/115
 cmd: $NMCLI --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -6425,7 +6521,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 5272
-location: clients/tests/test-client.py:1098:test_004()/114
+location: clients/tests/test-client.py:1099:test_004()/116
 cmd: $NMCLI --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -6524,12 +6620,72 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings
 CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 5625
-location: clients/tests/test-client.py:1036:test_004()/115
+size: 1447
+location: clients/tests/test-client.py:1102:test_004()/117
+cmd: $NMCLI --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1288 bytes
+>>>
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+
+<<<
+size: 1457
+location: clients/tests/test-client.py:1102:test_004()/118
+cmd: $NMCLI --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1288 bytes
+>>>
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+
+<<<
+size: 5711
+location: clients/tests/test-client.py:1037:test_004()/119
 cmd: $NMCLI --pretty con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 5479 bytes
+stdout: 5565 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -6568,6 +6724,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -6589,6 +6746,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -6639,12 +6797,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5667
-location: clients/tests/test-client.py:1036:test_004()/116
+size: 5753
+location: clients/tests/test-client.py:1037:test_004()/120
 cmd: $NMCLI --pretty con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5511 bytes
+stdout: 5597 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -6683,6 +6841,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -6704,6 +6863,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -6754,12 +6914,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5625
-location: clients/tests/test-client.py:1038:test_004()/117
+size: 5711
+location: clients/tests/test-client.py:1039:test_004()/121
 cmd: $NMCLI --pretty con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 5479 bytes
+stdout: 5565 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -6798,6 +6958,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -6819,6 +6980,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -6869,12 +7031,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5667
-location: clients/tests/test-client.py:1038:test_004()/118
+size: 5753
+location: clients/tests/test-client.py:1039:test_004()/122
 cmd: $NMCLI --pretty con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5511 bytes
+stdout: 5597 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -6913,6 +7075,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -6934,6 +7097,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -6984,12 +7148,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 4151
-location: clients/tests/test-client.py:1041:test_004()/119
+size: 4237
+location: clients/tests/test-client.py:1042:test_004()/123
 cmd: $NMCLI --pretty -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3998 bytes
+stdout: 4084 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -7028,6 +7192,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -7049,6 +7214,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -7074,12 +7240,12 @@ proxy.pac-script:                       --
 -------------------------------------------------------------------------------
 
 <<<
-size: 4176
-location: clients/tests/test-client.py:1041:test_004()/120
+size: 4262
+location: clients/tests/test-client.py:1042:test_004()/124
 cmd: $NMCLI --pretty -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4013 bytes
+stdout: 4099 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -7118,6 +7284,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -7139,6 +7306,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -7165,7 +7333,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 785
-location: clients/tests/test-client.py:1047:test_004()/121
+location: clients/tests/test-client.py:1048:test_004()/125
 cmd: $NMCLI --pretty -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -7184,7 +7352,7 @@ vpn.timeout:                            0
 
 <<<
 size: 801
-location: clients/tests/test-client.py:1047:test_004()/122
+location: clients/tests/test-client.py:1048:test_004()/126
 cmd: $NMCLI --pretty -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7203,7 +7371,7 @@ vpn.timeout:                            0
 
 <<<
 size: 1136
-location: clients/tests/test-client.py:1050:test_004()/123
+location: clients/tests/test-client.py:1051:test_004()/127
 cmd: $NMCLI --pretty -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -7228,7 +7396,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1156
-location: clients/tests/test-client.py:1050:test_004()/124
+location: clients/tests/test-client.py:1051:test_004()/128
 cmd: $NMCLI --pretty -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7253,7 +7421,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 522
-location: clients/tests/test-client.py:1053:test_004()/125
+location: clients/tests/test-client.py:1054:test_004()/129
 cmd: $NMCLI --pretty dev s
 lang: C
 returncode: 0
@@ -7272,7 +7440,7 @@ wlan1   wifi      unavailable  --
 
 <<<
 size: 530
-location: clients/tests/test-client.py:1053:test_004()/126
+location: clients/tests/test-client.py:1054:test_004()/130
 cmd: $NMCLI --pretty dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7291,7 +7459,7 @@ wlan1   wifi      niedostępne  --
 
 <<<
 size: 1718
-location: clients/tests/test-client.py:1056:test_004()/127
+location: clients/tests/test-client.py:1057:test_004()/131
 cmd: $NMCLI --pretty -f all dev status
 lang: C
 returncode: 0
@@ -7310,7 +7478,7 @@ wlan1   wifi      unavailable  unknown           unknown           /org/freedesk
 
 <<<
 size: 1726
-location: clients/tests/test-client.py:1056:test_004()/128
+location: clients/tests/test-client.py:1057:test_004()/132
 cmd: $NMCLI --pretty -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7329,7 +7497,7 @@ wlan1   wifi      niedostępne  nieznane          nieznane          /org/freedes
 
 <<<
 size: 12873
-location: clients/tests/test-client.py:1059:test_004()/129
+location: clients/tests/test-client.py:1060:test_004()/133
 cmd: $NMCLI --pretty dev show
 lang: C
 returncode: 0
@@ -7537,7 +7705,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 12937
-location: clients/tests/test-client.py:1059:test_004()/130
+location: clients/tests/test-client.py:1060:test_004()/134
 cmd: $NMCLI --pretty dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -7745,7 +7913,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 25245
-location: clients/tests/test-client.py:1062:test_004()/131
+location: clients/tests/test-client.py:1063:test_004()/135
 cmd: $NMCLI --pretty -f all dev show
 lang: C
 returncode: 0
@@ -8193,7 +8361,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 25428
-location: clients/tests/test-client.py:1062:test_004()/132
+location: clients/tests/test-client.py:1063:test_004()/136
 cmd: $NMCLI --pretty -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -8641,7 +8809,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2439
-location: clients/tests/test-client.py:1065:test_004()/133
+location: clients/tests/test-client.py:1066:test_004()/137
 cmd: $NMCLI --pretty dev show wlan0
 lang: C
 returncode: 0
@@ -8686,7 +8854,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 2457
-location: clients/tests/test-client.py:1065:test_004()/134
+location: clients/tests/test-client.py:1066:test_004()/138
 cmd: $NMCLI --pretty dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -8731,7 +8899,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 5948
-location: clients/tests/test-client.py:1068:test_004()/135
+location: clients/tests/test-client.py:1069:test_004()/139
 cmd: $NMCLI --pretty -f all dev show wlan0
 lang: C
 returncode: 0
@@ -8845,7 +9013,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6010
-location: clients/tests/test-client.py:1068:test_004()/136
+location: clients/tests/test-client.py:1069:test_004()/140
 cmd: $NMCLI --pretty -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -8959,7 +9127,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2421
-location: clients/tests/test-client.py:1071:test_004()/137
+location: clients/tests/test-client.py:1072:test_004()/141
 cmd: $NMCLI --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -9010,7 +9178,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2452
-location: clients/tests/test-client.py:1071:test_004()/138
+location: clients/tests/test-client.py:1072:test_004()/142
 cmd: $NMCLI --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9061,7 +9229,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 2421
-location: clients/tests/test-client.py:1074:test_004()/139
+location: clients/tests/test-client.py:1075:test_004()/143
 cmd: $NMCLI --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -9112,7 +9280,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2452
-location: clients/tests/test-client.py:1074:test_004()/140
+location: clients/tests/test-client.py:1075:test_004()/144
 cmd: $NMCLI --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9163,7 +9331,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 671
-location: clients/tests/test-client.py:1077:test_004()/141
+location: clients/tests/test-client.py:1078:test_004()/145
 cmd: $NMCLI --pretty -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -9182,7 +9350,7 @@ wlan1   wifi      /org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 674
-location: clients/tests/test-client.py:1077:test_004()/142
+location: clients/tests/test-client.py:1078:test_004()/146
 cmd: $NMCLI --pretty -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9201,7 +9369,7 @@ wlan1   wifi      /org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 3026
-location: clients/tests/test-client.py:1080:test_004()/143
+location: clients/tests/test-client.py:1081:test_004()/147
 cmd: $NMCLI --pretty -f ALL device wifi list
 lang: C
 returncode: 0
@@ -9231,7 +9399,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 3264
-location: clients/tests/test-client.py:1080:test_004()/144
+location: clients/tests/test-client.py:1081:test_004()/148
 cmd: $NMCLI --pretty -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9261,7 +9429,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 1152
-location: clients/tests/test-client.py:1082:test_004()/145
+location: clients/tests/test-client.py:1083:test_004()/149
 cmd: $NMCLI --pretty -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -9291,7 +9459,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 1383
-location: clients/tests/test-client.py:1082:test_004()/146
+location: clients/tests/test-client.py:1083:test_004()/150
 cmd: $NMCLI --pretty -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9321,7 +9489,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 3139
-location: clients/tests/test-client.py:1085:test_004()/147
+location: clients/tests/test-client.py:1086:test_004()/151
 cmd: $NMCLI --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -9351,7 +9519,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 3377
-location: clients/tests/test-client.py:1085:test_004()/148
+location: clients/tests/test-client.py:1086:test_004()/152
 cmd: $NMCLI --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9381,7 +9549,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 1141
-location: clients/tests/test-client.py:1087:test_004()/149
+location: clients/tests/test-client.py:1088:test_004()/153
 cmd: $NMCLI --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -9398,7 +9566,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infra  1     2412 MH
 
 <<<
 size: 1229
-location: clients/tests/test-client.py:1087:test_004()/150
+location: clients/tests/test-client.py:1088:test_004()/154
 cmd: $NMCLI --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9415,7 +9583,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infrastruktura  1
 
 <<<
 size: 499
-location: clients/tests/test-client.py:1089:test_004()/151
+location: clients/tests/test-client.py:1090:test_004()/155
 cmd: $NMCLI --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -9432,7 +9600,7 @@ IN-USE  SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
 
 <<<
 size: 584
-location: clients/tests/test-client.py:1089:test_004()/152
+location: clients/tests/test-client.py:1090:test_004()/156
 cmd: $NMCLI --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9449,7 +9617,7 @@ IN-USE  SSID        MODE            CHAN  RATE     SIGNAL  BARS  SECURITY
 
 <<<
 size: 1254
-location: clients/tests/test-client.py:1092:test_004()/153
+location: clients/tests/test-client.py:1093:test_004()/157
 cmd: $NMCLI --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -9466,7 +9634,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infra  1     2412 MH
 
 <<<
 size: 1342
-location: clients/tests/test-client.py:1092:test_004()/154
+location: clients/tests/test-client.py:1093:test_004()/158
 cmd: $NMCLI --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9483,7 +9651,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infrastruktura  1
 
 <<<
 size: 5951
-location: clients/tests/test-client.py:1094:test_004()/155
+location: clients/tests/test-client.py:1095:test_004()/159
 cmd: $NMCLI --pretty -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -9597,7 +9765,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6013
-location: clients/tests/test-client.py:1094:test_004()/156
+location: clients/tests/test-client.py:1095:test_004()/160
 cmd: $NMCLI --pretty -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9711,7 +9879,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2452
-location: clients/tests/test-client.py:1096:test_004()/157
+location: clients/tests/test-client.py:1097:test_004()/161
 cmd: $NMCLI --pretty -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -9756,7 +9924,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 2470
-location: clients/tests/test-client.py:1096:test_004()/158
+location: clients/tests/test-client.py:1097:test_004()/162
 cmd: $NMCLI --pretty -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -9801,7 +9969,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 6089
-location: clients/tests/test-client.py:1098:test_004()/159
+location: clients/tests/test-client.py:1099:test_004()/163
 cmd: $NMCLI --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -9915,7 +10083,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6151
-location: clients/tests/test-client.py:1098:test_004()/160
+location: clients/tests/test-client.py:1099:test_004()/164
 cmd: $NMCLI --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10028,12 +10196,84 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 -------------------------------------------------------------------------------
 
 <<<
-size: 5637
-location: clients/tests/test-client.py:1036:test_004()/161
+size: 1898
+location: clients/tests/test-client.py:1102:test_004()/165
+cmd: $NMCLI --pretty dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1742 bytes
+>>>
+===============================================================================
+                         Device LLDP neighbors (eth0)
+===============================================================================
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+-------------------------------------------------------------------------------
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+-------------------------------------------------------------------------------
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+-------------------------------------------------------------------------------
+
+<<<
+size: 1912
+location: clients/tests/test-client.py:1102:test_004()/166
+cmd: $NMCLI --pretty dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1746 bytes
+>>>
+===============================================================================
+                        Sąsiedzi LLDP urządzenia (eth0)
+===============================================================================
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+-------------------------------------------------------------------------------
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+-------------------------------------------------------------------------------
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+-------------------------------------------------------------------------------
+
+<<<
+size: 5723
+location: clients/tests/test-client.py:1037:test_004()/167
 cmd: $NMCLI --pretty --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 5479 bytes
+stdout: 5565 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -10072,6 +10312,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -10093,6 +10334,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -10143,12 +10385,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5679
-location: clients/tests/test-client.py:1036:test_004()/162
+size: 5765
+location: clients/tests/test-client.py:1037:test_004()/168
 cmd: $NMCLI --pretty --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5511 bytes
+stdout: 5597 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -10187,6 +10429,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -10208,6 +10451,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -10258,12 +10502,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5637
-location: clients/tests/test-client.py:1038:test_004()/163
+size: 5723
+location: clients/tests/test-client.py:1039:test_004()/169
 cmd: $NMCLI --pretty --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 5479 bytes
+stdout: 5565 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -10302,6 +10546,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -10323,6 +10568,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -10373,12 +10619,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5679
-location: clients/tests/test-client.py:1038:test_004()/164
+size: 5765
+location: clients/tests/test-client.py:1039:test_004()/170
 cmd: $NMCLI --pretty --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5511 bytes
+stdout: 5597 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -10417,6 +10663,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -10438,6 +10685,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -10488,12 +10736,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 4163
-location: clients/tests/test-client.py:1041:test_004()/165
+size: 4249
+location: clients/tests/test-client.py:1042:test_004()/171
 cmd: $NMCLI --pretty --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3998 bytes
+stdout: 4084 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -10532,6 +10780,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -10553,6 +10802,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -10578,12 +10828,12 @@ proxy.pac-script:                       --
 -------------------------------------------------------------------------------
 
 <<<
-size: 4188
-location: clients/tests/test-client.py:1041:test_004()/166
+size: 4274
+location: clients/tests/test-client.py:1042:test_004()/172
 cmd: $NMCLI --pretty --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4013 bytes
+stdout: 4099 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -10622,6 +10872,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -10643,6 +10894,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -10669,7 +10921,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 797
-location: clients/tests/test-client.py:1047:test_004()/167
+location: clients/tests/test-client.py:1048:test_004()/173
 cmd: $NMCLI --pretty --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -10688,7 +10940,7 @@ vpn.timeout:                            0
 
 <<<
 size: 813
-location: clients/tests/test-client.py:1047:test_004()/168
+location: clients/tests/test-client.py:1048:test_004()/174
 cmd: $NMCLI --pretty --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10707,7 +10959,7 @@ vpn.timeout:                            0
 
 <<<
 size: 1148
-location: clients/tests/test-client.py:1050:test_004()/169
+location: clients/tests/test-client.py:1051:test_004()/175
 cmd: $NMCLI --pretty --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -10732,7 +10984,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1168
-location: clients/tests/test-client.py:1050:test_004()/170
+location: clients/tests/test-client.py:1051:test_004()/176
 cmd: $NMCLI --pretty --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10757,7 +11009,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 694
-location: clients/tests/test-client.py:1053:test_004()/171
+location: clients/tests/test-client.py:1054:test_004()/177
 cmd: $NMCLI --pretty --color yes dev s
 lang: C
 returncode: 0
@@ -10776,7 +11028,7 @@ DEVICE  TYPE      STATE        CONNECTION
 
 <<<
 size: 702
-location: clients/tests/test-client.py:1053:test_004()/172
+location: clients/tests/test-client.py:1054:test_004()/178
 cmd: $NMCLI --pretty --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10795,7 +11047,7 @@ DEVICE  TYPE      STATE        CONNECTION
 
 <<<
 size: 2090
-location: clients/tests/test-client.py:1056:test_004()/173
+location: clients/tests/test-client.py:1057:test_004()/179
 cmd: $NMCLI --pretty --color yes -f all dev status
 lang: C
 returncode: 0
@@ -10814,7 +11066,7 @@ DEVICE  TYPE      STATE        IP4-CONNECTIVITY  IP6-CONNECTIVITY  DBUS-PATH
 
 <<<
 size: 2098
-location: clients/tests/test-client.py:1056:test_004()/174
+location: clients/tests/test-client.py:1057:test_004()/180
 cmd: $NMCLI --pretty --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -10833,7 +11085,7 @@ DEVICE  TYPE      STATE        IP4-CONNECTIVITY  IP6-CONNECTIVITY  DBUS-PATH
 
 <<<
 size: 12885
-location: clients/tests/test-client.py:1059:test_004()/175
+location: clients/tests/test-client.py:1060:test_004()/181
 cmd: $NMCLI --pretty --color yes dev show
 lang: C
 returncode: 0
@@ -11041,7 +11293,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 12949
-location: clients/tests/test-client.py:1059:test_004()/176
+location: clients/tests/test-client.py:1060:test_004()/182
 cmd: $NMCLI --pretty --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -11249,7 +11501,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 25545
-location: clients/tests/test-client.py:1062:test_004()/177
+location: clients/tests/test-client.py:1063:test_004()/183
 cmd: $NMCLI --pretty --color yes -f all dev show
 lang: C
 returncode: 0
@@ -11697,7 +11949,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 25728
-location: clients/tests/test-client.py:1062:test_004()/178
+location: clients/tests/test-client.py:1063:test_004()/184
 cmd: $NMCLI --pretty --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12145,7 +12397,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2451
-location: clients/tests/test-client.py:1065:test_004()/179
+location: clients/tests/test-client.py:1066:test_004()/185
 cmd: $NMCLI --pretty --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -12190,7 +12442,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 2469
-location: clients/tests/test-client.py:1065:test_004()/180
+location: clients/tests/test-client.py:1066:test_004()/186
 cmd: $NMCLI --pretty --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12235,7 +12487,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 6176
-location: clients/tests/test-client.py:1068:test_004()/181
+location: clients/tests/test-client.py:1069:test_004()/187
 cmd: $NMCLI --pretty --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -12349,7 +12601,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6238
-location: clients/tests/test-client.py:1068:test_004()/182
+location: clients/tests/test-client.py:1069:test_004()/188
 cmd: $NMCLI --pretty --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12463,7 +12715,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2433
-location: clients/tests/test-client.py:1071:test_004()/183
+location: clients/tests/test-client.py:1072:test_004()/189
 cmd: $NMCLI --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -12514,7 +12766,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2464
-location: clients/tests/test-client.py:1071:test_004()/184
+location: clients/tests/test-client.py:1072:test_004()/190
 cmd: $NMCLI --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12565,7 +12817,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 2433
-location: clients/tests/test-client.py:1074:test_004()/185
+location: clients/tests/test-client.py:1075:test_004()/191
 cmd: $NMCLI --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -12616,7 +12868,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2464
-location: clients/tests/test-client.py:1074:test_004()/186
+location: clients/tests/test-client.py:1075:test_004()/192
 cmd: $NMCLI --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12667,7 +12919,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 803
-location: clients/tests/test-client.py:1077:test_004()/187
+location: clients/tests/test-client.py:1078:test_004()/193
 cmd: $NMCLI --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -12686,7 +12938,7 @@ DEVICE  TYPE      DBUS-PATH
 
 <<<
 size: 806
-location: clients/tests/test-client.py:1077:test_004()/188
+location: clients/tests/test-client.py:1078:test_004()/194
 cmd: $NMCLI --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12705,7 +12957,7 @@ DEVICE  TYPE      DBUS-PATH
 
 <<<
 size: 3650
-location: clients/tests/test-client.py:1080:test_004()/189
+location: clients/tests/test-client.py:1081:test_004()/195
 cmd: $NMCLI --pretty --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -12735,7 +12987,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 3888
-location: clients/tests/test-client.py:1080:test_004()/190
+location: clients/tests/test-client.py:1081:test_004()/196
 cmd: $NMCLI --pretty --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12765,7 +13017,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 1453
-location: clients/tests/test-client.py:1082:test_004()/191
+location: clients/tests/test-client.py:1083:test_004()/197
 cmd: $NMCLI --pretty --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -12795,7 +13047,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 1683
-location: clients/tests/test-client.py:1082:test_004()/192
+location: clients/tests/test-client.py:1083:test_004()/198
 cmd: $NMCLI --pretty --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12825,7 +13077,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 3763
-location: clients/tests/test-client.py:1085:test_004()/193
+location: clients/tests/test-client.py:1086:test_004()/199
 cmd: $NMCLI --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -12855,7 +13107,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 4001
-location: clients/tests/test-client.py:1085:test_004()/194
+location: clients/tests/test-client.py:1086:test_004()/200
 cmd: $NMCLI --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12885,7 +13137,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 1307
-location: clients/tests/test-client.py:1087:test_004()/195
+location: clients/tests/test-client.py:1088:test_004()/201
 cmd: $NMCLI --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -12902,7 +13154,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 
 <<<
 size: 1394
-location: clients/tests/test-client.py:1087:test_004()/196
+location: clients/tests/test-client.py:1088:test_004()/202
 cmd: $NMCLI --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12919,7 +13171,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 
 <<<
 size: 583
-location: clients/tests/test-client.py:1089:test_004()/197
+location: clients/tests/test-client.py:1090:test_004()/203
 cmd: $NMCLI --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -12936,7 +13188,7 @@ IN-USE  SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
 
 <<<
 size: 668
-location: clients/tests/test-client.py:1089:test_004()/198
+location: clients/tests/test-client.py:1090:test_004()/204
 cmd: $NMCLI --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12953,7 +13205,7 @@ IN-USE  SSID        MODE            CHAN  RATE     SIGNAL  BARS  SECURITY
 
 <<<
 size: 1420
-location: clients/tests/test-client.py:1092:test_004()/199
+location: clients/tests/test-client.py:1093:test_004()/205
 cmd: $NMCLI --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -12970,7 +13222,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 
 <<<
 size: 1507
-location: clients/tests/test-client.py:1092:test_004()/200
+location: clients/tests/test-client.py:1093:test_004()/206
 cmd: $NMCLI --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -12987,7 +13239,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 
 <<<
 size: 6179
-location: clients/tests/test-client.py:1094:test_004()/201
+location: clients/tests/test-client.py:1095:test_004()/207
 cmd: $NMCLI --pretty --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -13101,7 +13353,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6241
-location: clients/tests/test-client.py:1094:test_004()/202
+location: clients/tests/test-client.py:1095:test_004()/208
 cmd: $NMCLI --pretty --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13215,7 +13467,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2464
-location: clients/tests/test-client.py:1096:test_004()/203
+location: clients/tests/test-client.py:1097:test_004()/209
 cmd: $NMCLI --pretty --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -13260,7 +13512,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 2482
-location: clients/tests/test-client.py:1096:test_004()/204
+location: clients/tests/test-client.py:1097:test_004()/210
 cmd: $NMCLI --pretty --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13305,7 +13557,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 6317
-location: clients/tests/test-client.py:1098:test_004()/205
+location: clients/tests/test-client.py:1099:test_004()/211
 cmd: $NMCLI --pretty --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -13419,7 +13671,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6379
-location: clients/tests/test-client.py:1098:test_004()/206
+location: clients/tests/test-client.py:1099:test_004()/212
 cmd: $NMCLI --pretty --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -13532,12 +13784,84 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 -------------------------------------------------------------------------------
 
 <<<
-size: 2323
-location: clients/tests/test-client.py:1036:test_004()/207
+size: 1910
+location: clients/tests/test-client.py:1102:test_004()/213
+cmd: $NMCLI --pretty --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1742 bytes
+>>>
+===============================================================================
+                         Device LLDP neighbors (eth0)
+===============================================================================
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+-------------------------------------------------------------------------------
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+-------------------------------------------------------------------------------
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+-------------------------------------------------------------------------------
+
+<<<
+size: 1924
+location: clients/tests/test-client.py:1102:test_004()/214
+cmd: $NMCLI --pretty --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1746 bytes
+>>>
+===============================================================================
+                        Sąsiedzi LLDP urządzenia (eth0)
+===============================================================================
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+-------------------------------------------------------------------------------
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+-------------------------------------------------------------------------------
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+-------------------------------------------------------------------------------
+
+<<<
+size: 2363
+location: clients/tests/test-client.py:1037:test_004()/215
 cmd: $NMCLI --terse con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -13572,6 +13896,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -13592,6 +13917,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -13634,12 +13960,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2333
-location: clients/tests/test-client.py:1036:test_004()/208
+size: 2373
+location: clients/tests/test-client.py:1037:test_004()/216
 cmd: $NMCLI --terse con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -13674,6 +14000,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -13694,6 +14021,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -13736,12 +14064,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2323
-location: clients/tests/test-client.py:1038:test_004()/209
+size: 2363
+location: clients/tests/test-client.py:1039:test_004()/217
 cmd: $NMCLI --terse con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -13776,6 +14104,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -13796,6 +14125,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -13838,12 +14168,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2333
-location: clients/tests/test-client.py:1038:test_004()/210
+size: 2373
+location: clients/tests/test-client.py:1039:test_004()/218
 cmd: $NMCLI --terse con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -13878,6 +14208,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -13898,6 +14229,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -13940,12 +14272,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 1771
-location: clients/tests/test-client.py:1041:test_004()/211
+size: 1811
+location: clients/tests/test-client.py:1042:test_004()/219
 cmd: $NMCLI --terse -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 1619 bytes
+stdout: 1659 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -13980,6 +14312,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -14000,6 +14333,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -14022,12 +14356,12 @@ proxy.pac-url:
 proxy.pac-script:
 
 <<<
-size: 1781
-location: clients/tests/test-client.py:1041:test_004()/212
+size: 1821
+location: clients/tests/test-client.py:1042:test_004()/220
 cmd: $NMCLI --terse -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 1619 bytes
+stdout: 1659 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -14062,6 +14396,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -14082,6 +14417,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -14105,7 +14441,7 @@ proxy.pac-script:
 
 <<<
 size: 322
-location: clients/tests/test-client.py:1047:test_004()/213
+location: clients/tests/test-client.py:1048:test_004()/221
 cmd: $NMCLI --terse -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -14120,7 +14456,7 @@ vpn.timeout:0
 
 <<<
 size: 332
-location: clients/tests/test-client.py:1047:test_004()/214
+location: clients/tests/test-client.py:1048:test_004()/222
 cmd: $NMCLI --terse -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14135,7 +14471,7 @@ vpn.timeout:0
 
 <<<
 size: 525
-location: clients/tests/test-client.py:1050:test_004()/215
+location: clients/tests/test-client.py:1051:test_004()/223
 cmd: $NMCLI --terse -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -14156,7 +14492,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 535
-location: clients/tests/test-client.py:1050:test_004()/216
+location: clients/tests/test-client.py:1051:test_004()/224
 cmd: $NMCLI --terse -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14177,7 +14513,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 269
-location: clients/tests/test-client.py:1053:test_004()/217
+location: clients/tests/test-client.py:1054:test_004()/225
 cmd: $NMCLI --terse dev s
 lang: C
 returncode: 0
@@ -14191,7 +14527,7 @@ wlan1:wifi:unavailable:
 
 <<<
 size: 279
-location: clients/tests/test-client.py:1053:test_004()/218
+location: clients/tests/test-client.py:1054:test_004()/226
 cmd: $NMCLI --terse dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14205,7 +14541,7 @@ wlan1:wifi:unavailable:
 
 <<<
 size: 667
-location: clients/tests/test-client.py:1056:test_004()/219
+location: clients/tests/test-client.py:1057:test_004()/227
 cmd: $NMCLI --terse -f all dev status
 lang: C
 returncode: 0
@@ -14219,7 +14555,7 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 677
-location: clients/tests/test-client.py:1056:test_004()/220
+location: clients/tests/test-client.py:1057:test_004()/228
 cmd: $NMCLI --terse -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14233,7 +14569,7 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 4540
-location: clients/tests/test-client.py:1059:test_004()/221
+location: clients/tests/test-client.py:1060:test_004()/229
 cmd: $NMCLI --terse dev show
 lang: C
 returncode: 0
@@ -14379,7 +14715,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y
 
 <<<
 size: 4550
-location: clients/tests/test-client.py:1059:test_004()/222
+location: clients/tests/test-client.py:1060:test_004()/230
 cmd: $NMCLI --terse dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -14525,7 +14861,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y
 
 <<<
 size: 11927
-location: clients/tests/test-client.py:1062:test_004()/223
+location: clients/tests/test-client.py:1063:test_004()/231
 cmd: $NMCLI --terse -f all dev show
 lang: C
 returncode: 0
@@ -14914,7 +15250,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 11973
-location: clients/tests/test-client.py:1062:test_004()/224
+location: clients/tests/test-client.py:1063:test_004()/232
 cmd: $NMCLI --terse -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15303,7 +15639,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 882
-location: clients/tests/test-client.py:1065:test_004()/225
+location: clients/tests/test-client.py:1066:test_004()/233
 cmd: $NMCLI --terse dev show wlan0
 lang: C
 returncode: 0
@@ -15336,7 +15672,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 892
-location: clients/tests/test-client.py:1065:test_004()/226
+location: clients/tests/test-client.py:1066:test_004()/234
 cmd: $NMCLI --terse dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15369,7 +15705,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 2693
-location: clients/tests/test-client.py:1068:test_004()/227
+location: clients/tests/test-client.py:1069:test_004()/235
 cmd: $NMCLI --terse -f all dev show wlan0
 lang: C
 returncode: 0
@@ -15469,7 +15805,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2730
-location: clients/tests/test-client.py:1068:test_004()/228
+location: clients/tests/test-client.py:1069:test_004()/236
 cmd: $NMCLI --terse -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15569,7 +15905,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 1191
-location: clients/tests/test-client.py:1071:test_004()/229
+location: clients/tests/test-client.py:1072:test_004()/237
 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -15614,7 +15950,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1201
-location: clients/tests/test-client.py:1071:test_004()/230
+location: clients/tests/test-client.py:1072:test_004()/238
 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15659,7 +15995,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1191
-location: clients/tests/test-client.py:1074:test_004()/231
+location: clients/tests/test-client.py:1075:test_004()/239
 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -15704,7 +16040,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1201
-location: clients/tests/test-client.py:1074:test_004()/232
+location: clients/tests/test-client.py:1075:test_004()/240
 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15749,7 +16085,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 428
-location: clients/tests/test-client.py:1077:test_004()/233
+location: clients/tests/test-client.py:1078:test_004()/241
 cmd: $NMCLI --terse -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -15763,7 +16099,7 @@ wlan1:wifi:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 438
-location: clients/tests/test-client.py:1077:test_004()/234
+location: clients/tests/test-client.py:1078:test_004()/242
 cmd: $NMCLI --terse -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15777,7 +16113,7 @@ wlan1:wifi:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 1086
-location: clients/tests/test-client.py:1080:test_004()/235
+location: clients/tests/test-client.py:1081:test_004()/243
 cmd: $NMCLI --terse -f ALL device wifi list
 lang: C
 returncode: 0
@@ -15792,7 +16128,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54
 
 <<<
 size: 1144
-location: clients/tests/test-client.py:1080:test_004()/236
+location: clients/tests/test-client.py:1081:test_004()/244
 cmd: $NMCLI --terse -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15807,7 +16143,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:24
 
 <<<
 size: 343
-location: clients/tests/test-client.py:1082:test_004()/237
+location: clients/tests/test-client.py:1083:test_004()/245
 cmd: $NMCLI --terse -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -15822,7 +16158,7 @@ stdout: 188 bytes
 
 <<<
 size: 389
-location: clients/tests/test-client.py:1082:test_004()/238
+location: clients/tests/test-client.py:1083:test_004()/246
 cmd: $NMCLI --terse -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15837,7 +16173,7 @@ stdout: 224 bytes
 
 <<<
 size: 1199
-location: clients/tests/test-client.py:1085:test_004()/239
+location: clients/tests/test-client.py:1086:test_004()/247
 cmd: $NMCLI --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -15852,7 +16188,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54
 
 <<<
 size: 1257
-location: clients/tests/test-client.py:1085:test_004()/240
+location: clients/tests/test-client.py:1086:test_004()/248
 cmd: $NMCLI --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15867,7 +16203,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:24
 
 <<<
 size: 433
-location: clients/tests/test-client.py:1087:test_004()/241
+location: clients/tests/test-client.py:1088:test_004()/249
 cmd: $NMCLI --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -15879,7 +16215,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54
 
 <<<
 size: 455
-location: clients/tests/test-client.py:1087:test_004()/242
+location: clients/tests/test-client.py:1088:test_004()/250
 cmd: $NMCLI --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15891,7 +16227,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24
 
 <<<
 size: 229
-location: clients/tests/test-client.py:1089:test_004()/243
+location: clients/tests/test-client.py:1090:test_004()/251
 cmd: $NMCLI --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -15903,7 +16239,7 @@ stdout: 51 bytes
 
 <<<
 size: 248
-location: clients/tests/test-client.py:1089:test_004()/244
+location: clients/tests/test-client.py:1090:test_004()/252
 cmd: $NMCLI --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15915,7 +16251,7 @@ stdout: 60 bytes
 
 <<<
 size: 546
-location: clients/tests/test-client.py:1092:test_004()/245
+location: clients/tests/test-client.py:1093:test_004()/253
 cmd: $NMCLI --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -15927,7 +16263,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54
 
 <<<
 size: 568
-location: clients/tests/test-client.py:1092:test_004()/246
+location: clients/tests/test-client.py:1093:test_004()/254
 cmd: $NMCLI --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -15939,7 +16275,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24
 
 <<<
 size: 2696
-location: clients/tests/test-client.py:1094:test_004()/247
+location: clients/tests/test-client.py:1095:test_004()/255
 cmd: $NMCLI --terse -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -16039,7 +16375,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2733
-location: clients/tests/test-client.py:1094:test_004()/248
+location: clients/tests/test-client.py:1095:test_004()/256
 cmd: $NMCLI --terse -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16139,7 +16475,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 895
-location: clients/tests/test-client.py:1096:test_004()/249
+location: clients/tests/test-client.py:1097:test_004()/257
 cmd: $NMCLI --terse -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -16172,7 +16508,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 905
-location: clients/tests/test-client.py:1096:test_004()/250
+location: clients/tests/test-client.py:1097:test_004()/258
 cmd: $NMCLI --terse -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16205,7 +16541,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 2834
-location: clients/tests/test-client.py:1098:test_004()/251
+location: clients/tests/test-client.py:1099:test_004()/259
 cmd: $NMCLI --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -16305,7 +16641,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2871
-location: clients/tests/test-client.py:1098:test_004()/252
+location: clients/tests/test-client.py:1099:test_004()/260
 cmd: $NMCLI --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -16404,12 +16740,72 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/
 CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 2335
-location: clients/tests/test-client.py:1036:test_004()/253
+size: 1136
+location: clients/tests/test-client.py:1102:test_004()/261
+cmd: $NMCLI --terse dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 982 bytes
+>>>
+NEIGHBOR[0].DEVICE:eth0
+NEIGHBOR[0].CHASSIS-ID:00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:eth0
+NEIGHBOR[1].CHASSIS-ID:chassis1
+NEIGHBOR[1].PORT-ID:44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:eth0
+NEIGHBOR[2].CHASSIS-ID:00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:port1
+NEIGHBOR[2].PORT-DESCRIPTION:GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone)
+
+<<<
+size: 1146
+location: clients/tests/test-client.py:1102:test_004()/262
+cmd: $NMCLI --terse dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 982 bytes
+>>>
+NEIGHBOR[0].DEVICE:eth0
+NEIGHBOR[0].CHASSIS-ID:00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:eth0
+NEIGHBOR[1].CHASSIS-ID:chassis1
+NEIGHBOR[1].PORT-ID:44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:eth0
+NEIGHBOR[2].CHASSIS-ID:00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:port1
+NEIGHBOR[2].PORT-DESCRIPTION:GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone)
+
+<<<
+size: 2375
+location: clients/tests/test-client.py:1037:test_004()/263
 cmd: $NMCLI --terse --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -16444,6 +16840,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -16464,6 +16861,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -16506,12 +16904,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2345
-location: clients/tests/test-client.py:1036:test_004()/254
+size: 2385
+location: clients/tests/test-client.py:1037:test_004()/264
 cmd: $NMCLI --terse --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -16546,6 +16944,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -16566,6 +16965,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -16608,12 +17008,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2335
-location: clients/tests/test-client.py:1038:test_004()/255
+size: 2375
+location: clients/tests/test-client.py:1039:test_004()/265
 cmd: $NMCLI --terse --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -16648,6 +17048,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -16668,6 +17069,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -16710,12 +17112,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2345
-location: clients/tests/test-client.py:1038:test_004()/256
+size: 2385
+location: clients/tests/test-client.py:1039:test_004()/266
 cmd: $NMCLI --terse --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -16750,6 +17152,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -16770,6 +17173,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -16812,12 +17216,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 1783
-location: clients/tests/test-client.py:1041:test_004()/257
+size: 1823
+location: clients/tests/test-client.py:1042:test_004()/267
 cmd: $NMCLI --terse --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 1619 bytes
+stdout: 1659 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -16852,6 +17256,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -16872,6 +17277,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -16894,12 +17300,12 @@ proxy.pac-url:
 proxy.pac-script:
 
 <<<
-size: 1793
-location: clients/tests/test-client.py:1041:test_004()/258
+size: 1833
+location: clients/tests/test-client.py:1042:test_004()/268
 cmd: $NMCLI --terse --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 1619 bytes
+stdout: 1659 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -16934,6 +17340,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -16954,6 +17361,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -16977,7 +17385,7 @@ proxy.pac-script:
 
 <<<
 size: 334
-location: clients/tests/test-client.py:1047:test_004()/259
+location: clients/tests/test-client.py:1048:test_004()/269
 cmd: $NMCLI --terse --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -16992,7 +17400,7 @@ vpn.timeout:0
 
 <<<
 size: 344
-location: clients/tests/test-client.py:1047:test_004()/260
+location: clients/tests/test-client.py:1048:test_004()/270
 cmd: $NMCLI --terse --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -17007,7 +17415,7 @@ vpn.timeout:0
 
 <<<
 size: 537
-location: clients/tests/test-client.py:1050:test_004()/261
+location: clients/tests/test-client.py:1051:test_004()/271
 cmd: $NMCLI --terse --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -17028,7 +17436,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 547
-location: clients/tests/test-client.py:1050:test_004()/262
+location: clients/tests/test-client.py:1051:test_004()/272
 cmd: $NMCLI --terse --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -17049,7 +17457,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 441
-location: clients/tests/test-client.py:1053:test_004()/263
+location: clients/tests/test-client.py:1054:test_004()/273
 cmd: $NMCLI --terse --color yes dev s
 lang: C
 returncode: 0
@@ -17063,7 +17471,7 @@ stdout: 295 bytes
 
 <<<
 size: 451
-location: clients/tests/test-client.py:1053:test_004()/264
+location: clients/tests/test-client.py:1054:test_004()/274
 cmd: $NMCLI --terse --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -17077,7 +17485,7 @@ stdout: 295 bytes
 
 <<<
 size: 1039
-location: clients/tests/test-client.py:1056:test_004()/265
+location: clients/tests/test-client.py:1057:test_004()/275
 cmd: $NMCLI --terse --color yes -f all dev status
 lang: C
 returncode: 0
@@ -17091,7 +17499,7 @@ stdout: 881 bytes
 
 <<<
 size: 1049
-location: clients/tests/test-client.py:1056:test_004()/266
+location: clients/tests/test-client.py:1057:test_004()/276
 cmd: $NMCLI --terse --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -17105,7 +17513,7 @@ stdout: 881 bytes
 
 <<<
 size: 4552
-location: clients/tests/test-client.py:1059:test_004()/267
+location: clients/tests/test-client.py:1060:test_004()/277
 cmd: $NMCLI --terse --color yes dev show
 lang: C
 returncode: 0
@@ -17251,7 +17659,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y
 
 <<<
 size: 4562
-location: clients/tests/test-client.py:1059:test_004()/268
+location: clients/tests/test-client.py:1060:test_004()/278
 cmd: $NMCLI --terse --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -17397,7 +17805,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y
 
 <<<
 size: 12227
-location: clients/tests/test-client.py:1062:test_004()/269
+location: clients/tests/test-client.py:1063:test_004()/279
 cmd: $NMCLI --terse --color yes -f all dev show
 lang: C
 returncode: 0
@@ -17786,7 +18194,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 12273
-location: clients/tests/test-client.py:1062:test_004()/270
+location: clients/tests/test-client.py:1063:test_004()/280
 cmd: $NMCLI --terse --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18175,7 +18583,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 894
-location: clients/tests/test-client.py:1065:test_004()/271
+location: clients/tests/test-client.py:1066:test_004()/281
 cmd: $NMCLI --terse --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -18208,7 +18616,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 904
-location: clients/tests/test-client.py:1065:test_004()/272
+location: clients/tests/test-client.py:1066:test_004()/282
 cmd: $NMCLI --terse --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18241,7 +18649,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 2921
-location: clients/tests/test-client.py:1068:test_004()/273
+location: clients/tests/test-client.py:1069:test_004()/283
 cmd: $NMCLI --terse --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -18341,7 +18749,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2958
-location: clients/tests/test-client.py:1068:test_004()/274
+location: clients/tests/test-client.py:1069:test_004()/284
 cmd: $NMCLI --terse --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18441,7 +18849,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 1203
-location: clients/tests/test-client.py:1071:test_004()/275
+location: clients/tests/test-client.py:1072:test_004()/285
 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -18486,7 +18894,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1213
-location: clients/tests/test-client.py:1071:test_004()/276
+location: clients/tests/test-client.py:1072:test_004()/286
 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18531,7 +18939,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1203
-location: clients/tests/test-client.py:1074:test_004()/277
+location: clients/tests/test-client.py:1075:test_004()/287
 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -18576,7 +18984,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1213
-location: clients/tests/test-client.py:1074:test_004()/278
+location: clients/tests/test-client.py:1075:test_004()/288
 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18621,7 +19029,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 560
-location: clients/tests/test-client.py:1077:test_004()/279
+location: clients/tests/test-client.py:1078:test_004()/289
 cmd: $NMCLI --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -18635,7 +19043,7 @@ stdout: 391 bytes
 
 <<<
 size: 570
-location: clients/tests/test-client.py:1077:test_004()/280
+location: clients/tests/test-client.py:1078:test_004()/290
 cmd: $NMCLI --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18649,7 +19057,7 @@ stdout: 391 bytes
 
 <<<
 size: 1711
-location: clients/tests/test-client.py:1080:test_004()/281
+location: clients/tests/test-client.py:1081:test_004()/291
 cmd: $NMCLI --terse --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -18664,7 +19072,7 @@ stdout: 1546 bytes
 
 <<<
 size: 1769
-location: clients/tests/test-client.py:1080:test_004()/282
+location: clients/tests/test-client.py:1081:test_004()/292
 cmd: $NMCLI --terse --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18679,7 +19087,7 @@ stdout: 1594 bytes
 
 <<<
 size: 643
-location: clients/tests/test-client.py:1082:test_004()/283
+location: clients/tests/test-client.py:1083:test_004()/293
 cmd: $NMCLI --terse --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -18694,7 +19102,7 @@ stdout: 476 bytes
 
 <<<
 size: 689
-location: clients/tests/test-client.py:1082:test_004()/284
+location: clients/tests/test-client.py:1083:test_004()/294
 cmd: $NMCLI --terse --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18709,7 +19117,7 @@ stdout: 512 bytes
 
 <<<
 size: 1824
-location: clients/tests/test-client.py:1085:test_004()/285
+location: clients/tests/test-client.py:1086:test_004()/295
 cmd: $NMCLI --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -18724,7 +19132,7 @@ stdout: 1546 bytes
 
 <<<
 size: 1882
-location: clients/tests/test-client.py:1085:test_004()/286
+location: clients/tests/test-client.py:1086:test_004()/296
 cmd: $NMCLI --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18739,7 +19147,7 @@ stdout: 1594 bytes
 
 <<<
 size: 598
-location: clients/tests/test-client.py:1087:test_004()/287
+location: clients/tests/test-client.py:1088:test_004()/297
 cmd: $NMCLI --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -18751,7 +19159,7 @@ stdout: 410 bytes
 
 <<<
 size: 620
-location: clients/tests/test-client.py:1087:test_004()/288
+location: clients/tests/test-client.py:1088:test_004()/298
 cmd: $NMCLI --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18763,7 +19171,7 @@ stdout: 422 bytes
 
 <<<
 size: 314
-location: clients/tests/test-client.py:1089:test_004()/289
+location: clients/tests/test-client.py:1090:test_004()/299
 cmd: $NMCLI --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -18775,7 +19183,7 @@ stdout: 123 bytes
 
 <<<
 size: 333
-location: clients/tests/test-client.py:1089:test_004()/290
+location: clients/tests/test-client.py:1090:test_004()/300
 cmd: $NMCLI --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18787,7 +19195,7 @@ stdout: 132 bytes
 
 <<<
 size: 711
-location: clients/tests/test-client.py:1092:test_004()/291
+location: clients/tests/test-client.py:1093:test_004()/301
 cmd: $NMCLI --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -18799,7 +19207,7 @@ stdout: 410 bytes
 
 <<<
 size: 733
-location: clients/tests/test-client.py:1092:test_004()/292
+location: clients/tests/test-client.py:1093:test_004()/302
 cmd: $NMCLI --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -18811,7 +19219,7 @@ stdout: 422 bytes
 
 <<<
 size: 2924
-location: clients/tests/test-client.py:1094:test_004()/293
+location: clients/tests/test-client.py:1095:test_004()/303
 cmd: $NMCLI --terse --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -18911,7 +19319,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2961
-location: clients/tests/test-client.py:1094:test_004()/294
+location: clients/tests/test-client.py:1095:test_004()/304
 cmd: $NMCLI --terse --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -19011,7 +19419,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 907
-location: clients/tests/test-client.py:1096:test_004()/295
+location: clients/tests/test-client.py:1097:test_004()/305
 cmd: $NMCLI --terse --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -19044,7 +19452,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 917
-location: clients/tests/test-client.py:1096:test_004()/296
+location: clients/tests/test-client.py:1097:test_004()/306
 cmd: $NMCLI --terse --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -19077,7 +19485,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 3062
-location: clients/tests/test-client.py:1098:test_004()/297
+location: clients/tests/test-client.py:1099:test_004()/307
 cmd: $NMCLI --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -19177,7 +19585,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 3099
-location: clients/tests/test-client.py:1098:test_004()/298
+location: clients/tests/test-client.py:1099:test_004()/308
 cmd: $NMCLI --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -19276,21 +19684,81 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/
 CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 2978
-location: clients/tests/test-client.py:1036:test_004()/299
+size: 1148
+location: clients/tests/test-client.py:1102:test_004()/309
+cmd: $NMCLI --terse --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 982 bytes
+>>>
+NEIGHBOR[0].DEVICE:eth0
+NEIGHBOR[0].CHASSIS-ID:00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:eth0
+NEIGHBOR[1].CHASSIS-ID:chassis1
+NEIGHBOR[1].PORT-ID:44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:eth0
+NEIGHBOR[2].CHASSIS-ID:00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:port1
+NEIGHBOR[2].PORT-DESCRIPTION:GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone)
+
+<<<
+size: 1158
+location: clients/tests/test-client.py:1102:test_004()/310
+cmd: $NMCLI --terse --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 982 bytes
+>>>
+NEIGHBOR[0].DEVICE:eth0
+NEIGHBOR[0].CHASSIS-ID:00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:eth0
+NEIGHBOR[1].CHASSIS-ID:chassis1
+NEIGHBOR[1].PORT-ID:44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:eth0
+NEIGHBOR[2].CHASSIS-ID:00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:port1
+NEIGHBOR[2].PORT-DESCRIPTION:GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone)
+
+<<<
+size: 3038
+location: clients/tests/test-client.py:1037:test_004()/311
 cmd: $NMCLI --mode tabular con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2826 bytes
+stdout: 2886 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  no          0       
@@ -19305,21 +19773,21 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 - VPN connected  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 3001
-location: clients/tests/test-client.py:1036:test_004()/300
+size: 3061
+location: clients/tests/test-client.py:1037:test_004()/312
 cmd: $NMCLI --mode tabular con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2839 bytes
+stdout: 2899 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  nie         0       
@@ -19334,21 +19802,21 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 — Połączono z VPN  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 2978
-location: clients/tests/test-client.py:1038:test_004()/301
+size: 3038
+location: clients/tests/test-client.py:1039:test_004()/313
 cmd: $NMCLI --mode tabular con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2826 bytes
+stdout: 2886 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  no          0       
@@ -19363,21 +19831,21 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 - VPN connected  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 3001
-location: clients/tests/test-client.py:1038:test_004()/302
+size: 3061
+location: clients/tests/test-client.py:1039:test_004()/314
 cmd: $NMCLI --mode tabular con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2839 bytes
+stdout: 2899 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  nie         0       
@@ -19392,21 +19860,21 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 — Połączono z VPN  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 2246
-location: clients/tests/test-client.py:1041:test_004()/303
+size: 2306
+location: clients/tests/test-client.py:1042:test_004()/315
 cmd: $NMCLI --mode tabular -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2087 bytes
+stdout: 2147 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  no          0       
@@ -19416,21 +19884,21 @@ proxy  none    no            --       --
 
 
 <<<
-size: 2258
-location: clients/tests/test-client.py:1041:test_004()/304
+size: 2318
+location: clients/tests/test-client.py:1042:test_004()/316
 cmd: $NMCLI --mode tabular -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2089 bytes
+stdout: 2149 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  nie         0       
@@ -19441,7 +19909,7 @@ proxy  none    nie           --       --
 
 <<<
 size: 412
-location: clients/tests/test-client.py:1047:test_004()/305
+location: clients/tests/test-client.py:1048:test_004()/317
 cmd: $NMCLI --mode tabular -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -19452,7 +19920,7 @@ vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val
 
 <<<
 size: 422
-location: clients/tests/test-client.py:1047:test_004()/306
+location: clients/tests/test-client.py:1048:test_004()/318
 cmd: $NMCLI --mode tabular -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -19463,7 +19931,7 @@ vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val
 
 <<<
 size: 644
-location: clients/tests/test-client.py:1050:test_004()/307
+location: clients/tests/test-client.py:1051:test_004()/319
 cmd: $NMCLI --mode tabular -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -19474,7 +19942,7 @@ GENERAL  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  wlan0    activated  no
 
 <<<
 size: 656
-location: clients/tests/test-client.py:1050:test_004()/308
+location: clients/tests/test-client.py:1051:test_004()/320
 cmd: $NMCLI --mode tabular -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -19485,7 +19953,7 @@ GENERAL  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  wlan0    aktywowano  n
 
 <<<
 size: 399
-location: clients/tests/test-client.py:1053:test_004()/309
+location: clients/tests/test-client.py:1054:test_004()/321
 cmd: $NMCLI --mode tabular dev s
 lang: C
 returncode: 0
@@ -19500,7 +19968,7 @@ wlan1   wifi      unavailable  --
 
 <<<
 size: 414
-location: clients/tests/test-client.py:1053:test_004()/310
+location: clients/tests/test-client.py:1054:test_004()/322
 cmd: $NMCLI --mode tabular dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -19515,7 +19983,7 @@ wlan1   wifi      niedostępne  --
 
 <<<
 size: 1426
-location: clients/tests/test-client.py:1056:test_004()/311
+location: clients/tests/test-client.py:1057:test_004()/323
 cmd: $NMCLI --mode tabular -f all dev status
 lang: C
 returncode: 0
@@ -19530,7 +19998,7 @@ wlan1   wifi      unavailable  unknown           unknown           /org/freedesk
 
 <<<
 size: 1441
-location: clients/tests/test-client.py:1056:test_004()/312
+location: clients/tests/test-client.py:1057:test_004()/324
 cmd: $NMCLI --mode tabular -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -19545,7 +20013,7 @@ wlan1   wifi      niedostępne  nieznane          nieznane          /org/freedes
 
 <<<
 size: 6361
-location: clients/tests/test-client.py:1059:test_004()/313
+location: clients/tests/test-client.py:1060:test_004()/325
 cmd: $NMCLI --mode tabular dev show
 lang: C
 returncode: 0
@@ -19694,7 +20162,7 @@ IP6    2001:a::88ca:3654:96b:ab44/89  --       dst = 2001:a::cc8b:7c09:4673:bbb0
 
 <<<
 size: 6388
-location: clients/tests/test-client.py:1059:test_004()/314
+location: clients/tests/test-client.py:1060:test_004()/326
 cmd: $NMCLI --mode tabular dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -19843,7 +20311,7 @@ IP6    2001:a::88ca:3654:96b:ab44/89  --       dst = 2001:a::cc8b:7c09:4673:bbb0
 
 <<<
 size: 14861
-location: clients/tests/test-client.py:1062:test_004()/315
+location: clients/tests/test-client.py:1063:test_004()/327
 cmd: $NMCLI --mode tabular -f all dev show
 lang: C
 returncode: 0
@@ -19981,7 +20449,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 15020
-location: clients/tests/test-client.py:1062:test_004()/316
+location: clients/tests/test-client.py:1063:test_004()/328
 cmd: $NMCLI --mode tabular -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20119,7 +20587,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1130
-location: clients/tests/test-client.py:1065:test_004()/317
+location: clients/tests/test-client.py:1066:test_004()/329
 cmd: $NMCLI --mode tabular dev show wlan0
 lang: C
 returncode: 0
@@ -20154,7 +20622,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 1141
-location: clients/tests/test-client.py:1065:test_004()/318
+location: clients/tests/test-client.py:1066:test_004()/330
 cmd: $NMCLI --mode tabular dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20189,7 +20657,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 3012
-location: clients/tests/test-client.py:1068:test_004()/319
+location: clients/tests/test-client.py:1069:test_004()/331
 cmd: $NMCLI --mode tabular -f all dev show wlan0
 lang: C
 returncode: 0
@@ -20226,7 +20694,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 3075
-location: clients/tests/test-client.py:1068:test_004()/320
+location: clients/tests/test-client.py:1069:test_004()/332
 cmd: $NMCLI --mode tabular -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20263,7 +20731,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1251
-location: clients/tests/test-client.py:1071:test_004()/321
+location: clients/tests/test-client.py:1072:test_004()/333
 cmd: $NMCLI --mode tabular -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -20280,7 +20748,7 @@ WIFI-PROPERTIES  yes  yes  yes   yes   yes   yes  yes    unknown  unknown
 
 <<<
 size: 1278
-location: clients/tests/test-client.py:1071:test_004()/322
+location: clients/tests/test-client.py:1072:test_004()/334
 cmd: $NMCLI --mode tabular -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20297,7 +20765,7 @@ WIFI-PROPERTIES  tak  tak  tak   tak   tak   tak  tak    nieznane  nieznane
 
 <<<
 size: 1251
-location: clients/tests/test-client.py:1074:test_004()/323
+location: clients/tests/test-client.py:1075:test_004()/335
 cmd: $NMCLI --mode tabular -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -20314,7 +20782,7 @@ WIFI-PROPERTIES  yes  yes  yes   yes   yes   yes  yes    unknown  unknown
 
 <<<
 size: 1278
-location: clients/tests/test-client.py:1074:test_004()/324
+location: clients/tests/test-client.py:1075:test_004()/336
 cmd: $NMCLI --mode tabular -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20331,7 +20799,7 @@ WIFI-PROPERTIES  tak  tak  tak   tak   tak   tak  tak    nieznane  nieznane
 
 <<<
 size: 530
-location: clients/tests/test-client.py:1077:test_004()/325
+location: clients/tests/test-client.py:1078:test_004()/337
 cmd: $NMCLI --mode tabular -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -20346,7 +20814,7 @@ wlan1   wifi      /org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 540
-location: clients/tests/test-client.py:1077:test_004()/326
+location: clients/tests/test-client.py:1078:test_004()/338
 cmd: $NMCLI --mode tabular -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20361,7 +20829,7 @@ wlan1   wifi      /org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 2000
-location: clients/tests/test-client.py:1080:test_004()/327
+location: clients/tests/test-client.py:1081:test_004()/339
 cmd: $NMCLI --mode tabular -f ALL device wifi list
 lang: C
 returncode: 0
@@ -20379,7 +20847,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 2068
-location: clients/tests/test-client.py:1080:test_004()/328
+location: clients/tests/test-client.py:1081:test_004()/340
 cmd: $NMCLI --mode tabular -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20397,7 +20865,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 634
-location: clients/tests/test-client.py:1082:test_004()/329
+location: clients/tests/test-client.py:1083:test_004()/341
 cmd: $NMCLI --mode tabular -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -20415,7 +20883,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 694
-location: clients/tests/test-client.py:1082:test_004()/330
+location: clients/tests/test-client.py:1083:test_004()/342
 cmd: $NMCLI --mode tabular -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20433,7 +20901,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 2113
-location: clients/tests/test-client.py:1085:test_004()/331
+location: clients/tests/test-client.py:1086:test_004()/343
 cmd: $NMCLI --mode tabular -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -20451,7 +20919,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 2181
-location: clients/tests/test-client.py:1085:test_004()/332
+location: clients/tests/test-client.py:1086:test_004()/344
 cmd: $NMCLI --mode tabular -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20469,7 +20937,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 753
-location: clients/tests/test-client.py:1087:test_004()/333
+location: clients/tests/test-client.py:1088:test_004()/345
 cmd: $NMCLI --mode tabular -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -20482,7 +20950,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infra  1     2412 MH
 
 <<<
 size: 781
-location: clients/tests/test-client.py:1087:test_004()/334
+location: clients/tests/test-client.py:1088:test_004()/346
 cmd: $NMCLI --mode tabular -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20495,7 +20963,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infrastruktura  1
 
 <<<
 size: 326
-location: clients/tests/test-client.py:1089:test_004()/335
+location: clients/tests/test-client.py:1090:test_004()/347
 cmd: $NMCLI --mode tabular -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -20508,7 +20976,7 @@ IN-USE  SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
 
 <<<
 size: 352
-location: clients/tests/test-client.py:1089:test_004()/336
+location: clients/tests/test-client.py:1090:test_004()/348
 cmd: $NMCLI --mode tabular -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20521,7 +20989,7 @@ IN-USE  SSID        MODE            CHAN  RATE     SIGNAL  BARS  SECURITY
 
 <<<
 size: 866
-location: clients/tests/test-client.py:1092:test_004()/337
+location: clients/tests/test-client.py:1093:test_004()/349
 cmd: $NMCLI --mode tabular -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -20534,7 +21002,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infra  1     2412 MH
 
 <<<
 size: 894
-location: clients/tests/test-client.py:1092:test_004()/338
+location: clients/tests/test-client.py:1093:test_004()/350
 cmd: $NMCLI --mode tabular -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20547,7 +21015,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infrastruktura  1
 
 <<<
 size: 3015
-location: clients/tests/test-client.py:1094:test_004()/339
+location: clients/tests/test-client.py:1095:test_004()/351
 cmd: $NMCLI --mode tabular -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -20584,7 +21052,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 3078
-location: clients/tests/test-client.py:1094:test_004()/340
+location: clients/tests/test-client.py:1095:test_004()/352
 cmd: $NMCLI --mode tabular -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20621,7 +21089,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1143
-location: clients/tests/test-client.py:1096:test_004()/341
+location: clients/tests/test-client.py:1097:test_004()/353
 cmd: $NMCLI --mode tabular -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -20656,7 +21124,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 1154
-location: clients/tests/test-client.py:1096:test_004()/342
+location: clients/tests/test-client.py:1097:test_004()/354
 cmd: $NMCLI --mode tabular -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20691,7 +21159,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 3153
-location: clients/tests/test-client.py:1098:test_004()/343
+location: clients/tests/test-client.py:1099:test_004()/355
 cmd: $NMCLI --mode tabular -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -20728,7 +21196,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 3216
-location: clients/tests/test-client.py:1098:test_004()/344
+location: clients/tests/test-client.py:1099:test_004()/356
 cmd: $NMCLI --mode tabular -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20764,21 +21232,47 @@ NAME         AVAILABLE-CONNECTION-PATHS                               AVAILABLE-
 CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 
 
 <<<
-size: 2990
-location: clients/tests/test-client.py:1036:test_004()/345
+size: 1145
+location: clients/tests/test-client.py:1102:test_004()/357
+cmd: $NMCLI --mode tabular dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 984 bytes
+>>>
+DEVICE  CHASSIS-ID         PORT-ID            PORT-DESCRIPTION    SYSTEM-NAME        SYSTEM-DESCRIPTION  SYSTEM-CAPABILITIES                                                                                                                         
+eth0    00:11:22:33:44:00  Uplink port        GigabitEthernet #1  test1.example.com  Test system #1      20 (mac-bridge,router)                                                                                                                      
+eth0    chassis1           44:44:44:44:44:44  GigabitEthernet #2  test2.example.com  Test system #2      2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr) 
+eth0    00:11:22:33:44:22  port1              GigabitEthernet #3  test3.example.com  Test system #3      40 (wlan-access-point,telephone)                                                                                                            
+
+<<<
+size: 1155
+location: clients/tests/test-client.py:1102:test_004()/358
+cmd: $NMCLI --mode tabular dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 984 bytes
+>>>
+DEVICE  CHASSIS-ID         PORT-ID            PORT-DESCRIPTION    SYSTEM-NAME        SYSTEM-DESCRIPTION  SYSTEM-CAPABILITIES                                                                                                                         
+eth0    00:11:22:33:44:00  Uplink port        GigabitEthernet #1  test1.example.com  Test system #1      20 (mac-bridge,router)                                                                                                                      
+eth0    chassis1           44:44:44:44:44:44  GigabitEthernet #2  test2.example.com  Test system #2      2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr) 
+eth0    00:11:22:33:44:22  port1              GigabitEthernet #3  test3.example.com  Test system #3      40 (wlan-access-point,telephone)                                                                                                            
+
+<<<
+size: 3050
+location: clients/tests/test-client.py:1037:test_004()/359
 cmd: $NMCLI --mode tabular --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2826 bytes
+stdout: 2886 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  no          0       
@@ -20793,21 +21287,21 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 - VPN connected  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 3013
-location: clients/tests/test-client.py:1036:test_004()/346
+size: 3073
+location: clients/tests/test-client.py:1037:test_004()/360
 cmd: $NMCLI --mode tabular --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2839 bytes
+stdout: 2899 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  nie         0       
@@ -20822,21 +21316,21 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 — Połączono z VPN  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 2990
-location: clients/tests/test-client.py:1038:test_004()/347
+size: 3050
+location: clients/tests/test-client.py:1039:test_004()/361
 cmd: $NMCLI --mode tabular --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2826 bytes
+stdout: 2886 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  no          0       
@@ -20851,21 +21345,21 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 - VPN connected  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 3013
-location: clients/tests/test-client.py:1038:test_004()/348
+size: 3073
+location: clients/tests/test-client.py:1039:test_004()/362
 cmd: $NMCLI --mode tabular --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2839 bytes
+stdout: 2899 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  nie         0       
@@ -20880,21 +21374,21 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 — Połączono z VPN  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 2258
-location: clients/tests/test-client.py:1041:test_004()/349
+size: 2318
+location: clients/tests/test-client.py:1042:test_004()/363
 cmd: $NMCLI --mode tabular --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2087 bytes
+stdout: 2147 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered  lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  no          0       
@@ -20904,21 +21398,21 @@ proxy  none    no            --       --
 
 
 <<<
-size: 2270
-location: clients/tests/test-client.py:1041:test_004()/350
+size: 2330
+location: clients/tests/test-client.py:1042:test_004()/364
 cmd: $NMCLI --mode tabular --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2089 bytes
+stdout: 2149 bytes
 >>>
 name        id         uuid                                  stable-id  type  interface-name  autoconnect  autoconnect-priority  autoconnect-retries  multi-connect  auth-retries  timestamp  read-only  permissions  zone  master  slave-type  autoconnect-slaves  secondaries  gateway-ping-timeout  metered   lldp     mdns          llmnr        
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val2, key3 = val3  <hidden>  nie         0       
@@ -20929,7 +21423,7 @@ proxy  none    nie           --       --
 
 <<<
 size: 424
-location: clients/tests/test-client.py:1047:test_004()/351
+location: clients/tests/test-client.py:1048:test_004()/365
 cmd: $NMCLI --mode tabular --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -20940,7 +21434,7 @@ vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val
 
 <<<
 size: 434
-location: clients/tests/test-client.py:1047:test_004()/352
+location: clients/tests/test-client.py:1048:test_004()/366
 cmd: $NMCLI --mode tabular --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20951,7 +21445,7 @@ vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val
 
 <<<
 size: 656
-location: clients/tests/test-client.py:1050:test_004()/353
+location: clients/tests/test-client.py:1051:test_004()/367
 cmd: $NMCLI --mode tabular --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -20962,7 +21456,7 @@ GENERAL  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  wlan0    activated  no
 
 <<<
 size: 668
-location: clients/tests/test-client.py:1050:test_004()/354
+location: clients/tests/test-client.py:1051:test_004()/368
 cmd: $NMCLI --mode tabular --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -20973,7 +21467,7 @@ GENERAL  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  wlan0    aktywowano  n
 
 <<<
 size: 571
-location: clients/tests/test-client.py:1053:test_004()/355
+location: clients/tests/test-client.py:1054:test_004()/369
 cmd: $NMCLI --mode tabular --color yes dev s
 lang: C
 returncode: 0
@@ -20988,7 +21482,7 @@ DEVICE  TYPE      STATE        CONNECTION
 
 <<<
 size: 586
-location: clients/tests/test-client.py:1053:test_004()/356
+location: clients/tests/test-client.py:1054:test_004()/370
 cmd: $NMCLI --mode tabular --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21003,7 +21497,7 @@ DEVICE  TYPE      STATE        CONNECTION
 
 <<<
 size: 1798
-location: clients/tests/test-client.py:1056:test_004()/357
+location: clients/tests/test-client.py:1057:test_004()/371
 cmd: $NMCLI --mode tabular --color yes -f all dev status
 lang: C
 returncode: 0
@@ -21018,7 +21512,7 @@ DEVICE  TYPE      STATE        IP4-CONNECTIVITY  IP6-CONNECTIVITY  DBUS-PATH
 
 <<<
 size: 1813
-location: clients/tests/test-client.py:1056:test_004()/358
+location: clients/tests/test-client.py:1057:test_004()/372
 cmd: $NMCLI --mode tabular --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21033,7 +21527,7 @@ DEVICE  TYPE      STATE        IP4-CONNECTIVITY  IP6-CONNECTIVITY  DBUS-PATH
 
 <<<
 size: 6373
-location: clients/tests/test-client.py:1059:test_004()/359
+location: clients/tests/test-client.py:1060:test_004()/373
 cmd: $NMCLI --mode tabular --color yes dev show
 lang: C
 returncode: 0
@@ -21182,7 +21676,7 @@ IP6    2001:a::88ca:3654:96b:ab44/89  --       dst = 2001:a::cc8b:7c09:4673:bbb0
 
 <<<
 size: 6400
-location: clients/tests/test-client.py:1059:test_004()/360
+location: clients/tests/test-client.py:1060:test_004()/374
 cmd: $NMCLI --mode tabular --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21331,7 +21825,7 @@ IP6    2001:a::88ca:3654:96b:ab44/89  --       dst = 2001:a::cc8b:7c09:4673:bbb0
 
 <<<
 size: 15197
-location: clients/tests/test-client.py:1062:test_004()/361
+location: clients/tests/test-client.py:1063:test_004()/375
 cmd: $NMCLI --mode tabular --color yes -f all dev show
 lang: C
 returncode: 0
@@ -21469,7 +21963,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 15356
-location: clients/tests/test-client.py:1062:test_004()/362
+location: clients/tests/test-client.py:1063:test_004()/376
 cmd: $NMCLI --mode tabular --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21607,7 +22101,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1142
-location: clients/tests/test-client.py:1065:test_004()/363
+location: clients/tests/test-client.py:1066:test_004()/377
 cmd: $NMCLI --mode tabular --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -21642,7 +22136,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 1153
-location: clients/tests/test-client.py:1065:test_004()/364
+location: clients/tests/test-client.py:1066:test_004()/378
 cmd: $NMCLI --mode tabular --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21677,7 +22171,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 3267
-location: clients/tests/test-client.py:1068:test_004()/365
+location: clients/tests/test-client.py:1069:test_004()/379
 cmd: $NMCLI --mode tabular --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -21714,7 +22208,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 3330
-location: clients/tests/test-client.py:1068:test_004()/366
+location: clients/tests/test-client.py:1069:test_004()/380
 cmd: $NMCLI --mode tabular --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21751,7 +22245,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1263
-location: clients/tests/test-client.py:1071:test_004()/367
+location: clients/tests/test-client.py:1072:test_004()/381
 cmd: $NMCLI --mode tabular --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -21768,7 +22262,7 @@ WIFI-PROPERTIES  yes  yes  yes   yes   yes   yes  yes    unknown  unknown
 
 <<<
 size: 1290
-location: clients/tests/test-client.py:1071:test_004()/368
+location: clients/tests/test-client.py:1072:test_004()/382
 cmd: $NMCLI --mode tabular --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21785,7 +22279,7 @@ WIFI-PROPERTIES  tak  tak  tak   tak   tak   tak  tak    nieznane  nieznane
 
 <<<
 size: 1263
-location: clients/tests/test-client.py:1074:test_004()/369
+location: clients/tests/test-client.py:1075:test_004()/383
 cmd: $NMCLI --mode tabular --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -21802,7 +22296,7 @@ WIFI-PROPERTIES  yes  yes  yes   yes   yes   yes  yes    unknown  unknown
 
 <<<
 size: 1290
-location: clients/tests/test-client.py:1074:test_004()/370
+location: clients/tests/test-client.py:1075:test_004()/384
 cmd: $NMCLI --mode tabular --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21819,7 +22313,7 @@ WIFI-PROPERTIES  tak  tak  tak   tak   tak   tak  tak    nieznane  nieznane
 
 <<<
 size: 662
-location: clients/tests/test-client.py:1077:test_004()/371
+location: clients/tests/test-client.py:1078:test_004()/385
 cmd: $NMCLI --mode tabular --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -21834,7 +22328,7 @@ DEVICE  TYPE      DBUS-PATH
 
 <<<
 size: 672
-location: clients/tests/test-client.py:1077:test_004()/372
+location: clients/tests/test-client.py:1078:test_004()/386
 cmd: $NMCLI --mode tabular --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21849,7 +22343,7 @@ DEVICE  TYPE      DBUS-PATH
 
 <<<
 size: 2624
-location: clients/tests/test-client.py:1080:test_004()/373
+location: clients/tests/test-client.py:1081:test_004()/387
 cmd: $NMCLI --mode tabular --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -21867,7 +22361,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 2692
-location: clients/tests/test-client.py:1080:test_004()/374
+location: clients/tests/test-client.py:1081:test_004()/388
 cmd: $NMCLI --mode tabular --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21885,7 +22379,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 934
-location: clients/tests/test-client.py:1082:test_004()/375
+location: clients/tests/test-client.py:1083:test_004()/389
 cmd: $NMCLI --mode tabular --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -21903,7 +22397,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 994
-location: clients/tests/test-client.py:1082:test_004()/376
+location: clients/tests/test-client.py:1083:test_004()/390
 cmd: $NMCLI --mode tabular --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21921,7 +22415,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 2737
-location: clients/tests/test-client.py:1085:test_004()/377
+location: clients/tests/test-client.py:1086:test_004()/391
 cmd: $NMCLI --mode tabular --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -21939,7 +22433,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 2805
-location: clients/tests/test-client.py:1085:test_004()/378
+location: clients/tests/test-client.py:1086:test_004()/392
 cmd: $NMCLI --mode tabular --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21957,7 +22451,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 918
-location: clients/tests/test-client.py:1087:test_004()/379
+location: clients/tests/test-client.py:1088:test_004()/393
 cmd: $NMCLI --mode tabular --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -21970,7 +22464,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 
 <<<
 size: 946
-location: clients/tests/test-client.py:1087:test_004()/380
+location: clients/tests/test-client.py:1088:test_004()/394
 cmd: $NMCLI --mode tabular --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -21983,7 +22477,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 
 <<<
 size: 410
-location: clients/tests/test-client.py:1089:test_004()/381
+location: clients/tests/test-client.py:1090:test_004()/395
 cmd: $NMCLI --mode tabular --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -21996,7 +22490,7 @@ IN-USE  SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
 
 <<<
 size: 436
-location: clients/tests/test-client.py:1089:test_004()/382
+location: clients/tests/test-client.py:1090:test_004()/396
 cmd: $NMCLI --mode tabular --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22009,7 +22503,7 @@ IN-USE  SSID        MODE            CHAN  RATE     SIGNAL  BARS  SECURITY
 
 <<<
 size: 1031
-location: clients/tests/test-client.py:1092:test_004()/383
+location: clients/tests/test-client.py:1093:test_004()/397
 cmd: $NMCLI --mode tabular --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -22022,7 +22516,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 
 <<<
 size: 1059
-location: clients/tests/test-client.py:1092:test_004()/384
+location: clients/tests/test-client.py:1093:test_004()/398
 cmd: $NMCLI --mode tabular --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22035,7 +22529,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 
 <<<
 size: 3270
-location: clients/tests/test-client.py:1094:test_004()/385
+location: clients/tests/test-client.py:1095:test_004()/399
 cmd: $NMCLI --mode tabular --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -22072,7 +22566,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 3333
-location: clients/tests/test-client.py:1094:test_004()/386
+location: clients/tests/test-client.py:1095:test_004()/400
 cmd: $NMCLI --mode tabular --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22109,7 +22603,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1155
-location: clients/tests/test-client.py:1096:test_004()/387
+location: clients/tests/test-client.py:1097:test_004()/401
 cmd: $NMCLI --mode tabular --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -22144,7 +22638,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 1166
-location: clients/tests/test-client.py:1096:test_004()/388
+location: clients/tests/test-client.py:1097:test_004()/402
 cmd: $NMCLI --mode tabular --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22179,7 +22673,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 3408
-location: clients/tests/test-client.py:1098:test_004()/389
+location: clients/tests/test-client.py:1099:test_004()/403
 cmd: $NMCLI --mode tabular --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -22216,7 +22710,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 3471
-location: clients/tests/test-client.py:1098:test_004()/390
+location: clients/tests/test-client.py:1099:test_004()/404
 cmd: $NMCLI --mode tabular --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22252,12 +22746,38 @@ NAME         AVAILABLE-CONNECTION-PATHS                               AVAILABLE-
 CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 
 
 <<<
-size: 4742
-location: clients/tests/test-client.py:1036:test_004()/391
+size: 1157
+location: clients/tests/test-client.py:1102:test_004()/405
+cmd: $NMCLI --mode tabular --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 984 bytes
+>>>
+DEVICE  CHASSIS-ID         PORT-ID            PORT-DESCRIPTION    SYSTEM-NAME        SYSTEM-DESCRIPTION  SYSTEM-CAPABILITIES                                                                                                                         
+eth0    00:11:22:33:44:00  Uplink port        GigabitEthernet #1  test1.example.com  Test system #1      20 (mac-bridge,router)                                                                                                                      
+eth0    chassis1           44:44:44:44:44:44  GigabitEthernet #2  test2.example.com  Test system #2      2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr) 
+eth0    00:11:22:33:44:22  port1              GigabitEthernet #3  test3.example.com  Test system #3      40 (wlan-access-point,telephone)                                                                                                            
+
+<<<
+size: 1167
+location: clients/tests/test-client.py:1102:test_004()/406
+cmd: $NMCLI --mode tabular --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 984 bytes
+>>>
+DEVICE  CHASSIS-ID         PORT-ID            PORT-DESCRIPTION    SYSTEM-NAME        SYSTEM-DESCRIPTION  SYSTEM-CAPABILITIES                                                                                                                         
+eth0    00:11:22:33:44:00  Uplink port        GigabitEthernet #1  test1.example.com  Test system #1      20 (mac-bridge,router)                                                                                                                      
+eth0    chassis1           44:44:44:44:44:44  GigabitEthernet #2  test2.example.com  Test system #2      2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr) 
+eth0    00:11:22:33:44:22  port1              GigabitEthernet #3  test3.example.com  Test system #3      40 (wlan-access-point,telephone)                                                                                                            
+
+<<<
+size: 4832
+location: clients/tests/test-client.py:1037:test_004()/407
 cmd: $NMCLI --mode tabular --pretty con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4581 bytes
+stdout: 4671 bytes
 >>>
 ==========================================
   Connection profile details (con-vpn-1)
@@ -22266,13 +22786,13 @@ name        id         uuid                                  stable-id  type  in
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -22294,12 +22814,12 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 - VPN connected  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 4798
-location: clients/tests/test-client.py:1036:test_004()/392
+size: 4888
+location: clients/tests/test-client.py:1037:test_004()/408
 cmd: $NMCLI --mode tabular --pretty con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4627 bytes
+stdout: 4717 bytes
 >>>
 ============================================
   Szczegóły profilu połączenia (con-vpn-1)
@@ -22308,13 +22828,13 @@ name        id         uuid                                  stable-id  type  in
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -22336,12 +22856,12 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 — Połączono z VPN  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 4742
-location: clients/tests/test-client.py:1038:test_004()/393
+size: 4832
+location: clients/tests/test-client.py:1039:test_004()/409
 cmd: $NMCLI --mode tabular --pretty con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4581 bytes
+stdout: 4671 bytes
 >>>
 ==========================================
   Connection profile details (con-vpn-1)
@@ -22350,13 +22870,13 @@ name        id         uuid                                  stable-id  type  in
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -22378,12 +22898,12 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 - VPN connected  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 4798
-location: clients/tests/test-client.py:1038:test_004()/394
+size: 4888
+location: clients/tests/test-client.py:1039:test_004()/410
 cmd: $NMCLI --mode tabular --pretty con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4627 bytes
+stdout: 4717 bytes
 >>>
 ============================================
   Szczegóły profilu połączenia (con-vpn-1)
@@ -22392,13 +22912,13 @@ name        id         uuid                                  stable-id  type  in
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -22420,12 +22940,12 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 — Połączono z VPN  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 3428
-location: clients/tests/test-client.py:1041:test_004()/395
+size: 3518
+location: clients/tests/test-client.py:1042:test_004()/411
 cmd: $NMCLI --mode tabular --pretty -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3260 bytes
+stdout: 3350 bytes
 >>>
 ==========================================
   Connection profile details (con-vpn-1)
@@ -22434,13 +22954,13 @@ name        id         uuid                                  stable-id  type  in
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -22452,12 +22972,12 @@ proxy  none    no            --       --
 
 
 <<<
-size: 3451
-location: clients/tests/test-client.py:1041:test_004()/396
+size: 3541
+location: clients/tests/test-client.py:1042:test_004()/412
 cmd: $NMCLI --mode tabular --pretty -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3273 bytes
+stdout: 3363 bytes
 >>>
 ============================================
   Szczegóły profilu połączenia (con-vpn-1)
@@ -22466,13 +22986,13 @@ name        id         uuid                                  stable-id  type  in
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -22485,7 +23005,7 @@ proxy  none    nie           --       --
 
 <<<
 size: 676
-location: clients/tests/test-client.py:1047:test_004()/397
+location: clients/tests/test-client.py:1048:test_004()/413
 cmd: $NMCLI --mode tabular --pretty -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -22500,7 +23020,7 @@ vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val
 
 <<<
 size: 696
-location: clients/tests/test-client.py:1047:test_004()/398
+location: clients/tests/test-client.py:1048:test_004()/414
 cmd: $NMCLI --mode tabular --pretty -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22515,7 +23035,7 @@ vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val
 
 <<<
 size: 1106
-location: clients/tests/test-client.py:1050:test_004()/399
+location: clients/tests/test-client.py:1051:test_004()/415
 cmd: $NMCLI --mode tabular --pretty -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -22530,7 +23050,7 @@ GENERAL  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  wlan0    activated  no
 
 <<<
 size: 1138
-location: clients/tests/test-client.py:1050:test_004()/400
+location: clients/tests/test-client.py:1051:test_004()/416
 cmd: $NMCLI --mode tabular --pretty -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22545,7 +23065,7 @@ GENERAL  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  wlan0    aktywowano  n
 
 <<<
 size: 537
-location: clients/tests/test-client.py:1053:test_004()/401
+location: clients/tests/test-client.py:1054:test_004()/417
 cmd: $NMCLI --mode tabular --pretty dev s
 lang: C
 returncode: 0
@@ -22564,7 +23084,7 @@ wlan1   wifi      unavailable  --
 
 <<<
 size: 545
-location: clients/tests/test-client.py:1053:test_004()/402
+location: clients/tests/test-client.py:1054:test_004()/418
 cmd: $NMCLI --mode tabular --pretty dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22583,7 +23103,7 @@ wlan1   wifi      niedostępne  --
 
 <<<
 size: 1733
-location: clients/tests/test-client.py:1056:test_004()/403
+location: clients/tests/test-client.py:1057:test_004()/419
 cmd: $NMCLI --mode tabular --pretty -f all dev status
 lang: C
 returncode: 0
@@ -22602,7 +23122,7 @@ wlan1   wifi      unavailable  unknown           unknown           /org/freedesk
 
 <<<
 size: 1741
-location: clients/tests/test-client.py:1056:test_004()/404
+location: clients/tests/test-client.py:1057:test_004()/420
 cmd: $NMCLI --mode tabular --pretty -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -22621,7 +23141,7 @@ wlan1   wifi      niedostępne  nieznane          nieznane          /org/freedes
 
 <<<
 size: 9891
-location: clients/tests/test-client.py:1059:test_004()/405
+location: clients/tests/test-client.py:1060:test_004()/421
 cmd: $NMCLI --mode tabular --pretty dev show
 lang: C
 returncode: 0
@@ -22832,7 +23352,7 @@ IP6    2001:a::88ca:3654:96b:ab44/89  --       dst = 2001:a::cc8b:7c09:4673:bbb0
 
 <<<
 size: 10067
-location: clients/tests/test-client.py:1059:test_004()/406
+location: clients/tests/test-client.py:1060:test_004()/422
 cmd: $NMCLI --mode tabular --pretty dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23043,7 +23563,7 @@ IP6    2001:a::88ca:3654:96b:ab44/89  --       dst = 2001:a::cc8b:7c09:4673:bbb0
 
 <<<
 size: 22590
-location: clients/tests/test-client.py:1062:test_004()/407
+location: clients/tests/test-client.py:1063:test_004()/423
 cmd: $NMCLI --mode tabular --pretty -f all dev show
 lang: C
 returncode: 0
@@ -23239,7 +23759,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 22951
-location: clients/tests/test-client.py:1062:test_004()/408
+location: clients/tests/test-client.py:1063:test_004()/424
 cmd: $NMCLI --mode tabular --pretty -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23435,7 +23955,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1714
-location: clients/tests/test-client.py:1065:test_004()/409
+location: clients/tests/test-client.py:1066:test_004()/425
 cmd: $NMCLI --mode tabular --pretty dev show wlan0
 lang: C
 returncode: 0
@@ -23482,7 +24002,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 1754
-location: clients/tests/test-client.py:1065:test_004()/410
+location: clients/tests/test-client.py:1066:test_004()/426
 cmd: $NMCLI --mode tabular --pretty dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23529,7 +24049,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 4456
-location: clients/tests/test-client.py:1068:test_004()/411
+location: clients/tests/test-client.py:1069:test_004()/427
 cmd: $NMCLI --mode tabular --pretty -f all dev show wlan0
 lang: C
 returncode: 0
@@ -23578,7 +24098,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 4564
-location: clients/tests/test-client.py:1068:test_004()/412
+location: clients/tests/test-client.py:1069:test_004()/428
 cmd: $NMCLI --mode tabular --pretty -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23627,7 +24147,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1870
-location: clients/tests/test-client.py:1071:test_004()/413
+location: clients/tests/test-client.py:1072:test_004()/429
 cmd: $NMCLI --mode tabular --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -23650,7 +24170,7 @@ WIFI-PROPERTIES  yes  yes  yes   yes   yes   yes  yes    unknown  unknown
 
 <<<
 size: 1934
-location: clients/tests/test-client.py:1071:test_004()/414
+location: clients/tests/test-client.py:1072:test_004()/430
 cmd: $NMCLI --mode tabular --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23673,7 +24193,7 @@ WIFI-PROPERTIES  tak  tak  tak   tak   tak   tak  tak    nieznane  nieznane
 
 <<<
 size: 1870
-location: clients/tests/test-client.py:1074:test_004()/415
+location: clients/tests/test-client.py:1075:test_004()/431
 cmd: $NMCLI --mode tabular --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -23696,7 +24216,7 @@ WIFI-PROPERTIES  yes  yes  yes   yes   yes   yes  yes    unknown  unknown
 
 <<<
 size: 1934
-location: clients/tests/test-client.py:1074:test_004()/416
+location: clients/tests/test-client.py:1075:test_004()/432
 cmd: $NMCLI --mode tabular --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23719,7 +24239,7 @@ WIFI-PROPERTIES  tak  tak  tak   tak   tak   tak  tak    nieznane  nieznane
 
 <<<
 size: 686
-location: clients/tests/test-client.py:1077:test_004()/417
+location: clients/tests/test-client.py:1078:test_004()/433
 cmd: $NMCLI --mode tabular --pretty -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -23738,7 +24258,7 @@ wlan1   wifi      /org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 689
-location: clients/tests/test-client.py:1077:test_004()/418
+location: clients/tests/test-client.py:1078:test_004()/434
 cmd: $NMCLI --mode tabular --pretty -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23757,7 +24277,7 @@ wlan1   wifi      /org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 3041
-location: clients/tests/test-client.py:1080:test_004()/419
+location: clients/tests/test-client.py:1081:test_004()/435
 cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list
 lang: C
 returncode: 0
@@ -23787,7 +24307,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 3279
-location: clients/tests/test-client.py:1080:test_004()/420
+location: clients/tests/test-client.py:1081:test_004()/436
 cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23817,7 +24337,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 1167
-location: clients/tests/test-client.py:1082:test_004()/421
+location: clients/tests/test-client.py:1083:test_004()/437
 cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -23847,7 +24367,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 1398
-location: clients/tests/test-client.py:1082:test_004()/422
+location: clients/tests/test-client.py:1083:test_004()/438
 cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23877,7 +24397,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 3154
-location: clients/tests/test-client.py:1085:test_004()/423
+location: clients/tests/test-client.py:1086:test_004()/439
 cmd: $NMCLI --mode tabular --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -23907,7 +24427,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 3392
-location: clients/tests/test-client.py:1085:test_004()/424
+location: clients/tests/test-client.py:1086:test_004()/440
 cmd: $NMCLI --mode tabular --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23937,7 +24457,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 1156
-location: clients/tests/test-client.py:1087:test_004()/425
+location: clients/tests/test-client.py:1088:test_004()/441
 cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -23954,7 +24474,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infra  1     2412 MH
 
 <<<
 size: 1244
-location: clients/tests/test-client.py:1087:test_004()/426
+location: clients/tests/test-client.py:1088:test_004()/442
 cmd: $NMCLI --mode tabular --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -23971,7 +24491,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infrastruktura  1
 
 <<<
 size: 514
-location: clients/tests/test-client.py:1089:test_004()/427
+location: clients/tests/test-client.py:1090:test_004()/443
 cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -23988,7 +24508,7 @@ IN-USE  SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
 
 <<<
 size: 599
-location: clients/tests/test-client.py:1089:test_004()/428
+location: clients/tests/test-client.py:1090:test_004()/444
 cmd: $NMCLI --mode tabular --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24005,7 +24525,7 @@ IN-USE  SSID        MODE            CHAN  RATE     SIGNAL  BARS  SECURITY
 
 <<<
 size: 1269
-location: clients/tests/test-client.py:1092:test_004()/429
+location: clients/tests/test-client.py:1093:test_004()/445
 cmd: $NMCLI --mode tabular --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -24022,7 +24542,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infra  1     2412 MH
 
 <<<
 size: 1357
-location: clients/tests/test-client.py:1092:test_004()/430
+location: clients/tests/test-client.py:1093:test_004()/446
 cmd: $NMCLI --mode tabular --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24039,7 +24559,7 @@ AP[1]  wlan0-ap-2  776C616E302D61702D32  C0:E2:BE:E8:EF:B6  Infrastruktura  1
 
 <<<
 size: 4459
-location: clients/tests/test-client.py:1094:test_004()/431
+location: clients/tests/test-client.py:1095:test_004()/447
 cmd: $NMCLI --mode tabular --pretty -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -24088,7 +24608,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 4567
-location: clients/tests/test-client.py:1094:test_004()/432
+location: clients/tests/test-client.py:1095:test_004()/448
 cmd: $NMCLI --mode tabular --pretty -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24137,7 +24657,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1727
-location: clients/tests/test-client.py:1096:test_004()/433
+location: clients/tests/test-client.py:1097:test_004()/449
 cmd: $NMCLI --mode tabular --pretty -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -24184,7 +24704,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 1767
-location: clients/tests/test-client.py:1096:test_004()/434
+location: clients/tests/test-client.py:1097:test_004()/450
 cmd: $NMCLI --mode tabular --pretty -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24231,7 +24751,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 4597
-location: clients/tests/test-client.py:1098:test_004()/435
+location: clients/tests/test-client.py:1099:test_004()/451
 cmd: $NMCLI --mode tabular --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -24280,7 +24800,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 4705
-location: clients/tests/test-client.py:1098:test_004()/436
+location: clients/tests/test-client.py:1099:test_004()/452
 cmd: $NMCLI --mode tabular --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24328,12 +24848,46 @@ NAME         AVAILABLE-CONNECTION-PATHS                               AVAILABLE-
 CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 
 
 <<<
-size: 4754
-location: clients/tests/test-client.py:1036:test_004()/437
+size: 1531
+location: clients/tests/test-client.py:1102:test_004()/453
+cmd: $NMCLI --mode tabular --pretty dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1360 bytes
+>>>
+================================
+  Device LLDP neighbors (eth0)
+================================
+DEVICE  CHASSIS-ID         PORT-ID            PORT-DESCRIPTION    SYSTEM-NAME        SYSTEM-DESCRIPTION  SYSTEM-CAPABILITIES                                                                                                                         
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+eth0    00:11:22:33:44:00  Uplink port        GigabitEthernet #1  test1.example.com  Test system #1      20 (mac-bridge,router)                                                                                                                      
+eth0    chassis1           44:44:44:44:44:44  GigabitEthernet #2  test2.example.com  Test system #2      2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr) 
+eth0    00:11:22:33:44:22  port1              GigabitEthernet #3  test3.example.com  Test system #3      40 (wlan-access-point,telephone)                                                                                                            
+
+<<<
+size: 1555
+location: clients/tests/test-client.py:1102:test_004()/454
+cmd: $NMCLI --mode tabular --pretty dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1374 bytes
+>>>
+===================================
+  Sąsiedzi LLDP urządzenia (eth0)
+===================================
+DEVICE  CHASSIS-ID         PORT-ID            PORT-DESCRIPTION    SYSTEM-NAME        SYSTEM-DESCRIPTION  SYSTEM-CAPABILITIES                                                                                                                         
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+eth0    00:11:22:33:44:00  Uplink port        GigabitEthernet #1  test1.example.com  Test system #1      20 (mac-bridge,router)                                                                                                                      
+eth0    chassis1           44:44:44:44:44:44  GigabitEthernet #2  test2.example.com  Test system #2      2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr) 
+eth0    00:11:22:33:44:22  port1              GigabitEthernet #3  test3.example.com  Test system #3      40 (wlan-access-point,telephone)                                                                                                            
+
+<<<
+size: 4844
+location: clients/tests/test-client.py:1037:test_004()/455
 cmd: $NMCLI --mode tabular --pretty --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4581 bytes
+stdout: 4671 bytes
 >>>
 ==========================================
   Connection profile details (con-vpn-1)
@@ -24342,13 +24896,13 @@ name        id         uuid                                  stable-id  type  in
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -24370,12 +24924,12 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 - VPN connected  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 4810
-location: clients/tests/test-client.py:1036:test_004()/438
+size: 4900
+location: clients/tests/test-client.py:1037:test_004()/456
 cmd: $NMCLI --mode tabular --pretty --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4627 bytes
+stdout: 4717 bytes
 >>>
 ============================================
   Szczegóły profilu połączenia (con-vpn-1)
@@ -24384,13 +24938,13 @@ name        id         uuid                                  stable-id  type  in
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -24412,12 +24966,12 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 — Połączono z VPN  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 4754
-location: clients/tests/test-client.py:1038:test_004()/439
+size: 4844
+location: clients/tests/test-client.py:1039:test_004()/457
 cmd: $NMCLI --mode tabular --pretty --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4581 bytes
+stdout: 4671 bytes
 >>>
 ==========================================
   Connection profile details (con-vpn-1)
@@ -24426,13 +24980,13 @@ name        id         uuid                                  stable-id  type  in
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -24454,12 +25008,12 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 - VPN connected  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 4810
-location: clients/tests/test-client.py:1038:test_004()/440
+size: 4900
+location: clients/tests/test-client.py:1039:test_004()/458
 cmd: $NMCLI --mode tabular --pretty --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4627 bytes
+stdout: 4717 bytes
 >>>
 ============================================
   Szczegóły profilu połączenia (con-vpn-1)
@@ -24468,13 +25022,13 @@ name        id         uuid                                  stable-id  type  in
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -24496,12 +25050,12 @@ NAME  TYPE     USERNAME  GATEWAY  BANNER                            VPN-STATE
 VPN   openvpn  --        --       *** VPN connection con-vpn-1 ***  5 — Połączono z VPN  key1 = val1 | key2 = val2 | key3 = val3 
 
 <<<
-size: 3440
-location: clients/tests/test-client.py:1041:test_004()/441
+size: 3530
+location: clients/tests/test-client.py:1042:test_004()/459
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3260 bytes
+stdout: 3350 bytes
 >>>
 ==========================================
   Connection profile details (con-vpn-1)
@@ -24510,13 +25064,13 @@ name        id         uuid                                  stable-id  type  in
 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              yes          0                     -1 (default)         0 (default)    -1            0          no         --           --    --      --          -1 (default)        --           0                     unknown  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               --              0 (default)   yes                 --             --         no             yes       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             no                  no               no             yes       -1 (unknown)  stable-privacy  --         yes                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -24528,12 +25082,12 @@ proxy  none    no            --       --
 
 
 <<<
-size: 3463
-location: clients/tests/test-client.py:1041:test_004()/442
+size: 3553
+location: clients/tests/test-client.py:1042:test_004()/460
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3273 bytes
+stdout: 3363 bytes
 >>>
 ============================================
   Szczegóły profilu połączenia (con-vpn-1)
@@ -24542,13 +25096,13 @@ name        id         uuid                                  stable-id  type  in
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 connection  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  --         vpn   --              tak          0                     -1 (default)         0 (default)    -1            0          nie        --           --    --      --          -1 (default)        --           0                     nieznane  default  -1 (default)  -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  dhcp-client-id  dhcp-timeout  dhcp-send-hostname  dhcp-hostname  dhcp-fqdn  never-default  may-fail  dad-timeout  
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv4  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              --              0 (default)   tak                 --             --         nie            tak       -1 (default) 
 
-name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
+name  method  dns  dns-search  dns-options  dns-priority  addresses  gateway  routes  route-metric  route-table  routing-rules  ignore-auto-routes  ignore-auto-dns  never-default  may-fail  ip6-privacy   addr-gen-mode   dhcp-duid  dhcp-send-hostname  dhcp-hostname  token 
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ipv6  auto    --   --          ""           0             --         --       --      -1            0 (unspec)   --             nie                 nie              nie            tak       -1 (unknown)  stable-privacy  --         tak                 --             --    
 
 name  service-type                            user-name  data                                   secrets   persistent  timeout 
 -------------------------------------------------------------------------------------------------------------------------------
@@ -24561,7 +25115,7 @@ proxy  none    nie           --       --
 
 <<<
 size: 688
-location: clients/tests/test-client.py:1047:test_004()/443
+location: clients/tests/test-client.py:1048:test_004()/461
 cmd: $NMCLI --mode tabular --pretty --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -24576,7 +25130,7 @@ vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val
 
 <<<
 size: 708
-location: clients/tests/test-client.py:1047:test_004()/444
+location: clients/tests/test-client.py:1048:test_004()/462
 cmd: $NMCLI --mode tabular --pretty --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24591,7 +25145,7 @@ vpn   org.freedesktop.NetworkManager.openvpn  --         key1 = val1, key2 = val
 
 <<<
 size: 1118
-location: clients/tests/test-client.py:1050:test_004()/445
+location: clients/tests/test-client.py:1051:test_004()/463
 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -24606,7 +25160,7 @@ GENERAL  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  wlan0    activated  no
 
 <<<
 size: 1150
-location: clients/tests/test-client.py:1050:test_004()/446
+location: clients/tests/test-client.py:1051:test_004()/464
 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24621,7 +25175,7 @@ GENERAL  con-vpn-1  UUID-con-vpn-1-REPLACED-REPLACED-REP  wlan0    aktywowano  n
 
 <<<
 size: 709
-location: clients/tests/test-client.py:1053:test_004()/447
+location: clients/tests/test-client.py:1054:test_004()/465
 cmd: $NMCLI --mode tabular --pretty --color yes dev s
 lang: C
 returncode: 0
@@ -24640,7 +25194,7 @@ DEVICE  TYPE      STATE        CONNECTION
 
 <<<
 size: 717
-location: clients/tests/test-client.py:1053:test_004()/448
+location: clients/tests/test-client.py:1054:test_004()/466
 cmd: $NMCLI --mode tabular --pretty --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24659,7 +25213,7 @@ DEVICE  TYPE      STATE        CONNECTION
 
 <<<
 size: 2105
-location: clients/tests/test-client.py:1056:test_004()/449
+location: clients/tests/test-client.py:1057:test_004()/467
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev status
 lang: C
 returncode: 0
@@ -24678,7 +25232,7 @@ DEVICE  TYPE      STATE        IP4-CONNECTIVITY  IP6-CONNECTIVITY  DBUS-PATH
 
 <<<
 size: 2113
-location: clients/tests/test-client.py:1056:test_004()/450
+location: clients/tests/test-client.py:1057:test_004()/468
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -24697,7 +25251,7 @@ DEVICE  TYPE      STATE        IP4-CONNECTIVITY  IP6-CONNECTIVITY  DBUS-PATH
 
 <<<
 size: 9903
-location: clients/tests/test-client.py:1059:test_004()/451
+location: clients/tests/test-client.py:1060:test_004()/469
 cmd: $NMCLI --mode tabular --pretty --color yes dev show
 lang: C
 returncode: 0
@@ -24908,7 +25462,7 @@ IP6    2001:a::88ca:3654:96b:ab44/89  --       dst = 2001:a::cc8b:7c09:4673:bbb0
 
 <<<
 size: 10079
-location: clients/tests/test-client.py:1059:test_004()/452
+location: clients/tests/test-client.py:1060:test_004()/470
 cmd: $NMCLI --mode tabular --pretty --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25119,7 +25673,7 @@ IP6    2001:a::88ca:3654:96b:ab44/89  --       dst = 2001:a::cc8b:7c09:4673:bbb0
 
 <<<
 size: 22926
-location: clients/tests/test-client.py:1062:test_004()/453
+location: clients/tests/test-client.py:1063:test_004()/471
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show
 lang: C
 returncode: 0
@@ -25315,7 +25869,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 23287
-location: clients/tests/test-client.py:1062:test_004()/454
+location: clients/tests/test-client.py:1063:test_004()/472
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25511,7 +26065,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1726
-location: clients/tests/test-client.py:1065:test_004()/455
+location: clients/tests/test-client.py:1066:test_004()/473
 cmd: $NMCLI --mode tabular --pretty --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -25558,7 +26112,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 1766
-location: clients/tests/test-client.py:1065:test_004()/456
+location: clients/tests/test-client.py:1066:test_004()/474
 cmd: $NMCLI --mode tabular --pretty --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25605,7 +26159,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 4711
-location: clients/tests/test-client.py:1068:test_004()/457
+location: clients/tests/test-client.py:1069:test_004()/475
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -25654,7 +26208,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 4819
-location: clients/tests/test-client.py:1068:test_004()/458
+location: clients/tests/test-client.py:1069:test_004()/476
 cmd: $NMCLI --mode tabular --pretty --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25703,7 +26257,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1882
-location: clients/tests/test-client.py:1071:test_004()/459
+location: clients/tests/test-client.py:1072:test_004()/477
 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -25726,7 +26280,7 @@ WIFI-PROPERTIES  yes  yes  yes   yes   yes   yes  yes    unknown  unknown
 
 <<<
 size: 1946
-location: clients/tests/test-client.py:1071:test_004()/460
+location: clients/tests/test-client.py:1072:test_004()/478
 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25749,7 +26303,7 @@ WIFI-PROPERTIES  tak  tak  tak   tak   tak   tak  tak    nieznane  nieznane
 
 <<<
 size: 1882
-location: clients/tests/test-client.py:1074:test_004()/461
+location: clients/tests/test-client.py:1075:test_004()/479
 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -25772,7 +26326,7 @@ WIFI-PROPERTIES  yes  yes  yes   yes   yes   yes  yes    unknown  unknown
 
 <<<
 size: 1946
-location: clients/tests/test-client.py:1074:test_004()/462
+location: clients/tests/test-client.py:1075:test_004()/480
 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25795,7 +26349,7 @@ WIFI-PROPERTIES  tak  tak  tak   tak   tak   tak  tak    nieznane  nieznane
 
 <<<
 size: 818
-location: clients/tests/test-client.py:1077:test_004()/463
+location: clients/tests/test-client.py:1078:test_004()/481
 cmd: $NMCLI --mode tabular --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -25814,7 +26368,7 @@ DEVICE  TYPE      DBUS-PATH
 
 <<<
 size: 821
-location: clients/tests/test-client.py:1077:test_004()/464
+location: clients/tests/test-client.py:1078:test_004()/482
 cmd: $NMCLI --mode tabular --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25833,7 +26387,7 @@ DEVICE  TYPE      DBUS-PATH
 
 <<<
 size: 3665
-location: clients/tests/test-client.py:1080:test_004()/465
+location: clients/tests/test-client.py:1081:test_004()/483
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -25863,7 +26417,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 3903
-location: clients/tests/test-client.py:1080:test_004()/466
+location: clients/tests/test-client.py:1081:test_004()/484
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25893,7 +26447,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 1468
-location: clients/tests/test-client.py:1082:test_004()/467
+location: clients/tests/test-client.py:1083:test_004()/485
 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -25923,7 +26477,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 1698
-location: clients/tests/test-client.py:1082:test_004()/468
+location: clients/tests/test-client.py:1083:test_004()/486
 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -25953,7 +26507,7 @@ IN-USE  SSID  MODE  CHAN  RATE  SIGNAL  BARS  SECURITY
 
 <<<
 size: 3778
-location: clients/tests/test-client.py:1085:test_004()/469
+location: clients/tests/test-client.py:1086:test_004()/487
 cmd: $NMCLI --mode tabular --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -25983,7 +26537,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 4016
-location: clients/tests/test-client.py:1085:test_004()/470
+location: clients/tests/test-client.py:1086:test_004()/488
 cmd: $NMCLI --mode tabular --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26013,7 +26567,7 @@ NAME  SSID  SSID-HEX  BSSID  MODE  CHAN  FREQ  RATE  SIGNAL  BARS  SECURITY  WPA
 
 <<<
 size: 1322
-location: clients/tests/test-client.py:1087:test_004()/471
+location: clients/tests/test-client.py:1088:test_004()/489
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -26030,7 +26584,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 
 <<<
 size: 1409
-location: clients/tests/test-client.py:1087:test_004()/472
+location: clients/tests/test-client.py:1088:test_004()/490
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26047,7 +26601,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 
 <<<
 size: 598
-location: clients/tests/test-client.py:1089:test_004()/473
+location: clients/tests/test-client.py:1090:test_004()/491
 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -26064,7 +26618,7 @@ IN-USE  SSID        MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
 
 <<<
 size: 683
-location: clients/tests/test-client.py:1089:test_004()/474
+location: clients/tests/test-client.py:1090:test_004()/492
 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26081,7 +26635,7 @@ IN-USE  SSID        MODE            CHAN  RATE     SIGNAL  BARS  SECURITY
 
 <<<
 size: 1435
-location: clients/tests/test-client.py:1092:test_004()/475
+location: clients/tests/test-client.py:1093:test_004()/493
 cmd: $NMCLI --mode tabular --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -26098,7 +26652,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE   CHAN  FREQ
 
 <<<
 size: 1522
-location: clients/tests/test-client.py:1092:test_004()/476
+location: clients/tests/test-client.py:1093:test_004()/494
 cmd: $NMCLI --mode tabular --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26115,7 +26669,7 @@ NAME   SSID        SSID-HEX              BSSID              MODE            CHAN
 
 <<<
 size: 4714
-location: clients/tests/test-client.py:1094:test_004()/477
+location: clients/tests/test-client.py:1095:test_004()/495
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -26164,7 +26718,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 4822
-location: clients/tests/test-client.py:1094:test_004()/478
+location: clients/tests/test-client.py:1095:test_004()/496
 cmd: $NMCLI --mode tabular --pretty --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26213,7 +26767,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 1739
-location: clients/tests/test-client.py:1096:test_004()/479
+location: clients/tests/test-client.py:1097:test_004()/497
 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -26260,7 +26814,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 1779
-location: clients/tests/test-client.py:1096:test_004()/480
+location: clients/tests/test-client.py:1097:test_004()/498
 cmd: $NMCLI --mode tabular --pretty --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26307,7 +26861,7 @@ IP6    --       --       dst = 2001:a::dd5b:aa7b:b4a2:e42/102, nh = ::, mt = 250
 
 <<<
 size: 4852
-location: clients/tests/test-client.py:1098:test_004()/481
+location: clients/tests/test-client.py:1099:test_004()/499
 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -26356,7 +26910,7 @@ CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-x
 
 <<<
 size: 4960
-location: clients/tests/test-client.py:1098:test_004()/482
+location: clients/tests/test-client.py:1099:test_004()/500
 cmd: $NMCLI --mode tabular --pretty --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26404,100 +26958,134 @@ NAME         AVAILABLE-CONNECTION-PATHS                               AVAILABLE-
 CONNECTIONS  /org/freedesktop/NetworkManager/Settings/Connection/{2}  UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 
 
 <<<
-size: 791
-location: clients/tests/test-client.py:1036:test_004()/483
+size: 1543
+location: clients/tests/test-client.py:1102:test_004()/501
+cmd: $NMCLI --mode tabular --pretty --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1360 bytes
+>>>
+================================
+  Device LLDP neighbors (eth0)
+================================
+DEVICE  CHASSIS-ID         PORT-ID            PORT-DESCRIPTION    SYSTEM-NAME        SYSTEM-DESCRIPTION  SYSTEM-CAPABILITIES                                                                                                                         
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+eth0    00:11:22:33:44:00  Uplink port        GigabitEthernet #1  test1.example.com  Test system #1      20 (mac-bridge,router)                                                                                                                      
+eth0    chassis1           44:44:44:44:44:44  GigabitEthernet #2  test2.example.com  Test system #2      2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr) 
+eth0    00:11:22:33:44:22  port1              GigabitEthernet #3  test3.example.com  Test system #3      40 (wlan-access-point,telephone)                                                                                                            
+
+<<<
+size: 1567
+location: clients/tests/test-client.py:1102:test_004()/502
+cmd: $NMCLI --mode tabular --pretty --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1374 bytes
+>>>
+===================================
+  Sąsiedzi LLDP urządzenia (eth0)
+===================================
+DEVICE  CHASSIS-ID         PORT-ID            PORT-DESCRIPTION    SYSTEM-NAME        SYSTEM-DESCRIPTION  SYSTEM-CAPABILITIES                                                                                                                         
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+eth0    00:11:22:33:44:00  Uplink port        GigabitEthernet #1  test1.example.com  Test system #1      20 (mac-bridge,router)                                                                                                                      
+eth0    chassis1           44:44:44:44:44:44  GigabitEthernet #2  test2.example.com  Test system #2      2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr) 
+eth0    00:11:22:33:44:22  port1              GigabitEthernet #3  test3.example.com  Test system #3      40 (wlan-access-point,telephone)                                                                                                            
+
+<<<
+size: 793
+location: clients/tests/test-client.py:1037:test_004()/503
 cmd: $NMCLI --mode tabular --terse con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 632 bytes
+stdout: 634 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3::
 VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3
 
 <<<
-size: 801
-location: clients/tests/test-client.py:1036:test_004()/484
+size: 803
+location: clients/tests/test-client.py:1037:test_004()/504
 cmd: $NMCLI --mode tabular --terse con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 632 bytes
+stdout: 634 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3::
 VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3
 
 <<<
-size: 791
-location: clients/tests/test-client.py:1038:test_004()/485
+size: 793
+location: clients/tests/test-client.py:1039:test_004()/505
 cmd: $NMCLI --mode tabular --terse con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 632 bytes
+stdout: 634 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3::
 VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3
 
 <<<
-size: 801
-location: clients/tests/test-client.py:1038:test_004()/486
+size: 803
+location: clients/tests/test-client.py:1039:test_004()/506
 cmd: $NMCLI --mode tabular --terse con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 632 bytes
+stdout: 634 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3::
 VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3
 
 <<<
-size: 504
-location: clients/tests/test-client.py:1041:test_004()/487
+size: 506
+location: clients/tests/test-client.py:1042:test_004()/507
 cmd: $NMCLI --mode tabular --terse -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 338 bytes
+stdout: 340 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 
 <<<
-size: 514
-location: clients/tests/test-client.py:1041:test_004()/488
+size: 516
+location: clients/tests/test-client.py:1042:test_004()/508
 cmd: $NMCLI --mode tabular --terse -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 338 bytes
+stdout: 340 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 
 <<<
 size: 261
-location: clients/tests/test-client.py:1047:test_004()/489
+location: clients/tests/test-client.py:1048:test_004()/509
 cmd: $NMCLI --mode tabular --terse -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -26507,7 +27095,7 @@ vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val
 
 <<<
 size: 271
-location: clients/tests/test-client.py:1047:test_004()/490
+location: clients/tests/test-client.py:1048:test_004()/510
 cmd: $NMCLI --mode tabular --terse -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26517,7 +27105,7 @@ vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val
 
 <<<
 size: 359
-location: clients/tests/test-client.py:1050:test_004()/491
+location: clients/tests/test-client.py:1051:test_004()/511
 cmd: $NMCLI --mode tabular --terse -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -26527,7 +27115,7 @@ GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::ye
 
 <<<
 size: 369
-location: clients/tests/test-client.py:1050:test_004()/492
+location: clients/tests/test-client.py:1051:test_004()/512
 cmd: $NMCLI --mode tabular --terse -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26537,7 +27125,7 @@ GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::ye
 
 <<<
 size: 284
-location: clients/tests/test-client.py:1053:test_004()/493
+location: clients/tests/test-client.py:1054:test_004()/513
 cmd: $NMCLI --mode tabular --terse dev s
 lang: C
 returncode: 0
@@ -26551,7 +27139,7 @@ wlan1:wifi:unavailable:
 
 <<<
 size: 294
-location: clients/tests/test-client.py:1053:test_004()/494
+location: clients/tests/test-client.py:1054:test_004()/514
 cmd: $NMCLI --mode tabular --terse dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26565,7 +27153,7 @@ wlan1:wifi:unavailable:
 
 <<<
 size: 682
-location: clients/tests/test-client.py:1056:test_004()/495
+location: clients/tests/test-client.py:1057:test_004()/515
 cmd: $NMCLI --mode tabular --terse -f all dev status
 lang: C
 returncode: 0
@@ -26579,7 +27167,7 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 692
-location: clients/tests/test-client.py:1056:test_004()/496
+location: clients/tests/test-client.py:1057:test_004()/516
 cmd: $NMCLI --mode tabular --terse -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26593,7 +27181,7 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 3096
-location: clients/tests/test-client.py:1059:test_004()/497
+location: clients/tests/test-client.py:1060:test_004()/517
 cmd: $NMCLI --mode tabular --terse dev show
 lang: C
 returncode: 0
@@ -26653,7 +27241,7 @@ IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0
 
 <<<
 size: 3106
-location: clients/tests/test-client.py:1059:test_004()/498
+location: clients/tests/test-client.py:1060:test_004()/518
 cmd: $NMCLI --mode tabular --terse dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26713,7 +27301,7 @@ IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0
 
 <<<
 size: 6315
-location: clients/tests/test-client.py:1062:test_004()/499
+location: clients/tests/test-client.py:1063:test_004()/519
 cmd: $NMCLI --mode tabular --terse -f all dev show
 lang: C
 returncode: 0
@@ -26770,7 +27358,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 6361
-location: clients/tests/test-client.py:1062:test_004()/500
+location: clients/tests/test-client.py:1063:test_004()/520
 cmd: $NMCLI --mode tabular --terse -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26827,7 +27415,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 604
-location: clients/tests/test-client.py:1065:test_004()/501
+location: clients/tests/test-client.py:1066:test_004()/521
 cmd: $NMCLI --mode tabular --terse dev show wlan0
 lang: C
 returncode: 0
@@ -26845,7 +27433,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se
 
 <<<
 size: 614
-location: clients/tests/test-client.py:1065:test_004()/502
+location: clients/tests/test-client.py:1066:test_004()/522
 cmd: $NMCLI --mode tabular --terse dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26863,7 +27451,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se
 
 <<<
 size: 1355
-location: clients/tests/test-client.py:1068:test_004()/503
+location: clients/tests/test-client.py:1069:test_004()/523
 cmd: $NMCLI --mode tabular --terse -f all dev show wlan0
 lang: C
 returncode: 0
@@ -26883,7 +27471,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 1392
-location: clients/tests/test-client.py:1068:test_004()/504
+location: clients/tests/test-client.py:1069:test_004()/524
 cmd: $NMCLI --mode tabular --terse -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26903,7 +27491,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 565
-location: clients/tests/test-client.py:1071:test_004()/505
+location: clients/tests/test-client.py:1072:test_004()/525
 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -26915,7 +27503,7 @@ WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
 
 <<<
 size: 575
-location: clients/tests/test-client.py:1071:test_004()/506
+location: clients/tests/test-client.py:1072:test_004()/526
 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26927,7 +27515,7 @@ WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
 
 <<<
 size: 565
-location: clients/tests/test-client.py:1074:test_004()/507
+location: clients/tests/test-client.py:1075:test_004()/527
 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -26939,7 +27527,7 @@ WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
 
 <<<
 size: 575
-location: clients/tests/test-client.py:1074:test_004()/508
+location: clients/tests/test-client.py:1075:test_004()/528
 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26951,7 +27539,7 @@ WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
 
 <<<
 size: 443
-location: clients/tests/test-client.py:1077:test_004()/509
+location: clients/tests/test-client.py:1078:test_004()/529
 cmd: $NMCLI --mode tabular --terse -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -26965,7 +27553,7 @@ wlan1:wifi:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 453
-location: clients/tests/test-client.py:1077:test_004()/510
+location: clients/tests/test-client.py:1078:test_004()/530
 cmd: $NMCLI --mode tabular --terse -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -26979,7 +27567,7 @@ wlan1:wifi:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 1101
-location: clients/tests/test-client.py:1080:test_004()/511
+location: clients/tests/test-client.py:1081:test_004()/531
 cmd: $NMCLI --mode tabular --terse -f ALL device wifi list
 lang: C
 returncode: 0
@@ -26994,7 +27582,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54
 
 <<<
 size: 1159
-location: clients/tests/test-client.py:1080:test_004()/512
+location: clients/tests/test-client.py:1081:test_004()/532
 cmd: $NMCLI --mode tabular --terse -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27009,7 +27597,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:24
 
 <<<
 size: 358
-location: clients/tests/test-client.py:1082:test_004()/513
+location: clients/tests/test-client.py:1083:test_004()/533
 cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -27024,7 +27612,7 @@ stdout: 188 bytes
 
 <<<
 size: 404
-location: clients/tests/test-client.py:1082:test_004()/514
+location: clients/tests/test-client.py:1083:test_004()/534
 cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27039,7 +27627,7 @@ stdout: 224 bytes
 
 <<<
 size: 1214
-location: clients/tests/test-client.py:1085:test_004()/515
+location: clients/tests/test-client.py:1086:test_004()/535
 cmd: $NMCLI --mode tabular --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -27054,7 +27642,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infra:1:2412 MHz:54
 
 <<<
 size: 1272
-location: clients/tests/test-client.py:1085:test_004()/516
+location: clients/tests/test-client.py:1086:test_004()/536
 cmd: $NMCLI --mode tabular --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27069,7 +27657,7 @@ AP[1]:wlan1-ap-4:776C616E312D61702D34:94\:2B\:E8\:F6\:D2\:86:Infrastruktura:1:24
 
 <<<
 size: 448
-location: clients/tests/test-client.py:1087:test_004()/517
+location: clients/tests/test-client.py:1088:test_004()/537
 cmd: $NMCLI --mode tabular --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -27081,7 +27669,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54
 
 <<<
 size: 470
-location: clients/tests/test-client.py:1087:test_004()/518
+location: clients/tests/test-client.py:1088:test_004()/538
 cmd: $NMCLI --mode tabular --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27093,7 +27681,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24
 
 <<<
 size: 244
-location: clients/tests/test-client.py:1089:test_004()/519
+location: clients/tests/test-client.py:1090:test_004()/539
 cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -27105,7 +27693,7 @@ stdout: 51 bytes
 
 <<<
 size: 263
-location: clients/tests/test-client.py:1089:test_004()/520
+location: clients/tests/test-client.py:1090:test_004()/540
 cmd: $NMCLI --mode tabular --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27117,7 +27705,7 @@ stdout: 60 bytes
 
 <<<
 size: 561
-location: clients/tests/test-client.py:1092:test_004()/521
+location: clients/tests/test-client.py:1093:test_004()/541
 cmd: $NMCLI --mode tabular --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -27129,7 +27717,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infra:1:2412 MHz:54
 
 <<<
 size: 583
-location: clients/tests/test-client.py:1092:test_004()/522
+location: clients/tests/test-client.py:1093:test_004()/542
 cmd: $NMCLI --mode tabular --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27141,7 +27729,7 @@ AP[1]:wlan0-ap-2:776C616E302D61702D32:C0\:E2\:BE\:E8\:EF\:B6:Infrastruktura:1:24
 
 <<<
 size: 1358
-location: clients/tests/test-client.py:1094:test_004()/523
+location: clients/tests/test-client.py:1095:test_004()/543
 cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -27161,7 +27749,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 1395
-location: clients/tests/test-client.py:1094:test_004()/524
+location: clients/tests/test-client.py:1095:test_004()/544
 cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27181,7 +27769,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 617
-location: clients/tests/test-client.py:1096:test_004()/525
+location: clients/tests/test-client.py:1097:test_004()/545
 cmd: $NMCLI --mode tabular --terse -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -27199,7 +27787,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se
 
 <<<
 size: 627
-location: clients/tests/test-client.py:1096:test_004()/526
+location: clients/tests/test-client.py:1097:test_004()/546
 cmd: $NMCLI --mode tabular --terse -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27217,7 +27805,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se
 
 <<<
 size: 1496
-location: clients/tests/test-client.py:1098:test_004()/527
+location: clients/tests/test-client.py:1099:test_004()/547
 cmd: $NMCLI --mode tabular --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -27237,7 +27825,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 1533
-location: clients/tests/test-client.py:1098:test_004()/528
+location: clients/tests/test-client.py:1099:test_004()/548
 cmd: $NMCLI --mode tabular --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27256,100 +27844,124 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-
 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 803
-location: clients/tests/test-client.py:1036:test_004()/529
+size: 632
+location: clients/tests/test-client.py:1102:test_004()/549
+cmd: $NMCLI --mode tabular --terse dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 463 bytes
+>>>
+eth0:00\:11\:22\:33\:44\:00:Uplink port:GigabitEthernet #1:test1.example.com:Test system #1:20 (mac-bridge,router)
+eth0:chassis1:44\:44\:44\:44\:44\:44:GigabitEthernet #2:test2.example.com:Test system #2:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+eth0:00\:11\:22\:33\:44\:22:port1:GigabitEthernet #3:test3.example.com:Test system #3:40 (wlan-access-point,telephone)
+
+<<<
+size: 642
+location: clients/tests/test-client.py:1102:test_004()/550
+cmd: $NMCLI --mode tabular --terse dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 463 bytes
+>>>
+eth0:00\:11\:22\:33\:44\:00:Uplink port:GigabitEthernet #1:test1.example.com:Test system #1:20 (mac-bridge,router)
+eth0:chassis1:44\:44\:44\:44\:44\:44:GigabitEthernet #2:test2.example.com:Test system #2:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+eth0:00\:11\:22\:33\:44\:22:port1:GigabitEthernet #3:test3.example.com:Test system #3:40 (wlan-access-point,telephone)
+
+<<<
+size: 805
+location: clients/tests/test-client.py:1037:test_004()/551
 cmd: $NMCLI --mode tabular --terse --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 632 bytes
+stdout: 634 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3::
 VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3
 
 <<<
-size: 813
-location: clients/tests/test-client.py:1036:test_004()/530
+size: 815
+location: clients/tests/test-client.py:1037:test_004()/552
 cmd: $NMCLI --mode tabular --terse --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 632 bytes
+stdout: 634 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3::
 VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3
 
 <<<
-size: 803
-location: clients/tests/test-client.py:1038:test_004()/531
+size: 805
+location: clients/tests/test-client.py:1039:test_004()/553
 cmd: $NMCLI --mode tabular --terse --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 632 bytes
+stdout: 634 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3::
 VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3
 
 <<<
-size: 813
-location: clients/tests/test-client.py:1038:test_004()/532
+size: 815
+location: clients/tests/test-client.py:1039:test_004()/554
 cmd: $NMCLI --mode tabular --terse --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 632 bytes
+stdout: 634 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::yes:/org/freedesktop/NetworkManager/ActiveConnection/2:/org/freedesktop/NetworkManager/Settings/Connection/3::
 VPN:openvpn:::*** VPN connection con-vpn-1 ***:5 - VPN connected:key1 = val1 | key2 = val2 | key3 = val3
 
 <<<
-size: 516
-location: clients/tests/test-client.py:1041:test_004()/533
+size: 518
+location: clients/tests/test-client.py:1042:test_004()/555
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 338 bytes
+stdout: 340 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 
 <<<
-size: 526
-location: clients/tests/test-client.py:1041:test_004()/534
+size: 528
+location: clients/tests/test-client.py:1042:test_004()/556
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 338 bytes
+stdout: 340 bytes
 >>>
 connection:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP::vpn::yes:0:-1:0:-1:0:no:::::-1::0:unknown:default:-1:-1
-ipv4:auto::: :0::::-1:0:no:no::0:yes:::no:yes:-1
-ipv6:auto::: :0::::-1:0:no:no:no:yes:-1:stable-privacy::yes::
+ipv4:auto::: :0::::-1:0::no:no::0:yes:::no:yes:-1
+ipv6:auto::: :0::::-1:0::no:no:no:yes:-1:stable-privacy::yes::
 vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val3:<hidden>:no:0
 proxy:none:no::
 
 <<<
 size: 273
-location: clients/tests/test-client.py:1047:test_004()/535
+location: clients/tests/test-client.py:1048:test_004()/557
 cmd: $NMCLI --mode tabular --terse --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -27359,7 +27971,7 @@ vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val
 
 <<<
 size: 283
-location: clients/tests/test-client.py:1047:test_004()/536
+location: clients/tests/test-client.py:1048:test_004()/558
 cmd: $NMCLI --mode tabular --terse --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27369,7 +27981,7 @@ vpn:org.freedesktop.NetworkManager.openvpn::key1 = val1, key2 = val2, key3 = val
 
 <<<
 size: 371
-location: clients/tests/test-client.py:1050:test_004()/537
+location: clients/tests/test-client.py:1051:test_004()/559
 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -27379,7 +27991,7 @@ GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::ye
 
 <<<
 size: 381
-location: clients/tests/test-client.py:1050:test_004()/538
+location: clients/tests/test-client.py:1051:test_004()/560
 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27389,7 +28001,7 @@ GENERAL:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:wlan0:activated:no:no::ye
 
 <<<
 size: 456
-location: clients/tests/test-client.py:1053:test_004()/539
+location: clients/tests/test-client.py:1054:test_004()/561
 cmd: $NMCLI --mode tabular --terse --color yes dev s
 lang: C
 returncode: 0
@@ -27403,7 +28015,7 @@ stdout: 295 bytes
 
 <<<
 size: 466
-location: clients/tests/test-client.py:1053:test_004()/540
+location: clients/tests/test-client.py:1054:test_004()/562
 cmd: $NMCLI --mode tabular --terse --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27417,7 +28029,7 @@ stdout: 295 bytes
 
 <<<
 size: 1054
-location: clients/tests/test-client.py:1056:test_004()/541
+location: clients/tests/test-client.py:1057:test_004()/563
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev status
 lang: C
 returncode: 0
@@ -27431,7 +28043,7 @@ stdout: 881 bytes
 
 <<<
 size: 1064
-location: clients/tests/test-client.py:1056:test_004()/542
+location: clients/tests/test-client.py:1057:test_004()/564
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27445,7 +28057,7 @@ stdout: 881 bytes
 
 <<<
 size: 3108
-location: clients/tests/test-client.py:1059:test_004()/543
+location: clients/tests/test-client.py:1060:test_004()/565
 cmd: $NMCLI --mode tabular --terse --color yes dev show
 lang: C
 returncode: 0
@@ -27505,7 +28117,7 @@ IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0
 
 <<<
 size: 3118
-location: clients/tests/test-client.py:1059:test_004()/544
+location: clients/tests/test-client.py:1060:test_004()/566
 cmd: $NMCLI --mode tabular --terse --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27565,7 +28177,7 @@ IP6:2001\:a\:\:88ca\:3654\:96b\:ab44/89::dst = 2001\:a\:\:cc8b\:7c09\:4673\:bbb0
 
 <<<
 size: 6651
-location: clients/tests/test-client.py:1062:test_004()/545
+location: clients/tests/test-client.py:1063:test_004()/567
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show
 lang: C
 returncode: 0
@@ -27622,7 +28234,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 6697
-location: clients/tests/test-client.py:1062:test_004()/546
+location: clients/tests/test-client.py:1063:test_004()/568
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27679,7 +28291,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 616
-location: clients/tests/test-client.py:1065:test_004()/547
+location: clients/tests/test-client.py:1066:test_004()/569
 cmd: $NMCLI --mode tabular --terse --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -27697,7 +28309,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se
 
 <<<
 size: 626
-location: clients/tests/test-client.py:1065:test_004()/548
+location: clients/tests/test-client.py:1066:test_004()/570
 cmd: $NMCLI --mode tabular --terse --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27715,7 +28327,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se
 
 <<<
 size: 1610
-location: clients/tests/test-client.py:1068:test_004()/549
+location: clients/tests/test-client.py:1069:test_004()/571
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -27735,7 +28347,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 1647
-location: clients/tests/test-client.py:1068:test_004()/550
+location: clients/tests/test-client.py:1069:test_004()/572
 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27755,7 +28367,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 577
-location: clients/tests/test-client.py:1071:test_004()/551
+location: clients/tests/test-client.py:1072:test_004()/573
 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -27767,7 +28379,7 @@ WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
 
 <<<
 size: 587
-location: clients/tests/test-client.py:1071:test_004()/552
+location: clients/tests/test-client.py:1072:test_004()/574
 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27779,7 +28391,7 @@ WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
 
 <<<
 size: 577
-location: clients/tests/test-client.py:1074:test_004()/553
+location: clients/tests/test-client.py:1075:test_004()/575
 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -27791,7 +28403,7 @@ WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
 
 <<<
 size: 587
-location: clients/tests/test-client.py:1074:test_004()/554
+location: clients/tests/test-client.py:1075:test_004()/576
 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27803,7 +28415,7 @@ WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown
 
 <<<
 size: 575
-location: clients/tests/test-client.py:1077:test_004()/555
+location: clients/tests/test-client.py:1078:test_004()/577
 cmd: $NMCLI --mode tabular --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -27817,7 +28429,7 @@ stdout: 391 bytes
 
 <<<
 size: 585
-location: clients/tests/test-client.py:1077:test_004()/556
+location: clients/tests/test-client.py:1078:test_004()/578
 cmd: $NMCLI --mode tabular --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27831,7 +28443,7 @@ stdout: 391 bytes
 
 <<<
 size: 1726
-location: clients/tests/test-client.py:1080:test_004()/557
+location: clients/tests/test-client.py:1081:test_004()/579
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -27846,7 +28458,7 @@ stdout: 1546 bytes
 
 <<<
 size: 1784
-location: clients/tests/test-client.py:1080:test_004()/558
+location: clients/tests/test-client.py:1081:test_004()/580
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27861,7 +28473,7 @@ stdout: 1594 bytes
 
 <<<
 size: 658
-location: clients/tests/test-client.py:1082:test_004()/559
+location: clients/tests/test-client.py:1083:test_004()/581
 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -27876,7 +28488,7 @@ stdout: 476 bytes
 
 <<<
 size: 704
-location: clients/tests/test-client.py:1082:test_004()/560
+location: clients/tests/test-client.py:1083:test_004()/582
 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27891,7 +28503,7 @@ stdout: 512 bytes
 
 <<<
 size: 1839
-location: clients/tests/test-client.py:1085:test_004()/561
+location: clients/tests/test-client.py:1086:test_004()/583
 cmd: $NMCLI --mode tabular --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -27906,7 +28518,7 @@ stdout: 1546 bytes
 
 <<<
 size: 1897
-location: clients/tests/test-client.py:1085:test_004()/562
+location: clients/tests/test-client.py:1086:test_004()/584
 cmd: $NMCLI --mode tabular --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27921,7 +28533,7 @@ stdout: 1594 bytes
 
 <<<
 size: 613
-location: clients/tests/test-client.py:1087:test_004()/563
+location: clients/tests/test-client.py:1088:test_004()/585
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -27933,7 +28545,7 @@ stdout: 410 bytes
 
 <<<
 size: 635
-location: clients/tests/test-client.py:1087:test_004()/564
+location: clients/tests/test-client.py:1088:test_004()/586
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27945,7 +28557,7 @@ stdout: 422 bytes
 
 <<<
 size: 329
-location: clients/tests/test-client.py:1089:test_004()/565
+location: clients/tests/test-client.py:1090:test_004()/587
 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -27957,7 +28569,7 @@ stdout: 123 bytes
 
 <<<
 size: 348
-location: clients/tests/test-client.py:1089:test_004()/566
+location: clients/tests/test-client.py:1090:test_004()/588
 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27969,7 +28581,7 @@ stdout: 132 bytes
 
 <<<
 size: 726
-location: clients/tests/test-client.py:1092:test_004()/567
+location: clients/tests/test-client.py:1093:test_004()/589
 cmd: $NMCLI --mode tabular --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -27981,7 +28593,7 @@ stdout: 410 bytes
 
 <<<
 size: 748
-location: clients/tests/test-client.py:1092:test_004()/568
+location: clients/tests/test-client.py:1093:test_004()/590
 cmd: $NMCLI --mode tabular --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -27993,7 +28605,7 @@ stdout: 422 bytes
 
 <<<
 size: 1613
-location: clients/tests/test-client.py:1094:test_004()/569
+location: clients/tests/test-client.py:1095:test_004()/591
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -28013,7 +28625,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 1650
-location: clients/tests/test-client.py:1094:test_004()/570
+location: clients/tests/test-client.py:1095:test_004()/592
 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -28033,7 +28645,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 629
-location: clients/tests/test-client.py:1096:test_004()/571
+location: clients/tests/test-client.py:1097:test_004()/593
 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -28051,7 +28663,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se
 
 <<<
 size: 639
-location: clients/tests/test-client.py:1096:test_004()/572
+location: clients/tests/test-client.py:1097:test_004()/594
 cmd: $NMCLI --mode tabular --terse --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -28069,7 +28681,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se
 
 <<<
 size: 1751
-location: clients/tests/test-client.py:1098:test_004()/573
+location: clients/tests/test-client.py:1099:test_004()/595
 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -28089,7 +28701,7 @@ CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1
 
 <<<
 size: 1788
-location: clients/tests/test-client.py:1098:test_004()/574
+location: clients/tests/test-client.py:1099:test_004()/596
 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -28108,12 +28720,36 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-
 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 4621
-location: clients/tests/test-client.py:1036:test_004()/575
+size: 644
+location: clients/tests/test-client.py:1102:test_004()/597
+cmd: $NMCLI --mode tabular --terse --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 463 bytes
+>>>
+eth0:00\:11\:22\:33\:44\:00:Uplink port:GigabitEthernet #1:test1.example.com:Test system #1:20 (mac-bridge,router)
+eth0:chassis1:44\:44\:44\:44\:44\:44:GigabitEthernet #2:test2.example.com:Test system #2:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+eth0:00\:11\:22\:33\:44\:22:port1:GigabitEthernet #3:test3.example.com:Test system #3:40 (wlan-access-point,telephone)
+
+<<<
+size: 654
+location: clients/tests/test-client.py:1102:test_004()/598
+cmd: $NMCLI --mode tabular --terse --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 463 bytes
+>>>
+eth0:00\:11\:22\:33\:44\:00:Uplink port:GigabitEthernet #1:test1.example.com:Test system #1:20 (mac-bridge,router)
+eth0:chassis1:44\:44\:44\:44\:44\:44:GigabitEthernet #2:test2.example.com:Test system #2:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+eth0:00\:11\:22\:33\:44\:22:port1:GigabitEthernet #3:test3.example.com:Test system #3:40 (wlan-access-point,telephone)
+
+<<<
+size: 4707
+location: clients/tests/test-client.py:1037:test_004()/599
 cmd: $NMCLI --mode multiline con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4467 bytes
+stdout: 4553 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -28148,6 +28784,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -28168,6 +28805,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -28210,12 +28848,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4651
-location: clients/tests/test-client.py:1036:test_004()/576
+size: 4737
+location: clients/tests/test-client.py:1037:test_004()/600
 cmd: $NMCLI --mode multiline con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4487 bytes
+stdout: 4573 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -28250,6 +28888,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -28270,6 +28909,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -28312,12 +28952,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4621
-location: clients/tests/test-client.py:1038:test_004()/577
+size: 4707
+location: clients/tests/test-client.py:1039:test_004()/601
 cmd: $NMCLI --mode multiline con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4467 bytes
+stdout: 4553 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -28352,6 +28992,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -28372,6 +29013,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -28414,12 +29056,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4651
-location: clients/tests/test-client.py:1038:test_004()/578
+size: 4737
+location: clients/tests/test-client.py:1039:test_004()/602
 cmd: $NMCLI --mode multiline con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4487 bytes
+stdout: 4573 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -28454,6 +29096,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -28474,6 +29117,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -28516,12 +29160,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 3540
-location: clients/tests/test-client.py:1041:test_004()/579
+size: 3626
+location: clients/tests/test-client.py:1042:test_004()/603
 cmd: $NMCLI --mode multiline -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3379 bytes
+stdout: 3465 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -28556,6 +29200,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -28576,6 +29221,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -28598,12 +29244,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 3560
-location: clients/tests/test-client.py:1041:test_004()/580
+size: 3646
+location: clients/tests/test-client.py:1042:test_004()/604
 cmd: $NMCLI --mode multiline -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3389 bytes
+stdout: 3475 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -28638,6 +29284,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -28658,6 +29305,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -28681,7 +29329,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 494
-location: clients/tests/test-client.py:1047:test_004()/581
+location: clients/tests/test-client.py:1048:test_004()/605
 cmd: $NMCLI --mode multiline -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -28696,7 +29344,7 @@ vpn.timeout:                            0
 
 <<<
 size: 505
-location: clients/tests/test-client.py:1047:test_004()/582
+location: clients/tests/test-client.py:1048:test_004()/606
 cmd: $NMCLI --mode multiline -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -28711,7 +29359,7 @@ vpn.timeout:                            0
 
 <<<
 size: 831
-location: clients/tests/test-client.py:1050:test_004()/583
+location: clients/tests/test-client.py:1051:test_004()/607
 cmd: $NMCLI --mode multiline -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -28732,7 +29380,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 844
-location: clients/tests/test-client.py:1050:test_004()/584
+location: clients/tests/test-client.py:1051:test_004()/608
 cmd: $NMCLI --mode multiline -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -28753,7 +29401,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1086
-location: clients/tests/test-client.py:1053:test_004()/585
+location: clients/tests/test-client.py:1054:test_004()/609
 cmd: $NMCLI --mode multiline dev s
 lang: C
 returncode: 0
@@ -28782,7 +29430,7 @@ CONNECTION:                             --
 
 <<<
 size: 1101
-location: clients/tests/test-client.py:1053:test_004()/586
+location: clients/tests/test-client.py:1054:test_004()/610
 cmd: $NMCLI --mode multiline dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -28811,7 +29459,7 @@ CONNECTION:                             --
 
 <<<
 size: 2501
-location: clients/tests/test-client.py:1056:test_004()/587
+location: clients/tests/test-client.py:1057:test_004()/611
 cmd: $NMCLI --mode multiline -f all dev status
 lang: C
 returncode: 0
@@ -28865,7 +29513,7 @@ CON-PATH:                               --
 
 <<<
 size: 2526
-location: clients/tests/test-client.py:1056:test_004()/588
+location: clients/tests/test-client.py:1057:test_004()/612
 cmd: $NMCLI --mode multiline -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -28919,7 +29567,7 @@ CON-PATH:                               --
 
 <<<
 size: 8065
-location: clients/tests/test-client.py:1059:test_004()/589
+location: clients/tests/test-client.py:1060:test_004()/613
 cmd: $NMCLI --mode multiline dev show
 lang: C
 returncode: 0
@@ -29065,7 +29713,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 8096
-location: clients/tests/test-client.py:1059:test_004()/590
+location: clients/tests/test-client.py:1060:test_004()/614
 cmd: $NMCLI --mode multiline dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -29211,7 +29859,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 20678
-location: clients/tests/test-client.py:1062:test_004()/591
+location: clients/tests/test-client.py:1063:test_004()/615
 cmd: $NMCLI --mode multiline -f all dev show
 lang: C
 returncode: 0
@@ -29600,7 +30248,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 20828
-location: clients/tests/test-client.py:1062:test_004()/592
+location: clients/tests/test-client.py:1063:test_004()/616
 cmd: $NMCLI --mode multiline -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -29989,7 +30637,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1516
-location: clients/tests/test-client.py:1065:test_004()/593
+location: clients/tests/test-client.py:1066:test_004()/617
 cmd: $NMCLI --mode multiline dev show wlan0
 lang: C
 returncode: 0
@@ -30022,7 +30670,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 1527
-location: clients/tests/test-client.py:1065:test_004()/594
+location: clients/tests/test-client.py:1066:test_004()/618
 cmd: $NMCLI --mode multiline dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30055,7 +30703,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 4865
-location: clients/tests/test-client.py:1068:test_004()/595
+location: clients/tests/test-client.py:1069:test_004()/619
 cmd: $NMCLI --mode multiline -f all dev show wlan0
 lang: C
 returncode: 0
@@ -30155,7 +30803,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 4920
-location: clients/tests/test-client.py:1068:test_004()/596
+location: clients/tests/test-client.py:1069:test_004()/620
 cmd: $NMCLI --mode multiline -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30255,7 +30903,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1978
-location: clients/tests/test-client.py:1071:test_004()/597
+location: clients/tests/test-client.py:1072:test_004()/621
 cmd: $NMCLI --mode multiline -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -30300,7 +30948,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2002
-location: clients/tests/test-client.py:1071:test_004()/598
+location: clients/tests/test-client.py:1072:test_004()/622
 cmd: $NMCLI --mode multiline -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30345,7 +30993,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 1978
-location: clients/tests/test-client.py:1074:test_004()/599
+location: clients/tests/test-client.py:1075:test_004()/623
 cmd: $NMCLI --mode multiline -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -30390,7 +31038,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2002
-location: clients/tests/test-client.py:1074:test_004()/600
+location: clients/tests/test-client.py:1075:test_004()/624
 cmd: $NMCLI --mode multiline -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30435,7 +31083,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 1037
-location: clients/tests/test-client.py:1077:test_004()/601
+location: clients/tests/test-client.py:1078:test_004()/625
 cmd: $NMCLI --mode multiline -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -30459,7 +31107,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Devices/
 
 <<<
 size: 1047
-location: clients/tests/test-client.py:1077:test_004()/602
+location: clients/tests/test-client.py:1078:test_004()/626
 cmd: $NMCLI --mode multiline -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30483,7 +31131,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Devices/
 
 <<<
 size: 3796
-location: clients/tests/test-client.py:1080:test_004()/603
+location: clients/tests/test-client.py:1081:test_004()/627
 cmd: $NMCLI --mode multiline -f ALL device wifi list
 lang: C
 returncode: 0
@@ -30562,7 +31210,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 3854
-location: clients/tests/test-client.py:1080:test_004()/604
+location: clients/tests/test-client.py:1081:test_004()/628
 cmd: $NMCLI --mode multiline -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30641,7 +31289,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 1633
-location: clients/tests/test-client.py:1082:test_004()/605
+location: clients/tests/test-client.py:1083:test_004()/629
 cmd: $NMCLI --mode multiline -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -30684,7 +31332,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 1679
-location: clients/tests/test-client.py:1082:test_004()/606
+location: clients/tests/test-client.py:1083:test_004()/630
 cmd: $NMCLI --mode multiline -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30727,7 +31375,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 3909
-location: clients/tests/test-client.py:1085:test_004()/607
+location: clients/tests/test-client.py:1086:test_004()/631
 cmd: $NMCLI --mode multiline -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -30806,7 +31454,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 3967
-location: clients/tests/test-client.py:1085:test_004()/608
+location: clients/tests/test-client.py:1086:test_004()/632
 cmd: $NMCLI --mode multiline -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30885,7 +31533,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 1117
-location: clients/tests/test-client.py:1087:test_004()/609
+location: clients/tests/test-client.py:1088:test_004()/633
 cmd: $NMCLI --mode multiline -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -30913,7 +31561,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 1139
-location: clients/tests/test-client.py:1087:test_004()/610
+location: clients/tests/test-client.py:1088:test_004()/634
 cmd: $NMCLI --mode multiline -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30941,7 +31589,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 559
-location: clients/tests/test-client.py:1089:test_004()/611
+location: clients/tests/test-client.py:1090:test_004()/635
 cmd: $NMCLI --mode multiline -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -30960,7 +31608,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 578
-location: clients/tests/test-client.py:1089:test_004()/612
+location: clients/tests/test-client.py:1090:test_004()/636
 cmd: $NMCLI --mode multiline -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -30979,7 +31627,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 1230
-location: clients/tests/test-client.py:1092:test_004()/613
+location: clients/tests/test-client.py:1093:test_004()/637
 cmd: $NMCLI --mode multiline -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -31007,7 +31655,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 1252
-location: clients/tests/test-client.py:1092:test_004()/614
+location: clients/tests/test-client.py:1093:test_004()/638
 cmd: $NMCLI --mode multiline -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -31035,7 +31683,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 4868
-location: clients/tests/test-client.py:1094:test_004()/615
+location: clients/tests/test-client.py:1095:test_004()/639
 cmd: $NMCLI --mode multiline -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -31135,7 +31783,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 4923
-location: clients/tests/test-client.py:1094:test_004()/616
+location: clients/tests/test-client.py:1095:test_004()/640
 cmd: $NMCLI --mode multiline -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -31235,7 +31883,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1529
-location: clients/tests/test-client.py:1096:test_004()/617
+location: clients/tests/test-client.py:1097:test_004()/641
 cmd: $NMCLI --mode multiline -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -31268,7 +31916,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 1540
-location: clients/tests/test-client.py:1096:test_004()/618
+location: clients/tests/test-client.py:1097:test_004()/642
 cmd: $NMCLI --mode multiline -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -31301,7 +31949,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 5006
-location: clients/tests/test-client.py:1098:test_004()/619
+location: clients/tests/test-client.py:1099:test_004()/643
 cmd: $NMCLI --mode multiline -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -31401,7 +32049,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 5061
-location: clients/tests/test-client.py:1098:test_004()/620
+location: clients/tests/test-client.py:1099:test_004()/644
 cmd: $NMCLI --mode multiline -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -31500,12 +32148,72 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings
 CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 4633
-location: clients/tests/test-client.py:1036:test_004()/621
+size: 1452
+location: clients/tests/test-client.py:1102:test_004()/645
+cmd: $NMCLI --mode multiline dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1288 bytes
+>>>
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+
+<<<
+size: 1462
+location: clients/tests/test-client.py:1102:test_004()/646
+cmd: $NMCLI --mode multiline dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1288 bytes
+>>>
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+
+<<<
+size: 4719
+location: clients/tests/test-client.py:1037:test_004()/647
 cmd: $NMCLI --mode multiline --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4467 bytes
+stdout: 4553 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -31540,6 +32248,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -31560,6 +32269,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -31602,12 +32312,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4663
-location: clients/tests/test-client.py:1036:test_004()/622
+size: 4749
+location: clients/tests/test-client.py:1037:test_004()/648
 cmd: $NMCLI --mode multiline --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4487 bytes
+stdout: 4573 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -31642,6 +32352,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -31662,6 +32373,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -31704,12 +32416,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4633
-location: clients/tests/test-client.py:1038:test_004()/623
+size: 4719
+location: clients/tests/test-client.py:1039:test_004()/649
 cmd: $NMCLI --mode multiline --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 4467 bytes
+stdout: 4553 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -31744,6 +32456,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -31764,6 +32477,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -31806,12 +32520,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 4663
-location: clients/tests/test-client.py:1038:test_004()/624
+size: 4749
+location: clients/tests/test-client.py:1039:test_004()/650
 cmd: $NMCLI --mode multiline --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4487 bytes
+stdout: 4573 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -31846,6 +32560,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -31866,6 +32581,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -31908,12 +32624,12 @@ VPN.CFG[2]:                             key2 = val2
 VPN.CFG[3]:                             key3 = val3
 
 <<<
-size: 3552
-location: clients/tests/test-client.py:1041:test_004()/625
+size: 3638
+location: clients/tests/test-client.py:1042:test_004()/651
 cmd: $NMCLI --mode multiline --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3379 bytes
+stdout: 3465 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -31948,6 +32664,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -31968,6 +32685,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -31990,12 +32708,12 @@ proxy.pac-url:                          --
 proxy.pac-script:                       --
 
 <<<
-size: 3572
-location: clients/tests/test-client.py:1041:test_004()/626
+size: 3658
+location: clients/tests/test-client.py:1042:test_004()/652
 cmd: $NMCLI --mode multiline --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 3389 bytes
+stdout: 3475 bytes
 >>>
 connection.id:                          con-vpn-1
 connection.uuid:                        UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -32030,6 +32748,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -32050,6 +32769,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -32073,7 +32793,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 506
-location: clients/tests/test-client.py:1047:test_004()/627
+location: clients/tests/test-client.py:1048:test_004()/653
 cmd: $NMCLI --mode multiline --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -32088,7 +32808,7 @@ vpn.timeout:                            0
 
 <<<
 size: 517
-location: clients/tests/test-client.py:1047:test_004()/628
+location: clients/tests/test-client.py:1048:test_004()/654
 cmd: $NMCLI --mode multiline --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -32103,7 +32823,7 @@ vpn.timeout:                            0
 
 <<<
 size: 843
-location: clients/tests/test-client.py:1050:test_004()/629
+location: clients/tests/test-client.py:1051:test_004()/655
 cmd: $NMCLI --mode multiline --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -32124,7 +32844,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 856
-location: clients/tests/test-client.py:1050:test_004()/630
+location: clients/tests/test-client.py:1051:test_004()/656
 cmd: $NMCLI --mode multiline --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -32145,7 +32865,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1259
-location: clients/tests/test-client.py:1053:test_004()/631
+location: clients/tests/test-client.py:1054:test_004()/657
 cmd: $NMCLI --mode multiline --color yes dev s
 lang: C
 returncode: 0
@@ -32174,7 +32894,7 @@ CONNECTION:                             --
 
 <<<
 size: 1274
-location: clients/tests/test-client.py:1053:test_004()/632
+location: clients/tests/test-client.py:1054:test_004()/658
 cmd: $NMCLI --mode multiline --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -32203,7 +32923,7 @@ CONNECTION:                             --
 
 <<<
 size: 2873
-location: clients/tests/test-client.py:1056:test_004()/633
+location: clients/tests/test-client.py:1057:test_004()/659
 cmd: $NMCLI --mode multiline --color yes -f all dev status
 lang: C
 returncode: 0
@@ -32257,7 +32977,7 @@ CON-PATH:                               --
 
 <<<
 size: 2898
-location: clients/tests/test-client.py:1056:test_004()/634
+location: clients/tests/test-client.py:1057:test_004()/660
 cmd: $NMCLI --mode multiline --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -32311,7 +33031,7 @@ CON-PATH:                               --
 
 <<<
 size: 8077
-location: clients/tests/test-client.py:1059:test_004()/635
+location: clients/tests/test-client.py:1060:test_004()/661
 cmd: $NMCLI --mode multiline --color yes dev show
 lang: C
 returncode: 0
@@ -32457,7 +33177,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 8108
-location: clients/tests/test-client.py:1059:test_004()/636
+location: clients/tests/test-client.py:1060:test_004()/662
 cmd: $NMCLI --mode multiline --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -32603,7 +33323,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 20978
-location: clients/tests/test-client.py:1062:test_004()/637
+location: clients/tests/test-client.py:1063:test_004()/663
 cmd: $NMCLI --mode multiline --color yes -f all dev show
 lang: C
 returncode: 0
@@ -32992,7 +33712,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 21128
-location: clients/tests/test-client.py:1062:test_004()/638
+location: clients/tests/test-client.py:1063:test_004()/664
 cmd: $NMCLI --mode multiline --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -33381,7 +34101,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1528
-location: clients/tests/test-client.py:1065:test_004()/639
+location: clients/tests/test-client.py:1066:test_004()/665
 cmd: $NMCLI --mode multiline --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -33414,7 +34134,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 1539
-location: clients/tests/test-client.py:1065:test_004()/640
+location: clients/tests/test-client.py:1066:test_004()/666
 cmd: $NMCLI --mode multiline --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -33447,7 +34167,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 5093
-location: clients/tests/test-client.py:1068:test_004()/641
+location: clients/tests/test-client.py:1069:test_004()/667
 cmd: $NMCLI --mode multiline --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -33547,7 +34267,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 5148
-location: clients/tests/test-client.py:1068:test_004()/642
+location: clients/tests/test-client.py:1069:test_004()/668
 cmd: $NMCLI --mode multiline --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -33647,7 +34367,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1990
-location: clients/tests/test-client.py:1071:test_004()/643
+location: clients/tests/test-client.py:1072:test_004()/669
 cmd: $NMCLI --mode multiline --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -33692,7 +34412,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2014
-location: clients/tests/test-client.py:1071:test_004()/644
+location: clients/tests/test-client.py:1072:test_004()/670
 cmd: $NMCLI --mode multiline --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -33737,7 +34457,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 1990
-location: clients/tests/test-client.py:1074:test_004()/645
+location: clients/tests/test-client.py:1075:test_004()/671
 cmd: $NMCLI --mode multiline --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -33782,7 +34502,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2014
-location: clients/tests/test-client.py:1074:test_004()/646
+location: clients/tests/test-client.py:1075:test_004()/672
 cmd: $NMCLI --mode multiline --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -33827,7 +34547,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 1169
-location: clients/tests/test-client.py:1077:test_004()/647
+location: clients/tests/test-client.py:1078:test_004()/673
 cmd: $NMCLI --mode multiline --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -33851,7 +34571,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Devi
 
 <<<
 size: 1179
-location: clients/tests/test-client.py:1077:test_004()/648
+location: clients/tests/test-client.py:1078:test_004()/674
 cmd: $NMCLI --mode multiline --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -33875,7 +34595,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Devi
 
 <<<
 size: 4420
-location: clients/tests/test-client.py:1080:test_004()/649
+location: clients/tests/test-client.py:1081:test_004()/675
 cmd: $NMCLI --mode multiline --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -33954,7 +34674,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 4478
-location: clients/tests/test-client.py:1080:test_004()/650
+location: clients/tests/test-client.py:1081:test_004()/676
 cmd: $NMCLI --mode multiline --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34033,7 +34753,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 1933
-location: clients/tests/test-client.py:1082:test_004()/651
+location: clients/tests/test-client.py:1083:test_004()/677
 cmd: $NMCLI --mode multiline --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -34076,7 +34796,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 1979
-location: clients/tests/test-client.py:1082:test_004()/652
+location: clients/tests/test-client.py:1083:test_004()/678
 cmd: $NMCLI --mode multiline --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34119,7 +34839,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 4533
-location: clients/tests/test-client.py:1085:test_004()/653
+location: clients/tests/test-client.py:1086:test_004()/679
 cmd: $NMCLI --mode multiline --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -34198,7 +34918,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 4591
-location: clients/tests/test-client.py:1085:test_004()/654
+location: clients/tests/test-client.py:1086:test_004()/680
 cmd: $NMCLI --mode multiline --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34277,7 +34997,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 1283
-location: clients/tests/test-client.py:1087:test_004()/655
+location: clients/tests/test-client.py:1088:test_004()/681
 cmd: $NMCLI --mode multiline --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -34305,7 +35025,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 1305
-location: clients/tests/test-client.py:1087:test_004()/656
+location: clients/tests/test-client.py:1088:test_004()/682
 cmd: $NMCLI --mode multiline --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34333,7 +35053,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 643
-location: clients/tests/test-client.py:1089:test_004()/657
+location: clients/tests/test-client.py:1090:test_004()/683
 cmd: $NMCLI --mode multiline --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -34352,7 +35072,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 662
-location: clients/tests/test-client.py:1089:test_004()/658
+location: clients/tests/test-client.py:1090:test_004()/684
 cmd: $NMCLI --mode multiline --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34371,7 +35091,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 1396
-location: clients/tests/test-client.py:1092:test_004()/659
+location: clients/tests/test-client.py:1093:test_004()/685
 cmd: $NMCLI --mode multiline --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -34399,7 +35119,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 1418
-location: clients/tests/test-client.py:1092:test_004()/660
+location: clients/tests/test-client.py:1093:test_004()/686
 cmd: $NMCLI --mode multiline --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34427,7 +35147,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 5096
-location: clients/tests/test-client.py:1094:test_004()/661
+location: clients/tests/test-client.py:1095:test_004()/687
 cmd: $NMCLI --mode multiline --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -34527,7 +35247,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 5151
-location: clients/tests/test-client.py:1094:test_004()/662
+location: clients/tests/test-client.py:1095:test_004()/688
 cmd: $NMCLI --mode multiline --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34627,7 +35347,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 1541
-location: clients/tests/test-client.py:1096:test_004()/663
+location: clients/tests/test-client.py:1097:test_004()/689
 cmd: $NMCLI --mode multiline --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -34660,7 +35380,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 1552
-location: clients/tests/test-client.py:1096:test_004()/664
+location: clients/tests/test-client.py:1097:test_004()/690
 cmd: $NMCLI --mode multiline --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34693,7 +35413,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 5234
-location: clients/tests/test-client.py:1098:test_004()/665
+location: clients/tests/test-client.py:1099:test_004()/691
 cmd: $NMCLI --mode multiline --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -34793,7 +35513,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 5289
-location: clients/tests/test-client.py:1098:test_004()/666
+location: clients/tests/test-client.py:1099:test_004()/692
 cmd: $NMCLI --mode multiline --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -34892,12 +35612,72 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings
 CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 5642
-location: clients/tests/test-client.py:1036:test_004()/667
+size: 1464
+location: clients/tests/test-client.py:1102:test_004()/693
+cmd: $NMCLI --mode multiline --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1288 bytes
+>>>
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+
+<<<
+size: 1474
+location: clients/tests/test-client.py:1102:test_004()/694
+cmd: $NMCLI --mode multiline --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1288 bytes
+>>>
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+
+<<<
+size: 5728
+location: clients/tests/test-client.py:1037:test_004()/695
 cmd: $NMCLI --mode multiline --pretty con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 5479 bytes
+stdout: 5565 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -34936,6 +35716,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -34957,6 +35738,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -35007,12 +35789,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5684
-location: clients/tests/test-client.py:1036:test_004()/668
+size: 5770
+location: clients/tests/test-client.py:1037:test_004()/696
 cmd: $NMCLI --mode multiline --pretty con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5511 bytes
+stdout: 5597 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -35051,6 +35833,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -35072,6 +35855,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -35122,12 +35906,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5642
-location: clients/tests/test-client.py:1038:test_004()/669
+size: 5728
+location: clients/tests/test-client.py:1039:test_004()/697
 cmd: $NMCLI --mode multiline --pretty con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 5479 bytes
+stdout: 5565 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -35166,6 +35950,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -35187,6 +35972,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -35237,12 +36023,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5684
-location: clients/tests/test-client.py:1038:test_004()/670
+size: 5770
+location: clients/tests/test-client.py:1039:test_004()/698
 cmd: $NMCLI --mode multiline --pretty con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5511 bytes
+stdout: 5597 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -35281,6 +36067,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -35302,6 +36089,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -35352,12 +36140,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 4168
-location: clients/tests/test-client.py:1041:test_004()/671
+size: 4254
+location: clients/tests/test-client.py:1042:test_004()/699
 cmd: $NMCLI --mode multiline --pretty -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3998 bytes
+stdout: 4084 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -35396,6 +36184,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -35417,6 +36206,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -35442,12 +36232,12 @@ proxy.pac-script:                       --
 -------------------------------------------------------------------------------
 
 <<<
-size: 4193
-location: clients/tests/test-client.py:1041:test_004()/672
+size: 4279
+location: clients/tests/test-client.py:1042:test_004()/700
 cmd: $NMCLI --mode multiline --pretty -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4013 bytes
+stdout: 4099 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -35486,6 +36276,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -35507,6 +36298,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -35533,7 +36325,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 802
-location: clients/tests/test-client.py:1047:test_004()/673
+location: clients/tests/test-client.py:1048:test_004()/701
 cmd: $NMCLI --mode multiline --pretty -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -35552,7 +36344,7 @@ vpn.timeout:                            0
 
 <<<
 size: 818
-location: clients/tests/test-client.py:1047:test_004()/674
+location: clients/tests/test-client.py:1048:test_004()/702
 cmd: $NMCLI --mode multiline --pretty -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -35571,7 +36363,7 @@ vpn.timeout:                            0
 
 <<<
 size: 1153
-location: clients/tests/test-client.py:1050:test_004()/675
+location: clients/tests/test-client.py:1051:test_004()/703
 cmd: $NMCLI --mode multiline --pretty -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -35596,7 +36388,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1173
-location: clients/tests/test-client.py:1050:test_004()/676
+location: clients/tests/test-client.py:1051:test_004()/704
 cmd: $NMCLI --mode multiline --pretty -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -35621,7 +36413,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1705
-location: clients/tests/test-client.py:1053:test_004()/677
+location: clients/tests/test-client.py:1054:test_004()/705
 cmd: $NMCLI --mode multiline --pretty dev s
 lang: C
 returncode: 0
@@ -35658,7 +36450,7 @@ CONNECTION:                             --
 
 <<<
 size: 1720
-location: clients/tests/test-client.py:1053:test_004()/678
+location: clients/tests/test-client.py:1054:test_004()/706
 cmd: $NMCLI --mode multiline --pretty dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -35695,7 +36487,7 @@ CONNECTION:                             --
 
 <<<
 size: 3119
-location: clients/tests/test-client.py:1056:test_004()/679
+location: clients/tests/test-client.py:1057:test_004()/707
 cmd: $NMCLI --mode multiline --pretty -f all dev status
 lang: C
 returncode: 0
@@ -35757,7 +36549,7 @@ CON-PATH:                               --
 
 <<<
 size: 3144
-location: clients/tests/test-client.py:1056:test_004()/680
+location: clients/tests/test-client.py:1057:test_004()/708
 cmd: $NMCLI --mode multiline --pretty -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -35819,7 +36611,7 @@ CON-PATH:                               --
 
 <<<
 size: 12890
-location: clients/tests/test-client.py:1059:test_004()/681
+location: clients/tests/test-client.py:1060:test_004()/709
 cmd: $NMCLI --mode multiline --pretty dev show
 lang: C
 returncode: 0
@@ -36027,7 +36819,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 12954
-location: clients/tests/test-client.py:1059:test_004()/682
+location: clients/tests/test-client.py:1060:test_004()/710
 cmd: $NMCLI --mode multiline --pretty dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -36235,7 +37027,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 25262
-location: clients/tests/test-client.py:1062:test_004()/683
+location: clients/tests/test-client.py:1063:test_004()/711
 cmd: $NMCLI --mode multiline --pretty -f all dev show
 lang: C
 returncode: 0
@@ -36683,7 +37475,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 25445
-location: clients/tests/test-client.py:1062:test_004()/684
+location: clients/tests/test-client.py:1063:test_004()/712
 cmd: $NMCLI --mode multiline --pretty -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -37131,7 +37923,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2456
-location: clients/tests/test-client.py:1065:test_004()/685
+location: clients/tests/test-client.py:1066:test_004()/713
 cmd: $NMCLI --mode multiline --pretty dev show wlan0
 lang: C
 returncode: 0
@@ -37176,7 +37968,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 2474
-location: clients/tests/test-client.py:1065:test_004()/686
+location: clients/tests/test-client.py:1066:test_004()/714
 cmd: $NMCLI --mode multiline --pretty dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -37221,7 +38013,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 5965
-location: clients/tests/test-client.py:1068:test_004()/687
+location: clients/tests/test-client.py:1069:test_004()/715
 cmd: $NMCLI --mode multiline --pretty -f all dev show wlan0
 lang: C
 returncode: 0
@@ -37335,7 +38127,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6027
-location: clients/tests/test-client.py:1068:test_004()/688
+location: clients/tests/test-client.py:1069:test_004()/716
 cmd: $NMCLI --mode multiline --pretty -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -37449,7 +38241,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2438
-location: clients/tests/test-client.py:1071:test_004()/689
+location: clients/tests/test-client.py:1072:test_004()/717
 cmd: $NMCLI --mode multiline --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -37500,7 +38292,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2469
-location: clients/tests/test-client.py:1071:test_004()/690
+location: clients/tests/test-client.py:1072:test_004()/718
 cmd: $NMCLI --mode multiline --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -37551,7 +38343,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 2438
-location: clients/tests/test-client.py:1074:test_004()/691
+location: clients/tests/test-client.py:1075:test_004()/719
 cmd: $NMCLI --mode multiline --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -37602,7 +38394,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2469
-location: clients/tests/test-client.py:1074:test_004()/692
+location: clients/tests/test-client.py:1075:test_004()/720
 cmd: $NMCLI --mode multiline --pretty -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -37653,7 +38445,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 1656
-location: clients/tests/test-client.py:1077:test_004()/693
+location: clients/tests/test-client.py:1078:test_004()/721
 cmd: $NMCLI --mode multiline --pretty -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -37685,7 +38477,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Devices/
 
 <<<
 size: 1666
-location: clients/tests/test-client.py:1077:test_004()/694
+location: clients/tests/test-client.py:1078:test_004()/722
 cmd: $NMCLI --mode multiline --pretty -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -37717,7 +38509,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Devices/
 
 <<<
 size: 4761
-location: clients/tests/test-client.py:1080:test_004()/695
+location: clients/tests/test-client.py:1081:test_004()/723
 cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list
 lang: C
 returncode: 0
@@ -37809,7 +38601,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 4837
-location: clients/tests/test-client.py:1080:test_004()/696
+location: clients/tests/test-client.py:1081:test_004()/724
 cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -37901,7 +38693,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 2598
-location: clients/tests/test-client.py:1082:test_004()/697
+location: clients/tests/test-client.py:1083:test_004()/725
 cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -37957,7 +38749,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 2662
-location: clients/tests/test-client.py:1082:test_004()/698
+location: clients/tests/test-client.py:1083:test_004()/726
 cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -38013,7 +38805,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 4874
-location: clients/tests/test-client.py:1085:test_004()/699
+location: clients/tests/test-client.py:1086:test_004()/727
 cmd: $NMCLI --mode multiline --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -38105,7 +38897,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 4950
-location: clients/tests/test-client.py:1085:test_004()/700
+location: clients/tests/test-client.py:1086:test_004()/728
 cmd: $NMCLI --mode multiline --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -38197,7 +38989,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 1419
-location: clients/tests/test-client.py:1087:test_004()/701
+location: clients/tests/test-client.py:1088:test_004()/729
 cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -38229,7 +39021,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 1447
-location: clients/tests/test-client.py:1087:test_004()/702
+location: clients/tests/test-client.py:1088:test_004()/730
 cmd: $NMCLI --mode multiline --pretty -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -38261,7 +39053,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 860
-location: clients/tests/test-client.py:1089:test_004()/703
+location: clients/tests/test-client.py:1090:test_004()/731
 cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -38284,7 +39076,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 885
-location: clients/tests/test-client.py:1089:test_004()/704
+location: clients/tests/test-client.py:1090:test_004()/732
 cmd: $NMCLI --mode multiline --pretty -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -38307,7 +39099,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 1532
-location: clients/tests/test-client.py:1092:test_004()/705
+location: clients/tests/test-client.py:1093:test_004()/733
 cmd: $NMCLI --mode multiline --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -38339,7 +39131,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 1560
-location: clients/tests/test-client.py:1092:test_004()/706
+location: clients/tests/test-client.py:1093:test_004()/734
 cmd: $NMCLI --mode multiline --pretty -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -38371,7 +39163,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/AccessPo
 
 <<<
 size: 5968
-location: clients/tests/test-client.py:1094:test_004()/707
+location: clients/tests/test-client.py:1095:test_004()/735
 cmd: $NMCLI --mode multiline --pretty -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -38485,7 +39277,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6030
-location: clients/tests/test-client.py:1094:test_004()/708
+location: clients/tests/test-client.py:1095:test_004()/736
 cmd: $NMCLI --mode multiline --pretty -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -38599,7 +39391,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2469
-location: clients/tests/test-client.py:1096:test_004()/709
+location: clients/tests/test-client.py:1097:test_004()/737
 cmd: $NMCLI --mode multiline --pretty -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -38644,7 +39436,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 2487
-location: clients/tests/test-client.py:1096:test_004()/710
+location: clients/tests/test-client.py:1097:test_004()/738
 cmd: $NMCLI --mode multiline --pretty -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -38689,7 +39481,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 6106
-location: clients/tests/test-client.py:1098:test_004()/711
+location: clients/tests/test-client.py:1099:test_004()/739
 cmd: $NMCLI --mode multiline --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -38803,7 +39595,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6168
-location: clients/tests/test-client.py:1098:test_004()/712
+location: clients/tests/test-client.py:1099:test_004()/740
 cmd: $NMCLI --mode multiline --pretty -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -38916,12 +39708,84 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 -------------------------------------------------------------------------------
 
 <<<
-size: 5654
-location: clients/tests/test-client.py:1036:test_004()/713
+size: 1915
+location: clients/tests/test-client.py:1102:test_004()/741
+cmd: $NMCLI --mode multiline --pretty dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1742 bytes
+>>>
+===============================================================================
+                         Device LLDP neighbors (eth0)
+===============================================================================
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+-------------------------------------------------------------------------------
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+-------------------------------------------------------------------------------
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+-------------------------------------------------------------------------------
+
+<<<
+size: 1929
+location: clients/tests/test-client.py:1102:test_004()/742
+cmd: $NMCLI --mode multiline --pretty dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1746 bytes
+>>>
+===============================================================================
+                        Sąsiedzi LLDP urządzenia (eth0)
+===============================================================================
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+-------------------------------------------------------------------------------
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+-------------------------------------------------------------------------------
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+-------------------------------------------------------------------------------
+
+<<<
+size: 5740
+location: clients/tests/test-client.py:1037:test_004()/743
 cmd: $NMCLI --mode multiline --pretty --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 5479 bytes
+stdout: 5565 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -38960,6 +39824,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -38981,6 +39846,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -39031,12 +39897,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5696
-location: clients/tests/test-client.py:1036:test_004()/714
+size: 5782
+location: clients/tests/test-client.py:1037:test_004()/744
 cmd: $NMCLI --mode multiline --pretty --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5511 bytes
+stdout: 5597 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -39075,6 +39941,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -39096,6 +39963,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -39146,12 +40014,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5654
-location: clients/tests/test-client.py:1038:test_004()/715
+size: 5740
+location: clients/tests/test-client.py:1039:test_004()/745
 cmd: $NMCLI --mode multiline --pretty --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 5479 bytes
+stdout: 5565 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -39190,6 +40058,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -39211,6 +40080,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -39261,12 +40131,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 5696
-location: clients/tests/test-client.py:1038:test_004()/716
+size: 5782
+location: clients/tests/test-client.py:1039:test_004()/746
 cmd: $NMCLI --mode multiline --pretty --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 5511 bytes
+stdout: 5597 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -39305,6 +40175,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -39326,6 +40197,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -39376,12 +40248,12 @@ VPN.CFG[3]:                             key3 = val3
 -------------------------------------------------------------------------------
 
 <<<
-size: 4180
-location: clients/tests/test-client.py:1041:test_004()/717
+size: 4266
+location: clients/tests/test-client.py:1042:test_004()/747
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 3998 bytes
+stdout: 4084 bytes
 >>>
 ===============================================================================
                     Connection profile details (con-vpn-1)
@@ -39420,6 +40292,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                no
 ipv4.ignore-auto-dns:                   no
 ipv4.dhcp-client-id:                    --
@@ -39441,6 +40314,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                no
 ipv6.ignore-auto-dns:                   no
 ipv6.never-default:                     no
@@ -39466,12 +40340,12 @@ proxy.pac-script:                       --
 -------------------------------------------------------------------------------
 
 <<<
-size: 4205
-location: clients/tests/test-client.py:1041:test_004()/718
+size: 4291
+location: clients/tests/test-client.py:1042:test_004()/748
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 4013 bytes
+stdout: 4099 bytes
 >>>
 ===============================================================================
                    Szczegóły profilu połączenia (con-vpn-1)
@@ -39510,6 +40384,7 @@ ipv4.gateway:                           --
 ipv4.routes:                            --
 ipv4.route-metric:                      -1
 ipv4.route-table:                       0 (unspec)
+ipv4.routing-rules:                     --
 ipv4.ignore-auto-routes:                nie
 ipv4.ignore-auto-dns:                   nie
 ipv4.dhcp-client-id:                    --
@@ -39531,6 +40406,7 @@ ipv6.gateway:                           --
 ipv6.routes:                            --
 ipv6.route-metric:                      -1
 ipv6.route-table:                       0 (unspec)
+ipv6.routing-rules:                     --
 ipv6.ignore-auto-routes:                nie
 ipv6.ignore-auto-dns:                   nie
 ipv6.never-default:                     nie
@@ -39557,7 +40433,7 @@ proxy.pac-script:                       --
 
 <<<
 size: 814
-location: clients/tests/test-client.py:1047:test_004()/719
+location: clients/tests/test-client.py:1048:test_004()/749
 cmd: $NMCLI --mode multiline --pretty --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -39576,7 +40452,7 @@ vpn.timeout:                            0
 
 <<<
 size: 830
-location: clients/tests/test-client.py:1047:test_004()/720
+location: clients/tests/test-client.py:1048:test_004()/750
 cmd: $NMCLI --mode multiline --pretty --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -39595,7 +40471,7 @@ vpn.timeout:                            0
 
 <<<
 size: 1165
-location: clients/tests/test-client.py:1050:test_004()/721
+location: clients/tests/test-client.py:1051:test_004()/751
 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -39620,7 +40496,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1185
-location: clients/tests/test-client.py:1050:test_004()/722
+location: clients/tests/test-client.py:1051:test_004()/752
 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -39645,7 +40521,7 @@ GENERAL.MASTER-PATH:                    --
 
 <<<
 size: 1877
-location: clients/tests/test-client.py:1053:test_004()/723
+location: clients/tests/test-client.py:1054:test_004()/753
 cmd: $NMCLI --mode multiline --pretty --color yes dev s
 lang: C
 returncode: 0
@@ -39682,7 +40558,7 @@ CONNECTION:                             --
 
 <<<
 size: 1892
-location: clients/tests/test-client.py:1053:test_004()/724
+location: clients/tests/test-client.py:1054:test_004()/754
 cmd: $NMCLI --mode multiline --pretty --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -39719,7 +40595,7 @@ CONNECTION:                             --
 
 <<<
 size: 3491
-location: clients/tests/test-client.py:1056:test_004()/725
+location: clients/tests/test-client.py:1057:test_004()/755
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev status
 lang: C
 returncode: 0
@@ -39781,7 +40657,7 @@ CON-PATH:                               --
 
 <<<
 size: 3516
-location: clients/tests/test-client.py:1056:test_004()/726
+location: clients/tests/test-client.py:1057:test_004()/756
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -39843,7 +40719,7 @@ CON-PATH:                               --
 
 <<<
 size: 12902
-location: clients/tests/test-client.py:1059:test_004()/727
+location: clients/tests/test-client.py:1060:test_004()/757
 cmd: $NMCLI --mode multiline --pretty --color yes dev show
 lang: C
 returncode: 0
@@ -40051,7 +40927,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 12966
-location: clients/tests/test-client.py:1059:test_004()/728
+location: clients/tests/test-client.py:1060:test_004()/758
 cmd: $NMCLI --mode multiline --pretty --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -40259,7 +41135,7 @@ IP6.DOMAIN[1]:                          sear6.fo.x.y
 
 <<<
 size: 25562
-location: clients/tests/test-client.py:1062:test_004()/729
+location: clients/tests/test-client.py:1063:test_004()/759
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show
 lang: C
 returncode: 0
@@ -40707,7 +41583,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 25745
-location: clients/tests/test-client.py:1062:test_004()/730
+location: clients/tests/test-client.py:1063:test_004()/760
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -41155,7 +42031,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2468
-location: clients/tests/test-client.py:1065:test_004()/731
+location: clients/tests/test-client.py:1066:test_004()/761
 cmd: $NMCLI --mode multiline --pretty --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -41200,7 +42076,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 2486
-location: clients/tests/test-client.py:1065:test_004()/732
+location: clients/tests/test-client.py:1066:test_004()/762
 cmd: $NMCLI --mode multiline --pretty --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -41245,7 +42121,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 6193
-location: clients/tests/test-client.py:1068:test_004()/733
+location: clients/tests/test-client.py:1069:test_004()/763
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -41359,7 +42235,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6255
-location: clients/tests/test-client.py:1068:test_004()/734
+location: clients/tests/test-client.py:1069:test_004()/764
 cmd: $NMCLI --mode multiline --pretty --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -41473,7 +42349,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2450
-location: clients/tests/test-client.py:1071:test_004()/735
+location: clients/tests/test-client.py:1072:test_004()/765
 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -41524,7 +42400,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2481
-location: clients/tests/test-client.py:1071:test_004()/736
+location: clients/tests/test-client.py:1072:test_004()/766
 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -41575,7 +42451,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 2450
-location: clients/tests/test-client.py:1074:test_004()/737
+location: clients/tests/test-client.py:1075:test_004()/767
 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -41626,7 +42502,7 @@ WIFI-PROPERTIES.5GHZ:                   unknown
 
 <<<
 size: 2481
-location: clients/tests/test-client.py:1074:test_004()/738
+location: clients/tests/test-client.py:1075:test_004()/768
 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -41677,7 +42553,7 @@ WIFI-PROPERTIES.5GHZ:                   nieznane
 
 <<<
 size: 1788
-location: clients/tests/test-client.py:1077:test_004()/739
+location: clients/tests/test-client.py:1078:test_004()/769
 cmd: $NMCLI --mode multiline --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -41709,7 +42585,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Devi
 
 <<<
 size: 1798
-location: clients/tests/test-client.py:1077:test_004()/740
+location: clients/tests/test-client.py:1078:test_004()/770
 cmd: $NMCLI --mode multiline --pretty --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -41741,7 +42617,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Devi
 
 <<<
 size: 5385
-location: clients/tests/test-client.py:1080:test_004()/741
+location: clients/tests/test-client.py:1081:test_004()/771
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -41833,7 +42709,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 5461
-location: clients/tests/test-client.py:1080:test_004()/742
+location: clients/tests/test-client.py:1081:test_004()/772
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -41925,7 +42801,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 2898
-location: clients/tests/test-client.py:1082:test_004()/743
+location: clients/tests/test-client.py:1083:test_004()/773
 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -41981,7 +42857,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 2962
-location: clients/tests/test-client.py:1082:test_004()/744
+location: clients/tests/test-client.py:1083:test_004()/774
 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -42037,7 +42913,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 5498
-location: clients/tests/test-client.py:1085:test_004()/745
+location: clients/tests/test-client.py:1086:test_004()/775
 cmd: $NMCLI --mode multiline --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -42129,7 +43005,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 5574
-location: clients/tests/test-client.py:1085:test_004()/746
+location: clients/tests/test-client.py:1086:test_004()/776
 cmd: $NMCLI --mode multiline --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -42221,7 +43097,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 1584
-location: clients/tests/test-client.py:1087:test_004()/747
+location: clients/tests/test-client.py:1088:test_004()/777
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -42253,7 +43129,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 1612
-location: clients/tests/test-client.py:1087:test_004()/748
+location: clients/tests/test-client.py:1088:test_004()/778
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -42285,7 +43161,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 944
-location: clients/tests/test-client.py:1089:test_004()/749
+location: clients/tests/test-client.py:1090:test_004()/779
 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -42308,7 +43184,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 969
-location: clients/tests/test-client.py:1089:test_004()/750
+location: clients/tests/test-client.py:1090:test_004()/780
 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -42331,7 +43207,7 @@ SECURITY:                               WPA1 WPA2
 
 <<<
 size: 1697
-location: clients/tests/test-client.py:1092:test_004()/751
+location: clients/tests/test-client.py:1093:test_004()/781
 cmd: $NMCLI --mode multiline --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -42363,7 +43239,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 1725
-location: clients/tests/test-client.py:1092:test_004()/752
+location: clients/tests/test-client.py:1093:test_004()/782
 cmd: $NMCLI --mode multiline --pretty --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -42395,7 +43271,7 @@ DBUS-PATH:                              /org/freedesktop/NetworkManager/Acc
 
 <<<
 size: 6196
-location: clients/tests/test-client.py:1094:test_004()/753
+location: clients/tests/test-client.py:1095:test_004()/783
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -42509,7 +43385,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6258
-location: clients/tests/test-client.py:1094:test_004()/754
+location: clients/tests/test-client.py:1095:test_004()/784
 cmd: $NMCLI --mode multiline --pretty --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -42623,7 +43499,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 2481
-location: clients/tests/test-client.py:1096:test_004()/755
+location: clients/tests/test-client.py:1097:test_004()/785
 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -42668,7 +43544,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 2499
-location: clients/tests/test-client.py:1096:test_004()/756
+location: clients/tests/test-client.py:1097:test_004()/786
 cmd: $NMCLI --mode multiline --pretty --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -42713,7 +43589,7 @@ IP6.DOMAIN[6]:                          sear6.foo4.bar
 
 <<<
 size: 6334
-location: clients/tests/test-client.py:1098:test_004()/757
+location: clients/tests/test-client.py:1099:test_004()/787
 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -42827,7 +43703,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 
 <<<
 size: 6396
-location: clients/tests/test-client.py:1098:test_004()/758
+location: clients/tests/test-client.py:1099:test_004()/788
 cmd: $NMCLI --mode multiline --pretty --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -42940,12 +43816,84 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   UUID-con-xx1-REPLACED-REPLACED-REPLA | c
 -------------------------------------------------------------------------------
 
 <<<
-size: 2340
-location: clients/tests/test-client.py:1036:test_004()/759
+size: 1927
+location: clients/tests/test-client.py:1102:test_004()/789
+cmd: $NMCLI --mode multiline --pretty --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 1742 bytes
+>>>
+===============================================================================
+                         Device LLDP neighbors (eth0)
+===============================================================================
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+-------------------------------------------------------------------------------
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+-------------------------------------------------------------------------------
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+-------------------------------------------------------------------------------
+
+<<<
+size: 1941
+location: clients/tests/test-client.py:1102:test_004()/790
+cmd: $NMCLI --mode multiline --pretty --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 1746 bytes
+>>>
+===============================================================================
+                        Sąsiedzi LLDP urządzenia (eth0)
+===============================================================================
+NEIGHBOR[0].DEVICE:                     eth0
+NEIGHBOR[0].CHASSIS-ID:                 00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:                    Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:           GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:                test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:         Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:        20 (mac-bridge,router)
+-------------------------------------------------------------------------------
+NEIGHBOR[1].DEVICE:                     eth0
+NEIGHBOR[1].CHASSIS-ID:                 chassis1
+NEIGHBOR[1].PORT-ID:                    44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:           GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:                test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:         Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:        2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+-------------------------------------------------------------------------------
+NEIGHBOR[2].DEVICE:                     eth0
+NEIGHBOR[2].CHASSIS-ID:                 00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:                    port1
+NEIGHBOR[2].PORT-DESCRIPTION:           GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:                test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:         Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:        40 (wlan-access-point,telephone)
+-------------------------------------------------------------------------------
+
+<<<
+size: 2380
+location: clients/tests/test-client.py:1037:test_004()/791
 cmd: $NMCLI --mode multiline --terse con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -42980,6 +43928,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -43000,6 +43949,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -43042,12 +43992,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2350
-location: clients/tests/test-client.py:1036:test_004()/760
+size: 2390
+location: clients/tests/test-client.py:1037:test_004()/792
 cmd: $NMCLI --mode multiline --terse con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -43082,6 +44032,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -43102,6 +44053,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -43144,12 +44096,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2340
-location: clients/tests/test-client.py:1038:test_004()/761
+size: 2380
+location: clients/tests/test-client.py:1039:test_004()/793
 cmd: $NMCLI --mode multiline --terse con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -43184,6 +44136,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -43204,6 +44157,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -43246,12 +44200,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2350
-location: clients/tests/test-client.py:1038:test_004()/762
+size: 2390
+location: clients/tests/test-client.py:1039:test_004()/794
 cmd: $NMCLI --mode multiline --terse con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -43286,6 +44240,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -43306,6 +44261,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -43348,12 +44304,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 1788
-location: clients/tests/test-client.py:1041:test_004()/763
+size: 1828
+location: clients/tests/test-client.py:1042:test_004()/795
 cmd: $NMCLI --mode multiline --terse -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 1619 bytes
+stdout: 1659 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -43388,6 +44344,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -43408,6 +44365,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -43430,12 +44388,12 @@ proxy.pac-url:
 proxy.pac-script:
 
 <<<
-size: 1798
-location: clients/tests/test-client.py:1041:test_004()/764
+size: 1838
+location: clients/tests/test-client.py:1042:test_004()/796
 cmd: $NMCLI --mode multiline --terse -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 1619 bytes
+stdout: 1659 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -43470,6 +44428,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -43490,6 +44449,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -43513,7 +44473,7 @@ proxy.pac-script:
 
 <<<
 size: 339
-location: clients/tests/test-client.py:1047:test_004()/765
+location: clients/tests/test-client.py:1048:test_004()/797
 cmd: $NMCLI --mode multiline --terse -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -43528,7 +44488,7 @@ vpn.timeout:0
 
 <<<
 size: 349
-location: clients/tests/test-client.py:1047:test_004()/766
+location: clients/tests/test-client.py:1048:test_004()/798
 cmd: $NMCLI --mode multiline --terse -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -43543,7 +44503,7 @@ vpn.timeout:0
 
 <<<
 size: 542
-location: clients/tests/test-client.py:1050:test_004()/767
+location: clients/tests/test-client.py:1051:test_004()/799
 cmd: $NMCLI --mode multiline --terse -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -43564,7 +44524,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 552
-location: clients/tests/test-client.py:1050:test_004()/768
+location: clients/tests/test-client.py:1051:test_004()/800
 cmd: $NMCLI --mode multiline --terse -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -43585,7 +44545,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 431
-location: clients/tests/test-client.py:1053:test_004()/769
+location: clients/tests/test-client.py:1054:test_004()/801
 cmd: $NMCLI --mode multiline --terse dev s
 lang: C
 returncode: 0
@@ -43614,7 +44574,7 @@ CONNECTION:
 
 <<<
 size: 441
-location: clients/tests/test-client.py:1053:test_004()/770
+location: clients/tests/test-client.py:1054:test_004()/802
 cmd: $NMCLI --mode multiline --terse dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -43643,7 +44603,7 @@ CONNECTION:
 
 <<<
 size: 1139
-location: clients/tests/test-client.py:1056:test_004()/771
+location: clients/tests/test-client.py:1057:test_004()/803
 cmd: $NMCLI --mode multiline --terse -f all dev status
 lang: C
 returncode: 0
@@ -43697,7 +44657,7 @@ CON-PATH:
 
 <<<
 size: 1149
-location: clients/tests/test-client.py:1056:test_004()/772
+location: clients/tests/test-client.py:1057:test_004()/804
 cmd: $NMCLI --mode multiline --terse -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -43751,7 +44711,7 @@ CON-PATH:
 
 <<<
 size: 4557
-location: clients/tests/test-client.py:1059:test_004()/773
+location: clients/tests/test-client.py:1060:test_004()/805
 cmd: $NMCLI --mode multiline --terse dev show
 lang: C
 returncode: 0
@@ -43897,7 +44857,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y
 
 <<<
 size: 4567
-location: clients/tests/test-client.py:1059:test_004()/774
+location: clients/tests/test-client.py:1060:test_004()/806
 cmd: $NMCLI --mode multiline --terse dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -44043,7 +45003,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y
 
 <<<
 size: 11944
-location: clients/tests/test-client.py:1062:test_004()/775
+location: clients/tests/test-client.py:1063:test_004()/807
 cmd: $NMCLI --mode multiline --terse -f all dev show
 lang: C
 returncode: 0
@@ -44432,7 +45392,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 11990
-location: clients/tests/test-client.py:1062:test_004()/776
+location: clients/tests/test-client.py:1063:test_004()/808
 cmd: $NMCLI --mode multiline --terse -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -44821,7 +45781,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 899
-location: clients/tests/test-client.py:1065:test_004()/777
+location: clients/tests/test-client.py:1066:test_004()/809
 cmd: $NMCLI --mode multiline --terse dev show wlan0
 lang: C
 returncode: 0
@@ -44854,7 +45814,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 909
-location: clients/tests/test-client.py:1065:test_004()/778
+location: clients/tests/test-client.py:1066:test_004()/810
 cmd: $NMCLI --mode multiline --terse dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -44887,7 +45847,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 2710
-location: clients/tests/test-client.py:1068:test_004()/779
+location: clients/tests/test-client.py:1069:test_004()/811
 cmd: $NMCLI --mode multiline --terse -f all dev show wlan0
 lang: C
 returncode: 0
@@ -44987,7 +45947,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2747
-location: clients/tests/test-client.py:1068:test_004()/780
+location: clients/tests/test-client.py:1069:test_004()/812
 cmd: $NMCLI --mode multiline --terse -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45087,7 +46047,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 1208
-location: clients/tests/test-client.py:1071:test_004()/781
+location: clients/tests/test-client.py:1072:test_004()/813
 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -45132,7 +46092,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1218
-location: clients/tests/test-client.py:1071:test_004()/782
+location: clients/tests/test-client.py:1072:test_004()/814
 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45177,7 +46137,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1208
-location: clients/tests/test-client.py:1074:test_004()/783
+location: clients/tests/test-client.py:1075:test_004()/815
 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -45222,7 +46182,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1218
-location: clients/tests/test-client.py:1074:test_004()/784
+location: clients/tests/test-client.py:1075:test_004()/816
 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45267,7 +46227,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 555
-location: clients/tests/test-client.py:1077:test_004()/785
+location: clients/tests/test-client.py:1078:test_004()/817
 cmd: $NMCLI --mode multiline --terse -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -45291,7 +46251,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 565
-location: clients/tests/test-client.py:1077:test_004()/786
+location: clients/tests/test-client.py:1078:test_004()/818
 cmd: $NMCLI --mode multiline --terse -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45315,7 +46275,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 1552
-location: clients/tests/test-client.py:1080:test_004()/787
+location: clients/tests/test-client.py:1081:test_004()/819
 cmd: $NMCLI --mode multiline --terse -f ALL device wifi list
 lang: C
 returncode: 0
@@ -45394,7 +46354,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
 
 <<<
 size: 1610
-location: clients/tests/test-client.py:1080:test_004()/788
+location: clients/tests/test-client.py:1081:test_004()/820
 cmd: $NMCLI --mode multiline --terse -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45473,7 +46433,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
 
 <<<
 size: 552
-location: clients/tests/test-client.py:1082:test_004()/789
+location: clients/tests/test-client.py:1083:test_004()/821
 cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -45516,7 +46476,7 @@ SECURITY:WPA1 WPA2
 
 <<<
 size: 598
-location: clients/tests/test-client.py:1082:test_004()/790
+location: clients/tests/test-client.py:1083:test_004()/822
 cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45559,7 +46519,7 @@ SECURITY:WPA1 WPA2
 
 <<<
 size: 1665
-location: clients/tests/test-client.py:1085:test_004()/791
+location: clients/tests/test-client.py:1086:test_004()/823
 cmd: $NMCLI --mode multiline --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -45638,7 +46598,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
 
 <<<
 size: 1723
-location: clients/tests/test-client.py:1085:test_004()/792
+location: clients/tests/test-client.py:1086:test_004()/824
 cmd: $NMCLI --mode multiline --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45717,7 +46677,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
 
 <<<
 size: 562
-location: clients/tests/test-client.py:1087:test_004()/793
+location: clients/tests/test-client.py:1088:test_004()/825
 cmd: $NMCLI --mode multiline --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -45745,7 +46705,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
 
 <<<
 size: 584
-location: clients/tests/test-client.py:1087:test_004()/794
+location: clients/tests/test-client.py:1088:test_004()/826
 cmd: $NMCLI --mode multiline --terse -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45773,7 +46733,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
 
 <<<
 size: 294
-location: clients/tests/test-client.py:1089:test_004()/795
+location: clients/tests/test-client.py:1090:test_004()/827
 cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -45792,7 +46752,7 @@ SECURITY:WPA1 WPA2
 
 <<<
 size: 314
-location: clients/tests/test-client.py:1089:test_004()/796
+location: clients/tests/test-client.py:1090:test_004()/828
 cmd: $NMCLI --mode multiline --terse -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45811,7 +46771,7 @@ SECURITY:WPA1 WPA2
 
 <<<
 size: 675
-location: clients/tests/test-client.py:1092:test_004()/797
+location: clients/tests/test-client.py:1093:test_004()/829
 cmd: $NMCLI --mode multiline --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -45839,7 +46799,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
 
 <<<
 size: 697
-location: clients/tests/test-client.py:1092:test_004()/798
+location: clients/tests/test-client.py:1093:test_004()/830
 cmd: $NMCLI --mode multiline --terse -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -45867,7 +46827,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
 
 <<<
 size: 2713
-location: clients/tests/test-client.py:1094:test_004()/799
+location: clients/tests/test-client.py:1095:test_004()/831
 cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -45967,7 +46927,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2750
-location: clients/tests/test-client.py:1094:test_004()/800
+location: clients/tests/test-client.py:1095:test_004()/832
 cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -46067,7 +47027,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 912
-location: clients/tests/test-client.py:1096:test_004()/801
+location: clients/tests/test-client.py:1097:test_004()/833
 cmd: $NMCLI --mode multiline --terse -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -46100,7 +47060,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 922
-location: clients/tests/test-client.py:1096:test_004()/802
+location: clients/tests/test-client.py:1097:test_004()/834
 cmd: $NMCLI --mode multiline --terse -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -46133,7 +47093,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 2851
-location: clients/tests/test-client.py:1098:test_004()/803
+location: clients/tests/test-client.py:1099:test_004()/835
 cmd: $NMCLI --mode multiline --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -46233,7 +47193,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2888
-location: clients/tests/test-client.py:1098:test_004()/804
+location: clients/tests/test-client.py:1099:test_004()/836
 cmd: $NMCLI --mode multiline --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -46332,12 +47292,72 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/
 CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
-size: 2352
-location: clients/tests/test-client.py:1036:test_004()/805
+size: 1153
+location: clients/tests/test-client.py:1102:test_004()/837
+cmd: $NMCLI --mode multiline --terse dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 982 bytes
+>>>
+NEIGHBOR[0].DEVICE:eth0
+NEIGHBOR[0].CHASSIS-ID:00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:eth0
+NEIGHBOR[1].CHASSIS-ID:chassis1
+NEIGHBOR[1].PORT-ID:44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:eth0
+NEIGHBOR[2].CHASSIS-ID:00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:port1
+NEIGHBOR[2].PORT-DESCRIPTION:GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone)
+
+<<<
+size: 1163
+location: clients/tests/test-client.py:1102:test_004()/838
+cmd: $NMCLI --mode multiline --terse dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 982 bytes
+>>>
+NEIGHBOR[0].DEVICE:eth0
+NEIGHBOR[0].CHASSIS-ID:00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:eth0
+NEIGHBOR[1].CHASSIS-ID:chassis1
+NEIGHBOR[1].PORT-ID:44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:eth0
+NEIGHBOR[2].CHASSIS-ID:00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:port1
+NEIGHBOR[2].PORT-DESCRIPTION:GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone)
+
+<<<
+size: 2392
+location: clients/tests/test-client.py:1037:test_004()/839
 cmd: $NMCLI --mode multiline --terse --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -46372,6 +47392,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -46392,6 +47413,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -46434,12 +47456,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2362
-location: clients/tests/test-client.py:1036:test_004()/806
+size: 2402
+location: clients/tests/test-client.py:1037:test_004()/840
 cmd: $NMCLI --mode multiline --terse --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -46474,6 +47496,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -46494,6 +47517,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -46536,12 +47560,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2352
-location: clients/tests/test-client.py:1038:test_004()/807
+size: 2392
+location: clients/tests/test-client.py:1039:test_004()/841
 cmd: $NMCLI --mode multiline --terse --color yes con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -46576,6 +47600,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -46596,6 +47621,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -46638,12 +47664,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 2362
-location: clients/tests/test-client.py:1038:test_004()/808
+size: 2402
+location: clients/tests/test-client.py:1039:test_004()/842
 cmd: $NMCLI --mode multiline --terse --color yes con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 2178 bytes
+stdout: 2218 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -46678,6 +47704,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -46698,6 +47725,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -46740,12 +47768,12 @@ VPN.CFG[2]:key2 = val2
 VPN.CFG[3]:key3 = val3
 
 <<<
-size: 1800
-location: clients/tests/test-client.py:1041:test_004()/809
+size: 1840
+location: clients/tests/test-client.py:1042:test_004()/843
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con s con-vpn-1
 lang: C
 returncode: 0
-stdout: 1619 bytes
+stdout: 1659 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -46780,6 +47808,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -46800,6 +47829,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -46822,12 +47852,12 @@ proxy.pac-url:
 proxy.pac-script:
 
 <<<
-size: 1810
-location: clients/tests/test-client.py:1041:test_004()/810
+size: 1850
+location: clients/tests/test-client.py:1042:test_004()/844
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
-stdout: 1619 bytes
+stdout: 1659 bytes
 >>>
 connection.id:con-vpn-1
 connection.uuid:UUID-con-vpn-1-REPLACED-REPLACED-REP
@@ -46862,6 +47892,7 @@ ipv4.gateway:
 ipv4.routes:
 ipv4.route-metric:-1
 ipv4.route-table:0
+ipv4.routing-rules:
 ipv4.ignore-auto-routes:no
 ipv4.ignore-auto-dns:no
 ipv4.dhcp-client-id:
@@ -46882,6 +47913,7 @@ ipv6.gateway:
 ipv6.routes:
 ipv6.route-metric:-1
 ipv6.route-table:0
+ipv6.routing-rules:
 ipv6.ignore-auto-routes:no
 ipv6.ignore-auto-dns:no
 ipv6.never-default:no
@@ -46905,7 +47937,7 @@ proxy.pac-script:
 
 <<<
 size: 351
-location: clients/tests/test-client.py:1047:test_004()/811
+location: clients/tests/test-client.py:1048:test_004()/845
 cmd: $NMCLI --mode multiline --terse --color yes -f VPN con s con-vpn-1
 lang: C
 returncode: 0
@@ -46920,7 +47952,7 @@ vpn.timeout:0
 
 <<<
 size: 361
-location: clients/tests/test-client.py:1047:test_004()/812
+location: clients/tests/test-client.py:1048:test_004()/846
 cmd: $NMCLI --mode multiline --terse --color yes -f VPN con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -46935,7 +47967,7 @@ vpn.timeout:0
 
 <<<
 size: 554
-location: clients/tests/test-client.py:1050:test_004()/813
+location: clients/tests/test-client.py:1051:test_004()/847
 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL con s con-vpn-1
 lang: C
 returncode: 0
@@ -46956,7 +47988,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 564
-location: clients/tests/test-client.py:1050:test_004()/814
+location: clients/tests/test-client.py:1051:test_004()/848
 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL con s con-vpn-1
 lang: pl_PL.UTF-8
 returncode: 0
@@ -46977,7 +48009,7 @@ GENERAL.MASTER-PATH:
 
 <<<
 size: 603
-location: clients/tests/test-client.py:1053:test_004()/815
+location: clients/tests/test-client.py:1054:test_004()/849
 cmd: $NMCLI --mode multiline --terse --color yes dev s
 lang: C
 returncode: 0
@@ -47006,7 +48038,7 @@ CONNECTION:
 
 <<<
 size: 613
-location: clients/tests/test-client.py:1053:test_004()/816
+location: clients/tests/test-client.py:1054:test_004()/850
 cmd: $NMCLI --mode multiline --terse --color yes dev s
 lang: pl_PL.UTF-8
 returncode: 0
@@ -47035,7 +48067,7 @@ CONNECTION:
 
 <<<
 size: 1512
-location: clients/tests/test-client.py:1056:test_004()/817
+location: clients/tests/test-client.py:1057:test_004()/851
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev status
 lang: C
 returncode: 0
@@ -47089,7 +48121,7 @@ CON-PATH:
 
 <<<
 size: 1522
-location: clients/tests/test-client.py:1056:test_004()/818
+location: clients/tests/test-client.py:1057:test_004()/852
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev status
 lang: pl_PL.UTF-8
 returncode: 0
@@ -47143,7 +48175,7 @@ CON-PATH:
 
 <<<
 size: 4569
-location: clients/tests/test-client.py:1059:test_004()/819
+location: clients/tests/test-client.py:1060:test_004()/853
 cmd: $NMCLI --mode multiline --terse --color yes dev show
 lang: C
 returncode: 0
@@ -47289,7 +48321,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y
 
 <<<
 size: 4579
-location: clients/tests/test-client.py:1059:test_004()/820
+location: clients/tests/test-client.py:1060:test_004()/854
 cmd: $NMCLI --mode multiline --terse --color yes dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -47435,7 +48467,7 @@ IP6.DOMAIN[1]:sear6.fo.x.y
 
 <<<
 size: 12244
-location: clients/tests/test-client.py:1062:test_004()/821
+location: clients/tests/test-client.py:1063:test_004()/855
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show
 lang: C
 returncode: 0
@@ -47824,7 +48856,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 12290
-location: clients/tests/test-client.py:1062:test_004()/822
+location: clients/tests/test-client.py:1063:test_004()/856
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show
 lang: pl_PL.UTF-8
 returncode: 0
@@ -48213,7 +49245,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 911
-location: clients/tests/test-client.py:1065:test_004()/823
+location: clients/tests/test-client.py:1066:test_004()/857
 cmd: $NMCLI --mode multiline --terse --color yes dev show wlan0
 lang: C
 returncode: 0
@@ -48246,7 +49278,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 921
-location: clients/tests/test-client.py:1065:test_004()/824
+location: clients/tests/test-client.py:1066:test_004()/858
 cmd: $NMCLI --mode multiline --terse --color yes dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -48279,7 +49311,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 2938
-location: clients/tests/test-client.py:1068:test_004()/825
+location: clients/tests/test-client.py:1069:test_004()/859
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show wlan0
 lang: C
 returncode: 0
@@ -48379,7 +49411,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2975
-location: clients/tests/test-client.py:1068:test_004()/826
+location: clients/tests/test-client.py:1069:test_004()/860
 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -48479,7 +49511,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 1220
-location: clients/tests/test-client.py:1071:test_004()/827
+location: clients/tests/test-client.py:1072:test_004()/861
 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -48524,7 +49556,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1230
-location: clients/tests/test-client.py:1071:test_004()/828
+location: clients/tests/test-client.py:1072:test_004()/862
 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -48569,7 +49601,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1220
-location: clients/tests/test-client.py:1074:test_004()/829
+location: clients/tests/test-client.py:1075:test_004()/863
 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: C
 returncode: 0
@@ -48614,7 +49646,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 1230
-location: clients/tests/test-client.py:1074:test_004()/830
+location: clients/tests/test-client.py:1075:test_004()/864
 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -48659,7 +49691,7 @@ WIFI-PROPERTIES.5GHZ:unknown
 
 <<<
 size: 687
-location: clients/tests/test-client.py:1077:test_004()/831
+location: clients/tests/test-client.py:1078:test_004()/865
 cmd: $NMCLI --mode multiline --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: C
 returncode: 0
@@ -48683,7 +49715,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 697
-location: clients/tests/test-client.py:1077:test_004()/832
+location: clients/tests/test-client.py:1078:test_004()/866
 cmd: $NMCLI --mode multiline --terse --color yes -f DEVICE,TYPE,DBUS-PATH dev
 lang: pl_PL.UTF-8
 returncode: 0
@@ -48707,7 +49739,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5
 
 <<<
 size: 2176
-location: clients/tests/test-client.py:1080:test_004()/833
+location: clients/tests/test-client.py:1081:test_004()/867
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device wifi list
 lang: C
 returncode: 0
@@ -48786,7 +49818,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
 
 <<<
 size: 2234
-location: clients/tests/test-client.py:1080:test_004()/834
+location: clients/tests/test-client.py:1081:test_004()/868
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -48865,7 +49897,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
 
 <<<
 size: 852
-location: clients/tests/test-client.py:1082:test_004()/835
+location: clients/tests/test-client.py:1083:test_004()/869
 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device wifi list
 lang: C
 returncode: 0
@@ -48908,7 +49940,7 @@ SECURITY:WPA1 WPA2
 
 <<<
 size: 898
-location: clients/tests/test-client.py:1082:test_004()/836
+location: clients/tests/test-client.py:1083:test_004()/870
 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -48951,7 +49983,7 @@ SECURITY:WPA1 WPA2
 
 <<<
 size: 2289
-location: clients/tests/test-client.py:1085:test_004()/837
+location: clients/tests/test-client.py:1086:test_004()/871
 cmd: $NMCLI --mode multiline --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: C
 returncode: 0
@@ -49030,7 +50062,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
 
 <<<
 size: 2347
-location: clients/tests/test-client.py:1085:test_004()/838
+location: clients/tests/test-client.py:1086:test_004()/872
 cmd: $NMCLI --mode multiline --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list
 lang: pl_PL.UTF-8
 returncode: 0
@@ -49109,7 +50141,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/4
 
 <<<
 size: 727
-location: clients/tests/test-client.py:1087:test_004()/839
+location: clients/tests/test-client.py:1088:test_004()/873
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -49137,7 +50169,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
 
 <<<
 size: 749
-location: clients/tests/test-client.py:1087:test_004()/840
+location: clients/tests/test-client.py:1088:test_004()/874
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -49165,7 +50197,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
 
 <<<
 size: 379
-location: clients/tests/test-client.py:1089:test_004()/841
+location: clients/tests/test-client.py:1090:test_004()/875
 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -49184,7 +50216,7 @@ SECURITY:WPA1 WPA2
 
 <<<
 size: 398
-location: clients/tests/test-client.py:1089:test_004()/842
+location: clients/tests/test-client.py:1090:test_004()/876
 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -49203,7 +50235,7 @@ SECURITY:WPA1 WPA2
 
 <<<
 size: 840
-location: clients/tests/test-client.py:1092:test_004()/843
+location: clients/tests/test-client.py:1093:test_004()/877
 cmd: $NMCLI --mode multiline --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: C
 returncode: 0
@@ -49231,7 +50263,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
 
 <<<
 size: 862
-location: clients/tests/test-client.py:1092:test_004()/844
+location: clients/tests/test-client.py:1093:test_004()/878
 cmd: $NMCLI --mode multiline --terse --color yes -f NAME,SSID,SSID-HEX,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,IN-USE,DBUS-PATH device wifi list bssid C0:E2:BE:E8:EF:B6
 lang: pl_PL.UTF-8
 returncode: 0
@@ -49259,7 +50291,7 @@ DBUS-PATH:/org/freedesktop/NetworkManager/AccessPoint/2
 
 <<<
 size: 2941
-location: clients/tests/test-client.py:1094:test_004()/845
+location: clients/tests/test-client.py:1095:test_004()/879
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device show wlan0
 lang: C
 returncode: 0
@@ -49359,7 +50391,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 2978
-location: clients/tests/test-client.py:1094:test_004()/846
+location: clients/tests/test-client.py:1095:test_004()/880
 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -49459,7 +50491,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 924
-location: clients/tests/test-client.py:1096:test_004()/847
+location: clients/tests/test-client.py:1097:test_004()/881
 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device show wlan0
 lang: C
 returncode: 0
@@ -49492,7 +50524,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 934
-location: clients/tests/test-client.py:1096:test_004()/848
+location: clients/tests/test-client.py:1097:test_004()/882
 cmd: $NMCLI --mode multiline --terse --color yes -f COMMON device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -49525,7 +50557,7 @@ IP6.DOMAIN[6]:sear6.foo4.bar
 
 <<<
 size: 3079
-location: clients/tests/test-client.py:1098:test_004()/849
+location: clients/tests/test-client.py:1099:test_004()/883
 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: C
 returncode: 0
@@ -49625,7 +50657,7 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-
 
 <<<
 size: 3116
-location: clients/tests/test-client.py:1098:test_004()/850
+location: clients/tests/test-client.py:1099:test_004()/884
 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0
 lang: pl_PL.UTF-8
 returncode: 0
@@ -49724,3 +50756,63 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/
 CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1
 
 <<<
+size: 1165
+location: clients/tests/test-client.py:1102:test_004()/885
+cmd: $NMCLI --mode multiline --terse --color yes dev lldp list ifname eth0
+lang: C
+returncode: 0
+stdout: 982 bytes
+>>>
+NEIGHBOR[0].DEVICE:eth0
+NEIGHBOR[0].CHASSIS-ID:00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:eth0
+NEIGHBOR[1].CHASSIS-ID:chassis1
+NEIGHBOR[1].PORT-ID:44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:eth0
+NEIGHBOR[2].CHASSIS-ID:00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:port1
+NEIGHBOR[2].PORT-DESCRIPTION:GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone)
+
+<<<
+size: 1175
+location: clients/tests/test-client.py:1102:test_004()/886
+cmd: $NMCLI --mode multiline --terse --color yes dev lldp list ifname eth0
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 982 bytes
+>>>
+NEIGHBOR[0].DEVICE:eth0
+NEIGHBOR[0].CHASSIS-ID:00:11:22:33:44:00
+NEIGHBOR[0].PORT-ID:Uplink port
+NEIGHBOR[0].PORT-DESCRIPTION:GigabitEthernet #1
+NEIGHBOR[0].SYSTEM-NAME:test1.example.com
+NEIGHBOR[0].SYSTEM-DESCRIPTION:Test system #1
+NEIGHBOR[0].SYSTEM-CAPABILITIES:20 (mac-bridge,router)
+NEIGHBOR[1].DEVICE:eth0
+NEIGHBOR[1].CHASSIS-ID:chassis1
+NEIGHBOR[1].PORT-ID:44:44:44:44:44:44
+NEIGHBOR[1].PORT-DESCRIPTION:GigabitEthernet #2
+NEIGHBOR[1].SYSTEM-NAME:test2.example.com
+NEIGHBOR[1].SYSTEM-DESCRIPTION:Test system #2
+NEIGHBOR[1].SYSTEM-CAPABILITIES:2047 (other,repeater,mac-bridge,wlan-access-point,router,telephone,docsis-cable-device,station-only,c-vlan-component,s-vlan-component,tpmr)
+NEIGHBOR[2].DEVICE:eth0
+NEIGHBOR[2].CHASSIS-ID:00:11:22:33:44:22
+NEIGHBOR[2].PORT-ID:port1
+NEIGHBOR[2].PORT-DESCRIPTION:GigabitEthernet #3
+NEIGHBOR[2].SYSTEM-NAME:test3.example.com
+NEIGHBOR[2].SYSTEM-DESCRIPTION:Test system #3
+NEIGHBOR[2].SYSTEM-CAPABILITIES:40 (wlan-access-point,telephone)
+
+<<<
diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py
index c7d5c958..08b0b951 100755
--- a/clients/tests/test-client.py
+++ b/clients/tests/test-client.py
@@ -589,6 +589,7 @@ class TestNmcli(NmTestBase):
         env['LIBNM_USE_SESSION_BUS'] = '1'
         env['LIBNM_USE_NO_UDEV'] = '1'
         env['TERM'] = 'linux'
+        env['ASAN_OPTIONS'] = 'detect_leaks=0'
         env['XDG_CONFIG_HOME'] = PathConfiguration.srcdir()
         if fatal_warnings is _DEFAULT_ARG or fatal_warnings:
             env['G_DEBUG'] = 'fatal-warnings'
@@ -1097,6 +1098,9 @@ class TestNmcli(NmTestBase):
             self.call_nmcli_l(mode + ['-f', 'GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS', 'device', 'show', 'wlan0' ],
                               replace_stdout = replace_stdout)
 
+            self.call_nmcli_l(mode + ['dev', 'lldp', 'list', 'ifname', 'eth0'],
+                              replace_stdout = replace_stdout)
+
 ###############################################################################
 
 def main():
diff --git a/clients/tui/meson.build b/clients/tui/meson.build
index 461b1f0a..837645a6 100644
--- a/clients/tui/meson.build
+++ b/clients/tui/meson.build
@@ -2,7 +2,7 @@ name = 'nmtui'
 
 deps = [
   newt_dep,
-  nm_core_dep,
+  libnm_core_dep,
 ]
 
 cflags = clients_cflags + [
@@ -56,6 +56,7 @@ sources = files(
 
 deps += [
   libnm_dep,
+  libnmc_dep,
   libnmc_base_dep,
   libnmt_newt_dep,
 ]
diff --git a/clients/tui/nmt-editor.c b/clients/tui/nmt-editor.c
index b18f23d5..c28288a2 100644
--- a/clients/tui/nmt-editor.c
+++ b/clients/tui/nmt-editor.c
@@ -53,6 +53,8 @@
 #include "nmt-page-vlan.h"
 #include "nmt-page-wifi.h"
 
+#include "nm-meta-setting-access.h"
+
 G_DEFINE_TYPE (NmtEditor, nmt_editor, NMT_TYPE_NEWT_FORM)
 
 #define NMT_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NMT_TYPE_EDITOR, NmtEditorPrivate))
@@ -230,6 +232,8 @@ build_edit_connection (NMConnection *orig_connection)
 	settings = nm_connection_to_dbus (orig_connection, NM_CONNECTION_SERIALIZE_NO_SECRETS);
 	g_variant_iter_init (&iter, settings);
 	while (g_variant_iter_next (&iter, "{&s@a{sv}}", &setting_name, NULL)) {
+		if (!nm_meta_setting_info_editor_has_secrets (nm_meta_setting_info_editor_find_by_name (setting_name, FALSE)))
+			continue;
 		nmt_sync_op_init (&op);
 		nm_remote_connection_get_secrets_async (NM_REMOTE_CONNECTION (orig_connection),
 		                                        setting_name, NULL, got_secrets, &op);
diff --git a/clients/tui/nmt-mac-entry.c b/clients/tui/nmt-mac-entry.c
index 70c8c307..6c775bc5 100644
--- a/clients/tui/nmt-mac-entry.c
+++ b/clients/tui/nmt-mac-entry.c
@@ -30,7 +30,7 @@
 
 #include "nmt-mac-entry.h"
 
-#include "nm-common-macros.h"
+#include "nm-libnm-core-intern/nm-common-macros.h"
 
 G_DEFINE_TYPE (NmtMacEntry, nmt_mac_entry, NMT_TYPE_NEWT_ENTRY)