diff --git a/NEWS b/NEWS
index c2fa966c79..f2505251bf 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,7 @@ USE AT YOUR OWN RISK. NOT RECOMMENDED FOR PRODUCTION USE!
options from connections, instead of merging all together.
* Add support for a new rd.net.dhcp.client-id option in
nm-initrd-generator.
+* Add gsm device-uid setting to restrict the devices the connection applies to.
=============================================
NetworkManager-1.54
diff --git a/src/core/devices/wwan/nm-modem-broadband.c b/src/core/devices/wwan/nm-modem-broadband.c
index 018e53066c..cd03b83465 100644
--- a/src/core/devices/wwan/nm-modem-broadband.c
+++ b/src/core/devices/wwan/nm-modem-broadband.c
@@ -1649,6 +1649,8 @@ nm_modem_broadband_new(GObject *object, GError **error)
driver,
NM_MODEM_OPERATOR_CODE,
operator_code,
+ NM_MODEM_DEVICE_UID,
+ mm_modem_get_device(modem_iface),
NULL);
}
diff --git a/src/core/devices/wwan/nm-modem.c b/src/core/devices/wwan/nm-modem.c
index c4852ea285..9d8f61c55c 100644
--- a/src/core/devices/wwan/nm-modem.c
+++ b/src/core/devices/wwan/nm-modem.c
@@ -39,7 +39,8 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMModem,
PROP_IP_TYPES,
PROP_SIM_OPERATOR_ID,
PROP_OPERATOR_CODE,
- PROP_APN, );
+ PROP_APN,
+ PROP_DEVICE_UID, );
enum {
PPP_STATS,
@@ -78,6 +79,7 @@ typedef struct _NMModemPrivate {
char *sim_operator_id;
char *operator_code;
char *apn;
+ char *device_uid;
NMPPPManager *ppp_manager;
NMPppMgr *ppp_mgr;
@@ -618,6 +620,12 @@ nm_modem_get_apn(NMModem *self)
return NM_MODEM_GET_PRIVATE(self)->apn;
}
+const char *
+nm_modem_get_device_uid(NMModem *self)
+{
+ return NM_MODEM_GET_PRIVATE(self)->device_uid;
+}
+
/*****************************************************************************/
static void
@@ -1121,6 +1129,22 @@ nm_modem_check_connection_compatible(NMModem *self, NMConnection *connection, GE
}
}
+ str = nm_setting_gsm_get_device_uid(s_gsm);
+ if (str) {
+ if (!priv->device_uid) {
+ nm_utils_error_set_literal(error,
+ NM_UTILS_ERROR_CONNECTION_AVAILABLE_TEMPORARY,
+ "GSM profile has device-uid, device does not");
+ return FALSE;
+ }
+ if (!nm_streq(str, priv->device_uid)) {
+ nm_utils_error_set_literal(error,
+ NM_UTILS_ERROR_CONNECTION_AVAILABLE_TEMPORARY,
+ "device has differing device-uid than GSM profile");
+ return FALSE;
+ }
+ }
+
/* SIM properties may not be available before the SIM is unlocked, so
* to ensure that autoconnect works, the connection's SIM properties
* are only compared if present on the device.
@@ -1644,6 +1668,9 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
case PROP_APN:
g_value_set_string(value, priv->apn);
break;
+ case PROP_DEVICE_UID:
+ g_value_set_string(value, priv->device_uid);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -1699,6 +1726,10 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps
/* construct-only */
priv->operator_code = g_value_dup_string(value);
break;
+ case PROP_DEVICE_UID:
+ /* construct-only */
+ priv->device_uid = g_value_dup_string(value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -1758,6 +1789,7 @@ finalize(GObject *object)
g_free(priv->sim_operator_id);
g_free(priv->operator_code);
g_free(priv->apn);
+ g_free(priv->device_uid);
G_OBJECT_CLASS(nm_modem_parent_class)->finalize(object);
}
@@ -1863,6 +1895,13 @@ nm_modem_class_init(NMModemClass *klass)
obj_properties[PROP_APN] =
g_param_spec_string(NM_MODEM_APN, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_DEVICE_UID] =
+ g_param_spec_string(NM_MODEM_DEVICE_UID,
+ "",
+ "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[PPP_STATS] = g_signal_new(NM_MODEM_PPP_STATS,
diff --git a/src/core/devices/wwan/nm-modem.h b/src/core/devices/wwan/nm-modem.h
index 021d77b2ad..1f54b0b69a 100644
--- a/src/core/devices/wwan/nm-modem.h
+++ b/src/core/devices/wwan/nm-modem.h
@@ -30,6 +30,7 @@
#define NM_MODEM_SIM_OPERATOR_ID "sim-operator-id"
#define NM_MODEM_OPERATOR_CODE "operator-code"
#define NM_MODEM_APN "apn"
+#define NM_MODEM_DEVICE_UID "device-uid"
/* Signals */
#define NM_MODEM_PPP_STATS "ppp-stats"
@@ -154,6 +155,7 @@ const char *nm_modem_get_sim_id(NMModem *modem);
const char *nm_modem_get_sim_operator_id(NMModem *modem);
const char *nm_modem_get_operator_code(NMModem *modem);
const char *nm_modem_get_apn(NMModem *modem);
+const char *nm_modem_get_device_uid(NMModem *modem);
gboolean nm_modem_set_data_port(NMModem *self,
NMPlatform *platform,
diff --git a/src/core/settings/plugins/keyfile/tests/keyfiles/Test_Write_GSM b/src/core/settings/plugins/keyfile/tests/keyfiles/Test_Write_GSM
index 2f6dc26c9e..eec403cbec 100644
--- a/src/core/settings/plugins/keyfile/tests/keyfiles/Test_Write_GSM
+++ b/src/core/settings/plugins/keyfile/tests/keyfiles/Test_Write_GSM
@@ -8,6 +8,7 @@ timestamp=305415219
[gsm]
apn=internet2.voicestream.com
device-id=da812de91eec16620b06cd0ca5cbc7ea25245222
+device-uid=MODEM1
home-only=true
network-id=254098
password=parliament2
diff --git a/src/core/settings/plugins/keyfile/tests/test-keyfile-settings.c b/src/core/settings/plugins/keyfile/tests/test-keyfile-settings.c
index df5dfd4021..badb40d368 100644
--- a/src/core/settings/plugins/keyfile/tests/test-keyfile-settings.c
+++ b/src/core/settings/plugins/keyfile/tests/test-keyfile-settings.c
@@ -1408,6 +1408,8 @@ test_write_gsm_connection(void)
"89148000000060671234",
NM_SETTING_GSM_SIM_OPERATOR_ID,
"310260",
+ NM_SETTING_GSM_DEVICE_UID,
+ "MODEM1",
NULL);
write_test_connection_and_reread(connection, TRUE, TEST_KEYFILES_DIR "/Test_Write_GSM");
diff --git a/src/libnm-client-impl/libnm.ver b/src/libnm-client-impl/libnm.ver
index 95f9f411e5..3c956a36e1 100644
--- a/src/libnm-client-impl/libnm.ver
+++ b/src/libnm-client-impl/libnm.ver
@@ -2080,4 +2080,5 @@ global:
libnm_1_56_0 {
global:
nm_dns_server_validate;
+ nm_setting_gsm_get_device_uid;
} libnm_1_54_0;
diff --git a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in
index c764f53568..b1670dc2dc 100644
--- a/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in
+++ b/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in
@@ -1393,6 +1393,10 @@
dbus-type="s"
gprop-type="gchararray"
/>
+
initial_eps_refuse_mschapv2;
}
+/**
+ * nm_setting_gsm_get_device_uid:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:device-uid property of the setting
+ *
+ * Since: 1.56
+ **/
+const char *
+nm_setting_gsm_get_device_uid(NMSettingGsm *setting)
+{
+ g_return_val_if_fail(NM_IS_SETTING_GSM(setting), NULL);
+
+ return NM_SETTING_GSM_GET_PRIVATE(setting)->device_uid;
+}
+
static gboolean
_verify_apn(const char *apn, gboolean allow_empty, const char *property_name, GError **error)
{
@@ -1149,6 +1167,26 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
NMSettingGsmPrivate,
initial_eps_refuse_mschapv2);
+ /**
+ * NMSettingGsm:device-uid:
+ *
+ * The device UID (as given by the WWAN management service) which this
+ * connection applies to. In contrast to #NMSettingGsm:device-id, which is
+ * an inherent property of the connected device, this setting refers to
+ * a property set by a UDEV-rule. Refer to the "Common udev tags" ->
+ * "ID_MM_PHYSDEV_UID" documentation of ModemManager. If given, the
+ * connection will only apply to the specified device.
+ *
+ * Since: 1.56
+ **/
+ _nm_setting_property_define_direct_string(properties_override,
+ obj_properties,
+ NM_SETTING_GSM_DEVICE_UID,
+ PROP_DEVICE_UID,
+ NM_SETTING_PARAM_NONE,
+ NMSettingGsmPrivate,
+ device_uid);
+
/* Ignore incoming deprecated properties */
_nm_properties_override_dbus(properties_override,
"allowed-bands",
diff --git a/src/libnm-core-public/nm-setting-gsm.h b/src/libnm-core-public/nm-setting-gsm.h
index c86635027e..4f71f70e4a 100644
--- a/src/libnm-core-public/nm-setting-gsm.h
+++ b/src/libnm-core-public/nm-setting-gsm.h
@@ -50,6 +50,7 @@ G_BEGIN_DECLS
#define NM_SETTING_GSM_INITIAL_EPS_BEARER_REFUSE_CHAP "initial-eps-bearer-refuse-chap"
#define NM_SETTING_GSM_INITIAL_EPS_BEARER_REFUSE_MSCHAP "initial-eps-bearer-refuse-mschap"
#define NM_SETTING_GSM_INITIAL_EPS_BEARER_REFUSE_MSCHAPV2 "initial-eps-bearer-refuse-mschapv2"
+#define NM_SETTING_GSM_DEVICE_UID "device-uid"
/* Deprecated */
#define NM_SETTING_GSM_NUMBER "number"
@@ -99,6 +100,8 @@ gboolean nm_setting_gsm_get_initial_eps_refuse_mschap(NMSettingGsm *setting);
NM_AVAILABLE_IN_1_52
gboolean nm_setting_gsm_get_initial_eps_refuse_mschapv2(NMSettingGsm *setting);
+const char *nm_setting_gsm_get_device_uid(NMSettingGsm *setting);
+
NM_DEPRECATED_IN_1_16
const char *nm_setting_gsm_get_number(NMSettingGsm *setting);
diff --git a/src/libnmc-setting/nm-meta-setting-desc.c b/src/libnmc-setting/nm-meta-setting-desc.c
index f62830312f..c4b5b7f5b1 100644
--- a/src/libnmc-setting/nm-meta-setting-desc.c
+++ b/src/libnmc-setting/nm-meta-setting-desc.c
@@ -6213,6 +6213,9 @@ static const NMMetaPropertyInfo *const property_infos_GSM[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_INITIAL_EPS_BEARER_REFUSE_MSCHAPV2,
.property_type = &_pt_gobject_bool,
),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_GSM_DEVICE_UID,
+ .property_type = &_pt_gobject_string,
+ ),
NULL
};
diff --git a/src/libnmc-setting/settings-docs.h.in b/src/libnmc-setting/settings-docs.h.in
index c7b13d196c..a49aee827c 100644
--- a/src/libnmc-setting/settings-docs.h.in
+++ b/src/libnmc-setting/settings-docs.h.in
@@ -149,6 +149,7 @@
#define DESCRIBE_DOC_NM_SETTING_GSM_APN N_("The GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. The APN often determines how the user will be billed for their network usage and whether the user has access to the Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's mobile broadband plan. The APN may only be composed of the characters a-z, 0-9, ., and - per GSM 03.60 Section 14.9. If the APN is unset (the default) then it may be detected based on \"auto-config\" setting. The property can be explicitly set to the empty string to prevent that and use no APN.")
#define DESCRIBE_DOC_NM_SETTING_GSM_AUTO_CONFIG N_("When TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database.")
#define DESCRIBE_DOC_NM_SETTING_GSM_DEVICE_ID N_("The device unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will only apply to the specified device.")
+#define DESCRIBE_DOC_NM_SETTING_GSM_DEVICE_UID N_("The device UID (as given by the WWAN management service) which this connection applies to. In contrast to \"device-id\", which is an inherent property of the connected device, this setting refers to a property set by a UDEV-rule. Refer to the \"Common udev tags\" -> \"ID_MM_PHYSDEV_UID\" documentation of ModemManager. If given, the connection will only apply to the specified device.")
#define DESCRIBE_DOC_NM_SETTING_GSM_HOME_ONLY N_("When TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.")
#define DESCRIBE_DOC_NM_SETTING_GSM_INITIAL_EPS_BEARER_APN N_("For LTE modems, this sets the APN for the initial EPS bearer that is set up when attaching to the network. Setting this parameter implies initial-eps-bearer-configure to be TRUE.")
#define DESCRIBE_DOC_NM_SETTING_GSM_INITIAL_EPS_BEARER_CONFIGURE N_("For LTE modems, this setting determines whether the initial EPS bearer shall be configured when bringing up the connection. It is inferred TRUE if initial-eps-bearer-apn is set.")
diff --git a/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in b/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in
index a9476e38f9..481aa4a280 100644
--- a/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in
+++ b/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in
@@ -1198,6 +1198,9 @@
nmcli-description="For LTE modems, this disables MSCHAPV2 authentication method for the initial EPS bearer that is set up when attaching to the network."
format="boolean"
values="true/yes/on, false/no/off" />
+
>>
connection.id: con-gsm1
connection.uuid: UUID-con-gsm1-REPLACED-REPLACED-REPL
@@ -324,18 +324,19 @@ gsm.initial-eps-bearer-refuse-pap: no
gsm.initial-eps-bearer-refuse-chap: no
gsm.initial-eps-bearer-refuse-mschap: no
gsm.initial-eps-bearer-refuse-mschapv2: no
+gsm.device-uid: --
proxy.method: none
proxy.browser-only: no
proxy.pac-url: --
proxy.pac-script: --
<<<
-size: 6622
+size: 6665
location: src/tests/client/test-client.py:test_003()/15
cmd: $NMCLI con s con-gsm1
lang: pl_PL.UTF-8
returncode: 0
-stdout: 6479 bytes
+stdout: 6522 bytes
>>>
connection.id: con-gsm1
connection.uuid: UUID-con-gsm1-REPLACED-REPLACED-REPL
@@ -472,48 +473,49 @@ gsm.initial-eps-bearer-refuse-pap: nie
gsm.initial-eps-bearer-refuse-chap: nie
gsm.initial-eps-bearer-refuse-mschap: nie
gsm.initial-eps-bearer-refuse-mschapv2: nie
+gsm.device-uid: --
proxy.method: none
proxy.browser-only: nie
proxy.pac-url: --
proxy.pac-script: --
<<<
-size: 584
+size: 585
location: src/tests/client/test-client.py:test_003()/16
cmd: $NMCLI -g all con s con-gsm1
lang: C
returncode: 0
-stdout: 445 bytes
+stdout: 446 bytes
>>>
connection:con-gsm1:UUID-con-gsm1-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
ipv4:auto::: :0::::-1:0::-1:-1:-1:no:no::::0:yes:-1:-1:::0x0:no:yes:-1:-1::-1:0::-1::0
ipv6:auto::::0::::-1:0::-1:-1:-1:no:no:no:yes:-1:-1:0:0:default:0:auto::::0:yes:-1::0x0:-1:
serial:5:8:even:1:100
-gsm:no::::0:xyz.con-gsm1:::0:no::::auto:no::::0:yes:no:no:no:no:no
+gsm:no::::0:xyz.con-gsm1:::0:no::::auto:no::::0:yes:no:no:no:no:no:
proxy:none:no::
<<<
-size: 594
+size: 595
location: src/tests/client/test-client.py:test_003()/17
cmd: $NMCLI -g all con s con-gsm1
lang: pl_PL.UTF-8
returncode: 0
-stdout: 445 bytes
+stdout: 446 bytes
>>>
connection:con-gsm1:UUID-con-gsm1-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
ipv4:auto::: :0::::-1:0::-1:-1:-1:no:no::::0:yes:-1:-1:::0x0:no:yes:-1:-1::-1:0::-1::0
ipv6:auto::::0::::-1:0::-1:-1:-1:no:no:no:yes:-1:-1:0:0:default:0:auto::::0:yes:-1::0x0:-1:
serial:5:8:even:1:100
-gsm:no::::0:xyz.con-gsm1:::0:no::::auto:no::::0:yes:no:no:no:no:no
+gsm:no::::0:xyz.con-gsm1:::0:no::::auto:no::::0:yes:no:no:no:no:no:
proxy:none:no::
<<<
-size: 6567
+size: 6610
location: src/tests/client/test-client.py:test_003()/18
cmd: $NMCLI con s con-gsm2
lang: C
returncode: 0
-stdout: 6434 bytes
+stdout: 6477 bytes
>>>
connection.id: con-gsm2
connection.uuid: UUID-con-gsm2-REPLACED-REPLACED-REPL
@@ -650,18 +652,19 @@ gsm.initial-eps-bearer-refuse-pap: no
gsm.initial-eps-bearer-refuse-chap: no
gsm.initial-eps-bearer-refuse-mschap: no
gsm.initial-eps-bearer-refuse-mschapv2: no
+gsm.device-uid: --
proxy.method: none
proxy.browser-only: no
proxy.pac-url: --
proxy.pac-script: --
<<<
-size: 6610
+size: 6653
location: src/tests/client/test-client.py:test_003()/19
cmd: $NMCLI con s con-gsm2
lang: pl_PL.UTF-8
returncode: 0
-stdout: 6467 bytes
+stdout: 6510 bytes
>>>
connection.id: con-gsm2
connection.uuid: UUID-con-gsm2-REPLACED-REPLACED-REPL
@@ -798,332 +801,7 @@ gsm.initial-eps-bearer-refuse-pap: nie
gsm.initial-eps-bearer-refuse-chap: nie
gsm.initial-eps-bearer-refuse-mschap: nie
gsm.initial-eps-bearer-refuse-mschapv2: nie
-proxy.method: none
-proxy.browser-only: nie
-proxy.pac-url: --
-proxy.pac-script: --
-
-<<<
-size: 572
-location: src/tests/client/test-client.py:test_003()/20
-cmd: $NMCLI -g all con s con-gsm2
-lang: C
-returncode: 0
-stdout: 433 bytes
->>>
-connection:con-gsm2:UUID-con-gsm2-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
-ipv4:auto::: :0::::-1:0::-1:-1:-1:no:no::::0:yes:-1:-1:::0x0:no:yes:-1:-1::-1:0::-1::0
-ipv6:auto::::0::::-1:0::-1:-1:-1:no:no:no:yes:-1:-1:0:0:default:0:auto::::0:yes:-1::0x0:-1:
-serial:5:8:even:1:100
-gsm:no::::0::::0:no::::auto:no::::0:yes:no:no:no:no:no
-proxy:none:no::
-
-<<<
-size: 582
-location: src/tests/client/test-client.py:test_003()/21
-cmd: $NMCLI -g all con s con-gsm2
-lang: pl_PL.UTF-8
-returncode: 0
-stdout: 433 bytes
->>>
-connection:con-gsm2:UUID-con-gsm2-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
-ipv4:auto::: :0::::-1:0::-1:-1:-1:no:no::::0:yes:-1:-1:::0x0:no:yes:-1:-1::-1:0::-1::0
-ipv6:auto::::0::::-1:0::-1:-1:-1:no:no:no:yes:-1:-1:0:0:default:0:auto::::0:yes:-1::0x0:-1:
-serial:5:8:even:1:100
-gsm:no::::0::::0:no::::auto:no::::0:yes:no:no:no:no:no
-proxy:none:no::
-
-<<<
-size: 6567
-location: src/tests/client/test-client.py:test_003()/22
-cmd: $NMCLI con s con-gsm3
-lang: C
-returncode: 0
-stdout: 6434 bytes
->>>
-connection.id: con-gsm3
-connection.uuid: UUID-con-gsm3-REPLACED-REPLACED-REPL
-connection.stable-id: --
-connection.type: gsm
-connection.interface-name: --
-connection.autoconnect: no
-connection.autoconnect-priority: 0
-connection.autoconnect-retries: -1 (default)
-connection.multi-connect: 0 (default)
-connection.auth-retries: -1
-connection.timestamp: 0
-connection.permissions: --
-connection.zone: --
-connection.controller: --
-connection.master: --
-connection.slave-type: --
-connection.port-type: --
-connection.autoconnect-slaves: -1 (default)
-connection.autoconnect-ports: -1 (default)
-connection.down-on-poweroff: -1 (default)
-connection.secondaries: --
-connection.gateway-ping-timeout: 0
-connection.ip-ping-timeout: 0
-connection.ip-ping-addresses: --
-connection.ip-ping-addresses-require-all:-1 (default)
-connection.metered: unknown
-connection.lldp: default
-connection.mdns: -1 (default)
-connection.llmnr: -1 (default)
-connection.dns-over-tls: -1 (default)
-connection.mptcp-flags: 0x0 (default)
-connection.wait-device-timeout: -1
-connection.wait-activation-delay: -1
-ipv4.method: auto
-ipv4.dns: --
-ipv4.dns-search: --
-ipv4.dns-options: ""
-ipv4.dns-priority: 0
-ipv4.addresses: --
-ipv4.gateway: --
-ipv4.routes: --
-ipv4.route-metric: -1
-ipv4.route-table: 0 (unspec)
-ipv4.routing-rules: --
-ipv4.replace-local-rule: -1 (default)
-ipv4.dhcp-send-release: -1 (default)
-ipv4.routed-dns: -1 (default)
-ipv4.ignore-auto-routes: no
-ipv4.ignore-auto-dns: no
-ipv4.dhcp-client-id: --
-ipv4.dhcp-iaid: --
-ipv4.dhcp-dscp: --
-ipv4.dhcp-timeout: 0 (default)
-ipv4.dhcp-send-hostname-deprecated: yes
-ipv4.dhcp-send-hostname: -1 (default)
-ipv4.forwarding: -1 (default)
-ipv4.dhcp-hostname: --
-ipv4.dhcp-fqdn: --
-ipv4.dhcp-hostname-flags: 0x0 (none)
-ipv4.never-default: no
-ipv4.may-fail: yes
-ipv4.required-timeout: -1 (default)
-ipv4.dad-timeout: -1 (default)
-ipv4.dhcp-vendor-class-identifier: --
-ipv4.dhcp-ipv6-only-preferred: -1 (default)
-ipv4.link-local: 0 (default)
-ipv4.dhcp-reject-servers: --
-ipv4.auto-route-ext-gw: -1 (default)
-ipv4.shared-dhcp-range: --
-ipv4.shared-dhcp-lease-time: 0 (default)
-ipv6.method: auto
-ipv6.dns: --
-ipv6.dns-search: --
-ipv6.dns-options: --
-ipv6.dns-priority: 0
-ipv6.addresses: --
-ipv6.gateway: --
-ipv6.routes: --
-ipv6.route-metric: -1
-ipv6.route-table: 0 (unspec)
-ipv6.routing-rules: --
-ipv6.replace-local-rule: -1 (default)
-ipv6.dhcp-send-release: -1 (default)
-ipv6.routed-dns: -1 (default)
-ipv6.ignore-auto-routes: no
-ipv6.ignore-auto-dns: no
-ipv6.never-default: no
-ipv6.may-fail: yes
-ipv6.required-timeout: -1 (default)
-ipv6.ip6-privacy: -1 (default)
-ipv6.temp-valid-lifetime: 0 (default)
-ipv6.temp-preferred-lifetime: 0 (default)
-ipv6.addr-gen-mode: default
-ipv6.ra-timeout: 0 (default)
-ipv6.mtu: auto
-ipv6.dhcp-pd-hint: --
-ipv6.dhcp-duid: --
-ipv6.dhcp-iaid: --
-ipv6.dhcp-timeout: 0 (default)
-ipv6.dhcp-send-hostname-deprecated: yes
-ipv6.dhcp-send-hostname: -1 (default)
-ipv6.dhcp-hostname: --
-ipv6.dhcp-hostname-flags: 0x0 (none)
-ipv6.auto-route-ext-gw: -1 (default)
-ipv6.token: --
-serial.baud: 5
-serial.bits: 8
-serial.parity: even
-serial.stopbits: 1
-serial.send-delay: 100
-gsm.auto-config: no
-gsm.number: --
-gsm.username: --
-gsm.password:
-gsm.password-flags: 0 (none)
-gsm.apn: ""
-gsm.network-id: --
-gsm.pin:
-gsm.pin-flags: 0 (none)
-gsm.home-only: no
-gsm.device-id: --
-gsm.sim-id: --
-gsm.sim-operator-id: --
-gsm.mtu: auto
-gsm.initial-eps-bearer-configure: no
-gsm.initial-eps-bearer-apn: --
-gsm.initial-eps-bearer-username: --
-gsm.initial-eps-bearer-password:
-gsm.initial-eps-bearer-password-flags: 0 (none)
-gsm.initial-eps-bearer-noauth: yes
-gsm.initial-eps-bearer-refuse-eap: no
-gsm.initial-eps-bearer-refuse-pap: no
-gsm.initial-eps-bearer-refuse-chap: no
-gsm.initial-eps-bearer-refuse-mschap: no
-gsm.initial-eps-bearer-refuse-mschapv2: no
-proxy.method: none
-proxy.browser-only: no
-proxy.pac-url: --
-proxy.pac-script: --
-
-<<<
-size: 6610
-location: src/tests/client/test-client.py:test_003()/23
-cmd: $NMCLI con s con-gsm3
-lang: pl_PL.UTF-8
-returncode: 0
-stdout: 6467 bytes
->>>
-connection.id: con-gsm3
-connection.uuid: UUID-con-gsm3-REPLACED-REPLACED-REPL
-connection.stable-id: --
-connection.type: gsm
-connection.interface-name: --
-connection.autoconnect: nie
-connection.autoconnect-priority: 0
-connection.autoconnect-retries: -1 (default)
-connection.multi-connect: 0 (default)
-connection.auth-retries: -1
-connection.timestamp: 0
-connection.permissions: --
-connection.zone: --
-connection.controller: --
-connection.master: --
-connection.slave-type: --
-connection.port-type: --
-connection.autoconnect-slaves: -1 (default)
-connection.autoconnect-ports: -1 (default)
-connection.down-on-poweroff: -1 (default)
-connection.secondaries: --
-connection.gateway-ping-timeout: 0
-connection.ip-ping-timeout: 0
-connection.ip-ping-addresses: --
-connection.ip-ping-addresses-require-all:-1 (default)
-connection.metered: nieznane
-connection.lldp: default
-connection.mdns: -1 (default)
-connection.llmnr: -1 (default)
-connection.dns-over-tls: -1 (default)
-connection.mptcp-flags: 0x0 (default)
-connection.wait-device-timeout: -1
-connection.wait-activation-delay: -1
-ipv4.method: auto
-ipv4.dns: --
-ipv4.dns-search: --
-ipv4.dns-options: ""
-ipv4.dns-priority: 0
-ipv4.addresses: --
-ipv4.gateway: --
-ipv4.routes: --
-ipv4.route-metric: -1
-ipv4.route-table: 0 (unspec)
-ipv4.routing-rules: --
-ipv4.replace-local-rule: -1 (default)
-ipv4.dhcp-send-release: -1 (default)
-ipv4.routed-dns: -1 (default)
-ipv4.ignore-auto-routes: nie
-ipv4.ignore-auto-dns: nie
-ipv4.dhcp-client-id: --
-ipv4.dhcp-iaid: --
-ipv4.dhcp-dscp: --
-ipv4.dhcp-timeout: 0 (default)
-ipv4.dhcp-send-hostname-deprecated: tak
-ipv4.dhcp-send-hostname: -1 (default)
-ipv4.forwarding: -1 (default)
-ipv4.dhcp-hostname: --
-ipv4.dhcp-fqdn: --
-ipv4.dhcp-hostname-flags: 0x0 (none)
-ipv4.never-default: nie
-ipv4.may-fail: tak
-ipv4.required-timeout: -1 (default)
-ipv4.dad-timeout: -1 (default)
-ipv4.dhcp-vendor-class-identifier: --
-ipv4.dhcp-ipv6-only-preferred: -1 (default)
-ipv4.link-local: 0 (default)
-ipv4.dhcp-reject-servers: --
-ipv4.auto-route-ext-gw: -1 (default)
-ipv4.shared-dhcp-range: --
-ipv4.shared-dhcp-lease-time: 0 (default)
-ipv6.method: auto
-ipv6.dns: --
-ipv6.dns-search: --
-ipv6.dns-options: --
-ipv6.dns-priority: 0
-ipv6.addresses: --
-ipv6.gateway: --
-ipv6.routes: --
-ipv6.route-metric: -1
-ipv6.route-table: 0 (unspec)
-ipv6.routing-rules: --
-ipv6.replace-local-rule: -1 (default)
-ipv6.dhcp-send-release: -1 (default)
-ipv6.routed-dns: -1 (default)
-ipv6.ignore-auto-routes: nie
-ipv6.ignore-auto-dns: nie
-ipv6.never-default: nie
-ipv6.may-fail: tak
-ipv6.required-timeout: -1 (default)
-ipv6.ip6-privacy: -1 (default)
-ipv6.temp-valid-lifetime: 0 (default)
-ipv6.temp-preferred-lifetime: 0 (default)
-ipv6.addr-gen-mode: default
-ipv6.ra-timeout: 0 (default)
-ipv6.mtu: automatyczne
-ipv6.dhcp-pd-hint: --
-ipv6.dhcp-duid: --
-ipv6.dhcp-iaid: --
-ipv6.dhcp-timeout: 0 (default)
-ipv6.dhcp-send-hostname-deprecated: tak
-ipv6.dhcp-send-hostname: -1 (default)
-ipv6.dhcp-hostname: --
-ipv6.dhcp-hostname-flags: 0x0 (none)
-ipv6.auto-route-ext-gw: -1 (default)
-ipv6.token: --
-serial.baud: 5
-serial.bits: 8
-serial.parity: even
-serial.stopbits: 1
-serial.send-delay: 100
-gsm.auto-config: nie
-gsm.number: --
-gsm.username: --
-gsm.password:
-gsm.password-flags: 0 (brak)
-gsm.apn: ""
-gsm.network-id: --
-gsm.pin:
-gsm.pin-flags: 0 (brak)
-gsm.home-only: nie
-gsm.device-id: --
-gsm.sim-id: --
-gsm.sim-operator-id: --
-gsm.mtu: automatyczne
-gsm.initial-eps-bearer-configure: nie
-gsm.initial-eps-bearer-apn: --
-gsm.initial-eps-bearer-username: --
-gsm.initial-eps-bearer-password:
-gsm.initial-eps-bearer-password-flags: 0 (brak)
-gsm.initial-eps-bearer-noauth: tak
-gsm.initial-eps-bearer-refuse-eap: nie
-gsm.initial-eps-bearer-refuse-pap: nie
-gsm.initial-eps-bearer-refuse-chap: nie
-gsm.initial-eps-bearer-refuse-mschap: nie
-gsm.initial-eps-bearer-refuse-mschapv2: nie
+gsm.device-uid: --
proxy.method: none
proxy.browser-only: nie
proxy.pac-url: --
@@ -1131,32 +809,360 @@ proxy.pac-script: --
<<<
size: 573
-location: src/tests/client/test-client.py:test_003()/24
-cmd: $NMCLI -g all con s con-gsm3
+location: src/tests/client/test-client.py:test_003()/20
+cmd: $NMCLI -g all con s con-gsm2
lang: C
returncode: 0
stdout: 434 bytes
>>>
-connection:con-gsm3:UUID-con-gsm3-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
+connection:con-gsm2:UUID-con-gsm2-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
ipv4:auto::: :0::::-1:0::-1:-1:-1:no:no::::0:yes:-1:-1:::0x0:no:yes:-1:-1::-1:0::-1::0
ipv6:auto::::0::::-1:0::-1:-1:-1:no:no:no:yes:-1:-1:0:0:default:0:auto::::0:yes:-1::0x0:-1:
serial:5:8:even:1:100
-gsm:no::::0: :::0:no::::auto:no::::0:yes:no:no:no:no:no
+gsm:no::::0::::0:no::::auto:no::::0:yes:no:no:no:no:no:
proxy:none:no::
<<<
size: 583
-location: src/tests/client/test-client.py:test_003()/25
-cmd: $NMCLI -g all con s con-gsm3
+location: src/tests/client/test-client.py:test_003()/21
+cmd: $NMCLI -g all con s con-gsm2
lang: pl_PL.UTF-8
returncode: 0
stdout: 434 bytes
>>>
+connection:con-gsm2:UUID-con-gsm2-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
+ipv4:auto::: :0::::-1:0::-1:-1:-1:no:no::::0:yes:-1:-1:::0x0:no:yes:-1:-1::-1:0::-1::0
+ipv6:auto::::0::::-1:0::-1:-1:-1:no:no:no:yes:-1:-1:0:0:default:0:auto::::0:yes:-1::0x0:-1:
+serial:5:8:even:1:100
+gsm:no::::0::::0:no::::auto:no::::0:yes:no:no:no:no:no:
+proxy:none:no::
+
+<<<
+size: 6610
+location: src/tests/client/test-client.py:test_003()/22
+cmd: $NMCLI con s con-gsm3
+lang: C
+returncode: 0
+stdout: 6477 bytes
+>>>
+connection.id: con-gsm3
+connection.uuid: UUID-con-gsm3-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: gsm
+connection.interface-name: --
+connection.autoconnect: no
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.multi-connect: 0 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.permissions: --
+connection.zone: --
+connection.controller: --
+connection.master: --
+connection.slave-type: --
+connection.port-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.autoconnect-ports: -1 (default)
+connection.down-on-poweroff: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.ip-ping-timeout: 0
+connection.ip-ping-addresses: --
+connection.ip-ping-addresses-require-all:-1 (default)
+connection.metered: unknown
+connection.lldp: default
+connection.mdns: -1 (default)
+connection.llmnr: -1 (default)
+connection.dns-over-tls: -1 (default)
+connection.mptcp-flags: 0x0 (default)
+connection.wait-device-timeout: -1
+connection.wait-activation-delay: -1
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.routing-rules: --
+ipv4.replace-local-rule: -1 (default)
+ipv4.dhcp-send-release: -1 (default)
+ipv4.routed-dns: -1 (default)
+ipv4.ignore-auto-routes: no
+ipv4.ignore-auto-dns: no
+ipv4.dhcp-client-id: --
+ipv4.dhcp-iaid: --
+ipv4.dhcp-dscp: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname-deprecated: yes
+ipv4.dhcp-send-hostname: -1 (default)
+ipv4.forwarding: -1 (default)
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.dhcp-hostname-flags: 0x0 (none)
+ipv4.never-default: no
+ipv4.may-fail: yes
+ipv4.required-timeout: -1 (default)
+ipv4.dad-timeout: -1 (default)
+ipv4.dhcp-vendor-class-identifier: --
+ipv4.dhcp-ipv6-only-preferred: -1 (default)
+ipv4.link-local: 0 (default)
+ipv4.dhcp-reject-servers: --
+ipv4.auto-route-ext-gw: -1 (default)
+ipv4.shared-dhcp-range: --
+ipv4.shared-dhcp-lease-time: 0 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: --
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.routing-rules: --
+ipv6.replace-local-rule: -1 (default)
+ipv6.dhcp-send-release: -1 (default)
+ipv6.routed-dns: -1 (default)
+ipv6.ignore-auto-routes: no
+ipv6.ignore-auto-dns: no
+ipv6.never-default: no
+ipv6.may-fail: yes
+ipv6.required-timeout: -1 (default)
+ipv6.ip6-privacy: -1 (default)
+ipv6.temp-valid-lifetime: 0 (default)
+ipv6.temp-preferred-lifetime: 0 (default)
+ipv6.addr-gen-mode: default
+ipv6.ra-timeout: 0 (default)
+ipv6.mtu: auto
+ipv6.dhcp-pd-hint: --
+ipv6.dhcp-duid: --
+ipv6.dhcp-iaid: --
+ipv6.dhcp-timeout: 0 (default)
+ipv6.dhcp-send-hostname-deprecated: yes
+ipv6.dhcp-send-hostname: -1 (default)
+ipv6.dhcp-hostname: --
+ipv6.dhcp-hostname-flags: 0x0 (none)
+ipv6.auto-route-ext-gw: -1 (default)
+ipv6.token: --
+serial.baud: 5
+serial.bits: 8
+serial.parity: even
+serial.stopbits: 1
+serial.send-delay: 100
+gsm.auto-config: no
+gsm.number: --
+gsm.username: --
+gsm.password:
+gsm.password-flags: 0 (none)
+gsm.apn: ""
+gsm.network-id: --
+gsm.pin:
+gsm.pin-flags: 0 (none)
+gsm.home-only: no
+gsm.device-id: --
+gsm.sim-id: --
+gsm.sim-operator-id: --
+gsm.mtu: auto
+gsm.initial-eps-bearer-configure: no
+gsm.initial-eps-bearer-apn: --
+gsm.initial-eps-bearer-username: --
+gsm.initial-eps-bearer-password:
+gsm.initial-eps-bearer-password-flags: 0 (none)
+gsm.initial-eps-bearer-noauth: yes
+gsm.initial-eps-bearer-refuse-eap: no
+gsm.initial-eps-bearer-refuse-pap: no
+gsm.initial-eps-bearer-refuse-chap: no
+gsm.initial-eps-bearer-refuse-mschap: no
+gsm.initial-eps-bearer-refuse-mschapv2: no
+gsm.device-uid: --
+proxy.method: none
+proxy.browser-only: no
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+size: 6653
+location: src/tests/client/test-client.py:test_003()/23
+cmd: $NMCLI con s con-gsm3
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 6510 bytes
+>>>
+connection.id: con-gsm3
+connection.uuid: UUID-con-gsm3-REPLACED-REPLACED-REPL
+connection.stable-id: --
+connection.type: gsm
+connection.interface-name: --
+connection.autoconnect: nie
+connection.autoconnect-priority: 0
+connection.autoconnect-retries: -1 (default)
+connection.multi-connect: 0 (default)
+connection.auth-retries: -1
+connection.timestamp: 0
+connection.permissions: --
+connection.zone: --
+connection.controller: --
+connection.master: --
+connection.slave-type: --
+connection.port-type: --
+connection.autoconnect-slaves: -1 (default)
+connection.autoconnect-ports: -1 (default)
+connection.down-on-poweroff: -1 (default)
+connection.secondaries: --
+connection.gateway-ping-timeout: 0
+connection.ip-ping-timeout: 0
+connection.ip-ping-addresses: --
+connection.ip-ping-addresses-require-all:-1 (default)
+connection.metered: nieznane
+connection.lldp: default
+connection.mdns: -1 (default)
+connection.llmnr: -1 (default)
+connection.dns-over-tls: -1 (default)
+connection.mptcp-flags: 0x0 (default)
+connection.wait-device-timeout: -1
+connection.wait-activation-delay: -1
+ipv4.method: auto
+ipv4.dns: --
+ipv4.dns-search: --
+ipv4.dns-options: ""
+ipv4.dns-priority: 0
+ipv4.addresses: --
+ipv4.gateway: --
+ipv4.routes: --
+ipv4.route-metric: -1
+ipv4.route-table: 0 (unspec)
+ipv4.routing-rules: --
+ipv4.replace-local-rule: -1 (default)
+ipv4.dhcp-send-release: -1 (default)
+ipv4.routed-dns: -1 (default)
+ipv4.ignore-auto-routes: nie
+ipv4.ignore-auto-dns: nie
+ipv4.dhcp-client-id: --
+ipv4.dhcp-iaid: --
+ipv4.dhcp-dscp: --
+ipv4.dhcp-timeout: 0 (default)
+ipv4.dhcp-send-hostname-deprecated: tak
+ipv4.dhcp-send-hostname: -1 (default)
+ipv4.forwarding: -1 (default)
+ipv4.dhcp-hostname: --
+ipv4.dhcp-fqdn: --
+ipv4.dhcp-hostname-flags: 0x0 (none)
+ipv4.never-default: nie
+ipv4.may-fail: tak
+ipv4.required-timeout: -1 (default)
+ipv4.dad-timeout: -1 (default)
+ipv4.dhcp-vendor-class-identifier: --
+ipv4.dhcp-ipv6-only-preferred: -1 (default)
+ipv4.link-local: 0 (default)
+ipv4.dhcp-reject-servers: --
+ipv4.auto-route-ext-gw: -1 (default)
+ipv4.shared-dhcp-range: --
+ipv4.shared-dhcp-lease-time: 0 (default)
+ipv6.method: auto
+ipv6.dns: --
+ipv6.dns-search: --
+ipv6.dns-options: --
+ipv6.dns-priority: 0
+ipv6.addresses: --
+ipv6.gateway: --
+ipv6.routes: --
+ipv6.route-metric: -1
+ipv6.route-table: 0 (unspec)
+ipv6.routing-rules: --
+ipv6.replace-local-rule: -1 (default)
+ipv6.dhcp-send-release: -1 (default)
+ipv6.routed-dns: -1 (default)
+ipv6.ignore-auto-routes: nie
+ipv6.ignore-auto-dns: nie
+ipv6.never-default: nie
+ipv6.may-fail: tak
+ipv6.required-timeout: -1 (default)
+ipv6.ip6-privacy: -1 (default)
+ipv6.temp-valid-lifetime: 0 (default)
+ipv6.temp-preferred-lifetime: 0 (default)
+ipv6.addr-gen-mode: default
+ipv6.ra-timeout: 0 (default)
+ipv6.mtu: automatyczne
+ipv6.dhcp-pd-hint: --
+ipv6.dhcp-duid: --
+ipv6.dhcp-iaid: --
+ipv6.dhcp-timeout: 0 (default)
+ipv6.dhcp-send-hostname-deprecated: tak
+ipv6.dhcp-send-hostname: -1 (default)
+ipv6.dhcp-hostname: --
+ipv6.dhcp-hostname-flags: 0x0 (none)
+ipv6.auto-route-ext-gw: -1 (default)
+ipv6.token: --
+serial.baud: 5
+serial.bits: 8
+serial.parity: even
+serial.stopbits: 1
+serial.send-delay: 100
+gsm.auto-config: nie
+gsm.number: --
+gsm.username: --
+gsm.password:
+gsm.password-flags: 0 (brak)
+gsm.apn: ""
+gsm.network-id: --
+gsm.pin:
+gsm.pin-flags: 0 (brak)
+gsm.home-only: nie
+gsm.device-id: --
+gsm.sim-id: --
+gsm.sim-operator-id: --
+gsm.mtu: automatyczne
+gsm.initial-eps-bearer-configure: nie
+gsm.initial-eps-bearer-apn: --
+gsm.initial-eps-bearer-username: --
+gsm.initial-eps-bearer-password:
+gsm.initial-eps-bearer-password-flags: 0 (brak)
+gsm.initial-eps-bearer-noauth: tak
+gsm.initial-eps-bearer-refuse-eap: nie
+gsm.initial-eps-bearer-refuse-pap: nie
+gsm.initial-eps-bearer-refuse-chap: nie
+gsm.initial-eps-bearer-refuse-mschap: nie
+gsm.initial-eps-bearer-refuse-mschapv2: nie
+gsm.device-uid: --
+proxy.method: none
+proxy.browser-only: nie
+proxy.pac-url: --
+proxy.pac-script: --
+
+<<<
+size: 574
+location: src/tests/client/test-client.py:test_003()/24
+cmd: $NMCLI -g all con s con-gsm3
+lang: C
+returncode: 0
+stdout: 435 bytes
+>>>
connection:con-gsm3:UUID-con-gsm3-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
ipv4:auto::: :0::::-1:0::-1:-1:-1:no:no::::0:yes:-1:-1:::0x0:no:yes:-1:-1::-1:0::-1::0
ipv6:auto::::0::::-1:0::-1:-1:-1:no:no:no:yes:-1:-1:0:0:default:0:auto::::0:yes:-1::0x0:-1:
serial:5:8:even:1:100
-gsm:no::::0: :::0:no::::auto:no::::0:yes:no:no:no:no:no
+gsm:no::::0: :::0:no::::auto:no::::0:yes:no:no:no:no:no:
+proxy:none:no::
+
+<<<
+size: 584
+location: src/tests/client/test-client.py:test_003()/25
+cmd: $NMCLI -g all con s con-gsm3
+lang: pl_PL.UTF-8
+returncode: 0
+stdout: 435 bytes
+>>>
+connection:con-gsm3:UUID-con-gsm3-REPLACED-REPLACED-REPL::gsm::no:0:-1:0:-1:0:::::::-1:-1:-1::0:0::-1:unknown:default:-1:-1:-1:0x0:-1:-1
+ipv4:auto::: :0::::-1:0::-1:-1:-1:no:no::::0:yes:-1:-1:::0x0:no:yes:-1:-1::-1:0::-1::0
+ipv6:auto::::0::::-1:0::-1:-1:-1:no:no:no:yes:-1:-1:0:0:default:0:auto::::0:yes:-1::0x0:-1:
+serial:5:8:even:1:100
+gsm:no::::0: :::0:no::::auto:no::::0:yes:no:no:no:no:no:
proxy:none:no::
<<<