diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2022-12-06 22:48:07 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksandermj@chromium.org> | 2022-12-06 22:49:22 +0000 |
commit | 53c5e23bba987fbb370cfe7ed1cc9689366470ae (patch) | |
tree | b349a024d3d007a715c8da7a9140d307eecc090b | |
parent | a4b6b33cf4f2c143894687066f7867ff2971b8bf (diff) |
decode: remove legacy tool
-rwxr-xr-x | decode/analyze.py | 179 | ||||
-rwxr-xr-x | decode/decode.py | 57 | ||||
-rw-r--r-- | decode/defs.py | 20 | ||||
-rw-r--r-- | decode/packet.py | 232 | ||||
-rwxr-xr-x | decode/qmiprotgen.py | 596 | ||||
-rw-r--r-- | decode/qmiprotocol.py | 2453 | ||||
-rw-r--r-- | decode/qmux.py | 205 | ||||
-rw-r--r-- | decode/wmc.py | 410 | ||||
-rwxr-xr-x | decode/xml2ascii.py | 82 |
9 files changed, 0 insertions, 4234 deletions
diff --git a/decode/analyze.py b/decode/analyze.py deleted file mode 100755 index c72a1d32..00000000 --- a/decode/analyze.py +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/python -# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details: -# -# Copyright (C) 2011 Red Hat, Inc. -# -# ---- Dumps UsbSnoopy XML captures of WMC traffic - -from xml.sax import saxutils -from xml.sax import handler -import binascii -import string - -packets = [] -counts = {} - -TO_UNKNOWN = 0 -TO_MODEM = 1 -TO_HOST = 2 - -class Packet: - def __init__(self, data, idx): - if len(data) % 2 != 0: - raise Exception("bad data length") - - self.idx = idx - self.type = TO_UNKNOWN - if data[:14] == "41542a574d433d": - # host->device: remove the AT*WMC= bits and newline at the end - data = data[14:] - if data[len(data) - 2:] == "0d": - data = data[:len(data) - 2] - self.type = TO_MODEM -# elif data[len(data) - 6:] == "30307e": -# # device->host: remove HDLC terminator and fake CRC -# data = data[:len(data) - 6] -# self.type = TO_HOST - elif data[len(data) - 2:] == "7e": - # device->host: remove HDLC terminator and CRC - data = data[:len(data) - 6] - self.type = TO_HOST - - self.data = binascii.unhexlify(data) - self.four = data[:4] - - # PPP-unescape TO_MODEM data - escape = False - new_data = "" - for i in self.data: - if ord(i) == 0x7D: - escape = True - elif escape == True: - new_data += chr(ord(i) ^ 0x20) - escape = False - else: - new_data += i - self.data = new_data - - def add_ascii(self, line, items): - if len(line) < 53: - line += " " * (53 - len(line)) - for i in items: - if chr(i) in string.printable and i >= 32: - line += chr(i) - else: - line += "." - return line - - def show(self): - line = "*" - if self.type == TO_MODEM: - line = ">" - elif self.type == TO_HOST: - line = "<" - - offset = 0 - items = [] - printed = False - for i in self.data: - printed = False - line += " %02x" % ord(i) - items.append(ord(i)) - if len(items) % 16 == 0: - print "%03d: %s" % (offset, self.add_ascii(line, items)) - line = " " - items = [] - printed = True - offset += 16 - if not printed: - print "%03d: %s" % (offset, self.add_ascii(line, items)) - print "" - -class FindPackets(handler.ContentHandler): - def __init__(self): - self.inFunction = False - self.inPayload = False - self.ignore = False - self.inTimestamp = False - self.timestamp = None - self.packet = None - self.idx = 1 - - def startElement(self, name, attrs): - if name == "function": - self.inFunction = True - elif name == "payloadbytes": - self.inPayload = True - elif name == "timestamp": - self.inTimestamp = True - - def characters(self, ch): - if self.ignore: - return - - stripped = ch.strip() - if self.inFunction and ch != "BULK_OR_INTERRUPT_TRANSFER": - self.ignore = True - return - elif self.inTimestamp: - self.timestamp = stripped - elif self.inPayload and len(stripped) > 0: - if self.packet == None: - self.packet = stripped - else: - self.packet += stripped - - def endElement(self, name): - if name == "function": - self.inFunction = False - elif name == "payloadbytes": - self.inPayload = False - elif name == "payload": - if self.packet: - p = Packet(self.packet, self.idx) - self.idx = self.idx + 1 - packets.append(p) - self.packet = None - - self.ignore = False - self.timestamp = None - elif name == "timestamp": - self.inTimestamp = False - - -from xml.sax import make_parser -from xml.sax import parse -import sys - -if __name__ == "__main__": - dh = FindPackets() - parse(sys.argv[1], dh) - - cmds = {} - for p in packets: - if cmds.has_key(p.four): - cmds[p.four].append(p) - else: - cmds[p.four] = [p] - if len(sys.argv) > 2: - if p.four == sys.argv[2]: - p.show() - else: - p.show() - - print "" - print "cmd #tot" - for k in cmds.keys(): - print "%s (%d)" % (k, len(cmds[k])) - print "" - diff --git a/decode/decode.py b/decode/decode.py deleted file mode 100755 index 7196f9de..00000000 --- a/decode/decode.py +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/python -# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details: -# -# Copyright (C) 2011 Red Hat, Inc. -# - -import binascii -import string -import sys -import defs -from packet import Packet - -packets = [] -control = None -transfer = None - -def get_protocol(arg): - return arg[arg.index("=") + 1:] - -if __name__ == "__main__": - i = 1 - if sys.argv[i].startswith("--control="): - control = get_protocol(sys.argv[i]) - i = i + 1 - if sys.argv[i].startswith("--transfer="): - transfer = get_protocol(sys.argv[i]) - i = i + 1 - - path = sys.argv[i] - f = open(path, 'r') - lines = f.readlines() - f.close() - - packet = None - for l in lines: - if packet: - done = packet.add_line(l) - if done: - packets.append(packet) - packet = None - else: - packet = Packet(l, control, transfer) - if packet.direction == defs.TO_UNKNOWN: - packet = None - - for p in packets: - p.show() diff --git a/decode/defs.py b/decode/defs.py deleted file mode 100644 index 847b67f4..00000000 --- a/decode/defs.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/python -# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details: -# -# Copyright (C) 2011 Red Hat, Inc. -# - -TO_UNKNOWN = 0 -TO_MODEM = 1 -TO_HOST = 2 - diff --git a/decode/packet.py b/decode/packet.py deleted file mode 100644 index 97daee1e..00000000 --- a/decode/packet.py +++ /dev/null @@ -1,232 +0,0 @@ -#!/usr/bin/python -# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details: -# -# Copyright (C) 2011 Red Hat, Inc. -# - -import binascii -import string -import sys - -import defs - -import wmc - -URBF_UNKNOWN = 0 -URBF_GET_DESC = 1 -URBF_SEL_CONF = 2 -URBF_RESET_PIPE = 3 -URBF_TRANSFER = 4 -URBF_GET_STATUS = 5 -URBF_CONTROL = 6 -URBF_SET_FEATURE = 7 -URBF_ABORT_PIPE = 8 -URBF_CLASS_IFACE = 9 -URBF_CLEAR_FEATURE = 10 -URBF_VENDOR_DEVICE = 11 - -funcs = { - "-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:": (URBF_GET_DESC, False, None), - "-- URB_FUNCTION_SELECT_CONFIGURATION:": (URBF_SEL_CONF, False, None), - "-- URB_FUNCTION_RESET_PIPE:": (URBF_RESET_PIPE, False, None), - "-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:": (URBF_TRANSFER, True, "T"), - "-- 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_CLASS_INTERFACE:": (URBF_CLASS_IFACE, True, "C"), - "-- URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE:": (URBF_CLEAR_FEATURE, False, None), - "-- URB_FUNCTION_VENDOR_DEVICE:": (URBF_VENDOR_DEVICE, False, None) -} - -def get_urb_info(l): - direction = defs.TO_UNKNOWN - - tsstr = "" - if l[0] == '[': - idx = l.find(" ms]") - if idx <= 0: - return (defs.TO_UNKNOWN, -1, -1) - tsstr = l[1:idx] - - idx = string.find(l, ">>> URB ") - if idx >= 0: - direction = defs.TO_MODEM - else: - idx = string.find(l, "<<< URB ") - if idx >= 0: - direction = defs.TO_HOST - else: - return (defs.TO_UNKNOWN, -1, -1) - - # Yay, valid packet, grab URB number - numstr = "" - for c in l[idx + 9:]: - if c.isdigit(): - numstr = numstr + c - else: - break - - if not len(numstr): - raise Exception("Failed to get URB number ('%s')" % l) - - return (direction, int(numstr), int(tsstr)) - -class Packet: - def __init__(self, line, control_prot, transfer_prot): - self.direction = defs.TO_UNKNOWN - self.func = URBF_UNKNOWN - self.control_prot = control_prot - self.transfer_prot = transfer_prot - self.data = None - self.urbnum = 0 - self.timestamp = 0 - self.protocol = None - self.has_data = False - self.typecode = None - self.lines = [] - self.in_data = False - self.data_complete = False - self.tmpdata = "" - self.fcomplete = None - self.funpack = None - self.fshow = None - - # Check if this is actually a packet - self.lines.append(line) - (self.direction, self.urbnum, self.timestamp) = get_urb_info(line) - - def add_line(self, line): - line = line.strip() - if not len(line): - return - self.lines.append(line) - - if line[0] == '[': - # Usually the end of a packet, but if we need data from the next - # packet keep going - if self.has_data and not self.data_complete: - return False - return True - - if not self.typecode: - # haven't gotten our "-- URB_FUNCTION_xxxx" line yet - if line.find("-- URB_FUNCTION_") >= 0: - try: - (self.func, self.has_data, self.typecode) = funcs[line] - except KeyError: - raise KeyError("URB function %s not handled" % line) - - if self.func == URBF_TRANSFER: - self.protocol = self.transfer_prot - elif self.func == URBF_CONTROL or self.func == URBF_CLASS_IFACE: - self.protocol = self.control_prot - - if self.protocol: - exec "from %s import get_funcs" % self.protocol - (self.fcomplete, self.funpack, self.fshow) = get_funcs() - else: - return False # not done; need more lines - - if line.find("TransferBufferMDL = ") >= 0 and self.has_data: - self.in_data = True - return False # not done; need more lines - - if line.find("UrbLink = ") >= 0 or line.find("UrbLink =") >= 0: - if self.in_data: - self.in_data = False - - # special case: zero-length data means complete - if len(self.tmpdata) == 0: - self.data_complete = True - return True - - if self.fcomplete: - self.data_complete = self.fcomplete(self.tmpdata, self.direction) - if self.data_complete: - self.data = self.funpack(self.tmpdata, self.direction) - return self.data_complete - else: - self.data = binascii.unhexlify(self.tmpdata) - self.data_complete = True - return False # not done; need more lines - - if self.in_data: - if len(line) and not "no data supplied" in line: - d = line[line.index(": ") + 2:] # get data alone - self.tmpdata += d.replace(" ", "") - - return False # not done; need more lines - - def add_ascii(self, line, items): - if len(line) < 53: - line += " " * (53 - len(line)) - for i in items: - if chr(i) in string.printable and i >= 32: - line += chr(i) - else: - line += "." - return line - - def show(self): - if not self.has_data or not self.data: - return - - # Ignore URBF_TRANSFER packets that appear to be returning SetupPacket data - if self.data == chr(0xa1) + chr(0x01) + chr(0x00) + chr(0x00) + chr(0x05) + chr(0x00) + chr(0x00) + chr(0x00): - return - - offset = 0 - items = [] - printed = False - line = "" - - prefix = "*" - if self.direction == defs.TO_MODEM: - prefix = ">" - elif self.direction == defs.TO_HOST: - prefix = "<" - - if self.typecode: - prefix = prefix + " " + self.typecode + " " - else: - prefix = prefix + " " - - prefix_printed = False - for i in self.data: - printed = False - line += " %02x" % ord(i) - items.append(ord(i)) - if len(items) % 16 == 0: - output = "%04d: %s" % (offset, self.add_ascii(line, items)) - if offset == 0: - print prefix + output - else: - print " " + output - line = "" - items = [] - printed = True - offset += 16 - prefix_printed = True - - if not printed: - output = "%04d: %s" % (offset, self.add_ascii(line, items)) - if prefix_printed: - print " " + output - else: - print prefix + output - print "" - - if self.fshow: - self.fshow(self.data, " " * 8, self.direction) - diff --git a/decode/qmiprotgen.py b/decode/qmiprotgen.py deleted file mode 100755 index 3114c86e..00000000 --- a/decode/qmiprotgen.py +++ /dev/null @@ -1,596 +0,0 @@ -#!/bin/env python -# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- - -# Takes an Entity.txt and generates the Python dicts defining the commands -# and the TLVs associated with those commands - -import sys - -TP_REQUEST = 0 -TP_RESPONSE = 1 -TP_INDICATION = 2 - -cmdenum = """ - eQMI_CTL_SET_INSTANCE_ID = 32, // 32 Set the unique link instance ID - eQMI_CTL_GET_VERSION_INFO, // 33 Get supported service version info - eQMI_CTL_GET_CLIENT_ID, // 34 Get a unique client ID - eQMI_CTL_RELEASE_CLIENT_ID, // 35 Release the unique client ID - eQMI_CTL_REVOKE_CLIENT_ID_IND, // 36 Indication of client ID revocation - eQMI_CTL_INVALID_CLIENT_ID, // 37 Indication of invalid client ID - eQMI_CTL_SET_DATA_FORMAT, // 38 Set host driver data format - eQMI_CTL_SYNC, // 39 Synchronize client/server - eQMI_CTL_SYNC_IND = 39, // 39 Synchronize indication - eQMI_CTL_SET_EVENT, // 40 Set event report conditions - eQMI_CTL_EVENT_IND = 40, // 40 Event report indication - eQMI_CTL_SET_POWER_SAVE_CFG, // 41 Set power save config - eQMI_CTL_SET_POWER_SAVE_MODE, // 42 Set power save mode - eQMI_CTL_GET_POWER_SAVE_MODE, // 43 Get power save mode - - eQMI_WDS_RESET, // 00 Reset WDS service state variables - eQMI_WDS_SET_EVENT, // 01 Set connection state report conditions - eQMI_WDS_EVENT_IND = 1, // 01 Connection state report indication - eQMI_WDS_ABORT, // 02 Abort previously issued WDS command - eQMI_WDS_START_NET = 32, // 32 Start WDS network interface - eQMI_WDS_STOP_NET, // 33 Stop WDS network interface - eQMI_WDS_GET_PKT_STATUS, // 34 Get packet data connection status - eQMI_WDS_PKT_STATUS_IND = 34, // 34 Packet data connection status indication - eQMI_WDS_GET_RATES, // 35 Get current bit rates of the connection - eQMI_WDS_GET_STATISTICS, // 36 Get the packet data transfer statistics - eQMI_WDS_G0_DORMANT, // 37 Go dormant - eQMI_WDS_G0_ACTIVE, // 38 Go active - eQMI_WDS_CREATE_PROFILE, // 39 Create profile with specified settings - eQMI_WDS_MODIFY_PROFILE, // 40 Modify profile with specified settings - eQMI_WDS_DELETE_PROFILE, // 41 Delete the specified profile - eQMI_WDS_GET_PROFILE_LIST, // 42 Get all profiles - eQMI_WDS_GET_PROFILE, // 43 Get the specified profile - eQMI_WDS_GET_DEFAULTS, // 44 Get the default data session settings - eQMI_WDS_GET_SETTINGS, // 45 Get the runtime data session settings - eQMI_WDS_SET_MIP, // 46 Get the mobile IP setting - eQMI_WDS_GET_MIP, // 47 Set the mobile IP setting - eQMI_WDS_GET_DORMANCY, // 48 Get the dormancy status - eQMI_WDS_GET_AUTOCONNECT = 52, // 52 Get the NDIS autoconnect setting - eQMI_WDS_GET_DURATION, // 53 Get the duration of data session - eQMI_WDS_GET_MODEM_STATUS, // 54 Get the modem status - eQMI_WDS_MODEM_IND = 54, // 54 Modem status indication - eQMI_WDS_GET_DATA_BEARER, // 55 Get the data bearer type - eQMI_WDS_GET_MODEM_INFO, // 56 Get the modem info - eQMI_WDS_MODEM_INFO_IND = 56, // 56 Modem info indication - eQMI_WDS_GET_ACTIVE_MIP = 60, // 60 Get the active mobile IP profile - eQMI_WDS_SET_ACTIVE_MIP, // 61 Set the active mobile IP profile - eQMI_WDS_GET_MIP_PROFILE, // 62 Get mobile IP profile settings - eQMI_WDS_SET_MIP_PROFILE, // 63 Set mobile IP profile settings - eQMI_WDS_GET_MIP_PARAMS, // 64 Get mobile IP parameters - eQMI_WDS_SET_MIP_PARAMS, // 65 Set mobile IP parameters - eQMI_WDS_GET_LAST_MIP_STATUS, // 66 Get last mobile IP status - eQMI_WDS_GET_AAA_AUTH_STATUS, // 67 Get AN-AAA authentication status - eQMI_WDS_GET_CUR_DATA_BEARER, // 68 Get current data bearer - eQMI_WDS_GET_CALL_LIST, // 69 Get the call history list - eQMI_WDS_GET_CALL_ENTRY, // 70 Get an entry from the call history list - eQMI_WDS_CLEAR_CALL_LIST, // 71 Clear the call history list - eQMI_WDS_GET_CALL_LIST_MAX, // 72 Get maximum size of call history list - eQMI_WDS_SET_IP_FAMILY = 77, // 77 Set the client IP family preference - 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 - eQMI_DMS_EVENT_IND = 1, // 01 Connection state report indication - eQMI_DMS_GET_CAPS = 32, // 32 Get the device capabilities - eQMI_DMS_GET_MANUFACTURER, // 33 Get the device manfacturer - eQMI_DMS_GET_MODEL_ID, // 34 Get the device model ID - eQMI_DMS_GET_REV_ID, // 35 Get the device revision ID - eQMI_DMS_GET_NUMBER, // 36 Get the assigned voice number - eQMI_DMS_GET_IDS, // 37 Get the ESN/IMEI/MEID - eQMI_DMS_GET_POWER_STATE, // 38 Get the get power state - eQMI_DMS_UIM_SET_PIN_PROT, // 39 UIM - Set PIN protection - eQMI_DMS_UIM_PIN_VERIFY, // 40 UIM - Verify PIN - eQMI_DMS_UIM_PIN_UNBLOCK, // 41 UIM - Unblock PIN - eQMI_DMS_UIM_PIN_CHANGE, // 42 UIM - Change PIN - eQMI_DMS_UIM_GET_PIN_STATUS, // 43 UIM - Get PIN status - eQMI_DMS_GET_MSM_ID = 44, // 44 Get MSM ID - eQMI_DMS_GET_OPERTAING_MODE, // 45 Get the operating mode - eQMI_DMS_SET_OPERATING_MODE, // 46 Set the operating mode - eQMI_DMS_GET_TIME, // 47 Get timestamp from the device - eQMI_DMS_GET_PRL_VERSION, // 48 Get the PRL version - eQMI_DMS_GET_ACTIVATED_STATE, // 49 Get the activation state - eQMI_DMS_ACTIVATE_AUTOMATIC, // 50 Perform an automatic activation - eQMI_DMS_ACTIVATE_MANUAL, // 51 Perform a manual activation - eQMI_DMS_GET_USER_LOCK_STATE, // 52 Get the lock state - eQMI_DMS_SET_USER_LOCK_STATE, // 53 Set the lock state - eQMI_DMS_SET_USER_LOCK_CODE, // 54 Set the lock PIN - eQMI_DMS_READ_USER_DATA, // 55 Read user data - eQMI_DMS_WRITE_USER_DATA, // 56 Write user data - eQMI_DMS_READ_ERI_FILE, // 57 Read the enhanced roaming indicator file - eQMI_DMS_FACTORY_DEFAULTS, // 58 Reset to factory defaults - eQMI_DMS_VALIDATE_SPC, // 59 Validate service programming code - eQMI_DMS_UIM_GET_ICCID, // 60 Get UIM ICCID - eQMI_DMS_GET_FIRWARE_ID, // 61 Get firmware ID - eQMI_DMS_SET_FIRMWARE_ID, // 62 Set firmware ID - eQMI_DMS_GET_HOST_LOCK_ID, // 63 Get host lock ID - eQMI_DMS_UIM_GET_CK_STATUS, // 64 UIM - Get control key status - eQMI_DMS_UIM_SET_CK_PROT, // 65 UIM - Set control key protection - eQMI_DMS_UIM_UNBLOCK_CK, // 66 UIM - Unblock facility control key - eQMI_DMS_GET_IMSI, // 67 Get the IMSI - eQMI_DMS_UIM_GET_STATE, // 68 UIM - Get the UIM state - eQMI_DMS_GET_BAND_CAPS, // 69 Get the device band capabilities - eQMI_DMS_GET_FACTORY_ID, // 70 Get the device factory ID - eQMI_DMS_GET_FIRMWARE_PREF, // 71 Get firmware preference - eQMI_DMS_SET_FIRMWARE_PREF, // 72 Set firmware preference - eQMI_DMS_LIST_FIRMWARE, // 73 List all stored firmware - eQMI_DMS_DELETE_FIRMWARE, // 74 Delete specified stored firmware - eQMI_DMS_SET_TIME, // 75 Set device time - eQMI_DMS_GET_FIRMWARE_INFO, // 76 Get stored firmware info - eQMI_DMS_GET_ALT_NET_CFG, // 77 Get alternate network config - 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 - eQMI_NAS_SET_EVENT, // 02 Set NAS state report conditions - eQMI_NAS_EVENT_IND = 2, // 02 Connection state report indication - eQMI_NAS_SET_REG_EVENT, // 03 Set NAS registration report conditions - eQMI_NAS_GET_RSSI = 32, // 32 Get the signal strength - eQMI_NAS_SCAN_NETS, // 33 Scan for visible network - eQMI_NAS_REGISTER_NET, // 34 Initiate a network registration - eQMI_NAS_ATTACH_DETACH, // 35 Initiate an attach or detach action - eQMI_NAS_GET_SS_INFO, // 36 Get info about current serving system - eQMI_NAS_SS_INFO_IND = 36, // 36 Current serving system info indication - eQMI_NAS_GET_HOME_INFO, // 37 Get info about home network - eQMI_NAS_GET_NET_PREF_LIST, // 38 Get the list of preferred networks - eQMI_NAS_SET_NET_PREF_LIST, // 39 Set the list of preferred networks - eQMI_NAS_GET_NET_BAN_LIST, // 40 Get the list of forbidden networks - eQMI_NAS_SET_NET_BAN_LIST, // 41 Set the list of forbidden networks - eQMI_NAS_SET_TECH_PREF, // 42 Set the technology preference - eQMI_NAS_GET_TECH_PREF, // 43 Get the technology preference - eQMI_NAS_GET_ACCOLC, // 44 Get the Access Overload Class - eQMI_NAS_SET_ACCOLC, // 45 Set the Access Overload Class - eQMI_NAS_GET_SYSPREF, // 46 Get the CDMA system preference - eQMI_NAS_GET_NET_PARAMS, // 47 Get various network parameters - eQMI_NAS_SET_NET_PARAMS, // 48 Set various network parameters - eQMI_NAS_GET_RF_INFO, // 49 Get the SS radio/band channel info - 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_SET_DDTM_PREF = 55, // 55 Set DDTM preference - eQMI_NAS_GET_DDTM_PREF, // 56 Get DDTM preference - 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 - eQMI_WMS_EVENT_IND = 1, // 01 New message report indication - eQMI_WMS_RAW_SEND = 32, // 32 Send a raw message - eQMI_WMS_RAW_WRITE, // 33 Write a raw message to the device - eQMI_WMS_RAW_READ, // 34 Read a raw message from the device - eQMI_WMS_MODIFY_TAG, // 35 Modify message tag on the device - eQMI_WMS_DELETE, // 36 Delete message by index/tag/memory - eQMI_WMS_GET_MSG_PROTOCOL = 48, // 48 Get the current message protocol - eQMI_WMS_GET_MSG_LIST, // 49 Get list of messages from the device - eQMI_WMS_SET_ROUTES, // 50 Set routes for message memory storage - eQMI_WMS_GET_ROUTES, // 51 Get routes for message memory storage - eQMI_WMS_GET_SMSC_ADDR, // 52 Get SMSC address - eQMI_WMS_SET_SMSC_ADDR, // 53 Set SMSC address - eQMI_WMS_GET_MSG_LIST_MAX, // 54 Get maximum size of SMS storage - eQMI_WMS_SEND_ACK, // 55 Send ACK - eQMI_WMS_SET_RETRY_PERIOD, // 56 Set retry period - eQMI_WMS_SET_RETRY_INTERVAL, // 57 Set retry interval - eQMI_WMS_SET_DC_DISCO_TIMER, // 58 Set DC auto-disconnect timer - eQMI_WMS_SET_MEMORY_STATUS, // 59 Set memory storage status - eQMI_WMS_SET_BC_ACTIVATION, // 60 Set broadcast activation - eQMI_WMS_SET_BC_CONFIG, // 61 Set broadcast config - eQMI_WMS_GET_BC_CONFIG, // 62 Get broadcast config - eQMI_WMS_MEMORY_FULL_IND, // 63 Memory full indication - eQMI_WMS_GET_DOMAIN_PREF, // 64 Get domain preference - eQMI_WMS_SET_DOMAIN_PREF, // 65 Set domain preference - eQMI_WMS_MEMORY_SEND, // 66 Send message from memory store - eQMI_WMS_GET_MSG_WAITING, // 67 Get message waiting info - 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 - eQMI_PDS_EVENT_IND = 1, // 01 PDS report indication - eQMI_PDS_GET_STATE = 32, // 32 Return PDS service state - eQMI_PDS_STATE_IND = 32, // 32 PDS service state indication - eQMI_PDS_SET_STATE, // 33 Set PDS service state - eQMI_PDS_START_SESSION, // 34 Start a PDS tracking session - eQMI_PDS_GET_SESSION_INFO, // 35 Get PDS tracking session info - eQMI_PDS_FIX_POSITION, // 36 Manual tracking session position - eQMI_PDS_END_SESSION, // 37 End a PDS tracking session - eQMI_PDS_GET_NMEA_CFG, // 38 Get NMEA sentence config - eQMI_PDS_SET_NMEA_CFG, // 39 Set NMEA sentence config - eQMI_PDS_INJECT_TIME, // 40 Inject a time reference - eQMI_PDS_GET_DEFAULTS, // 41 Get default tracking session config - eQMI_PDS_SET_DEFAULTS, // 42 Set default tracking session config - eQMI_PDS_GET_XTRA_PARAMS, // 43 Get the GPS XTRA parameters - eQMI_PDS_SET_XTRA_PARAMS, // 44 Set the GPS XTRA parameters - eQMI_PDS_FORCE_XTRA_DL, // 45 Force a GPS XTRA database download - eQMI_PDS_GET_AGPS_CONFIG, // 46 Get the AGPS mode configuration - eQMI_PDS_SET_AGPS_CONFIG, // 47 Set the AGPS mode configuration - eQMI_PDS_GET_SVC_AUTOTRACK, // 48 Get the service auto-tracking state - eQMI_PDS_SET_SVC_AUTOTRACK, // 49 Set the service auto-tracking state - eQMI_PDS_GET_COM_AUTOTRACK, // 50 Get COM port auto-tracking config - eQMI_PDS_SET_COM_AUTOTRACK, // 51 Set COM port auto-tracking config - eQMI_PDS_RESET_DATA, // 52 Reset PDS service data - eQMI_PDS_SINGLE_FIX, // 53 Request single position fix - eQMI_PDS_GET_VERSION, // 54 Get PDS service version - eQMI_PDS_INJECT_XTRA, // 55 Inject XTRA data - eQMI_PDS_INJECT_POSITION, // 56 Inject position data - eQMI_PDS_INJECT_WIFI, // 57 Inject Wi-Fi obtained data - eQMI_PDS_GET_SBAS_CONFIG, // 58 Get SBAS config - eQMI_PDS_SET_SBAS_CONFIG, // 59 Set SBAS config - eQMI_PDS_SEND_NI_RESPONSE, // 60 Send network initiated response - eQMI_PDS_INJECT_ABS_TIME, // 61 Inject absolute time - eQMI_PDS_INJECT_EFS, // 62 Inject EFS data - eQMI_PDS_GET_DPO_CONFIG, // 63 Get DPO config - eQMI_PDS_SET_DPO_CONFIG, // 64 Set DPO config - eQMI_PDS_GET_ODP_CONFIG, // 65 Get ODP config - eQMI_PDS_SET_ODP_CONFIG, // 66 Set ODP config - eQMI_PDS_CANCEL_SINGLE_FIX, // 67 Cancel single position fix - 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 - eQMI_VOICE_CALL_END, // 33 End a voice call - eQMI_VOICE_CALL_ANSWER, // 34 Answer incoming voice call - eQMI_VOICE_GET_CALL_INFO = 36, // 36 Get call information - eQMI_VOICE_OTASP_STATUS_IND, // 37 OTASP/OTAPA event indication - eQMI_VOICE_INFO_REC_IND, // 38 New info record indication - eQMI_VOICE_SEND_FLASH, // 39 Send a simple flash - eQMI_VOICE_BURST_DTMF, // 40 Send a burst DTMF - eQMI_VOICE_START_CONT_DTMF, // 41 Starts a continuous DTMF - eQMI_VOICE_STOP_CONT_DTMF, // 42 Stops a continuous DTMF - eQMI_VOICE_DTMF_IND, // 43 DTMF event indication - eQMI_VOICE_SET_PRIVACY_PREF, // 44 Set privacy preference - eQMI_VOICE_PRIVACY_IND, // 45 Privacy change indication - eQMI_VOICE_ALL_STATUS_IND, // 46 Voice all call status indication - eQMI_VOICE_GET_ALL_STATUS, // 47 Get voice all call status - eQMI_VOICE_MANAGE_CALLS = 49, // 49 Manage calls - eQMI_VOICE_SUPS_NOTIFICATION_IND, // 50 Supplementary service notifications - eQMI_VOICE_SET_SUPS_SERVICE, // 51 Manage supplementary service - eQMI_VOICE_GET_CALL_WAITING, // 52 Query sup service call waiting - eQMI_VOICE_GET_CALL_BARRING, // 53 Query sup service call barring - eQMI_VOICE_GET_CLIP, // 54 Query sup service CLIP - eQMI_VOICE_GET_CLIR, // 55 Query sup service CLIR - eQMI_VOICE_GET_CALL_FWDING, // 56 Query sup service call forwarding - eQMI_VOICE_SET_CALL_BARRING_PWD, // 57 Set call barring password - eQMI_VOICE_ORIG_USSD, // 58 Initiate USSD operation - eQMI_VOICE_ANSWER_USSD, // 59 Answer USSD request - eQMI_VOICE_CANCEL_USSD, // 60 Cancel USSD operation - eQMI_VOICE_USSD_RELEASE_IND, // 61 USSD release indication - eQMI_VOICE_USSD_IND, // 62 USSD request/notification indication - eQMI_VOICE_UUS_IND, // 63 UUS information indication - eQMI_VOICE_SET_CONFIG, // 64 Set config - eQMI_VOICE_GET_CONFIG, // 65 Get config - 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 - eQMI_CAT_EVENT_IND = 1, // 01 New message report indication - 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 - eQMI_RMS_SET_SMS_WAKE, // 33 Set SMS wake settings - - 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 - eQMI_OMA_SEND_SELECTION, // 35 Send selection for net inititated msg - eQMI_OMA_GET_FEATURES, // 36 Get feature settings - eQMI_OMA_SET_FEATURES, // 37 Set feature settings -""" - -entities = { 30: TP_REQUEST, # 30 QMI CTL request - 31: TP_RESPONSE, # 31 QMI CTL response - 32: TP_INDICATION, # 32 QMI CTL indication - 33: TP_REQUEST, # 33 QMI WDS request - 34: TP_RESPONSE, # 34 QMI WDS response - 35: TP_INDICATION, # 35 QMI WDS indication - 36: TP_REQUEST, # 36 QMI DMS request - 37: TP_RESPONSE, # 37 QMI DMS response - 38: TP_INDICATION, # 38 QMI DMS indication - 39: TP_REQUEST, # 39 QMI NAS request - 40: TP_RESPONSE, # 40 QMI NAS response - 41: TP_INDICATION, # 41 QMI NAS indication - 42: TP_REQUEST, # 42 QMI QOS request - 43: TP_RESPONSE, # 43 QMI QOS response - 44: TP_INDICATION, # 44 QMI QOS indication - 45: TP_REQUEST, # 45 QMI WMS request - 46: TP_RESPONSE, # 46 QMI WMS response - 47: TP_INDICATION, # 47 QMI WMS indication - 48: TP_REQUEST, # 48 QMI PDS request - 49: TP_RESPONSE, # 49 QMI PDS response - 50: TP_INDICATION, # 50 QMI PDS indication - 51: TP_REQUEST, # 51 QMI AUTH request - 52: TP_RESPONSE, # 52 QMI AUTH response - 53: TP_INDICATION, # 53 QMI AUTH indication - 54: TP_REQUEST, # 54 QMI CAT request - 55: TP_RESPONSE, # 55 QMI CAT response - 56: TP_INDICATION, # 56 QMI CAT indication - 57: TP_REQUEST, # 57 QMI RMS request - 58: TP_RESPONSE, # 58 QMI RMS response - 59: TP_INDICATION, # 59 QMI RMS indication - 60: TP_REQUEST, # 60 QMI OMA request - 61: TP_RESPONSE, # 61 QMI OMA response - 62: TP_INDICATION, # 62 QMI OMA indication - 63: TP_REQUEST, # 63 QMI voice request - 64: TP_RESPONSE, # 64 QMI voice response - 65: TP_INDICATION # 65 QMI voice indication - } - -class Tlv: - def __init__(self, entno, cmdno, tlvno, service, cmdname, tlvname, direction): - self.entno = entno - self.cmdno = cmdno - self.tlvno = tlvno - self.service = service - self.cmdname = cmdname - self.name = tlvname - self.direction = direction - - def show(self): - print (" " * 10) + '%s: "%s/%s/%s",' % (self.tlvno, self.service, self.cmdname, self.name) - - -class Cmd: - def __init__(self, service, cmdno, name): - self.service = service - self.cmdno = cmdno - self.name = name - self.tlvs = { TP_REQUEST: {}, TP_RESPONSE: {}, TP_INDICATION: {} } - - def add_tlv(self, direction, tlv): - if self.tlvs[direction].has_key(tlv.tlvno): - old = self.tlvs[direction][tlv.tlvno] - raise ValueError("Tried to add duplicate TLV [%s %d:%d (%s/%s/%s)] had [%s %d:%d (%s/%s/%s)]" % (self.service, \ - self.cmdno, tlv.tlvno, self.service, self.name, tlv.name, self.service, self.cmdno, old.tlvno, self.service, \ - self.name, old.name)) - self.tlvs[direction][tlv.tlvno] = tlv - - def show_direction(self, direction): - if len(self.tlvs[direction].keys()) == 0: - return - - print "%s = { # %d" % (self.get_array_name(direction), self.cmdno) - keys = self.tlvs[direction].keys() - keys.sort() - for k in keys: - tlv = self.tlvs[direction][k] - tlv.show() - print (" " * 8) + "}\n" - - def show_tlvs(self): - self.show_direction(TP_REQUEST) - self.show_direction(TP_RESPONSE) - self.show_direction(TP_INDICATION) - - def get_array_name(self, direction): - if len(self.tlvs[direction].keys()) == 0: - return "None" - tags = { TP_REQUEST: "req", TP_RESPONSE: "rsp", TP_INDICATION: "ind" } - return "%s_%s_%s_tlvs" % (self.service, self.name.lower(), tags[direction]) - -# parse list of services and their commands -services = {} -for l in cmdenum.split("\n"): - l = l.strip() - if not len(l): - continue - l = l.replace("eQMI_", "") - svcend = l.find("_") - if svcend < 0: - raise ValueError("Failed to get service") - svc = l[:svcend].lower() - l = l[svcend + 1:] - - comma = l.find(",") - space = l.find(" =") - idx = -1 - if comma >= 0 and (space < 0 or comma < space): - idx = comma - elif space >= 0 and (comma < 0 or space < comma): - idx = space - else: - raise ValueError("Couldn't determine command name") - cmdname = l[:idx] - l = l[idx:] - comment = l.index("// ") - l = l[comment + 3:] - end = l.index(" ") - cmdno = int(l[:end]) - - cmd = Cmd(svc, cmdno, cmdname) - - if not services.has_key(svc): - services[svc] = {} - if services[svc].has_key(cmdno): - # ignore duplicat indication numbers - if cmdname.find("_IND") >= 0: - continue - raise KeyError("Already have %s/%s/%d" % (svc, cmdname, cmdno)) - services[svc][cmdno] = cmd - -# read in Entity.txt -f = open(sys.argv[1]) -lines = f.readlines() -f.close() - -for line in lines: - parts = line.split("^") - struct = int(parts[3]) - - entno = int(parts[0]) - - ids = parts[1].replace('"', "").split(",") - cmdno = int(ids[0]) - tlvno = int(ids[1]) - - name = parts[2].replace('"', "").split("/") - service = name[0] - cmdname = name[1] - tlvname = name[2] - - direction = entities[entno] - - tlv = Tlv(entno, cmdno, tlvno, service, cmdname, tlvname, direction) - services[service.lower()][cmdno].add_tlv(direction, tlv) - -svcsorted = services.keys() -svcsorted.sort() -for s in svcsorted: - # print each service's command's TLVs - cmdssorted = services[s].keys() - cmdssorted.sort() - for c in cmdssorted: - cmd = services[s][c] - cmd.show_tlvs() - - # print each service's command dict - print "%s_cmds = {" % s - for c in cmdssorted: - cmd = services[s][c] - print ' %d: ("%s", %s, %s, %s),' % (cmd.cmdno, cmd.name, \ - cmd.get_array_name(TP_REQUEST), cmd.get_array_name(TP_RESPONSE), cmd.get_array_name(TP_INDICATION)) - print " }" -print "" - -# print out services -slist = { 0: "ctl", 1: "wds", 2: "dms", 3: "nas", 4: "qos", 5: "wms", - 6: "pds", 7: "auth", 9: "voice", 224: "cat", 225: "rms", 226: "oma" } - -slistsorted = slist.keys() -slistsorted.sort() -print "services = {" -for s in slistsorted: - cmdlistname = "None" - if slist[s] != "qos": - # QoS doesn't appear to have any commands - cmdlistname = slist[s] + "_cmds" - print ' %d: ("%s", %s),' % (s, slist[s], cmdlistname) -print " }" - diff --git a/decode/qmiprotocol.py b/decode/qmiprotocol.py deleted file mode 100644 index 1dcb5032..00000000 --- a/decode/qmiprotocol.py +++ /dev/null @@ -1,2453 +0,0 @@ -auth_start_eap_req_tlvs = { # 32 - 16: "AUTH/Start EAP Session Request/Method Mask", - } - -auth_start_eap_rsp_tlvs = { # 32 - 2: "AUTH/Start EAP Session Response/Result Code", - } - -auth_send_eap_req_tlvs = { # 33 - 1: "AUTH/Send EAP Packet Request/Request Packet", - } - -auth_send_eap_rsp_tlvs = { # 33 - 1: "AUTH/Send EAP Packet Response/Response Packet", - 2: "AUTH/Send EAP Packet Response/Result Code", - } - -auth_eap_result_ind_rsp_tlvs = { # 34 - 1: "AUTH/EAP Session Result/Result", - } - -auth_get_eap_keys_rsp_tlvs = { # 35 - 1: "AUTH/Get EAP Session Keys Response/Session Keys", - 2: "AUTH/Get EAP Session Keys Response/Result Code", - } - -auth_end_eap_rsp_tlvs = { # 36 - 2: "AUTH/End EAP Session Response/Result Code", - } - -auth_cmds = { - 32: ("START_EAP", auth_start_eap_req_tlvs, auth_start_eap_rsp_tlvs, None), - 33: ("SEND_EAP", auth_send_eap_req_tlvs, auth_send_eap_rsp_tlvs, None), - 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", - } - -cat_set_event_req_tlvs = { # 1 - 16: "CAT/Set Event Report Request/Report Mask", - } - -cat_set_event_rsp_tlvs = { # 1 - 2: "CAT/Set Event Report Response/Result Code", - 16: "CAT/Set Event Report Response/Reg Status Mask", - } - -cat_set_event_ind_tlvs = { # 1 - 16: "CAT/Event Report/Display Text Event", - 17: "CAT/Event Report/Get Inkey Event", - 18: "CAT/Event Report/Get Input Event", - 19: "CAT/Event Report/Setup Menu Event", - 20: "CAT/Event Report/Select Item Event", - 21: "CAT/Event Report/Alpha ID Available", - 22: "CAT/Event Report/Setup Event List", - 23: "CAT/Event Report/Setup Idle Mode Text Event", - 24: "CAT/Event Report/Language Notification Event", - 25: "CAT/Event Report/Refresh Event", - 26: "CAT/Event Report/End Proactive Session", - } - -cat_get_state_rsp_tlvs = { # 32 - 1: "CAT/Get Service State Response/CAT Service State", - 2: "CAT/Get Service State Response/Result Code", - } - -cat_send_terminal_req_tlvs = { # 33 - 1: "CAT/Send Terminal Response Request/Terminal Response Type", - } - -cat_send_terminal_rsp_tlvs = { # 33 - 2: "CAT/Send Terminal Response Response/Result Code", - } - -cat_send_envelope_req_tlvs = { # 34 - 1: "CAT/Envelope Command Request/Envelope Command", - } - -cat_send_envelope_rsp_tlvs = { # 34 - 2: "CAT/Envelope Command Response/Result Code", - } - -cat_cmds = { - 0: ("RESET", None, cat_reset_rsp_tlvs, None), - 1: ("SET_EVENT", cat_set_event_req_tlvs, cat_set_event_rsp_tlvs, cat_set_event_ind_tlvs), - 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", - } - -ctl_set_instance_id_rsp_tlvs = { # 32 - 1: "CTL/Set Instance ID Response/Link", - 2: "CTL/Set Instance ID Response/Result Code", - } - -ctl_get_version_info_rsp_tlvs = { # 33 - 1: "CTL/Get Version Info Response/List", - 2: "CTL/Get Version Info Response/Result Code", - 16: "CTL/Get Version Info Response/Addendum", - } - -ctl_get_client_id_req_tlvs = { # 34 - 1: "CTL/Get Client ID Request/Type", - } - -ctl_get_client_id_rsp_tlvs = { # 34 - 1: "CTL/Get Client ID Response/ID", - 2: "CTL/Get Client ID Response/Result Code", - } - -ctl_release_client_id_req_tlvs = { # 35 - 1: "CTL/Release Client ID Request/ID", - } - -ctl_release_client_id_rsp_tlvs = { # 35 - 1: "CTL/Release Client ID Response/ID", - 2: "CTL/Release Client ID Response/Result Code", - } - -ctl_revoke_client_id_ind_ind_tlvs = { # 36 - 1: "CTL/Release Client ID Indication/ID", - } - -ctl_invalid_client_id_ind_tlvs = { # 37 - 1: "CTL/Invalid Client ID Indication/ID", - } - -ctl_set_data_format_req_tlvs = { # 38 - 1: "CTL/Set Data Format Request/Format", - 16: "CTL/Set Data Format Request/Protocol", - } - -ctl_set_data_format_rsp_tlvs = { # 38 - 2: "CTL/Set Data Format Response/Result Code", - 16: "CTL/Set Data Format Response/Protocol", - } - -ctl_set_event_req_tlvs = { # 40 - 1: "CTL/Set Event Report Request/Report", - } - -ctl_set_event_rsp_tlvs = { # 40 - 2: "CTL/Set Event Report Response/Result Code", - } - -ctl_set_event_ind_tlvs = { # 40 - 1: "CTL/Event Report Indication/Report", - } - -ctl_set_power_save_cfg_req_tlvs = { # 41 - 1: "CTL/Set Power Save Config Request/Descriptor", - 17: "CTL/Set Power Save Config Request/Permitted Set", - } - -ctl_set_power_save_cfg_rsp_tlvs = { # 41 - 2: "CTL/Set Power Save Config Response/Result Code", - } - -ctl_set_power_save_mode_req_tlvs = { # 42 - 1: "CTL/Set Power Save Mode Request/Mode", - } - -ctl_set_power_save_mode_rsp_tlvs = { # 42 - 2: "CTL/Set Power Save Mode Response/Result Code", - } - -ctl_get_power_save_mode_rsp_tlvs = { # 43 - 1: "CTL/Get Power Save Mode Response/Mode", - 2: "CTL/Get Power Save Mode Response/Result Code", - } - -ctl_cmds = { - 32: ("SET_INSTANCE_ID", ctl_set_instance_id_req_tlvs, ctl_set_instance_id_rsp_tlvs, None), - 33: ("GET_VERSION_INFO", None, ctl_get_version_info_rsp_tlvs, None), - 34: ("GET_CLIENT_ID", ctl_get_client_id_req_tlvs, ctl_get_client_id_rsp_tlvs, None), - 35: ("RELEASE_CLIENT_ID", ctl_release_client_id_req_tlvs, ctl_release_client_id_rsp_tlvs, None), - 36: ("REVOKE_CLIENT_ID_IND", None, None, ctl_revoke_client_id_ind_ind_tlvs), - 37: ("INVALID_CLIENT_ID", None, None, ctl_invalid_client_id_ind_tlvs), - 38: ("SET_DATA_FORMAT", ctl_set_data_format_req_tlvs, ctl_set_data_format_rsp_tlvs, None), - 39: ("SYNC", None, None, None), - 40: ("SET_EVENT", ctl_set_event_req_tlvs, ctl_set_event_rsp_tlvs, ctl_set_event_ind_tlvs), - 41: ("SET_POWER_SAVE_CFG", ctl_set_power_save_cfg_req_tlvs, ctl_set_power_save_cfg_rsp_tlvs, None), - 42: ("SET_POWER_SAVE_MODE", ctl_set_power_save_mode_req_tlvs, ctl_set_power_save_mode_rsp_tlvs, None), - 43: ("GET_POWER_SAVE_MODE", None, ctl_get_power_save_mode_rsp_tlvs, None), - } -dms_reset_rsp_tlvs = { # 0 - 2: "DMS/Reset Response/Result Code", - } - -dms_set_event_req_tlvs = { # 1 - 16: "DMS/Set Event Report Request/Power State", - 17: "DMS/Set Event Report Request/Battery Level", - 18: "DMS/Set Event Report Request/PIN Status", - 19: "DMS/Set Event Report Request/Activation State", - 20: "DMS/Set Event Report Request/Operating Mode", - 21: "DMS/Set Event Report Request/UIM State", - 22: "DMS/Set Event Report Request/Wireless Disable State", - } - -dms_set_event_rsp_tlvs = { # 1 - 2: "DMS/Set Event Report Response/Result Code", - } - -dms_set_event_ind_tlvs = { # 1 - 16: "DMS/Event Report/Power State", - 17: "DMS/Event Report/PIN1 State", - 18: "DMS/Event Report/PIN2 State", - 19: "DMS/Event Report/Activation State", - 20: "DMS/Event Report/Operating Mode", - 21: "DMS/Event Report/UIM State", - 22: "DMS/Event Report/Wireless Disable State", - } - -dms_get_caps_rsp_tlvs = { # 32 - 1: "DMS/Get Device Capabilities Response/Capabilities", - 2: "DMS/Get Device Capabilities Response/Result Code", - } - -dms_get_manufacturer_rsp_tlvs = { # 33 - 1: "DMS/Get Device Manfacturer Response/Manfacturer", - 2: "DMS/Get Device Manfacturer Response/Result Code", - } - -dms_get_model_id_rsp_tlvs = { # 34 - 1: "DMS/Get Device Model Response/Model", - 2: "DMS/Get Device Model Response/Result Code", - } - -dms_get_rev_id_rsp_tlvs = { # 35 - 1: "DMS/Get Device Revision Response/Revision", - 2: "DMS/Get Device Revision Response/Result Code", - 16: "DMS/Get Device Revision Response/Boot Code Revision", - 17: "DMS/Get Device Revision Response/UQCN Revision", - } - -dms_get_number_rsp_tlvs = { # 36 - 1: "DMS/Get Device Voice Number Response/Voice Number", - 2: "DMS/Get Device Voice Number Response/Result Code", - 16: "DMS/Get Device Voice Number Response/Mobile ID Number", - 17: "DMS/Get Device Voice Number Response/IMSI", - } - -dms_get_ids_rsp_tlvs = { # 37 - 2: "DMS/Get Device Serial Numbers Response/Result Code", - 16: "DMS/Get Device Serial Numbers Response/ESN", - 17: "DMS/Get Device Serial Numbers Response/IMEI", - 18: "DMS/Get Device Serial Numbers Response/MEID", - } - -dms_get_power_state_rsp_tlvs = { # 38 - 1: "DMS/Get Power State Response/Power State", - 2: "DMS/Get Power State Response/Result Code", - } - -dms_uim_set_pin_prot_req_tlvs = { # 39 - 1: "DMS/UIM Set PIN Protection Request/Info", - } - -dms_uim_set_pin_prot_rsp_tlvs = { # 39 - 2: "DMS/UIM Set PIN Protection Response/Result Code", - 16: "DMS/UIM Set PIN Protection Response/Retry Info", - } - -dms_uim_pin_verify_req_tlvs = { # 40 - 1: "DMS/UIM Verify PIN Request/Info", - } - -dms_uim_pin_verify_rsp_tlvs = { # 40 - 2: "DMS/UIM Verify PIN Response/Result Code", - 16: "DMS/UIM Verify PIN Response/Retry Info", - } - -dms_uim_pin_unblock_req_tlvs = { # 41 - 1: "DMS/UIM Unblock PIN Request/Info", - } - -dms_uim_pin_unblock_rsp_tlvs = { # 41 - 2: "DMS/UIM Unblock PIN Response/Result Code", - 16: "DMS/UIM Unblock PIN Response/Retry Info", - } - -dms_uim_pin_change_req_tlvs = { # 42 - 1: "DMS/UIM Change PIN Request/Info", - } - -dms_uim_pin_change_rsp_tlvs = { # 42 - 2: "DMS/UIM Change PIN Response/Result Code", - 16: "DMS/UIM Change PIN Response/Retry Info", - } - -dms_uim_get_pin_status_rsp_tlvs = { # 43 - 2: "DMS/UIM Get PIN Status Response/Result Code", - 17: "DMS/UIM Get PIN Status Response/PIN1 Status", - 18: "DMS/UIM Get PIN Status Response/PIN2 Status", - } - -dms_get_msm_id_rsp_tlvs = { # 44 - 1: "DMS/Get Hardware Revision Response/Hardware Revision", - 2: "DMS/Get Hardware Revision Response/Result Code", - } - -dms_get_opertaing_mode_rsp_tlvs = { # 45 - 1: "DMS/Get Operating Mode Response/Operating Mode", - 2: "DMS/Get Operating Mode Response/Result Code", - 16: "DMS/Get Operating Mode Response/Offline Reason", - 17: "DMS/Get Operating Mode Response/Platform Restricted", - } - -dms_set_operating_mode_req_tlvs = { # 46 - 1: "DMS/Set Operating Mode Request/Operating Mode", - } - -dms_set_operating_mode_rsp_tlvs = { # 46 - 2: "DMS/Set Operating Mode Response/Result Code", - } - -dms_get_time_rsp_tlvs = { # 47 - 1: "DMS/Get Timestamp Response/Timestamp", - 2: "DMS/Get Timestamp Response/Result Code", - } - -dms_get_prl_version_rsp_tlvs = { # 48 - 1: "DMS/Get PRL Version Response/PRL Version", - 2: "DMS/Get PRL Version Response/Result Code", - } - -dms_get_activated_state_rsp_tlvs = { # 49 - 1: "DMS/Get Activation State Response/Activation State", - 2: "DMS/Get Activation State Response/Result Code", - } - -dms_activate_automatic_req_tlvs = { # 50 - 1: "DMS/Activate Automatic Request/Activation Code", - } - -dms_activate_automatic_rsp_tlvs = { # 50 - 2: "DMS/Activate Automatic Response/Result Code", - } - -dms_activate_manual_req_tlvs = { # 51 - 1: "DMS/Activate Manual Request/Activation Data", - 16: "DMS/Activate Manual Request/PRL (Obsolete)", - 17: "DMS/Activate Manual Request/MN-HA Key", - 18: "DMS/Activate Manual Request/MN-AAA Key", - 19: "DMS/Activate Manual Request/PRL", - } - -dms_activate_manual_rsp_tlvs = { # 51 - 2: "DMS/Activate Manual Response/Result Code", - } - -dms_get_user_lock_state_rsp_tlvs = { # 52 - 1: "DMS/Get Lock State Response/Lock State", - 2: "DMS/Get Lock State Response/Result Code", - } - -dms_set_user_lock_state_req_tlvs = { # 53 - 1: "DMS/Set Lock State Request/Lock State", - } - -dms_set_user_lock_state_rsp_tlvs = { # 53 - 2: "DMS/Set Lock State Response/Result Code", - } - -dms_set_user_lock_code_req_tlvs = { # 54 - 1: "DMS/Set Lock Code Request/Lock Code", - } - -dms_set_user_lock_code_rsp_tlvs = { # 54 - 2: "DMS/Set Lock Code Response/Result Code", - } - -dms_read_user_data_rsp_tlvs = { # 55 - 1: "DMS/Read User Data Response/User Data", - 2: "DMS/Read User Data Response/Result Code", - } - -dms_write_user_data_req_tlvs = { # 56 - 1: "DMS/Write User Data Request/User Data", - } - -dms_write_user_data_rsp_tlvs = { # 56 - 2: "DMS/Write User Data Response/Result Code", - } - -dms_read_eri_file_rsp_tlvs = { # 57 - 1: "DMS/Read ERI Data Response/User Data", - 2: "DMS/Read ERI Data Response/Result Code", - } - -dms_factory_defaults_req_tlvs = { # 58 - 1: "DMS/Reset Factory Defaults Request/SPC", - } - -dms_factory_defaults_rsp_tlvs = { # 58 - 2: "DMS/Reset Factory Defaults Response/Result Code", - } - -dms_validate_spc_req_tlvs = { # 59 - 1: "DMS/Validate SPC Request/SPC", - } - -dms_validate_spc_rsp_tlvs = { # 59 - 2: "DMS/Validate SPC Response/Result Code", - } - -dms_uim_get_iccid_rsp_tlvs = { # 60 - 1: "DMS/UIM Get ICCID Response/ICCID", - 2: "DMS/UIM Get ICCID Response/Result Code", - } - -dms_get_firware_id_rsp_tlvs = { # 61 - 1: "DMS/UIM Get Firmware ID Response/ID", - 2: "DMS/UIM Get Firmware ID Response/Result Code", - } - -dms_set_firmware_id_req_tlvs = { # 62 - 1: "DMS/UIM Set Firmware ID Request/ID", - } - -dms_set_firmware_id_rsp_tlvs = { # 62 - 2: "DMS/UIM Set Firmware ID Response/Result Code", - } - -dms_get_host_lock_id_rsp_tlvs = { # 63 - 1: "DMS/UIM Get Host Lock ID Response/ID", - 2: "DMS/UIM Get Host Lock ID Response/Result Code", - } - -dms_uim_get_ck_status_req_tlvs = { # 64 - 1: "DMS/UIM Get Control Key Status Request/Facility", - } - -dms_uim_get_ck_status_rsp_tlvs = { # 64 - 1: "DMS/UIM Get Control Key Status Response/Status", - 2: "DMS/UIM Get Control Key Status Response/Result Code", - 16: "DMS/UIM Get Control Key Status Response/Blocking", - } - -dms_uim_set_ck_prot_req_tlvs = { # 65 - 1: "DMS/UIM Set Control Key Protection Request/Facility", - } - -dms_uim_set_ck_prot_rsp_tlvs = { # 65 - 2: "DMS/UIM Set Control Key Protection Response/Result Code", - 16: "DMS/UIM Set Control Key Protection Response/Status", - } - -dms_uim_unblock_ck_req_tlvs = { # 66 - 1: "DMS/UIM Unblock Control Key Request/Facility", - } - -dms_uim_unblock_ck_rsp_tlvs = { # 66 - 2: "DMS/UIM Unblock Control Key Response/Result Code", - 16: "DMS/UIM Unblock Control Key Response/Status", - } - -dms_get_imsi_rsp_tlvs = { # 67 - 1: "DMS/Get IMSI Response/IMSI", - 2: "DMS/Get IMSI Response/Result Code", - } - -dms_uim_get_state_rsp_tlvs = { # 68 - 1: "DMS/Get UIM State Response/State", - 2: "DMS/Get UIM State Response/Result Code", - } - -dms_get_band_caps_rsp_tlvs = { # 69 - 1: "DMS/Get Band Capabilities Response/Bands", - 2: "DMS/Get Band Capabilities Response/Result Code", - } - -dms_get_factory_id_rsp_tlvs = { # 70 - 1: "DMS/Get Factory Serial Number Response/ID", - 2: "DMS/Get Factory Serial Number Response/Result Code", - } - -dms_get_firmware_pref_rsp_tlvs = { # 71 - 1: "DMS/Get Firmware Preference Response/Image List", - 2: "DMS/Get Firmware Preference Response/Result Code", - } - -dms_set_firmware_pref_req_tlvs = { # 72 - 1: "DMS/Set Firmware Preference Request/Image List", - 16: "DMS/Set Firmware Preference Request/Override", - 17: "DMS/Set Firmware Preference Request/Index", - } - -dms_set_firmware_pref_rsp_tlvs = { # 72 - 1: "DMS/Set Firmware Preference Response/Image List", - 2: "DMS/Set Firmware Preference Response/Result Code", - 16: "DMS/Set Firmware Preference Response/Maximum", - } - -dms_list_firmware_rsp_tlvs = { # 73 - 1: "DMS/List Stored Firmware Response/Image List", - 2: "DMS/List Stored Firmware Response/Result Code", - } - -dms_delete_firmware_req_tlvs = { # 74 - 1: "DMS/Delete Stored Firmware Request/Image", - } - -dms_delete_firmware_rsp_tlvs = { # 74 - 2: "DMS/Delete Stored Firmware Response/Result Code", - } - -dms_set_time_req_tlvs = { # 75 - 1: "DMS/Set Device Time Request/Time", - 16: "DMS/Set Device Time Request/Type", - } - -dms_set_time_rsp_tlvs = { # 75 - 2: "DMS/Set Device Time Response/Result Code", - } - -dms_get_firmware_info_req_tlvs = { # 76 - 1: "DMS/Get Stored Firmware Info Request/Image", - } - -dms_get_firmware_info_rsp_tlvs = { # 76 - 2: "DMS/Get Stored Firmware Info Response/Result Code", - 16: "DMS/Get Stored Firmware Info Response/Boot Version", - 17: "DMS/Get Stored Firmware Info Response/PRI Version", - 18: "DMS/Get Stored Firmware Info Response/OEM Lock ID", - } - -dms_get_alt_net_cfg_rsp_tlvs = { # 77 - 1: "DMS/Get Alternate Net Config Response/Config", - 2: "DMS/Get Alternate Net Config Response/Result Code", - } - -dms_set_alt_net_cfg_req_tlvs = { # 78 - 1: "DMS/Set Alternate Net Config Request/Config", - } - -dms_set_alt_net_cfg_rsp_tlvs = { # 78 - 2: "DMS/Set Alternate Net Config Response/Result Code", - } - -dms_get_img_dload_mode_rsp_tlvs = { # 79 - 2: "DMS/Get Image Download Mode Response/Result Code", - 16: "DMS/Get Image Download Mode Response/Mode", - } - -dms_set_img_dload_mode_req_tlvs = { # 80 - 1: "DMS/Set Image Download Mode Request/Mode", - } - -dms_set_img_dload_mode_rsp_tlvs = { # 80 - 2: "DMS/Set Image Download Mode Response/Result Code", - } - -dms_cmds = { - 0: ("RESET", None, dms_reset_rsp_tlvs, None), - 1: ("SET_EVENT", dms_set_event_req_tlvs, dms_set_event_rsp_tlvs, dms_set_event_ind_tlvs), - 32: ("GET_CAPS", None, dms_get_caps_rsp_tlvs, None), - 33: ("GET_MANUFACTURER", None, dms_get_manufacturer_rsp_tlvs, None), - 34: ("GET_MODEL_ID", None, dms_get_model_id_rsp_tlvs, None), - 35: ("GET_REV_ID", None, dms_get_rev_id_rsp_tlvs, None), - 36: ("GET_NUMBER", None, dms_get_number_rsp_tlvs, None), - 37: ("GET_IDS", None, dms_get_ids_rsp_tlvs, None), - 38: ("GET_POWER_STATE", None, dms_get_power_state_rsp_tlvs, None), - 39: ("UIM_SET_PIN_PROT", dms_uim_set_pin_prot_req_tlvs, dms_uim_set_pin_prot_rsp_tlvs, None), - 40: ("UIM_PIN_VERIFY", dms_uim_pin_verify_req_tlvs, dms_uim_pin_verify_rsp_tlvs, None), - 41: ("UIM_PIN_UNBLOCK", dms_uim_pin_unblock_req_tlvs, dms_uim_pin_unblock_rsp_tlvs, None), - 42: ("UIM_PIN_CHANGE", dms_uim_pin_change_req_tlvs, dms_uim_pin_change_rsp_tlvs, None), - 43: ("UIM_GET_PIN_STATUS", None, dms_uim_get_pin_status_rsp_tlvs, None), - 44: ("GET_MSM_ID", None, dms_get_msm_id_rsp_tlvs, None), - 45: ("GET_OPERTAING_MODE", None, dms_get_opertaing_mode_rsp_tlvs, None), - 46: ("SET_OPERATING_MODE", dms_set_operating_mode_req_tlvs, dms_set_operating_mode_rsp_tlvs, None), - 47: ("GET_TIME", None, dms_get_time_rsp_tlvs, None), - 48: ("GET_PRL_VERSION", None, dms_get_prl_version_rsp_tlvs, None), - 49: ("GET_ACTIVATED_STATE", None, dms_get_activated_state_rsp_tlvs, None), - 50: ("ACTIVATE_AUTOMATIC", dms_activate_automatic_req_tlvs, dms_activate_automatic_rsp_tlvs, None), - 51: ("ACTIVATE_MANUAL", dms_activate_manual_req_tlvs, dms_activate_manual_rsp_tlvs, None), - 52: ("GET_USER_LOCK_STATE", None, dms_get_user_lock_state_rsp_tlvs, None), - 53: ("SET_USER_LOCK_STATE", dms_set_user_lock_state_req_tlvs, dms_set_user_lock_state_rsp_tlvs, None), - 54: ("SET_USER_LOCK_CODE", dms_set_user_lock_code_req_tlvs, dms_set_user_lock_code_rsp_tlvs, None), - 55: ("READ_USER_DATA", None, dms_read_user_data_rsp_tlvs, None), - 56: ("WRITE_USER_DATA", dms_write_user_data_req_tlvs, dms_write_user_data_rsp_tlvs, None), - 57: ("READ_ERI_FILE", None, dms_read_eri_file_rsp_tlvs, None), - 58: ("FACTORY_DEFAULTS", dms_factory_defaults_req_tlvs, dms_factory_defaults_rsp_tlvs, None), - 59: ("VALIDATE_SPC", dms_validate_spc_req_tlvs, dms_validate_spc_rsp_tlvs, None), - 60: ("UIM_GET_ICCID", None, dms_uim_get_iccid_rsp_tlvs, None), - 61: ("GET_FIRWARE_ID", None, dms_get_firware_id_rsp_tlvs, None), - 62: ("SET_FIRMWARE_ID", dms_set_firmware_id_req_tlvs, dms_set_firmware_id_rsp_tlvs, None), - 63: ("GET_HOST_LOCK_ID", None, dms_get_host_lock_id_rsp_tlvs, None), - 64: ("UIM_GET_CK_STATUS", dms_uim_get_ck_status_req_tlvs, dms_uim_get_ck_status_rsp_tlvs, None), - 65: ("UIM_SET_CK_PROT", dms_uim_set_ck_prot_req_tlvs, dms_uim_set_ck_prot_rsp_tlvs, None), - 66: ("UIM_UNBLOCK_CK", dms_uim_unblock_ck_req_tlvs, dms_uim_unblock_ck_rsp_tlvs, None), - 67: ("GET_IMSI", None, dms_get_imsi_rsp_tlvs, None), - 68: ("UIM_GET_STATE", None, dms_uim_get_state_rsp_tlvs, None), - 69: ("GET_BAND_CAPS", None, dms_get_band_caps_rsp_tlvs, None), - 70: ("GET_FACTORY_ID", None, dms_get_factory_id_rsp_tlvs, None), - 71: ("GET_FIRMWARE_PREF", None, dms_get_firmware_pref_rsp_tlvs, None), - 72: ("SET_FIRMWARE_PREF", dms_set_firmware_pref_req_tlvs, dms_set_firmware_pref_rsp_tlvs, None), - 73: ("LIST_FIRMWARE", None, dms_list_firmware_rsp_tlvs, None), - 74: ("DELETE_FIRMWARE", dms_delete_firmware_req_tlvs, dms_delete_firmware_rsp_tlvs, None), - 75: ("SET_TIME", dms_set_time_req_tlvs, dms_set_time_rsp_tlvs, None), - 76: ("GET_FIRMWARE_INFO", dms_get_firmware_info_req_tlvs, dms_get_firmware_info_rsp_tlvs, None), - 77: ("GET_ALT_NET_CFG", None, dms_get_alt_net_cfg_rsp_tlvs, None), - 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", - } - -nas_abort_req_tlvs = { # 1 - 1: "NAS/Abort Request/Transaction ID", - } - -nas_abort_rsp_tlvs = { # 1 - 2: "NAS/Abort Response/Result Code", - } - -nas_set_event_req_tlvs = { # 2 - 16: "NAS/Set Event Report Request/Signal Indicator", - 17: "NAS/Set Event Report Request/RF Indicator", - 18: "NAS/Set Event Report Request/Registration Reject Indicator", - 19: "NAS/Set Event Report Request/RSSI Indicator", - 20: "NAS/Set Event Report Request/ECIO Indicator", - 21: "NAS/Set Event Report Request/IO Indicator", - 22: "NAS/Set Event Report Request/SINR Indicator", - 23: "NAS/Set Event Report Request/Error Rate Indicator", - 24: "NAS/Set Event Report Request/RSRQ Indicator", - } - -nas_set_event_rsp_tlvs = { # 2 - 2: "NAS/Set Event Report Response/Result Code", - } - -nas_set_event_ind_tlvs = { # 2 - 16: "NAS/Event Report/Signal Strength", - 17: "NAS/Event Report/RF Info", - 18: "NAS/Event Report/Registration Reject", - 19: "NAS/Event Report/RSSI", - 20: "NAS/Event Report/ECIO", - 21: "NAS/Event Report/IO", - 22: "NAS/Event Report/SINR", - 23: "NAS/Event Report/Error Rate", - 24: "NAS/Event Report/RSRQ", - } - -nas_set_reg_event_req_tlvs = { # 3 - 16: "NAS/Set Registration Event Report Request/System Select Indicator", - 18: "NAS/Set Registration Event Report Request/DDTM Indicator", - 19: "NAS/Set Registration Event Report Request/Serving System Indicator", - } - -nas_set_reg_event_rsp_tlvs = { # 3 - 2: "NAS/Set Registration Event Report Response/Result Code", - } - -nas_get_rssi_req_tlvs = { # 32 - 16: "NAS/Get Signal Strength Request/Request Mask", - } - -nas_get_rssi_rsp_tlvs = { # 32 - 1: "NAS/Get Signal Strength Response/Signal Strength", - 2: "NAS/Get Signal Strength Response/Result Code", - 16: "NAS/Get Signal Strength Response/Signal Strength List", - 17: "NAS/Get Signal Strength Response/RSSI List", - 18: "NAS/Get Signal Strength Response/ECIO List", - 19: "NAS/Get Signal Strength Response/IO", - 20: "NAS/Get Signal Strength Response/SINR", - 21: "NAS/Get Signal Strength Response/Error Rate List", - } - -nas_scan_nets_rsp_tlvs = { # 33 - 2: "NAS/Perform Network Scan Response/Result Code", - 16: "NAS/Perform Network Scan Response/Network Info", - 17: "NAS/Perform Network Scan Response/Network RAT", - } - -nas_register_net_req_tlvs = { # 34 - 1: "NAS/Initiate Network Register Request/Action", - 16: "NAS/Initiate Network Register Request/Manual Info", - 17: "NAS/Initiate Network Register Request/Change Duration", - } - -nas_register_net_rsp_tlvs = { # 34 - 2: "NAS/Initiate Network Register Response/Result Code", - } - -nas_attach_detach_req_tlvs = { # 35 - 16: "NAS/Initiate Attach Request/Action", - } - -nas_attach_detach_rsp_tlvs = { # 35 - 2: "NAS/Initiate Attach Response/Result Code", - } - -nas_get_ss_info_rsp_tlvs = { # 36 - 1: "NAS/Get Serving System Response/Serving System", - 2: "NAS/Get Serving System Response/Result Code", - 16: "NAS/Get Serving System Response/Roaming Indicator", - 17: "NAS/Get Serving System Response/Data Services", - 18: "NAS/Get Serving System Response/Current PLMN", - 19: "NAS/Get Serving System Response/System ID", - 20: "NAS/Get Serving System Response/Base Station", - 21: "NAS/Get Serving System Response/Roaming List", - 22: "NAS/Get Serving System Response/Default Roaming", - 23: "NAS/Get Serving System Response/Time Zone", - 24: "NAS/Get Serving System Response/Protocol Revision", - } - -nas_get_ss_info_ind_tlvs = { # 36 - 1: "NAS/Serving System Indication/Serving System", - 16: "NAS/Serving System Indication/Roaming Indicator", - 17: "NAS/Serving System Indication/Data Services", - 18: "NAS/Serving System Indication/Current PLMN", - 19: "NAS/Serving System Indication/System ID", - 20: "NAS/Serving System Indication/Base Station", - 21: "NAS/Serving System Indication/Roaming List", - 22: "NAS/Serving System Indication/Default Roaming", - 23: "NAS/Serving System Indication/Time Zone", - 24: "NAS/Serving System Indication/Protocol Revision", - 25: "NAS/Serving System Indication/PLMN Change", - } - -nas_get_home_info_rsp_tlvs = { # 37 - 1: "NAS/Get Home Network Response/Home Network", - 2: "NAS/Get Home Network Response/Result Code", - 16: "NAS/Get Home Network Response/Home IDs", - 17: "NAS/Get Home Network Response/Extended Home Network", - } - -nas_get_net_pref_list_rsp_tlvs = { # 38 - 2: "NAS/Get Preferred Networks Response/Result Code", - 16: "NAS/Get Preferred Networks Response/Networks", - 17: "NAS/Get Preferred Networks Response/Static Networks", - } - -nas_set_net_pref_list_req_tlvs = { # 39 - 16: "NAS/Set Preferred Networks Request/Networks", - } - -nas_set_net_pref_list_rsp_tlvs = { # 39 - 2: "NAS/Set Preferred Networks Response/Result Code", - } - -nas_get_net_ban_list_rsp_tlvs = { # 40 - 2: "NAS/Get Forbidden Networks Response/Result Code", - 16: "NAS/Get Forbidden Networks Response/Networks", - } - -nas_set_net_ban_list_req_tlvs = { # 41 - 16: "NAS/Set Forbidden Networks Request/Networks", - } - -nas_set_net_ban_list_rsp_tlvs = { # 41 - 2: "NAS/Set Forbidden Networks Response/Result Code", - } - -nas_set_tech_pref_req_tlvs = { # 42 - 1: "NAS/Set Technology Preference Request/Preference", - } - -nas_set_tech_pref_rsp_tlvs = { # 42 - 2: "NAS/Set Technology Preference Response/Result Code", - } - -nas_get_tech_pref_rsp_tlvs = { # 43 - 1: "NAS/Get Technology Preference Response/Active Preference", - 2: "NAS/Get Technology Preference Response/Result Code", - 16: "NAS/Get Technology Preference Response/Persistent Preference", - } - -nas_get_accolc_rsp_tlvs = { # 44 - 1: "NAS/Get ACCOLC Response/ACCOLC", - 2: "NAS/Get ACCOLC Response/Result Code", - } - -nas_set_accolc_req_tlvs = { # 45 - 1: "NAS/Set ACCOLC Request/ACCOLC", - } - -nas_set_accolc_rsp_tlvs = { # 45 - 2: "NAS/Set ACCOLC Response/Result Code", - } - -nas_get_syspref_rsp_tlvs = { # 46 - 1: "NAS/Get System Preference/Pref", - 2: "NAS/Get System Preference/Result Code", - } - -nas_get_net_params_rsp_tlvs = { # 47 - 2: "NAS/Get Network Parameters Response/Result Code", - 17: "NAS/Get Network Parameters Response/SCI", - 18: "NAS/Get Network Parameters Response/SCM", - 19: "NAS/Get Network Parameters Response/Registration", - 20: "NAS/Get Network Parameters Response/CDMA 1xEV-DO Revision", - 21: "NAS/Get Network Parameters Response/CDMA 1xEV-DO SCP Custom", - 22: "NAS/Get Network Parameters Response/Roaming", - } - -nas_set_net_params_req_tlvs = { # 48 - 16: "NAS/Set Network Parameters Request/SPC", - 20: "NAS/Set Network Parameters Request/CDMA 1xEV-DO Revision", - 21: "NAS/Set Network Parameters Request/CDMA 1xEV-DO SCP Custom", - 22: "NAS/Set Network Parameters Request/Roaming", - } - -nas_set_net_params_rsp_tlvs = { # 48 - 2: "NAS/Set Network Parameters Response/Result Code", - } - -nas_get_rf_info_rsp_tlvs = { # 49 - 1: "NAS/Get RF Info Response/RF Info", - 2: "NAS/Get RF Info Response/Result Code", - } - -nas_get_aaa_auth_status_rsp_tlvs = { # 50 - 1: "NAS/Get AN-AAA Authentication Status Response/Status", - 2: "NAS/Get AN-AAA Authentication Status Response/Result Code", - } - -nas_set_sys_select_pref_req_tlvs = { # 51 - 16: "NAS/Set System Selection Pref Request/Emergency Mode", - 17: "NAS/Set System Selection Pref Request/Mode", - 18: "NAS/Set System Selection Pref Request/Band", - 19: "NAS/Set System Selection Pref Request/PRL", - 20: "NAS/Set System Selection Pref Request/Roaming", - } - -nas_set_sys_select_pref_rsp_tlvs = { # 51 - 2: "NAS/Set System Selection Pref Response/Result Code", - } - -nas_get_sys_select_pref_rsp_tlvs = { # 52 - 2: "NAS/Get System Selection Pref Response/Result Code", - 16: "NAS/Get System Selection Pref Response/Emergency Mode", - 17: "NAS/Get System Selection Pref Response/Mode", - 18: "NAS/Get System Selection Pref Response/Band", - 19: "NAS/Get System Selection Pref Response/PRL", - 20: "NAS/Get System Selection Pref Response/Roaming", - } - -nas_get_sys_select_pref_ind_tlvs = { # 52 - 16: "NAS/System Selection Pref Indication/Emergency Mode", - 17: "NAS/System Selection Pref Indication/Mode", - 18: "NAS/System Selection Pref Indication/Band", - 19: "NAS/System Selection Pref Indication/PRL", - 20: "NAS/System Selection Pref Indication/Roaming", - } - -nas_set_ddtm_pref_req_tlvs = { # 55 - 1: "NAS/Set DDTM Preference Request/DDTM", - } - -nas_set_ddtm_pref_rsp_tlvs = { # 55 - 2: "NAS/Set DDTM Preference Response/Result Code", - } - -nas_get_ddtm_pref_rsp_tlvs = { # 56 - 1: "NAS/Get DDTM Preference Response/DDTM", - 2: "NAS/Get DDTM Preference Response/Result Code", - } - -nas_get_ddtm_pref_ind_tlvs = { # 56 - 1: "NAS/DDTM Preference Indication/DDTM", - } - -nas_get_plmn_mode_rsp_tlvs = { # 59 - 2: "NAS/Get CSP PLMN Mode Response/Result Code", - 16: "NAS/Get CSP PLMN Mode Response/Mode", - } - -nas_plmn_mode_ind_ind_tlvs = { # 60 - 16: "NAS/CSP PLMN Mode Indication/Mode", - } - -nas_get_plmn_name_req_tlvs = { # 68 - 1: "NAS/Get PLMN Name Request/PLMN", - } - -nas_get_plmn_name_rsp_tlvs = { # 68 - 2: "NAS/Get PLMN Name Response/Result Code", - 16: "NAS/Get PLMN Name Response/Name", - } - -nas_cmds = { - 0: ("RESET", None, nas_reset_rsp_tlvs, None), - 1: ("ABORT", nas_abort_req_tlvs, nas_abort_rsp_tlvs, None), - 2: ("SET_EVENT", nas_set_event_req_tlvs, nas_set_event_rsp_tlvs, nas_set_event_ind_tlvs), - 3: ("SET_REG_EVENT", nas_set_reg_event_req_tlvs, nas_set_reg_event_rsp_tlvs, None), - 32: ("GET_RSSI", nas_get_rssi_req_tlvs, nas_get_rssi_rsp_tlvs, None), - 33: ("SCAN_NETS", None, nas_scan_nets_rsp_tlvs, None), - 34: ("REGISTER_NET", nas_register_net_req_tlvs, nas_register_net_rsp_tlvs, None), - 35: ("ATTACH_DETACH", nas_attach_detach_req_tlvs, nas_attach_detach_rsp_tlvs, None), - 36: ("GET_SS_INFO", None, nas_get_ss_info_rsp_tlvs, nas_get_ss_info_ind_tlvs), - 37: ("GET_HOME_INFO", None, nas_get_home_info_rsp_tlvs, None), - 38: ("GET_NET_PREF_LIST", None, nas_get_net_pref_list_rsp_tlvs, None), - 39: ("SET_NET_PREF_LIST", nas_set_net_pref_list_req_tlvs, nas_set_net_pref_list_rsp_tlvs, None), - 40: ("GET_NET_BAN_LIST", None, nas_get_net_ban_list_rsp_tlvs, None), - 41: ("SET_NET_BAN_LIST", nas_set_net_ban_list_req_tlvs, nas_set_net_ban_list_rsp_tlvs, None), - 42: ("SET_TECH_PREF", nas_set_tech_pref_req_tlvs, nas_set_tech_pref_rsp_tlvs, None), - 43: ("GET_TECH_PREF", None, nas_get_tech_pref_rsp_tlvs, None), - 44: ("GET_ACCOLC", None, nas_get_accolc_rsp_tlvs, None), - 45: ("SET_ACCOLC", nas_set_accolc_req_tlvs, nas_set_accolc_rsp_tlvs, None), - 46: ("GET_SYSPREF", None, nas_get_syspref_rsp_tlvs, None), - 47: ("GET_NET_PARAMS", None, nas_get_net_params_rsp_tlvs, None), - 48: ("SET_NET_PARAMS", nas_set_net_params_req_tlvs, nas_set_net_params_rsp_tlvs, None), - 49: ("GET_RF_INFO", None, nas_get_rf_info_rsp_tlvs, None), - 50: ("GET_AAA_AUTH_STATUS", None, nas_get_aaa_auth_status_rsp_tlvs, None), - 51: ("SET_SYS_SELECT_PREF", nas_set_sys_select_pref_req_tlvs, nas_set_sys_select_pref_rsp_tlvs, None), - 52: ("GET_SYS_SELECT_PREF", None, nas_get_sys_select_pref_rsp_tlvs, nas_get_sys_select_pref_ind_tlvs), - 55: ("SET_DDTM_PREF", nas_set_ddtm_pref_req_tlvs, nas_set_ddtm_pref_rsp_tlvs, None), - 56: ("GET_DDTM_PREF", None, nas_get_ddtm_pref_rsp_tlvs, nas_get_ddtm_pref_ind_tlvs), - 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", - } - -oma_set_event_req_tlvs = { # 1 - 16: "OMA/Set Event Report Request/NIA", - 17: "OMA/Set Event Report Request/Status", - } - -oma_set_event_rsp_tlvs = { # 1 - 2: "OMA/Set Event Report Response/Result Code", - } - -oma_set_event_ind_tlvs = { # 1 - 16: "OMA/Event Report/NIA", - 17: "OMA/Event Report/Status", - 18: "OMA/Event Report/Failure", - } - -oma_start_session_req_tlvs = { # 32 - 16: "OMA/Start Session Request/Type", - } - -oma_start_session_rsp_tlvs = { # 32 - 2: "OMA/Start Session Response/Result Code", - } - -oma_cancel_session_rsp_tlvs = { # 33 - 2: "OMA/Cancel Session Response/Result Code", - } - -oma_get_session_info_rsp_tlvs = { # 34 - 2: "OMA/Get Session Info Response/Result Code", - 16: "OMA/Get Session Info Response/Info", - 17: "OMA/Get Session Info Response/Failure", - 18: "OMA/Get Session Info Response/Retry", - 19: "OMA/Get Session Info Response/NIA", - } - -oma_send_selection_req_tlvs = { # 35 - 16: "OMA/Send Selection Request/Type", - } - -oma_send_selection_rsp_tlvs = { # 35 - 2: "OMA/Send Selection Response/Result Code", - } - -oma_get_features_rsp_tlvs = { # 36 - 2: "OMA/Get Features Response/Result Code", - 16: "OMA/Get Features Response/Provisioning", - 17: "OMA/Get Features Response/PRL Update", - 18: "OMA/Get Features Response/HFA Feature", - 19: "OMA/Get Features Response/HFA Done State", - } - -oma_set_features_req_tlvs = { # 37 - 16: "OMA/Set Features Response/Provisioning", - 17: "OMA/Set Features Response/PRL Update", - 18: "OMA/Set Features Response/HFA Feature", - } - -oma_set_features_rsp_tlvs = { # 37 - 2: "OMA/Set Features Response/Result Code", - } - -oma_cmds = { - 0: ("RESET", None, oma_reset_rsp_tlvs, None), - 1: ("SET_EVENT", oma_set_event_req_tlvs, oma_set_event_rsp_tlvs, oma_set_event_ind_tlvs), - 32: ("START_SESSION", oma_start_session_req_tlvs, oma_start_session_rsp_tlvs, None), - 33: ("CANCEL_SESSION", None, oma_cancel_session_rsp_tlvs, None), - 34: ("GET_SESSION_INFO", None, oma_get_session_info_rsp_tlvs, None), - 35: ("SEND_SELECTION", oma_send_selection_req_tlvs, oma_send_selection_rsp_tlvs, None), - 36: ("GET_FEATURES", None, oma_get_features_rsp_tlvs, None), - 37: ("SET_FEATURES", oma_set_features_req_tlvs, oma_set_features_rsp_tlvs, None), - } -pds_reset_rsp_tlvs = { # 0 - 2: "PDS/Reset Response/Result Code", - } - -pds_set_event_req_tlvs = { # 1 - 16: "PDS/Set Event Report Request/NMEA Indicator", - 17: "PDS/Set Event Report Request/Mode Indicator", - 18: "PDS/Set Event Report Request/Raw Indicator", - 19: "PDS/Set Event Report Request/XTRA Request Indicator", - 20: "PDS/Set Event Report Request/Time Injection Indicator", - 21: "PDS/Set Event Report Request/Wi-Fi Indicator", - 22: "PDS/Set Event Report Request/Satellite Indicator", - 23: "PDS/Set Event Report Request/VX Network Indicator", - 24: "PDS/Set Event Report Request/SUPL Network Indicator", - 25: "PDS/Set Event Report Request/UMTS CP Network Indicator", - 26: "PDS/Set Event Report Request/PDS Comm Indicator", - } - -pds_set_event_rsp_tlvs = { # 1 - 2: "PDS/Set Event Report Response/Result Code", - } - -pds_set_event_ind_tlvs = { # 1 - 16: "PDS/Event Report/NMEA Sentence", - 17: "PDS/Event Report/NMEA Sentence Plus Mode", - 18: "PDS/Event Report/Position Session Status", - 19: "PDS/Event Report/Parsed Position Data", - 20: "PDS/Event Report/External XTRA Request", - 21: "PDS/Event Report/External Time Injection Request", - 22: "PDS/Event Report/External Wi-Fi Position Request", - 23: "PDS/Event Report/Satellite Info", - 24: "PDS/Event Report/VX Network Initiated Prompt", - 25: "PDS/Event Report/SUPL Network Initiated Prompt", - 26: "PDS/Event Report/UMTS CP Network Initiated Prompt", - 27: "PDS/Event Report/Comm Events", - } - -pds_get_state_rsp_tlvs = { # 32 - 1: "PDS/Get Service State Response/State", - 2: "PDS/Get Service State Response/Result Code", - } - -pds_get_state_ind_tlvs = { # 32 - 1: "PDS/Service State Indication/State", - } - -pds_set_state_req_tlvs = { # 33 - 1: "PDS/Set Service State Request/State", - } - -pds_set_state_rsp_tlvs = { # 33 - 2: "PDS/Set Service State Response/Result Code", - } - -pds_start_session_req_tlvs = { # 34 - 1: "PDS/Start Tracking Session Request/Session", - } - -pds_start_session_rsp_tlvs = { # 34 - 2: "PDS/Start Tracking Session Response/Result Code", - } - -pds_get_session_info_rsp_tlvs = { # 35 - 1: "PDS/Get Tracking Session Info Response/Info", - 2: "PDS/Get Tracking Session Info Response/Result Code", - } - -pds_fix_position_rsp_tlvs = { # 36 - 2: "PDS/Fix Position Response/Result Code", - } - -pds_end_session_rsp_tlvs = { # 37 - 2: "PDS/End Tracking Session Response/Result Code", - } - -pds_get_nmea_cfg_rsp_tlvs = { # 38 - 1: "PDS/Get NMEA Config Response/Config", - 2: "PDS/Get NMEA Config Response/Result Code", - } - -pds_set_nmea_cfg_req_tlvs = { # 39 - 1: "PDS/Set NMEA Config Request/Config", - } - -pds_set_nmea_cfg_rsp_tlvs = { # 39 - 2: "PDS/Set NMEA Config Response/Result Code", - } - -pds_inject_time_req_tlvs = { # 40 - 1: "PDS/Inject Time Reference Request/Time", - } - -pds_inject_time_rsp_tlvs = { # 40 - 2: "PDS/Inject Time Reference Response/Result Code", - } - -pds_get_defaults_rsp_tlvs = { # 41 - 1: "PDS/Get Defaults Response/Defaults", - 2: "PDS/Get Defaults Response/Result Code", - } - -pds_set_defaults_req_tlvs = { # 42 - 1: "PDS/Set Defaults Request/Defaults", - } - -pds_set_defaults_rsp_tlvs = { # 42 - 2: "PDS/Set Defaults Response/Result Code", - } - -pds_get_xtra_params_rsp_tlvs = { # 43 - 2: "PDS/Get XTRA Parameters Response/Result Code", - 16: "PDS/Get XTRA Parameters Response/Automatic", - 17: "PDS/Get XTRA Parameters Response/Medium", - 18: "PDS/Get XTRA Parameters Response/Network", - 19: "PDS/Get XTRA Parameters Response/Validity", - 20: "PDS/Get XTRA Parameters Response/Embedded", - } - -pds_set_xtra_params_req_tlvs = { # 44 - 16: "PDS/Set XTRA Parameters Request/Automatic", - 17: "PDS/Set XTRA Parameters Request/Medium", - 18: "PDS/Set XTRA Parameters Request/Network", - 20: "PDS/Set XTRA Parameters Request/Embedded", - } - -pds_set_xtra_params_rsp_tlvs = { # 44 - 2: "PDS/Set XTRA Parameters Response/Result Code", - } - -pds_force_xtra_dl_rsp_tlvs = { # 45 - 2: "PDS/Force XTRA Download Response/Result Code", - } - -pds_get_agps_config_req_tlvs = { # 46 - 18: "PDS/Get AGPS Config Request/Network Mode", - } - -pds_get_agps_config_rsp_tlvs = { # 46 - 2: "PDS/Get AGPS Config Response/Result Code", - 16: "PDS/Get AGPS Config Response/Server", - 17: "PDS/Get AGPS Config Response/Server URL", - } - -pds_set_agps_config_req_tlvs = { # 47 - 16: "PDS/Set AGPS Config Request/Server", - 17: "PDS/Set AGPS Config Request/Server URL", - 18: "PDS/Set AGPS Config Request/Network Mode", - } - -pds_set_agps_config_rsp_tlvs = { # 47 - 2: "PDS/Set AGPS Config Response/Result Code", - } - -pds_get_svc_autotrack_rsp_tlvs = { # 48 - 1: "PDS/Get Service Auto-Tracking State Response/State", - 2: "PDS/Get Service Auto-Tracking State Response/Result Code", - } - -pds_set_svc_autotrack_req_tlvs = { # 49 - 1: "PDS/Set Service Auto-Tracking State Request/State", - } - -pds_set_svc_autotrack_rsp_tlvs = { # 49 - 2: "PDS/Set Service Auto-Tracking State Response/Result Code", - } - -pds_get_com_autotrack_rsp_tlvs = { # 50 - 1: "PDS/Get COM Port Auto-Tracking Config Response/Config", - 2: "PDS/Get COM Port Auto-Tracking Config Response/Result Code", - } - -pds_set_com_autotrack_req_tlvs = { # 51 - 1: "PDS/Set COM Port Auto-Tracking Config Request/Config", - } - -pds_set_com_autotrack_rsp_tlvs = { # 51 - 2: "PDS/Set COM Port Auto-Tracking Config Response/Result Code", - } - -pds_reset_data_req_tlvs = { # 52 - 16: "PDS/Reset PDS Data Request/GPS Data", - 17: "PDS/Reset PDS Data Request/Cell Data", - } - -pds_reset_data_rsp_tlvs = { # 52 - 2: "PDS/Reset PDS Data Response/Result Code", - } - -pds_single_fix_req_tlvs = { # 53 - 16: "PDS/Single Position Fix Request/Mode", - 17: "PDS/Single Position Fix Request/Timeout", - 18: "PDS/Single Position Fix Request/Accuracy", - } - -pds_single_fix_rsp_tlvs = { # 53 - 2: "PDS/Single Position Fix Response/Result Code", - } - -pds_get_version_rsp_tlvs = { # 54 - 1: "PDS/Get Service Version Response/Version", - 2: "PDS/Get Service Version Response/Result Code", - } - -pds_inject_xtra_req_tlvs = { # 55 - 1: "PDS/Inject XTRA Data Request/Data", - } - -pds_inject_xtra_rsp_tlvs = { # 55 - 2: "PDS/Inject XTRA Data Response/Result Code", - } - -pds_inject_position_req_tlvs = { # 56 - 16: "PDS/Inject Position Data Request/Timestamp", - 17: "PDS/Inject Position Data Request/Latitude", - 18: "PDS/Inject Position Data Request/Longitude", - 19: "PDS/Inject Position Data Request/Altitude Ellipsoid", - 20: "PDS/Inject Position Data Request/Altitude Sea Level", - 21: "PDS/Inject Position Data Request/Horizontal Uncertainty", - 22: "PDS/Inject Position Data Request/Vertical Uncertainty", - 23: "PDS/Inject Position Data Request/Horizontal Confidence", - 24: "PDS/Inject Position Data Request/Vertical Confidence", - 25: "PDS/Inject Position Data Request/Source", - } - -pds_inject_position_rsp_tlvs = { # 56 - 2: "PDS/Inject Position Data Response/Result Code", - } - -pds_inject_wifi_req_tlvs = { # 57 - 16: "PDS/Inject Wi-Fi Position Data Request/Time", - 17: "PDS/Inject Wi-Fi Position Data Request/Position", - 18: "PDS/Inject Wi-Fi Position Data Request/AP Info", - } - -pds_inject_wifi_rsp_tlvs = { # 57 - 2: "PDS/Inject Wi-Fi Position Data Response/Result Code", - } - -pds_get_sbas_config_rsp_tlvs = { # 58 - 2: "PDS/Get SBAS Config Response/Result Code", - 16: "PDS/Get SBAS Config Response/Config", - } - -pds_set_sbas_config_req_tlvs = { # 59 - 16: "PDS/Set SBAS Config Request/Config", - } - -pds_set_sbas_config_rsp_tlvs = { # 59 - 2: "PDS/Set SBAS Config Response/Result Code", - } - -pds_send_ni_response_req_tlvs = { # 60 - 1: "PDS/Send Network Initiated Response Request/Action", - 16: "PDS/Send Network Initiated Response Request/VX", - 17: "PDS/Send Network Initiated Response Request/SUPL", - 18: "PDS/Send Network Initiated Response Request/UMTS CP", - } - -pds_send_ni_response_rsp_tlvs = { # 60 - 2: "PDS/Send Network Initiated Response Response/Result Code", - } - -pds_inject_abs_time_req_tlvs = { # 61 - 1: "PDS/Inject Absolute Time Request/Time", - } - -pds_inject_abs_time_rsp_tlvs = { # 61 - 2: "PDS/Inject Absolute Time Response/Result Code", - } - -pds_inject_efs_req_tlvs = { # 62 - 1: "PDS/Inject EFS Data Request/Date File", - } - -pds_inject_efs_rsp_tlvs = { # 62 - 2: "PDS/Inject EFS Data Response/Result Code", - } - -pds_get_dpo_config_rsp_tlvs = { # 63 - 2: "PDS/Get DPO Config Response/Result Code", - 16: "PDS/Get DPO Config Response/Config", - } - -pds_set_dpo_config_req_tlvs = { # 64 - 1: "PDS/Set DPO Config Request/Config", - } - -pds_set_dpo_config_rsp_tlvs = { # 64 - 2: "PDS/Set DPO Config Response/Result Code", - } - -pds_get_odp_config_rsp_tlvs = { # 65 - 2: "PDS/Get ODP Config Response/Result Code", - 16: "PDS/Get ODP Config Response/Config", - } - -pds_set_odp_config_req_tlvs = { # 66 - 16: "PDS/Set ODP Config Request/Config", - } - -pds_set_odp_config_rsp_tlvs = { # 66 - 2: "PDS/Set ODP Config Response/Result Code", - } - -pds_cancel_single_fix_rsp_tlvs = { # 67 - 2: "PDS/Cancel Single Position Fix Response/Result Code", - } - -pds_get_gps_state_rsp_tlvs = { # 68 - 2: "PDS/Get GPS State Response/Result Code", - 16: "PDS/Get GPS State Response/State", - } - -pds_get_methods_rsp_tlvs = { # 80 - 2: "PDS/Get Position Methods State Response/Result Code", - 16: "PDS/Get Position Methods State Response/XTRA Time", - 17: "PDS/Get Position Methods State Response/XTRA Data", - 18: "PDS/Get Position Methods State Response/Wi-Fi", - } - -pds_set_methods_req_tlvs = { # 81 - 16: "PDS/Set Position Methods State Request/XTRA Time", - 17: "PDS/Set Position Methods State Request/XTRA Data", - 18: "PDS/Set Position Methods State Request/Wi-Fi", - } - -pds_set_methods_rsp_tlvs = { # 81 - 2: "PDS/Set Position Methods State Response/Result Code", - } - -pds_cmds = { - 0: ("RESET", None, pds_reset_rsp_tlvs, None), - 1: ("SET_EVENT", pds_set_event_req_tlvs, pds_set_event_rsp_tlvs, pds_set_event_ind_tlvs), - 32: ("GET_STATE", None, pds_get_state_rsp_tlvs, pds_get_state_ind_tlvs), - 33: ("SET_STATE", pds_set_state_req_tlvs, pds_set_state_rsp_tlvs, None), - 34: ("START_SESSION", pds_start_session_req_tlvs, pds_start_session_rsp_tlvs, None), - 35: ("GET_SESSION_INFO", None, pds_get_session_info_rsp_tlvs, None), - 36: ("FIX_POSITION", None, pds_fix_position_rsp_tlvs, None), - 37: ("END_SESSION", None, pds_end_session_rsp_tlvs, None), - 38: ("GET_NMEA_CFG", None, pds_get_nmea_cfg_rsp_tlvs, None), - 39: ("SET_NMEA_CFG", pds_set_nmea_cfg_req_tlvs, pds_set_nmea_cfg_rsp_tlvs, None), - 40: ("INJECT_TIME", pds_inject_time_req_tlvs, pds_inject_time_rsp_tlvs, None), - 41: ("GET_DEFAULTS", None, pds_get_defaults_rsp_tlvs, None), - 42: ("SET_DEFAULTS", pds_set_defaults_req_tlvs, pds_set_defaults_rsp_tlvs, None), - 43: ("GET_XTRA_PARAMS", None, pds_get_xtra_params_rsp_tlvs, None), - 44: ("SET_XTRA_PARAMS", pds_set_xtra_params_req_tlvs, pds_set_xtra_params_rsp_tlvs, None), - 45: ("FORCE_XTRA_DL", None, pds_force_xtra_dl_rsp_tlvs, None), - 46: ("GET_AGPS_CONFIG", pds_get_agps_config_req_tlvs, pds_get_agps_config_rsp_tlvs, None), - 47: ("SET_AGPS_CONFIG", pds_set_agps_config_req_tlvs, pds_set_agps_config_rsp_tlvs, None), - 48: ("GET_SVC_AUTOTRACK", None, pds_get_svc_autotrack_rsp_tlvs, None), - 49: ("SET_SVC_AUTOTRACK", pds_set_svc_autotrack_req_tlvs, pds_set_svc_autotrack_rsp_tlvs, None), - 50: ("GET_COM_AUTOTRACK", None, pds_get_com_autotrack_rsp_tlvs, None), - 51: ("SET_COM_AUTOTRACK", pds_set_com_autotrack_req_tlvs, pds_set_com_autotrack_rsp_tlvs, None), - 52: ("RESET_DATA", pds_reset_data_req_tlvs, pds_reset_data_rsp_tlvs, None), - 53: ("SINGLE_FIX", pds_single_fix_req_tlvs, pds_single_fix_rsp_tlvs, None), - 54: ("GET_VERSION", None, pds_get_version_rsp_tlvs, None), - 55: ("INJECT_XTRA", pds_inject_xtra_req_tlvs, pds_inject_xtra_rsp_tlvs, None), - 56: ("INJECT_POSITION", pds_inject_position_req_tlvs, pds_inject_position_rsp_tlvs, None), - 57: ("INJECT_WIFI", pds_inject_wifi_req_tlvs, pds_inject_wifi_rsp_tlvs, None), - 58: ("GET_SBAS_CONFIG", None, pds_get_sbas_config_rsp_tlvs, None), - 59: ("SET_SBAS_CONFIG", pds_set_sbas_config_req_tlvs, pds_set_sbas_config_rsp_tlvs, None), - 60: ("SEND_NI_RESPONSE", pds_send_ni_response_req_tlvs, pds_send_ni_response_rsp_tlvs, None), - 61: ("INJECT_ABS_TIME", pds_inject_abs_time_req_tlvs, pds_inject_abs_time_rsp_tlvs, None), - 62: ("INJECT_EFS", pds_inject_efs_req_tlvs, pds_inject_efs_rsp_tlvs, None), - 63: ("GET_DPO_CONFIG", None, pds_get_dpo_config_rsp_tlvs, None), - 64: ("SET_DPO_CONFIG", pds_set_dpo_config_req_tlvs, pds_set_dpo_config_rsp_tlvs, None), - 65: ("GET_ODP_CONFIG", None, pds_get_odp_config_rsp_tlvs, None), - 66: ("SET_ODP_CONFIG", pds_set_odp_config_req_tlvs, pds_set_odp_config_rsp_tlvs, None), - 67: ("CANCEL_SINGLE_FIX", None, pds_cancel_single_fix_rsp_tlvs, None), - 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", - } - -rms_get_sms_wake_rsp_tlvs = { # 32 - 2: "RMS/Get SMS Wake Response/Result Code", - 16: "RMS/Get SMS Wake Response/State", - 17: "RMS/Get SMS Wake Request/Mask", - } - -rms_set_sms_wake_req_tlvs = { # 33 - 16: "RMS/Set SMS Wake Request/State", - 17: "RMS/Set SMS Wake Request/Mask", - } - -rms_set_sms_wake_rsp_tlvs = { # 33 - 2: "RMS/Set SMS Wake Response/Result Code", - } - -rms_cmds = { - 0: ("RESET", None, rms_reset_rsp_tlvs, None), - 32: ("GET_SMS_WAKE", None, rms_get_sms_wake_rsp_tlvs, None), - 33: ("SET_SMS_WAKE", rms_set_sms_wake_req_tlvs, rms_set_sms_wake_rsp_tlvs, None), - } -voice_orig_ussd_req_tlvs = { # 58 - 1: "Voice/Initiate USSD Request/Info", - } - -voice_orig_ussd_rsp_tlvs = { # 58 - 2: "Voice/Initiate USSD Response/Result Code", - 16: "Voice/Initiate USSD Response/Fail Cause", - 17: "Voice/Initiate USSD Response/Alpha ID", - 18: "Voice/Initiate USSD Response/Data", - } - -voice_answer_ussd_req_tlvs = { # 59 - 1: "Voice/Answer USSD Request/Info", - } - -voice_answer_ussd_rsp_tlvs = { # 59 - 2: "Voice/Answer USSD Response/Result Code", - } - -voice_cancel_ussd_rsp_tlvs = { # 60 - 2: "Voice/Cancel USSD Response/Result Code", - } - -voice_ussd_ind_ind_tlvs = { # 62 - 1: "Voice/USSD Indication/Type", - 16: "Voice/USSD Indication/Data", - } - -voice_async_orig_ussd_req_tlvs = { # 67 - 1: "Voice/Async Initiate USSD Request/Info", - } - -voice_async_orig_ussd_rsp_tlvs = { # 67 - 2: "Voice/Async Initiate USSD Response/Result Code", - } - -voice_async_orig_ussd_ind_tlvs = { # 67 - 16: "Voice/USSD Async Indication/Error", - 17: "Voice/USSD Async Indication/Fail Cause", - 18: "Voice/USSD Async Indication/Info", - 19: "Voice/USSD Async Indication/Alpha ID", - } - -voice_cmds = { - 3: ("INDICATION_REG", None, None, None), - 32: ("CALL_ORIGINATE", None, None, None), - 33: ("CALL_END", None, None, None), - 34: ("CALL_ANSWER", None, None, None), - 36: ("GET_CALL_INFO", None, None, None), - 37: ("OTASP_STATUS_IND", None, None, None), - 38: ("INFO_REC_IND", None, None, None), - 39: ("SEND_FLASH", None, None, None), - 40: ("BURST_DTMF", None, None, None), - 41: ("START_CONT_DTMF", None, None, None), - 42: ("STOP_CONT_DTMF", None, None, None), - 43: ("DTMF_IND", None, None, None), - 44: ("SET_PRIVACY_PREF", None, None, None), - 45: ("PRIVACY_IND", None, None, None), - 46: ("ALL_STATUS_IND", None, None, None), - 47: ("GET_ALL_STATUS", None, None, None), - 49: ("MANAGE_CALLS", None, None, None), - 50: ("SUPS_NOTIFICATION_IND", None, None, None), - 51: ("SET_SUPS_SERVICE", None, None, None), - 52: ("GET_CALL_WAITING", None, None, None), - 53: ("GET_CALL_BARRING", None, None, None), - 54: ("GET_CLIP", None, None, None), - 55: ("GET_CLIR", None, None, None), - 56: ("GET_CALL_FWDING", None, None, None), - 57: ("SET_CALL_BARRING_PWD", None, None, None), - 58: ("ORIG_USSD", voice_orig_ussd_req_tlvs, voice_orig_ussd_rsp_tlvs, None), - 59: ("ANSWER_USSD", voice_answer_ussd_req_tlvs, voice_answer_ussd_rsp_tlvs, None), - 60: ("CANCEL_USSD", None, voice_cancel_ussd_rsp_tlvs, None), - 61: ("USSD_RELEASE_IND", None, None, None), - 62: ("USSD_IND", None, None, voice_ussd_ind_ind_tlvs), - 63: ("UUS_IND", None, None, None), - 64: ("SET_CONFIG", None, None, None), - 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", - } - -wds_set_event_req_tlvs = { # 1 - 16: "WDS/Set Event Report Request/Channel Rate Indicator", - 17: "WDS/Set Event Report Request/Transfer Statistics Indicator", - 18: "WDS/Set Event Report Request/Data Bearer Technology Indicator", - 19: "WDS/Set Event Report Request/Dormancy Status Indicator", - 20: "WDS/Set Event Report Request/MIP Status Indicator", - 21: "WDS/Set Event Report Request/Current Data Bearer Technology Indicator", - } - -wds_set_event_rsp_tlvs = { # 1 - 2: "WDS/Set Event Report Response/Result Code", - } - -wds_set_event_ind_tlvs = { # 1 - 16: "WDS/Event Report/TX Packet Successes", - 17: "WDS/Event Report/RX Packet Successes", - 18: "WDS/Event Report/TX Packet Errors", - 19: "WDS/Event Report/RX Packet Errors", - 20: "WDS/Event Report/TX Overflows", - 21: "WDS/Event Report/RX Overflows", - 22: "WDS/Event Report/Channel Rates", - 23: "WDS/Event Report/Data Bearer Technology", - 24: "WDS/Event Report/Dormancy Status", - 25: "WDS/Event Report/TX Bytes", - 26: "WDS/Event Report/RX Bytes", - 27: "WDS/Event Report/MIP Status", - 29: "WDS/Event Report/Current Data Bearer Technology", - } - -wds_abort_req_tlvs = { # 2 - 1: "WDS/Abort Request/Transaction ID", - } - -wds_abort_rsp_tlvs = { # 2 - 2: "WDS/Abort Response/Result Code", - } - -wds_start_net_req_tlvs = { # 32 - 16: "WDS/Start Network Interface Request/Primary DNS", - 17: "WDS/Start Network Interface Request/Secondary DNS", - 18: "WDS/Start Network Interface Request/Primary NBNS", - 19: "WDS/Start Network Interface Request/Secondary NBNS", - 20: "WDS/Start Network Interface Request/Context APN Name", - 21: "WDS/Start Network Interface Request/IP Address", - 22: "WDS/Start Network Interface Request/Authentication", - 23: "WDS/Start Network Interface Request/Username", - 24: "WDS/Start Network Interface Request/Password", - 25: "WDS/Start Network Interface Request/IP Family", - 48: "WDS/Start Network Interface Request/Technology Preference", - 49: "WDS/Start Network Interface Request/3GPP Profile Identifier", - 50: "WDS/Start Network Interface Request/3GPP2 Profile Identifier", - 51: "WDS/Start Network Interface Request/Autoconnect", - 52: "WDS/Start Network Interface Request/Extended Technology Preference", - 53: "WDS/Start Network Interface Request/Call Type", - } - -wds_start_net_rsp_tlvs = { # 32 - 1: "WDS/Start Network Interface Response/Packet Data Handle", - 2: "WDS/Start Network Interface Response/Result Code", - 16: "WDS/Start Network Interface Response/Call End Reason", - 17: "WDS/Start Network Interface Response/Verbose Call End Reason", - } - -wds_stop_net_req_tlvs = { # 33 - 1: "WDS/Stop Network Interface Request/Packet Data Handle", - 16: "WDS/Stop Network Interface Request/Autoconnect", - } - -wds_stop_net_rsp_tlvs = { # 33 - 2: "WDS/Stop Network Interface Response/Result Code", - } - -wds_get_pkt_status_rsp_tlvs = { # 34 - 1: "WDS/Get Packet Service Status Response/Status", - 2: "WDS/Get Packet Service Status Response/Result Code", - } - -wds_get_pkt_status_ind_tlvs = { # 34 - 1: "WDS/Packet Service Status Report/Status", - 16: "WDS/Packet Service Status Report/Call End Reason", - 17: "WDS/Packet Service Status Report/Verbose Call End Reason", - } - -wds_get_rates_rsp_tlvs = { # 35 - 1: "WDS/Get Channel Rates Response/Channel Rates", - 2: "WDS/Get Channel Rates Response/Result Code", - } - -wds_get_statistics_req_tlvs = { # 36 - 1: "WDS/Get Packet Statistics Request/Packet Stats Mask", - } - -wds_get_statistics_rsp_tlvs = { # 36 - 2: "WDS/Get Packet Statistics Response/Result Code", - 16: "WDS/Get Packet Statistics Response/TX Packet Successes", - 17: "WDS/Get Packet Statistics Response/RX Packet Successes", - 18: "WDS/Get Packet Statistics Response/TX Packet Errors", - 19: "WDS/Get Packet Statistics Response/RX Packet Errors", - 20: "WDS/Get Packet Statistics Response/TX Overflows", - 21: "WDS/Get Packet Statistics Response/RX Overflows", - 25: "WDS/Get Packet Statistics Response/TX Bytes", - 26: "WDS/Get Packet Statistics Response/RX Bytes", - 27: "WDS/Get Packet Statistics Response/Previous TX Bytes", - 28: "WDS/Get Packet Statistics Response/Previous RX Bytes", - } - -wds_g0_dormant_rsp_tlvs = { # 37 - 2: "WDS/Go Dormant Response/Result Code", - } - -wds_g0_active_rsp_tlvs = { # 38 - 2: "WDS/Go Active Response/Result Code", - } - -wds_create_profile_req_tlvs = { # 39 - 1: "WDS/Create Profile Request/Profile Type", - 16: "WDS/Create Profile Request/Profile Name", - 17: "WDS/Create Profile Request/PDP Type", - 20: "WDS/Create Profile Request/APN Name", - 21: "WDS/Create Profile Request/Primary DNS", - 22: "WDS/Create Profile Request/Secondary DNS", - 23: "WDS/Create Profile Request/UMTS Requested QoS", - 24: "WDS/Create Profile Request/UMTS Minimum QoS", - 25: "WDS/Create Profile Request/GPRS Requested QoS", - 26: "WDS/Create Profile Request/GPRS Minimum QoS", - 27: "WDS/Create Profile Request/Username", - 28: "WDS/Create Profile Request/Password", - 29: "WDS/Create Profile Request/Authentication", - 30: "WDS/Create Profile Request/IP Address", - 31: "WDS/Create Profile Request/P-CSCF", - } - -wds_create_profile_rsp_tlvs = { # 39 - 1: "WDS/Create Profile Response/Profile Identifier", - 2: "WDS/Create Profile Response/Result Code", - } - -wds_modify_profile_req_tlvs = { # 40 - 1: "WDS/Modify Profile Request/Profile Identifier", - 16: "WDS/Modify Profile Request/Profile Name", - 17: "WDS/Modify Profile Request/PDP Type", - 20: "WDS/Modify Profile Request/APN Name", - 21: "WDS/Modify Profile Request/Primary DNS", - 22: "WDS/Modify Profile Request/Secondary DNS", - 23: "WDS/Modify Profile Request/UMTS Requested QoS", - 24: "WDS/Modify Profile Request/UMTS Minimum QoS", - 25: "WDS/Modify Profile Request/GPRS Requested QoS", - 26: "WDS/Modify Profile Request/GPRS Minimum QoS", - 27: "WDS/Modify Profile Request/Username", - 28: "WDS/Modify Profile Request/Password", - 29: "WDS/Modify Profile Request/Authentication", - 30: "WDS/Modify Profile Request/IP Address", - 31: "WDS/Modify Profile Request/P-CSCF", - 32: "WDS/Modify Profile Request/PDP Access Control Flag", - 33: "WDS/Modify Profile Request/P-CSCF Address Using DHCP", - 34: "WDS/Modify Profile Request/IM CN Flag", - 35: "WDS/Modify Profile Request/Traffic Flow Template ID1 Parameters", - 36: "WDS/Modify Profile Request/Traffic Flow Template ID2 Parameters", - 37: "WDS/Modify Profile Request/PDP Context Number", - 38: "WDS/Modify Profile Request/PDP Context Secondary Flag", - 39: "WDS/Modify Profile Request/PDP Context Primary ID", - 40: "WDS/Modify Profile Request/IPv6 Address", - 41: "WDS/Modify Profile Request/Requested QoS", - 42: "WDS/Modify Profile Request/Minimum QoS", - 43: "WDS/Modify Profile Request/Primary IPv6", - 44: "WDS/Modify Profile Request/Secondary IPv6", - 45: "WDS/Modify Profile Request/Address Allocation Preference", - 46: "WDS/Modify Profile Request/LTE QoS Parameters", - 144: "WDS/Modify Profile Request/Negotiate DNS Server Prefrence", - 145: "WDS/Modify Profile Request/PPP Session Close Timer DO", - 146: "WDS/Modify Profile Request/PPP Session Close Timer 1X", - 147: "WDS/Modify Profile Request/Allow Linger", - 148: "WDS/Modify Profile Request/LCP ACK Timeout", - 149: "WDS/Modify Profile Request/IPCP ACK Timeout", - 150: "WDS/Modify Profile Request/Authentication Timeout", - 154: "WDS/Modify Profile Request/Authentication Protocol", - 155: "WDS/Modify Profile Request/User ID", - 156: "WDS/Modify Profile Request/Authentication Password", - 157: "WDS/Modify Profile Request/Data Rate", - 158: "WDS/Modify Profile Request/Application Type", - 159: "WDS/Modify Profile Request/Data Mode", - 160: "WDS/Modify Profile Request/Application Priority", - 161: "WDS/Modify Profile Request/APN String", - 162: "WDS/Modify Profile Request/PDN Type", - 163: "WDS/Modify Profile Request/P-CSCF Address Needed", - 164: "WDS/Modify Profile Request/Primary IPv4 Address", - 165: "WDS/Modify Profile Request/Secondary IPv4 Address", - 166: "WDS/Modify Profile Request/Primary IPv6 Address", - 167: "WDS/Modify Profile Request/Secondary IPv6 Address", - } - -wds_modify_profile_rsp_tlvs = { # 40 - 2: "WDS/Modify Profile Response/Result Code", - 151: "WDS/Modify Profile Request/LCP Config Retry Count", - 152: "WDS/Modify Profile Request/IPCP Config Retry Count", - 153: "WDS/Modify Profile Request/Authentication Retry", - 224: "WDS/Modify Profile Request/Extended Error Code", - } - -wds_delete_profile_req_tlvs = { # 41 - 1: "WDS/Delete Profile Request/Profile Identifier", - } - -wds_delete_profile_rsp_tlvs = { # 41 - 2: "WDS/Delete Profile Response/Result Code", - } - -wds_get_profile_list_rsp_tlvs = { # 42 - 1: "WDS/Get Profile List Response/Profile List", - 2: "WDS/Get Profile List Response/Result Code", - } - -wds_get_profile_req_tlvs = { # 43 - 1: "WDS/Get Profile Settings Request/Profile Identifier", - } - -wds_get_profile_rsp_tlvs = { # 43 - 2: "WDS/Get Profile Settings Response/Result Code", - 16: "WDS/Get Profile Settings Response/Profile Name", - 17: "WDS/Get Profile Settings Response/PDP Type", - 20: "WDS/Get Profile Settings Response/APN Name", - 21: "WDS/Get Profile Settings Response/Primary DNS", - 22: "WDS/Get Profile Settings Response/Secondary DNS", - 23: "WDS/Get Profile Settings Response/UMTS Requested QoS", - 24: "WDS/Get Profile Settings Response/UMTS Minimum QoS", - 25: "WDS/Get Profile Settings Response/GPRS Requested QoS", - 26: "WDS/Get Profile Settings Response/GPRS Minimum QoS", - 27: "WDS/Get Profile Settings Response/Username", - 29: "WDS/Get Profile Settings Response/Authentication", - 30: "WDS/Get Profile Settings Response/IP Address", - 31: "WDS/Get Profile Settings Response/P-CSCF", - } - -wds_get_defaults_req_tlvs = { # 44 - 1: "WDS/Get Default Settings Request/Profile Type", - } - -wds_get_defaults_rsp_tlvs = { # 44 - 2: "WDS/Get Default Settings Response/Result Code", - 16: "WDS/Get Default Settings Response/Profile Name", - 17: "WDS/Get Default Settings Response/PDP Type", - 20: "WDS/Get Default Settings Response/APN Name", - 21: "WDS/Get Default Settings Response/Primary DNS", - 22: "WDS/Get Default Settings Response/Secondary DNS", - 23: "WDS/Get Default Settings Response/UMTS Requested QoS", - 24: "WDS/Get Default Settings Response/UMTS Minimum QoS", - 25: "WDS/Get Default Settings Response/GPRS Requested QoS", - 26: "WDS/Get Default Settings Response/GPRS Minimum QoS", - 27: "WDS/Get Default Settings Response/Username", - 28: "WDS/Get Default Settings Response/Password", - 29: "WDS/Get Default Settings Response/Authentication", - 30: "WDS/Get Default Settings Response/IP Address", - 31: "WDS/Get Default Settings Response/P-CSCF", - 32: "WDS/Get Default Settings Response/PDP Access Control Flag", - 33: "WDS/Get Default Settings Response/P-CSCF Address Using DHCP", - 34: "WDS/Get Default Settings Response/IM CN Flag", - 35: "WDS/Get Default Settings Response/Traffic Flow Template ID1 Parameters", - 36: "WDS/Get Default Settings Response/Traffic Flow Template ID2 Parameters", - 37: "WDS/Get Default Settings Response/PDP Context Number", - 38: "WDS/Get Default Settings Response/PDP Context Secondary Flag", - 39: "WDS/Get Default Settings Response/PDP Context Primary ID", - 40: "WDS/Get Default Settings Response/IPv6 Address", - 41: "WDS/Get Default Settings Response/Requested QoS", - 42: "WDS/Get Default Settings Response/Minimum QoS", - 43: "WDS/Get Default Settings Response/Primary DNS IPv6 Address", - 44: "WDS/Get Default Settings Response/Secondary DNS IPv6 Address", - 45: "WDS/Get Default Settings Response/DHCP NAS Preference", - 46: "WDS/Get Default Settings Response/LTE QoS Parameters", - 144: "WDS/Get Default Settings Response/Negotiate DSN Server Preferences", - 145: "WDS/Get Default Settings Response/PPP Session CLose Timer DO", - 146: "WDS/Get Default Settings Response/PPP Session Close Timer 1X", - 147: "WDS/Get Default Settings Response/Allow Lingering Interface", - 148: "WDS/Get Default Settings Response/LCP ACK Timeout", - 149: "WDS/Get Default Settings Response/IPCP ACK Timeout", - 150: "WDS/Get Default Settings Response/Authentication Timeout", - 151: "WDS/Get Default Settings Response/LCP Config Retry Count", - 152: "WDS/Get Default Settings Response/IPCP Config Retry Count", - 153: "WDS/Get Default Settings Response/Authentication Retry", - 154: "WDS/Get Default Settings Response/Authentication Protocol", - 155: "WDS/Get Default Settings Response/User ID", - 156: "WDS/Get Default Settings Response/Authentication Password", - 157: "WDS/Get Default Settings Response/Data Rate", - 158: "WDS/Get Default Settings Response/Application Type", - 159: "WDS/Get Default Settings Response/Data Mode", - 160: "WDS/Get Default Settings Response/Application Priority", - 161: "WDS/Get Default Settings Response/APN String", - 162: "WDS/Get Default Settings Response/PDN Type", - 163: "WDS/Get Default Settings Response/P-CSCF Address Needed", - 164: "WDS/Get Default Settings Response/Primary DNS Address", - 165: "WDS/Get Default Settings Response/Secondary DNS Address", - 166: "WDS/Get Default Settings Response/Primary IPv6 Address", - 167: "WDS/Get Default Settings Response/Secondary IPv6 Address", - 224: "WDS/Get Default Settings Response/Extended Error Code", - } - -wds_get_settings_req_tlvs = { # 45 - 16: "WDS/Get Current Settings Request/Requested Settings", - } - -wds_get_settings_rsp_tlvs = { # 45 - 2: "WDS/Get Current Settings Response/Result Code", - 16: "WDS/Get Current Settings Response/Profile Name", - 17: "WDS/Get Current Settings Response/PDP Type", - 20: "WDS/Get Current Settings Response/APN Name", - 21: "WDS/Get Current Settings Response/Primary DNS", - 22: "WDS/Get Current Settings Response/Secondary DNS", - 23: "WDS/Get Current Settings Response/UMTS Granted QoS", - 25: "WDS/Get Current Settings Response/GPRS Granted QoS", - 27: "WDS/Get Current Settings Response/Username", - 29: "WDS/Get Current Settings Response/Authentication", - 30: "WDS/Get Current Settings Response/IP Address", - 31: "WDS/Get Current Settings Response/Profile ID", - 32: "WDS/Get Current Settings Response/Gateway Address", - 33: "WDS/Get Current Settings Response/Gateway Subnet Mask", - 34: "WDS/Get Current Settings Response/P-CSCF", - 35: "WDS/Get Current Settings Response/P-CSCF Server Address List", - 36: "WDS/Get Current Settings Response/P-CSCF Domain Name List", - 37: "WDS/Get Current Settings Response/IPv6 Address", - 38: "WDS/Get Current Settings Response/IPv6 Gateway Address", - 39: "WDS/Get Current Settings Response/Primary IPv6 DNS", - 40: "WDS/Get Current Settings Response/Secondary IPv6 DNS", - 41: "WDS/Get Current Settings Response/MTU", - 42: "WDS/Get Current Settings Response/Domain Name List", - 43: "WDS/Get Current Settings Response/IP Family", - 44: "WDS/Get Current Settings Response/IM CN Flag", - 45: "WDS/Get Current Settings Response/Extended Technology", - 46: "WDS/Get Current Settings Response/P-CSCF IPv6 Address List", - } - -wds_set_mip_req_tlvs = { # 46 - 1: "WDS/Set MIP Mode Request/Mobile IP Mode", - } - -wds_set_mip_rsp_tlvs = { # 46 - 2: "WDS/Set MIP Mode Response/Result Code", - } - -wds_get_mip_rsp_tlvs = { # 47 - 1: "WDS/Get MIP Mode Response/Mobile IP Mode", - 2: "WDS/Get MIP Mode Response/Result Code", - } - -wds_get_dormancy_rsp_tlvs = { # 48 - 1: "WDS/Get Dormancy Response/Dormancy Status", - 2: "WDS/Get Dormancy Response/Result Code", - } - -wds_get_autoconnect_rsp_tlvs = { # 52 - 1: "WDS/Get Autoconnect Setting Response/Autoconnect", - 2: "WDS/Get Autoconnect Setting Response/Result Code", - 16: "WDS/Get Autoconnect Setting Response/Roam", - } - -wds_get_duration_rsp_tlvs = { # 53 - 1: "WDS/Get Data Session Duration Response/Duration", - 2: "WDS/Get Data Session Duration Response/Result Code", - 16: "WDS/Get Data Session Duration Response/Previous Duration", - 17: "WDS/Get Data Session Duration Response/Active Duration", - 18: "WDS/Get Data Session Duration Response/Previous Active Duration", - } - -wds_get_modem_status_rsp_tlvs = { # 54 - 1: "WDS/Get Modem Status Response/Status", - 2: "WDS/Get Modem Status Response/Result Code", - 16: "WDS/Get Modem Status Response/Call End Reason", - } - -wds_get_modem_status_ind_tlvs = { # 54 - 1: "WDS/Modem Status Report/Status", - 16: "WDS/Modem Status Report/Call End Reason", - } - -wds_get_data_bearer_rsp_tlvs = { # 55 - 1: "WDS/Get Data Bearer Technology Response/Technology", - 2: "WDS/Get Data Bearer Technology Response/Result Code", - 16: "WDS/Get Data Bearer Technology Response/Last Call Technology", - } - -wds_get_modem_info_req_tlvs = { # 56 - 1: "WDS/Get Modem Info Request/Requested Status", - 16: "WDS/Get Modem Info Request/Connection Status Indicator", - 17: "WDS/Get Modem Info Request/Transfer Statistics Indicator", - 18: "WDS/Get Modem Info Request/Dormancy Status Indicator", - 19: "WDS/Get Modem Info Request/Data Bearer Technology Indicator", - 20: "WDS/Get Modem Info Request/Channel Rate Indicator", - } - -wds_get_modem_info_rsp_tlvs = { # 56 - 2: "WDS/Get Modem Info Response/Result Code", - 16: "WDS/Get Modem Info Response/Status", - 17: "WDS/Get Modem Info Response/Call End Reason", - 18: "WDS/Get Modem Info Response/TX Bytes", - 19: "WDS/Get Modem Info Response/RX Bytes", - 20: "WDS/Get Modem Info Response/Dormancy Status", - 21: "WDS/Get Modem Info Response/Technology", - 22: "WDS/Get Modem Info Response/Rates", - 23: "WDS/Get Modem Info Response/Previous TX Bytes", - 24: "WDS/Get Modem Info Response/Previous RX Bytes", - 25: "WDS/Get Modem Info Duration Response/Active Duration", - } - -wds_get_modem_info_ind_tlvs = { # 56 - 16: "WDS/Modem Info Report/Status", - 17: "WDS/Modem Info Report/Call End Reason", - 18: "WDS/Modem Info Report/TX Bytes", - 19: "WDS/Modem Info Report/RX Bytes", - 20: "WDS/Modem Info Report/Dormancy Status", - 21: "WDS/Modem Info Report/Technology", - 22: "WDS/Modem Info Report/Rates", - } - -wds_get_active_mip_rsp_tlvs = { # 60 - 1: "WDS/Get Active MIP Profile Response/Index", - 2: "WDS/Get Active MIP Profile Response/Result Code", - } - -wds_set_active_mip_req_tlvs = { # 61 - 1: "WDS/Set Active MIP Profile Request/Index", - } - -wds_set_active_mip_rsp_tlvs = { # 61 - 2: "WDS/Set Active MIP Profile Response/Result Code", - } - -wds_get_mip_profile_req_tlvs = { # 62 - 1: "WDS/Get MIP Profile Request/Index", - } - -wds_get_mip_profile_rsp_tlvs = { # 62 - 2: "WDS/Get MIP Profile Response/Result Code", - 16: "WDS/Get MIP Profile Response/State", - 17: "WDS/Get MIP Profile Response/Home Address", - 18: "WDS/Get MIP Profile Response/Primary Home Agent Address", - 19: "WDS/Get MIP Profile Response/Secondary Home Agent Address", - 20: "WDS/Get MIP Profile Response/Reverse Tunneling", - 21: "WDS/Get MIP Profile Response/NAI", - 22: "WDS/Get MIP Profile Response/HA SPI", - 23: "WDS/Get MIP Profile Response/AAA SPI", - 26: "WDS/Get MIP Profile Response/HA State", - 27: "WDS/Get MIP Profile Response/AAA State", - } - -wds_set_mip_profile_req_tlvs = { # 63 - 1: "WDS/Set MIP Profile Request/Index", - 16: "WDS/Set MIP Profile Request/State", - 17: "WDS/Set MIP Profile Request/Home Address", - 18: "WDS/Set MIP Profile Request/Primary Home Agent Address", - 19: "WDS/Set MIP Profile Request/Secondary Home Agent Address", - 20: "WDS/Set MIP Profile Request/Reverse Tunneling", - 21: "WDS/Set MIP Profile Request/NAI", - 22: "WDS/Set MIP Profile Request/HA SPI", - 23: "WDS/Set MIP Profile Requeste/AAA SPI", - 24: "WDS/Set MIP Profile Request/MN-HA", - 25: "WDS/Set MIP Profile Request/MN-AAA", - } - -wds_set_mip_profile_rsp_tlvs = { # 63 - 2: "WDS/Set MIP Profile Response/Result Code", - } - -wds_get_mip_params_rsp_tlvs = { # 64 - 2: "WDS/Get MIP Parameters Response/Result Code", - 16: "WDS/Get MIP Parameters Response/Mobile IP Mode", - 17: "WDS/Get MIP Parameters Response/Retry Attempt Limit", - 18: "WDS/Get MIP Parameters Response/Retry Attempt Interval", - 19: "WDS/Get MIP Parameters Response/Re-Registration Period", - 20: "WDS/Get MIP Parameters Response/Re-Registration Only With Traffic", - 21: "WDS/Get MIP Parameters Response/MN-HA Authenticator Calculator", - 22: "WDS/Get MIP Parameters Response/MN-HA RFC 2002 BIS Authentication", - } - -wds_set_mip_params_req_tlvs = { # 65 - 1: "WDS/Set MIP Parameters Request/SPC", - 16: "WDS/Set MIP Parameters Request/Mobile IP Mode", - 17: "WDS/Set MIP Parameters Request/Retry Attempt Limit", - 18: "WDS/Set MIP Parameters Request/Retry Attempt Interval", - 19: "WDS/Set MIP Parameters Request/Re-Registration Period", - 20: "WDS/Set MIP Parameters Request/Re-Registration Only With Traffic", - 21: "WDS/Set MIP Parameters Request/MN-HA Authenticator Calculator", - 22: "WDS/Set MIP Parameters Request/MN-HA RFC 2002 BIS Authentication", - } - -wds_set_mip_params_rsp_tlvs = { # 65 - 2: "WDS/Set MIP Parameters Response/Result Code", - } - -wds_get_last_mip_status_rsp_tlvs = { # 66 - 1: "WDS/Get Last MIP Status Response/Status", - 2: "WDS/Get Last MIP Status Response/Result Code", - } - -wds_get_aaa_auth_status_rsp_tlvs = { # 67 - 1: "WDS/Get AN-AAA Authentication Status Response/Status", - 2: "WDS/Get AN-AAA Authentication Status Response/Result Code", - } - -wds_get_cur_data_bearer_rsp_tlvs = { # 68 - 1: "WDS/Get Current Data Bearer Technology Response/Technology", - 2: "WDS/Get Current Data Bearer Technology Response/Result Code", - } - -wds_get_call_list_req_tlvs = { # 69 - 16: "WDS/Get Call List Request/List Type", - } - -wds_get_call_list_rsp_tlvs = { # 69 - 2: "WDS/Get Call List Response/Result Code", - 16: "WDS/Get Call List Response/Full List", - 17: "WDS/Get Call List Response/ID List", - } - -wds_get_call_entry_req_tlvs = { # 70 - 1: "WDS/Get Call Record Request/Record ID", - } - -wds_get_call_entry_rsp_tlvs = { # 70 - 1: "WDS/Get Call Record Response/Record", - 2: "WDS/Get Call Record Response/Result Code", - } - -wds_clear_call_list_rsp_tlvs = { # 71 - 2: "WDS/Clear Call List Response/Result Code", - } - -wds_get_call_list_max_rsp_tlvs = { # 72 - 1: "WDS/Get Call List Max Size Response/Maximum", - 2: "WDS/Get Call List Max Size Response/Result Code", - } - -wds_set_autoconnect_req_tlvs = { # 81 - 1: "WDS/Set Autoconnect Setting Request/Autoconnect", - 16: "WDS/Set Autoconnect Setting Request/Roam", - } - -wds_set_autoconnect_rsp_tlvs = { # 81 - 2: "WDS/Set Autoconnect Setting Response/Result Code", - } - -wds_get_dns_rsp_tlvs = { # 82 - 2: "WDS/Get DNS Setting Response/Result Code", - 16: "WDS/Get DNS Setting Response/Primary", - 17: "WDS/Get DNS Setting Response/Secondary", - 18: "WDS/Get DNS Setting Response/Primary IPv6", - 19: "WDS/Get DNS Setting Response/Secondary IPv6", - } - -wds_set_dns_req_tlvs = { # 83 - 16: "WDS/Set DNS Setting Request/Primary", - 17: "WDS/Set DNS Setting Request/Secondary", - 18: "WDS/Set DNS Setting Request/Primary IPv6 Address", - 19: "WDS/Set DNS Setting Request/Secondary IPv6 Address", - } - -wds_set_dns_rsp_tlvs = { # 83 - 2: "WDS/Set DNS Setting Response/Result Code", - } - -wds_cmds = { - 0: ("RESET", None, wds_reset_rsp_tlvs, None), - 1: ("SET_EVENT", wds_set_event_req_tlvs, wds_set_event_rsp_tlvs, wds_set_event_ind_tlvs), - 2: ("ABORT", wds_abort_req_tlvs, wds_abort_rsp_tlvs, None), - 32: ("START_NET", wds_start_net_req_tlvs, wds_start_net_rsp_tlvs, None), - 33: ("STOP_NET", wds_stop_net_req_tlvs, wds_stop_net_rsp_tlvs, None), - 34: ("GET_PKT_STATUS", None, wds_get_pkt_status_rsp_tlvs, wds_get_pkt_status_ind_tlvs), - 35: ("GET_RATES", None, wds_get_rates_rsp_tlvs, None), - 36: ("GET_STATISTICS", wds_get_statistics_req_tlvs, wds_get_statistics_rsp_tlvs, None), - 37: ("G0_DORMANT", None, wds_g0_dormant_rsp_tlvs, None), - 38: ("G0_ACTIVE", None, wds_g0_active_rsp_tlvs, None), - 39: ("CREATE_PROFILE", wds_create_profile_req_tlvs, wds_create_profile_rsp_tlvs, None), - 40: ("MODIFY_PROFILE", wds_modify_profile_req_tlvs, wds_modify_profile_rsp_tlvs, None), - 41: ("DELETE_PROFILE", wds_delete_profile_req_tlvs, wds_delete_profile_rsp_tlvs, None), - 42: ("GET_PROFILE_LIST", None, wds_get_profile_list_rsp_tlvs, None), - 43: ("GET_PROFILE", wds_get_profile_req_tlvs, wds_get_profile_rsp_tlvs, None), - 44: ("GET_DEFAULTS", wds_get_defaults_req_tlvs, wds_get_defaults_rsp_tlvs, None), - 45: ("GET_SETTINGS", wds_get_settings_req_tlvs, wds_get_settings_rsp_tlvs, None), - 46: ("SET_MIP", wds_set_mip_req_tlvs, wds_set_mip_rsp_tlvs, None), - 47: ("GET_MIP", None, wds_get_mip_rsp_tlvs, None), - 48: ("GET_DORMANCY", None, wds_get_dormancy_rsp_tlvs, None), - 52: ("GET_AUTOCONNECT", None, wds_get_autoconnect_rsp_tlvs, None), - 53: ("GET_DURATION", None, wds_get_duration_rsp_tlvs, None), - 54: ("GET_MODEM_STATUS", None, wds_get_modem_status_rsp_tlvs, wds_get_modem_status_ind_tlvs), - 55: ("GET_DATA_BEARER", None, wds_get_data_bearer_rsp_tlvs, None), - 56: ("GET_MODEM_INFO", wds_get_modem_info_req_tlvs, wds_get_modem_info_rsp_tlvs, wds_get_modem_info_ind_tlvs), - 60: ("GET_ACTIVE_MIP", None, wds_get_active_mip_rsp_tlvs, None), - 61: ("SET_ACTIVE_MIP", wds_set_active_mip_req_tlvs, wds_set_active_mip_rsp_tlvs, None), - 62: ("GET_MIP_PROFILE", wds_get_mip_profile_req_tlvs, wds_get_mip_profile_rsp_tlvs, None), - 63: ("SET_MIP_PROFILE", wds_set_mip_profile_req_tlvs, wds_set_mip_profile_rsp_tlvs, None), - 64: ("GET_MIP_PARAMS", None, wds_get_mip_params_rsp_tlvs, None), - 65: ("SET_MIP_PARAMS", wds_set_mip_params_req_tlvs, wds_set_mip_params_rsp_tlvs, None), - 66: ("GET_LAST_MIP_STATUS", None, wds_get_last_mip_status_rsp_tlvs, None), - 67: ("GET_AAA_AUTH_STATUS", None, wds_get_aaa_auth_status_rsp_tlvs, None), - 68: ("GET_CUR_DATA_BEARER", None, wds_get_cur_data_bearer_rsp_tlvs, None), - 69: ("GET_CALL_LIST", wds_get_call_list_req_tlvs, wds_get_call_list_rsp_tlvs, None), - 70: ("GET_CALL_ENTRY", wds_get_call_entry_req_tlvs, wds_get_call_entry_rsp_tlvs, None), - 71: ("CLEAR_CALL_LIST", None, wds_clear_call_list_rsp_tlvs, None), - 72: ("GET_CALL_LIST_MAX", None, wds_get_call_list_max_rsp_tlvs, None), - 77: ("SET_IP_FAMILY", None, None, None), - 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", - } - -wms_set_event_req_tlvs = { # 1 - 16: "WMS/Set Event Report Request/New MT Message Indicator", - } - -wms_set_event_rsp_tlvs = { # 1 - 2: "WMS/Set Event Report Response/Result Code", - } - -wms_set_event_ind_tlvs = { # 1 - 16: "WMS/Event Report/Received MT Message", - 17: "WMS/Event Report/Transfer Route MT Message", - 18: "WMS/Event Report/Message Mode", - } - -wms_raw_send_req_tlvs = { # 32 - 1: "WMS/Raw Send Request/Message Data", - 16: "WMS/Raw Send Request/Force On DC", - 17: "WMS/Raw Send Request/Follow On DC", - 18: "WMS/Raw Send Request/Link Control", - } - -wms_raw_send_rsp_tlvs = { # 32 - 2: "WMS/Raw Send Response/Result Code", - 16: "WMS/Raw Send Response/Cause Code", - 17: "WMS/Raw Send Response/Error Class", - 18: "WMS/Raw Send Response/Cause Info", - } - -wms_raw_write_req_tlvs = { # 33 - 1: "WMS/Raw Write Request/Message Data", - } - -wms_raw_write_rsp_tlvs = { # 33 - 1: "WMS/Raw Write Response/Message Index", - 2: "WMS/Raw Write Response/Result Code", - } - -wms_raw_read_req_tlvs = { # 34 - 1: "WMS/Raw Read Request/Message Index", - 16: "WMS/Raw Read Request/Message Mode", - } - -wms_raw_read_rsp_tlvs = { # 34 - 1: "WMS/Raw Read Response/Message Data", - 2: "WMS/Raw Read Response/Result Code", - } - -wms_modify_tag_req_tlvs = { # 35 - 1: "WMS/Modify Tag Request/Message Tag", - 16: "WMS/Modify Tag Request/Message Mode", - } - -wms_modify_tag_rsp_tlvs = { # 35 - 2: "WMS/Modify Tag Response/Result Code", - } - -wms_delete_req_tlvs = { # 36 - 1: "WMS/Delete Request/Memory Storage", - 16: "WMS/Delete Request/Message Index", - 17: "WMS/Delete Request/Message Tag", - 18: "WMS/Delete Request/Message Mode", - } - -wms_delete_rsp_tlvs = { # 36 - 2: "WMS/Delete Response/Result Code", - } - -wms_get_msg_protocol_rsp_tlvs = { # 48 - 1: "WMS/Get Message Protocol Response/Message Protocol", - 2: "WMS/Get Message Protocol Response/Result Code", - } - -wms_get_msg_list_req_tlvs = { # 49 - 1: "WMS/List Messages Request/Memory Storage", - 16: "WMS/List Messages Request/Message Tag", - 17: "WMS/List Messages Request/Message Mode", - } - -wms_get_msg_list_rsp_tlvs = { # 49 - 1: "WMS/List Messages Response/Message List", - 2: "WMS/List Messages Response/Result Code", - } - -wms_set_routes_req_tlvs = { # 50 - 1: "WMS/Set Routes Request/Route List", - 16: "WMS/Set Routes Request/Transfer Status Report", - } - -wms_set_routes_rsp_tlvs = { # 50 - 2: "WMS/Set Routes Response/Result Code", - } - -wms_get_routes_rsp_tlvs = { # 51 - 1: "WMS/Get Routes Response/Route List", - 2: "WMS/Get Routes Response/Result Code", - 16: "WMS/Get Routes Response/Transfer Status Report", - } - -wms_get_smsc_addr_rsp_tlvs = { # 52 - 1: "WMS/Get SMSC Address Response/Address", - 2: "WMS/Get SMSC Address Response/Result Code", - } - -wms_set_smsc_addr_req_tlvs = { # 53 - 1: "WMS/Set SMSC Address Request/Address", - 16: "WMS/Set SMSC Address Request/Address Type", - } - -wms_get_msg_list_max_req_tlvs = { # 54 - 1: "WMS/Get Storage Max Size Request/Memory Storage", - 16: "WMS/Get Storage Max Size Request/Message Mode", - } - -wms_get_msg_list_max_rsp_tlvs = { # 54 - 1: "WMS/Get Storage Max Size Response/Max Size", - 2: "WMS/Get Storage Max Size Response/Result Code", - 16: "WMS/Get Storage Max Size Response/Available Size", - } - -wms_send_ack_req_tlvs = { # 55 - 1: "WMS/Send ACK Request/ACK", - 16: "WMS/Send ACK Request/3GPP2 Failure Info", - 17: "WMS/Send ACK Request/3GPP Failure Info", - } - -wms_send_ack_rsp_tlvs = { # 55 - 2: "WMS/Send ACK Response/Result Code", - } - -wms_set_retry_period_req_tlvs = { # 56 - 1: "WMS/Set Retry Period Request/Period", - } - -wms_set_retry_period_rsp_tlvs = { # 56 - 2: "WMS/Set Retry Period Response/Result Code", - } - -wms_set_retry_interval_req_tlvs = { # 57 - 1: "WMS/Set Retry Interval Request/Interval", - } - -wms_set_retry_interval_rsp_tlvs = { # 57 - 2: "WMS/Set Retry Interval Response/Result Code", - } - -wms_set_dc_disco_timer_req_tlvs = { # 58 - 1: "WMS/Set DC Disconnect Timer Request/Timer", - } - -wms_set_dc_disco_timer_rsp_tlvs = { # 58 - 2: "WMS/Set DC Disconnect Timer Response/Result Code", - } - -wms_set_memory_status_req_tlvs = { # 59 - 1: "WMS/Set Memory Status Request/Status", - } - -wms_set_memory_status_rsp_tlvs = { # 59 - 2: "WMS/Set Memory Status Response/Result Code", - } - -wms_set_bc_activation_req_tlvs = { # 60 - 1: "WMS/Set Broadcast Activation Request/BC Info", - } - -wms_set_bc_activation_rsp_tlvs = { # 60 - 2: "WMS/Set Broadcast Activation Response/Result Code", - } - -wms_set_bc_config_req_tlvs = { # 61 - 1: "WMS/Set Broadcast Config Request/Mode", - 16: "WMS/Set Broadcast Config Request/3GPP Info", - 17: "WMS/Set Broadcast Config Request/3GPP2 Info", - } - -wms_set_bc_config_rsp_tlvs = { # 61 - 2: "WMS/Set Broadcast Config Response/Result Code", - } - -wms_get_bc_config_req_tlvs = { # 62 - 1: "WMS/Get Broadcast Config Request/Mode", - } - -wms_get_bc_config_rsp_tlvs = { # 62 - 2: "WMS/Get Broadcast Config Response/Result Code", - 16: "WMS/Get Broadcast Config Response/3GPP Info", - 17: "WMS/Get Broadcast Config Response/3GPP2 Info", - } - -wms_memory_full_ind_ind_tlvs = { # 63 - 1: "WMS/Memory Full Indication/Info", - } - -wms_get_domain_pref_rsp_tlvs = { # 64 - 1: "WMS/Get Domain Preference Response/Pref", - 2: "WMS/Get Domain Preference Response/Result Code", - } - -wms_set_domain_pref_req_tlvs = { # 65 - 1: "WMS/Set Domain Preference Request/Pref", - } - -wms_set_domain_pref_rsp_tlvs = { # 65 - 2: "WMS/Set Domain Preference Response/Result Code", - } - -wms_memory_send_req_tlvs = { # 66 - 1: "WMS/Send From Memory Store Request/Info", - } - -wms_memory_send_rsp_tlvs = { # 66 - 2: "WMS/Send From Memory Store Response/Result Code", - 16: "WMS/Send From Memory Store Response/Message ID", - 17: "WMS/Send From Memory Store Response/Cause Code", - 18: "WMS/Send From Memory Store Response/Error Class", - 19: "WMS/Send From Memory Store Response/Cause Info", - } - -wms_smsc_addr_ind_ind_tlvs = { # 70 - 1: "WMS/SMSC Address Indication/Address", - } - -wms_cmds = { - 0: ("RESET", None, wms_reset_rsp_tlvs, None), - 1: ("SET_EVENT", wms_set_event_req_tlvs, wms_set_event_rsp_tlvs, wms_set_event_ind_tlvs), - 32: ("RAW_SEND", wms_raw_send_req_tlvs, wms_raw_send_rsp_tlvs, None), - 33: ("RAW_WRITE", wms_raw_write_req_tlvs, wms_raw_write_rsp_tlvs, None), - 34: ("RAW_READ", wms_raw_read_req_tlvs, wms_raw_read_rsp_tlvs, None), - 35: ("MODIFY_TAG", wms_modify_tag_req_tlvs, wms_modify_tag_rsp_tlvs, None), - 36: ("DELETE", wms_delete_req_tlvs, wms_delete_rsp_tlvs, None), - 48: ("GET_MSG_PROTOCOL", None, wms_get_msg_protocol_rsp_tlvs, None), - 49: ("GET_MSG_LIST", wms_get_msg_list_req_tlvs, wms_get_msg_list_rsp_tlvs, None), - 50: ("SET_ROUTES", wms_set_routes_req_tlvs, wms_set_routes_rsp_tlvs, None), - 51: ("GET_ROUTES", None, wms_get_routes_rsp_tlvs, None), - 52: ("GET_SMSC_ADDR", None, wms_get_smsc_addr_rsp_tlvs, None), - 53: ("SET_SMSC_ADDR", wms_set_smsc_addr_req_tlvs, None, None), - 54: ("GET_MSG_LIST_MAX", wms_get_msg_list_max_req_tlvs, wms_get_msg_list_max_rsp_tlvs, None), - 55: ("SEND_ACK", wms_send_ack_req_tlvs, wms_send_ack_rsp_tlvs, None), - 56: ("SET_RETRY_PERIOD", wms_set_retry_period_req_tlvs, wms_set_retry_period_rsp_tlvs, None), - 57: ("SET_RETRY_INTERVAL", wms_set_retry_interval_req_tlvs, wms_set_retry_interval_rsp_tlvs, None), - 58: ("SET_DC_DISCO_TIMER", wms_set_dc_disco_timer_req_tlvs, wms_set_dc_disco_timer_rsp_tlvs, None), - 59: ("SET_MEMORY_STATUS", wms_set_memory_status_req_tlvs, wms_set_memory_status_rsp_tlvs, None), - 60: ("SET_BC_ACTIVATION", wms_set_bc_activation_req_tlvs, wms_set_bc_activation_rsp_tlvs, None), - 61: ("SET_BC_CONFIG", wms_set_bc_config_req_tlvs, wms_set_bc_config_rsp_tlvs, None), - 62: ("GET_BC_CONFIG", wms_get_bc_config_req_tlvs, wms_get_bc_config_rsp_tlvs, None), - 63: ("MEMORY_FULL_IND", None, None, wms_memory_full_ind_ind_tlvs), - 64: ("GET_DOMAIN_PREF", None, wms_get_domain_pref_rsp_tlvs, None), - 65: ("SET_DOMAIN_PREF", wms_set_domain_pref_req_tlvs, wms_set_domain_pref_rsp_tlvs, None), - 66: ("MEMORY_SEND", wms_memory_send_req_tlvs, wms_memory_send_rsp_tlvs, None), - 67: ("GET_MSG_WAITING", None, None, None), - 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 = { - 0: ("ctl", ctl_cmds), - 1: ("wds", wds_cmds), - 2: ("dms", dms_cmds), - 3: ("nas", nas_cmds), - 4: ("qos", None), - 5: ("wms", wms_cmds), - 6: ("pds", pds_cmds), - 7: ("auth", auth_cmds), - 9: ("voice", voice_cmds), - 224: ("cat", cat_cmds), - 225: ("rms", rms_cmds), - 226: ("oma", oma_cmds), - } diff --git a/decode/qmux.py b/decode/qmux.py deleted file mode 100644 index a5543ac2..00000000 --- a/decode/qmux.py +++ /dev/null @@ -1,205 +0,0 @@ -#!/usr/bin/python -# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details: -# -# Copyright (C) 2011 Red Hat, Inc. -# - -import binascii -import defs -import struct - -from qmiprotocol import services - -TP_REQUEST = 0x00 -TP_RESPONSE = 0x02 -TP_INDICATION = 0x04 - -def complete(data, direction): - # We don't handle QMUX frames spanning packets yet - return True - -def unpack(data, direction): - return binascii.unhexlify(data) - -def service_to_string(s): - try: - return services[s][0] - except KeyError: - return "" - -def qmi_cmd_to_string(cmdno, service): - (name, cmds) = services[service] - return cmds[cmdno][0] - -class Tlv: - def __init__(self, tlvid, size, data, service, cmdno, direction): - self.id = tlvid - self.size = size - self.data = data - if size != len(data): - raise ValueError("Mismatched TLV size! (got %d expected %d)" % (len(data), size)) - self.service = service - self.cmdno = cmdno - self.direction = direction - - def show_data(self, prefix): - line = "" - for i in self.data: - line += " %02x" % ord(i) - print prefix + " Data: %s" % line - - def show(self, prefix): - svc = services[self.service] - cmd = [ None, None, None ] - try: - cmd = svc[1][self.cmdno] - except KeyError: - pass - except TypeError: - pass - tlvlist = None - if self.direction == TP_REQUEST: - tlvlist = cmd[1] - elif self.direction == TP_RESPONSE: - tlvlist = cmd[2] - elif self.direction == TP_INDICATION: - tlvlist = cmd[3] - else: - raise ValueError("Unknown TLV direction %s" % self.direction) - - tlvname = "!!! UNKNOWN !!!" - if self.service == 1 and self.cmdno == 77: # WDS/SET_IP_FAMILY - tlvname = "WDS/Set IP Family/IP Family !!! NOT DEFINED !!!" - else: - try: - 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 - if self.id == 2: - # Status response - (status, error) = struct.unpack("<HH", self.data) - if status == 0: - sstatus = "SUCCESS" - else: - sstatus = "ERROR" - print prefix + " Status: %d (%s)" % (status, sstatus) - - print prefix + " Error: %d" % error - else: - self.show_data(prefix) - print "" - -def get_tlvs(data, service, cmdno, direction): - tlvs = [] - while len(data) >= 3: - (tlvid, size) = struct.unpack("<BH", data[:3]) - if size > len(data) - 3: - raise ValueError("Malformed TLV ID %d size %d (len left %d)" % (tlvid, size, len(data))) - tlvs.append(Tlv(tlvid, size, data[3:3 + size], service, cmdno, direction)) - data = data[size + 3:] - if len(data) != 0: - raise ValueError("leftover data parsing tlvs") - return tlvs - -def show(data, prefix, direction): - if len(data) < 7: - return - - qmuxfmt = "<BHBBB" - sz = struct.calcsize(qmuxfmt) - (ifc, l, sender, service, cid) = struct.unpack(qmuxfmt, data[:sz]) - - if ifc != 0x01: - raise ValueError("Packet not QMUX") - - print prefix + "QMUX Header:" - print prefix + " len: 0x%04x" % l - - ssender = "" - if sender == 0x00: - ssender = "(client)" - elif sender == 0x80: - ssender = "(service)" - print prefix + " sender: 0x%02x %s" % (sender, ssender) - - sservice = service_to_string(service) - print prefix + " svc: 0x%02x (%s)" % (service, sservice) - - scid = "" - if cid == 0xff: - scid = "(broadcast)" - print prefix + " cid: 0x%02x %s" % (cid, scid) - - print "" - - # QMI header - data = data[sz:] - if service == 0: - qmifmt = "<BBHH" - else: - qmifmt = "<BHHH" - - sz = struct.calcsize(qmifmt) - (flags, txnid, cmdno, size) = struct.unpack(qmifmt, data[:sz]) - - print prefix + "QMI Header:" - - sflags = "" - if service == 0: - # Besides the CTL service header being shorter, the flags are different - if flags == 0x00: - flags = TP_REQUEST - elif flags == 0x01: - flags = TP_RESPONSE - elif flags == 0x02: - flags = TP_INDICATION - - if flags == TP_REQUEST: - sflags = "(request)" - elif flags == TP_RESPONSE: - sflags = "(response)" - elif flags == TP_INDICATION: - sflags = "(indication)" - else: - raise ValueError("Unknown flags %d" % flags) - print prefix + " Flags: 0x%02x %s" % (flags, sflags) - - print prefix + " TXN: 0x%04x" % txnid - - scmd = "!!! UNKNOWN !!!" - try: - scmd = qmi_cmd_to_string(cmdno, service) - except KeyError: - pass - except TypeError: - pass - print prefix + " Cmd: 0x%04x (%s)" % (cmdno, scmd) - - print prefix + " Size: 0x%04x" % size - print "" - - data = data[sz:] - tlvs = get_tlvs(data, service, cmdno, flags) - for tlv in tlvs: - tlv.show(prefix) - - print "" - -def get_funcs(): - return (complete, unpack, show) - diff --git a/decode/wmc.py b/decode/wmc.py deleted file mode 100644 index f710407f..00000000 --- a/decode/wmc.py +++ /dev/null @@ -1,410 +0,0 @@ -#!/usr/bin/python -# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details: -# -# Copyright (C) 2011 Red Hat, Inc. -# - -import binascii -import struct -import defs - -def complete(data, direction): - if direction == defs.TO_MODEM: - if data[len(data) - 2:] == "0d" or data[len(data) - 2:] == "7e": - return True - elif direction == defs.TO_HOST: - if data[len(data) - 6:] == "30307e": - # UML190 and UML290 fake CRC + term - return True - elif data[len(data) - 2:] == "7e": - # PC5740 uses a real CRC - return True - else: - raise ValueError("No data direction") - return False - - -def unpack(data, direction): - # unpack the data - if direction == defs.TO_MODEM: - if data[:14] == "41542a574d433d": - # remove the AT*WMC= bits, and the newline and CRC at the end - data = data[14:] - if data[len(data) - 2:] == "0d": - data = data[:len(data) - 6] - elif data[:2] == "c8" and data[len(data) - 2:] == "7e": - # PC5740 doesn't use AT*WMC= framing - data = data[:len(data) - 6] - else: - print "asdfasdfasfaf" - elif direction == defs.TO_HOST: - if data[len(data) - 2:] == "7e": - # remove HDLC terminator and CRC - data = data[:len(data) - 6] - else: - raise ValueError("No data direction") - - data = binascii.unhexlify(data) - - # PPP-unescape it - escape = False - new_data = "" - for i in data: - if ord(i) == 0x7D: - escape = True - elif escape == True: - new_data += chr(ord(i) ^ 0x20) - escape = False - else: - new_data += i - - return new_data - -def show_data(data, prefix): - line = "" - for i in data: - line += " %02x" % ord(i) - print prefix + " Data: %s" % line - -def show_device_info(data, prefix, direction): - if direction != defs.TO_HOST: - return - - fmt = "<" - fmt += "27s" # unknown1 - fmt += "64s" # manf - fmt += "64s" # model - fmt += "64s" # fwrev - fmt += "64s" # hwrev - fmt += "64s" # unknown2 - fmt += "64s" # unknown3 - fmt += "10s" # min - fmt += "12s" # unknown4 - fmt += "H" # home_sid - fmt += "2s" # unknown5 - fmt += "H" # prlver - fmt += "2s" # unknown6 - fmt += "H" # eriver - fmt += "4s" # unknown7 - - expected = struct.calcsize(fmt) - if len(data) >= expected: - (u1, manf, model, fwrev, hwrev, u2, u3, cdmamin, u4, homesid, u5, prlver, \ - u6, eriver, u7) = struct.unpack(fmt, data[:expected]) - print prefix + " Manf: %s" % manf - print prefix + " Model: %s" % model - print prefix + " FW Rev: %s" % fwrev - print prefix + " HW Rev: %s" % hwrev - print prefix + " MIN: %s" % cdmamin - print prefix + " Home SID: %d" % homesid - print prefix + " PRL Ver: %d" % prlver - print prefix + " ERI Ver: %d" % eriver - else: - raise ValueError("Unexpected Info command response len (got %d expected %d)" % (len(data), expected)) - - fmt2 = "<" - fmt2 += "64s" # unknown8 - fmt2 += "14s" # meid - fmt2 += "6s" # unknown10 - fmt2 += "16s" # imei - fmt2 += "6s" # unknown11 - fmt2 += "16s" # unknown12 - fmt2 += "20s" # iccid - fmt2 += "6s" # unknown13 - - expected2 = struct.calcsize(fmt2) - if len(data) >= expected + expected2: - (u8, meid, u10, imei, u11, something, iccid, u13) = struct.unpack(fmt2, data[expected:expected + expected2]) - print prefix + " MEID: %s" % meid - print prefix + " IMEI: %s" % imei - print prefix + " ??? : %s" % something - print prefix + " ICCID: %s" % iccid - - fmt3 = "<" - fmt3 += "16s" # MCC - fmt3 += "16s" # MNC - fmt3 += "4s" # unknown11 - fmt3 += "4s" # unknown12 - fmt3 += "4s" # unknown13 - expected3 = struct.calcsize(fmt3) - if len(data) >= expected + expected2 + expected3: - (mcc, mnc, u11, u12, u13) = struct.unpack(fmt3, data[expected + expected2:]) - print prefix + " MCC: %s" % mcc - print prefix + " MNC: %s" % mnc - - -def state_to_string(state): - states = { 0: "unknown", - 1: "idle", - 2: "connecting", - 3: "authenticating", - 4: "connected", - 5: "dormant", - 6: "updating NAM", - 7: "updating PRL", - 8: "disconnecting", - 9: "error", - 10: "updating UICC", - 11: "updating PLMN" } - try: - return states[state] - except KeyError: - return "unknown" - -def show_connection_info(data, prefix, direction): - if direction != defs.TO_HOST: - return - - fmt = "<" - fmt += "I" # rx_bytes - fmt += "I" # tx_bytes - fmt += "8s" # unknown1 - fmt += "B" # state - fmt += "3s" # unknown2 - - expected = struct.calcsize(fmt) - if len(data) >= expected: - (rxb, txb, u1, state, u2) = struct.unpack(fmt, data[:expected]) - print prefix + " RX Bytes: %d" % rxb - print prefix + " TX Bytes: %d" % txb - print prefix + " State: %d (%s)" % (state, state_to_string (state)) - else: - raise ValueError("Unexpected Connection Info command response len (got %d expected %d)" % (len(data), expected)) - - fmt3 = "<" - fmt3 += "4s" # unknown3 - fmt3 += "16s" # ip4_address - fmt3 += "8s" # netmask? - fmt3 += "40s" # ip6_address - expected3 = struct.calcsize(fmt3) - if len(data) >= expected + expected3: - (u3, ip4addr, netmask, ip6addr) = struct.unpack(fmt3, data[expected:]) - print prefix + " IP4 Addr: %s" % ip4addr - print prefix + " IP6 Addr: %s" % ip6addr - -def get_signal(item): - if item == 0x7D: - return (item * -1, "(NO SIGNAL)") - else: - return (item * -1, "") - -def service_to_string(service): - services = { 0: "none", - 1: "AMPS", - 2: "IS95-A", - 3: "IS95-B", - 4: "GSM", - 5: "GPRS", - 6: "1xRTT", - 7: "EVDO r0", - 8: "UMTS", - 9: "EVDO rA", - 10: "EDGE", - 11: "HSDPA", - 12: "HSUPA", - 13: "HSPA", - 14: "LTE", - 15: "EVDO rA eHRPD" } - try: - return services[service] - except KeyError: - return "unknown" - -def show_network_info(data, prefix, direction): - if direction != defs.TO_HOST: - return - - fmt = "<" - fmt += "B" # unknown1 - fmt += "3s" # unknown2 - fmt += "B" # service - fmt += "B" # unknown3 - fmt += "H" # year - fmt += "B" # month - fmt += "B" # zero - fmt += "B" # day - fmt += "B" # zero - fmt += "B" # hours - fmt += "B" # zero - fmt += "B" # minutes - fmt += "B" # zero - fmt += "B" # seconds - fmt += "H" # counter1 - fmt += "H" # unknown4 - fmt += "3s" # unknown5 - fmt += "B" # 2g_dbm - - expected = struct.calcsize(fmt) - if len(data) >= expected: - (u1, u2, service, u3, year, month, z1, day, z2, hours, z3, minutes, z4, \ - seconds, counter1, u4, u5, two_g_dbm) = struct.unpack(fmt, data[:expected]) - print prefix + " Time: %04d/%02d/%02d %02d:%02d:%02d" % (year, month, day, hours, minutes, seconds) - print prefix + " Service: %d (%s)" % (service, service_to_string (service)) - print prefix + " 2G dBm: %d dBm %s" % get_signal(two_g_dbm) - else: - raise ValueError("Unexpected Network Info command response len (got %d expected %d)" % (len(data), expected)) - - fmt2 = "<" - fmt2 += "3s" # unknown7 - fmt2 += "16s" # cdma_opname - fmt2 += "18s" # unknown8 - fmt2 += "B" # 3g_dbm - fmt2 += "3s" # unknown9 - fmt2 += "B" # unknown10 - fmt2 += "3s" # unknown11 - fmt2 += "B" # unknown12 - fmt2 += "8s" # 3gpp_opname - fmt2 += "4s" # unknown13 - fmt2 += "I" # unknown14 - fmt2 += "I" # unknown15 - fmt2 += "44s" # unknown16 - fmt2 += "I" # mcc/mnc - - expected2 = struct.calcsize(fmt2) - if len(data) >= expected + expected2: - (u7, cdma_opname, u8, three_g_dbm, u9, u10, u11, u12, tgpp_opname, u13, \ - u14, u15, u16, mccmnc) = struct.unpack(fmt2, data[expected:expected + expected2]) - print prefix + " 3G dBm: %d dBm %s" % get_signal(three_g_dbm) - print prefix + " CDMA Op: %s" % cdma_opname - print prefix + " 3GPP Op: %s" % tgpp_opname - - # handle 2-digit MNC - if mccmnc < 100000: - mccmnc *= 10; - - mcc = mccmnc / 1000 - mnc = mccmnc - (mcc * 1000) - if mcc > 100: - print prefix + " MCC/MNC: %u-%u" % (mcc, mnc) - - fmt3 = "<" - fmt3 += "B" # lte_dbm - fmt3 += "3s" # unknown15 - fmt3 += "4s" # unknown16 - expected3 = struct.calcsize(fmt3) - if len(data) >= expected + expected2 + expected3: - (lte_dbm, u17, u18) = struct.unpack(fmt3, data[expected + expected2:]) - print prefix + " LTE dBm: %d dBm %s" % get_signal(lte_dbm) - - -def show_init(data, prefix, direction): - if len(data) == 0: - # PC5740/old format - return - - if direction == defs.TO_HOST: - show_data(data, prefix) - return - - fmt = "<" - fmt += "H" # year - fmt += "B" # month - fmt += "B" # zero - fmt += "B" # day - fmt += "B" # zero - fmt += "B" # hours - fmt += "B" # zero - fmt += "B" # minutes - fmt += "B" # zero - fmt += "B" # seconds - expected = struct.calcsize(fmt) - if len(data) >= expected: - (year, month, z1, day, z2, hours, z3, minutes, z4, seconds) = struct.unpack(fmt, data[:expected]) - print prefix + " Time: %04d/%02d/%02d %02d:%02d:%02d" % (year, month, day, hours, minutes, seconds) - else: - raise ValueError ("Unexpected Init command length (got %d expected %d)" % (len(data), expected)) - -def show_bearer_info(data, prefix, direction): - pass - -def mode_to_string(mode): - if mode == 0x00: - return "CDMA/EVDO" - elif mode == 0x01: - return "CDMA only" - elif mode == 0x02: - return "EVDO only" - elif mode == 0x0A: - return "GSM/UMTS" - elif mode == 0x0B: - return "GSM/GPRS/EDGE only" - elif mode == 0x0C: - return "UMTS/HSPA only" - elif mode == 0x14: - return "Auto" - return "unknown" - -def show_get_global_mode(data, prefix, direction): - if direction != defs.TO_HOST: - return - - fmt = "<" - fmt += "B" # unknown1 - fmt += "B" # mode - fmt += "B" # unknown2 - fmt += "B" # unknown3 - - expected = struct.calcsize(fmt) - if len(data) != expected: - raise ValueError("Unexpected GET_GLOBAL_MODE command response len (got %d expected %d)" % (len(data), expected)) - (u1, mode, u2, u3) = struct.unpack(fmt, data) - - print prefix + " Mode: 0x%X (%s)" % (mode, mode_to_string(mode)) - -def show_set_global_mode(data, prefix, direction): - if direction != defs.TO_MODEM: - return; - - fmt = "<" - fmt += "B" # unknown1 - fmt += "B" # mode - fmt += "B" # unknown2 - fmt += "B" # unknown3 - - expected = struct.calcsize(fmt) - if len(data) != expected: - raise ValueError("Unexpected SET_GLOBAL_MODE command response len (got %d expected %d)" % (len(data), expected)) - (u1, mode, u2, u3) = struct.unpack(fmt, data) - - print prefix + " Mode: 0x%X (%s)" % (mode, mode_to_string(mode)) - - -cmds = { 0x03: ("GET_GLOBAL_MODE", show_get_global_mode), - 0x04: ("SET_GLOBAL_MODE", show_set_global_mode), - 0x06: ("DEVICE_INFO", show_device_info), - 0x0A: ("CONNECTION_INFO", show_connection_info), - 0x0B: ("NETWORK_INFO", show_network_info), - 0x0D: ("INIT", show_init), - 0x4D: ("EPS_BEARER_INFO", show_bearer_info) - } - -def show(data, prefix, direction): - if ord(data[:1]) != 0xC8: - return - - data = data[1:] # skip 0xC8 header - cmdno = ord(data[:1]) - try: - cmdinfo = cmds[cmdno] - except KeyError: - return - data = data[1:] # skip cmdno - - print prefix + "WMC Packet:" - print prefix + " Cmd: 0x%02x (%s)" % (cmdno, cmdinfo[0]) - cmdinfo[1](data, prefix, direction) - print "" - -def get_funcs(): - return (complete, unpack, show) - diff --git a/decode/xml2ascii.py b/decode/xml2ascii.py deleted file mode 100755 index b14b0894..00000000 --- a/decode/xml2ascii.py +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/python -# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details: -# -# Copyright (C) 2011 Red Hat, Inc. -# -# --- Dumps UsbSnoopy XML export files - -from xml.sax import saxutils -from xml.sax import handler - -packets = [] -counts = {} - -class FindPackets(handler.ContentHandler): - def __init__(self): - self.inFunction = False - self.inPayload = False - self.ignore = False - self.inTimestamp = False - self.timestamp = None - self.packet = None - - def startElement(self, name, attrs): - if name == "function": - self.inFunction = True - elif name == "payloadbytes": - self.inPayload = True - elif name == "timestamp": - self.inTimestamp = True - - def characters(self, ch): - if self.ignore: - return - - stripped = ch.strip() - if self.inFunction and ch != "BULK_OR_INTERRUPT_TRANSFER": - self.ignore = True - return - elif self.inTimestamp: - self.timestamp = stripped - elif self.inPayload and len(stripped) > 0: - if self.packet == None: - self.packet = stripped - else: - self.packet += stripped - - def endElement(self, name): - if name == "function": - self.inFunction = False - elif name == "payloadbytes": - self.inPayload = False - elif name == "payload": - if self.packet: - import binascii - bytes = binascii.a2b_hex(self.packet) - print bytes - self.packet = None - - self.ignore = False - self.timestamp = None - elif name == "timestamp": - self.inTimestamp = False - - -from xml.sax import make_parser -from xml.sax import parse -import sys - -if __name__ == "__main__": - dh = FindPackets() - parse(sys.argv[1], dh) - |