diff options
author | Dan Williams <dcbw@redhat.com> | 2012-06-22 12:06:08 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2012-06-22 12:06:08 -0500 |
commit | 0588ffc17ee31a5eedbb5d226e9dd586e374c26e (patch) | |
tree | d1ed0aa0c8b128c7c58cbaea31ccf0ccce1e456a | |
parent | 535ae3a1d6b4737b532629b54d62abde27cde0c0 (diff) |
decode: update with latest QMI enums
Since QC stopped distributing the database files, we can't easily
decode the TLV names unless we start parsing the C headers.
-rw-r--r-- | decode/packet.py | 7 | ||||
-rwxr-xr-x | decode/qmiprotgen.py | 108 | ||||
-rw-r--r-- | decode/qmiprotocol.py | 101 | ||||
-rw-r--r-- | decode/qmux.py | 16 |
4 files changed, 225 insertions, 7 deletions
diff --git a/decode/packet.py b/decode/packet.py index 246bbc56..ab40a720 100644 --- a/decode/packet.py +++ b/decode/packet.py @@ -31,6 +31,8 @@ URBF_GET_STATUS = 5 URBF_CONTROL = 6 URBF_SET_FEATURE = 7 URBF_ABORT_PIPE = 8 +URBF_CLEAR_FEATURE = 9 +URBF_CLASS_INTF = 10 funcs = { "-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:": (URBF_GET_DESC, False, None), @@ -40,7 +42,10 @@ funcs = { "-- URB_FUNCTION_GET_STATUS_FROM_DEVICE:": (URBF_GET_STATUS, False, None), "-- URB_FUNCTION_CONTROL_TRANSFER:": (URBF_CONTROL, True, "C"), "-- URB_FUNCTION_SET_FEATURE_TO_DEVICE:": (URBF_SET_FEATURE, False, None), - "-- URB_FUNCTION_ABORT_PIPE:": (URBF_SET_FEATURE, False, None) + "-- URB_FUNCTION_ABORT_PIPE:": (URBF_ABORT_PIPE, False, None), + "-- URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE:": (URBF_CLEAR_FEATURE, False, None), + "-- URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE:": (URBF_CLEAR_FEATURE, False, None), + "-- URB_FUNCTION_CLASS_INTERFACE:": (URBF_CLASS_INTF, False, None) } def get_urb_info(l): diff --git a/decode/qmiprotgen.py b/decode/qmiprotgen.py index b3692845..3114c86e 100755 --- a/decode/qmiprotgen.py +++ b/decode/qmiprotgen.py @@ -72,6 +72,27 @@ cmdenum = """ eQMI_WDS_SET_AUTOCONNECT = 81, // 81 Set the NDIS autoconnect setting eQMI_WDS_GET_DNS, // 82 Get the DNS setting eQMI_WDS_SET_DNS, // 83 Set the DNS setting + eQMI_WDS_GET_PRE_DORMANCY, // 084 Get the CDMA pre-dormancy settings + eQMI_WDS_SET_CAM_TIMER, // 085 Set the CAM timer + eQMI_WDS_GET_CAM_TIMER, // 086 Get the CAM timer + eQMI_WDS_SET_SCRM, // 087 Set SCRM status + eQMI_WDS_GET_SCRM, // 088 Get SCRM status + eQMI_WDS_SET_RDUD, // 089 Set RDUD status + eQMI_WDS_GET_RDUD, // 090 Get RDUD status + eQMI_WDS_GET_SIPMIP_CALL_TYPE, // 091 Set SIP/MIP call type + eQMI_WDS_SET_PM_PERIOD, // 092 Set EV-DO page monitor period + eQMI_WDS_SET_FORCE_LONG_SLEEP, // 093 Set EV-DO force long sleep feature + eQMI_WDS_GET_PM_PERIOD, // 094 Get EV-DO page monitor period + eQMI_WDS_GET_CALL_THROTTLE, // 095 Get call throttle info + eQMI_WDS_GET_NSAPI, // 096 Get NSAPI + eQMI_WDS_SET_DUN_CTRL_PREF, // 097 Set DUN control preference + eQMI_WDS_GET_DUN_CTRL_INFO, // 098 Set DUN control info + eQMI_WDS_SET_DUN_CTRL_EVENT, // 099 Set DUN control event preference + eQMI_WDS_PENDING_DUN_CTRL, // 100 Control pending DUN call + eQMI_WDS_GET_DATA_SYS = 105, // 105 Get preferred data system + eQMI_WDS_GET_LAST_DATA_STATUS, // 106 Get last data call status + eQMI_WDS_GET_CURR_DATA_SYS, // 107 Get current data systems status + eQMI_WDS_GET_PDN_THROTTLE, // 108 Get PDN throttle info eQMI_DMS_RESET, // 00 Reset DMS service state variables eQMI_DMS_SET_EVENT, // 01 Set connection state report conditions @@ -125,6 +146,8 @@ cmdenum = """ eQMI_DMS_SET_ALT_NET_CFG, // 78 Set alternate network config eQMI_DMS_GET_IMG_DLOAD_MODE, // 79 Get next image download mode eQMI_DMS_SET_IMG_DLOAD_MODE, // 80 Set next image download mod + eQMI_DMS_GET_SW_VERSION, // 81 Get software version + eQMI_DMS_SET_SPC, // 82 Set SPC eQMI_NAS_RESET, // 00 Reset NAS service state variables eQMI_NAS_ABORT, // 01 Abort previously issued NAS command @@ -153,13 +176,44 @@ cmdenum = """ eQMI_NAS_GET_AAA_AUTH_STATUS, // 50 Get AN-AAA authentication status eQMI_NAS_SET_SYS_SELECT_PREF, // 51 Set system selection preference eQMI_NAS_GET_SYS_SELECT_PREF, // 52 Get system selection preference - eQMI_NAS_SYS_SELECT_IND = 52, // 52 System selection pref indication eQMI_NAS_SET_DDTM_PREF = 55, // 55 Set DDTM preference eQMI_NAS_GET_DDTM_PREF, // 56 Get DDTM preference - eQMI_NAS_DDTM_IND = 56, // 56 DDTM preference indication eQMI_NAS_GET_PLMN_MODE = 59, // 59 Get PLMN mode bit from CSP eQMI_NAS_PLMN_MODE_IND, // 60 CSP PLMN mode bit indication eQMI_NAS_GET_PLMN_NAME = 68, // 68 Get operator name for specified network + eQMI_NAS_BIND_SUBS, // 69 Bind client to a specific subscription + eQMI_NAS_MANAGED_ROAMING_IND, // 70 Managed roaming indication + eQMI_NAS_DSB_PREF_IND, // 71 Dual standby preference indication + eQMI_NAS_SUBS_INFO_IND, // 72 Subscription info indication + eQMI_NAS_GET_MODE_PREF, // 73 Get mode preference + eQMI_NAS_SET_DSB_PREF = 75, // 75 Set dual standby preference + eQMI_NAS_NETWORK_TIME_IND, // 76 Network time indication + eQMI_NAS_GET_SYSTEM_INFO, // 77 Get system info + eQMI_NAS_SYSTEM_INFO_IND, // 78 System info indication + eQMI_NAS_GET_SIGNAL_INFO, // 79 Get signal info + eQMI_NAS_CFG_SIGNAL_INFO, // 80 Configure signal info report + eQMI_NAS_SIGNAL_INFO_IND, // 81 Signal info indication + eQMI_NAS_GET_ERROR_RATE, // 82 Get error rate info + eQMI_NAS_ERROR_RATE_IND, // 83 Error rate indication + eQMI_NAS_EVDO_SESSION_IND, // 84 CDMA 1xEV-DO session close indication + eQMI_NAS_EVDO_UATI_IND, // 85 CDMA 1xEV-DO UATI update indication + eQMI_NAS_GET_EVDO_SUBTYPE, // 86 Get CDMA 1xEV-DO protocol subtype + eQMI_NAS_GET_EVDO_COLOR_CODE, // 87 Get CDMA 1xEV-DO color code + eQMI_NAS_GET_ACQ_SYS_MODE, // 88 Get current acquisition system mode + eQMI_NAS_SET_RX_DIVERSITY, // 89 Set the RX diversity + eQMI_NAS_GET_RX_TX_INFO, // 90 Get detailed RX/TX information + eQMI_NAS_UPDATE_AKEY_EXT, // 91 Update the A-KEY (extended) + eQMI_NAS_GET_DSB_PREF, // 92 Get dual standby preference + eQMI_NAS_DETACH_LTE, // 093 Detach the current LTE system + eQMI_NAS_BLOCK_LTE_PLMN, // 094 Block LTE PLMN + eQMI_NAS_UNBLOCK_LTE_PLMN, // 095 Unblock LTE PLMN + eQMI_NAS_RESET_LTE_PLMN_BLK, // 096 Reset LTE PLMN blocking + eQMI_NAS_CUR_PLMN_NAME_IND, // 097 Current PLMN name indication + eQMI_NAS_CONFIG_EMBMS, // 098 Configure eMBMS + eQMI_NAS_GET_EMBMS_STATUS, // 099 Get eMBMS status + eQMI_NAS_EMBMS_STATUS_IND, // 100 eMBMS status indication + eQMI_NAS_GET_CDMA_POS_INFO, // 101 Get CDMA position info + eQMI_NAS_RF_BAND_INFO_IND, // 102 RF band info indication eQMI_WMS_RESET, // 00 Reset WMS service state variables eQMI_WMS_SET_EVENT, // 01 Set new message report conditions @@ -192,6 +246,16 @@ cmdenum = """ eQMI_WMS_MSG_WAITING_IND, // 68 Message waiting indication eQMI_WMS_SET_PRIMARY_CLIENT, // 69 Set client as primary client eQMI_WMS_SMSC_ADDR_IND, // 70 SMSC address indication + eQMI_WMS_INDICATOR_REG, // 71 Register for indicators + eQMI_WMS_GET_TRANSPORT_INFO, // 72 Get transport layer info + eQMI_WMS_TRANSPORT_INFO_IND, // 73 Transport layer info indication + eQMI_WMS_GET_NW_REG_INFO, // 74 Get network registration info + eQMI_WMS_NW_REG_INFO_IND, // 75 Network registration info indication + eQMI_WMS_BIND_SUBSCRIPTION, // 76 Bind client to a subscription + eQMI_WMS_GET_INDICATOR_REG, // 77 Get indicator registration + eQMI_WMS_GET_SMS_PARAMETERS, // 78 Get SMS EF-SMSP parameters + eQMI_WMS_SET_SMS_PARAMETERS, // 79 Set SMS EF-SMSP parameters + eQMI_WMS_CALL_STATUS_IND, // 80 Call status indication eQMI_PDS_RESET, // 00 Reset PDS service state variables eQMI_PDS_SET_EVENT, // 01 Set PDS report conditions @@ -236,12 +300,28 @@ cmdenum = """ eQMI_PDS_GET_GPS_STATE, // 68 Get GPS state eQMI_PDS_GET_METHODS = 80, // 80 Get GPS position methods state eQMI_PDS_SET_METHODS, // 81 Set GPS position methods state + eQMI_PDS_INJECT_SENSOR, // 82 Inject sensor data + eQMI_PDS_INJECT_TIME_SYNC, // 83 Inject time sync data + eQMI_PDS_GET_SENSOR_CFG, // 84 Get sensor config + eQMI_PDS_SET_SENSOR_CFG, // 85 Set sensor config + eQMI_PDS_GET_NAV_CFG, // 86 Get navigation config + eQMI_PDS_SET_NAV_CFG, // 87 Set navigation config + eQMI_PDS_SET_WLAN_BLANK = 90, // 90 Set WLAN blanking + eQMI_PDS_SET_LBS_SC_RPT, // 91 Set LBS security challenge reporting + eQMI_PDS_LBS_SC_IND = 91, // 91 LBS security challenge indication + eQMI_PDS_SET_LBS_SC, // 92 Set LBS security challenge + eQMI_PDS_GET_LBS_ENCRYPT_CFG, // 93 Get LBS security encryption config + eQMI_PDS_SET_LBS_UPDATE_RATE, // 94 Set LBS security update rate + eQMI_PDS_SET_CELLDB_CONTROL, // 95 Set cell database control + eQMI_PDS_READY_IND, // 96 Ready indication eQMI_AUTH_START_EAP = 32, // 32 Start the EAP session eQMI_AUTH_SEND_EAP, // 33 Send and receive EAP packets eQMI_AUTH_EAP_RESULT_IND, // 34 EAP session result indication eQMI_AUTH_GET_EAP_KEYS, // 35 Get the EAP session keys eQMI_AUTH_END_EAP, // 36 End the EAP session + eQMI_AUTH_RUN_AKA, // 37 Runs the AKA algorithm + eQMI_AUTH_AKA_RESULT_IND, // 38 AKA algorithm result indication eQMI_VOICE_INDICATION_REG = 3, // 03 Set indication registration state eQMI_VOICE_CALL_ORIGINATE = 32, // 32 Originate a voice call @@ -279,6 +359,17 @@ cmdenum = """ eQMI_VOICE_SUPS_IND, // 66 Sup service request indication eQMI_VOICE_ASYNC_ORIG_USSD, // 67 Initiate USSD operation eQMI_VOICE_ASYNC_USSD_IND = 67, // 67 USSD request/notification indication + eQMI_VOICE_BIND_SUBSCRIPTION, // 68 Bind subscription + eQMI_VOICE_ALS_SET_LINE_SW, // 69 ALS set line switching + eQMI_VOICE_ALS_SELECT_LINE, // 70 ALS select line + eQMI_VOICE_AOC_RESET_ACM, // 71 AOC reset ACM + eQMI_VOICE_AOC_SET_ACM_MAX, // 72 ACM set ACM maximum + eQMI_VOICE_AOC_GET_CM_INFO, // 73 AOC get call meter info + eQMI_VOICE_AOC_LOW_FUNDS_IND, // 74 AOC low funds indication + eQMI_VOICE_GET_COLP, // 75 Get COLP info + eQMI_VOICE_GET_COLR, // 76 Get COLR info + eQMI_VOICE_GET_CNAP, // 77 Get CNAP info + eQMI_VOICE_MANAGE_IP_CALLS, // 78 Manage VoIP calls eQMI_CAT_RESET, // 00 Reset CAT service state variables eQMI_CAT_SET_EVENT, // 01 Set new message report conditions @@ -286,6 +377,18 @@ cmdenum = """ eQMI_CAT_GET_STATE = 32, // 32 Get service state information eQMI_CAT_SEND_TERMINAL, // 33 Send a terminal response eQMI_CAT_SEND_ENVELOPE, // 34 Send an envelope command + eQMI_CAT_GET_EVENT, // 35 Get last message report + eQMI_CAT_SEND_DECODED_TERMINAL, // 36 Send a decoded terminal response + eQMI_CAT_SEND_DECODED_ENVELOPE, // 37 Send a decoded envelope command + eQMI_CAT_EVENT_CONFIRMATION, // 38 Event confirmation + eQMI_CAT_SCWS_OPEN_CHANNEL, // 39 Open a channel to a SCWS + eQMI_CAT_SCWS_OPEN_IND = 39, // 39 SCWS open channel indication + eQMI_CAT_SCWS_CLOSE_CHANNEL, // 40 Close a channel to a SCWS + eQMI_CAT_SCWS_CLOSE_IND = 40, // 40 SCWS close channel indication + eQMI_CAT_SCWS_SEND_DATA, // 41 Send data to a SCWS + eQMI_CAT_SCWS_SEND_IND = 41, // 41 SCWS send data indication + eQMI_CAT_SCWS_DATA_AVAILABLE, // 42 Indicate that data is available + eQMI_CAT_SCWS_CHANNEL_STATUS, // 43 Provide channel status eQMI_RMS_RESET, // 00 Reset RMS service state variables eQMI_RMS_GET_SMS_WAKE = 32, // 32 Get SMS wake settings @@ -294,7 +397,6 @@ cmdenum = """ eQMI_OMA_RESET, // 00 Reset OMA service state variables eQMI_OMA_SET_EVENT, // 01 Set OMA report conditions eQMI_OMA_EVENT_IND = 1, // 01 OMA report indication - eQMI_OMA_START_SESSION = 32, // 32 Start client inititated session eQMI_OMA_CANCEL_SESSION, // 33 Cancel session eQMI_OMA_GET_SESSION_INFO, // 34 Get session information diff --git a/decode/qmiprotocol.py b/decode/qmiprotocol.py index d9e51c81..1dcb5032 100644 --- a/decode/qmiprotocol.py +++ b/decode/qmiprotocol.py @@ -34,6 +34,8 @@ auth_cmds = { 34: ("EAP_RESULT_IND", None, auth_eap_result_ind_rsp_tlvs, None), 35: ("GET_EAP_KEYS", None, auth_get_eap_keys_rsp_tlvs, None), 36: ("END_EAP", None, auth_end_eap_rsp_tlvs, None), + 37: ("RUN_AKA", None, None, None), + 38: ("AKA_RESULT_IND", None, None, None), } cat_reset_rsp_tlvs = { # 0 2: "CAT/Reset Response/Result Code", @@ -89,6 +91,15 @@ cat_cmds = { 32: ("GET_STATE", None, cat_get_state_rsp_tlvs, None), 33: ("SEND_TERMINAL", cat_send_terminal_req_tlvs, cat_send_terminal_rsp_tlvs, None), 34: ("SEND_ENVELOPE", cat_send_envelope_req_tlvs, cat_send_envelope_rsp_tlvs, None), + 35: ("GET_EVENT", None, None, None), + 36: ("SEND_DECODED_TERMINAL", None, None, None), + 37: ("SEND_DECODED_ENVELOPE", None, None, None), + 38: ("EVENT_CONFIRMATION", None, None, None), + 39: ("SCWS_OPEN_CHANNEL", None, None, None), + 40: ("SCWS_CLOSE_CHANNEL", None, None, None), + 41: ("SCWS_SEND_DATA", None, None, None), + 42: ("SCWS_DATA_AVAILABLE", None, None, None), + 43: ("SCWS_CHANNEL_STATUS", None, None, None), } ctl_set_instance_id_req_tlvs = { # 32 1: "CTL/Set Instance ID Request/Instance", @@ -609,6 +620,8 @@ dms_cmds = { 78: ("SET_ALT_NET_CFG", dms_set_alt_net_cfg_req_tlvs, dms_set_alt_net_cfg_rsp_tlvs, None), 79: ("GET_IMG_DLOAD_MODE", None, dms_get_img_dload_mode_rsp_tlvs, None), 80: ("SET_IMG_DLOAD_MODE", dms_set_img_dload_mode_req_tlvs, dms_set_img_dload_mode_rsp_tlvs, None), + 81: ("GET_SW_VERSION", None, None, None), + 82: ("SET_SPC", None, None, None), } nas_reset_rsp_tlvs = { # 0 2: "NAS/Reset Response/Result Code", @@ -919,6 +932,39 @@ nas_cmds = { 59: ("GET_PLMN_MODE", None, nas_get_plmn_mode_rsp_tlvs, None), 60: ("PLMN_MODE_IND", None, None, nas_plmn_mode_ind_ind_tlvs), 68: ("GET_PLMN_NAME", nas_get_plmn_name_req_tlvs, nas_get_plmn_name_rsp_tlvs, None), + 69: ("BIND_SUBS", None, None, None), + 70: ("MANAGED_ROAMING_IND", None, None, None), + 71: ("DSB_PREF_IND", None, None, None), + 72: ("SUBS_INFO_IND", None, None, None), + 73: ("GET_MODE_PREF", None, None, None), + 75: ("SET_DSB_PREF", None, None, None), + 76: ("NETWORK_TIME_IND", None, None, None), + 77: ("GET_SYSTEM_INFO", None, None, None), + 78: ("SYSTEM_INFO_IND", None, None, None), + 79: ("GET_SIGNAL_INFO", None, None, None), + 80: ("CFG_SIGNAL_INFO", None, None, None), + 81: ("SIGNAL_INFO_IND", None, None, None), + 82: ("GET_ERROR_RATE", None, None, None), + 83: ("ERROR_RATE_IND", None, None, None), + 84: ("EVDO_SESSION_IND", None, None, None), + 85: ("EVDO_UATI_IND", None, None, None), + 86: ("GET_EVDO_SUBTYPE", None, None, None), + 87: ("GET_EVDO_COLOR_CODE", None, None, None), + 88: ("GET_ACQ_SYS_MODE", None, None, None), + 89: ("SET_RX_DIVERSITY", None, None, None), + 90: ("GET_RX_TX_INFO", None, None, None), + 91: ("UPDATE_AKEY_EXT", None, None, None), + 92: ("GET_DSB_PREF", None, None, None), + 93: ("DETACH_LTE", None, None, None), + 94: ("BLOCK_LTE_PLMN", None, None, None), + 95: ("UNBLOCK_LTE_PLMN", None, None, None), + 96: ("RESET_LTE_PLMN_BLK", None, None, None), + 97: ("CUR_PLMN_NAME_IND", None, None, None), + 98: ("CONFIG_EMBMS", None, None, None), + 99: ("GET_EMBMS_STATUS", None, None, None), + 100: ("EMBMS_STATUS_IND", None, None, None), + 101: ("GET_CDMA_POS_INFO", None, None, None), + 102: ("RF_BAND_INFO_IND", None, None, None), } oma_reset_rsp_tlvs = { # 0 2: "OMA/Reset Response/Result Code", @@ -1367,6 +1413,19 @@ pds_cmds = { 68: ("GET_GPS_STATE", None, pds_get_gps_state_rsp_tlvs, None), 80: ("GET_METHODS", None, pds_get_methods_rsp_tlvs, None), 81: ("SET_METHODS", pds_set_methods_req_tlvs, pds_set_methods_rsp_tlvs, None), + 82: ("INJECT_SENSOR", None, None, None), + 83: ("INJECT_TIME_SYNC", None, None, None), + 84: ("GET_SENSOR_CFG", None, None, None), + 85: ("SET_SENSOR_CFG", None, None, None), + 86: ("GET_NAV_CFG", None, None, None), + 87: ("SET_NAV_CFG", None, None, None), + 90: ("SET_WLAN_BLANK", None, None, None), + 91: ("SET_LBS_SC_RPT", None, None, None), + 92: ("SET_LBS_SC", None, None, None), + 93: ("GET_LBS_ENCRYPT_CFG", None, None, None), + 94: ("SET_LBS_UPDATE_RATE", None, None, None), + 95: ("SET_CELLDB_CONTROL", None, None, None), + 96: ("READY_IND", None, None, None), } rms_reset_rsp_tlvs = { # 0 2: "RMS/Reset Response/Result Code", @@ -1471,6 +1530,17 @@ voice_cmds = { 65: ("GET_CONFIG", None, None, None), 66: ("SUPS_IND", None, None, None), 67: ("ASYNC_ORIG_USSD", voice_async_orig_ussd_req_tlvs, voice_async_orig_ussd_rsp_tlvs, voice_async_orig_ussd_ind_tlvs), + 68: ("BIND_SUBSCRIPTION", None, None, None), + 69: ("ALS_SET_LINE_SW", None, None, None), + 70: ("ALS_SELECT_LINE", None, None, None), + 71: ("AOC_RESET_ACM", None, None, None), + 72: ("AOC_SET_ACM_MAX", None, None, None), + 73: ("AOC_GET_CM_INFO", None, None, None), + 74: ("AOC_LOW_FUNDS_IND", None, None, None), + 75: ("GET_COLP", None, None, None), + 76: ("GET_COLR", None, None, None), + 77: ("GET_CNAP", None, None, None), + 78: ("MANAGE_IP_CALLS", None, None, None), } wds_reset_rsp_tlvs = { # 0 2: "WDS/Reset Response/Result Code", @@ -2076,6 +2146,27 @@ wds_cmds = { 81: ("SET_AUTOCONNECT", wds_set_autoconnect_req_tlvs, wds_set_autoconnect_rsp_tlvs, None), 82: ("GET_DNS", None, wds_get_dns_rsp_tlvs, None), 83: ("SET_DNS", wds_set_dns_req_tlvs, wds_set_dns_rsp_tlvs, None), + 84: ("GET_PRE_DORMANCY", None, None, None), + 85: ("SET_CAM_TIMER", None, None, None), + 86: ("GET_CAM_TIMER", None, None, None), + 87: ("SET_SCRM", None, None, None), + 88: ("GET_SCRM", None, None, None), + 89: ("SET_RDUD", None, None, None), + 90: ("GET_RDUD", None, None, None), + 91: ("GET_SIPMIP_CALL_TYPE", None, None, None), + 92: ("SET_PM_PERIOD", None, None, None), + 93: ("SET_FORCE_LONG_SLEEP", None, None, None), + 94: ("GET_PM_PERIOD", None, None, None), + 95: ("GET_CALL_THROTTLE", None, None, None), + 96: ("GET_NSAPI", None, None, None), + 97: ("SET_DUN_CTRL_PREF", None, None, None), + 98: ("GET_DUN_CTRL_INFO", None, None, None), + 99: ("SET_DUN_CTRL_EVENT", None, None, None), + 100: ("PENDING_DUN_CTRL", None, None, None), + 105: ("GET_DATA_SYS", None, None, None), + 106: ("GET_LAST_DATA_STATUS", None, None, None), + 107: ("GET_CURR_DATA_SYS", None, None, None), + 108: ("GET_PDN_THROTTLE", None, None, None), } wms_reset_rsp_tlvs = { # 0 2: "WMS/Reset Response/Result Code", @@ -2334,6 +2425,16 @@ wms_cmds = { 68: ("MSG_WAITING_IND", None, None, None), 69: ("SET_PRIMARY_CLIENT", None, None, None), 70: ("SMSC_ADDR_IND", None, None, wms_smsc_addr_ind_ind_tlvs), + 71: ("INDICATOR_REG", None, None, None), + 72: ("GET_TRANSPORT_INFO", None, None, None), + 73: ("TRANSPORT_INFO_IND", None, None, None), + 74: ("GET_NW_REG_INFO", None, None, None), + 75: ("NW_REG_INFO_IND", None, None, None), + 76: ("BIND_SUBSCRIPTION", None, None, None), + 77: ("GET_INDICATOR_REG", None, None, None), + 78: ("GET_SMS_PARAMETERS", None, None, None), + 79: ("SET_SMS_PARAMETERS", None, None, None), + 80: ("CALL_STATUS_IND", None, None, None), } services = { diff --git a/decode/qmux.py b/decode/qmux.py index 4ff5cad7..b26d5345 100644 --- a/decode/qmux.py +++ b/decode/qmux.py @@ -60,7 +60,11 @@ class Tlv: def show(self, prefix): svc = services[self.service] - cmd = svc[1][self.cmdno] + cmd = [ None, None, None ] + try: + cmd = svc[1][self.cmdno] + except KeyError: + pass tlvlist = None if self.direction == TP_REQUEST: tlvlist = cmd[1] @@ -69,7 +73,7 @@ class Tlv: elif self.direction == TP_INDICATION: tlvlist = cmd[3] else: - raise ValueError("Unknown TLV dir0ection %s" % self.direction) + raise ValueError("Unknown TLV direction %s" % self.direction) tlvname = "!!! UNKNOWN !!!" if self.service == 1 and self.cmdno == 77: # WDS/SET_IP_FAMILY @@ -79,6 +83,8 @@ class Tlv: tlvname = tlvlist[self.id] except KeyError: pass + except TypeError: + pass print prefix + " TLV: 0x%02x (%s)" % (self.id, tlvname) print prefix + " Size: 0x%04x" % self.size @@ -173,7 +179,11 @@ def show(data, prefix, direction): print prefix + " TXN: 0x%04x" % txnid - scmd = qmi_cmd_to_string(cmdno, service) + scmd = "!!! UNKNOWN !!!" + try: + scmd = qmi_cmd_to_string(cmdno, service) + except KeyError: + pass print prefix + " Cmd: 0x%04x (%s)" % (cmdno, scmd) print prefix + " Size: 0x%04x" % size |