mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-15 20:45:32 +00:00
merge: branch 'bg/wwan-mtu-rh1388613'
Add a MTU property to GSM and CDMA connections. https://bugzilla.redhat.com/show_bug.cgi?id=1388613
This commit is contained in:
commit
8b11c976ba
|
@ -490,6 +490,7 @@ NmcOutputField nmc_fields_setting_gsm[] = {
|
|||
SETTING_FIELD (NM_SETTING_GSM_DEVICE_ID), /* 10 */
|
||||
SETTING_FIELD (NM_SETTING_GSM_SIM_ID), /* 11 */
|
||||
SETTING_FIELD (NM_SETTING_GSM_SIM_OPERATOR_ID), /* 12 */
|
||||
SETTING_FIELD (NM_SETTING_GSM_MTU), /* 13 */
|
||||
{NULL, NULL, 0, NULL, FALSE, FALSE, 0}
|
||||
};
|
||||
#define NMC_FIELDS_SETTING_GSM_ALL "name"","\
|
||||
|
@ -504,7 +505,8 @@ NmcOutputField nmc_fields_setting_gsm[] = {
|
|||
NM_SETTING_GSM_HOME_ONLY","\
|
||||
NM_SETTING_GSM_DEVICE_ID","\
|
||||
NM_SETTING_GSM_SIM_ID","\
|
||||
NM_SETTING_GSM_SIM_OPERATOR_ID
|
||||
NM_SETTING_GSM_SIM_OPERATOR_ID","\
|
||||
NM_SETTING_GSM_MTU
|
||||
|
||||
/* Available fields for NM_SETTING_CDMA_SETTING_NAME */
|
||||
NmcOutputField nmc_fields_setting_cdma[] = {
|
||||
|
@ -513,13 +515,15 @@ NmcOutputField nmc_fields_setting_cdma[] = {
|
|||
SETTING_FIELD (NM_SETTING_CDMA_USERNAME), /* 2 */
|
||||
SETTING_FIELD (NM_SETTING_CDMA_PASSWORD), /* 3 */
|
||||
SETTING_FIELD (NM_SETTING_CDMA_PASSWORD_FLAGS), /* 4 */
|
||||
SETTING_FIELD (NM_SETTING_CDMA_MTU), /* 5 */
|
||||
{NULL, NULL, 0, NULL, FALSE, FALSE, 0}
|
||||
};
|
||||
#define NMC_FIELDS_SETTING_CDMA_ALL "name"","\
|
||||
NM_SETTING_CDMA_NUMBER","\
|
||||
NM_SETTING_CDMA_USERNAME","\
|
||||
NM_SETTING_CDMA_PASSWORD","\
|
||||
NM_SETTING_CDMA_PASSWORD_FLAGS
|
||||
NM_SETTING_CDMA_PASSWORD_FLAGS","\
|
||||
NM_SETTING_CDMA_MTU
|
||||
|
||||
/* Available fields for NM_SETTING_BLUETOOTH_SETTING_NAME */
|
||||
NmcOutputField nmc_fields_setting_bluetooth[] = {
|
||||
|
@ -2382,6 +2386,7 @@ DEFINE_GETTER (nmc_property_bridge_port_get_hairpin_mode, NM_SETTING_BRIDGE_PORT
|
|||
DEFINE_GETTER (nmc_property_cdma_get_number, NM_SETTING_CDMA_NUMBER)
|
||||
DEFINE_GETTER (nmc_property_cdma_get_username, NM_SETTING_CDMA_USERNAME)
|
||||
DEFINE_GETTER (nmc_property_cdma_get_password, NM_SETTING_CDMA_PASSWORD)
|
||||
DEFINE_GETTER (nmc_property_cdma_get_mtu, NM_SETTING_CDMA_MTU)
|
||||
|
||||
DEFINE_SECRET_FLAGS_GETTER (nmc_property_cdma_get_password_flags, NM_SETTING_CDMA_PASSWORD_FLAGS)
|
||||
|
||||
|
@ -3218,6 +3223,7 @@ DEFINE_GETTER (nmc_property_gsm_get_home_only, NM_SETTING_GSM_HOME_ONLY)
|
|||
DEFINE_GETTER (nmc_property_gsm_get_device_id, NM_SETTING_GSM_DEVICE_ID)
|
||||
DEFINE_GETTER (nmc_property_gsm_get_sim_id, NM_SETTING_GSM_SIM_ID)
|
||||
DEFINE_GETTER (nmc_property_gsm_get_sim_operator_id, NM_SETTING_GSM_SIM_OPERATOR_ID)
|
||||
DEFINE_GETTER (nmc_property_gsm_get_mtu, NM_SETTING_GSM_MTU)
|
||||
|
||||
static gboolean
|
||||
nmc_property_gsm_set_sim_operator_id (NMSetting *setting, const char *prop, const char *val, GError **error)
|
||||
|
@ -6600,6 +6606,13 @@ nmc_properties_init (void)
|
|||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
nmc_add_prop_funcs (GLUE (CDMA, MTU),
|
||||
nmc_property_cdma_get_mtu,
|
||||
nmc_property_set_uint,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
/* Add editable properties for NM_SETTING_CONNECTION_SETTING_NAME */
|
||||
nmc_add_prop_funcs (GLUE (CONNECTION, ID),
|
||||
|
@ -6928,6 +6941,13 @@ nmc_properties_init (void)
|
|||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
nmc_add_prop_funcs (GLUE (GSM, MTU),
|
||||
nmc_property_gsm_get_mtu,
|
||||
nmc_property_set_uint,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
/* Add editable properties for NM_SETTING_INFINIBAND_SETTING_NAME */
|
||||
nmc_add_prop_funcs (GLUE (INFINIBAND, MAC_ADDRESS),
|
||||
|
@ -9006,6 +9026,7 @@ setting_gsm_details (NMSetting *setting, NmCli *nmc, const char *one_prop, gboo
|
|||
set_val_str (arr, 10, nmc_property_gsm_get_device_id (setting, NMC_PROPERTY_GET_PRETTY));
|
||||
set_val_str (arr, 11, nmc_property_gsm_get_sim_id (setting, NMC_PROPERTY_GET_PRETTY));
|
||||
set_val_str (arr, 12, nmc_property_gsm_get_sim_operator_id (setting, NMC_PROPERTY_GET_PRETTY));
|
||||
set_val_str (arr, 13, nmc_property_gsm_get_mtu (setting, NMC_PROPERTY_GET_PRETTY));
|
||||
g_ptr_array_add (nmc->output_data, arr);
|
||||
|
||||
print_data (nmc); /* Print all data */
|
||||
|
@ -9035,6 +9056,7 @@ setting_cdma_details (NMSetting *setting, NmCli *nmc, const char *one_prop, gbo
|
|||
set_val_str (arr, 2, nmc_property_cdma_get_username (setting, NMC_PROPERTY_GET_PRETTY));
|
||||
set_val_str (arr, 3, GET_SECRET (secrets, setting, nmc_property_cdma_get_password));
|
||||
set_val_str (arr, 4, nmc_property_cdma_get_password_flags (setting, NMC_PROPERTY_GET_PRETTY));
|
||||
set_val_str (arr, 5, nmc_property_cdma_get_mtu (setting, NMC_PROPERTY_GET_PRETTY));
|
||||
g_ptr_array_add (nmc->output_data, arr);
|
||||
|
||||
print_data (nmc); /* Print all data */
|
||||
|
|
|
@ -48,6 +48,7 @@ typedef struct {
|
|||
char *username;
|
||||
char *password;
|
||||
NMSettingSecretFlags password_flags;
|
||||
guint32 mtu;
|
||||
} NMSettingCdmaPrivate;
|
||||
|
||||
enum {
|
||||
|
@ -56,6 +57,7 @@ enum {
|
|||
PROP_USERNAME,
|
||||
PROP_PASSWORD,
|
||||
PROP_PASSWORD_FLAGS,
|
||||
PROP_MTU,
|
||||
|
||||
LAST_PROP
|
||||
};
|
||||
|
@ -129,6 +131,22 @@ nm_setting_cdma_get_password_flags (NMSettingCdma *setting)
|
|||
return NM_SETTING_CDMA_GET_PRIVATE (setting)->password_flags;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_setting_cdma_get_mtu:
|
||||
* @setting: the #NMSettingCdma
|
||||
*
|
||||
* Returns: the #NMSettingCdma:mtu property of the setting
|
||||
*
|
||||
* Since: 1.8
|
||||
**/
|
||||
guint32
|
||||
nm_setting_cdma_get_mtu (NMSettingCdma *setting)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_SETTING_CDMA (setting), 0);
|
||||
|
||||
return NM_SETTING_CDMA_GET_PRIVATE (setting)->mtu;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
verify (NMSetting *setting, NMConnection *connection, GError **error)
|
||||
{
|
||||
|
@ -229,6 +247,9 @@ set_property (GObject *object, guint prop_id,
|
|||
case PROP_PASSWORD_FLAGS:
|
||||
priv->password_flags = g_value_get_flags (value);
|
||||
break;
|
||||
case PROP_MTU:
|
||||
priv->mtu = g_value_get_uint (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
@ -254,6 +275,9 @@ get_property (GObject *object, guint prop_id,
|
|||
case PROP_PASSWORD_FLAGS:
|
||||
g_value_set_flags (value, nm_setting_cdma_get_password_flags (setting));
|
||||
break;
|
||||
case PROP_MTU:
|
||||
g_value_set_uint (value, nm_setting_cdma_get_mtu (setting));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
@ -333,4 +357,22 @@ nm_setting_cdma_class_init (NMSettingCdmaClass *setting_class)
|
|||
NM_SETTING_SECRET_FLAG_NONE,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS));
|
||||
|
||||
/**
|
||||
* NMSettingCdma:mtu:
|
||||
*
|
||||
* If non-zero, only transmit packets of the specified size or smaller,
|
||||
* breaking larger packets up into multiple frames.
|
||||
*
|
||||
* Since: 1.8
|
||||
**/
|
||||
g_object_class_install_property
|
||||
(object_class, PROP_MTU,
|
||||
g_param_spec_uint (NM_SETTING_CDMA_MTU, "", "",
|
||||
0, G_MAXUINT32, 0,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT |
|
||||
NM_SETTING_PARAM_FUZZY_IGNORE |
|
||||
G_PARAM_STATIC_STRINGS));
|
||||
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ G_BEGIN_DECLS
|
|||
#define NM_SETTING_CDMA_USERNAME "username"
|
||||
#define NM_SETTING_CDMA_PASSWORD "password"
|
||||
#define NM_SETTING_CDMA_PASSWORD_FLAGS "password-flags"
|
||||
#define NM_SETTING_CDMA_MTU "mtu"
|
||||
|
||||
/**
|
||||
* NMSettingCdma:
|
||||
|
@ -67,6 +68,9 @@ const char *nm_setting_cdma_get_username (NMSettingCdma *setting);
|
|||
const char *nm_setting_cdma_get_password (NMSettingCdma *setting);
|
||||
NMSettingSecretFlags nm_setting_cdma_get_password_flags (NMSettingCdma *setting);
|
||||
|
||||
NM_AVAILABLE_IN_1_8
|
||||
guint32 nm_setting_cdma_get_mtu (NMSettingCdma *setting);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __NM_SETTING_CDMA_H__ */
|
||||
|
|
|
@ -62,6 +62,7 @@ typedef struct {
|
|||
NMSettingSecretFlags pin_flags;
|
||||
|
||||
gboolean home_only;
|
||||
guint32 mtu;
|
||||
} NMSettingGsmPrivate;
|
||||
|
||||
enum {
|
||||
|
@ -78,6 +79,7 @@ enum {
|
|||
PROP_DEVICE_ID,
|
||||
PROP_SIM_ID,
|
||||
PROP_SIM_OPERATOR_ID,
|
||||
PROP_MTU,
|
||||
|
||||
LAST_PROP
|
||||
};
|
||||
|
@ -269,6 +271,22 @@ nm_setting_gsm_get_sim_operator_id (NMSettingGsm *setting)
|
|||
return NM_SETTING_GSM_GET_PRIVATE (setting)->sim_operator_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_setting_gsm_get_mtu:
|
||||
* @setting: the #NMSettingGsm
|
||||
*
|
||||
* Returns: the #NMSettingGsm:mtu property of the setting
|
||||
*
|
||||
* Since: 1.8
|
||||
**/
|
||||
guint32
|
||||
nm_setting_gsm_get_mtu (NMSettingGsm *setting)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_SETTING_GSM (setting), 0);
|
||||
|
||||
return NM_SETTING_GSM_GET_PRIVATE (setting)->mtu;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
verify (NMSetting *setting, NMConnection *connection, GError **error)
|
||||
{
|
||||
|
@ -524,6 +542,9 @@ set_property (GObject *object, guint prop_id,
|
|||
g_free (priv->sim_operator_id);
|
||||
priv->sim_operator_id = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_MTU:
|
||||
priv->mtu = g_value_get_uint (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
@ -573,6 +594,9 @@ get_property (GObject *object, guint prop_id,
|
|||
case PROP_SIM_OPERATOR_ID:
|
||||
g_value_set_string (value, nm_setting_gsm_get_sim_operator_id (setting));
|
||||
break;
|
||||
case PROP_MTU:
|
||||
g_value_set_uint (value, nm_setting_gsm_get_mtu (setting));
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
@ -780,6 +804,23 @@ nm_setting_gsm_class_init (NMSettingGsmClass *setting_class)
|
|||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS));
|
||||
|
||||
/**
|
||||
* NMSettingGsm:mtu:
|
||||
*
|
||||
* If non-zero, only transmit packets of the specified size or smaller,
|
||||
* breaking larger packets up into multiple frames.
|
||||
*
|
||||
* Since: 1.8
|
||||
**/
|
||||
g_object_class_install_property
|
||||
(object_class, PROP_MTU,
|
||||
g_param_spec_uint (NM_SETTING_GSM_MTU, "", "",
|
||||
0, G_MAXUINT32, 0,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT |
|
||||
NM_SETTING_PARAM_FUZZY_IGNORE |
|
||||
G_PARAM_STATIC_STRINGS));
|
||||
|
||||
/* Ignore incoming deprecated properties */
|
||||
_nm_setting_class_add_dbus_only_property (parent_class, "allowed-bands",
|
||||
G_VARIANT_TYPE_UINT32,
|
||||
|
|
|
@ -52,6 +52,7 @@ G_BEGIN_DECLS
|
|||
#define NM_SETTING_GSM_DEVICE_ID "device-id"
|
||||
#define NM_SETTING_GSM_SIM_ID "sim-id"
|
||||
#define NM_SETTING_GSM_SIM_OPERATOR_ID "sim-operator-id"
|
||||
#define NM_SETTING_GSM_MTU "mtu"
|
||||
|
||||
/**
|
||||
* NMSettingGsm:
|
||||
|
@ -84,6 +85,8 @@ NM_AVAILABLE_IN_1_2
|
|||
const char *nm_setting_gsm_get_sim_id (NMSettingGsm *setting);
|
||||
NM_AVAILABLE_IN_1_2
|
||||
const char *nm_setting_gsm_get_sim_operator_id (NMSettingGsm *setting);
|
||||
NM_AVAILABLE_IN_1_8
|
||||
guint32 nm_setting_gsm_get_mtu (NMSettingGsm *setting);
|
||||
|
||||
NMSettingSecretFlags nm_setting_gsm_get_pin_flags (NMSettingGsm *setting);
|
||||
NMSettingSecretFlags nm_setting_gsm_get_password_flags (NMSettingGsm *setting);
|
||||
|
|
|
@ -1154,4 +1154,6 @@ global:
|
|||
nm_setting_802_1x_get_phase2_ca_cert_password_flags;
|
||||
nm_setting_802_1x_get_phase2_client_cert_password;
|
||||
nm_setting_802_1x_get_phase2_client_cert_password_flags;
|
||||
nm_setting_cdma_get_mtu;
|
||||
nm_setting_gsm_get_mtu;
|
||||
} libnm_1_6_0;
|
||||
|
|
|
@ -1174,6 +1174,7 @@ nm_device_bt_class_init (NMDeviceBtClass *klass)
|
|||
device_class->complete_connection = complete_connection;
|
||||
device_class->is_available = is_available;
|
||||
device_class->component_added = component_added;
|
||||
device_class->get_configured_mtu = nm_modem_get_configured_mtu;
|
||||
|
||||
device_class->state_changed = device_state_changed;
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ global:
|
|||
nm_modem_deactivate_async_finish;
|
||||
nm_modem_device_state_changed;
|
||||
nm_modem_get_capabilities;
|
||||
nm_modem_get_configured_mtu;
|
||||
nm_modem_get_control_port;
|
||||
nm_modem_get_data_port;
|
||||
nm_modem_get_driver;
|
||||
|
|
|
@ -800,6 +800,7 @@ nm_device_modem_class_init (NMDeviceModemClass *mclass)
|
|||
device_class->owns_iface = owns_iface;
|
||||
device_class->is_available = is_available;
|
||||
device_class->get_ip_iface_identifier = get_ip_iface_identifier;
|
||||
device_class->get_configured_mtu = nm_modem_get_configured_mtu;
|
||||
|
||||
device_class->state_changed = device_state_changed;
|
||||
|
||||
|
|
|
@ -772,6 +772,45 @@ nm_modem_stage3_ip6_config_start (NMModem *self,
|
|||
return ret;
|
||||
}
|
||||
|
||||
guint32
|
||||
nm_modem_get_configured_mtu (NMDevice *self, gboolean *out_is_user_config)
|
||||
{
|
||||
NMConnection *connection;
|
||||
NMSetting *setting;
|
||||
gint64 mtu_default;
|
||||
guint mtu = 0;
|
||||
const char *property_name;
|
||||
|
||||
nm_assert (NM_IS_DEVICE (self));
|
||||
nm_assert (out_is_user_config);
|
||||
|
||||
connection = nm_device_get_applied_connection (self);
|
||||
if (!connection)
|
||||
g_return_val_if_reached (0);
|
||||
|
||||
setting = (NMSetting *) nm_connection_get_setting_gsm (connection);
|
||||
if (!setting)
|
||||
setting = (NMSetting *) nm_connection_get_setting_cdma (connection);
|
||||
|
||||
if (setting) {
|
||||
g_object_get (setting, "mtu", &mtu, NULL);
|
||||
if (mtu) {
|
||||
*out_is_user_config = TRUE;
|
||||
return mtu;
|
||||
}
|
||||
|
||||
property_name = NM_IS_SETTING_GSM (setting) ? "gsm.mtu" : "cdma.mtu";
|
||||
mtu_default = nm_device_get_configured_mtu_from_connection_default (self, property_name);
|
||||
if (mtu_default >= 0) {
|
||||
*out_is_user_config = TRUE;
|
||||
return (guint32) mtu_default;
|
||||
}
|
||||
}
|
||||
|
||||
*out_is_user_config = FALSE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
|
|
|
@ -250,4 +250,6 @@ void nm_modem_emit_ip6_config_result (NMModem *self,
|
|||
|
||||
const gchar *nm_modem_ip_type_to_string (NMModemIPType ip_type);
|
||||
|
||||
guint32 nm_modem_get_configured_mtu (NMDevice *self, gboolean *out_is_user_config);
|
||||
|
||||
#endif /* __NETWORKMANAGER_MODEM_H__ */
|
||||
|
|
Loading…
Reference in a new issue