[PATCH 1/2 v2] nas: add Get Operator Name and Operator Name indication
Dan Williams
dcbw at redhat.com
Mon Feb 13 22:16:56 UTC 2017
---
data/qmi-common.json | 97 ++++++++++++++++++++++++++++++++++++++++-
data/qmi-service-nas.json | 41 +++++++++++++++++
src/libqmi-glib/qmi-enums-nas.h | 82 ++++++++++++++++++++++++++++++++++
3 files changed, 219 insertions(+), 1 deletion(-)
diff --git a/data/qmi-common.json b/data/qmi-common.json
index d29f5a0..7b81360 100644
--- a/data/qmi-common.json
+++ b/data/qmi-common.json
@@ -409,5 +409,100 @@
{ "name" : "Guaranteed Uplink Bitrate",
"format" : "guint32" },
{ "name" : "Max Uplink Bitrate",
- "format" : "guint32" } ] }
+ "format" : "guint32" } ] },
+
+ // *********************************************************************************
+ // NAS common TLVs
+
+ { "common-ref" : "NAS Service Provider Name",
+ "name" : "Service Provider Name",
+ "id" : "0x10",
+ "mandatory" : "no",
+ "type" : "TLV",
+ "format" : "sequence",
+ "contents" : [ { "name" : "Name Display Condition",
+ "format" : "guint8",
+ "public-format" : "QmiNasNetworkNameDisplayCondition" },
+ { "name" : "Name",
+ "format" : "string" } ] },
+
+ { "common-ref" : "NAS Operator PLMN List",
+ "name" : "Operator PLMN List",
+ "id" : "0x11",
+ "mandatory" : "no",
+ "type" : "TLV",
+ "format" : "array",
+ "size-prefix-format" : "guint16",
+ "array-element" : { "name" : "Element",
+ "format" : "struct",
+ "contents" : [ { "name" : "MCC",
+ "format" : "string",
+ "fixed-size" : "3" },
+ { "name" : "MNC",
+ "format" : "string",
+ "fixed-size" : "3" },
+ { "name" : "LAC1",
+ "format" : "guint16" },
+ { "name" : "LAC2",
+ "format" : "guint16" },
+ { "name" : "PLMN Name Record Identifier",
+ "format" : "guint8" } ] } },
+
+ { "common-ref" : "NAS Operator PLMN Name",
+ "name" : "Operator PLMN Name",
+ "id" : "0x12",
+ "mandatory" : "no",
+ "type" : "TLV",
+ "format" : "array",
+ "array-element" : { "name" : "Element",
+ "format" : "struct",
+ "contents" : [ { "name" : "Name Encoding",
+ "format" : "guint8",
+ "public-format" : "QmiNasPlmnEncodingScheme" },
+ { "name" : "Short Country Initials",
+ "format" : "guint8",
+ "public-format" : "QmiNasPlmnNameCountryInitials" },
+ { "name" : "Long Name Spare Bits",
+ "format" : "guint8",
+ "public-format" : "QmiNasPlmnNameSpareBits" },
+ { "name" : "Short Name Spare Bits",
+ "format" : "guint8",
+ "public-format" : "QmiNasPlmnNameSpareBits" },
+ { "name" : "Long Name",
+ "format" : "array",
+ "array-element" : { "format" : "guint8" } },
+ { "name" : "Short Name",
+ "format" : "array",
+ "array-element" : { "format" : "guint8" } } ] } },
+
+ { "common-ref" : "NAS Operator String Name",
+ "name" : "Operator String Name",
+ "id" : "0x13",
+ "mandatory" : "no",
+ "type" : "TLV",
+ "format" : "string" },
+
+ { "common-ref" : "NAS Operator NITZ Information",
+ "name" : "Operator NITZ Information",
+ "id" : "0x14",
+ "mandatory" : "no",
+ "type" : "TLV",
+ "format" : "sequence",
+ "contents" : [ { "name" : "Name Encoding",
+ "format" : "guint8",
+ "public-format" : "QmiNasPlmnEncodingScheme" },
+ { "name" : "Short Country Initials",
+ "format" : "guint8",
+ "public-format" : "QmiNasPlmnNameCountryInitials" },
+ { "name" : "Long Name Spare Bits",
+ "format" : "guint8",
+ "public-format" : "QmiNasPlmnNameSpareBits" },
+ { "name" : "Short Name Spare Bits",
+ "format" : "guint8",
+ "public-format" : "QmiNasPlmnNameSpareBits" },
+ { "name" : "Long Name",
+ "format" : "string" },
+ { "name" : "Short Name",
+ "format" : "string" } ] }
+
]
diff --git a/data/qmi-service-nas.json b/data/qmi-service-nas.json
index c4259ec..7f6b809 100644
--- a/data/qmi-service-nas.json
+++ b/data/qmi-service-nas.json
@@ -1493,6 +1493,47 @@
"public-format" : "gboolean" } ] } ] },
// *********************************************************************************
+ { "name" : "Get Operator Name",
+ "type" : "Message",
+ "service" : "NAS",
+ "id" : "0x0039",
+ "version" : "1.3",
+ "since" : "1.18",
+ "output" : [ { "common-ref" : "Operation Result" },
+ { "common-ref" : "NAS Service Provider Name",
+ "since" : "1.18",
+ "prerequisites" : [ { "common-ref" : "Success" } ] },
+ { "common-ref" : "NAS Operator PLMN List",
+ "since" : "1.18",
+ "prerequisites" : [ { "common-ref" : "Success" } ] },
+ { "common-ref" : "NAS Operator PLMN Name",
+ "since" : "1.18",
+ "prerequisites" : [ { "common-ref" : "Success" } ] },
+ { "common-ref" : "NAS Operator String Name",
+ "since" : "1.18",
+ "prerequisites" : [ { "common-ref" : "Success" } ] },
+ { "common-ref" : "NAS Operator NITZ Information",
+ "since" : "1.18",
+ "prerequisites" : [ { "common-ref" : "Success" } ] } ] },
+
+ { "name" : "Operator Name",
+ "type" : "Indication",
+ "service" : "NAS",
+ "id" : "0x003A",
+ "version" : "1.3",
+ "since" : "1.18",
+ "output" : [ { "common-ref" : "NAS Service Provider Name",
+ "since" : "1.18" },
+ { "common-ref" : "NAS Operator PLMN List",
+ "since" : "1.18" },
+ { "common-ref" : "NAS Operator PLMN Name",
+ "since" : "1.18" },
+ { "common-ref" : "NAS Operator String Name",
+ "since" : "1.18" },
+ { "common-ref" : "NAS Operator NITZ Information",
+ "since" : "1.18" } ] },
+
+ // *********************************************************************************
{ "name" : "Get Cell Location Info",
"type" : "Message",
"service" : "NAS",
diff --git a/src/libqmi-glib/qmi-enums-nas.h b/src/libqmi-glib/qmi-enums-nas.h
index 34212da..c728547 100644
--- a/src/libqmi-glib/qmi-enums-nas.h
+++ b/src/libqmi-glib/qmi-enums-nas.h
@@ -1250,4 +1250,86 @@ typedef enum {
* Since: 1.16
*/
+/*****************************************************************************/
+/* Helper enums for the 'QMI NAS Get Operator Name' request/response */
+/**
+ * QmiNasPlmnEncodingScheme:
+ * @QMI_NAS_PLMN_ENCODING_SCHEME_GSM: GSM default alphabet packed encoding (ETSI GSM 03.38)
+ * @QMI_NAS_PLMN_ENCODING_SCHEME_UCS2LE: UCS-2 little-endian
+ *
+ * PLMN name encoding schemes. See 3GPP TS 24.008 section "Network Name
+ * information element".
+ *
+ * Since: 1.18
+ */
+typedef enum {
+ QMI_NAS_PLMN_ENCODING_SCHEME_GSM = 0,
+ QMI_NAS_PLMN_ENCODING_SCHEME_UCS2LE = 1,
+} QmiNasPlmnEncodingScheme;
+
+/**
+ * QmiNasNetworkNameDisplayCondition:
+ * @QMI_NAS_NETWORK_NAME_DISPLAY_CONDITION_DISPLAY_REGISTERED_PLMN_IF_KNOWN_NETWORK: if
+ * set, display of the registered PLMN is required when the registered PLMN is either
+ * the HPLMN or a PLMN in the Service Provider PLMN List (see EFspdi). Otherwise
+ * display of the registered PLMN is not required in this case.
+ * @QMI_NAS_NETWORK_NAME_DISPLAY_CONDITION_DISPLAY_SPN_NOT_REQUIRED_IF_UNKNOWN_NETWORK: if
+ * set, display of the Service Provider Name is not required when registered PLMN is
+ * neither HPLMN nor a PLMN in the service provider PLMN list (see EFspdi). If not set,
+ * SPN display is required in this case.
+ *
+ * Flags used to control display of the PLMN name and Service Provider Name. See
+ * 3GPP TS 51.011 descripton of the EFspn SIM file for more details.
+ *
+ * Since: 1.18
+ */
+typedef enum {
+ QMI_NAS_NETWORK_NAME_DISPLAY_CONDITION_DISPLAY_REGISTERED_PLMN_IF_KNOWN_NETWORK = 1 << 0,
+ QMI_NAS_NETWORK_NAME_DISPLAY_CONDITION_DISPLAY_SPN_NOT_REQUIRED_IF_UNKNOWN_NETWORK = 1 << 1,
+} QmiNasNetworkNameDisplayCondition;
+
+/**
+ * QmiNasPlmnNameCountryInitials:
+ * @QMI_NAS_PLMN_NAME_COUNTRY_INITIALS_DO_NOT_ADD: don't add country initials
+ * @QMI_NAS_PLMN_NAME_COUNTRY_INIITALS_ADD: add country initials
+ * @QMI_NAS_PLMN_NAME_COUNTRY_INIITALS_UNSPECIFIED: unspecified
+ *
+ * PLMN name country initials options. See 3GPP TS 24.008
+ * section "Network Name information element".
+ *
+ * Since: 1.18
+ */
+typedef enum {
+ QMI_NAS_PLMN_NAME_COUNTRY_INITIALS_DO_NOT_ADD = 0,
+ QMI_NAS_PLMN_NAME_COUNTRY_INIITALS_ADD = 1,
+ QMI_NAS_PLMN_NAME_COUNTRY_INIITALS_UNSPECIFIED = 0xFF,
+} QmiNasPlmnNameCountryInitials;
+
+/**
+ * QmiNasPlmnNameSpareBits:
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_UNKNOWN: unknown
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BIT_8: bit 8 is spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_78: bits 7 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_68: bits 6 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_58: bits 5 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_48: bits 4 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_38: bits 3 - 8 are spare
+ * @QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_28: bits 2 - 8 are spare
+ *
+ * PLMN name spare bits in last octet of a network name. See 3GPP TS 24.008
+ * section "Network Name information element".
+ *
+ * Since: 1.18
+ */
+typedef enum {
+ QMI_NAS_PLMN_NAME_SPARE_BITS_UNKNOWN = 0,
+ QMI_NAS_PLMN_NAME_SPARE_BITS_BIT_8 = 1,
+ QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_78 = 2,
+ QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_68 = 3,
+ QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_58 = 4,
+ QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_48 = 5,
+ QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_38 = 6,
+ QMI_NAS_PLMN_NAME_SPARE_BITS_BITS_28 = 7,
+} QmiNasPlmnNameSpareBits;
+
#endif /* _LIBQMI_GLIB_QMI_ENUMS_NAS_H_ */
--
2.9.3
More information about the libqmi-devel
mailing list