Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
packet-qcdiag.h
1/* packet-qcdiag.h
2 * Dissector routines for Qualcomm DIAG packet handling
3 *
4 * Credits/Sources:
5 * - Osmocom Wireshark qcdiag branch
6 * https://gitea.osmocom.org/osmocom/wireshark/src/branch/osmocom/qcdiag
7 *
8 * - SCAT: Signaling Collection and Analysis Tool
9 * https://github.com/fgsect/scat/
10 *
11 * - Android Tools MSM8996
12 * https://github.com/bcyj/android_tools_leeco_msm8996
13 *
14 * (C) 2016-2017 by Harald Welte <[email protected]>
15 * (C) 2025 by Oliver Smith <[email protected]>
16 * (C) 2026 by Tamas Regos <[email protected]>
17 *
18 * Wireshark - Network traffic analyzer
19 * By Gerald Combs <[email protected]>
20 * Copyright 1998 Gerald Combs
21 *
22 * SPDX-License-Identifier: GPL-2.0-or-later
23 */
24
25#ifndef PACKET_QCDIAG_H
26#define PACKET_QCDIAG_H
27
28value_string_ext qcdiag_logcodes_ext;
29value_string_ext qcdiag_cmds_ext;
30nstime_t qcdiag_parse_timestamp(tvbuff_t *tvb, uint32_t offset);
31
32#define DIAG_VERNO_F 0
33#define DIAG_ESN_F 1
34#define DIAG_PEEKB_F 2
35#define DIAG_PEEKW_F 3
36#define DIAG_PEEKD_F 4
37#define DIAG_POKEB_F 5
38#define DIAG_POKEW_F 6
39#define DIAG_POKED_F 7
40#define DIAG_OUTP_F 8
41#define DIAG_OUTPW_F 9
42#define DIAG_INP_F 10
43#define DIAG_INPW_F 11
44#define DIAG_DMSS_STATUS_F 12
45#define DIAG_PEEK_VOCODER_F 13
46#define DIAG_POKE_VOCODER_F 14
47#define DIAG_LOGMASK_F 15
48#define DIAG_LOG_F 16
49#define DIAG_NV_PEEK_F 17
50#define DIAG_NV_POKE_F 18
51#define DIAG_BAD_CMD_F 19
52#define DIAG_BAD_PARM_F 20
53#define DIAG_BAD_LEN_F 21
54#define DIAG_BAD_DEVICE_F 22
55#define DIAG_BAD_VOC_F 23
56#define DIAG_BAD_MODE_F 24
57#define DIAG_TAGRAPH_F 25
58#define DIAG_MARKOV_F 26
59#define DIAG_MARKOV_RESET_F 27
60#define DIAG_DIAG_VER_F 28
61#define DIAG_TS_F 29
62#define DIAG_TA_PARM_F 30
63#define DIAG_MSG_F 31
64#define DIAG_HS_KEY_F 32
65#define DIAG_HS_LOCK_F 33
66#define DIAG_HS_SCREEN_F 34
67#define DIAG_PARM_RETRIEVE_F 35
68#define DIAG_PARM_SET_F 36
69#define DIAG_EXT_DEVICE_ID_F 37
70#define DIAG_NV_READ_F 38
71#define DIAG_NV_WRITE_F 39
72#define DIAG_CONFIG_TABLE_F 40
73#define DIAG_MODE_CHANGE_F 41
74#define DIAG_ERR_READ_F 42
75#define DIAG_ERR_CLEAR_F 43
76#define DIAG_SER_RESET_F 44
77#define DIAG_SER_REPORT_F 45
78#define DIAG_TEST_F 46
79#define DIAG_GET_DIPSW_F 47
80#define DIAG_SET_DIPSW_F 48
81#define DIAG_VOC_PCM_LB_F 49
82#define DIAG_VOC_PKT_LB_F 50
83/* Reserved 51 */
84/* Reserved 52 */
85#define DIAG_CALL_ORIG_F 53
86#define DIAG_CALL_END_F 54
87/* Reserved 55 */
88/* Reserved 56 */
89/* Reserved 57 */
90#define DIAG_DLOAD_F 58
91#define DIAG_TEST_MODE_F 59
92#define DIAG_SEND_PKT_SEQ_NUMS_F 60
93#define DIAG_CFG_SLEEP_MODE_F 61
94#define DIAG_GET_SYS_TIME_F 62
95#define DIAG_STATE_F 63
96#define DIAG_PILOT_SETS_F 64
97#define DIAG_SPC_F 65
98#define DIAG_BAD_SPC_MODE_F 66
99#define DIAG_PARM_GET2_F 67
100#define DIAG_SERIAL_CHG_F 68
101#define DIAG_GET_CDMA_RSSI_F 69
102#define DIAG_PASSWORD_F 70
103#define DIAG_BAD_SEC_MODE_F 71
104#define DIAG_PR_LIST_WR_F 72
105#define DIAG_PR_LIST_RD_F 73
106#define DIAG_READ_SMS_MESSAGE_F 74
107#define DIAG_SUBSYS_CMD_F 75
108#define DIAG_NV_WRITE_OFFLINE_F 76
109#define DIAG_GET_CALLER_ID_F 77
110#define DIAG_MODIFY_STATUS_MASK_F 78
111#define DIAG_AUDIO_CONTROL_F 79
112#define DIAG_AKEY_F 80
113#define DIAG_FEATURE_QUERY_F 81
114#define DIAG_EXT_DIAG_CMD_F 82
115#define DIAG_SMS_READ_F 83
116#define DIAG_SMS_WRITE_F 84
117#define DIAG_SUP_FER_F 85
118#define DIAG_SUP_WALSH_CODES_F 86
119#define DIAG_SET_MAX_SUP_CH_F 87
120#define DIAG_PARM_GET_IS95B_F 88
121#define DIAG_FS_OP_F 89
122#define DIAG_AKEY_VERIFY_F 90
123#define DIAG_BMP_HS_SCREEN_F 91
124#define DIAG_CONFIG_COMM_F 92
125#define DIAG_EXT_LOGMASK_F 93
126#define DIAG_RESERVED_94_F 94
127#define DIAG_RESERVED_95_F 95
128#define DIAG_EVENT_REPORT_F 96
129#define DIAG_STREAMING_CONFIG_F 97
130#define DIAG_EXT_PARM_RETRIEVAL_F 98
131#define DIAG_STATUS_SNAPSHOT_F 99
132#define DIAG_RPC_F 100
133#define DIAG_GET_PROPERTY_F 101
134#define DIAG_PUT_PROPERTY_F 102
135#define DIAG_GET_GUID_F 103
136#define DIAG_USER_CMD_F 104
137#define DIAG_GET_PERM_PROPERTY_F 105
138#define DIAG_PUT_PERM_PROPERTY_F 106
139#define DIAG_PERM_USER_CMD_F 107
140#define DIAG_GPS_SESS_CTRL_F 108
141#define DIAG_GPS_GRID_F 109
142#define DIAG_GPS_STATISTICS_F 110
143#define DIAG_ROUTE_F 111
144#define DIAG_IS2000_STATUS_F 112
145#define DIAG_RLP_STAT_RESET_F 113
146#define DIAG_TDSO_STAT_RESET_F 114
147#define DIAG_LOG_CONFIG_F 115
148#define DIAG_TRACE_EVENT_REPORT_F 116
149#define DIAG_SBI_READ_F 117
150#define DIAG_SBI_WRITE_F 118
151#define DIAG_SSD_VERIFY_F 119
152#define DIAG_LOG_ON_DEMAND_F 120
153#define DIAG_EXT_MSG_F 121
154#define DIAG_ONCRPC_F 122
155#define DIAG_PROTOCOL_LOOPBACK_F 123
156#define DIAG_EXT_BUILD_ID_F 124
157#define DIAG_EXT_MSG_CONFIG_F 125
158#define DIAG_EXT_MSG_TERSE_F 126
159#define DIAG_EXT_MSG_TERSE_XLATE_F 127
160#define DIAG_SUBSYS_CMD_VER_2_F 128
161#define DIAG_EVENT_MASK_GET_F 129
162#define DIAG_EVENT_MASK_SET_F 130
163#define DIAG_RESERVED_131_F 131
164#define DIAG_RESERVED_132_F 132
165#define DIAG_RESERVED_133_F 133
166#define DIAG_RESERVED_134_F 134
167#define DIAG_RESERVED_135_F 135
168#define DIAG_RESERVED_136_F 136
169#define DIAG_RESERVED_137_F 137
170#define DIAG_RESERVED_138_F 138
171#define DIAG_RESERVED_139_F 139
172#define DIAG_CHANGE_PORT_SETTINGS 140
173#define DIAG_CNTRY_INFO_F 141
174#define DIAG_SUPS_REQ_F 142
175#define DIAG_MMS_ORIG_SMS_REQUEST_F 143
176#define DIAG_MEAS_MODE_F 144
177#define DIAG_MEAS_REQ_F 145
178#define DIAG_QSR_EXT_MSG_TERSE_F 146
179#define DIAG_DCI_CMD_REQ 147
180#define DIAG_DCI_DELAYED_RSP 148
181#define DIAG_BAD_TRANS_F 149
182#define DIAG_SSM_DISALLOWED_CMD_F 150
183#define DIAG_LOG_ON_DEMAND_EXT_F 151
184#define DIAG_MULTI_RADIO_CMD_F 152
185#define DIAG_QSR4_EXT_MSG_TERSE_F 153
186#define DIAG_DCI_CONTROL_F 154
187#define DIAG_COMPRESSED_F 155
188#define DIAG_MSG_SMALL_F 156
189#define DIAG_QSH_TRACE_PAYLOAD_F 157
190#define DIAG_SECURE_LOG_F 158
191
192#define DIAG_MAX_F 255
193
194/* Log Codes
195 * These codes identify the kind of information
196 * contained in a log entry.
197 *
198 * The upper 4 bits of the 16 bit log code specify
199 * which type of equipment created the log entry.
200 */
201
202#define LOG_CODE_1X_RUIM_DEBUG 0x1098
203#define LOG_CODE_1X_INT_CORED_DUMP 0x1158
204#define LOG_CODE_1X_DATA_PROT_LOG 0x11eb
205#define LOG_CODE_1X_CM_PHONE_EVENT 0x1273
206#define LOG_CODE_1X_CM_CALL_EVENT 0x12c1
207#define LOG_CODE_1X_GPS_DECODE_ALMNC 0x12e7
208#define LOG_CODE_1X_TRM 0x12e8
209/* Reserved 0x12e9 – 0x132a */
210#define LOG_CODE_1X_DIAG_REQUEST 0x1fea
211#define LOG_CODE_1X_EXT_DEBUG_MSG 0x1feb
212#define LOG_CODE_1X_DEBUG_MESSAGE 0x1fec
213#define LOG_CODE_1X_PC_POLLING_TIME 0x1fed
214#define LOG_CODE_1X_THREE_D_GPS_INFO 0x1fee
215#define LOG_CODE_1X_DIAG_RES_STATUS 0x1ff0
216#define LOG_CODE_1X_GPS_INFORMATION 0x1ff1
217#define LOG_CODE_1X_LOG_FILE_SUMMARY 0x1ff2
218#define LOG_CODE_1X_STATUS_SNAPSHOT 0x1ff7
219#define LOG_CODE_1X_EXTENDED_LOGMASK 0x1ff9
220#define LOG_CODE_1X_EVENT 0x1ffb
221#define LOG_CODE_1X_ANNOTATION 0x1ffc
222#define LOG_CODE_1X_DIAGNOSTIC_VER 0x1ffd
223#define LOG_CODE_1X_STATUS_2 0x1ffe
224
225#define LOG_CODE_WCDMA_SIGNALING_MSG 0x412f
226
227typedef enum {
228 DIAG_SUBSYS_OEM = 0,
229 DIAG_SUBSYS_ZREX = 1,
230 DIAG_SUBSYS_SD = 2,
231 DIAG_SUBSYS_BT = 3,
232 DIAG_SUBSYS_WCDMA = 4,
233 DIAG_SUBSYS_HDR = 5,
234 DIAG_SUBSYS_DIABLO = 6,
235 DIAG_SUBSYS_TREX = 7,
236 DIAG_SUBSYS_GSM = 8,
237 DIAG_SUBSYS_UMTS = 9,
238 DIAG_SUBSYS_HWTC = 10,
239 DIAG_SUBSYS_FTM = 11,
240 DIAG_SUBSYS_REX = 12,
241 DIAG_SUBSYS_OS = DIAG_SUBSYS_REX,
242 DIAG_SUBSYS_GPS = 13,
243 DIAG_SUBSYS_WMS = 14,
244 DIAG_SUBSYS_CM = 15,
245 DIAG_SUBSYS_HS = 16,
246 DIAG_SUBSYS_AUDIO_SETTINGS = 17,
247 DIAG_SUBSYS_DIAG_SERV = 18,
248 DIAG_SUBSYS_FS = 19,
249 DIAG_SUBSYS_PORT_MAP_SETTINGS = 20,
250 DIAG_SUBSYS_MEDIAPLAYER = 21,
251 DIAG_SUBSYS_QCAMERA = 22,
252 DIAG_SUBSYS_MOBIMON = 23,
253 DIAG_SUBSYS_GUNIMON = 24,
254 DIAG_SUBSYS_LSM = 25,
255 DIAG_SUBSYS_QCAMCORDER = 26,
256 DIAG_SUBSYS_MUX1X = 27,
257 DIAG_SUBSYS_DATA1X = 28,
258 DIAG_SUBSYS_SRCH1X = 29,
259 DIAG_SUBSYS_CALLP1X = 30,
260 DIAG_SUBSYS_APPS = 31,
261 DIAG_SUBSYS_SETTINGS = 32,
262 DIAG_SUBSYS_GSDI = 33,
263 DIAG_SUBSYS_UIMDIAG = DIAG_SUBSYS_GSDI,
264 DIAG_SUBSYS_TMC = 34,
265 DIAG_SUBSYS_USB = 35,
266 DIAG_SUBSYS_PM = 36,
267 DIAG_SUBSYS_DEBUG = 37,
268 DIAG_SUBSYS_QTV = 38,
269 DIAG_SUBSYS_CLKRGM = 39,
270 DIAG_SUBSYS_DEVICES = 40,
271 DIAG_SUBSYS_WLAN = 41,
272 DIAG_SUBSYS_PS_DATA_LOGGING = 42,
273 DIAG_SUBSYS_PS = DIAG_SUBSYS_PS_DATA_LOGGING,
274 DIAG_SUBSYS_MFLO = 43,
275 DIAG_SUBSYS_DTV = 44,
276 DIAG_SUBSYS_RRC = 45,
277 DIAG_SUBSYS_PROF = 46,
278 DIAG_SUBSYS_TCXOMGR = 47,
279 DIAG_SUBSYS_NV = 48,
280 DIAG_SUBSYS_AUTOCONFIG = 49,
281 DIAG_SUBSYS_PARAMS = 50,
282 DIAG_SUBSYS_MDDI = 51,
283 DIAG_SUBSYS_DS_ATCOP = 52,
284 DIAG_SUBSYS_L4LINUX = 53,
285 DIAG_SUBSYS_MVS = 54,
286 DIAG_SUBSYS_CNV = 55,
287 DIAG_SUBSYS_APIONE_PROGRAM = 56,
288 DIAG_SUBSYS_HIT = 57,
289 DIAG_SUBSYS_DRM = 58,
290 DIAG_SUBSYS_DM = 59,
291 DIAG_SUBSYS_FC = 60,
292 DIAG_SUBSYS_MEMORY = 61,
293 DIAG_SUBSYS_FS_ALTERNATE = 62,
294 DIAG_SUBSYS_REGRESSION = 63,
295 DIAG_SUBSYS_SENSORS = 64,
296 DIAG_SUBSYS_FLUTE = 65,
297 DIAG_SUBSYS_ANALOG = 66,
298 DIAG_SUBSYS_APIONE_PROGRAM_MODEM = 67,
299 DIAG_SUBSYS_LTE = 68,
300 DIAG_SUBSYS_BREW = 69,
301 DIAG_SUBSYS_PWRDB = 70,
302 DIAG_SUBSYS_CHORD = 71,
303 DIAG_SUBSYS_SEC = 72,
304 DIAG_SUBSYS_TIME = 73,
305 DIAG_SUBSYS_Q6_CORE = 74,
306 DIAG_SUBSYS_COREBSP = 75,
307 DIAG_SUBSYS_MFLO2 = 76,
308 DIAG_SUBSYS_ULOG = 77,
309 DIAG_SUBSYS_APR = 78,
310 DIAG_SUBSYS_QNP = 79,
311 DIAG_SUBSYS_STRIDE = 80,
312 DIAG_SUBSYS_OEMDPP = 81,
313 DIAG_SUBSYS_Q5_CORE = 82,
314 DIAG_SUBSYS_USCRIPT = 83,
315 DIAG_SUBSYS_NAS = 84,
316 DIAG_SUBSYS_CMAPI = 85,
317 DIAG_SUBSYS_SSM = 86,
318 DIAG_SUBSYS_TDSCDMA = 87,
319 DIAG_SUBSYS_SSM_TEST = 88,
320 DIAG_SUBSYS_MPOWER = 89,
321 DIAG_SUBSYS_QDSS = 90,
322 DIAG_SUBSYS_CXM = 91,
323 DIAG_SUBSYS_GNSS_SOC = 92,
324 DIAG_SUBSYS_TTLITE = 93,
325 DIAG_SUBSYS_FTM_ANT = 94,
326 DIAG_SUBSYS_MLOG = 95,
327 DIAG_SUBSYS_LIMITSMGR = 96,
328 DIAG_SUBSYS_EFSMONITOR = 97,
329 DIAG_SUBSYS_DISPLAY_CALIBRATION = 98,
330 DIAG_SUBSYS_VERSION_REPORT = 99,
331 DIAG_SUBSYS_DS_IPA = 100,
332 DIAG_SUBSYS_SYSTEM_OPERATIONS = 101,
333 DIAG_SUBSYS_CNSS_POWER = 102,
334 DIAG_SUBSYS_LWIP = 103,
335 DIAG_SUBSYS_IMS_QVP_RTP = 104,
336 DIAG_SUBSYS_STORAGE = 105,
337 DIAG_SUBSYS_WCI2 = 106,
338 DIAG_SUBSYS_AOSTLM_TEST = 107,
339 DIAG_SUBSYS_LAST,
340
341 /* Subsystem IDs reserved for OEM use */
342 DIAG_SUBSYS_RESERVED_OEM_0 = 250,
343 DIAG_SUBSYS_RESERVED_OEM_1 = 251,
344 DIAG_SUBSYS_RESERVED_OEM_2 = 252,
345 DIAG_SUBSYS_RESERVED_OEM_3 = 253,
346 DIAG_SUBSYS_RESERVED_OEM_4 = 254,
347 DIAG_SUBSYS_LEGACY = 255
348} qcdiag_subsys_cmd_t;
349
350typedef enum {
351 WCDMA_VERSION = 0x0000, /* Version */
352 WCDMA_ADDITIONAL_STATUS = 0x000f, /* Additional Status */
353} qcdiag_subsys_wcdma_t;
354
355typedef enum {
356 GSM_VERSION = 0x0000, /* Version */
357 GSM_STATUS = 0x0001, /* Status */
358} qcdiag_subsys_gsm_t;
359
360typedef enum {
361 UMTS_VERSION = 0x0000, /* Version */
362} qcdiag_subsys_umts_t;
363
364typedef enum {
365 CM_STATE_INFO = 0x0000, /* State Info */
366 CM_STATE_INFO_CUR_SUB = 0x0018, /* State Info Of Current Subscription */
367 CM_MULTI_SIM_STATE_INFO = 0x002c, /* MultiSim State Info */
368 CM_GET_PH_INFO = 0x0030, /* Get Phone Info */
369} qcdiag_subsys_cm_t;
370
371typedef enum {
372 PARAMS_EXT_MOBILE_ID = 0x0006, /* Ext Mobile Id */
373} qcdiag_subsys_params_t;
374
375#endif /* PACKET_QCDIAG_H */
Extended metadata for a value_string array.
Definition value_string.h:325
Definition nstime.h:26
Definition tvbuff-int.h:36