From 9732ad5eb9b77488c52f8a0ea88359d1bf19ba8c Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 10 Feb 2017 21:10:41 -0600 Subject: nas: add Get Operator Name and Operator Name indication --- 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 @@ -1492,6 +1492,47 @@ "format" : "guint8", "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", 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_ */ -- cgit v1.2.3