diff options
-rw-r--r-- | cli/mmcli-bearer.c | 1 | ||||
-rw-r--r-- | cli/mmcli-output.c | 1 | ||||
-rw-r--r-- | cli/mmcli-output.h | 1 | ||||
-rw-r--r-- | docs/reference/api/ModemManager-sections.txt | 1 | ||||
-rw-r--r-- | docs/reference/libmm-glib/libmm-glib-sections.txt | 7 | ||||
-rw-r--r-- | include/ModemManager-enums.h | 22 | ||||
-rw-r--r-- | introspection/org.freedesktop.ModemManager1.Bearer.xml | 7 | ||||
-rw-r--r-- | introspection/org.freedesktop.ModemManager1.Modem.xml | 4 | ||||
-rw-r--r-- | libmm-glib/mm-bearer.c | 18 | ||||
-rw-r--r-- | libmm-glib/mm-bearer.h | 16 | ||||
-rw-r--r-- | src/mm-base-bearer.c | 19 |
11 files changed, 80 insertions, 17 deletions
diff --git a/cli/mmcli-bearer.c b/cli/mmcli-bearer.c index bc32cdd8..1752c868 100644 --- a/cli/mmcli-bearer.c +++ b/cli/mmcli-bearer.c @@ -144,6 +144,7 @@ print_bearer_info (MMBearer *bearer) stats = mm_bearer_get_stats (bearer); mmcli_output_string (MMC_F_BEARER_GENERAL_DBUS_PATH, mm_bearer_get_path (bearer)); + mmcli_output_string (MMC_F_BEARER_GENERAL_TYPE, mm_bearer_type_get_string (mm_bearer_get_bearer_type (bearer))); mmcli_output_string (MMC_F_BEARER_STATUS_CONNECTED, mm_bearer_get_connected (bearer) ? "yes" : "no"); mmcli_output_string (MMC_F_BEARER_STATUS_SUSPENDED, mm_bearer_get_suspended (bearer) ? "yes" : "no"); diff --git a/cli/mmcli-output.c b/cli/mmcli-output.c index ac7dc333..79646abc 100644 --- a/cli/mmcli-output.c +++ b/cli/mmcli-output.c @@ -184,6 +184,7 @@ static FieldInfo field_infos[] = { [MMC_F_LOCATION_CDMABS_LAT] = { "modem.location.cdma-bs.latitude", "latitude", MMC_S_MODEM_LOCATION_CDMABS, }, [MMC_F_FIRMWARE_LIST] = { "modem.firmware-list", "list", MMC_S_MODEM_FIRMWARE, }, [MMC_F_BEARER_GENERAL_DBUS_PATH] = { "bearer.dbus-path", "dbus path", MMC_S_BEARER_GENERAL, }, + [MMC_F_BEARER_GENERAL_TYPE] = { "bearer.type", "type", MMC_S_BEARER_GENERAL, }, [MMC_F_BEARER_STATUS_CONNECTED] = { "bearer.status.connected", "connected", MMC_S_BEARER_STATUS, }, [MMC_F_BEARER_STATUS_SUSPENDED] = { "bearer.status.suspended", "suspended", MMC_S_BEARER_STATUS, }, [MMC_F_BEARER_STATUS_INTERFACE] = { "bearer.status.interface", "interface", MMC_S_BEARER_STATUS, }, diff --git a/cli/mmcli-output.h b/cli/mmcli-output.h index 374af66f..9264537c 100644 --- a/cli/mmcli-output.h +++ b/cli/mmcli-output.h @@ -197,6 +197,7 @@ typedef enum { MMC_F_FIRMWARE_LIST, /* Bearer general section */ MMC_F_BEARER_GENERAL_DBUS_PATH, + MMC_F_BEARER_GENERAL_TYPE, /* Bearer status section */ MMC_F_BEARER_STATUS_CONNECTED, MMC_F_BEARER_STATUS_SUSPENDED, diff --git a/docs/reference/api/ModemManager-sections.txt b/docs/reference/api/ModemManager-sections.txt index 6848c6cf..a3fafe6b 100644 --- a/docs/reference/api/ModemManager-sections.txt +++ b/docs/reference/api/ModemManager-sections.txt @@ -10,6 +10,7 @@ MM_CHECK_VERSION <SECTION> <FILE>mm-enums</FILE> <TITLE>Flags and Enumerations</TITLE> +MMBearerType MMBearerIpFamily MMBearerIpMethod MMBearerAllowedAuth diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt index 69e0731d..bd169db6 100644 --- a/docs/reference/libmm-glib/libmm-glib-sections.txt +++ b/docs/reference/libmm-glib/libmm-glib-sections.txt @@ -984,6 +984,7 @@ mm_bearer_dup_interface mm_bearer_get_connected mm_bearer_get_suspended mm_bearer_get_ip_timeout +mm_bearer_get_bearer_type mm_bearer_peek_ipv4_config mm_bearer_get_ipv4_config mm_bearer_peek_ipv6_config @@ -1385,6 +1386,7 @@ mm_call_audio_format_get_type <SECTION> <FILE>mm-enums-types</FILE> <TITLE>Flags and Enumerations</TITLE> +mm_bearer_type_get_string mm_bearer_ip_method_get_string mm_bearer_ip_family_get_string mm_bearer_allowed_auth_build_string_from_mask @@ -1445,6 +1447,7 @@ mm_sms_cdma_service_category_build_string_from_mask mm_modem_location_source_get_string mm_modem_location_assistance_data_type_get_string mm_modem_contacts_storage_build_string_from_mask +mm_bearer_type_build_string_from_mask mm_bearer_ip_family_build_string_from_mask mm_bearer_ip_method_build_string_from_mask mm_bearer_allowed_auth_get_string @@ -1467,6 +1470,7 @@ mm_call_direction_build_string_from_mask mm_call_state_build_string_from_mask mm_call_state_reason_build_string_from_mask <SUBSECTION Standard> +MM_TYPE_BEARER_TYPE MM_TYPE_BEARER_IP_FAMILY MM_TYPE_BEARER_IP_METHOD MM_TYPE_BEARER_ALLOWED_AUTH @@ -1507,6 +1511,7 @@ MM_TYPE_OMA_SESSION_TYPE MM_TYPE_CALL_DIRECTION MM_TYPE_CALL_STATE MM_TYPE_CALL_STATE_REASON +mm_bearer_type_get_type mm_bearer_ip_family_get_type mm_bearer_ip_method_get_type mm_bearer_allowed_auth_get_type @@ -1596,6 +1601,7 @@ mm_gdbus_bearer_get_properties mm_gdbus_bearer_dup_properties mm_gdbus_bearer_get_connected mm_gdbus_bearer_get_suspended +mm_gdbus_bearer_get_bearer_type mm_gdbus_bearer_get_stats mm_gdbus_bearer_dup_stats <SUBSECTION Methods> @@ -1614,6 +1620,7 @@ mm_gdbus_bearer_set_ip6_config mm_gdbus_bearer_set_ip_timeout mm_gdbus_bearer_set_properties mm_gdbus_bearer_set_suspended +mm_gdbus_bearer_set_bearer_type mm_gdbus_bearer_set_stats mm_gdbus_bearer_override_properties mm_gdbus_bearer_complete_connect diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h index cc78cdc9..8f06bb91 100644 --- a/include/ModemManager-enums.h +++ b/include/ModemManager-enums.h @@ -971,6 +971,28 @@ typedef enum { /*< underscore_name=mm_modem_contacts_storage >*/ } MMModemContactsStorage; /** + * MMBearerType: + * @MM_BEARER_TYPE_UNKNOWN: Unknown bearer. + * @MM_BEARER_TYPE_DEFAULT: Primary context (2G/3G) or default bearer (4G), + * defined by the user of the API. + * @MM_BEARER_TYPE_DEFAULT_ATTACH: The initial default bearer established + * during LTE attach procedure, automatically connected as long as the device is + * regitered in the LTE network. + * @MM_BEARER_TYPE_DEDICATED: Secondary context (2G/3G) or dedicated bearer + * (4G), defined by the user of the API. These bearers use the same IP address + * used by a primary context or default bearer and provide a dedicated flow for + * specific traffic with different QoS settings. + * + * Type of context (2G/3G) or bearer (4G). + */ +typedef enum { /*< underscore_name=mm_bearer_type >*/ + MM_BEARER_TYPE_UNKNOWN = 0, + MM_BEARER_TYPE_DEFAULT = 1, + MM_BEARER_TYPE_DEFAULT_ATTACH = 2, + MM_BEARER_TYPE_DEDICATED = 3, +} MMBearerType; + +/** * MMBearerIpMethod: * @MM_BEARER_IP_METHOD_UNKNOWN: Unknown method. * @MM_BEARER_IP_METHOD_PPP: Use PPP to get IP addresses and DNS information. diff --git a/introspection/org.freedesktop.ModemManager1.Bearer.xml b/introspection/org.freedesktop.ModemManager1.Bearer.xml index 2c844abd..e86ef00d 100644 --- a/introspection/org.freedesktop.ModemManager1.Bearer.xml +++ b/introspection/org.freedesktop.ModemManager1.Bearer.xml @@ -280,6 +280,13 @@ <property name="IpTimeout" type="u" access="read" /> <!-- + BearerType: + + A <link linkend="MMBearerType">MMBearerType</link> + --> + <property name="BearerType" type="u" access="read" /> + + <!-- Properties: List of properties used when creating the bearer. diff --git a/introspection/org.freedesktop.ModemManager1.Modem.xml b/introspection/org.freedesktop.ModemManager1.Modem.xml index 54307ae3..37cdb941 100644 --- a/introspection/org.freedesktop.ModemManager1.Modem.xml +++ b/introspection/org.freedesktop.ModemManager1.Modem.xml @@ -259,7 +259,9 @@ <!-- MaxActiveBearers: - The maximum number of active packet data bearers the modem supports. + The maximum number of active + <link linkend="MM-BEARER-TYPE-DEFAULT:CAPS"><constant>MM_BEARER_TYPE_DEFAULT</constant></link> + bearers that may be explicitly enabled by the user. POTS and CDMA2000-only devices support one active bearer, while GSM/UMTS and LTE-capable devices (including LTE/CDMA devices) typically support diff --git a/libmm-glib/mm-bearer.c b/libmm-glib/mm-bearer.c index fc1425bd..1195ae0d 100644 --- a/libmm-glib/mm-bearer.c +++ b/libmm-glib/mm-bearer.c @@ -204,6 +204,24 @@ mm_bearer_get_ip_timeout (MMBearer *self) /*****************************************************************************/ +/** + * mm_bearer_get_bearer_type: + * @self: A #MMBearer. + * + * Gets the type of bearer. + * + * Returns: a #MMBearerType. + */ +MMBearerType +mm_bearer_get_bearer_type (MMBearer *self) +{ + g_return_val_if_fail (MM_IS_BEARER (self), MM_BEARER_TYPE_UNKNOWN); + + return mm_gdbus_bearer_get_bearer_type (MM_GDBUS_BEARER (self)); +} + +/*****************************************************************************/ + static void ipv4_config_updated (MMBearer *self, GParamSpec *pspec) diff --git a/libmm-glib/mm-bearer.h b/libmm-glib/mm-bearer.h index cd081426..900429c5 100644 --- a/libmm-glib/mm-bearer.h +++ b/libmm-glib/mm-bearer.h @@ -67,17 +67,19 @@ struct _MMBearerClass { GType mm_bearer_get_type (void); -const gchar *mm_bearer_get_path (MMBearer *self); -gchar *mm_bearer_dup_path (MMBearer *self); +const gchar *mm_bearer_get_path (MMBearer *self); +gchar *mm_bearer_dup_path (MMBearer *self); -const gchar *mm_bearer_get_interface (MMBearer *self); -gchar *mm_bearer_dup_interface (MMBearer *self); +const gchar *mm_bearer_get_interface (MMBearer *self); +gchar *mm_bearer_dup_interface (MMBearer *self); -gboolean mm_bearer_get_connected (MMBearer *self); +gboolean mm_bearer_get_connected (MMBearer *self); -gboolean mm_bearer_get_suspended (MMBearer *self); +gboolean mm_bearer_get_suspended (MMBearer *self); -guint mm_bearer_get_ip_timeout (MMBearer *self); +guint mm_bearer_get_ip_timeout (MMBearer *self); + +MMBearerType mm_bearer_get_bearer_type (MMBearer *self); void mm_bearer_connect (MMBearer *self, GCancellable *cancellable, diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c index f9a12c83..b2e07e19 100644 --- a/src/mm-base-bearer.c +++ b/src/mm-base-bearer.c @@ -1365,15 +1365,16 @@ mm_base_bearer_init (MMBaseBearer *self) self->priv->default_ip_family = MM_BEARER_IP_FAMILY_IPV4; /* Set defaults */ - mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), NULL); - mm_gdbus_bearer_set_connected (MM_GDBUS_BEARER (self), FALSE); - mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE); - mm_gdbus_bearer_set_properties (MM_GDBUS_BEARER (self), NULL); - mm_gdbus_bearer_set_ip_timeout (MM_GDBUS_BEARER (self), BEARER_IP_TIMEOUT_DEFAULT); - mm_gdbus_bearer_set_ip4_config (MM_GDBUS_BEARER (self), - mm_bearer_ip_config_get_dictionary (NULL)); - mm_gdbus_bearer_set_ip6_config (MM_GDBUS_BEARER (self), - mm_bearer_ip_config_get_dictionary (NULL)); + mm_gdbus_bearer_set_interface (MM_GDBUS_BEARER (self), NULL); + mm_gdbus_bearer_set_connected (MM_GDBUS_BEARER (self), FALSE); + mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE); + mm_gdbus_bearer_set_properties (MM_GDBUS_BEARER (self), NULL); + mm_gdbus_bearer_set_ip_timeout (MM_GDBUS_BEARER (self), BEARER_IP_TIMEOUT_DEFAULT); + mm_gdbus_bearer_set_bearer_type (MM_GDBUS_BEARER (self), MM_BEARER_TYPE_DEFAULT); + mm_gdbus_bearer_set_ip4_config (MM_GDBUS_BEARER (self), + mm_bearer_ip_config_get_dictionary (NULL)); + mm_gdbus_bearer_set_ip6_config (MM_GDBUS_BEARER (self), + mm_bearer_ip_config_get_dictionary (NULL)); } static void |