MC7750 libqmi

Dan Williams dcbw at redhat.com
Tue Nov 5 11:02:15 PST 2013


On Tue, 2013-11-05 at 09:36 +0100, Aleksander Morgado wrote:
> Can you re-run the previous command passing an additional "--verbose",
> and send back the results? I'd like to get rid of those 'null' values
> reported.

--get-system-info; note the odd MCC/MNC.  No clue about that.

>>>>>> TLV:
>>>>>>   type       = "CDMA System Info" (0x15)
>>>>>>   length     = 42
>>>>>>   value      =
01:03:01:03:01:40:01:00:01:01:01:06:01:06:01:00:01:1A:00:01:00:01:31:0E:60:DE:09:00:04:81:EB:FF:01:16:00:01:33:FF:FF:37:FF:FF
>>>>>>   translated = [ domain_valid = 'yes' domain = 'cs-ps'
service_capability_valid = 'yes' service_capability = 'cs-ps'
roaming_status_valid = 'yes' roaming_status = '(null)' forbidden_valid =
'yes' forbidden = 'no' prl_match_valid = 'yes' prl_match = 'yes'
p_rev_valid = 'yes' p_rev = '6' base_station_p_rev_valid = 'yes'
base_station_p_rev = '6' concurrent_service_support_valid = 'yes'
concurrent_service_support = 'no' cdma_system_id_valid = 'yes' sid =
'26' nid = '1' base_station_info_valid = 'yes' base_station_id = '3633'
base_station_latitude = '646752' base_station_longitude = '-1343228'
packet_zone_valid = 'yes' packet_zone = '22' network_id_valid = 'yes'
mcc = '3��' mnc = '7��' ]

--get-serving-system, a couple oddities here:

>>>>>> TLV:
>>>>>>   type       = "CDMA System Info" (0x22)
>>>>>>   length     = 3
>>>>>>   value      = 6E:04:8A
>>>>>>   translated = [ mcc = '1134' imsi_11_12 = '138' ]

The MCC and IMSI_11_12 *may* be encoded using the weird BCD encoding
scheme mentioned in the standards, but I didn't have time to dig into
that.

>>>>>>   type       = "Default Roaming Indicator" (0x16)
>>>>>>   length     = 1
>>>>>>   value      = 44
>>>>>>   translated = (null)

Probably an ERI value; 0x44 = 68 which is "not roaming" in this ERI.

>>>>>>   type       = "Roaming Indicator List" (0x15)
>>>>>>   length     = 5
>>>>>>   value      = 02:01:40:02:40
>>>>>>   translated = { [0] = '[ radio_interface = 'cdma-1x'
roaming_indicator = '(null)' ] ' [1] = '[ radio_interface =
'cdma-1xevdo' roaming_indicator = '(null)' ] '}

Both ERIs are 0x40 here, which is 64, which is also not roaming in this
this ERI.

>>>>>> TLV:
>>>>>>   type       = "Roaming Indicator" (0x10)
>>>>>>   length     = 1
>>>>>>   value      = 40
>>>>>>   translated = (null)

Same story here.

The JSON lists the Roaming Indicator items as
QmiNasRoamingIndicatorStatus, which is fine, except that when the values
are ERI values outside the bounds of that enum (which only defines two
members) then it'll fail the conversion to a string and show NULL.  But
I believe the values here come from the ERI/PRL, and thus we have no way
of mapping them to a string unless we do something like defining all 256
values and name them things like: 

   QMI_NAS_ROAMING_INDICATOR_STATUS_ON  = 0,
   QMI_NAS_ROAMING_INDICATOR_STATUS_OFF = 1,
   QMI_NAS_ROAMING_INDICATOR_STATUS_FLASHING = 2,
   <etc>
   QMI_NAS_ROAMING_INDICATOR_STATUS_BANNER_OFF = 12,
   QMI_NAS_ROAMING_INDICATOR_STATUS_STD_13 = 13,
   ...
   QMI_NAS_ROAMING_INDICATOR_STATUS_STD_63 = 63,
   QMI_NAS_ROAMING_INDICATOR_STATUS_VENDOR_64 = 64,
   ...
   QMI_NAS_ROAMING_INDICATOR_STATUS_RESERVED_128 = 128,
   ...
   QMI_NAS_ROAMING_INDICATOR_STATUS_RESERVED_255 = 255,
};

http://www.3gpp2.org/public_html/specs/C.R1001-0_v1.0.pdf  table 8.1

Dan




More information about the libqmi-devel mailing list