[PATCH 1/2 v2] nas: add Get Operator Name and Operator Name indication

Dan Williams dcbw at redhat.com
Tue Feb 14 17:01:10 UTC 2017


On Tue, 2017-02-14 at 00:45 +0100, Aleksander Morgado wrote:
> On Mon, Feb 13, 2017 at 11:16 PM, Dan Williams <dcbw at redhat.com>
> wrote:
> > ---
> >  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(-)
> > 
> 
> LGTM

Pushed to git master.

Dan

> > 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_REQUIRE
> > D_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
> > _______________________________________________
> > libqmi-devel mailing list
> > libqmi-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/libqmi-devel
> 
> 
> 


More information about the libqmi-devel mailing list