Coverage Report

Created: 2026-11-12 07:01

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-cdma2k.c
Line
Count
Source
1
/*
2
 * packet-cdma2k.c
3
 *
4
 * Wireshark - Network traffic analyzer
5
 * By Gerald Combs <gerald@wireshark.org>
6
 * Copyright 1998 Gerald Combs
7
 *
8
 * SPDX-License-Identifier: GPL-2.0-or-later
9
 *
10
 * Ref CDMA2K: 3GPP2 C.S0005-E v3.0
11
 */
12
13
#include "config.h"
14
15
#include <epan/packet.h>
16
#include <epan/expert.h>
17
18
void proto_reg_handoff_cdma2k(void);
19
void proto_register_cdma2k(void);
20
21
/* cdma2k Handle for the dissection */
22
static dissector_handle_t cdma2k_handle;
23
24
/* Function handlers for each message/information fields */
25
static void cdma2k_message_decode(proto_item *item,tvbuff_t *tvb, proto_tree *tree, unsigned *offset, proto_tree *mainTree, uint16_t *noerror, packet_info *pinfo);
26
static void cdma2k_message_REGISTRATION(proto_item *item,  tvbuff_t *tvb,  proto_tree *tree,  unsigned *offset,  uint16_t oneXPrev);
27
static void cdma2k_message_ORDER_IND(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset);
28
static void cdma2k_message_DATA_BURST_IND(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset);
29
static void cdma2k_message_ORIGINATION(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset, uint16_t authIncl, uint16_t oneXPrev);
30
static void cdma2k_message_PAGE_RESPONSE(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset, uint16_t authIncl, uint16_t oneXPrev);
31
static void cdma2k_message_AUTH_CHALL_RSP(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset);
32
static void cdma2k_message_ORDER_CMD(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset);
33
static void cdma2k_message_DATA_BURST_CMD(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset);
34
static void cdma2k_message_AUTH_CHALL_REQ(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset);
35
static void cdma2k_message_GEN_PAGE_REQ(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset, uint16_t l3PduLen);
36
37
static void cdma2k_message_ADDR_FIELDS(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *l_offset,  uint16_t headerRecLen);
38
static void cdma2k_message_AUTH_FIELDS(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *l_offset,  uint16_t headerRecLen);
39
static void cdma2k_message_IMSI_CLASS_SUBFIELDS(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *l_offset);
40
static void cdma2k_message_ALERT_WITH_INFO(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset);
41
static void cdma2k_message_HANDOFF_DIR(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset, uint16_t msgType);
42
static void cdma2k_message_ACTIVE_SET_RECORD_FIELDS(proto_item *item,tvbuff_t *tvb,proto_tree *subtree,unsigned *l_offset, uint16_t chInd,uint16_t schIncl);
43
44
45
/*Initialize all the header parameters that are to be displayed*/
46
47
static int proto_cdma2k;
48
static int hf_cdma2k_msghdr;
49
50
/* Tlac Parameters */
51
static int hf_cdma2k_tlac_Record;
52
static int hf_cdma2k_tlac_Header;
53
static int hf_cdma2k_tlac_Channel;
54
static int hf_cdma2k_tlac_1x_Protocol_Revision;
55
static int hf_cdma2k_tlac_msgType;
56
static int hf_cdma2k_tlac_Header_Record;
57
static int hf_cdma2k_tlac_Header_Records_Count;
58
static int hf_cdma2k_tlac_Header_Record_Type;
59
static int hf_cdma2k_tlac_Header_Record_Length;
60
static int hf_cdma2k_tlac_Header_Record_Values;
61
static int hf_cdma2k_tlac_Header_Record_Reserved;
62
static int hf_cdma2k_tlac_Pdu;
63
static int hf_cdma2k_tlac_Pdu_Length;
64
65
/* Addressing Fileds */
66
static int hf_cdma2k_tlac_Header_Record_MsId_Type;
67
static int hf_cdma2k_tlac_Header_Record_Ext_MsId_Type;
68
static int hf_cdma2k_tlac_Header_Record_MsId_Length;
69
static int hf_cdma2k_tlac_Header_Record_Imsi_M_S1;
70
static int hf_cdma2k_tlac_Header_Record_Imsi_M_S1_sec_3_dig;
71
static int hf_cdma2k_tlac_Header_Record_Imsi_M_S1_thousand_dig;
72
static int hf_cdma2k_tlac_Header_Record_Imsi_M_S1_last_3_dig;
73
static int hf_cdma2k_tlac_Header_Record_Imsi_M_S2;
74
static int hf_cdma2k_tlac_Header_Record_Esn;
75
static int hf_cdma2k_tlac_Header_Record_Imsi_Class;
76
static int hf_cdma2k_tlac_Header_Record_Imsi_Class0_Type;
77
static int hf_cdma2k_tlac_Header_Record_Imsi_Class1_Type;
78
static int hf_cdma2k_tlac_Header_Record_Imsi_S2;
79
static int hf_cdma2k_tlac_Header_Record_Imsi_S1;
80
static int hf_cdma2k_tlac_Header_Record_Imsi_11_12;
81
static int hf_cdma2k_tlac_Header_Record_MCC;
82
static int hf_cdma2k_tlac_Header_Record_Imsi_Addr_Num;
83
static int hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId;
84
static int hf_cdma2k_tlac_Header_Record_Tmsi_Code_Addr;
85
static int hf_cdma2k_tlac_Header_Record_Tmsi_Zone;
86
87
/* Authentication Fields */
88
static int hf_cdma2k_tlac_Header_Record_Mac_Incl;
89
static int hf_cdma2k_tlac_Header_Record_Auth_Incl;
90
static int hf_cdma2k_tlac_Header_Record_Authr;
91
static int hf_cdma2k_tlac_Header_Record_Randc;
92
static int hf_cdma2k_tlac_Header_Record_Count;
93
static int hf_cdma2k_tlac_Header_Record_Sdu_KeyId;
94
static int hf_cdma2k_tlac_Header_Record_Sdu_Algo;
95
static int hf_cdma2k_tlac_Header_Record_Sdu_Sseq;
96
static int hf_cdma2k_tlac_Header_Record_Sdu_Sseqh;
97
static int hf_cdma2k_tlac_Header_Record_Sdu_Sseq_Or_Sseqh;
98
99
/* Msg Types */
100
static int hf_cdma2k_RegMsg;
101
static int hf_cdma2k_OrderIndMsg;
102
static int hf_cdma2k_DataBurstIndMsg;
103
static int hf_cdma2k_OrigMsg;
104
static int hf_cdma2k_PageRspMsg;
105
static int hf_cdma2k_AuthChallRspMsg;
106
static int hf_cdma2k_DataBurstCmdMsg;
107
static int hf_cdma2k_AuthChallReqMsg;
108
static int hf_cdma2k_GenPageReqMsg;
109
static int hf_cdma2k_AlertWithInfoMsg;
110
static int hf_cdma2k_UhdmMsg;
111
static int hf_cdma2k_MeIdUhdmMsg;
112
static int hf_cdma2k_ext_scm_ind;
113
114
/* Registration Msg Parms */
115
static int hf_cdma2k_Reg_Type;
116
static int hf_cdma2k_Slot_Cycle_Index;
117
static int hf_cdma2k_Mob_P_Rev;
118
static int hf_cdma2k_Ext_Scm;
119
static int hf_cdma2k_Sloted_Mode;
120
static int hf_cdma2k_Mob_Term;
121
static int hf_cdma2k_Return_Cause;
122
static int hf_cdma2k_Qpch_Supported;
123
static int hf_cdma2k_Enhanced_Rc;
124
static int hf_cdma2k_Uzid_Incl;
125
static int hf_cdma2k_Uzid;
126
static int hf_cdma2k_GeoLoc_Incl;
127
static int hf_cdma2k_GeoLoc_Type;
128
129
/* Order Ind Msg Parms */
130
static int hf_cdma2k_Order_Ind;
131
static int hf_cdma2k_Randbs;
132
static int hf_cdma2k_Rejected_Type;
133
static int hf_cdma2k_Rejected_Order;
134
static int hf_cdma2k_Rejected_Ordq;
135
static int hf_cdma2k_Rejected_Parm_Id;
136
static int hf_cdma2k_Rejected_Record;
137
static int hf_cdma2k_Tag;
138
139
static int hf_cdma2k_Rsc_Mode_Ind;
140
static int hf_cdma2k_Rsci;
141
static int hf_cdma2k_Rsc_End_Time_Unit;
142
static int hf_cdma2k_Rsc_End_Time_Value;
143
144
/* Order Cmd Msg Parms */
145
static int hf_cdma2k_Order_Cmd;
146
static int hf_cdma2k_Authbs;
147
static int hf_cdma2k_Roam_Ind;
148
static int hf_cdma2k_C_Sig_Encrypt_Mode;
149
static int hf_cdma2k_Enc_Key_Size;
150
static int hf_cdma2k_Msg_Int_Info_Incl;
151
static int hf_cdma2k_Change_Keys;
152
static int hf_cdma2k_Use_Uak;
153
154
static int hf_cdma2k_Retry_Type;
155
static int hf_cdma2k_Retry_Delay;
156
static int hf_cdma2k_Reject_Reason;
157
static int hf_cdma2k_Rejected_Msg_Type;
158
static int hf_cdma2k_Rejected_Msg_Seq;
159
160
/* BCMC Order type */
161
static int hf_cdma2k_All_Bcmc_Flows_Ind;
162
static int hf_cdma2k_Clear_All_Retry_Delay;
163
static int hf_cdma2k_All_Bcmc_Reason;
164
static int hf_cdma2k_All_Bcmc_Retry_Delay;
165
static int hf_cdma2k_Num_Bcmc_Programs;
166
static int hf_cdma2k_Bcmc_Program_Id_Len;
167
static int hf_cdma2k_Bcmc_Program_Id;
168
static int hf_cdma2k_Bcmc_Flow_Discriminator_Len;
169
static int hf_cdma2k_Num_Flow_Discriminator;
170
static int hf_cdma2k_Bcmc_Flow_Discriminator;
171
static int hf_cdma2k_Same_As_Previous_Bcmc_Flow;
172
static int hf_cdma2k_Bcmc_Reason;
173
static int hf_cdma2k_Bcmc_Retry_Delay;
174
175
static int hf_cdma2k_Rsc_Mode_Supported;
176
static int hf_cdma2k_Max_Rsc_End_Time_Unit;
177
static int hf_cdma2k_Max_Rsc_End_Time_Value;
178
static int hf_cdma2k_Req_Rsci;
179
static int hf_cdma2k_Ignore_Qpch;
180
static int hf_cdma2k_Rer_Mode_Incl;
181
static int hf_cdma2k_Rer_Mode_Enabled;
182
static int hf_cdma2k_Rer_Max_Num_Msg_Idx;
183
static int hf_cdma2k_Rer_Time;
184
static int hf_cdma2k_Rer_Time_Unit;
185
static int hf_cdma2k_Max_Rer_Pilot_List_Size;
186
static int hf_cdma2k_Tkz_Mode_Incl;
187
static int hf_cdma2k_Tkz_Mode_Enabled;
188
static int hf_cdma2k_Tkz_Max_Num_Msg_Idx;
189
static int hf_cdma2k_Tkz_Update_Prd;
190
static int hf_cdma2k_Tkz_List_Len;
191
static int hf_cdma2k_Tkz_Timer;
192
193
/* Service Status Order */
194
static int hf_cdma2k_Sr_Id_Bitmap;
195
static int hf_cdma2k_Service_Status;
196
197
/* Location Service Order */
198
static int hf_cdma2k_Regulatory_Ind_Incl;
199
static int hf_cdma2k_Regulatory_Ind;
200
/* Order Msg Parms */
201
static int hf_cdma2k_Add_Record_Len;
202
static int hf_cdma2k_Order_Specific_Fields;
203
static int hf_cdma2k_Ordq;
204
static int hf_cdma2k_Con_Ref;
205
206
/* Data Burst Msg Parms */
207
static int hf_cdma2k_Msg_Number;
208
static int hf_cdma2k_Burst_Type;
209
static int hf_cdma2k_Num_Msgs;
210
static int hf_cdma2k_Num_Fields;
211
static int hf_cdma2k_Chari_Data;
212
static int hf_cdma2k_Msg_Identifier;
213
static int hf_cdma2k_Parm_Id;
214
static int hf_cdma2k_Parm_Length;
215
static int hf_cdma2k_Parm_Value;
216
217
/* Origination and Page Response Msg Parms */
218
static int hf_cdma2k_Request_Mode;
219
static int hf_cdma2k_Special_Service;
220
static int hf_cdma2k_pm;
221
static int hf_cdma2k_digit_mode;
222
static int hf_cdma2k_More_Fields;
223
static int hf_cdma2k_Nar_An_Cap;
224
static int hf_cdma2k_Paca_Reorig;
225
static int hf_cdma2k_More_Records;
226
static int hf_cdma2k_encryption_supported;
227
static int hf_cdma2k_Paca_Supported;
228
static int hf_cdma2k_num_alt_so;
229
static int hf_cdma2k_DRS;
230
static int hf_cdma2k_SR_ID;
231
static int hf_cdma2k_Otd_Supported;
232
static int hf_cdma2k_For_Rc_Pref;
233
static int hf_cdma2k_Rev_Rc_Pref;
234
static int hf_cdma2k_Fch_Supported;
235
static int hf_cdma2k_Fch_capability_type_specific_Fields;
236
static int hf_cdma2k_Fch_Frame_Size;
237
static int hf_cdma2k_For_Fch_Len;
238
static int hf_cdma2k_For_Fch_Rc_Map;
239
static int hf_cdma2k_Rev_Fch_Len;
240
static int hf_cdma2k_Rev_Fch_Rc_Map;
241
static int hf_cdma2k_Dcch_capability_type_specific_Fields;
242
static int hf_cdma2k_Dcch_Frame_Size;
243
static int hf_cdma2k_For_Dcch_Len;
244
static int hf_cdma2k_For_Dcch_Rc_Map;
245
static int hf_cdma2k_Rev_Dcch_Len;
246
static int hf_cdma2k_Rev_Dcch_Rc_Map;
247
static int hf_cdma2k_Rev_Fch_Gating_Req;
248
static int hf_cdma2k_Orig_Reason;
249
static int hf_cdma2k_Orig_Count;
250
static int hf_cdma2k_Sts_Supported;
251
static int hf_cdma2k_ThreeXCchSupported;
252
static int hf_cdma2k_Wll_Incl;
253
static int hf_cdma2k_Wll_Device_Type;
254
static int hf_cdma2k_Global_Emergency_Call;
255
static int hf_cdma2k_Ms_Init_Pos_Loc_Ind;
256
static int hf_cdma2k_Qos_Parms_Incl;
257
static int hf_cdma2k_Qos_Parms_Length;
258
static int hf_cdma2k_Qos_Parms;
259
static int hf_cdma2k_Enc_Info_Incl;
260
static int hf_cdma2k_Sig_Encrypt_Supp;
261
static int hf_cdma2k_DSig_Encrypt_Req;
262
static int hf_cdma2k_CSig_Encrypt_Req;
263
static int hf_cdma2k_New_Sseq_H;
264
static int hf_cdma2k_New_Sseq_H_Sig;
265
static int hf_cdma2k_Ui_Encrypt_Req;
266
static int hf_cdma2k_Prev_Sid_Incl;
267
static int hf_cdma2k_Prev_Sid;
268
static int hf_cdma2k_Prev_Nid_Incl;
269
static int hf_cdma2k_Prev_Nid;
270
static int hf_cdma2k_Prev_Pzid_Incl;
271
static int hf_cdma2k_Prev_Pzid;
272
static int hf_cdma2k_So_Bitmap_Ind;
273
static int hf_cdma2k_So_Group_Num;
274
static int hf_cdma2k_So_Bitmap;
275
static int hf_cdma2k_Alt_So;
276
static int hf_cdma2k_Dcch_Supported;
277
static int hf_cdma2k_Hook_Status;
278
279
/* Auth Chall Rsp Msg Parms */
280
static int hf_cdma2k_Authu;
281
282
/* Auth Chall Req Msg Parms */
283
static int hf_cdma2k_Randu;
284
static int hf_cdma2k_Gen_Cmea_Key;
285
286
/* Gen Page Req Msg Parms */
287
static int hf_cdma2k_service_option;
288
289
/* Handoff Dir Msg Parms */
290
static int hf_cdma2k_Use_Time;
291
static int hf_cdma2k_Action_Time;
292
static int hf_cdma2k_Hdm_Seq;
293
static int hf_cdma2k_Parms_Incl;
294
static int hf_cdma2k_P_Rev;
295
static int hf_cdma2k_Serv_Neg_Type;
296
static int hf_cdma2k_Search_Incl;
297
static int hf_cdma2k_Pilot_Search;
298
static int hf_cdma2k_Srch_Win_A;
299
static int hf_cdma2k_Srch_Win_N;
300
static int hf_cdma2k_Srch_Win_R;
301
static int hf_cdma2k_T_Add;
302
static int hf_cdma2k_T_Drop;
303
static int hf_cdma2k_T_Comp;
304
static int hf_cdma2k_T_Tdrop;
305
static int hf_cdma2k_Soft_Slope;
306
static int hf_cdma2k_Add_Intercept;
307
static int hf_cdma2k_Drop_Intercept;
308
static int hf_cdma2k_Extra_Parms_Incl;
309
static int hf_cdma2k_Extra_Parms;
310
static int hf_cdma2k_Packet_Zone_Id;
311
static int hf_cdma2k_Frame_Offset;
312
static int hf_cdma2k_Private_Lcm;
313
static int hf_cdma2k_Reset_L2;
314
static int hf_cdma2k_Reset_Fpc;
315
static int hf_cdma2k_Encrypt_Mode;
316
static int hf_cdma2k_Nom_Pwr_Ext;
317
static int hf_cdma2k_Nom_Pwr;
318
static int hf_cdma2k_Rlgain_Traffic_Pilot;
319
static int hf_cdma2k_Default_Rlag;
320
static int hf_cdma2k_Num_Preamble;
321
static int hf_cdma2k_Band_Class;
322
static int hf_cdma2k_Cdma_Freq;
323
static int hf_cdma2k_Return_If_Handoff_Fail;
324
static int hf_cdma2k_Complete_Search;
325
static int hf_cdma2k_Periodic_Search;
326
static int hf_cdma2k_Scr_Incl;
327
static int hf_cdma2k_Scr;
328
static int hf_cdma2k_Serv_Con_Seq;
329
static int hf_cdma2k_Record_Type;
330
static int hf_cdma2k_Record_Len;
331
static int hf_cdma2k_Type_Specific_Fields;
332
static int hf_cdma2k_Nnscr_Incl;
333
static int hf_cdma2k_Nnscr;
334
static int hf_cdma2k_Use_Pwr_Cntl_Step;
335
static int hf_cdma2k_Pwr_Cntl_Step;
336
static int hf_cdma2k_Clear_Retry_Delay;
337
static int hf_cdma2k_Sch_Incl;
338
static int hf_cdma2k_Sch;
339
static int hf_cdma2k_Num_For_Assign;
340
static int hf_cdma2k_Record_For_Assign;
341
static int hf_cdma2k_Sch_Id;
342
static int hf_cdma2k_Sch_Duration;
343
static int hf_cdma2k_Sch_Start_Time_Incl;
344
static int hf_cdma2k_Sch_Start_Time;
345
static int hf_cdma2k_Sccl_Index;
346
static int hf_cdma2k_Num_Rev_Assign;
347
static int hf_cdma2k_Record_Rev_Assign;
348
static int hf_cdma2k_Sch_Num_Bits_Idx;
349
static int hf_cdma2k_Fpc_Subchain_Gain;
350
static int hf_cdma2k_Use_Pc_Time;
351
static int hf_cdma2k_Pc_Action_Time;
352
static int hf_cdma2k_Ch_Ind;
353
static int hf_cdma2k_Active_Set_Rec_Len;
354
static int hf_cdma2k_Active_Set_Rec_Fields;
355
static int hf_cdma2k_Rev_Fch_Gating_Mode;
356
static int hf_cdma2k_Rev_Pwr_Cntl_Delay_Incl;
357
static int hf_cdma2k_Rev_Pwr_Cntl_Delay;
358
static int hf_cdma2k_D_Sig_Encrypt_Mode;
359
static int hf_cdma2k_3xfl_1xrl_Incl;
360
static int hf_cdma2k_1xrl_Freq_Offset;
361
static int hf_cdma2k_Sync_Id_Incl;
362
static int hf_cdma2k_Sync_Id_Len;
363
static int hf_cdma2k_Sync_Id;
364
static int hf_cdma2k_Cc_Info_Incl;
365
static int hf_cdma2k_Num_Calls_Assign;
366
static int hf_cdma2k_Record_Calls_Assign;
367
static int hf_cdma2k_Response_Ind;
368
static int hf_cdma2k_Bypass_Alert_Answer;
369
static int hf_cdma2k_Cs_Supported;
370
static int hf_cdma2k_Chm_Supported;
371
static int hf_cdma2k_Cdma_Off_Time_Rep_Sup_Ind;
372
static int hf_cdma2k_Cdma_Off_Time_Rep_Threshold_Unit;
373
static int hf_cdma2k_Cdma_Off_Time_Rep_Threshold;
374
static int hf_cdma2k_Release_To_Idle_Ind;
375
static int hf_cdma2k_Msg_Integrity_Sup;
376
static int hf_cdma2k_Gen_2g_Key;
377
static int hf_cdma2k_Register_In_Idle;
378
static int hf_cdma2k_Plcm_Type_Incl;
379
static int hf_cdma2k_Plcm_Type;
380
static int hf_cdma2k_Plcm_39;
381
static int hf_cdma2k_T_Tdrop_Range_Incl;
382
static int hf_cdma2k_T_Tdrop_Range;
383
static int hf_cdma2k_For_Pdch_Supported;
384
static int hf_cdma2k_Pdch_Chm_Supported;
385
static int hf_cdma2k_Pilot_Info_Req_Supported;
386
static int hf_cdma2k_Enc_Supported;
387
static int hf_cdma2k_Sig_Encrypt_Sup;
388
static int hf_cdma2k_Ui_Encrypt_Sup;
389
static int hf_cdma2k_Use_Sync_Id;
390
static int hf_cdma2k_Sid_Incl;
391
static int hf_cdma2k_Sid;
392
static int hf_cdma2k_Nid_Incl;
393
static int hf_cdma2k_Nid;
394
static int hf_cdma2k_Sdb_Supported;
395
static int hf_cdma2k_Mob_Qos;
396
static int hf_cdma2k_Ms_Init_Pos_Loc_Sup_Ind;
397
static int hf_cdma2k_Rev_Pdch_Supported;
398
static int hf_cdma2k_Pz_Hyst_Enabled;
399
static int hf_cdma2k_Pz_Hyst_Info_Incl;
400
static int hf_cdma2k_Pz_Hyst_List_Len;
401
static int hf_cdma2k_Pz_Hyst_Act_Timer;
402
static int hf_cdma2k_Pz_Hyst_Timer_Mul;
403
static int hf_cdma2k_Pz_Hyst_Timer_Exp;
404
static int hf_cdma2k_Bcmc_On_Traffic_Sup;
405
static int hf_cdma2k_Auto_Re_Traffic_Allowed_Ind;
406
static int hf_cdma2k_Sch_Bcmc_Ind;
407
static int hf_cdma2k_Add_Plcm_For_Sch_Incl;
408
static int hf_cdma2k_Add_Plcm_For_Sch_Type;
409
static int hf_cdma2k_Add_Plcm_For_Sch_35;
410
static int hf_cdma2k_Record_Sch_Bcmc;
411
static int hf_cdma2k_Use_Add_Plcm_For_Sch;
412
static int hf_cdma2k_Fsch_Outercode_Incl;
413
static int hf_cdma2k_Fsch_Outercode_Rate;
414
static int hf_cdma2k_Fsch_Outercode_Offset;
415
static int hf_cdma2k_Max_Add_Serv_Instance;
416
static int hf_cdma2k_Use_Ch_Cfg_Rrm;
417
static int hf_cdma2k_Tx_Pwr_Limit_Incl;
418
static int hf_cdma2k_Tx_Pwr_Limit_Default;
419
static int hf_cdma2k_Tx_Pwr_Limit;
420
421
/* Active Set Record Fields of Handoff Direction Message*/
422
static int hf_cdma2k_Num_For_Sch;
423
static int hf_cdma2k_Record_For_Sch;
424
static int hf_cdma2k_Num_Rev_Sch;
425
static int hf_cdma2k_Record_Rev_Sch;
426
static int hf_cdma2k_Walsh_Id;
427
static int hf_cdma2k_Num_Pilots;
428
static int hf_cdma2k_Srch_Offset_Incl;
429
static int hf_cdma2k_Record_Pilots;
430
static int hf_cdma2k_Pilot_Pn;
431
static int hf_cdma2k_Srch_Offset;
432
static int hf_cdma2k_Add_Pilot_Rec_Incl;
433
static int hf_cdma2k_Pilot_Rec_Type;
434
static int hf_cdma2k_Pwr_Comb_Ind;
435
static int hf_cdma2k_Code_Chan_Fch;
436
static int hf_cdma2k_Qof_Mask_Id_Fch;
437
static int hf_cdma2k_Num_Sch;
438
static int hf_cdma2k_Record_Sch;
439
static int hf_cdma2k_Pilot_Incl;
440
static int hf_cdma2k_Code_Chan_Sch;
441
static int hf_cdma2k_Qof_Mask_Id_Sch;
442
static int hf_cdma2k_3xFch_Info_Incl;
443
static int hf_cdma2k_3xFch_Low_Incl;
444
static int hf_cdma2k_Qof_Mask_Id_Fch_Low;
445
static int hf_cdma2k_Code_Chan_Fch_Low;
446
static int hf_cdma2k_3xFch_High_Incl;
447
static int hf_cdma2k_Qof_Mask_Id_Fch_High;
448
static int hf_cdma2k_Code_Chan_Fch_High;
449
static int hf_cdma2k_3xSch_Info_Incl;
450
static int hf_cdma2k_3xSch_Low_Incl;
451
static int hf_cdma2k_Qof_Mask_Id_Sch_Low;
452
static int hf_cdma2k_Code_Chan_Sch_Low;
453
static int hf_cdma2k_3xSch_High_Incl;
454
static int hf_cdma2k_Qof_Mask_Id_Sch_High;
455
static int hf_cdma2k_Code_Chan_Sch_High;
456
static int hf_cdma2k_Ccsh_Included;
457
static int hf_cdma2k_Use_Ccsh_Encoder_Time;
458
static int hf_cdma2k_Ccsh_Encoder_Action_Time;
459
static int hf_cdma2k_Ccsh_Encoder_Type;
460
static int hf_cdma2k_Code_Chan_Dcch;
461
static int hf_cdma2k_Qof_Mask_Id_Dcch;
462
static int hf_cdma2k_3xDcch_Info_Incl;
463
static int hf_cdma2k_3xDcch_Low_Incl;
464
static int hf_cdma2k_Qof_Mask_Id_Dcch_Low;
465
static int hf_cdma2k_Code_Chan_Dcch_Low;
466
static int hf_cdma2k_3xDcch_High_Incl;
467
static int hf_cdma2k_Qof_Mask_Id_Dcch_High;
468
static int hf_cdma2k_Code_Chan_Dcch_High;
469
static int hf_cdma2k_Fundicated_Bcmc_Ind;
470
static int hf_cdma2k_For_Cpcch_Walsh;
471
static int hf_cdma2k_For_Cpcsch;
472
static int hf_cdma2k_Rev_Fch_Assigned;
473
static int hf_cdma2k_Add_Plcm_For_Fch_Incl;
474
static int hf_cdma2k_Add_Plcm_For_Fch_Type;
475
static int hf_cdma2k_Add_Plcm_For_Fch_39;
476
static int hf_cdma2k_For_Cpcch_Info_Incl;
477
478
/* Alert With Info Msg Parms */
479
480
static int hf_cdma2k_Info_Rec;
481
static int hf_cdma2k_Chari;
482
static int hf_cdma2k_Number_Type;
483
static int hf_cdma2k_Number_Plan;
484
static int hf_cdma2k_Pres_Indicator;
485
static int hf_cdma2k_Scr_Indicator;
486
static int hf_cdma2k_Signal_Type;
487
static int hf_cdma2k_Alert_Pitch;
488
static int hf_cdma2k_Signal;
489
static int hf_cdma2k_Msg_Count;
490
static int hf_cdma2k_Extension_Bit;
491
static int hf_cdma2k_Subaddress_Type;
492
static int hf_cdma2k_Odd_Even_Ind;
493
static int hf_cdma2k_Redirection_Reason;
494
static int hf_cdma2k_Pulse_Freq;
495
static int hf_cdma2k_Pulse_On_Time;
496
static int hf_cdma2k_Pulse_Off_Time;
497
static int hf_cdma2k_Pulse_Count;
498
static int hf_cdma2k_Cadence_Count;
499
static int hf_cdma2k_Num_Grps;
500
static int hf_cdma2k_Amplitude;
501
static int hf_cdma2k_Freq;
502
static int hf_cdma2k_On_Time;
503
static int hf_cdma2k_Off_Time;
504
static int hf_cdma2k_Repeat;
505
static int hf_cdma2k_Delay;
506
static int hf_cdma2k_Cadence_Type;
507
static int hf_cdma2k_Polarity_Incl;
508
static int hf_cdma2k_Toggle_Mode;
509
static int hf_cdma2k_Reverse_Polarity;
510
static int hf_cdma2k_Pwr_Denial_Time;
511
static int hf_cdma2k_Call_Waiting_Ind;
512
513
static int hf_cdma2k_Reserved;
514
515
static int hf_cdma2k_Cmea;
516
static int hf_cdma2k_Ecmea;
517
static int hf_cdma2k_Rea;
518
519
static int hf_cdma2k_scm_dual_mode;
520
static int hf_cdma2k_scm_slotted_class;
521
static int hf_cdma2k_scm_meid_sup;
522
static int hf_cdma2k_scm_25mhz_bw;
523
static int hf_cdma2k_scm_trans;
524
static int hf_cdma2k_scm_pow_class;
525
526
static expert_field ei_cdma2k_error;
527
528
/* Toggle sub-tree items */
529
static int ett_cdma2k_msghdr;
530
static int ett_cdma2k_subtree;
531
static int ett_cdma2k_subtree1;
532
static int ett_cdma2k_subtree2;
533
static int ett_cdma2k_m_s1;
534
static int ett_cdma2000_scm;
535
536
11
#define CDMA2KRegIndMsg       0x01
537
48
#define CDMA2KOrderIndMsg     0x02
538
16
#define CDMA2KDataBurstIndMsg 0x03
539
34
#define CDMA2KOrigIndMsg      0x04
540
10
#define CDMA2KPageResponseMsg 0x05
541
22
#define CDMA2KAuthChallRspMsg 0x06
542
14
#define CDMA2KOrderCmdMsg     0x07
543
25
#define CDMA2KDataBurstCmdMsg 0x09
544
2
#define CDMA2KAuthChallReqMsg 0x0A
545
1
#define CDMA2KGenPageReqMsg   0x11
546
547
73
#define CDMA2KAlertWithInfoMsg                   0x03
548
133
#define CDMA2KUniversalHandoffDirectionMsg       0x22
549
156
#define CDMA2KMeIdUniversalHandoffDirectionMsg   0x35
550
551
/* CDMA2K Msg Types */
552
static const value_string Cdma2k_Message_types[] = {
553
    { 0x01, "CDMA2KRegIndMsg" },
554
    { 0x02, "CDMA2KOrderIndMsg"},
555
    { 0x03, "CDMA2KDataBurstIndMsg"},
556
    { 0x04, "CDMA2KOrigIndMsg"},
557
    { 0x05, "CDMA2KPageResponseMsg"},
558
    { 0x06, "CDMA2KAuthChallRspMsg"},
559
    { 0x07, "CDMA2KOrderCmdMsg"},
560
    { 0x09, "CDMA2KDataBurstCmdMsg"},
561
    { 0x0A, "CDMA2KAuthChallReqMsg"},
562
    { 0x11, "CDMA2KGenPageReqMsg"},
563
    { 0, NULL },
564
};
565
566
#if 0
567
Currently not used ??
568
/* CDMA2K Msg Types specific to dedicated channel*/
569
static const value_string Cdma2k_Dcsh_Message_types[] = {
570
    { 0x03, "CDMA2KAlertWithInfoMsg" },
571
    { 0x22, "CDMA2KUniversalHandoffDirectionMsg"},
572
    { 0x35, "CDMA2KMeIdUniversalHandoffDirectionMsg"},
573
    { 0, NULL },
574
};
575
#endif
576
577
/* TLAC Channel Types */
578
static const value_string Channel_Types[] = {
579
    { 0, "CSCH_LOGICAL_CHANNEL" },
580
    { 1, "DSCH_LOGICAL_CHANNEL" },
581
    { 0, NULL },
582
};
583
584
585
/* TLAC Header Record Types */
586
static const value_string Header_Record_Types[] = {
587
    { 0, "ADDRESSING_SUBLAYER_RECORD_TYPE" },
588
    { 1, "AUTH_INTEGRITY_SUBLAYER_RECORD_TYPE" },
589
    { 0, NULL },
590
};
591
592
593
/* MsId Types */
594
static const value_string MsId_Address_Types[] = {
595
    { 0, "IMSI_S_ESN_MSID" },
596
    { 1, "ESN_MSID" },
597
    { 2, "IMSI_MSID" },
598
    { 3, "IMSI_ESN_MSID" },
599
    { 4, "EXTENDED_MSID" },
600
    { 5, "TMSI_MSID" },
601
    { 6, "MAX_MSID_ADD" },
602
    { 0, NULL },
603
};
604
605
606
/* Extended MsId Types */
607
static const value_string Ext_MsId_Address_Types[] = {
608
    { 0, "EXTENDED_MSID_MEID" },
609
    { 1, "EXTENDED_MSID_IMSI_MEID" },
610
    { 2, "EXTENDED_MSID_IMSI_ESN_MEID" },
611
    { 3, "MAX_EXTENDED_MSID_ADDRESS_TYPE" },
612
    { 0, NULL },
613
};
614
615
616
/* Imsi Class */
617
static const value_string Imsi_Class[] = {
618
    { 0, "IMSI_CLASS_0_TYPE" },
619
    { 1, "IMSI_CLASS_1_TYPE" },
620
    { 0, NULL },
621
};
622
623
624
/* Imsi Class0 Types */
625
static const value_string Imsi_Class0_Types[] = {
626
    { 0, "IMSI_CLASS_0_IMSI_S" },
627
    { 1, "IMSI_CLASS_0_IMSI_S_IMSI_11_12" },
628
    { 2, "IMSI_CLASS_0_IMSI_S_MCC" },
629
    { 3, "IMSI_CLASS_0_IMSI_S_IMSI_11_12_MCC" },
630
    { 0, NULL },
631
};
632
633
634
/* Imsi Class1 Types */
635
static const value_string Imsi_Class1_Types[] = {
636
    { 0, "IMSI_CLASS_1_IMSI_S_IMSI_11_12" },
637
    { 1, "IMSI_CLASS_1_IMSI_S_IMSI_11_12_MCC" },
638
    { 0, NULL },
639
};
640
641
642
/* CDMA2K Reg Types */
643
static const value_string Reg_Types[] = {
644
    { 0, "TIMER_BASED" },
645
    { 1, "POWER_UP" },
646
    { 2, "ZONE_BASED" },
647
    { 3, "POWER_DOWN" },
648
    { 4, "PARAMETER_CHANGE" },
649
    { 5, "ORDERED" },
650
    { 6, "DISTANCE_BASED" },
651
    { 7, "USERZONE_BASED" },
652
    { 8, "ENCRYPTION_RESYNC_REQUIRED" },
653
    { 9, "BCMC_REGISTRATION" },
654
    { 0, NULL },
655
};
656
657
658
/* CDMA2K DB Chari Msg Identifier Types */
659
static const value_string Chari_Identifier_Types[] = {
660
    { 0, "SMDPP_637" },
661
    { 1, "SMDBRD_637" },
662
    { 2, "SMSACK_637" },
663
    { 0, NULL },
664
};
665
666
667
/* CDMA2K DB Chari Parameter Types */
668
static const value_string Chari_Parm_Types[] = {
669
    { 0, "TELE_SERVICE_637" },
670
    { 1, "BROADCAST_SERVICE_637" },
671
    { 2, "ORIGINATION_ADDRESS_637" },
672
    { 3, "ORIGINATION_SUBADDRESS_637" },
673
    { 4, "DESTINATION_ADDRESS_637" },
674
    { 5, "DESTINATION_SUBADDRESS_637" },
675
    { 6, "BEARER_REPLY_637" },
676
    { 7, "CAUSE_CODE_637" },
677
    { 8, "BEARER_DATA_637" },
678
    { 0, NULL },
679
};
680
681
682
/* CDMA2K Page Req Service Option Types */
683
static const value_string Page_Req_Service_Option_Types[] = {
684
    { 0x0000, "INVALID" },
685
    { 1, "Basic Variable Rate Voice Service (8 kbps)" },
686
    { 2, "Mobile Station Loopback (8 kbps)" },
687
    { 3, "Enhanced Variable Rate Voice Service (8 kbps)" },
688
    { 4, "Asynchronous Data Service (9.6 kbps)" },
689
    { 5, "Group 3 Facsimile (9.6 kbps)" },
690
    { 6, "Short Message Services (Rate Set 1)" },
691
    { 7, "Packet Data Service: Internet or ISO Protocol Stack (9.6 kbps)" },
692
    { 8, "Packet Data Service: CDPD Protocol Stack (9.6 kbps)" },
693
    { 9, "Mobile Station Loopback (13 kbps)" },
694
    {10, "None STU-III Transparent Service" },
695
    {11, "None STU-III Non-Transparent Service" },
696
    {12, "Asynchronous Data Service (14.4 or 9.6 kbps)" },
697
    {13, "Group 3 Facsimile (14.4 or 9.6 kbps)" },
698
    {14, "Short Message Services (Rate Set 2)" },
699
    {15, "Packet Data Service: Internet or ISO Protocol Stack (14.4 kbps)" },
700
    {16, "Packet Data Service: CDPD Protocol Stack (14.4 kbps)" },
701
    {17, "High Rate Voice Service (13 kbps)" },
702
    {18, "Over-the-Air Parameter Administration (Rate Set 1)" },
703
    {19, "Over-the-Air Parameter Administration (Rate Set 2)" },
704
    {20, "Group 3 Analog Facsimile (Rate Set 1)" },
705
    {21, "Group 3 Analog Facsimile (Rate Set 2) " },
706
    {22, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS1 forward, RS1 reverse)" },
707
    {23, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS1 forward, RS2 reverse)" },
708
709
    // page 3-3 (19)
710
    {24, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS2 forward, RS1 reverse)" },
711
    {25, "High Speed Packet Data Service: Internet or ISO Protocol Stack (RS2 forward, RS2 reverse)" },
712
    {26, "High Speed Packet Data Service: CDPD Protocol Stack (RS1 forward, RS1 reverse)" },
713
    {27, "High Speed Packet Data Service: CDPD Protocol Stack (RS1 forward, RS2 reverse)" },
714
    {28, "High Speed Packet Data Service: CDPD Protocol Stack (RS2 forward, RS1 reverse)" },
715
    {29, "High Speed Packet Data Service: CDPD Protocol Stack (RS2 forward, RS2 reverse)" },
716
    {30, "Supplemental Channel Loopback Test for Rate Set 1" },
717
    {31, "Supplemental Channel Loopback Test for Rate Set 2" },
718
    {32, "Test Data Service Option (TDSO)" },
719
    {33, "cdma2000 High Speed Packet Data Service, Internet or ISO Protocol Stack" },
720
    {34, "cdma2000 High Speed Packet Data Service, CDPD Protocol Stack" },
721
    {35, "Location Services, Rate Set 1 (9.6 kbps)" },
722
    {36, "Location Services, Rate Set 2 (14.4 kbps)" },
723
    {37, "ISDN Interworking Service (64 kbps)" },
724
    {38, "GSM Voice" },
725
    {39, "GSM Circuit Data" },
726
    {40, "GSM Packet Data" },
727
    {41, "GSM Short Message Service" },
728
    //42 - 53 None Reserved for MC-MAP standard service options
729
    {54, "Markov Service Option (MSO)" },
730
    {55, "Loopback Service Option (LSO)" },
731
    {56, "Selectable Mode Vocoder" },
732
733
    // page 3-4 (20)
734
    {57, "32 kbps Circuit Video Conferencing" },
735
    {58, "64 kbps Circuit Video Conferencing" },
736
    {59, "HRPD Packet Data Service" },
737
    {60, "Link Layer Assisted Robust Header Compression (LLA ROHC) - Header Removal" },
738
    {61, "Link Layer Assisted Robust Header Compression (LLA ROHC) - Header Compression" },
739
    {62, "Source-Controlled Variable-Rate Multimode Wideband Speech Codec (VMR-WB) Rate Set 2" },
740
    {63, "Source-Controlled Variable-Rate Multimode Wideband Speech Codec (VMR-WB) Rate Set 1" },
741
    {64, "HRPD auxiliary Packet Data Service instance" },
742
    {65, "cdma2000/GPRS Inter-working" },
743
    {66, "cdma2000 High Speed Packet Data Service,Internet or ISO Protocol Stack" },
744
    {67, "HRPD Packet Data IP Service where Higher Layer Protocol is IP or ROHC" },
745
    {68, "Enhanced Variable Rate Voice Service (EVRC-B)" },
746
    {69, "HRPD Packet Data Service, which when used in paging over the 1x air interface, a page response is required" },
747
    {70, "Enhanced Variable Rate Voice Service (EVRC-WB)" },
748
    {71, "HRPD Packet Data Service for altPPP" },
749
    {72, "HRPD auxiliary Packet Data IP Service with PDN multiplexing header" },
750
751
    // page 3-5 (21)
752
    {73, "Enhanced Variable Rate Voice Service (EVRC-NW:EVRC-WB with NB capacity operating points and DTX)" },
753
    {74, "Flexible Markov Service Option" },
754
    {75, "Enhanced Loopback Service Option" },
755
    //76 - 4099 None Reserved for standard service options.
756
    {4100, "Asynchronous Data Service, Revision 1 (9.6 or 14.4 kbps)" },
757
    {4101, "Group 3 Facsimile, Revision 1 (9.6 or 14.4 kbps)" },
758
    //4102 None Reserved for standard service options.
759
   {4103, "Packet Data Service: Internet or ISO Protocol Stack, Revision 1 (9.6 or 14.4 kbps)" },
760
   {4104, "Packet Data Service: CDPD Protocol Stack, Revision 1 (9.6 or 14.4 kbps)" },
761
762
763
   // page 3-6 (22)
764
   {32760, "Identifies service reference identifier 0" },
765
   {32761, "Identifies service reference identifier 1" },
766
   {32762, "Identifies service reference identifier 2" },
767
   {32763, "Identifies service reference identifier 3" },
768
   {32764, "Identifies service reference identifier 4" },
769
   {32765, "Identifies service reference identifier 5" },
770
   {32766, "Identifies service reference identifier 6" },
771
   {32767, "Identifies service reference identifier 7" },
772
    { 0x8000, "QCOMM_13KVOICE" },
773
    { 0x8001, "QCOMM_IS96VOICE" },
774
    { 0x8003, "QCOMM_DATA_SERVICES" },
775
    { 0x8008, "QCOMM_TDSO" },
776
    { 0x801d, "QCOMM_OFF_HOOK" },
777
    { 0x801e, "QCOMM_96MARKOV" },
778
    { 0x801f, "QCOMM_144MARKOV" },
779
    { 0, NULL },
780
781
};
782
783
784
/* CDMA2K Order Ind Types */
785
static const value_string Order_Ind_Cause_Types[] = {
786
    { 2,  "BASE_STATION_CHALLENGE" },
787
    { 3,  "SSD_UPDATE" },
788
    { 5,  "PARAMETER_UPDATE_CONFIRMATION" },
789
    { 11, "REQUEST_ANALOG_SERVICE" },
790
    { 16, "MOBILE_STATION_ACKNOWLEDGEMENT" },
791
    { 19, "SERVICE_OPTION_REQUEST" },
792
    { 20, "SERVICE_OPTION_RESPONSE" },
793
    { 21, "RELEASE" },
794
    { 23, "LONG_CODE_TRANSITION" },
795
    { 24, "CONNECT" },
796
    { 25, "CONTINUOUS_DTMF_TONE" },
797
    { 29, "SERVICE_OPTION_CONTROL" },
798
    { 30, "LOCAL_CONTROL_RESPONSE" },
799
    { 31, "MOBILE_STATION_REJECT" },
800
    { 33, "SECURITY_MODE_COMPLETION" },
801
    { 34, "FAST_CALL_SETUP" },
802
    { 0, NULL },
803
};
804
805
806
/* CDMA2K Order Cmd Types */
807
static const value_string Order_Cmd_Cause_Types[] = {
808
    { 1,  "ABBREVIATED_ALERT" },
809
    { 2,  "BASE_STATION_CHALLENGE" },
810
    { 3,  "MESSAGE_ENCRYPTION_MODE" },
811
    { 4,  "REORDER" },
812
    { 5,  "PARAMETER_UPDATE" },
813
    { 6,  "AUDIT" },
814
    { 9,  "INTERCEPT" },
815
    { 10, "MAINTENANCE" },
816
    { 16, "BASE_STATION_ACKNOWLEDGEMENT" },
817
    { 17, "PILOT_MEASUREMENT_REQUEST" },
818
    { 18, "LOCK_OR_MAINTENANCE_REQUIRED" },
819
    { 19, "SERVICE_OPTION_REQUEST" },
820
    { 20, "SERVICE_OPTION_RESPONSE" },
821
    { 21, "RELEASE" },
822
    { 22, "OUTER_LOOP_REPORT_REQUEST" },
823
    { 23, "LONG_CODE_TRANSITION" },
824
    { 24, "CONNECT" },
825
    { 25, "CONTINUOUS_DTMF_TONE" },
826
    { 26, "STATUS_REQUEST" },
827
    { 27, "REGISTRATION" },
828
    { 29, "SERVICE_OPTION_CONTROL" },
829
    { 30, "LOCAL_CONTROL" },
830
    { 31, "SLOTTED_MODE" },
831
    { 32, "RETRY" },
832
    { 33, "BASE_STATION_REJECT" },
833
    { 34, "TRANSIT_TO_IDLE" },
834
    { 35, "BCMC" },
835
    { 36, "FAST_CALL_SETUP" },
836
    { 37, "SERVICE_STATUS" },
837
    { 38, "LOCATION_SERVICES" },
838
    { 0, NULL },
839
};
840
841
#if 0
842
Currently not used ???
843
/* CDMA2K Rejected PDU Type types for the Mobile Station Reject Order*/
844
static const value_string Rejected_Pdu_Types[] = {
845
    { 0, "20 ms Regular Message" },
846
    { 1, "5 ms Mini Message" },
847
    { 2, "Reserved" },
848
    { 3, "Reserved" },
849
    { 0, NULL },
850
};
851
#endif
852
853
/* CDMA2K RSCI types for the Release Order*/
854
static const value_string RSCI_Types[] = {
855
    { 7, "Non Slotted" },
856
    { 4, "0.08ms  - 1 slot" },
857
    { 3, "0.16s   - 2 slots" },
858
    { 2, "0.32s   - 4 slots" },
859
    { 1, "0.64s   - 8 slots" },
860
    { 0, "1.28s   - 16 slots" },
861
    { 9, "2.56s   - 32 slots" },
862
    { 10, "5.12s   - 64 slots" },
863
    { 11, "10.24s  - 128 slots" },
864
    { 12, "20.48s  - 256 slots" },
865
    { 13, "40.96s  - 512 slots" },
866
    { 14, "81.92s  - 1024 slots" },
867
    { 0, NULL },
868
};
869
870
/* CDMA2K RSC_END_TIME_UNIT types for the Release Order*/
871
static const value_string Rsc_End_Time_Unit_Types[] = {
872
    { 0, "unit is 4 seconds" },
873
    { 1, "unit is 20 seconds" },
874
    { 2, "unit is 100 seconds" },
875
    { 3, "Reserved" },
876
    { 0, NULL },
877
};
878
879
/* CDMA2K Retry Type types for the Retry Order*/
880
static const value_string Retry_Types[] = {
881
    { 0, "Clear All" },
882
    { 1, "Origination" },
883
    { 2, "Resource Request" },
884
    { 3, "Supplemental Channel Req" },
885
    { 4, "Short Data Burst" },
886
    { 5, "Orig & Short Data Burst" },
887
    { 6, "Reserved" },
888
    { 7, "Reserved" },
889
    { 0, NULL },
890
};
891
892
/* CDMA2K Reject Reason types for the Base Station Reject Order*/
893
static const value_string Reject_Reason_Types[] = {
894
    { 0, "MACI Field is Missing" },
895
    { 1, "MACI Field is present but invalid" },
896
    { 2, "Security Sequence Number is Invalid" },
897
    { 3, "Base Station Failed to Decrypt the Encrypted Msg" },
898
    { 4, "Reserved" },
899
    { 5, "Reserved" },
900
    { 6, "Reserved" },
901
    { 7, "Reserved" },
902
    { 0, NULL },
903
};
904
905
/* CDMA2K C_SIG_ENCRYPT_MODE types for the Registration Accepted Order*/
906
static const value_string C_Sig_Encrypt_Mode_Types[] = {
907
    { 0, "Common Channel Signaling Encryption Disabled" },
908
    { 1, "Enhanced Cellular Msg Encryption Algo Enabled" },
909
    { 2, "Rijndael Encryption Algo Enabled" },
910
    { 3, "Reserved" },
911
    { 4, "Reserved" },
912
    { 5, "Reserved" },
913
    { 6, "Reserved" },
914
    { 7, "Reserved" },
915
    { 0, NULL },
916
};
917
918
/* CDMA2K All BCMC Reason types for the BCMC Order*/
919
static const value_string All_Bcmc_Reason_Types[] = {
920
    { 0, "BCMC_FLOW_ID not Available" },
921
    { 1, "BCMC_FLOW_ID not Transmitted" },
922
    { 2, "BCMC_FLOW_ID available in IDLE state" },
923
    { 3, "BCMC Registration Accepted" },
924
    { 4, "Authorization Failure" },
925
    { 5, "Retry Later" },
926
    { 6, "Reserved" },
927
    { 7, "Reserved" },
928
    { 0, NULL },
929
};
930
931
/* CDMA2K All BCMC Retry Delay types for the BCMC Order*/
932
static const value_string All_Bcmc_Retry_Delay_Types[] = {
933
    { 0, "Retry Delay Interval" },
934
    { 1, "Retry Delay Interval" },
935
    { 2, "Retry Delay Interval" },
936
    { 3, "Retry Delay Interval" },
937
    { 4, "Retry Delay Interval" },
938
    { 5, "Retry Delay Interval" },
939
    { 6, "Retry Delay Interval" },
940
    { 7, "Unit For Retry Delay" },
941
    { 0, NULL },
942
};
943
944
/* CDMA2K Max RSC End Time Unit types for the Fast Call Setup Order*/
945
static const value_string Max_rsc_End_Time_unit_Types[] = {
946
    { 0, "Unit is 4 seconds" },
947
    { 1, "Unit is 20 seconds" },
948
    { 2, "Unit is 100 seconds" },
949
    { 3, "Reserved" },
950
    { 0, NULL },
951
};
952
953
/* CDMA2K Service Status types for the Service Status Order*/
954
static const value_string Service_Status_Types[] = {
955
    { 0, "Service Request Accepted" },
956
    { 1, "Service Request Rejected" },
957
    { 0, NULL },
958
959
};
960
961
962
/* CDMA2K Message Encryption Modes */
963
static const value_string Encrypt_Mode_Types[] = {
964
    { 0, "Encryption Disabled" },
965
    { 1, "Basic Encryption Of Call Control Messages" },
966
    { 2, "Enhanced Encryption Of Call Control Messages" },
967
    { 3, "Extended Encryption Of Call Control Messages" },
968
    { 0, NULL },
969
};
970
971
972
/* CDMA2K Information Record Types */
973
static const value_string Info_Rec_Types[] = {
974
    { 1, "Display" },
975
    { 2, "Called Party Number" },
976
    { 3, "Calling Party Number" },
977
    { 4, "Connected Number" },
978
    { 5, "Signal" },
979
    { 6, "Message Waiting" },
980
    { 7, "Service Configuration" },
981
    { 8, "Called Party Subaddress" },
982
    { 9, "Calling Party Subaddress" },
983
    { 10, "Connected Subaddress" },
984
    { 11, "Redirecting Number" },
985
    { 12, "Redirecting Subaddress" },
986
    { 13, "Meter Pulses" },
987
    { 14, "Parametric Alerting" },
988
    { 15, "Line Control" },
989
    { 16, "Extended Display" },
990
    { 19, "Non Negotiable Service Configuration" },
991
    { 20, "Multiple Character Extended Display" },
992
    { 21, "Call Waiting Indicator" },
993
    { 22, "Extended Multiple Character Extended Display" },
994
    { 254, "Extended Record Type_International" },
995
    { 0, NULL },
996
997
};
998
999
1000
/* CDMA2K Encryption Key Size */
1001
static const value_string Enc_Key_Types[] = {
1002
    { 0, "Reserved" },
1003
    { 1, "64 Bits" },
1004
    { 2, "128 Bits" },
1005
    { 3, "Reserved" },
1006
    { 4, "Reserved" },
1007
    { 5, "Reserved" },
1008
    { 6, "Reserved" },
1009
    { 7, "Reserved" },
1010
    { 0, NULL },
1011
};
1012
1013
1014
/* CDMA2K 1x Reverse Link Frequency Offset */
1015
static const value_string rl_Freq_Offset_Types[] = {
1016
    { 0, "Reverse Link On Lowest SR3 Frequency" },
1017
    { 1, "Reverse Link On Center SR3 Frequency" },
1018
    { 2, "Reverse Link On Highest SR3 Frequency" },
1019
    { 3, "Reserved" },
1020
    { 0, NULL },
1021
};
1022
1023
1024
/* CDMA2K Pilot Record Types */
1025
static const value_string Pilot_Rec_Types[] = {
1026
    { 0, "1x Common Pilot With Transmit Diversity" },
1027
    { 1, "1x Auxiliary Pilot" },
1028
    { 2, "1x Auxiliary Pilot With Transmit Diversity" },
1029
    { 3, "3x Common Pilot" },
1030
    { 4, "3x Auxiliary Pilot" },
1031
    { 5, "Reserved" },
1032
    { 6, "Reserved" },
1033
    { 7, "Reserved" },
1034
    { 0, NULL },
1035
};
1036
1037
1038
/* CDMA2K PLCM Types */
1039
static const value_string Plcm_Types[] = {
1040
    { 0, "ESN Derived" },
1041
    { 1, "BS Assigned" },
1042
    { 2, "IMSI_M Derived" },
1043
    { 3, "IMSI_T Derived" },
1044
    { 4, "MEID Derived" },
1045
    { 0, NULL },
1046
};
1047
1048
1049
/* CDMA2K Number Types */
1050
static const value_string Number_Types[] = {
1051
    { 0, "Unknown" },
1052
    { 1, "International Number" },
1053
    { 2, "National Number" },
1054
    { 3, "Network Specific Number" },
1055
    { 4, "Subscriber Number" },
1056
    { 5, "Reserved" },
1057
    { 6, "Abbreviated Number" },
1058
    { 7, "Reserved For Extension" },
1059
    { 0, NULL },
1060
};
1061
1062
1063
/* CDMA2K Numbering Plan Types */
1064
static const value_string Number_Plan_Types[] = {
1065
    { 0, "Unknown" },
1066
    { 1, "ISDN/Telephony Numbering Plan" },
1067
    { 2, "Reserved" },
1068
    { 3, "Data Numbering Plan" },
1069
    { 4, "Telex Numbering Plan" },
1070
    { 5, "Reserved" },
1071
    { 6, "Reserved" },
1072
    { 7, "Reserved" },
1073
    { 8, "Reserved" },
1074
    { 9, "Private Numbering Plan" },
1075
    { 10, "Reserved" },
1076
    { 11, "Reserved" },
1077
    { 12, "Reserved" },
1078
    { 13, "Reserved" },
1079
    { 14, "Reserved" },
1080
    { 15, "Reserved For Extension" },
1081
    { 0, NULL },
1082
};
1083
1084
1085
/* CDMA2K Presentation Indicator Types */
1086
static const value_string Pres_Ind_Types[] = {
1087
    { 0, "Presentation Allowed" },
1088
    { 1, "Presentation Restricted" },
1089
    { 2, "Number Not Available" },
1090
    { 3, "Reserved" },
1091
    { 0, NULL },
1092
};
1093
1094
1095
/* CDMA2K Screening Indicator Types */
1096
static const value_string Scr_Ind_Types[] = {
1097
    { 0, "User Provided, Not Screened" },
1098
    { 1, "User Provided, Verified And Passed" },
1099
    { 2, "User Provided, Verified And Failed" },
1100
    { 3, "Network Provided" },
1101
    { 0, NULL },
1102
};
1103
1104
1105
/* CDMA2K Signal Types */
1106
static const value_string Signal_Types[] = {
1107
    { 0, "Tone Signal" },
1108
    { 1, "ISDN Alerting" },
1109
    { 2, "IS-54B Alerting" },
1110
    { 3, "Reserved" },
1111
    { 0, NULL },
1112
};
1113
1114
1115
/* CDMA2K Odd Even Indicator */
1116
static const value_string Odd_Even_Ind_Types[] = {
1117
    { 0, "Even Number Of Address Signals" },
1118
    { 1, "Odd Number Of Address Signals" },
1119
    { 0, NULL },
1120
};
1121
1122
1123
/* CDMA2K Redirection Reasons */
1124
static const value_string Redir_Reason_Types[] = {
1125
    { 0, "Unknown" },
1126
    { 1, "Call Forwarding / Called DTE Busy" },
1127
    { 2, "Call Forwarding No Reply" },
1128
    { 3, "Reserved" },
1129
    { 4, "Reserved" },
1130
    { 5, "Reserved" },
1131
    { 6, "Reserved" },
1132
    { 7, "Reserved" },
1133
    { 8, "Reserved" },
1134
    { 9, "Called DTE Out Of Order" },
1135
    { 10, "Call Forwarding By The Called DTE" },
1136
    { 11, "Reserved" },
1137
    { 12, "Reserved" },
1138
    { 13, "Reserved" },
1139
    { 14, "Reserved" },
1140
    { 15, "Call Forwarding Unconditional / Systematic Call Redirection" },
1141
    { 0, NULL },
1142
};
1143
1144
1145
/* CDMA2K Cadence Types */
1146
static const value_string Cadence_Types[] = {
1147
    { 0, "Not Specified" },
1148
    { 1, "Acoustic Earpiece / Similar Device" },
1149
    { 2, "Device Other Than Acoustic Earpiece / Similar Device(Ex : Ringer)" },
1150
    { 3, "Reserved" },
1151
    { 0, NULL },
1152
};
1153
1154
static const value_string l3dpu_ORM_PRM_req_mode_values[] = {
1155
    { /* 000 */ 0x00, "Reserved" },
1156
    { /* 001 */ 0x01, "CDMA only" },
1157
    { /* 010 */ 0x02, "Reserved (Previously: Wide analog only)" },
1158
    { /* 011 */ 0x03, "Reserved (Previously: Either wide analog or CDMA only)" },
1159
    { /* 100 */ 0x04, "Reserved (Previously: Narrow analog only)" },
1160
    { /* 101 */ 0x05, "Reserved (Previously: Either narrow analog or CDMA only)" },
1161
    { /* 110 */ 0x06, "Reserved (Previously: Either narrow analog or wide analog only)" },
1162
    { /* 111 */ 0x07, "Reserved (Previously: Narrow analog or wide analog or CDMA)" },
1163
1164
    {0x00, NULL }
1165
};
1166
1167
// Table 2.7.1.3.2.4-5. Encryption Algorithms Supported , page 858 (2-738)
1168
static const value_string l3dpu_ORM_encryption_algo_values[] = {
1169
    {/*0000*/ 0x00, "Basic encryption supported" },
1170
    {/*0001*/ 0x01, "Basic and Enhanced encryption supported" },
1171
    {0x00, NULL }
1172
};
1173
1174
static const value_string l3dpu_ORM_ch_ind_values[] = {
1175
    {/*00*/ 0x00, "Refer to EXT_CH_IND" },
1176
    {/*01*/ 0x01, "Fundamental Channel" },
1177
    {/*10*/ 0x02, "Dedicated Control Channel" },
1178
    {/*11*/ 0x03, "Fundamental Channel and Dedicated Control Channel" },
1179
    {0x00, NULL }
1180
};
1181
1182
/* Decoder for all the information elements of CDMA2K Message Type */
1183
static void cdma2k_message_decode(proto_item *item _U_, tvbuff_t *tvb,proto_tree *tree, unsigned *offset, proto_tree *mainTree _U_, uint16_t *noerror _U_ , packet_info *pinfo _U_)
1184
548
{
1185
548
    uint16_t channel = -1, msgtype = -1, headerRecCnt = -1, headerRecLen = -1;
1186
548
    unsigned l_offset = 0;
1187
548
    uint16_t headerRecType = -1, inc = -1, count = -1, l3PduLen = -1, authIncl = -1, oneXPrev = -1;
1188
548
    proto_item *item1 = NULL;
1189
548
    proto_tree *subtree = NULL, *subtree1 = NULL, *subtree2 = NULL, *subtree3 = NULL;
1190
1191
548
    item1 = proto_tree_add_item(tree,hf_cdma2k_tlac_Header, tvb, *offset,1, ENC_NA);
1192
548
    subtree = proto_item_add_subtree(item1, ett_cdma2k_subtree);
1193
1194
548
    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Channel, tvb, *offset*8,1, ENC_BIG_ENDIAN);
1195
548
    channel = tvb_get_bits8(tvb,*offset*8,1);
1196
548
    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_1x_Protocol_Revision, tvb, *offset*8 + 1,8, ENC_BIG_ENDIAN);
1197
548
    oneXPrev = tvb_get_bits8(tvb,*offset*8 + 1,8);
1198
548
    *offset+=1;
1199
1200
548
    if (channel == 0)
1201
282
    {
1202
        /*get LSB 6 bits for MsgType if r-csch*/
1203
282
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_msgType, tvb, *offset*8 + 3,6, ENC_BIG_ENDIAN);
1204
282
        msgtype = tvb_get_bits8(tvb,*offset*8 + 3,6);
1205
282
        *offset+=1;
1206
282
    }
1207
266
    else
1208
266
    {
1209
266
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_msgType, tvb, *offset*8 + 1,8, ENC_BIG_ENDIAN);
1210
266
        msgtype = tvb_get_bits8(tvb,*offset*8 + 1,8);
1211
266
        *offset+=1;
1212
266
    }
1213
1214
548
    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Records_Count, tvb, *offset*8 + 1,4, ENC_BIG_ENDIAN);
1215
548
    headerRecCnt = tvb_get_bits8(tvb,*offset*8 + 1,4);
1216
548
    l_offset = *offset*8 + 5;
1217
1218
548
    item1 = proto_tree_add_item(subtree, hf_cdma2k_tlac_Header_Record, tvb, *offset,1, ENC_NA);
1219
548
    subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
1220
1221
1.55k
    for(count = 1; count <= headerRecCnt; count++)
1222
1.00k
    {
1223
1.00k
        item1 = proto_tree_add_item(subtree1, hf_cdma2k_tlac_Header_Record, tvb, l_offset/8,1, ENC_NA);
1224
1.00k
        proto_item_append_text(item1," : [%02x]",count);
1225
1.00k
        subtree2 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
1226
1.00k
        proto_tree_add_bits_item(subtree2,hf_cdma2k_tlac_Header_Record_Type, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1227
1.00k
        headerRecType = tvb_get_bits8(tvb,l_offset, 4);
1228
1.00k
        l_offset+=4;
1229
1230
1.00k
        if(headerRecType == 0)
1231
278
        {
1232
278
            proto_tree_add_bits_item(subtree2,hf_cdma2k_tlac_Header_Record_Length, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1233
278
            headerRecLen = tvb_get_bits8(tvb,l_offset, 8);
1234
278
            l_offset+=8;
1235
278
            item1 = proto_tree_add_item(subtree2, hf_cdma2k_tlac_Header_Record_Values, tvb, (l_offset/8),headerRecLen+1 , ENC_NA);
1236
278
            subtree3 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
1237
278
            cdma2k_message_ADDR_FIELDS(item1, tvb, subtree3, &l_offset,  headerRecLen);
1238
278
        }
1239
724
        else if(headerRecType == 1)
1240
49
        {
1241
49
            authIncl = 1;
1242
49
            proto_tree_add_bits_item(subtree2,hf_cdma2k_tlac_Header_Record_Length, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1243
49
            headerRecLen = tvb_get_bits8(tvb,l_offset, 8);
1244
49
            l_offset+=8;
1245
49
            item1 = proto_tree_add_item(subtree2, hf_cdma2k_tlac_Header_Record_Values, tvb, (l_offset/8), headerRecLen+1, ENC_NA);
1246
49
            subtree3 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
1247
49
            cdma2k_message_AUTH_FIELDS(item1, tvb, subtree3, &l_offset,  headerRecLen);
1248
49
        }
1249
675
        else
1250
675
        {
1251
675
            proto_tree_add_bits_item(subtree2,hf_cdma2k_tlac_Header_Record_Length, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1252
675
            headerRecLen = tvb_get_bits8(tvb,l_offset, 8);
1253
675
            l_offset+=8;
1254
675
            item1 = proto_tree_add_item(subtree2, hf_cdma2k_tlac_Header_Record_Values, tvb, (l_offset/8), headerRecLen+1, ENC_NA);
1255
1256
56.9k
            for (inc = 0; inc < (headerRecLen*8); )
1257
56.2k
            {
1258
56.2k
                proto_item_append_text(item1," 0x%02x ",tvb_get_bits8(tvb,l_offset, 8));
1259
56.2k
                l_offset+=8;
1260
56.2k
                inc+=8;
1261
56.2k
            }
1262
675
        }
1263
1.00k
    }
1264
1265
548
    if(l_offset%8 == 0)
1266
20
    {
1267
20
        *offset = (l_offset/8);
1268
20
    }
1269
528
    else
1270
528
    {
1271
528
        proto_tree_add_bits_item(subtree1, hf_cdma2k_tlac_Header_Record_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
1272
528
        *offset = (l_offset/8) + 1;
1273
528
    }
1274
1275
548
    item1 = proto_tree_add_item(subtree1, hf_cdma2k_tlac_Pdu, tvb, *offset,-1, ENC_NA);
1276
548
    subtree2 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
1277
548
    proto_tree_add_item(subtree2,hf_cdma2k_tlac_Pdu_Length, tvb, *offset,2, ENC_BIG_ENDIAN);
1278
548
    l3PduLen = tvb_get_bits16(tvb,*offset*8,16, ENC_BIG_ENDIAN);
1279
548
    *offset+=2;
1280
1281
548
    if(channel == 0)
1282
228
    {
1283
228
        switch(msgtype)
1284
228
        {
1285
11
            case CDMA2KRegIndMsg:
1286
11
                { cdma2k_message_REGISTRATION(item1, tvb, subtree2, offset, oneXPrev); break;}
1287
1288
48
            case CDMA2KOrderIndMsg:
1289
48
                { cdma2k_message_ORDER_IND(item1, tvb, subtree2,offset); break;}
1290
1291
16
            case CDMA2KDataBurstIndMsg:
1292
16
                { cdma2k_message_DATA_BURST_IND(item1, tvb, subtree2,offset); break;}
1293
1294
34
            case CDMA2KOrigIndMsg:
1295
34
                { cdma2k_message_ORIGINATION(item1, tvb, subtree2,offset,authIncl,oneXPrev); break;}
1296
1297
10
            case CDMA2KPageResponseMsg:
1298
10
                { cdma2k_message_PAGE_RESPONSE(item1, tvb, subtree2,offset,authIncl,oneXPrev); break;}
1299
1300
22
            case CDMA2KAuthChallRspMsg:
1301
22
                { cdma2k_message_AUTH_CHALL_RSP(item1, tvb, subtree2,offset); break;}
1302
1303
14
            case CDMA2KOrderCmdMsg:
1304
14
                { cdma2k_message_ORDER_CMD(item1, tvb, subtree2,offset); break;}
1305
1306
25
            case CDMA2KDataBurstCmdMsg:
1307
25
                { cdma2k_message_DATA_BURST_CMD(item1, tvb, subtree2,offset); break;}
1308
1309
2
            case CDMA2KAuthChallReqMsg:
1310
2
                { cdma2k_message_AUTH_CHALL_REQ(item1, tvb, subtree2,offset); break;}
1311
1312
1
             case CDMA2KGenPageReqMsg:
1313
1
                { cdma2k_message_GEN_PAGE_REQ(item1, tvb, subtree2,offset,l3PduLen); break;}
1314
1315
45
            default:
1316
45
                { *noerror = 0; break; }
1317
228
        }
1318
228
    }
1319
320
    else
1320
320
    {
1321
320
        switch(msgtype)
1322
320
        {
1323
73
            case CDMA2KAlertWithInfoMsg:
1324
73
                { cdma2k_message_ALERT_WITH_INFO(item1, tvb, subtree2,offset); break;}
1325
1326
133
            case CDMA2KUniversalHandoffDirectionMsg:
1327
156
            case CDMA2KMeIdUniversalHandoffDirectionMsg:
1328
156
                { cdma2k_message_HANDOFF_DIR(item1, tvb, subtree2,offset,msgtype); break;}
1329
1330
12
            default:
1331
12
                { *noerror = 0; break; }
1332
320
        }
1333
320
    }
1334
1335
548
}
1336
1337
/* 3GPP2 C.S0005-E v3.0 Table 2.3.3-1. Station Class Mark */
1338
1339
/* SCM Fields values */
1340
static const value_string l3dpu_SCM_field_values7[] = {
1341
    { 0x00, "Other bands" },
1342
    { 0x01, "Band Classes 1,4,14" },
1343
    { 0x00, NULL }
1344
};
1345
1346
static const value_string l3dpu_SCM_field_values6[] = {
1347
    { 0x00, "CDMA Only" },
1348
    { 0x01, "?" },
1349
    { 0x00, NULL }
1350
};
1351
1352
static const value_string l3dpu_SCM_field_values5[] = {
1353
    { 0x00, "Non-Slotted" },
1354
    { 0x01, "Slotted" },
1355
    { 0x00, NULL }
1356
};
1357
1358
static const value_string l3dpu_SCM_field_values4[] = {
1359
    { 0x00, "MEID not configured" },
1360
    { 0x01, "MEID configured" },
1361
    { 0x00, NULL }
1362
};
1363
1364
1365
static const value_string l3dpu_SCM_field_values2[] = {
1366
    { 0x00, "Continuous" },
1367
    { 0x01, "Discontinuous" },
1368
    { 0x00, NULL }
1369
};
1370
1371
static void
1372
dissect_cdma2000_scm(tvbuff_t* tvb, proto_tree* tree, unsigned bit_offset)
1373
54
{
1374
54
    proto_tree *sub_tree = proto_tree_add_subtree(tree, tvb, bit_offset >> 3, 2, ett_cdma2000_scm, NULL, "SCM - Station Class Mark");
1375
1376
    /* Extended SCM Indicator bit 7 */
1377
54
    proto_tree_add_bits_item(sub_tree, hf_cdma2k_ext_scm_ind, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1378
54
    bit_offset++;
1379
    /* Dual Mode Bit 6 */
1380
54
    proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_dual_mode, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1381
54
    bit_offset++;
1382
    /* Slotted Class Bit 5*/
1383
54
    proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_slotted_class, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1384
54
    bit_offset++;
1385
    /* MEID support indicator bit 4 */
1386
54
    proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_meid_sup, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1387
54
    bit_offset++;
1388
    /* 25 MHz Bandwidth Bit 3 */
1389
54
    proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_25mhz_bw, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1390
54
    bit_offset++;
1391
    /* Transmission Bit 2 */
1392
54
    proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_trans, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1393
54
    bit_offset++;
1394
    /* Power Class for Band Class 0 Analog Operation Bit 1 - 0 */
1395
54
    proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_pow_class, tvb, bit_offset, 2, ENC_BIG_ENDIAN);
1396
1397
54
}
1398
1399
static void cdma2k_message_REGISTRATION(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset, uint16_t oneXPrev)
1400
11
{
1401
11
    uint16_t mob_P_Rev_Value = -1, mob_P_Rev_Rx = -1;
1402
11
    uint16_t uzid_Incl = -1, geoLoc_Incl = -1;
1403
11
    unsigned l_offset = 0;
1404
11
    proto_tree *subtree = NULL;
1405
1406
    /*iws_Mob_P_Rev_In_Use = 7;*/
1407
1408
11
    item = proto_tree_add_item(tree,hf_cdma2k_RegMsg, tvb, *offset,-1, ENC_NA);
1409
11
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
1410
11
    proto_tree_add_bits_item(subtree, hf_cdma2k_Reg_Type, tvb, *offset*8,4, ENC_BIG_ENDIAN);
1411
11
    proto_tree_add_bits_item(subtree, hf_cdma2k_Slot_Cycle_Index, tvb, *offset*8 + 4,3, ENC_BIG_ENDIAN);
1412
11
    proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_P_Rev, tvb, *offset*8 + 7,8, ENC_BIG_ENDIAN);
1413
11
    mob_P_Rev_Rx = tvb_get_bits8(tvb,*offset*8 + 7,8);
1414
11
    *offset+=1;
1415
1416
11
    mob_P_Rev_Value = ((oneXPrev >= mob_P_Rev_Rx)? mob_P_Rev_Rx : oneXPrev);
1417
1418
11
    if(mob_P_Rev_Value == 1)
1419
0
    {
1420
0
        proto_tree_add_bits_item(subtree, hf_cdma2k_Ext_Scm, tvb, *offset*8 + 7,1, ENC_BIG_ENDIAN);
1421
0
        *offset+=1;
1422
        /* Jump Over the one bit Reserved Field*/
1423
0
        proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, *offset*8,1, ENC_BIG_ENDIAN);
1424
0
        proto_tree_add_bits_item(subtree, hf_cdma2k_Sloted_Mode, tvb, *offset*8 + 1,1, ENC_BIG_ENDIAN);
1425
         /*Jump Over the five bit Reserved Field*/
1426
0
        proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, *offset*8 + 2,5, ENC_BIG_ENDIAN);
1427
0
    }
1428
11
    else
1429
11
    {
1430
11
        dissect_cdma2000_scm(tvb, subtree, *offset * 8 + 7);
1431
11
        *offset+=1;
1432
11
    }
1433
1434
11
    proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_Term, tvb, *offset*8 + 7,1, ENC_BIG_ENDIAN);
1435
11
    *offset+=1;
1436
11
    l_offset = *offset*8;
1437
1438
11
    if(mob_P_Rev_Value > 3)
1439
4
    {
1440
4
        proto_tree_add_bits_item(subtree, hf_cdma2k_Return_Cause, tvb, *offset*8,4, ENC_BIG_ENDIAN);
1441
4
        l_offset+=4;
1442
4
    }
1443
1444
11
    if(mob_P_Rev_Value >= 6)
1445
3
    {
1446
3
        proto_tree_add_bits_item(subtree, hf_cdma2k_Qpch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1447
3
        l_offset+=1;
1448
3
        proto_tree_add_bits_item(subtree, hf_cdma2k_Enhanced_Rc, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1449
3
        l_offset+=1;
1450
3
        proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1451
3
        uzid_Incl = tvb_get_bits8(tvb,l_offset, 1);
1452
3
        l_offset+=1;
1453
1454
3
        if(uzid_Incl != 0)
1455
2
        {
1456
2
            proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
1457
2
            l_offset+=16;
1458
2
        }
1459
3
    }
1460
1461
11
    if(mob_P_Rev_Value >= 7)
1462
3
    {
1463
3
        proto_tree_add_bits_item(subtree, hf_cdma2k_GeoLoc_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1464
3
        geoLoc_Incl = tvb_get_bits8(tvb,l_offset, 1);
1465
3
        l_offset+=1;
1466
1467
3
        if(geoLoc_Incl != 0)
1468
0
        {
1469
0
            proto_tree_add_bits_item(subtree, hf_cdma2k_GeoLoc_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1470
0
            l_offset+=3;
1471
0
        }
1472
3
    }
1473
1474
11
    if(l_offset%8 == 0)
1475
10
        *offset = (l_offset/8);
1476
1
    else
1477
1
        *offset = (l_offset/8) + 1;
1478
11
}
1479
1480
1481
/* Decode Order Indication Message Parameters */
1482
static void cdma2k_message_ORDER_IND(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
1483
48
{
1484
48
    uint16_t addRecLen = -1, ordq = -1, rejectedtype = -1;
1485
48
    uint16_t rsc_mode_ind = -1, ordertype = -1;
1486
48
    unsigned l_offset = 0;
1487
48
    proto_tree *subtree = NULL, *subtree1 = NULL;
1488
1489
48
    item = proto_tree_add_item(tree,hf_cdma2k_OrderIndMsg, tvb, *offset, -1, ENC_NA);
1490
48
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
1491
48
    proto_tree_add_bits_item(subtree, hf_cdma2k_Order_Ind, tvb, *offset*8,6, ENC_BIG_ENDIAN);
1492
48
    ordertype = tvb_get_bits8(tvb,*offset*8, 6);
1493
48
    proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Record_Len, tvb, *offset*8 + 6,3, ENC_BIG_ENDIAN);
1494
48
    addRecLen = tvb_get_bits8(tvb,*offset*8 + 6,3);
1495
48
    *offset+=1;
1496
48
    l_offset = *offset*8+1;
1497
1498
48
    if(addRecLen > 0)
1499
47
    {
1500
47
        item = proto_tree_add_item(subtree, hf_cdma2k_Order_Specific_Fields, tvb, *offset,-1, ENC_NA);
1501
47
        subtree1 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
1502
1503
47
        switch(ordertype)
1504
47
            {
1505
1
            case 2:
1506
1
            {
1507
1
                proto_item_append_text(item, " : BASE STATION CHALLENGE Order ");
1508
1509
1
                        proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1510
1
                l_offset+=8;
1511
1512
1
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Randbs, tvb, l_offset, 32, ENC_BIG_ENDIAN);
1513
1
                l_offset+=32;
1514
1
                break;
1515
0
            }
1516
1517
0
            case 4:
1518
0
            {
1519
0
                proto_item_append_text(item, " : REORDER Order ");
1520
1521
0
                        proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1522
0
                l_offset+=8;
1523
1524
0
                break;
1525
0
            }
1526
1527
0
            case 19:
1528
0
            {
1529
0
                proto_item_append_text(item, " : SERVICE OPTION REQUEST Order ");
1530
1531
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1532
0
                l_offset+=8;
1533
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_service_option, tvb, l_offset, 16, ENC_BIG_ENDIAN);
1534
0
                l_offset+=16;
1535
0
                break;
1536
0
            }
1537
0
            case 20:
1538
0
            {
1539
0
                proto_item_append_text(item, " : SERVICE OPTION RESPONSE Order ");
1540
1541
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset,  8, ENC_BIG_ENDIAN);
1542
0
                l_offset+=8;
1543
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_service_option, tvb, l_offset,  16, ENC_BIG_ENDIAN);
1544
0
                l_offset+=16;
1545
0
                break;
1546
0
            }
1547
0
            case 31:
1548
0
            {
1549
0
                proto_item_append_text(item, " : MOBILE STATION REJECT Order ");
1550
1551
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset,  8, ENC_BIG_ENDIAN);
1552
0
                ordq = tvb_get_bits8(tvb,*offset*8+1,8);
1553
0
                l_offset+=8;
1554
1555
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Type, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1556
0
                rejectedtype = tvb_get_bits8(tvb,l_offset,8);
1557
0
                l_offset+=8;
1558
1559
0
                if ((rejectedtype == 7) || (rejectedtype == 1)) /* 7= access, 1= reverse traffic */
1560
0
                {
1561
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1562
0
                    l_offset+=2;
1563
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Order, tvb, l_offset, 6, ENC_BIG_ENDIAN);
1564
0
                    l_offset+=6;/* 4 byte , 1 bit */
1565
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1566
0
                    l_offset+=8;/* 5 byte , 1 bit */
1567
0
                }
1568
1569
0
                if (rejectedtype == 12) /* for both access & reverse traffic */
1570
0
                {
1571
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Parm_Id, tvb, l_offset, 16, ENC_BIG_ENDIAN);
1572
0
                    l_offset+=16;/* 7 byte , 1 bit */
1573
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Record, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1574
0
                    l_offset+=8;/* 8 byte , 1 bit */
1575
0
                }
1576
1577
0
                if ((ordq == 16) || (ordq == 17) || (ordq == 18) || (ordq == 19))
1578
0
                {
1579
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Con_Ref, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1580
0
                    l_offset+=8;
1581
0
                }
1582
0
                if (ordq == 19)
1583
0
                {
1584
0
                     proto_tree_add_bits_item(subtree1, hf_cdma2k_Tag, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1585
0
                    l_offset+=4;
1586
0
                }
1587
1588
0
                if(l_offset%8 != 0)
1589
0
                {
1590
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
1591
0
                }
1592
0
                break;
1593
0
            }
1594
1595
0
            case 21:
1596
0
            {
1597
0
                proto_item_append_text(item, " : RELEASE Order ");
1598
1599
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, *offset*8+1,8, ENC_BIG_ENDIAN);
1600
0
                ordq = tvb_get_bits8(tvb,*offset*8+1,8);
1601
0
                l_offset+=8;
1602
1603
0
                if (ordq == 3)
1604
0
                {
1605
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_Mode_Ind , tvb, l_offset, 1, ENC_BIG_ENDIAN);
1606
0
                    rsc_mode_ind = tvb_get_bits8(tvb,l_offset,1);
1607
0
                    l_offset+=1;
1608
0
                    if (rsc_mode_ind == 1)
1609
0
                    {
1610
0
                        proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsci, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1611
0
                        l_offset+=4;
1612
0
                        proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1613
0
                        l_offset+=2;
1614
0
                        proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Value, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1615
0
                        l_offset+=4;
1616
1617
0
                    }
1618
0
                }
1619
0
                break;
1620
0
            }
1621
1622
0
            case 34:
1623
0
            {
1624
0
                proto_item_append_text(item, " : FAST CALL SETUP Order ");
1625
1626
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, *offset*8+1,8, ENC_BIG_ENDIAN);
1627
0
                l_offset+=8;
1628
1629
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_Mode_Ind , tvb, l_offset, 1, ENC_BIG_ENDIAN);
1630
0
                rsc_mode_ind = tvb_get_bits8(tvb,l_offset,1);
1631
0
                l_offset+=1;
1632
1633
0
                if (rsc_mode_ind == 1)
1634
0
                {
1635
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsci, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1636
0
                    l_offset+=4;
1637
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1638
0
                    l_offset+=2;
1639
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Value, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1640
0
                    l_offset+=4;
1641
0
                }
1642
0
                break;
1643
0
            }
1644
1645
46
            default:
1646
46
            {
1647
46
                proto_item_append_text(item, " : Invalid / Unsupported Order Type Received");
1648
46
                break;
1649
0
            }
1650
47
        }
1651
47
    }
1652
48
    if(l_offset%8 == 0)
1653
0
        *offset = (l_offset/8);
1654
48
    else
1655
48
        *offset = (l_offset/8) + 1;
1656
48
}
1657
1658
/* Decode Order Command Message Parameters */
1659
static void cdma2k_message_ORDER_CMD(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
1660
14
{
1661
14
    uint16_t addRecLen = -1, ordq = -1, csig = -1;
1662
14
    uint16_t MsgIntInfoIncl = -1, retrytype = -1, allbcmcflowind = -1, clearallretrydelay = -1;
1663
14
    unsigned l_offset = 0;
1664
14
    uint16_t numbcmcprograms = -1, bcmc_program_id = -1;
1665
14
    uint16_t bcmcflowdiscriminatorlen = -1, regulatoryindincl = -1;
1666
14
    uint16_t rsc_mode_supported = -1, rer_mode_incl = -1, rer_mode_enabled = -1, tkz_mode_incl = -1;
1667
14
    uint16_t sameaspreviousbcmcflow = -1, ordertype = -1, clearretrydelay = -1, rer_time = -1;
1668
14
    uint16_t rsc_mode_ind = -1;
1669
14
    proto_tree *subtree = NULL, *subtree1 = NULL;
1670
1671
14
    subtree = proto_tree_add_subtree(tree, tvb, *offset, -1, ett_cdma2k_subtree1, NULL, "Order Command Message");
1672
1673
14
    proto_tree_add_item(subtree, hf_cdma2k_Order_Cmd, tvb, *offset,1, ENC_BIG_ENDIAN);
1674
14
    ordertype = tvb_get_uint8(tvb,*offset) >> 2;
1675
1676
14
    proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Record_Len, tvb, *offset*8 + 6,3, ENC_BIG_ENDIAN);
1677
14
    addRecLen = tvb_get_bits8(tvb,*offset*8 + 6,3);
1678
14
    *offset+=1;
1679
14
    l_offset = *offset*8+1;
1680
1681
14
    if(addRecLen > 0)
1682
13
    {
1683
13
        item = proto_tree_add_item(subtree, hf_cdma2k_Order_Specific_Fields, tvb, *offset,-1, ENC_NA);
1684
13
        subtree1 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
1685
1686
13
    switch(ordertype)
1687
13
    {
1688
1
        case 2:
1689
1
        {
1690
1
            proto_item_append_text(item, " : BASE STATION CHALLENGE CONFIRMATION Order ");
1691
1692
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1693
1
            l_offset+=8;
1694
1695
1
                        proto_tree_add_bits_item(subtree1, hf_cdma2k_Authbs, tvb, l_offset, 18, ENC_BIG_ENDIAN);
1696
1
            l_offset+=18;
1697
1698
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 6, ENC_BIG_ENDIAN);
1699
1
            l_offset+=6;
1700
1
            break;
1701
0
        }
1702
1703
1
        case 4:
1704
1
        {
1705
1
            proto_item_append_text(item, " : REORDER Order ");
1706
1707
1
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1708
1
            l_offset+=8;
1709
1710
1
            break;
1711
0
        }
1712
1713
1
        case 21:
1714
1
        {
1715
1
            proto_item_append_text(item, " : RELEASE Order ");
1716
1717
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, *offset*8+1,8, ENC_BIG_ENDIAN);
1718
1
            ordq = tvb_get_bits8(tvb,*offset*8+1,8);
1719
1
            l_offset+=8;
1720
1721
1
            if (ordq == 3)
1722
0
            {
1723
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_Mode_Ind , tvb, l_offset, 1, ENC_BIG_ENDIAN);
1724
0
                rsc_mode_ind = tvb_get_bits8(tvb,l_offset,1);
1725
0
                l_offset+=1;
1726
0
                if (rsc_mode_ind == 1)
1727
0
                {
1728
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsci, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1729
0
                    l_offset+=4;
1730
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1731
0
                    l_offset+=2;
1732
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Value, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1733
0
                    l_offset+=4;
1734
0
                }
1735
0
            }
1736
1
            break;
1737
0
        }
1738
1739
1
        case 27:
1740
1
        {
1741
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1742
1
            ordq = tvb_get_bits8(tvb,l_offset, 8);
1743
1
            l_offset+=8;
1744
1745
            /*
1746
             * 3GPP2 C.S0005-F v2.0 Table 3.7.4-1. Order and Order Qualification Codes Used on the f-csch and the f-dsch
1747
             */
1748
1
            switch(ordq){
1749
0
            case 0: /* Registration Accepted Order (ROAM_INDI not included; see 3.7.4.5) */
1750
0
                proto_item_append_text(item, " : Registration Accepted Order ");
1751
0
                break;
1752
0
            case 1: /* Registration Request Order */
1753
0
                proto_item_append_text(item, " : Registration Request Order ");
1754
0
                break;
1755
0
            case 2: /* Registration Rejected Order */
1756
0
                proto_item_append_text(item, " : Registration Rejected Order ");
1757
0
                break;
1758
0
            case 4: /* Registration Rejected Order (delete TMSI) */
1759
0
                proto_item_append_text(item, " : Registration Rejected Order (delete TMSI) ");
1760
0
                break;
1761
0
            case 5: /* Registration Accepted Order (ROAM_INDI included but the signaling encryption related fields are not included; see 3.7.4.5) */
1762
0
                proto_item_append_text(item, " : Registration Accepted Order ");
1763
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Roam_Ind, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1764
0
                l_offset+=8;
1765
0
                break;
1766
0
            case 7: /* Registration Accepted Order (ROAM_INDI and the signaling encryption related fields are included; see 3.7.4.5) */
1767
0
                proto_item_append_text(item, " : Registration Accepted Order ");
1768
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Roam_Ind, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1769
0
                l_offset+=8;
1770
1771
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_C_Sig_Encrypt_Mode, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1772
0
                csig = tvb_get_bits8(tvb,l_offset, 3);
1773
0
                l_offset+=8;
1774
1775
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Msg_Int_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1776
0
                MsgIntInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
1777
0
                l_offset+=1;
1778
0
                break;
1779
1
            default:
1780
1
                break;
1781
1
            }
1782
1783
1784
1
            if ((csig == 1) || (csig == 2))
1785
0
            {
1786
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Enc_Key_Size, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1787
0
                l_offset+=3;
1788
0
            }
1789
1790
1
            if (MsgIntInfoIncl == 1)
1791
0
            {
1792
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Change_Keys, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1793
0
                l_offset+=1;
1794
1795
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Use_Uak, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1796
0
                l_offset+=1;
1797
0
            }
1798
1799
1
            if(l_offset%8 != 0)
1800
1
            {
1801
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
1802
1
            }
1803
1
            break;
1804
1
        }
1805
1806
1
        case 32:
1807
1
        {
1808
1
            proto_item_append_text(item, " : RETRY Order ");
1809
1810
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1811
1
            l_offset+=8;
1812
1813
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Retry_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1814
1
            retrytype = tvb_get_bits8(tvb,l_offset, 3);
1815
1
            l_offset+=3;
1816
1817
1
            if (retrytype != 0)
1818
1
            {
1819
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Retry_Delay, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1820
1
                l_offset+=8;
1821
1
            }
1822
1823
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 5, ENC_BIG_ENDIAN);
1824
1
            l_offset+=5;
1825
1
            break;
1826
1
        }
1827
0
        case 33:
1828
0
        {
1829
0
            proto_item_append_text(item, " : BASE STATION REJECT Order ");
1830
1831
0
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1832
0
            l_offset+=8;
1833
1834
0
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Reject_Reason, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1835
0
            l_offset+=4;
1836
1837
0
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Msg_Type, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1838
0
            l_offset+=8;
1839
1840
0
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Msg_Seq, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1841
0
            l_offset+=3;
1842
0
            break;
1843
1
        }
1844
1845
1
        case 35:
1846
1
        {
1847
1
            proto_item_append_text(item, " : BCMC Order ");
1848
1849
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1850
1
            l_offset+=8;
1851
1852
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_All_Bcmc_Flows_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1853
1
            allbcmcflowind = tvb_get_bits8(tvb,l_offset, 1);
1854
1
            l_offset+=1;
1855
1856
1
            if (allbcmcflowind == 1)
1857
1
            {
1858
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Clear_All_Retry_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1859
1
                clearallretrydelay = tvb_get_bits8(tvb,l_offset, 1);
1860
1
                l_offset+=1;
1861
1
            }
1862
1863
1
            if ((allbcmcflowind == 1) || (clearallretrydelay == 0))
1864
1
            {
1865
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_All_Bcmc_Reason, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1866
1
                l_offset+=4;
1867
1
            }
1868
1869
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_All_Bcmc_Retry_Delay, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1870
1
            l_offset+=8;
1871
1872
1
            if (allbcmcflowind == 0)
1873
0
            {
1874
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Bcmc_Programs, tvb, l_offset, 6, ENC_BIG_ENDIAN);
1875
0
                numbcmcprograms = tvb_get_bits8(tvb,l_offset, 8);
1876
0
                l_offset+=6;
1877
0
            }
1878
1879
1
            if (numbcmcprograms != 0)
1880
1
            {
1881
1882
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Program_Id_Len, tvb, l_offset, 5, ENC_BIG_ENDIAN);
1883
1
                bcmc_program_id = tvb_get_bits8(tvb,l_offset, 5);
1884
1
                l_offset+=5;
1885
1886
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Program_Id, tvb, l_offset, bcmc_program_id+1, ENC_BIG_ENDIAN);
1887
1
                l_offset+=bcmc_program_id+1;
1888
1889
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Flow_Discriminator_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1890
1
                bcmcflowdiscriminatorlen = tvb_get_bits8(tvb,l_offset, 3);/* Extract  Bcmc_Flow_Discriminator_Len */
1891
1
                l_offset+=3;
1892
1893
1
                if (bcmcflowdiscriminatorlen != 0)
1894
1
                {
1895
1
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Flow_Discriminator, tvb, l_offset, bcmcflowdiscriminatorlen, ENC_BIG_ENDIAN);
1896
1
                    l_offset+=bcmcflowdiscriminatorlen;
1897
1
                }
1898
1899
1
                if (bcmcflowdiscriminatorlen != 0)
1900
1
                {
1901
1
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Flow_Discriminator, tvb, l_offset, bcmcflowdiscriminatorlen, ENC_BIG_ENDIAN);
1902
1
                    l_offset+=bcmcflowdiscriminatorlen;
1903
1
                }
1904
1905
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Same_As_Previous_Bcmc_Flow, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1906
1
                sameaspreviousbcmcflow = tvb_get_bits8(tvb,l_offset, 1);
1907
1
                l_offset+=1;
1908
1909
1
                if (sameaspreviousbcmcflow == 0)
1910
0
                {
1911
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Clear_Retry_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1912
0
                    clearretrydelay = tvb_get_bits8(tvb,l_offset, 1);
1913
0
                    l_offset+=1;
1914
0
                }
1915
1916
1
                if ((sameaspreviousbcmcflow == 0) || (clearretrydelay == 0))
1917
0
                {
1918
0
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Reason, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1919
0
                    l_offset+=4;
1920
0
                }
1921
1922
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Retry_Delay, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1923
1
                l_offset+=8;
1924
1
            }
1925
1
            break;
1926
1
        }
1927
1928
1
        case 36:
1929
1
        {
1930
1
            proto_item_append_text(item, " : FAST CALL SETUP Order ");
1931
1932
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1933
1
            ordq = tvb_get_bits8(tvb, l_offset, 8);
1934
1
            l_offset += 8;
1935
1936
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_Mode_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1937
1
            rsc_mode_supported = tvb_get_bits8(tvb, l_offset, 1);
1938
1
            l_offset += 1;
1939
1940
1
            if (rsc_mode_supported == 1)
1941
0
            {
1942
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Max_Rsc_End_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1943
0
                l_offset += 2;
1944
1945
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Max_Rsc_End_Time_Value, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1946
0
                l_offset += 4;
1947
1948
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Ignore_Qpch, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1949
0
                l_offset += 1;
1950
1951
1952
0
            }
1953
1954
1
            if ((ordq == 0) && (rsc_mode_supported == 1))
1955
0
            {
1956
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Req_Rsci, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1957
0
                l_offset += 4;
1958
0
            }
1959
1960
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Mode_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1961
1
            rer_mode_incl = tvb_get_bits8(tvb, l_offset, 1);
1962
1
            l_offset += 1;
1963
1964
1
            if (rer_mode_incl == 1)
1965
1
            {
1966
1
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Mode_Enabled, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1967
1
                rer_mode_enabled = tvb_get_bits8(tvb, l_offset, 1);
1968
1
                l_offset += 1;
1969
1
            }
1970
1971
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Max_Num_Msg_Idx, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1972
1
            l_offset += 3;
1973
1974
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Time, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1975
1
            rer_time = tvb_get_bits8(tvb, l_offset, 3);
1976
1
            l_offset += 3;
1977
1978
1
            if ((rer_time != 7) && (rer_mode_enabled == 1))
1979
0
            {
1980
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1981
0
                l_offset += 2;
1982
0
            }
1983
1984
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Max_Rer_Pilot_List_Size, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1985
1
            l_offset += 3;
1986
1987
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Mode_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1988
1
            tkz_mode_incl = tvb_get_bits8(tvb, l_offset, 1);
1989
1
            l_offset += 1;
1990
1991
1
            if (tkz_mode_incl == 1)
1992
0
            {
1993
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Mode_Enabled, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1994
0
                l_offset += 1;
1995
0
            }
1996
1997
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Max_Num_Msg_Idx, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1998
1
            l_offset += 3;
1999
2000
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Update_Prd, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2001
1
            l_offset += 4;
2002
2003
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_List_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2004
1
            l_offset += 4;
2005
2006
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Timer, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2007
1
            l_offset += 8;
2008
1
        }
2009
1
        break;
2010
0
        case 37:
2011
0
        {
2012
0
            proto_item_append_text(item, " : SERVICE STATUS Order ");
2013
2014
0
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2015
0
            l_offset+=8;
2016
2017
0
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Sr_Id_Bitmap, tvb, l_offset, 6, ENC_BIG_ENDIAN);
2018
0
            l_offset+=6;
2019
2020
0
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Service_Status, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2021
0
            l_offset+=3;
2022
2023
0
            if(l_offset%8 != 0)
2024
0
            {
2025
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
2026
0
            }
2027
0
            break;
2028
2029
1
        }
2030
2031
1
        case 38:
2032
1
        {
2033
1
            proto_item_append_text(item, " : LOCATION SERVICES Order ");
2034
2035
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2036
1
            l_offset+=8;
2037
2038
1
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Regulatory_Ind_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2039
1
            regulatoryindincl = tvb_get_bits8(tvb,l_offset, 1);
2040
1
            l_offset+=1;
2041
2042
1
            if (regulatoryindincl == 1)
2043
0
            {
2044
0
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Regulatory_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2045
0
                l_offset+=2;
2046
0
            }
2047
1
            break;
2048
1
        }
2049
2050
5
        default:
2051
5
        {
2052
5
            proto_item_append_text(item, " : Invalid / Unsupported Order Type");
2053
5
            break;
2054
1
        }
2055
13
    }
2056
13
    }
2057
14
    if(l_offset%8 == 0)
2058
0
        *offset = (l_offset/8);
2059
14
    else
2060
14
        *offset = (l_offset/8) + 1;
2061
14
}
2062
2063
2064
/* Helper function to decode Data Burst Indication Message Parameters */
2065
static void cdma2k_message_DATA_BURST_IND(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
2066
16
{
2067
16
    uint16_t numOfFields = -1, parmLen = -1;
2068
16
    uint16_t inc = -1, cnt = -1, disp_cnt = -1;
2069
16
    proto_tree *subtree = NULL, *subtree1 = NULL, *subtree2 = NULL;
2070
16
    cnt = 1;
2071
2072
16
    item = proto_tree_add_item(tree,hf_cdma2k_DataBurstIndMsg, tvb, *offset,-1, ENC_NA);
2073
16
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2074
16
    proto_tree_add_item(subtree, hf_cdma2k_Msg_Number, tvb, *offset,1, ENC_BIG_ENDIAN);
2075
16
    *offset+=1;
2076
16
    proto_tree_add_bits_item(subtree, hf_cdma2k_Burst_Type, tvb, *offset*8,6, ENC_BIG_ENDIAN);
2077
16
    proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Msgs, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2078
16
    *offset+=1;
2079
16
    proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Fields, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2080
16
    numOfFields = tvb_get_bits8(tvb,*offset*8 + 6,8);
2081
16
    *offset+=1;
2082
2083
16
    item = proto_tree_add_item(subtree, hf_cdma2k_Chari_Data, tvb, *offset,-1, ENC_NA);
2084
16
    subtree1 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
2085
16
    proto_tree_add_bits_item(subtree1, hf_cdma2k_Msg_Identifier, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2086
16
    *offset+=1;
2087
16
    numOfFields-=1;
2088
2089
274
    while(numOfFields > 0)
2090
258
    {
2091
258
        item = proto_tree_add_bits_item(subtree1, hf_cdma2k_Parm_Id, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2092
258
        subtree2 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
2093
258
        *offset+=1;
2094
258
        numOfFields-=1;
2095
258
        proto_tree_add_bits_item(subtree2,hf_cdma2k_Parm_Length, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2096
258
        parmLen = tvb_get_bits8(tvb,*offset*8 + 6,8);
2097
258
        *offset+=1;
2098
258
        numOfFields-=1;
2099
2100
258
        if (cnt*32 < parmLen)
2101
21
        {
2102
21
                    disp_cnt = 32;
2103
21
                }
2104
237
                else
2105
237
                {
2106
237
                    disp_cnt = parmLen+1;
2107
237
                }
2108
2109
258
        item = proto_tree_add_item(subtree2,hf_cdma2k_Parm_Value, tvb, *offset,disp_cnt, ENC_NA);
2110
2111
4.85k
        for (inc = 0; inc < parmLen; inc++)
2112
4.59k
        {
2113
4.59k
            proto_item_append_text(item," 0x%02x ",tvb_get_bits8(tvb,*offset*8 + 6,8));
2114
4.59k
            *offset+=1;
2115
2116
4.59k
            if(inc%8 == 7)
2117
553
            proto_item_append_text(item,"\n");
2118
2119
4.59k
            if(inc%32 == 31)
2120
122
            {
2121
122
                    if (cnt*32 < parmLen)
2122
66
                        {
2123
66
                            disp_cnt = 32;
2124
66
                        }
2125
56
                        else
2126
56
                        {
2127
56
                            disp_cnt = (parmLen - cnt*32);
2128
56
                        }
2129
2130
122
                item = proto_tree_add_item(subtree2,hf_cdma2k_Parm_Value, tvb, *offset,disp_cnt, ENC_NA);
2131
122
                proto_item_append_text(item,"cont..." );
2132
122
                            cnt+=1;
2133
122
            }
2134
4.59k
        }
2135
258
        numOfFields-=parmLen;
2136
258
    }
2137
16
    *offset+=1;
2138
16
}
2139
2140
static void cdma2k_message_ORIGINATION(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset,uint16_t authIncl,uint16_t oneXPrev)
2141
34
{
2142
34
    uint16_t prevInUse = -1, mob_P_Rev_Rx = -1, Prev_Nid_Incl = -1;
2143
34
    uint16_t Sync_Id_Len = -1, Prev_Pzid_Incl= -1, For_FchLen = -1,Rev_FchLen = -1;
2144
34
    uint16_t uzid_Incl = -1, GeoLoc_Incl = -1, numOfFields = -1, Map_Length = -1, Qos_Parms_Incl= -1;
2145
34
    unsigned l_offset = 0;
2146
34
    uint16_t specialService = -1, Wll_Incl = -1,Global_Emergency_call = -1,Sync_Id_Incl = -1,Prev_Sid_Incl = -1;
2147
34
    uint16_t DigitMode = -1, Num_Alt_So = -1, Qos_Parms_Length = -1, Enc_Info_Incl = -1;
2148
34
    uint16_t digitSize = -1, So_Bitmap_Ind = -1, Dcch_supported = -1;
2149
34
    uint16_t Fch_supported = -1, Rev_DcchLen = -1, rea = -1, ecmea = -1, For_DcchLen = -1;
2150
2151
34
    proto_tree *subtree = NULL,*subtree1 = NULL, *subtree4 = NULL,*subtree3 = NULL;
2152
34
    proto_item *item1 = NULL, *item2 = NULL, *item4 = NULL;
2153
2154
    /*iws_Mob_P_Rev_In_Use = 7;*/
2155
2156
34
    l_offset = *offset*8;
2157
2158
34
    item = proto_tree_add_item(tree,hf_cdma2k_OrigMsg, tvb, l_offset/8,-1, ENC_NA);
2159
34
    subtree   = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2160
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_Term, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2161
34
    l_offset +=1;
2162
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Slot_Cycle_Index, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2163
34
    l_offset +=3;
2164
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_P_Rev, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2165
34
    mob_P_Rev_Rx = tvb_get_bits8(tvb,l_offset, 8);
2166
34
    l_offset +=8;
2167
2168
34
    prevInUse = ((oneXPrev >= mob_P_Rev_Rx) ? mob_P_Rev_Rx : oneXPrev);
2169
2170
34
    if(prevInUse == 1)
2171
1
    {
2172
1
        proto_tree_add_bits_item(subtree, hf_cdma2k_Ext_Scm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2173
1
        l_offset +=1;
2174
         /*Jump Over the one bit Reserved Field*/
2175
1
        proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2176
1
        l_offset +=1;
2177
1
        proto_tree_add_bits_item(subtree, hf_cdma2k_Sloted_Mode, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2178
1
        l_offset +=1;
2179
         /*Jump Over the five bit Reserved Field*/
2180
1
        proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2181
1
        l_offset +=5;
2182
1
    }
2183
33
    else
2184
33
    {
2185
33
        dissect_cdma2000_scm(tvb, subtree, l_offset);
2186
33
        l_offset +=8;
2187
33
    }
2188
2189
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Request_Mode, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2190
34
    l_offset +=3;
2191
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Special_Service, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2192
34
    specialService = tvb_get_bits8(tvb,l_offset, 1);
2193
34
    l_offset +=1;
2194
2195
34
    if (specialService == 1)
2196
17
    {
2197
17
        proto_tree_add_bits_item(subtree, hf_cdma2k_service_option, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2198
17
        l_offset +=16;
2199
17
    }
2200
2201
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_pm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2202
34
    l_offset +=1;
2203
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_digit_mode, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2204
34
    DigitMode = tvb_get_bits8(tvb,l_offset, 1);
2205
34
    l_offset +=1;
2206
2207
34
    if (DigitMode == 1)
2208
9
    {
2209
/*    if(mob_P_Rev_Rx > 8)
2210
        { */
2211
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Number_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2212
9
            l_offset +=3;
2213
/*      } */
2214
9
        proto_tree_add_bits_item(subtree, hf_cdma2k_Number_Plan, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2215
9
        l_offset +=4;
2216
9
    }
2217
2218
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_More_Fields, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2219
34
    l_offset += 1;
2220
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Fields, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2221
34
    numOfFields = tvb_get_bits8(tvb,l_offset, 8);
2222
34
    l_offset += 8;
2223
2224
34
    if(numOfFields > 0)
2225
32
    {
2226
32
        item2 = proto_tree_add_item(subtree, hf_cdma2k_Chari_Data, tvb, (l_offset/8),1, ENC_NA);
2227
32
        proto_item_append_text(item2," - Dialed Digits :");
2228
1.56k
        while(numOfFields > 0)
2229
1.52k
        {
2230
1.52k
            if(DigitMode == 1)
2231
413
            {
2232
413
                digitSize = 8;
2233
413
                proto_item_append_text(item2," 0x%02x",tvb_get_bits8(tvb,l_offset, digitSize));
2234
413
                l_offset+=digitSize;
2235
413
            }
2236
1.11k
            else if(DigitMode == 0)
2237
1.11k
            {
2238
1.11k
                digitSize = 4;
2239
1.11k
                proto_item_append_text(item2," 0x%x",tvb_get_bits8(tvb,l_offset, digitSize));
2240
1.11k
                l_offset+=digitSize;
2241
1.11k
            }
2242
1.52k
            numOfFields-=1;
2243
1.52k
        }
2244
32
    }
2245
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Nar_An_Cap, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2246
34
    l_offset += 1;
2247
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Paca_Reorig, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2248
34
    l_offset += 1;
2249
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Return_Cause, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2250
34
    l_offset += 4;
2251
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_More_Records, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2252
34
    l_offset += 1;
2253
2254
34
    if (prevInUse < 7 && authIncl == 1)
2255
0
    {
2256
0
        proto_tree_add_bits_item(subtree, hf_cdma2k_encryption_supported, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2257
0
        l_offset += 4;
2258
0
    }
2259
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_Paca_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2260
34
    l_offset += 1;
2261
34
    proto_tree_add_bits_item(subtree, hf_cdma2k_num_alt_so, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2262
34
    Num_Alt_So = tvb_get_bits8(tvb,l_offset, 3);
2263
34
    l_offset += 3;
2264
82
    while (Num_Alt_So > 0)
2265
48
    {
2266
48
        proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_So, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2267
48
        l_offset+=16;
2268
48
        Num_Alt_So--;
2269
48
    }
2270
34
    if (prevInUse >= 6)
2271
10
    {
2272
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_DRS, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2273
10
        l_offset +=1;
2274
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2275
10
        uzid_Incl = tvb_get_bits8(tvb,l_offset, 1);
2276
10
        l_offset +=1;
2277
10
        if (uzid_Incl == 1)
2278
3
        {
2279
3
            proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2280
3
            l_offset+=16;
2281
3
        }
2282
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Ch_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2283
10
        l_offset+=2;
2284
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_SR_ID, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2285
10
        l_offset+=3;
2286
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Otd_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2287
10
        l_offset +=1;
2288
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Qpch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2289
10
        l_offset +=1;
2290
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Enhanced_Rc, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2291
10
        l_offset +=1;
2292
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_For_Rc_Pref, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2293
10
        l_offset +=5;
2294
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Rc_Pref, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2295
10
        l_offset +=5;
2296
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Fch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2297
10
        Fch_supported = tvb_get_bits8(tvb,l_offset, 1);
2298
10
        l_offset +=1;
2299
10
        if(Fch_supported == 1)
2300
5
        {
2301
5
            item4 = proto_tree_add_item(subtree, hf_cdma2k_Fch_capability_type_specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2302
5
            subtree4 = proto_item_add_subtree(item4, ett_cdma2k_subtree2);
2303
5
            proto_tree_add_bits_item(subtree4,hf_cdma2k_Fch_Frame_Size, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2304
5
            l_offset +=1;
2305
5
            proto_tree_add_bits_item(subtree4,hf_cdma2k_For_Fch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2306
5
            For_FchLen = tvb_get_bits8(tvb,l_offset, 3);
2307
5
            l_offset+=3;
2308
5
            Map_Length = 3*For_FchLen ;
2309
5
            if(Map_Length > 0)
2310
4
            {
2311
4
                proto_tree_add_bits_item(subtree4,hf_cdma2k_For_Fch_Rc_Map, tvb, l_offset, Map_Length, ENC_BIG_ENDIAN);
2312
4
                l_offset+= Map_Length;
2313
4
            }
2314
5
            proto_tree_add_bits_item(subtree4,hf_cdma2k_Rev_Fch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2315
5
            Rev_FchLen = tvb_get_bits8(tvb,l_offset, 3);
2316
5
            l_offset+=3;
2317
5
            Map_Length = 3*Rev_FchLen ;
2318
5
            if(Map_Length > 0)
2319
5
            {
2320
5
                proto_tree_add_bits_item(subtree4,hf_cdma2k_Rev_Fch_Rc_Map, tvb, l_offset, Map_Length, ENC_BIG_ENDIAN);
2321
5
                l_offset+= Map_Length;
2322
5
            }
2323
5
        }
2324
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Dcch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2325
10
        Dcch_supported = tvb_get_bits8(tvb,l_offset, 1);
2326
10
        l_offset +=1;
2327
2328
10
        if(Dcch_supported == 1)
2329
6
        {
2330
6
            item4 = proto_tree_add_item(subtree, hf_cdma2k_Dcch_capability_type_specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2331
6
            subtree3 = proto_item_add_subtree(item4, ett_cdma2k_subtree2);
2332
6
            proto_tree_add_bits_item(subtree3,hf_cdma2k_Dcch_Frame_Size, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2333
6
            l_offset +=2;
2334
6
            proto_tree_add_bits_item(subtree3,hf_cdma2k_For_Dcch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2335
6
            For_DcchLen = tvb_get_bits8(tvb,l_offset, 3);
2336
6
            l_offset+=3;
2337
6
            Map_Length = 3*For_DcchLen ;
2338
6
            if(Map_Length > 0)
2339
4
            {
2340
4
                proto_tree_add_bits_item(subtree3,hf_cdma2k_For_Dcch_Rc_Map, tvb, l_offset, Map_Length, ENC_BIG_ENDIAN);
2341
4
                l_offset+= Map_Length;
2342
4
            }
2343
6
            proto_tree_add_bits_item(subtree3,hf_cdma2k_Rev_Dcch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2344
6
            Rev_DcchLen = tvb_get_bits8(tvb,l_offset, 3);
2345
6
            l_offset+=3;
2346
6
            Map_Length = 3*Rev_DcchLen ;
2347
6
            if(Map_Length > 0)
2348
4
            {
2349
4
                proto_tree_add_bits_item(subtree3,hf_cdma2k_Rev_Dcch_Rc_Map, tvb, l_offset, Map_Length, ENC_BIG_ENDIAN);
2350
4
                l_offset+= Map_Length;
2351
4
            }
2352
6
        }
2353
2354
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_GeoLoc_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2355
10
        GeoLoc_Incl = tvb_get_bits8(tvb,l_offset, 1);
2356
10
        l_offset += 1;
2357
10
        if(GeoLoc_Incl == 1)
2358
5
        {
2359
5
            proto_tree_add_bits_item(subtree, hf_cdma2k_GeoLoc_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2360
5
            l_offset += 3;
2361
5
        }
2362
2363
10
        proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Fch_Gating_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2364
10
        l_offset += 1;
2365
10
        if(prevInUse >= 7)
2366
9
        {
2367
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Orig_Reason, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2368
9
            l_offset += 1;
2369
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Orig_Count, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2370
9
                        l_offset += 2;
2371
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sts_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2372
9
                        l_offset += 1;
2373
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_ThreeXCchSupported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2374
9
            l_offset += 1;
2375
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Wll_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2376
9
            Wll_Incl = tvb_get_bits8(tvb,l_offset, 1);
2377
9
                        l_offset += 1;
2378
9
            if(Wll_Incl == 1)
2379
2
            {
2380
2
                proto_tree_add_bits_item(subtree, hf_cdma2k_Wll_Device_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2381
2
                l_offset += 3;
2382
2383
2
            }
2384
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Global_Emergency_Call, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2385
9
            Global_Emergency_call = tvb_get_bits8(tvb,l_offset, 1);
2386
9
            l_offset += 1;
2387
9
            if(Global_Emergency_call == 1)
2388
5
            {
2389
5
                proto_tree_add_bits_item(subtree, hf_cdma2k_Ms_Init_Pos_Loc_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2390
5
                l_offset += 1;
2391
5
            }
2392
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Qos_Parms_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2393
9
            Qos_Parms_Incl = tvb_get_bits8(tvb,l_offset, 1);
2394
9
            l_offset += 1;
2395
9
            if(Qos_Parms_Incl != 0)
2396
7
            {
2397
7
                proto_tree_add_bits_item(subtree, hf_cdma2k_Qos_Parms_Length, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2398
7
                Qos_Parms_Length = tvb_get_bits8(tvb,l_offset, 5);
2399
7
                l_offset += 5;
2400
90
                while (Qos_Parms_Length > 0)
2401
83
                {
2402
83
                    item4 = proto_tree_add_item(subtree1, hf_cdma2k_Qos_Parms, tvb, (l_offset/8), 1, ENC_BIG_ENDIAN);
2403
83
                    subtree1 = proto_item_add_subtree(item4, ett_cdma2k_subtree2);
2404
83
                    proto_item_append_text(item4," 0x%02x",tvb_get_bits8(tvb,l_offset, 8));
2405
83
                    l_offset+=8;
2406
83
                    Qos_Parms_Length -=1;
2407
83
                }
2408
7
            }
2409
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Enc_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2410
9
            Enc_Info_Incl = tvb_get_bits8(tvb,l_offset, 1);
2411
9
            l_offset+=1;
2412
9
            if(Enc_Info_Incl != 0)
2413
6
            {
2414
6
                item2 = proto_tree_add_item(subtree, hf_cdma2k_Sig_Encrypt_Supp, tvb, (l_offset/8),1, ENC_NA);
2415
6
                subtree1 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
2416
6
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Cmea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2417
6
                l_offset+=1;
2418
6
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Ecmea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2419
6
                ecmea = tvb_get_bits8(tvb,l_offset, 1);
2420
6
                l_offset+=1;
2421
6
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Rea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2422
6
                rea = tvb_get_bits8(tvb,l_offset, 1);
2423
6
                l_offset+=1;
2424
6
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2425
6
                l_offset+=5;
2426
6
                proto_tree_add_bits_item(subtree, hf_cdma2k_DSig_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2427
6
                l_offset+=1;
2428
6
                proto_tree_add_bits_item(subtree, hf_cdma2k_CSig_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2429
6
                l_offset+=1;
2430
6
                if(ecmea == 1 || rea == 1)
2431
5
                {
2432
5
                    proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H, tvb, l_offset, 24, ENC_BIG_ENDIAN);
2433
5
                    l_offset+=24;
2434
5
                    proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Sig, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2435
5
                    l_offset+=8;
2436
5
                }
2437
2438
6
                proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2439
6
                l_offset+=1;
2440
6
                proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2441
6
                        l_offset+=8;
2442
6
            }
2443
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Incl, tvb, l_offset, 1, ENC_NA);
2444
9
            Sync_Id_Incl = tvb_get_bits8(tvb,l_offset, 1);
2445
9
            l_offset +=1;
2446
9
            if(Sync_Id_Incl != 0)
2447
4
            {
2448
4
                proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2449
4
                Sync_Id_Len = tvb_get_bits8(tvb,l_offset, 4);
2450
4
                l_offset +=4;
2451
22
                while (Sync_Id_Len > 0)
2452
18
                {
2453
18
                    item1 = proto_tree_add_item(subtree1, hf_cdma2k_Sync_Id, tvb, (l_offset/8),Sync_Id_Len, ENC_NA);
2454
                    /*subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);*/
2455
18
                    proto_item_append_text(item1," 0x%02x",tvb_get_bits8(tvb,l_offset, 8));
2456
18
                    l_offset+=8;
2457
18
                    Sync_Id_Len -=1;
2458
18
                }
2459
4
            }
2460
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Sid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2461
9
            Prev_Sid_Incl = tvb_get_bits8(tvb,l_offset, 1);
2462
9
            l_offset+=1;
2463
9
            if (Prev_Sid_Incl != 0)
2464
7
            {
2465
7
                proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Sid, tvb, l_offset, 15, ENC_BIG_ENDIAN);
2466
7
                l_offset+=15;
2467
7
            }
2468
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Nid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2469
9
                        Prev_Nid_Incl = tvb_get_bits8(tvb,l_offset, 1);
2470
9
                        l_offset+=1;
2471
9
            if (Prev_Nid_Incl != 0)
2472
6
            {
2473
6
                proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Nid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2474
6
                                l_offset+=16;
2475
6
            }
2476
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Pzid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2477
9
                        Prev_Pzid_Incl = tvb_get_bits8(tvb,l_offset, 1);
2478
9
                        l_offset+=1;
2479
9
            if (Prev_Pzid_Incl != 0)
2480
4
                        {
2481
4
                                proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Pzid, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2482
4
                                l_offset+=8;
2483
4
                        }
2484
9
            proto_tree_add_bits_item(subtree, hf_cdma2k_So_Bitmap_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2485
9
            So_Bitmap_Ind = tvb_get_bits8(tvb,l_offset, 2);
2486
9
            l_offset+=2;
2487
9
            if (So_Bitmap_Ind > 0)
2488
8
            {
2489
8
                proto_tree_add_bits_item(subtree, hf_cdma2k_So_Group_Num, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2490
8
                l_offset+=5;
2491
8
                proto_tree_add_bits_item(subtree, hf_cdma2k_So_Bitmap, tvb, l_offset, 4*So_Bitmap_Ind, ENC_BIG_ENDIAN);
2492
8
                l_offset+=4*So_Bitmap_Ind;
2493
8
            }
2494
9
        }
2495
10
    }
2496
2497
         /*Currently IWS Stack supports only till Mobile Protocol Revision Value 7*/
2498
/*  if (mob_P_Rev_Rx >= 8)
2499
    {
2500
        proto_tree_add_bits_item(subtree, hf_cdma2k_SDB_Desired, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2501
        l_offset+=1;
2502
        proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_Band_Class_Sup, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2503
        l_offset+=1;
2504
    }
2505
    if (mob_P_Rev_Rx >= 9)
2506
    {
2507
        proto_tree_add_bits_item(subtree, hf_cdma2k_Msg_Int_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2508
        msg_Int_Info_Incl = tvb_get_bits8(tvb,l_offset, 1);
2509
        l_offset+=1;
2510
        if (msg_Int_Info_Incl == 1)
2511
        {
2512
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Sup_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2513
            sigIntegritySupIncl = tvb_get_bits8(tvb,l_offset, 1);
2514
            l_offset+=1;
2515
            if(sigIntegritySupIncl ==1)
2516
            {
2517
                proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2518
                l_offset+=8;
2519
                proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Req, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2520
                l_offset+=3;
2521
            }
2522
            proto_tree_add_bits_item(subtree, hf_cdma2k_New_Key_Id, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2523
            l_offset+=2;
2524
            proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2525
            newSseqHIncl = tvb_get_bits8(tvb,l_offset, 1);
2526
            l_offset+=1;
2527
            if (newSseqHIncl == 1)
2528
            {
2529
                proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H, tvb, l_offset, 24, ENC_BIG_ENDIAN);
2530
                l_offset+=24;
2531
                proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Sig, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2532
                l_offset+=8;
2533
            }
2534
        }
2535
        proto_tree_add_bits_item(subtree, hf_cdma2k_For_Pdch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2536
        forPdchSupported = tvb_get_bits8(tvb,l_offset, 1);
2537
        l_offset+=1;
2538
        if(forPdchSupported == 1)
2539
        {
2540
            item2 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2541
            subtree1 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
2542
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ack_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2543
            l_offset+=1;
2544
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Arq_Chan, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2545
            l_offset+=2;
2546
            proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Pdch_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2547
            forPdchLen = tvb_get_bits8(tvb,l_offset, 2);
2548
            l_offset+=2;
2549
            proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Pdch_Rc_Map, tvb, l_offset, 3*(forPdchLen+1), ENC_BIG_ENDIAN);
2550
            l_offset+=3*(forPdchLen+1);
2551
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ch_Config_Sup_Map_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2552
            chConfigSupMapLen = tvb_get_bits8(tvb,l_offset, 2);
2553
            l_offset+=2;
2554
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ch_Config_Sup_Map, tvb, l_offset, 3*(chConfigSupMapLen + 1), ENC_BIG_ENDIAN);
2555
            l_offset+=3*(chConfigSupMapLen + 1);
2556
        }
2557
    }
2558
    if(chInd == 0)
2559
    {
2560
        proto_tree_add_bits_item(subtree, hf_cdma2k_Ext_Ch_Ind, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2561
        l_offset+=5;
2562
    }*/
2563
2564
34
    if(l_offset%8 == 0)
2565
2
        *offset = (l_offset/8);
2566
32
    else
2567
32
        *offset = (l_offset/8) + 1;
2568
34
}
2569
2570
2571
/* Helper function to decode Authentication Challenge Response Message Parameters */
2572
static void cdma2k_message_AUTH_CHALL_RSP(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
2573
22
{
2574
22
    proto_tree *subtree = NULL;
2575
22
    item = proto_tree_add_item(tree,hf_cdma2k_AuthChallRspMsg, tvb, *offset,-1, ENC_NA);
2576
22
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2577
22
    proto_tree_add_bits_item(subtree, hf_cdma2k_Authu, tvb, *offset*8,18, ENC_BIG_ENDIAN);
2578
22
    *offset+=3;
2579
22
}
2580
2581
2582
/* Helper function to decode Data Burst Command Message Parameters */
2583
static void cdma2k_message_DATA_BURST_CMD(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
2584
25
{
2585
25
    uint16_t numOfFields = -1, parmLen = -1;
2586
25
    uint16_t inc = -1, cnt = -1, disp_cnt = -1;
2587
25
    proto_tree *subtree = NULL, *subtree1 = NULL, *subtree2 = NULL;
2588
25
    cnt = 1;
2589
2590
25
    item = proto_tree_add_item(tree,hf_cdma2k_DataBurstCmdMsg, tvb, *offset,-1, ENC_NA);
2591
25
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2592
25
    proto_tree_add_item(subtree, hf_cdma2k_Msg_Number, tvb, *offset,1, ENC_BIG_ENDIAN);
2593
25
    *offset+=1;
2594
25
    proto_tree_add_bits_item(subtree, hf_cdma2k_Burst_Type, tvb, *offset*8,6, ENC_BIG_ENDIAN);
2595
25
    proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Msgs, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2596
25
    *offset+=1;
2597
25
    proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Fields, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2598
25
    numOfFields = tvb_get_bits8(tvb,*offset*8 + 6,8);
2599
25
    *offset+=1;
2600
2601
25
    item = proto_tree_add_item(subtree, hf_cdma2k_Chari_Data, tvb, *offset,-1, ENC_NA);
2602
25
    subtree1 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
2603
25
    proto_tree_add_bits_item(subtree1, hf_cdma2k_Msg_Identifier, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2604
25
    *offset+=1;
2605
25
    numOfFields-=1;
2606
2607
233
    while(numOfFields > 0)
2608
208
    {
2609
208
        item = proto_tree_add_bits_item(subtree1, hf_cdma2k_Parm_Id, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2610
208
        subtree2 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
2611
208
        *offset+=1;
2612
208
        numOfFields-=1;
2613
208
        proto_tree_add_bits_item(subtree2,hf_cdma2k_Parm_Length, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2614
208
        parmLen = tvb_get_bits8(tvb,*offset*8 + 6,8);
2615
208
        *offset+=1;
2616
208
        numOfFields-=1;
2617
2618
208
            if (cnt*32 < parmLen)
2619
36
                {
2620
36
                    disp_cnt = 32;
2621
36
                }
2622
172
                else
2623
172
                {
2624
172
                    disp_cnt = parmLen+1;
2625
172
                }
2626
208
        item = proto_tree_add_item(subtree2,hf_cdma2k_Parm_Value, tvb, *offset,disp_cnt, ENC_NA);
2627
2628
6.12k
        for (inc = 0; inc < parmLen; inc++)
2629
5.91k
        {
2630
5.91k
            proto_item_append_text(item," 0x%02x ",tvb_get_bits8(tvb,*offset*8 + 6,8));
2631
5.91k
            *offset+=1;
2632
2633
2634
5.91k
            if(inc%8 == 7)
2635
704
            proto_item_append_text(item,"\n");
2636
2637
5.91k
            if(inc%32 == 31)
2638
155
            {
2639
155
                    if (cnt*32 < parmLen)
2640
67
                        {
2641
67
                            disp_cnt = 32;
2642
67
                        }
2643
88
                        else
2644
88
                        {
2645
88
                            disp_cnt = (parmLen - cnt*32);
2646
88
                        }
2647
2648
155
                item = proto_tree_add_item(subtree2,hf_cdma2k_Parm_Value, tvb, *offset,disp_cnt, ENC_NA);
2649
155
                proto_item_append_text(item,"cont..." );
2650
155
                            cnt+=1;
2651
155
            }
2652
5.91k
        }
2653
208
        numOfFields-=parmLen;
2654
208
    }
2655
25
    *offset+=1;
2656
25
}
2657
2658
2659
/* Helper function to decode Authentication Challenge Request Message Parameters */
2660
static void cdma2k_message_AUTH_CHALL_REQ(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
2661
2
{
2662
2
    proto_tree *subtree = NULL;
2663
2
    item = proto_tree_add_item(tree,hf_cdma2k_AuthChallReqMsg, tvb, *offset,-1, ENC_NA);
2664
2
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2665
2
    proto_tree_add_bits_item(subtree, hf_cdma2k_Randu, tvb, *offset*8,24, ENC_BIG_ENDIAN);
2666
2
    *offset+=3;
2667
2
    proto_tree_add_item(subtree, hf_cdma2k_Gen_Cmea_Key, tvb, *offset,1, ENC_BIG_ENDIAN);
2668
2
    *offset+=1;
2669
2
}
2670
2671
2672
/* Helper function to decode General Page Request Message Parameters */
2673
static void cdma2k_message_GEN_PAGE_REQ(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset,uint16_t l3PduLen)
2674
1
{
2675
1
    proto_tree *subtree = NULL;
2676
1
    item = proto_tree_add_item(tree,hf_cdma2k_GenPageReqMsg, tvb, *offset,-1, ENC_NA);
2677
1
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2678
2679
1
    if (l3PduLen)
2680
1
    {
2681
1
        proto_tree_add_item(subtree, hf_cdma2k_service_option, tvb, *offset,2, ENC_BIG_ENDIAN);
2682
1
        *offset+=2;
2683
1
    }
2684
1
}
2685
2686
2687
/* Helper Function to decode Page Response Message Parameters */
2688
static void cdma2k_message_PAGE_RESPONSE(proto_item *item, tvbuff_t *tvb,proto_tree *tree,unsigned *offset,uint16_t authIncl,uint16_t oneXPrev)
2689
10
{
2690
10
    uint16_t fchSupported = -1, dcchSupported = -1,numAltSo = -1, soBitmapInd = -1;
2691
10
    uint16_t forFchLen = -1, revFchLen = -1, forDcchLen = -1, revDcchLen = -1 , syncIdLen =-1;
2692
10
    uint16_t uzidIncl = -1, wllIncl = -1, encInfoIncl = -1, syncIdIncl = -1;
2693
10
    uint16_t rea = -1, ecmea = -1;
2694
10
    unsigned l_offset = 0;
2695
10
    uint16_t prevInUse = -1, mob_P_Rev_Rx = -1;
2696
2697
10
    proto_tree *subtree = NULL, *subtree1 = NULL;
2698
10
    proto_item *item1 = NULL;
2699
2700
    /*iws_Mob_P_Rev_In_Use = 7;*/
2701
2702
10
    item = proto_tree_add_item(tree,hf_cdma2k_PageRspMsg, tvb, *offset,-1, ENC_NA);
2703
10
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2704
10
    proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_Term, tvb, *offset*8,1, ENC_BIG_ENDIAN);
2705
10
    l_offset = *offset*8 + 1;
2706
10
    proto_tree_add_bits_item(subtree, hf_cdma2k_Slot_Cycle_Index, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2707
10
    l_offset+= 3;
2708
10
    proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_P_Rev, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2709
10
    mob_P_Rev_Rx = tvb_get_bits8(tvb,l_offset, 8);
2710
10
    l_offset+= 8;
2711
2712
10
    prevInUse = ((oneXPrev >= mob_P_Rev_Rx) ? mob_P_Rev_Rx : oneXPrev);
2713
2714
10
    dissect_cdma2000_scm(tvb, subtree, l_offset);
2715
10
    l_offset+=8;
2716
2717
10
    proto_tree_add_bits_item(subtree, hf_cdma2k_Request_Mode, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2718
10
    l_offset+=3;
2719
2720
10
    proto_tree_add_bits_item(subtree, hf_cdma2k_service_option , tvb, l_offset, 16, ENC_BIG_ENDIAN);
2721
10
    l_offset+=16;
2722
2723
10
    proto_tree_add_bits_item(subtree, hf_cdma2k_pm, tvb, l_offset,  1, ENC_BIG_ENDIAN);
2724
10
    l_offset+=1;
2725
2726
10
    proto_tree_add_bits_item(subtree, hf_cdma2k_Nar_An_Cap, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2727
10
    l_offset+=1;
2728
2729
10
    if(prevInUse < 7 && authIncl == 1)
2730
0
    {
2731
0
        proto_tree_add_bits_item(subtree, hf_cdma2k_encryption_supported, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2732
0
        l_offset+=4;
2733
0
    }
2734
2735
10
    proto_tree_add_bits_item(subtree, hf_cdma2k_num_alt_so, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2736
10
    numAltSo = tvb_get_bits8(tvb,l_offset, 3);
2737
10
    l_offset+=3;
2738
2739
45
    while(numAltSo > 0)
2740
35
    {
2741
35
        proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_So, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2742
35
        l_offset+=16;
2743
35
        numAltSo--;
2744
35
    }
2745
2746
10
    if(prevInUse >= 6)
2747
7
    {
2748
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2749
7
        uzidIncl = tvb_get_bits8(tvb,l_offset, 1);
2750
7
        l_offset+=1;
2751
7
        if(uzidIncl == 1)
2752
2
        {
2753
2
            proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2754
2
            l_offset+=16;
2755
2
        }
2756
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Ch_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2757
7
        l_offset+=2;
2758
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Otd_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2759
7
        l_offset+=1;
2760
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Qpch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2761
7
        l_offset+=1;
2762
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Enhanced_Rc, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2763
7
        l_offset+=1;
2764
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_For_Rc_Pref, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2765
7
        l_offset+=5;
2766
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Rc_Pref, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2767
7
        l_offset+=5;
2768
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Fch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2769
7
        fchSupported = tvb_get_bits8(tvb,l_offset, 1);
2770
7
        l_offset+=1;
2771
7
        if(fchSupported == 1)
2772
2
        {
2773
2
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2774
2
            proto_item_append_text(item1, "Fch Records");
2775
2
            subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2776
2
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Fch_Frame_Size, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2777
2
            l_offset+=1;
2778
2
            proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Fch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2779
2
            forFchLen = tvb_get_bits8(tvb,l_offset, 3);
2780
2
            l_offset+=3;
2781
2
            if(forFchLen > 0)
2782
2
            {
2783
2
                proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Fch_Rc_Map, tvb, l_offset, 3*forFchLen, ENC_BIG_ENDIAN);
2784
2
                l_offset+=3*forFchLen;
2785
2
            }
2786
2
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rev_Fch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2787
2
            revFchLen = tvb_get_bits8(tvb,l_offset, 3);
2788
2
            l_offset+=3;
2789
2
            if(revFchLen > 0)
2790
2
            {
2791
2
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Rev_Fch_Rc_Map, tvb, l_offset, 3*revFchLen , ENC_BIG_ENDIAN);
2792
2
                l_offset+=3*revFchLen;
2793
2
            }
2794
2
        }
2795
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Dcch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2796
7
        dcchSupported = tvb_get_bits8(tvb,l_offset, 1);
2797
7
        l_offset+=1;
2798
7
        if(dcchSupported == 1)
2799
5
        {
2800
5
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2801
5
            proto_item_append_text(item1, "Dcch Records");
2802
5
            subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2803
5
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Dcch_Frame_Size, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2804
5
            l_offset+=2;
2805
5
            proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Dcch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2806
5
            forDcchLen = tvb_get_bits8(tvb,l_offset, 3);
2807
5
            l_offset+=3;
2808
5
            if(forDcchLen > 0)
2809
2
            {
2810
2
                proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Dcch_Rc_Map, tvb, l_offset, 3*forDcchLen, ENC_BIG_ENDIAN);
2811
2
                l_offset+=3*forDcchLen;
2812
2
            }
2813
5
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rev_Dcch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2814
5
            revDcchLen = tvb_get_bits8(tvb,l_offset, 3);
2815
5
            l_offset+=3;
2816
5
            if (revDcchLen > 0)
2817
4
            {
2818
4
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Rev_Dcch_Rc_Map, tvb, l_offset, 3*revDcchLen, ENC_BIG_ENDIAN);
2819
4
                l_offset+=3*revDcchLen;
2820
4
            }
2821
5
        }
2822
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Fch_Gating_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2823
7
        l_offset+=1;
2824
7
    }
2825
10
    if(prevInUse >= 7)
2826
7
    {
2827
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Sts_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2828
7
        l_offset+=1;
2829
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_ThreeXCchSupported , tvb, l_offset, 1, ENC_BIG_ENDIAN);
2830
7
        l_offset+=1;
2831
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Wll_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2832
7
        wllIncl = tvb_get_bits8(tvb,l_offset, 1);
2833
7
        l_offset+=1;
2834
7
        if (wllIncl == 1)
2835
2
        {
2836
2
            proto_tree_add_bits_item(subtree, hf_cdma2k_Wll_Device_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2837
2
            l_offset+=3;
2838
2
            proto_tree_add_bits_item(subtree, hf_cdma2k_Hook_Status, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2839
2
            l_offset+=4;
2840
2
        }
2841
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Enc_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2842
7
        encInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
2843
7
        l_offset+=1;
2844
7
        if(encInfoIncl == 1)
2845
4
        {
2846
4
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Sig_Encrypt_Supp, tvb, (l_offset/8),1, ENC_NA);
2847
4
            subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2848
4
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Cmea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2849
4
            l_offset+=1;
2850
4
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ecmea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2851
4
            ecmea = tvb_get_bits8(tvb,l_offset, 1);
2852
4
            l_offset+=1;
2853
4
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Rea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2854
4
            rea = tvb_get_bits8(tvb,l_offset, 1);
2855
4
            l_offset+=1;
2856
4
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2857
4
            l_offset+=5;
2858
4
            proto_tree_add_bits_item(subtree, hf_cdma2k_DSig_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2859
4
            l_offset+=1;
2860
4
            proto_tree_add_bits_item(subtree, hf_cdma2k_CSig_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2861
4
            l_offset+=1;
2862
4
            if(ecmea == 1 || rea == 1)
2863
1
            {
2864
1
                proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H, tvb, l_offset, 24, ENC_BIG_ENDIAN);
2865
1
                l_offset+=24;
2866
1
                proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Sig, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2867
1
                l_offset+=8;
2868
1
            }
2869
4
            proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2870
4
            l_offset+=1;
2871
4
            proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2872
4
            l_offset+=8;
2873
4
        }
2874
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2875
7
        syncIdIncl = tvb_get_bits8(tvb,l_offset, 1);
2876
7
        l_offset+=1;
2877
7
        if(syncIdIncl == 1)
2878
2
        {
2879
2
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2880
2
            syncIdLen = tvb_get_bits8(tvb,l_offset, 4);
2881
2
            l_offset+=4;
2882
2
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Sync_Id, tvb, l_offset/8,syncIdLen, ENC_NA);
2883
32
            while(syncIdLen > 0)
2884
30
            {
2885
30
                proto_item_append_text(item1, " %02x",tvb_get_bits8(tvb,l_offset, 8));
2886
30
                l_offset+=8;
2887
30
                syncIdLen--;
2888
30
            }
2889
2
        }
2890
7
        proto_tree_add_bits_item(subtree, hf_cdma2k_So_Bitmap_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2891
7
        soBitmapInd = tvb_get_bits8(tvb,l_offset, 2);
2892
7
        l_offset+=2;
2893
7
        if(soBitmapInd != 0)
2894
2
        {
2895
2
            proto_tree_add_bits_item(subtree, hf_cdma2k_So_Group_Num, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2896
2
            l_offset+=5;
2897
2
            proto_tree_add_bits_item(subtree, hf_cdma2k_So_Bitmap, tvb, l_offset, 4*soBitmapInd, ENC_BIG_ENDIAN);
2898
2
            l_offset+=4*soBitmapInd;
2899
2
        }
2900
7
    }
2901
2902
        /* Currently IWS Stack supports only till Mobile Protocol Revision Value 7 */
2903
/*if(mob_P_Rev_Rx >= 8)
2904
    {
2905
        proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_Band_Class_Sup, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2906
        l_offset+=1;
2907
    }
2908
    if(mob_P_Rev_Rx >= 9)
2909
    {
2910
        proto_tree_add_bits_item(subtree, hf_cdma2k_Msg_Int_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2911
        msgIntInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
2912
        l_offset+=1;
2913
        if(msgIntInfoIncl == 1)
2914
        {
2915
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Sup_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2916
            sigIntegritySupIncl = tvb_get_bits8(tvb,l_offset, 1);
2917
            l_offset+=1;
2918
            if(sigIntegritySupIncl ==1)
2919
            {
2920
                proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2921
                l_offset+=8;
2922
                proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_Sig_Integrity_Req, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2923
                l_offset+=3;
2924
            }
2925
            proto_tree_add_bits_item(subtree, hf_cdma2k_New_Key_Id, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2926
            l_offset+=2;
2927
            proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2928
            newSseqHIncl = tvb_get_bits8(tvb,l_offset, 1);
2929
            l_offset+=1;
2930
            if(newSseqHIncl == 1)
2931
            {
2932
                proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H, tvb, l_offset, 24, ENC_BIG_ENDIAN);
2933
                l_offset+=24;
2934
                proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Sig, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2935
                l_offset+=8;
2936
            }
2937
2938
        }
2939
        proto_tree_add_bits_item(subtree, hf_cdma2k_For_Pdch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2940
        forPdchSupported = tvb_get_bits8(tvb,l_offset, 1);
2941
        l_offset+=1;
2942
        if(forPdchSupported == 1)
2943
        {
2944
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2945
            subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2946
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ack_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2947
            l_offset+=1;
2948
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Arq_Chan, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2949
            l_offset+=2;
2950
            proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Pdch_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2951
            forPdchLen = tvb_get_bits8(tvb,l_offset, 2);
2952
            l_offset+=2;
2953
            proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Pdch_Rc_Map, tvb, l_offset, 3*(forPdchLen+1), ENC_BIG_ENDIAN);
2954
            l_offset+=3*(forFchLen+1);
2955
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ch_Config_Sup_Map_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2956
            chConfigSupMapLen = tvb_get_bits8(tvb,l_offset, 2);
2957
            l_offset+=2;
2958
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Ch_Config_Sup_Map, tvb, l_offset, 3*(chConfigSupMapLen + 1), ENC_BIG_ENDIAN);
2959
            l_offset+=3*(chConfigSupMapLen + 1);
2960
        }
2961
    }
2962
    if(chInd == 0)
2963
    {
2964
        proto_tree_add_bits_item(subtree, hf_cdma2k_Ext_Ch_Ind, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2965
        l_offset+=5;
2966
    }
2967
    if(mob_P_Rev_Rx >= 11)
2968
    {
2969
        if(slotCycleIndex != 0)
2970
        {
2971
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sign_Slot_Cycle_Index, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2972
            l_offset+=1;
2973
        }
2974
        proto_tree_add_bits_item(subtree, hf_cdma2k_Bcmc_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2975
        bcmcIncl = tvb_get_bits8(tvb,l_offset, 1);
2976
        l_offset+=1;
2977
        if(bcmcIncl !=0)
2978
        {
2979
            proto_tree_add_bits_item(subtree, hf_cdma2k_Bcmc_Pref_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2980
            l_offset+=1;
2981
            proto_tree_add_bits_item(subtree, hf_cdma2k_Fundicated_Bcmc_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2982
            fundicatedBcmcSupported = tvb_get_bits8(tvb,l_offset, 1);
2983
            l_offset+=1;
2984
            if(fundicatedBcmcSupported == 1)
2985
            {
2986
                item1 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2987
                subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2988
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Fundicated_Bcmc_Ch_Sup_Map_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2989
                fundicatedBcmcChSupMapLen = tvb_get_bits8(tvb,l_offset, 2);
2990
                l_offset+=2;
2991
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Fundicated_Bcmc_Ch_Sup_Map, tvb, l_offset, 3*(fundicatedBcmcChSupMapLen + 1), ENC_BIG_ENDIAN);
2992
                l_offset+=3*(fundicatedBcmcChSupMapLen + 1);
2993
            }
2994
            proto_tree_add_bits_item(subtree, hf_cdma2k_Auth_Signature_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2995
            authSignatureIncl = tvb_get_bits8(tvb,l_offset, 1);
2996
            l_offset+=1;
2997
            if(authSignatureIncl !=0)
2998
            {
2999
                proto_tree_add_bits_item(subtree, hf_cdma2k_Time_Stamp_Short_Length, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3000
                l_offset+=8;
3001
                proto_tree_add_bits_item(subtree, hf_cdma2k_Time_Stamp_Short, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3002
                l_offset+=8;/ * Length needs to be check  * /
3003
                proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Bcmc_Programs, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3004
                l_offset+=8;
3005
            }
3006
        }
3007
    }*/
3008
10
    if(l_offset%8 == 0)
3009
0
        *offset = (l_offset/8);
3010
10
    else
3011
10
        *offset = (l_offset/8) + 1;
3012
10
}
3013
3014
3015
/* Helper function to decode Handoff Direction Message Parameters */
3016
static void cdma2k_message_HANDOFF_DIR(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset, uint16_t msgType)
3017
156
{
3018
156
    uint16_t useTime = -1, parmsIncl = -1, searchIncl = -1, extraParmsIncl = -1;
3019
156
    uint16_t returnIfHandoffFail = -1, scrIncl = -1, nnscrIncl = -1;
3020
156
    unsigned l_offset = 0;
3021
156
    uint16_t recLen= -1, pwrCntlStepIncl = -1, schIncl = -1, startTimeIncl = -1;
3022
156
    uint16_t loop = -1, usePcTime = -1, chInd = -1, gatMode = -1, pwrCntlDelayIncl = -1;
3023
156
    uint16_t encryptMode = -1, linkIncl = -1, pRev = -1, syncIdIncl = -1, syncIdLen = -1;
3024
156
    uint16_t ccInfoIncl = -1, noCallAssign = -1, resInd = -1, cdmaRepSup = -1, plcmIncl = -1;
3025
156
    uint16_t plcmType = -1, dropTRangeIncl = -1, fwdPDChSup = -1, encIncl = -1, sidIncl = -1;
3026
156
    uint16_t nidIncl = -1, csSup = -1, pacZoneId = -1, pzHysEnabled = -1, pzHysInfoIncl = -1;
3027
156
    uint16_t bcmcTchSup = -1, numForAssign = -1, schBcmc = -1, addPlcmSchIncl = -1;
3028
156
    uint16_t addPlcmSchType = -1, fSchOuterCodeIncl = -1, txPwrIncl = -1, txPwrDflt = -1;
3029
156
    proto_tree *subtree = NULL, *subtree1 = NULL, *subtree2 = NULL;
3030
156
    proto_item *item1 = NULL, *item2 = NULL, *item3 = NULL;
3031
3032
156
    if(msgType == 34)
3033
133
    {
3034
133
        item = proto_tree_add_item(tree,hf_cdma2k_UhdmMsg, tvb, *offset,-1, ENC_NA);
3035
133
    }
3036
23
    else
3037
23
    {
3038
23
        item = proto_tree_add_item(tree,hf_cdma2k_MeIdUhdmMsg, tvb, *offset,-1, ENC_NA);
3039
23
    }
3040
156
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
3041
3042
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Time, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3043
156
    useTime = tvb_get_bits8(tvb,*offset*8,1);
3044
156
    l_offset = *offset*8 + 1;
3045
156
    if(useTime == 1)
3046
62
    {
3047
62
        proto_tree_add_bits_item(subtree, hf_cdma2k_Action_Time, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3048
62
        l_offset+= 6;
3049
62
    }
3050
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Hdm_Seq, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3051
156
    l_offset+=2;
3052
3053
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Parms_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3054
156
    parmsIncl = tvb_get_bits8(tvb,l_offset, 1);
3055
156
    l_offset+=1;
3056
156
    if(parmsIncl == 1)
3057
44
    {
3058
44
        proto_tree_add_bits_item(subtree, hf_cdma2k_P_Rev, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3059
44
        pRev = tvb_get_bits8(tvb,l_offset, 8);
3060
44
        l_offset+=8;
3061
44
        proto_tree_add_bits_item(subtree, hf_cdma2k_Serv_Neg_Type, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3062
44
        l_offset+=1;
3063
44
    }
3064
3065
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Search_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3066
156
    searchIncl = tvb_get_bits8(tvb,l_offset, 1);
3067
156
    l_offset+=1;
3068
156
    if(searchIncl == 1)
3069
52
    {
3070
52
        item1 = proto_tree_add_item(subtree, hf_cdma2k_Pilot_Search, tvb, (l_offset/8),7, ENC_NA);
3071
52
        subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
3072
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Srch_Win_A, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3073
52
        l_offset+=4;
3074
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Srch_Win_N, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3075
52
        l_offset+=4;
3076
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Srch_Win_R, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3077
52
        l_offset+=4;
3078
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_T_Add, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3079
52
        l_offset+=6;
3080
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_T_Drop, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3081
52
        l_offset+=6;
3082
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_T_Comp, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3083
52
        l_offset+=4;
3084
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_T_Tdrop, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3085
52
        l_offset+=4;
3086
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Soft_Slope, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3087
52
        l_offset+=6;
3088
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Add_Intercept, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3089
52
        l_offset+=6;
3090
52
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Drop_Intercept, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3091
52
        l_offset+=6;
3092
52
    }
3093
3094
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Extra_Parms_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3095
156
    extraParmsIncl = tvb_get_bits8(tvb,l_offset, 1);
3096
156
    l_offset+=1;
3097
156
    if(extraParmsIncl == 1)
3098
56
    {
3099
56
        item1 = proto_tree_add_item(subtree, hf_cdma2k_Extra_Parms, tvb, (l_offset/8),1, ENC_NA);
3100
56
        subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
3101
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Packet_Zone_Id, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3102
56
        pacZoneId = tvb_get_bits8(tvb,l_offset, 8);
3103
56
        l_offset+=8;
3104
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Frame_Offset, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3105
56
        l_offset+=4;
3106
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Private_Lcm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3107
56
        l_offset+=1;
3108
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Reset_L2, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3109
56
        l_offset+=1;
3110
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Reset_Fpc, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3111
56
        l_offset+=1;
3112
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Encrypt_Mode, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3113
56
        encryptMode = tvb_get_bits8(tvb,l_offset, 2);
3114
56
        l_offset+=2;
3115
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Nom_Pwr_Ext, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3116
56
        l_offset+=1;
3117
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Nom_Pwr, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3118
56
        l_offset+=4;
3119
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Rlgain_Traffic_Pilot, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3120
56
        l_offset+=6;
3121
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Default_Rlag, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3122
56
        l_offset+=1;
3123
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Preamble, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3124
56
        l_offset+=3;
3125
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Band_Class, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3126
56
        l_offset+=5;
3127
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Cdma_Freq, tvb, l_offset, 11, ENC_BIG_ENDIAN);
3128
56
        l_offset+=11;
3129
3130
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Return_If_Handoff_Fail, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3131
56
        returnIfHandoffFail = tvb_get_bits8(tvb,l_offset, 1);
3132
56
        l_offset+=1;
3133
56
        if(returnIfHandoffFail == 1)
3134
23
        {
3135
23
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Complete_Search, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3136
23
            l_offset+=1;
3137
23
        }
3138
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Periodic_Search, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3139
56
        l_offset+=1;
3140
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Scr_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3141
56
        scrIncl = tvb_get_bits8(tvb,l_offset, 1);
3142
56
        l_offset+=1;
3143
3144
56
        if(scrIncl == 1)
3145
18
        {
3146
18
            item2 = proto_tree_add_item(subtree1, hf_cdma2k_Scr, tvb, (l_offset/8),1, ENC_NA);
3147
18
            subtree2 = proto_item_add_subtree(item2, ett_cdma2k_subtree2);
3148
18
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Serv_Con_Seq, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3149
18
            l_offset+=3;
3150
18
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Record_Type, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3151
18
            l_offset+=8;
3152
18
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Record_Len, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3153
18
            recLen = tvb_get_bits8(tvb,l_offset, 8);
3154
18
            l_offset+=8;
3155
18
            item3 = proto_tree_add_item(subtree2,hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),recLen+1, ENC_NA);
3156
2.64k
            while(recLen>0)
3157
2.62k
            {
3158
2.62k
                proto_item_append_text(item3," 0x%02x",tvb_get_bits8(tvb,l_offset, 8));
3159
2.62k
                l_offset+=8;
3160
2.62k
                recLen-=1;
3161
2.62k
            }
3162
18
        } /* scrIncl */
3163
3164
56
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Nnscr_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3165
56
        nnscrIncl = tvb_get_bits8(tvb,l_offset, 1);
3166
56
        l_offset+=1;
3167
3168
56
        if(nnscrIncl == 1)
3169
26
        {
3170
26
            item2 = proto_tree_add_item(subtree1, hf_cdma2k_Nnscr, tvb, (l_offset/8),1, ENC_NA);
3171
26
            subtree2 = proto_item_add_subtree(item2, ett_cdma2k_subtree2);
3172
26
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Record_Type, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3173
26
            l_offset+=8;
3174
26
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Record_Len, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3175
26
            recLen = tvb_get_bits8(tvb,l_offset, 8);
3176
26
            l_offset+=8;
3177
26
            item3 = proto_tree_add_item(subtree2,hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),recLen, ENC_NA);
3178
2.05k
            while(recLen>0)
3179
2.02k
            {
3180
2.02k
                proto_item_append_text(item3," 0x%02x",tvb_get_bits8(tvb,l_offset, 8));
3181
2.02k
                l_offset+=8;
3182
2.02k
                recLen-=1;
3183
2.02k
            }
3184
26
        } /* nnscrIncl */
3185
56
    } /* extraParmsIncl */
3186
3187
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Pwr_Cntl_Step, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3188
156
    pwrCntlStepIncl = tvb_get_bits8(tvb,l_offset, 1);
3189
156
    l_offset+=1;
3190
156
    if(pwrCntlStepIncl == 1)
3191
40
    {
3192
40
        proto_tree_add_bits_item(subtree, hf_cdma2k_Pwr_Cntl_Step, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3193
40
        l_offset+=3;
3194
40
    }
3195
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Clear_Retry_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3196
156
    l_offset+=1;
3197
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Sch_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3198
156
    schIncl = tvb_get_bits8(tvb,l_offset, 1);
3199
156
    l_offset+=1;
3200
3201
156
    if(schIncl == 1)
3202
63
    {
3203
63
        item1 = proto_tree_add_item(subtree, hf_cdma2k_Sch, tvb, (l_offset/8),7, ENC_NA);
3204
63
        subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3205
63
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_For_Assign, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3206
63
        recLen = tvb_get_bits8(tvb,l_offset, 2);
3207
63
        numForAssign = recLen;
3208
63
        l_offset+=2;
3209
3210
140
        for(loop = 1; loop <= recLen; loop++)
3211
77
        {
3212
77
            item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_For_Assign, tvb, (l_offset/8),3, ENC_NA);
3213
77
            proto_item_append_text(item2, " : [%02d]",loop);
3214
77
            subtree2 = proto_item_add_subtree(item2, ett_cdma2k_subtree2);
3215
77
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Id, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3216
77
            l_offset+=1;
3217
77
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Duration, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3218
77
            l_offset+=4;
3219
77
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Start_Time_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3220
77
            startTimeIncl = tvb_get_bits8(tvb,l_offset, 1);
3221
77
            l_offset+=1;
3222
77
            if(startTimeIncl == 1)
3223
46
            {
3224
46
                proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Start_Time, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3225
46
                l_offset+=5;
3226
46
            }
3227
77
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Sccl_Index, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3228
77
            l_offset+=4;
3229
77
        }
3230
3231
63
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Rev_Assign, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3232
63
        recLen = tvb_get_bits8(tvb,l_offset, 2);
3233
63
        l_offset+=2;
3234
3235
182
        for(loop = 1; loop <= recLen; loop++)
3236
119
        {
3237
119
            item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_Rev_Assign, tvb, (l_offset/8),3, ENC_NA);
3238
119
            proto_item_append_text(item2, " : [%02d]",loop);
3239
119
            subtree2 = proto_item_add_subtree(item2, ett_cdma2k_subtree2);
3240
119
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Id, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3241
119
            l_offset+=1;
3242
119
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Duration, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3243
119
            l_offset+=4;
3244
119
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Start_Time_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3245
119
            startTimeIncl = tvb_get_bits8(tvb,l_offset, 1);
3246
119
            l_offset+=1;
3247
119
            if(startTimeIncl == 1)
3248
46
            {
3249
46
                proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Start_Time, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3250
46
                l_offset+=5;
3251
46
            }
3252
119
            proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Num_Bits_Idx, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3253
119
            l_offset+=4;
3254
119
        }
3255
63
    } /* schIncl */
3256
3257
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Fpc_Subchain_Gain, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3258
156
    l_offset+=5;
3259
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Pc_Time, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3260
156
    usePcTime = tvb_get_bits8(tvb,l_offset, 1);
3261
156
    l_offset+=1;
3262
156
    if(usePcTime == 1)
3263
45
    {
3264
45
        proto_tree_add_bits_item(subtree, hf_cdma2k_Pc_Action_Time, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3265
45
        l_offset+=6;
3266
45
    }
3267
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Ch_Ind, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3268
156
    chInd = tvb_get_bits8(tvb,l_offset, 3);
3269
156
    l_offset+=3;
3270
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Active_Set_Rec_Len, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3271
156
    recLen = tvb_get_bits8(tvb,l_offset, 8);
3272
156
    l_offset+=8;
3273
3274
156
    if((recLen > 0) && (chInd != 0))
3275
109
    {
3276
109
        item1 = proto_tree_add_item(subtree, hf_cdma2k_Active_Set_Rec_Fields, tvb, (l_offset/8),recLen, ENC_NA);
3277
109
        subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3278
109
        cdma2k_message_ACTIVE_SET_RECORD_FIELDS(item1, tvb, subtree1, &l_offset,  chInd, schIncl);
3279
109
    }
3280
47
    else
3281
47
    {
3282
47
        l_offset+=recLen*8;
3283
47
    }
3284
3285
156
    if((chInd != 2) && (chInd != 6))
3286
124
    {
3287
124
        proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Fch_Gating_Mode, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3288
124
        gatMode = tvb_get_bits8(tvb,l_offset, 1);
3289
124
        l_offset+=1;
3290
124
    }
3291
156
    if(gatMode == 1)
3292
32
    {
3293
32
        proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Pwr_Cntl_Delay_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3294
32
        pwrCntlDelayIncl = tvb_get_bits8(tvb,l_offset, 1);
3295
32
        l_offset+=1;
3296
32
        if(pwrCntlDelayIncl == 1)
3297
15
        {
3298
15
            proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Pwr_Cntl_Delay, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3299
15
            l_offset+=2;
3300
15
        }
3301
32
    }
3302
156
    if(encryptMode == 2 || encryptMode == 3)
3303
39
    {
3304
39
        if(encryptMode == 3)
3305
21
        {
3306
21
            proto_tree_add_bits_item(subtree, hf_cdma2k_D_Sig_Encrypt_Mode, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3307
21
            l_offset+=3;
3308
21
        }
3309
39
        proto_tree_add_bits_item(subtree, hf_cdma2k_Enc_Key_Size, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3310
39
        l_offset+=3;
3311
39
    }
3312
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_3xfl_1xrl_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3313
156
    linkIncl = tvb_get_bits8(tvb,l_offset, 1);
3314
156
    l_offset+=1;
3315
156
    if(linkIncl == 1)
3316
44
    {
3317
44
        proto_tree_add_bits_item(subtree, hf_cdma2k_1xrl_Freq_Offset, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3318
44
        l_offset+=2;
3319
44
    }
3320
156
    if(scrIncl == 1 || nnscrIncl == 1 || pRev >= 11)
3321
147
    {
3322
147
        proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3323
147
        syncIdIncl = tvb_get_bits8(tvb,l_offset, 1);
3324
147
        l_offset+=1;
3325
147
        if(syncIdIncl == 1)
3326
31
        {
3327
31
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3328
31
            syncIdLen = tvb_get_bits8(tvb,l_offset, 4);
3329
31
            l_offset+=4;
3330
31
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Sync_Id, tvb, l_offset/8,syncIdLen, ENC_NA);
3331
264
            while(syncIdLen > 0)
3332
233
            {
3333
233
                proto_item_append_text(item1, " %02x",tvb_get_bits8(tvb,l_offset, 8));
3334
233
                l_offset+=8;
3335
233
                syncIdLen--;
3336
233
            }
3337
31
        }
3338
147
    }
3339
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Cc_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3340
156
    ccInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
3341
156
    l_offset+=1;
3342
156
    if(ccInfoIncl == 1)
3343
36
    {
3344
36
        proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Calls_Assign, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3345
36
        noCallAssign = tvb_get_bits8(tvb,l_offset, 8);
3346
36
        l_offset+=8;
3347
2.94k
        for(loop = 1; loop <= noCallAssign; loop++)
3348
2.90k
        {
3349
2.90k
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Calls_Assign, tvb, l_offset/8,noCallAssign*2, ENC_NA);
3350
2.90k
            proto_item_append_text(item1, " : [%02d]",loop);
3351
2.90k
            subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3352
2.90k
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Con_Ref, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3353
2.90k
            l_offset+=8;
3354
2.90k
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Response_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3355
2.90k
            resInd = tvb_get_bits8(tvb,l_offset, 1);
3356
2.90k
            l_offset+=1;
3357
2.90k
            if(resInd == 1)
3358
1.21k
            {
3359
1.21k
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Tag, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3360
1.21k
                l_offset+=4;
3361
1.21k
            }
3362
1.69k
            else
3363
1.69k
            {
3364
1.69k
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Bypass_Alert_Answer, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3365
1.69k
                l_offset+=1;
3366
1.69k
            }
3367
2.90k
        }
3368
36
    }
3369
3370
156
    proto_tree_add_bits_item(subtree, hf_cdma2k_Cs_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3371
156
    csSup = tvb_get_bits8(tvb,l_offset, 1);
3372
156
    l_offset+=1;
3373
3374
156
    if(msgType == 53)
3375
22
    {
3376
22
        if(pRev == 6)
3377
1
        {
3378
1
            if(encryptMode == 2 && scrIncl ==1)
3379
0
            {
3380
0
                proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 13, ENC_BIG_ENDIAN);
3381
0
                l_offset+=13;
3382
0
            }
3383
1
            else if(encryptMode == 2 && scrIncl !=1 && nnscrIncl == 1)
3384
0
            {
3385
0
                proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 12, ENC_BIG_ENDIAN);
3386
0
                l_offset+=12;
3387
0
            }
3388
1
            else if(encryptMode == 2 && scrIncl !=1 && nnscrIncl != 1)
3389
1
            {
3390
1
                proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 11, ENC_BIG_ENDIAN);
3391
1
                l_offset+=11;
3392
1
            }
3393
0
            else if(encryptMode != 2 && scrIncl ==1)
3394
0
            {
3395
0
                proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 10, ENC_BIG_ENDIAN);
3396
0
                l_offset+=10;
3397
0
            }
3398
0
            else if(encryptMode != 2 && scrIncl !=1 && nnscrIncl == 1)
3399
0
            {
3400
0
                proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 9, ENC_BIG_ENDIAN);
3401
0
                l_offset+=9;
3402
0
            }
3403
0
            else if(encryptMode != 2 && scrIncl !=1 && nnscrIncl != 1)
3404
0
            {
3405
0
                proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3406
0
                l_offset+=8;
3407
0
            }
3408
1
        }
3409
21
        else if(pRev == 7 || pRev == 8)
3410
0
        {
3411
0
            proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3412
0
            l_offset+=6;
3413
0
        }
3414
3415
22
        proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_Type_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3416
22
        plcmIncl = tvb_get_bits8(tvb,l_offset, 1);
3417
22
        l_offset+=1;
3418
22
        if(plcmIncl == 1)
3419
1
        {
3420
1
            proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_Type, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3421
1
            plcmType = tvb_get_bits8(tvb,l_offset, 4);
3422
1
            l_offset+=4;
3423
1
            if(plcmType == 1)
3424
0
            {
3425
0
                proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_39, tvb, l_offset, 39, ENC_BIG_ENDIAN);
3426
0
                l_offset+=39;
3427
0
            }
3428
1
        }
3429
22
    }
3430
3431
156
    if(pRev > 7 && msgType == 34)
3432
121
    {
3433
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Chm_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3434
121
        l_offset+=1;
3435
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Cdma_Off_Time_Rep_Sup_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3436
121
        cdmaRepSup = tvb_get_bits8(tvb,l_offset, 1);
3437
121
        l_offset+=1;
3438
121
        if(cdmaRepSup == 1)
3439
37
        {
3440
37
            proto_tree_add_bits_item(subtree, hf_cdma2k_Cdma_Off_Time_Rep_Threshold_Unit, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3441
37
            l_offset+=1;
3442
37
            proto_tree_add_bits_item(subtree, hf_cdma2k_Cdma_Off_Time_Rep_Threshold, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3443
37
            l_offset+=3;
3444
37
        }
3445
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Release_To_Idle_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3446
121
        l_offset+=1;
3447
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Msg_Integrity_Sup, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3448
121
        l_offset+=1;
3449
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Gen_2g_Key, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3450
121
        l_offset+=1;
3451
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Register_In_Idle, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3452
121
        l_offset+=1;
3453
3454
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_Type_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3455
121
        plcmIncl = tvb_get_bits8(tvb,l_offset, 1);
3456
121
        l_offset+=1;
3457
121
        if(plcmIncl == 1)
3458
28
        {
3459
28
            proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_Type, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3460
28
            l_offset+=4;
3461
28
            proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_39, tvb, l_offset, 39, ENC_BIG_ENDIAN);
3462
28
            l_offset+=39;
3463
28
        }
3464
121
        if(searchIncl == 1)
3465
38
        {
3466
38
            proto_tree_add_bits_item(subtree, hf_cdma2k_T_Tdrop_Range_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3467
38
            dropTRangeIncl = tvb_get_bits8(tvb,l_offset, 1);
3468
38
            l_offset+=1;
3469
38
            if(dropTRangeIncl == 1)
3470
8
            {
3471
8
                proto_tree_add_bits_item(subtree, hf_cdma2k_T_Tdrop_Range, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3472
8
                l_offset+=4;
3473
8
            }
3474
38
        }
3475
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_For_Pdch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3476
121
        fwdPDChSup = tvb_get_bits8(tvb,l_offset, 1);
3477
121
        l_offset+=1;
3478
121
        if(fwdPDChSup == 1)
3479
36
        {
3480
36
            proto_tree_add_bits_item(subtree, hf_cdma2k_Pdch_Chm_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3481
36
            l_offset+=1;
3482
36
        }
3483
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Pilot_Info_Req_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3484
121
        l_offset+=1;
3485
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Enc_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3486
121
        encIncl = tvb_get_bits8(tvb,l_offset, 1);
3487
121
        l_offset+=1;
3488
121
        if(encIncl == 1)
3489
36
        {
3490
36
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Encrypt_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3491
36
            l_offset+=8;
3492
36
            proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3493
36
            l_offset+=8;
3494
36
        }
3495
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Sync_Id, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3496
121
        l_offset+=1;
3497
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Sid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3498
121
        sidIncl = tvb_get_bits8(tvb,l_offset, 1);
3499
121
        l_offset+=1;
3500
121
        if(sidIncl == 1)
3501
35
        {
3502
35
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sid, tvb, l_offset, 15, ENC_BIG_ENDIAN);
3503
35
            l_offset+=15;
3504
35
        }
3505
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Nid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3506
121
        nidIncl = tvb_get_bits8(tvb,l_offset, 1);
3507
121
        l_offset+=1;
3508
121
        if(nidIncl == 1)
3509
38
        {
3510
38
            proto_tree_add_bits_item(subtree, hf_cdma2k_Nid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
3511
38
            l_offset+=16;
3512
38
        }
3513
3514
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Sdb_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3515
121
        l_offset+=1;
3516
121
        if(csSup== 1)
3517
20
        {
3518
20
            proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_Qos, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3519
20
            l_offset+=1;
3520
20
        }
3521
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Ms_Init_Pos_Loc_Sup_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3522
121
        l_offset+=1;
3523
121
    }
3524
3525
156
    if(pRev > 9 && msgType == 34)
3526
121
    {
3527
121
        if(fwdPDChSup == 1)
3528
36
        {
3529
36
            proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Pdch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3530
36
            l_offset+=1;
3531
36
        }
3532
121
        if(pacZoneId != 0)
3533
120
        {
3534
120
            proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Enabled, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3535
120
            pzHysEnabled = tvb_get_bits8(tvb,l_offset, 1);
3536
120
            l_offset+=1;
3537
120
            if(pzHysEnabled == 1)
3538
39
            {
3539
39
                proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3540
39
                pzHysInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
3541
39
                l_offset+=1;
3542
39
                if(pzHysInfoIncl == 1)
3543
18
                {
3544
18
                    proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_List_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3545
18
                    l_offset+=4;
3546
18
                    proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Act_Timer, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3547
18
                    l_offset+=8;
3548
18
                    proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Timer_Mul, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3549
18
                    l_offset+=3;
3550
18
                    proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Timer_Exp, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3551
18
                    l_offset+=5;
3552
18
                }
3553
39
            }
3554
120
        }
3555
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Bcmc_On_Traffic_Sup, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3556
121
        bcmcTchSup = tvb_get_bits8(tvb,l_offset, 1);
3557
121
        l_offset+=1;
3558
121
        if(bcmcTchSup == 1)
3559
34
        {
3560
34
            proto_tree_add_bits_item(subtree, hf_cdma2k_Auto_Re_Traffic_Allowed_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3561
34
            l_offset+=1;
3562
34
        }
3563
121
        if(bcmcTchSup == 1 || numForAssign == 1)
3564
38
        {
3565
38
            proto_tree_add_bits_item(subtree, hf_cdma2k_Sch_Bcmc_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3566
38
            schBcmc = tvb_get_bits8(tvb,l_offset, 1);
3567
38
            l_offset+=1;
3568
38
        }
3569
121
        if(schBcmc == 1)
3570
15
        {
3571
15
            proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Sch_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3572
15
            addPlcmSchIncl = tvb_get_bits8(tvb,l_offset, 1);
3573
15
            l_offset+=1;
3574
15
            if(addPlcmSchIncl == 1)
3575
7
            {
3576
7
                proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Sch_Type, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3577
7
                addPlcmSchType = tvb_get_bits8(tvb,l_offset, 1);
3578
7
                l_offset+=1;
3579
7
                if(addPlcmSchType == 1)
3580
6
                {
3581
6
                    proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Sch_35, tvb, l_offset, 35, ENC_BIG_ENDIAN);
3582
6
                    l_offset+=35;
3583
6
                }
3584
7
            }
3585
2.22k
            for(loop =1; loop <= numForAssign; loop++)
3586
2.21k
            {
3587
2.21k
                item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Sch_Bcmc, tvb, l_offset/8,numForAssign*2, ENC_NA);
3588
2.21k
                proto_item_append_text(item1, " : [%02d]",loop);
3589
2.21k
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3590
2.21k
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Use_Add_Plcm_For_Sch, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3591
2.21k
                l_offset+=1;
3592
2.21k
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Fsch_Outercode_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3593
2.21k
                fSchOuterCodeIncl = tvb_get_bits8(tvb,l_offset, 1);
3594
2.21k
                l_offset+=1;
3595
2.21k
                if(fSchOuterCodeIncl == 1)
3596
451
                {
3597
451
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Fsch_Outercode_Rate, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3598
451
                    l_offset+=3;
3599
451
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Fsch_Outercode_Offset, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3600
451
                    l_offset+=6;
3601
451
                }
3602
2.21k
            }
3603
15
        }
3604
121
        if(csSup== 1)
3605
17
        {
3606
17
            proto_tree_add_bits_item(subtree, hf_cdma2k_Max_Add_Serv_Instance, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3607
17
            l_offset+=3;
3608
17
        }
3609
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Ch_Cfg_Rrm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3610
121
        l_offset+=1;
3611
121
        proto_tree_add_bits_item(subtree, hf_cdma2k_Tx_Pwr_Limit_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3612
121
        txPwrIncl = tvb_get_bits8(tvb,l_offset, 1);
3613
121
        l_offset+=1;
3614
121
        if(txPwrIncl == 1)
3615
33
        {
3616
33
            proto_tree_add_bits_item(subtree, hf_cdma2k_Tx_Pwr_Limit_Default, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3617
33
            txPwrDflt = tvb_get_bits8(tvb,l_offset, 1);
3618
33
            l_offset+=1;
3619
33
            if(txPwrDflt == 0)
3620
23
            {
3621
23
                proto_tree_add_bits_item(subtree, hf_cdma2k_Tx_Pwr_Limit, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3622
23
                l_offset+=6;
3623
23
            }
3624
33
        }
3625
121
    }
3626
3627
156
    if(l_offset%8 == 0)
3628
22
    {
3629
22
        *offset = (l_offset/8);
3630
22
    }
3631
134
    else
3632
134
    {
3633
134
        proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
3634
134
        *offset = (l_offset/8) + 1;
3635
134
    }
3636
156
}
3637
3638
3639
/* Helper function to decode Alert With Info Message Parameters */
3640
static void cdma2k_message_ALERT_WITH_INFO(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
3641
73
{
3642
73
    uint16_t recType = -1, recLen = -1, extBit = -1, numGrps = -1;
3643
73
    uint16_t polIncl = -1, inc = -1;
3644
73
    proto_tree *subtree = NULL, *subtree1 = NULL;
3645
73
    proto_item *item1 = NULL, *item2 = NULL;
3646
3647
73
    item = proto_tree_add_item(tree,hf_cdma2k_AlertWithInfoMsg, tvb, *offset,-1, ENC_NA);
3648
73
    subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
3649
3650
73
    inc = 1;
3651
6.93k
    while(tvb_captured_length_remaining(tvb,*offset) != 0 )
3652
6.93k
    {
3653
6.93k
        item1 = proto_tree_add_item(subtree, hf_cdma2k_Info_Rec, tvb, *offset,1, ENC_NA);
3654
6.93k
        proto_item_append_text(item1," : [%02d]", inc);
3655
6.93k
        inc++;
3656
6.93k
        subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3657
6.93k
        proto_tree_add_item(subtree1, hf_cdma2k_Record_Type, tvb, *offset,1, ENC_BIG_ENDIAN);
3658
6.93k
        recType = tvb_get_bits8(tvb,*offset*8,8);
3659
6.93k
        *offset+=1;
3660
6.93k
        proto_tree_add_item(subtree1, hf_cdma2k_Record_Len, tvb, *offset,1, ENC_BIG_ENDIAN);
3661
6.93k
        recLen = tvb_get_bits8(tvb,*offset*8,8);
3662
6.93k
        *offset+=1;
3663
6.93k
        item1 = proto_tree_add_item(subtree1, hf_cdma2k_Type_Specific_Fields, tvb, *offset,recLen, ENC_NA);
3664
3665
6.93k
        switch(recType)
3666
6.93k
        {
3667
116
            case 1:
3668
116
            {
3669
116
                proto_item_append_text(item1," DISPLAY");
3670
116
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3671
116
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen, ENC_NA);
3672
116
                proto_item_append_text(item2, " - ASCII Values Of Characters : ");
3673
2.85k
                while(recLen > 0)
3674
2.74k
                {
3675
2.74k
                    proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3676
2.74k
                    *offset+=1;
3677
2.74k
                    recLen-=1;
3678
2.74k
                }
3679
116
                break;
3680
0
            }
3681
3682
168
            case 2:
3683
168
            {
3684
168
                proto_item_append_text(item1," CALLED PARTY NUMBER");
3685
168
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3686
168
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Type, tvb, *offset*8,3, ENC_BIG_ENDIAN);
3687
168
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Plan, tvb, *offset*8+3,4, ENC_BIG_ENDIAN);
3688
168
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen, ENC_NA);
3689
168
                proto_item_append_text(item2, " - ASCII Values Of Called Party Number : ");
3690
4.80k
                while(recLen > 1)
3691
4.63k
                {
3692
4.63k
                    proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8+7,8));
3693
4.63k
                    *offset+=1;
3694
4.63k
                    recLen-=1;
3695
4.63k
                }
3696
168
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+7,1, ENC_BIG_ENDIAN);
3697
168
                *offset+=1;
3698
168
                break;
3699
0
            }
3700
3701
52
            case 3:
3702
52
            {
3703
52
                proto_item_append_text(item1," CALLING PARTY NUMBER");
3704
52
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3705
52
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Type, tvb, *offset*8,3, ENC_BIG_ENDIAN);
3706
52
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Plan, tvb, *offset*8+3,4, ENC_BIG_ENDIAN);
3707
52
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Pres_Indicator, tvb, *offset*8+7,2, ENC_BIG_ENDIAN);
3708
52
                *offset+=1;
3709
52
                recLen-=1;
3710
52
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Scr_Indicator, tvb, *offset*8+1,2, ENC_BIG_ENDIAN);
3711
52
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen, ENC_NA);
3712
52
                proto_item_append_text(item2, " - ASCII Values Of Calling Party Number : ");
3713
2.90k
                while(recLen > 1)
3714
2.85k
                {
3715
2.85k
                    proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8+3,8));
3716
2.85k
                    *offset+=1;
3717
2.85k
                    recLen-=1;
3718
2.85k
                }
3719
52
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+3,5, ENC_BIG_ENDIAN);
3720
52
                *offset+=1;
3721
52
                break;
3722
0
            }
3723
3724
64
            case 5:
3725
64
            {
3726
64
                proto_item_append_text(item1," SIGNAL");
3727
64
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3728
64
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Signal_Type, tvb, *offset*8,2, ENC_BIG_ENDIAN);
3729
64
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Alert_Pitch, tvb, *offset*8+2,2, ENC_BIG_ENDIAN);
3730
64
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Signal, tvb, *offset*8+4,6, ENC_BIG_ENDIAN);
3731
64
                *offset+=1;
3732
64
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+2,6, ENC_BIG_ENDIAN);
3733
64
                *offset+=1;
3734
64
                break;
3735
0
            }
3736
3737
209
            case 6:
3738
209
            {
3739
209
                proto_item_append_text(item1," MESSAGE WAITING");
3740
209
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3741
209
                proto_tree_add_item(subtree1, hf_cdma2k_Msg_Count, tvb, *offset,1, ENC_BIG_ENDIAN);
3742
209
                *offset+=1;
3743
209
                break;
3744
0
            }
3745
3746
80
            case 8:
3747
80
            {
3748
80
                proto_item_append_text(item1," CALLED PARTY SUBADDRESS");
3749
80
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3750
80
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3751
80
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Subaddress_Type, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3752
80
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Odd_Even_Ind, tvb, *offset*8+4,1, ENC_BIG_ENDIAN);
3753
80
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+5,3, ENC_BIG_ENDIAN);
3754
80
                *offset+=1;
3755
80
                recLen-=1;
3756
80
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen-1, ENC_NA);
3757
80
                proto_item_append_text(item2, " - ASCII Values Of Called Party Subaddress : ");
3758
3.23k
                while(recLen > 1)
3759
3.15k
                {
3760
3.15k
                    proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3761
3.15k
                    *offset+=1;
3762
3.15k
                    recLen-=1;
3763
3.15k
                }
3764
80
                break;
3765
0
            }
3766
3767
82
            case 9:
3768
82
            {
3769
82
                proto_item_append_text(item1," CALLING PARTY SUBADDRESS");
3770
82
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3771
82
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3772
82
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Subaddress_Type, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3773
82
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Odd_Even_Ind, tvb, *offset*8+4,1, ENC_BIG_ENDIAN);
3774
82
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+5,3, ENC_BIG_ENDIAN);
3775
82
                *offset+=1;
3776
82
                recLen-=1;
3777
82
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen-1, ENC_NA);
3778
82
                proto_item_append_text(item2, " - ASCII Values Of Calling Party Subaddress : ");
3779
1.80k
                while(recLen > 1)
3780
1.72k
                {
3781
1.72k
                    proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3782
1.72k
                    *offset+=1;
3783
1.72k
                    recLen-=1;
3784
1.72k
                }
3785
82
                break;
3786
0
            }
3787
3788
24
            case 11:
3789
24
            {
3790
24
                proto_item_append_text(item1," REDIRECTING NUMBER");
3791
24
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3792
24
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3793
24
                extBit = tvb_get_bits8(tvb,*offset*8,1);
3794
24
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Type, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3795
24
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Plan, tvb, *offset*8+4,4, ENC_BIG_ENDIAN);
3796
24
                *offset+=1;
3797
24
                recLen-=1;
3798
24
                if(extBit == 0)
3799
18
                {
3800
18
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3801
18
                    extBit = tvb_get_bits8(tvb,*offset*8,1);
3802
18
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Pres_Indicator, tvb, *offset*8+1,2, ENC_BIG_ENDIAN);
3803
18
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+3,3, ENC_BIG_ENDIAN);
3804
18
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Scr_Indicator, tvb, *offset*8+6,2, ENC_BIG_ENDIAN);
3805
18
                    *offset+=1;
3806
18
                    recLen-=1;
3807
18
                }
3808
24
                if(extBit == 0)
3809
16
                {
3810
16
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3811
16
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3812
16
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Redirection_Reason, tvb, *offset*8+4,4, ENC_BIG_ENDIAN);
3813
16
                    *offset+=1;
3814
16
                    recLen-=1;
3815
16
                }
3816
24
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen-1, ENC_NA);
3817
24
                proto_item_append_text(item2, " - ASCII Values Of Redirecting Number : ");
3818
613
                while(recLen > 1)
3819
589
                {
3820
589
                    proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3821
589
                    *offset+=1;
3822
589
                    recLen-=1;
3823
589
                }
3824
24
                break;
3825
0
            }
3826
3827
28
            case 12:
3828
28
            {
3829
28
                proto_item_append_text(item1," REDIRECTING SUBADDRESS");
3830
28
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3831
28
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3832
28
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Subaddress_Type, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3833
28
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Odd_Even_Ind, tvb, *offset*8+4,1, ENC_BIG_ENDIAN);
3834
28
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+5,3, ENC_BIG_ENDIAN);
3835
28
                *offset+=1;
3836
28
                recLen-=1;
3837
28
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen-1, ENC_NA);
3838
28
                proto_item_append_text(item2, " - ASCII Values Of Redirecting Subaddress : ");
3839
390
                while(recLen > 1)
3840
362
                {
3841
362
                    proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3842
362
                    *offset+=1;
3843
362
                    recLen-=1;
3844
362
                }
3845
28
                break;
3846
0
            }
3847
3848
95
            case 13:
3849
95
            {
3850
95
                proto_item_append_text(item1," METER PULSES");
3851
95
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3852
95
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Pulse_Freq, tvb, *offset*8,11, ENC_BIG_ENDIAN);
3853
95
                *offset+=1;
3854
95
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Pulse_On_Time, tvb, *offset*8+3,8, ENC_BIG_ENDIAN);
3855
95
                *offset+=1;
3856
95
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Pulse_Off_Time, tvb, *offset*8+3,8, ENC_BIG_ENDIAN);
3857
95
                *offset+=1;
3858
95
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Pulse_Count, tvb, *offset*8+3,4, ENC_BIG_ENDIAN);
3859
95
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+7,1, ENC_BIG_ENDIAN);
3860
95
                *offset+=1;
3861
95
                break;
3862
0
            }
3863
3864
91
            case 14:
3865
91
            {
3866
91
                proto_item_append_text(item1," PARAMETRIC ALERTING");
3867
91
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3868
91
                proto_tree_add_item(subtree1, hf_cdma2k_Cadence_Count, tvb, *offset,1, ENC_BIG_ENDIAN);
3869
91
                *offset+=1;
3870
91
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Grps, tvb, *offset*8,4, ENC_BIG_ENDIAN);
3871
91
                numGrps = tvb_get_bits8(tvb,*offset*8,4);
3872
226
                while(numGrps > 0)
3873
135
                {
3874
135
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Amplitude, tvb, *offset*8+4,8, ENC_BIG_ENDIAN);
3875
135
                    *offset+=1;
3876
135
                    item2 = proto_tree_add_item(subtree1, hf_cdma2k_Freq, tvb, *offset,2, ENC_NA);
3877
135
                    proto_item_append_text(item2, " [01] : %02d", tvb_get_bits16(tvb,*offset*8+4,10, ENC_BIG_ENDIAN));
3878
135
                    *offset+=1;
3879
135
                    item2 = proto_tree_add_item(subtree1, hf_cdma2k_Freq, tvb, *offset,2, ENC_NA);
3880
135
                    proto_item_append_text(item2, " [02] : %02d", tvb_get_bits16(tvb,*offset*8+6,10, ENC_BIG_ENDIAN));
3881
135
                    *offset+=2;
3882
135
                    proto_tree_add_item(subtree1, hf_cdma2k_On_Time, tvb, *offset,1, ENC_BIG_ENDIAN);
3883
135
                    *offset+=1;
3884
135
                    proto_tree_add_item(subtree1, hf_cdma2k_Off_Time, tvb, *offset,1, ENC_BIG_ENDIAN);
3885
135
                    *offset+=1;
3886
135
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Repeat, tvb, *offset*8,4, ENC_BIG_ENDIAN);
3887
135
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Delay, tvb, *offset*8+4,8, ENC_BIG_ENDIAN);
3888
135
                    *offset+=1;
3889
135
                    numGrps-=1;
3890
135
                }
3891
91
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Cadence_Type, tvb, *offset*8+4,2, ENC_BIG_ENDIAN);
3892
91
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+6,2, ENC_BIG_ENDIAN);
3893
91
                *offset+=1;
3894
91
                break;
3895
0
            }
3896
3897
61
            case 15:
3898
61
            {
3899
61
                proto_item_append_text(item1," LINE CONTROL");
3900
61
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3901
61
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Polarity_Incl, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3902
61
                polIncl = tvb_get_bits8(tvb,*offset*8,1);
3903
61
                if(polIncl == 1)
3904
6
                {
3905
6
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Toggle_Mode, tvb, *offset*8+1,1, ENC_BIG_ENDIAN);
3906
6
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Reverse_Polarity, tvb, *offset*8+2,1, ENC_BIG_ENDIAN);
3907
6
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Pwr_Denial_Time, tvb, *offset*8+3,8, ENC_BIG_ENDIAN);
3908
6
                    *offset+=1;
3909
6
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+3,5, ENC_BIG_ENDIAN);
3910
6
                    *offset+=1;
3911
6
                }
3912
55
                else
3913
55
                {
3914
55
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Pwr_Denial_Time, tvb, *offset*8+1,8, ENC_BIG_ENDIAN);
3915
55
                    *offset+=1;
3916
55
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+1,7, ENC_BIG_ENDIAN);
3917
55
                    *offset+=1;
3918
55
                }
3919
61
                break;
3920
0
            }
3921
3922
34
            case 21:
3923
34
            {
3924
34
                proto_item_append_text(item1," CALL WAITING INDICATOR");
3925
34
                subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3926
34
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Call_Waiting_Ind, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3927
34
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+1,7, ENC_BIG_ENDIAN);
3928
34
                *offset+=1;
3929
34
                break;
3930
0
            }
3931
3932
5.80k
            default:
3933
5.80k
            {
3934
5.80k
                proto_item_append_text(item1," Invalid / Unsupported Record Type in Alert With Info Message");
3935
5.80k
                break;
3936
0
            }
3937
6.93k
        } /* Switch */
3938
6.93k
    } /* while */
3939
73
}
3940
3941
3942
/* Helper function to decode Active Set Record Field Parameters */
3943
static void cdma2k_message_ACTIVE_SET_RECORD_FIELDS(proto_item *item _U_, tvbuff_t *tvb, proto_tree *subtree, unsigned *l_offset, uint16_t chInd, uint16_t schIncl)
3944
109
{
3945
109
    uint16_t loop = -1, schLoop = 0, numForSch = -1, numRevSch = -1, pilotCnt = -1, srchOffsetIncl = -1;
3946
109
    uint16_t pilotInfoIncl = -1, recLen = -1, schCnt = 0, fchInfoIncl = -1, fchLowIncl = -1;
3947
109
    uint16_t fchHighIncl = -1, schInfoIncl = -1, schLowIncl = -1, ccshIncl = -1, ccshEncIncl = -1;
3948
109
    uint16_t pilotIncl = -1, schHighIncl = -1, dcchInfoIncl = -1, dcchLowIncl = -1, dcchHighIncl = -1;
3949
109
    uint16_t bcmcFunIncl = -1, addPlcmFchIncl = -1, cpcchInfoIncl = -1, addPlcmFchType = -1;
3950
109
    proto_tree *subtree1 = NULL, *subtree2 = NULL;
3951
109
    proto_item *item1 = NULL, *item2 = NULL;
3952
3953
109
    if(schIncl != 0)
3954
55
    {
3955
55
        proto_tree_add_bits_item(subtree, hf_cdma2k_Num_For_Sch, tvb, *l_offset, 5, ENC_BIG_ENDIAN);
3956
55
        numForSch = tvb_get_bits8(tvb,*l_offset, 5);
3957
55
        *l_offset+=5;
3958
55
        if(numForSch != 0)
3959
44
        {
3960
705
            for(loop = 1; loop <= numForSch; loop++)
3961
661
            {
3962
661
                item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_For_Sch, tvb, *l_offset/8,numForSch*2, ENC_NA);
3963
661
                proto_item_append_text(item1," : [%d]", loop);
3964
661
                subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
3965
661
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Sch_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
3966
661
                *l_offset+=1;
3967
661
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Sccl_Index, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
3968
661
                *l_offset+=4;
3969
661
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Sch_Num_Bits_Idx, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
3970
661
                *l_offset+=4;
3971
661
            }
3972
44
        }
3973
55
        proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Rev_Sch, tvb, *l_offset, 5, ENC_BIG_ENDIAN);
3974
55
        numRevSch = tvb_get_bits8(tvb,*l_offset, 5);
3975
55
        *l_offset+=5;
3976
55
        if(numRevSch != 0)
3977
45
        {
3978
679
            for(loop = 1; loop <= numRevSch; loop++)
3979
634
            {
3980
634
                item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Rev_Sch, tvb, *l_offset/8,numRevSch*1, ENC_NA);
3981
634
                proto_item_append_text(item1," : [%d]", loop);
3982
634
                subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
3983
634
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Sch_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
3984
634
                *l_offset+=1;
3985
634
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Walsh_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
3986
634
                *l_offset+=1;
3987
634
                proto_tree_add_bits_item(subtree1, hf_cdma2k_Sch_Num_Bits_Idx, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
3988
634
                *l_offset+=4;
3989
634
            }
3990
45
        }
3991
55
    } /* schIncl */
3992
3993
109
    proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Pilots, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
3994
109
    pilotCnt = tvb_get_bits8(tvb,*l_offset, 3);
3995
109
    *l_offset+=3;
3996
109
    proto_tree_add_bits_item(subtree, hf_cdma2k_Srch_Offset_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
3997
109
    srchOffsetIncl = tvb_get_bits8(tvb,*l_offset, 1);
3998
109
    *l_offset+=1;
3999
389
    for(loop = 1; loop <= pilotCnt; loop++)
4000
280
    {
4001
280
        item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Pilots, tvb, *l_offset/8,1, ENC_NA);
4002
280
        proto_item_append_text(item1," : [%d]", loop);
4003
280
        subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
4004
280
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Pilot_Pn, tvb, *l_offset, 9, ENC_BIG_ENDIAN);
4005
280
        *l_offset+=9;
4006
280
        if(srchOffsetIncl == 1)
4007
163
        {
4008
163
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Srch_Offset, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4009
163
            *l_offset+=3;
4010
163
        }
4011
280
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Add_Pilot_Rec_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4012
280
        pilotInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4013
280
        *l_offset+=1;
4014
280
        if(pilotInfoIncl == 1)
4015
117
        {
4016
117
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Pilot_Rec_Type, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4017
117
            *l_offset+=3;
4018
117
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Record_Len, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4019
117
            recLen = tvb_get_bits8(tvb,*l_offset, 3);
4020
117
            *l_offset+=3;
4021
117
            item2 = proto_tree_add_item(subtree1, hf_cdma2k_Type_Specific_Fields, tvb, (*l_offset/8),recLen+1, ENC_NA);
4022
602
            while(recLen > 0)
4023
485
            {
4024
485
                proto_item_append_text(item2," 0x%02x",tvb_get_bits8(tvb,*l_offset, 8));
4025
485
                *l_offset+=8;
4026
485
                recLen-=1;
4027
485
            }
4028
117
        }
4029
280
        proto_tree_add_bits_item(subtree1, hf_cdma2k_Pwr_Comb_Ind, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4030
280
        *l_offset+=1;
4031
280
        if(chInd == 5 || chInd == 7)
4032
157
        {
4033
157
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Fch, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4034
157
            *l_offset+=11;
4035
157
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Fch, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4036
157
            *l_offset+=2;
4037
157
        }
4038
280
        if(chInd == 2 || chInd == 6 || chInd == 7)
4039
157
        {
4040
157
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Dcch, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4041
157
            *l_offset+=11;
4042
157
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Dcch, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4043
157
            *l_offset+=2;
4044
157
        }
4045
4046
280
        if(schIncl != 0)
4047
110
        {
4048
110
            proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Sch, tvb, *l_offset, 5, ENC_BIG_ENDIAN);
4049
110
            schCnt = tvb_get_bits8(tvb,*l_offset, 5);
4050
110
            *l_offset+=5;
4051
1.41k
            for(schLoop = 1; schLoop <= schCnt; schLoop++)
4052
1.30k
            {
4053
1.30k
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_Sch, tvb, *l_offset/8,-1, ENC_NA);
4054
1.30k
                proto_item_append_text(item2," : [%d]", schLoop);
4055
1.30k
                subtree2 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
4056
1.30k
                proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4057
1.30k
                *l_offset+=1;
4058
1.30k
                proto_tree_add_bits_item(subtree2,hf_cdma2k_Sccl_Index, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
4059
1.30k
                *l_offset+=4;
4060
1.30k
                proto_tree_add_bits_item(subtree2,hf_cdma2k_Pilot_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4061
1.30k
                pilotIncl = tvb_get_bits8(tvb,*l_offset, 1);
4062
1.30k
                *l_offset+=1;
4063
1.30k
                if(pilotIncl == 1)
4064
630
                {
4065
630
                    proto_tree_add_bits_item(subtree2,hf_cdma2k_Code_Chan_Sch, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4066
630
                    *l_offset+=11;
4067
630
                    proto_tree_add_bits_item(subtree2,hf_cdma2k_Qof_Mask_Id_Sch, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4068
630
                    *l_offset+=2;
4069
630
                }
4070
1.30k
            }
4071
110
        } /* schIncl  */
4072
280
    } /* loop  */
4073
4074
109
    if(chInd == 5 || chInd == 7)
4075
42
    {
4076
42
        proto_tree_add_bits_item(subtree, hf_cdma2k_3xFch_Info_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4077
42
        fchInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4078
42
        *l_offset+=1;
4079
42
    }
4080
109
    if(chInd == 2 || chInd == 6 || chInd == 7)
4081
47
    {
4082
47
        proto_tree_add_bits_item(subtree, hf_cdma2k_3xDcch_Info_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4083
47
        dcchInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4084
47
        *l_offset+=1;
4085
47
    }
4086
109
    if((fchInfoIncl == 1) || (dcchInfoIncl == 1))
4087
29
    {
4088
124
        for(loop = 1; loop <= pilotCnt; loop++)
4089
95
        {
4090
95
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Pilots, tvb, *l_offset/8,-1, ENC_NA);
4091
95
            proto_item_append_text(item1," : [%d]", loop);
4092
95
            subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
4093
95
            if(fchInfoIncl == 1)
4094
43
            {
4095
43
                proto_tree_add_bits_item(subtree1, hf_cdma2k_3xFch_Low_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4096
43
                fchLowIncl = tvb_get_bits8(tvb,*l_offset, 1);
4097
43
                *l_offset+=1;
4098
43
                if(fchLowIncl == 1)
4099
19
                {
4100
19
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Fch_Low, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4101
19
                    *l_offset+=2;
4102
19
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Fch_Low, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4103
19
                    *l_offset+=11;
4104
19
                }
4105
43
                proto_tree_add_bits_item(subtree1, hf_cdma2k_3xFch_High_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4106
43
                fchHighIncl = tvb_get_bits8(tvb,*l_offset, 1);
4107
43
                *l_offset+=1;
4108
43
                if(fchHighIncl == 1)
4109
14
                {
4110
14
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Fch_High, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4111
14
                    *l_offset+=2;
4112
14
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Fch_High, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4113
14
                    *l_offset+=11;
4114
14
                }
4115
43
            }
4116
95
            if(dcchInfoIncl == 1)
4117
67
            {
4118
67
                proto_tree_add_bits_item(subtree1, hf_cdma2k_3xDcch_Low_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4119
67
                dcchLowIncl = tvb_get_bits8(tvb,*l_offset, 1);
4120
67
                *l_offset+=1;
4121
67
                if(dcchLowIncl == 1)
4122
21
                {
4123
21
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Dcch_Low, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4124
21
                    *l_offset+=2;
4125
21
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Dcch_Low, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4126
21
                    *l_offset+=11;
4127
21
                }
4128
67
                proto_tree_add_bits_item(subtree1, hf_cdma2k_3xDcch_High_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4129
67
                dcchHighIncl = tvb_get_bits8(tvb,*l_offset, 1);
4130
67
                *l_offset+=1;
4131
67
                if(dcchHighIncl == 1)
4132
29
                {
4133
29
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Dcch_High, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4134
29
                    *l_offset+=2;
4135
29
                    proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Dcch_High, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4136
29
                    *l_offset+=11;
4137
29
                }
4138
67
            }
4139
95
            if(schIncl != 0)
4140
49
            {
4141
49
                proto_tree_add_bits_item(subtree1, hf_cdma2k_3xSch_Info_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4142
49
                schInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4143
49
                *l_offset+=1;
4144
49
                if(schInfoIncl == 1)
4145
15
                {
4146
354
                    for(schLoop = 1; schLoop <= schCnt; schLoop++)
4147
339
                    {
4148
339
                        item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_Sch, tvb, *l_offset/8,-1, ENC_NA);
4149
339
                        proto_item_append_text(item2," : [%d]", schLoop);
4150
339
                        subtree2 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
4151
339
                        proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4152
339
                        *l_offset+=1;
4153
339
                        proto_tree_add_bits_item(subtree2,hf_cdma2k_3xSch_Low_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4154
339
                        schLowIncl = tvb_get_bits8(tvb,*l_offset, 1);
4155
339
                        *l_offset+=1;
4156
339
                        if(schLowIncl == 1)
4157
88
                        {
4158
88
                            proto_tree_add_bits_item(subtree2,hf_cdma2k_Qof_Mask_Id_Sch_Low, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4159
88
                            *l_offset+=2;
4160
88
                            proto_tree_add_bits_item(subtree2,hf_cdma2k_Code_Chan_Sch_Low, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4161
88
                            *l_offset+=11;
4162
88
                        }
4163
339
                        proto_tree_add_bits_item(subtree2,hf_cdma2k_3xSch_High_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4164
339
                        schHighIncl = tvb_get_bits8(tvb,*l_offset, 1);
4165
339
                        *l_offset+=1;
4166
339
                        if(schHighIncl == 1)
4167
113
                        {
4168
113
                            proto_tree_add_bits_item(subtree2,hf_cdma2k_Qof_Mask_Id_Sch_High, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4169
113
                            *l_offset+=2;
4170
113
                            proto_tree_add_bits_item(subtree2,hf_cdma2k_Code_Chan_Sch_High, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4171
113
                            *l_offset+=11;
4172
113
                        }
4173
339
                    } /* Sch loop */
4174
15
                } /* schInfoIncl */
4175
49
            } /* schIncl */
4176
95
        } /* Pilot loop */
4177
29
    } /* FchInfoIncl */
4178
4179
109
    proto_tree_add_bits_item(subtree, hf_cdma2k_Ccsh_Included, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4180
109
    ccshIncl = tvb_get_bits8(tvb,*l_offset, 1);
4181
109
    *l_offset+=1;
4182
109
    if(ccshIncl  == 1)
4183
18
    {
4184
18
        proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Ccsh_Encoder_Time, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4185
18
        ccshEncIncl = tvb_get_bits8(tvb,*l_offset, 1);
4186
18
        *l_offset+=1;
4187
18
        if(ccshEncIncl  == 1)
4188
10
        {
4189
10
            proto_tree_add_bits_item(subtree, hf_cdma2k_Ccsh_Encoder_Action_Time, tvb, *l_offset, 6, ENC_BIG_ENDIAN);
4190
10
            *l_offset+=6;
4191
10
        }
4192
72
        for(loop = 1; loop <= pilotCnt; loop++)
4193
54
        {
4194
54
            item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Pilots, tvb, *l_offset/8,-1, ENC_NA);
4195
54
            proto_item_append_text(item1," : [%d]", loop);
4196
54
            subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
4197
238
            for(schLoop = 1; schLoop <= schCnt; schLoop++)
4198
184
            {
4199
184
                item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_Sch, tvb, *l_offset/8,-1, ENC_NA);
4200
184
                proto_item_append_text(item2," : [%d]", schLoop);
4201
184
                subtree2 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
4202
184
                proto_tree_add_bits_item(subtree2,hf_cdma2k_Ccsh_Encoder_Type, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4203
184
                *l_offset+=1;
4204
184
            }
4205
54
        }
4206
18
    }
4207
4208
109
    if(chInd == 2 || chInd == 6 || chInd == 7)
4209
45
    {
4210
45
        proto_tree_add_bits_item(subtree, hf_cdma2k_Fundicated_Bcmc_Ind, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4211
45
        bcmcFunIncl = tvb_get_bits8(tvb,*l_offset, 1);
4212
45
        *l_offset+=1;
4213
45
        if(chInd == 7 && bcmcFunIncl == 1)
4214
5
        {
4215
5
            proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Fch_Assigned, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4216
5
            *l_offset+=1;
4217
5
            proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Fch_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4218
5
            addPlcmFchIncl = tvb_get_bits8(tvb,*l_offset, 1);
4219
5
            *l_offset+=1;
4220
5
            if(addPlcmFchIncl == 1)
4221
3
            {
4222
3
                proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Fch_Type, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4223
3
                addPlcmFchType = tvb_get_bits8(tvb,*l_offset, 1);
4224
3
                *l_offset+=1;
4225
3
                if(addPlcmFchType == 1)
4226
1
                {
4227
1
                    proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Fch_39, tvb, *l_offset, 39, ENC_BIG_ENDIAN);
4228
1
                    *l_offset+=39;
4229
1
                }
4230
3
            }
4231
5
            proto_tree_add_bits_item(subtree, hf_cdma2k_For_Cpcch_Info_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4232
5
            cpcchInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4233
5
            *l_offset+=1;
4234
5
        }
4235
4236
45
        if(((chInd == 2 || chInd == 6) && (bcmcFunIncl == 1)) || ((chInd == 7) && (cpcchInfoIncl == 1)))
4237
11
        {
4238
54
            for(loop = 1; loop <= pilotCnt; loop++)
4239
43
            {
4240
43
                item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Pilots, tvb, *l_offset/8,-1, ENC_NA);
4241
43
                proto_item_append_text(item1," : [%d]", loop);
4242
43
                subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
4243
43
                proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Cpcch_Walsh, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4244
43
                *l_offset+=7;
4245
43
                proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Cpcsch, tvb, *l_offset, 5, ENC_BIG_ENDIAN);
4246
43
                *l_offset+=5;
4247
43
            }
4248
11
        }
4249
45
    }
4250
4251
109
    if(*l_offset%8 != 0)
4252
94
    {
4253
94
        proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, *l_offset, (8-(*l_offset%8)), ENC_BIG_ENDIAN);
4254
94
    }
4255
109
}
4256
4257
4258
/* Helper function to decode Authentication Field Parameters */
4259
static void cdma2k_message_AUTH_FIELDS(proto_item *item,tvbuff_t *tvb,proto_tree *subtree,unsigned *l_offset, uint16_t headerRecLen)
4260
49
{
4261
49
    uint16_t macIncl = -1, authIncl = -1, sduSseqOrSseqh = -1;
4262
49
    unsigned endOffset = 0;
4263
49
    endOffset = *l_offset + (headerRecLen*8);
4264
4265
49
    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Mac_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4266
49
    macIncl = tvb_get_bits8(tvb,*l_offset, 1);
4267
49
    *l_offset+=1;
4268
49
    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Auth_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4269
49
    authIncl = tvb_get_bits8(tvb,*l_offset, 1);
4270
49
    *l_offset+=1;
4271
4272
49
    if(authIncl == 1)
4273
19
    {
4274
19
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Authr, tvb, *l_offset, 18, ENC_BIG_ENDIAN);
4275
19
        *l_offset+=18;
4276
19
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Randc, tvb, *l_offset, 8, ENC_BIG_ENDIAN);
4277
19
        *l_offset+=8;
4278
19
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Count, tvb, *l_offset, 6, ENC_BIG_ENDIAN);
4279
19
        *l_offset+=6;
4280
19
    }
4281
4282
49
    if(macIncl == 1)
4283
13
    {
4284
13
        if(authIncl == 0)
4285
5
        {
4286
5
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Randc, tvb, *l_offset, 8, ENC_BIG_ENDIAN);
4287
5
            *l_offset+=8;
4288
5
        }
4289
4290
13
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_KeyId, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4291
13
        *l_offset+=2;
4292
13
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_Algo, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4293
13
        *l_offset+=3;
4294
13
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_Sseq_Or_Sseqh, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4295
13
        sduSseqOrSseqh = tvb_get_bits8(tvb,*l_offset, 1);
4296
13
        *l_offset+=1;
4297
4298
13
        if(sduSseqOrSseqh == 0)
4299
6
        {
4300
6
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_Sseq, tvb, *l_offset, 8, ENC_BIG_ENDIAN);
4301
6
            *l_offset+=8;
4302
6
        }
4303
7
        else
4304
7
        {
4305
7
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_Sseqh, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4306
7
            *l_offset+=24;
4307
7
        }
4308
13
    }
4309
4310
    /*Skip bits till Header Record Length*/
4311
49
    if(*l_offset < endOffset)
4312
41
    {
4313
        /* Padding of more than 64 bits does not fit the field */
4314
41
        if (endOffset - *l_offset <= 64)
4315
12
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, (endOffset-*l_offset), ENC_BIG_ENDIAN);
4316
41
        *l_offset+=(endOffset-*l_offset);
4317
41
    }
4318
8
    else if(*l_offset > endOffset)
4319
8
    {
4320
8
        proto_item_append_text(item," : Offset corruption in Authentication Fields");
4321
8
    }
4322
49
}
4323
4324
4325
/* Helper function to decode Addressing Field Parameters */
4326
static void cdma2k_message_ADDR_FIELDS(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *l_offset, uint16_t headerRecLen)
4327
278
{
4328
278
    proto_item* ti;
4329
278
    proto_tree *sub_tree;
4330
278
    uint16_t msIdType = -1, extMsIdType = -1, msIdLen = -1;
4331
278
    unsigned endOffset = 0;
4332
4333
278
    endOffset = *l_offset + (headerRecLen*8);
4334
278
    proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_MsId_Type, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4335
278
    msIdType = tvb_get_bits8(tvb,*l_offset, 3);
4336
278
    *l_offset+=3;
4337
4338
278
    if(msIdType == 4)
4339
13
    {
4340
13
        proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Ext_MsId_Type, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4341
13
        extMsIdType = tvb_get_bits8(tvb,*l_offset, 3);
4342
13
        *l_offset+=3;
4343
13
    }
4344
4345
278
    proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_MsId_Length, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
4346
278
    msIdLen = tvb_get_bits8(tvb,*l_offset, 4);
4347
278
    *l_offset+=4;
4348
4349
278
    switch(msIdType)
4350
278
    {
4351
163
        case 0:
4352
163
            ti = proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Imsi_M_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4353
163
            sub_tree = proto_item_add_subtree(ti, ett_cdma2k_m_s1);
4354
163
            proto_tree_add_bits_item(sub_tree, hf_cdma2k_tlac_Header_Record_Imsi_M_S1_sec_3_dig, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4355
163
            *l_offset += 10;
4356
163
            proto_tree_add_bits_item(sub_tree, hf_cdma2k_tlac_Header_Record_Imsi_M_S1_thousand_dig, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
4357
163
            *l_offset+=4;
4358
163
            proto_tree_add_bits_item(sub_tree, hf_cdma2k_tlac_Header_Record_Imsi_M_S1_last_3_dig, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4359
163
            *l_offset += 10;
4360
163
            proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Imsi_M_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4361
163
            *l_offset+=10;
4362
163
            proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Esn, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4363
163
            *l_offset+=32;
4364
163
            proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 6, ENC_BIG_ENDIAN);
4365
163
            *l_offset+=6;
4366
163
            break;
4367
4368
29
        case 1:
4369
29
            proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Esn, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4370
29
            *l_offset+=32;
4371
29
            break;
4372
4373
18
        case 2:
4374
18
            cdma2k_message_IMSI_CLASS_SUBFIELDS(item, tvb, tree,l_offset);
4375
18
            break;
4376
4377
30
        case 3:
4378
30
            proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Esn, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4379
30
            *l_offset+=32;
4380
30
            cdma2k_message_IMSI_CLASS_SUBFIELDS(item, tvb, tree,l_offset);
4381
30
            break;
4382
4383
13
        case 4:
4384
13
            switch (extMsIdType)
4385
13
            {
4386
7
                case 0:
4387
7
                    proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId, tvb, *l_offset, 56, ENC_BIG_ENDIAN);
4388
7
                    *l_offset+=56;
4389
7
                    break;
4390
4391
1
                case 1:
4392
1
                    proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId, tvb, *l_offset, 56, ENC_BIG_ENDIAN);
4393
1
                    *l_offset+=56;
4394
1
                    cdma2k_message_IMSI_CLASS_SUBFIELDS(item, tvb, tree,l_offset);
4395
1
                    break;
4396
4397
1
                case 2:
4398
1
                    proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Esn, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4399
1
                    *l_offset+=32;
4400
1
                    proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId, tvb, *l_offset, 56, ENC_BIG_ENDIAN);
4401
1
                    *l_offset+=56;
4402
1
                    cdma2k_message_IMSI_CLASS_SUBFIELDS(item, tvb, tree,l_offset);
4403
1
                    break;
4404
4405
4
                default:
4406
4
                    proto_item_append_text(item," : Invalid extMsIdType in Addressing Fields");
4407
4
                    break;
4408
13
            }
4409
13
            break;
4410
4411
13
        case 5:
4412
11
            if(msIdLen > 12)
4413
1
            {
4414
1
                proto_item_append_text(item," : Invalid msIdLen in Addressing Fields");
4415
1
            }
4416
10
            else if(msIdLen > 4)
4417
7
            {
4418
7
                proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Tmsi_Zone, tvb, *l_offset, (msIdLen-4)*8, ENC_BIG_ENDIAN);
4419
7
                *l_offset+=((msIdLen-4)*8);
4420
7
                proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Tmsi_Code_Addr, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4421
7
                *l_offset+=32;
4422
7
            }
4423
3
            else if(msIdLen > 0)
4424
1
            {
4425
1
                proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Tmsi_Code_Addr, tvb, *l_offset, msIdLen*8, ENC_BIG_ENDIAN);
4426
1
                *l_offset+=(msIdLen*8);
4427
1
            }
4428
11
            break;
4429
4430
14
        default:
4431
14
            proto_item_append_text(item," : Invalid msIdType in Addressing Fields");
4432
14
            break;
4433
278
    }
4434
4435
    /*Skip bits till Header Record Length*/
4436
273
    if(*l_offset < endOffset)
4437
109
    {
4438
        /* Padding of more than 64 bits does not fit the field */
4439
109
        if (endOffset - *l_offset <= 64)
4440
40
            proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, (endOffset-*l_offset), ENC_BIG_ENDIAN);
4441
109
        *l_offset+=(endOffset-*l_offset);
4442
109
    }
4443
164
    else if(*l_offset > endOffset)
4444
164
    {
4445
164
        proto_item_append_text(item," : Offset corruption in Addressing Fields");
4446
164
    }
4447
273
}
4448
4449
/* Helper function to decode Imsi Class and SubField Parameters */
4450
static void cdma2k_message_IMSI_CLASS_SUBFIELDS(proto_item *item,tvbuff_t *tvb, proto_tree *subtree, unsigned *l_offset)
4451
50
{
4452
50
    uint16_t imsi_class = -1, classType = -1;
4453
4454
50
    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Class, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4455
50
    imsi_class = tvb_get_bits8(tvb,*l_offset, 1);
4456
50
    *l_offset+=1;
4457
4458
50
    if(imsi_class == 0)
4459
28
    {
4460
28
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Class0_Type, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4461
28
        classType = tvb_get_bits8(tvb,*l_offset, 2);
4462
28
        *l_offset+=2;
4463
4464
28
        switch (classType)
4465
28
            {
4466
11
                case 0:
4467
11
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4468
11
                    *l_offset+=3;
4469
11
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4470
11
                    *l_offset+=10;
4471
11
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4472
11
                    *l_offset+=24;
4473
11
                    break;
4474
4475
12
                case 1:
4476
12
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
4477
12
                    *l_offset+=4;
4478
12
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_11_12, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4479
12
                    *l_offset+=7;
4480
12
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4481
12
                    *l_offset+=10;
4482
12
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4483
12
                    *l_offset+=24;
4484
12
                    break;
4485
4486
3
                case 2:
4487
3
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4488
3
                    *l_offset+=1;
4489
3
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_MCC, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4490
3
                    *l_offset+=10;
4491
3
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4492
3
                    *l_offset+=10;
4493
3
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4494
3
                    *l_offset+=24;
4495
3
                    break;
4496
4497
2
                case 3:
4498
2
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4499
2
                    *l_offset+=2;
4500
2
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_MCC, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4501
2
                    *l_offset+=10;
4502
2
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_11_12, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4503
2
                    *l_offset+=7;
4504
2
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4505
2
                    *l_offset+=10;
4506
2
                    proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4507
2
                    *l_offset+=24;
4508
2
                    break;
4509
4510
0
                default:
4511
0
                    proto_item_append_text(item," : Invalid Class0 Type in Addressing Fields");
4512
0
                    break;
4513
28
            }
4514
28
    }
4515
22
    else if(imsi_class == 1)
4516
22
    {
4517
22
        proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Class1_Type, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4518
22
        classType = tvb_get_bits8(tvb,*l_offset, 1);
4519
22
        *l_offset+=1;
4520
4521
22
        if(classType == 0)
4522
7
        {
4523
7
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4524
7
            *l_offset+=2;
4525
7
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Addr_Num, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4526
7
            *l_offset+=3;
4527
7
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_11_12, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4528
7
            *l_offset+=7;
4529
7
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4530
7
            *l_offset+=10;
4531
7
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4532
7
            *l_offset+=24;
4533
7
        }
4534
15
        else if(classType == 1)
4535
15
        {
4536
15
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Addr_Num, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4537
15
            *l_offset+=3;
4538
15
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_MCC, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4539
15
            *l_offset+=10;
4540
15
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_11_12, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4541
15
            *l_offset+=7;
4542
15
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4543
15
            *l_offset+=10;
4544
15
            proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4545
15
            *l_offset+=24;
4546
15
        }
4547
0
        else
4548
0
        {
4549
0
            proto_item_append_text(item," : Invalid Class1 Type in Addressing Fields");
4550
0
        }
4551
22
    }
4552
0
    else
4553
0
    {
4554
0
        proto_item_append_text(item," : Invalid Class in Addressing Fields");
4555
0
    }
4556
50
}
4557
4558
4559
/*Method called when the dissection starts.....Starting point*/
4560
static int
4561
dissect_cdma2k(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
4562
271
{
4563
4564
    /* Initialization*/
4565
271
    proto_tree *cdma2k_msghdr_tree_start = NULL;
4566
4567
271
    proto_item *item = NULL;
4568
4569
271
    uint32_t offset = 0;
4570
271
    uint16_t noerror = 1;
4571
4572
    /*Add the protocol name to display*/
4573
271
    col_set_str(pinfo->cinfo, COL_PROTOCOL, "CDMA2K");
4574
271
    col_set_str(pinfo->cinfo, COL_INFO, "[CDMA2K]");
4575
4576
271
    item = proto_tree_add_item(tree, hf_cdma2k_msghdr, tvb, 0, -1, ENC_NA);
4577
271
    cdma2k_msghdr_tree_start =  proto_item_add_subtree(item, ett_cdma2k_msghdr);
4578
4579
271
    item = proto_tree_add_item(cdma2k_msghdr_tree_start, hf_cdma2k_tlac_Record, tvb, offset, 1, ENC_NA );
4580
4581
271
    if (tree)
4582
271
    {
4583
819
        while(tvb_captured_length_remaining(tvb, offset) != 0 && noerror == 1)
4584
548
            cdma2k_message_decode(item, tvb, cdma2k_msghdr_tree_start, &offset, tree, &noerror, pinfo);
4585
4586
271
        if(noerror == 0)
4587
57
        {
4588
57
            expert_add_info(pinfo, item, &ei_cdma2k_error);
4589
57
        }
4590
4591
271
    }
4592
271
    return tvb_reported_length(tvb);
4593
271
}
4594
4595
4596
/*Register cdma2k */
4597
void proto_register_cdma2k(void)
4598
16
{
4599
16
    static hf_register_info hf[] = {
4600
16
            { &hf_cdma2k_tlac_Record,
4601
16
            { "TLAC Header Record and L3PDU", "cdma2k.tlacRecord", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4602
16
            { &hf_cdma2k_tlac_Header,
4603
16
            { "TLAC Header", "cdma2k.tlacHeader", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4604
16
            { &hf_cdma2k_tlac_Channel,
4605
16
            { "Channel Type", "cdma2k.tlacChannel", FT_UINT8, BASE_HEX_DEC, VALS(Channel_Types), 0x0, NULL, HFILL } },
4606
16
            { &hf_cdma2k_tlac_1x_Protocol_Revision,
4607
16
            { "1x Protocol Revision", "cdma2k.tlac1xProtocolRevision", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4608
16
            { &hf_cdma2k_tlac_msgType,
4609
16
            { "CDMA2K Message Type", "cdma2k.MsgType", FT_UINT8, BASE_HEX_DEC, VALS(Cdma2k_Message_types), 0x0, NULL, HFILL } },
4610
16
            { &hf_cdma2k_tlac_Header_Record,
4611
16
            { "TLAC Header Record", "cdma2k.tlacHeaderRecord", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4612
16
            { &hf_cdma2k_tlac_Header_Records_Count,
4613
16
            { "Header Record Count", "cdma2k.tlacHeaderRecordCount", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4614
16
            { &hf_cdma2k_tlac_Header_Record_Type ,
4615
16
            { "Header Record Type", "cdma2k.tlacHeaderRecordType", FT_UINT8, BASE_HEX_DEC, VALS(Header_Record_Types), 0x0, NULL, HFILL } },
4616
16
            { &hf_cdma2k_tlac_Header_Record_Length,
4617
16
            { "Header Record Length", "cdma2k.tlacHeaderRecordLength", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4618
16
            { &hf_cdma2k_tlac_Header_Record_Values,
4619
16
            { "Header Record Data :", "cdma2k.tlacHeaderRecordData", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4620
16
            { &hf_cdma2k_tlac_Header_Record_Reserved,
4621
16
            { "Reserved", "cdma2k.tlacHeaderRecordReservedData", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4622
16
            { &hf_cdma2k_tlac_Header_Record_MsId_Type,
4623
16
            { "MsId Type", "cdma2k.tlacHeaderRecordMsIdType", FT_UINT8, BASE_HEX_DEC, VALS(MsId_Address_Types), 0x0, NULL, HFILL } },
4624
16
            { &hf_cdma2k_tlac_Header_Record_Ext_MsId_Type,
4625
16
            { "Ext MsId Type", "cdma2k.tlacHeaderRecordExtMsIdType", FT_UINT8, BASE_HEX_DEC, VALS(Ext_MsId_Address_Types), 0x0, NULL, HFILL } },
4626
16
            { &hf_cdma2k_tlac_Header_Record_MsId_Length,
4627
16
            { "MsId Length", "cdma2k.tlacHeaderRecordMsIdLength", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4628
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_M_S1,
4629
16
            { "Imsi M S1", "cdma2k.tlacHeaderRecordImsiMS1", FT_UINT24, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4630
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_M_S1_sec_3_dig,
4631
16
            { "Second 3 digits", "cdma2k.tlacHeaderRecordImsiMS1sec_3_dig", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
4632
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_M_S1_thousand_dig,
4633
16
            { "Thousands Digit", "cdma2k.tlacHeaderRecordImsiMS1thousand_dig", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
4634
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_M_S1_last_3_dig,
4635
16
            { "Last 3 digits", "cdma2k.tlacHeaderRecordImsiMS1last_3_dig", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
4636
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_M_S2,
4637
16
            { "Imsi M S2", "cdma2k.tlacHeaderRecordImsiMS2", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4638
16
            { &hf_cdma2k_tlac_Header_Record_Esn,
4639
16
            { "Esn", "cdma2k.tlacHeaderRecordEsn", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4640
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_Class,
4641
16
            { "Imsi Class", "cdma2k.tlacHeaderRecordImsiClass", FT_UINT8, BASE_HEX_DEC, VALS(Imsi_Class), 0x0, NULL, HFILL } },
4642
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_Class0_Type,
4643
16
            { "Imsi Class Type", "cdma2k.tlacHeaderRecordImsiClass0Type", FT_UINT8, BASE_HEX_DEC, VALS(Imsi_Class0_Types), 0x0, NULL, HFILL } },
4644
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_Class1_Type,
4645
16
            { "Imsi Class Type", "cdma2k.tlacHeaderRecordImsiClass1Type", FT_UINT8, BASE_HEX_DEC, VALS(Imsi_Class1_Types), 0x0, NULL, HFILL } },
4646
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_S2,
4647
16
            { "Imsi S2", "cdma2k.tlacHeaderRecordImsiS2", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4648
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_S1,
4649
16
            { "Imsi S1", "cdma2k.tlacHeaderRecordImsiS1", FT_UINT24, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4650
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_11_12,
4651
16
            { "Imsi 11 12", "cdma2k.tlacHeaderRecordImsi1112", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4652
16
            { &hf_cdma2k_tlac_Header_Record_MCC,
4653
16
            { "Mcc", "cdma2k.tlacHeaderRecordMcc", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4654
16
            { &hf_cdma2k_tlac_Header_Record_Imsi_Addr_Num,
4655
16
            { "Imsi Addr Num", "cdma2k.tlacHeaderRecordImsiAddrNum", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4656
16
            { &hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId,
4657
16
            { "Ext MsId MeId", "cdma2k.tlacHeaderRecordExtMsIdMeId", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4658
16
            { &hf_cdma2k_tlac_Header_Record_Tmsi_Code_Addr,
4659
16
            { "Tmsi Code Addr", "cdma2k.tlacHeaderRecordTmsiCodeAddr", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4660
16
            { &hf_cdma2k_tlac_Header_Record_Tmsi_Zone,
4661
16
            { "Tmsi Zone", "cdma2k.tlacHeaderRecordTmsiZone", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4662
16
            { &hf_cdma2k_tlac_Header_Record_Mac_Incl,
4663
16
            { "Maci Incl", "cdma2k.tlacHeaderRecordMacIncl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4664
16
            { &hf_cdma2k_tlac_Header_Record_Auth_Incl,
4665
16
            { "Auth Incl", "cdma2k.tlacHeaderRecordAuthIncl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4666
16
            { &hf_cdma2k_tlac_Header_Record_Authr,
4667
16
            { "Authr", "cdma2k.tlacHeaderRecordAuthr", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4668
16
            { &hf_cdma2k_tlac_Header_Record_Randc,
4669
16
            { "Randc", "cdma2k.tlacHeaderRecordRandc", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4670
16
            { &hf_cdma2k_tlac_Header_Record_Count,
4671
16
            { "Count", "cdma2k.tlacHeaderRecordCount", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4672
16
            { &hf_cdma2k_tlac_Header_Record_Sdu_KeyId,
4673
16
            { "Sdu Key Id", "cdma2k.tlacHeaderRecordSduKeyId", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4674
16
            { &hf_cdma2k_tlac_Header_Record_Sdu_Algo,
4675
16
            { "Sdu Integrity Algo", "cdma2k.tlacHeaderRecordSduAlgo", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4676
16
            { &hf_cdma2k_tlac_Header_Record_Sdu_Sseq,
4677
16
            { "Sdu Sseq", "cdma2k.tlacHeaderRecordSduSseq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4678
16
            { &hf_cdma2k_tlac_Header_Record_Sdu_Sseqh,
4679
16
            { "Sdu Sseqh", "cdma2k.tlacHeaderRecordSduSseqh", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4680
16
            { &hf_cdma2k_tlac_Header_Record_Sdu_Sseq_Or_Sseqh,
4681
16
            { "Sdu Sseq Or Sseqh", "cdma2k.tlacHeaderRecordSduSseqOrSseqh", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4682
16
            { &hf_cdma2k_tlac_Pdu,
4683
16
            { "1x LAYER3 PDU", "cdma2k.tlacPdu", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4684
16
            { &hf_cdma2k_tlac_Pdu_Length,
4685
16
            { "1x LAYER3 PDU Length", "cdma2k.tlacPduLength", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4686
16
            { &hf_cdma2k_RegMsg,
4687
16
            { "Registration Message", "cdma2k.RegMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4688
16
            { &hf_cdma2k_OrderIndMsg,
4689
16
            { "Order Indication Message", "cdma2k.OrderIndMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4690
16
            { &hf_cdma2k_DataBurstIndMsg,
4691
16
            { "Data Burst Indication Message", "cdma2k.DataBurstIndMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4692
16
            { &hf_cdma2k_OrigMsg,
4693
16
            { "Origination Message", "cdma2k.OrigMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4694
16
            { &hf_cdma2k_PageRspMsg,
4695
16
            { "Page Response Message", "cdma2k.PageRspMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4696
16
            { &hf_cdma2k_AuthChallRspMsg,
4697
16
            { "Authentication Challenge Response Message", "cdma2k.AuthChallRspMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4698
16
            { &hf_cdma2k_DataBurstCmdMsg,
4699
16
            { "Data Burst Command Message", "cdma2k.DataBurstCmdMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4700
16
            { &hf_cdma2k_AuthChallReqMsg,
4701
16
            { "Authentication Challenge Request Message", "cdma2k.AuthChallReqMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4702
16
            { &hf_cdma2k_GenPageReqMsg,
4703
16
            { "Page Request Message", "cdma2k.GenPageReqMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4704
16
            { &hf_cdma2k_msghdr,
4705
16
            { "CDMA2000 Application Protocol", "cdma2k.msghdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4706
16
            { &hf_cdma2k_Reg_Type,
4707
16
            { "Reg Type", "cdma2k.Reg_Type", FT_UINT8, BASE_HEX_DEC, VALS(Reg_Types), 0x0, NULL, HFILL } },
4708
16
            { &hf_cdma2k_Slot_Cycle_Index,
4709
16
            { "Slot Cycle Index", "cdma2k.Slot_Cycle_Index", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4710
16
            { &hf_cdma2k_Mob_P_Rev,
4711
16
            { "MobPRev Value", "cdma2k.Mob_P_Rev", FT_UINT8, BASE_HEX_DEC,NULL, 0x0, NULL, HFILL } },
4712
16
            { &hf_cdma2k_Ext_Scm,
4713
16
            { "Ext Scm", "cdma2k.Ext_Scm", FT_UINT8, BASE_HEX_DEC,NULL, 0x0, NULL, HFILL } },
4714
16
            { &hf_cdma2k_Sloted_Mode,
4715
16
            { "Slotted Mode", "cdma2k.Slotted_Mode", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4716
16
            { &hf_cdma2k_Mob_Term,
4717
16
            { "Mob Term", "cdma2k.Mob_Term", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4718
16
            { &hf_cdma2k_Return_Cause,
4719
16
            { "Return Cause", "cdma2k.Return_Cause", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4720
16
            { &hf_cdma2k_Qpch_Supported,
4721
16
            { "Qpch Supported", "cdma2k.pch_Supported", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4722
16
            { &hf_cdma2k_Enhanced_Rc,
4723
16
            { "Enhanced Rc", "cdma2k.Enhanced_Rc", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4724
16
            { &hf_cdma2k_Uzid_Incl,
4725
16
            { "Uzid Incl", "cdma2k.Uzid_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4726
16
            { &hf_cdma2k_Uzid,
4727
16
            { "Uzid", "cdma2k.Uzid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4728
16
            { &hf_cdma2k_GeoLoc_Incl,
4729
16
            { "GeoLoc Incl", "cdma2k.GeoLoc_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4730
16
            { &hf_cdma2k_GeoLoc_Type,
4731
16
            { "GeoLoc Type", "cdma2k.GeoLoc_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4732
16
            { &hf_cdma2k_Order_Ind,
4733
16
            { "Order Value", "cdma2k.Order_Ind", FT_UINT8, BASE_HEX_DEC, VALS(Order_Ind_Cause_Types), 0x0, NULL, HFILL } },
4734
16
            { &hf_cdma2k_Order_Cmd,
4735
16
            { "Order Value", "cdma2k.Order_Cmd", FT_UINT8, BASE_HEX_DEC, VALS(Order_Cmd_Cause_Types), 0xfc, NULL, HFILL } },
4736
16
            { &hf_cdma2k_Add_Record_Len,
4737
16
            { "Add Record Len", "cdma2k.Add_Record_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4738
16
            { &hf_cdma2k_Order_Specific_Fields,
4739
16
            { "Order Specific Fields", "cdma2k.Order_Specific_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4740
16
            { &hf_cdma2k_Ordq,
4741
16
            { "Order Qualification", "cdma2k.Ordq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4742
16
            { &hf_cdma2k_Randbs,
4743
16
            { "Random Chall Data", "cdma2k.Randbs", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4744
16
            { &hf_cdma2k_Rejected_Type,
4745
16
            { "Rejected Message Type", "cdma2k.Rejected_Type", FT_UINT8, BASE_HEX_DEC, VALS(Cdma2k_Message_types), 0x0, NULL, HFILL } },
4746
16
            { &hf_cdma2k_Rejected_Order,
4747
16
            { "Order of Rejected Message", "cdma2k.Rejected_Order", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4748
16
            { &hf_cdma2k_Rejected_Ordq,
4749
16
            { "Order Qualification of Rejected Message", "cdma2k.Rejected_Ordq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4750
16
            { &hf_cdma2k_Rejected_Parm_Id,
4751
16
            { "Rejected Parameter", "cdma2k.Rejected_Parm_Id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4752
16
            { &hf_cdma2k_Rejected_Record,
4753
16
            { "Rejected Record Type", "cdma2k.Rejected_Record", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4754
16
            { &hf_cdma2k_Tag,
4755
16
            { "Transaction Identifier", "cdma2k.Tag", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4756
16
            { &hf_cdma2k_Rsc_Mode_Ind,
4757
16
            { "Reduced Slot Cycle Mode Indication", "cdma2k.Rsc_Mode_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4758
16
            { &hf_cdma2k_Rsci,
4759
16
            { "Reduced Slot Cycle Mode Index", "cdma2k.Rsci", FT_UINT8, BASE_HEX_DEC, VALS(RSCI_Types), 0x0, NULL, HFILL } },
4760
16
            { &hf_cdma2k_Rsc_End_Time_Unit,
4761
16
            { "Reduced Slot Cycle Mode End Time Unit", "cdma2k.Rsc_End_Time_Unit", FT_UINT8, BASE_HEX_DEC, VALS(Rsc_End_Time_Unit_Types), 0x0, NULL, HFILL } },
4762
16
            { &hf_cdma2k_Rsc_End_Time_Value,
4763
16
            { "Reduced Slot Cycle Mode End Time Value", "cdma2k.Rsc_End_Time_Value", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4764
16
            { &hf_cdma2k_Con_Ref,
4765
16
            { "Connection Reference", "cdma2k.Con_Ref", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4766
16
            { &hf_cdma2k_Authbs,
4767
16
            { "Authbs", "cdma2k.Authbs", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4768
16
            { &hf_cdma2k_Roam_Ind,
4769
16
            { "Roam Indicator", "cdma2k.Roam_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4770
16
            { &hf_cdma2k_C_Sig_Encrypt_Mode,
4771
16
            { "Encrypt Mode", "cdma2k.C_Sig_Encrypt_Mode", FT_UINT8, BASE_HEX_DEC, VALS(C_Sig_Encrypt_Mode_Types), 0x0, NULL, HFILL } },
4772
16
            { &hf_cdma2k_Enc_Key_Size,
4773
16
            { "Enc Key Size", "cdma2k.Enc_Key_Size", FT_UINT8, BASE_HEX_DEC, VALS(Enc_Key_Types), 0x0, NULL, HFILL } },
4774
16
            { &hf_cdma2k_Msg_Int_Info_Incl,
4775
16
            { "Msg Int Info Incl", "cdma2k.Msg_Int_Info_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4776
16
            { &hf_cdma2k_Change_Keys,
4777
16
            { "Change Keys", "cdma2k.Change_Keys", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4778
16
            { &hf_cdma2k_Use_Uak,
4779
16
            { "Use Uak", "cdma2k.Use_Uak", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4780
16
            { &hf_cdma2k_Retry_Type,
4781
16
            { "Retry Type", "cdma2k.Retry_Type", FT_UINT8, BASE_HEX_DEC, VALS(Retry_Types), 0x0, NULL, HFILL } },
4782
16
            { &hf_cdma2k_Retry_Delay,
4783
16
            { "Retry Delay", "cdma2k.Retry_Delay", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4784
16
            { &hf_cdma2k_Reject_Reason,
4785
16
            { "Reject Reason", "cdma2k.Reject_Reason", FT_UINT8, BASE_HEX_DEC, VALS(Reject_Reason_Types), 0x0, NULL, HFILL } },
4786
16
            { &hf_cdma2k_Rejected_Msg_Type,
4787
16
            { "Rejected Message Type", "cdma2k.Rejected_Msg_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4788
16
            { &hf_cdma2k_Rejected_Msg_Seq,
4789
16
            { "Rejected Message Sequence", "cdma2k.Rejected_Msg_Seq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4790
16
            { &hf_cdma2k_All_Bcmc_Flows_Ind,
4791
16
            { "All BCMC Flows Indication", "cdma2k.All_Bcmc_Flows_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4792
16
            { &hf_cdma2k_Clear_All_Retry_Delay,
4793
16
            { "Clear All Retry Delay", "cdma2k.Clear_All_Retry_Delay", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4794
16
            { &hf_cdma2k_All_Bcmc_Reason,
4795
16
            { "All BCMC Reason", "cdma2k.All_Bcmc_Reason", FT_UINT8, BASE_HEX_DEC, VALS(All_Bcmc_Reason_Types), 0x0, NULL, HFILL } },
4796
16
            { &hf_cdma2k_All_Bcmc_Retry_Delay,
4797
16
            { "All BCMC Retry Delay", "cdma2k.All_Bcmc_Retry_Delay", FT_UINT8, BASE_HEX_DEC, VALS(All_Bcmc_Retry_Delay_Types), 0x0, NULL, HFILL } },
4798
16
            { &hf_cdma2k_Num_Bcmc_Programs,
4799
16
            { "Number of BCMC Programs", "cdma2k.Num_Bcmc_Programs", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4800
16
            { &hf_cdma2k_Bcmc_Program_Id_Len,
4801
16
            { "BCMC Program ID Length", "cdma2k.Bcmc_Program_Id_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4802
16
            { &hf_cdma2k_Bcmc_Program_Id,
4803
16
            { "BCMC Program ID", "cdma2k.Bcmc_Program_Id", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4804
16
            { &hf_cdma2k_Bcmc_Flow_Discriminator_Len,
4805
16
            { "BCMC Flow Discriminator Length", "cdma2k.Bcmc_Flow_Discriminator_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4806
16
            { &hf_cdma2k_Num_Flow_Discriminator,
4807
16
            { "Number of Flow Discriminator", "cdma2k.Num_Flow_Discriminator", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4808
16
            { &hf_cdma2k_Bcmc_Flow_Discriminator ,
4809
16
            { "BCMC Flow Discriminator", "cdma2k.Bcmc_Flow_Discriminator", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4810
16
            { &hf_cdma2k_Same_As_Previous_Bcmc_Flow,
4811
16
            { "Same As Previous BCMC Flow", "cdma2k.Same_As_Previous_Bcmc_Flow", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4812
16
            { &hf_cdma2k_Bcmc_Reason,
4813
16
            { "BCMC Reason", "cdma2k.Bcmc_Reason", FT_UINT8, BASE_HEX_DEC, VALS(All_Bcmc_Reason_Types), 0x0, NULL, HFILL } },
4814
16
            { &hf_cdma2k_Bcmc_Retry_Delay,
4815
16
            { "BCMC Retry Delay", "cdma2k.Bcmc_Retry_Delay", FT_UINT8, BASE_HEX_DEC, VALS(All_Bcmc_Retry_Delay_Types), 0x0, NULL, HFILL } },
4816
16
            { &hf_cdma2k_Rsc_Mode_Supported,
4817
16
            { "Reduced Slot Cycle Mode Supported", "cdma2k.Rsc_Mode_Supported", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4818
16
            { &hf_cdma2k_Max_Rsc_End_Time_Unit,
4819
16
            { "Maximum RSC End Time Unit", "cdma2k.Max_Rsc_End_Time_Unit", FT_UINT8, BASE_HEX_DEC, VALS(Max_rsc_End_Time_unit_Types), 0x0, NULL, HFILL } },
4820
16
            { &hf_cdma2k_Max_Rsc_End_Time_Value,
4821
16
            { "maximum RSC End Time Value", "cdma2k.Max_Rsc_End_Time_Value", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4822
16
            { &hf_cdma2k_Req_Rsci,
4823
16
            { "Requested Reduced Slot Cycle index", "cdma2k.Req_Rsci", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4824
16
            { &hf_cdma2k_Ignore_Qpch,
4825
16
            { "Ignore QPCH Indicators", "cdma2k.Ignore_Qpch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4826
16
            { &hf_cdma2k_Rer_Mode_Incl,
4827
16
            { "Radio Environment Reporting Mode Indicator", "cdma2k.Rer_Mode_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4828
16
            { &hf_cdma2k_Rer_Mode_Enabled,
4829
16
            { "Radio Environment Reporting Mode Enabled", "cdma2k.Rer_Mode_Enabled", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4830
16
            { &hf_cdma2k_Rer_Max_Num_Msg_Idx,
4831
16
            { "RER Maximum Message Index", "cdma2k.Rer_Max_Num_Msg_Idx", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4832
16
            { &hf_cdma2k_Rer_Time,
4833
16
            { "Radio Environment Reporting Time", "cdma2k.Rer_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4834
16
            { &hf_cdma2k_Rer_Time_Unit,
4835
16
            { "Radio Environment Reporting Time Unit", "cdma2k.Rer_Time_Unit", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4836
16
            { &hf_cdma2k_Max_Rer_Pilot_List_Size,
4837
16
            { "Maximum RER pilot List Size", "cdma2k.Max_Rer_Pilot_List_Size", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4838
16
            { &hf_cdma2k_Tkz_Mode_Incl,
4839
16
            { "Tracking Zone Mode Indication", "cdma2k.Tkz_Mode_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4840
16
            { &hf_cdma2k_Tkz_Mode_Enabled,
4841
16
            { "Tracking Zone Mode Enabled", "cdma2k.Tkz_Mode_Enabled", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4842
16
            { &hf_cdma2k_Tkz_Max_Num_Msg_Idx,
4843
16
            { "Tracking Zone Maximum Message Index", "cdma2k.Tkz_Max_Num_Msg_Idx", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4844
16
            { &hf_cdma2k_Tkz_Update_Prd,
4845
16
            { "Tracking Zone Update Period", "cdma2k.Tkz_Update_Prd", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4846
16
            { &hf_cdma2k_Tkz_List_Len,
4847
16
            { "Tracking Zone List Length", "cdma2k.Tkz_List_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4848
16
            { &hf_cdma2k_Tkz_Timer,
4849
16
            { "Tracking Zone Timer", "cdma2k.Tkz_Timer", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4850
16
            { &hf_cdma2k_Sr_Id_Bitmap,
4851
16
            { "Service Reference Identifier Bitmap", "cdma2k.Sr_Id_Bitmap", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4852
16
            { &hf_cdma2k_Service_Status,
4853
16
            { "Service Status", "cdma2k.Service_Status", FT_UINT8, BASE_HEX_DEC, VALS(Service_Status_Types), 0x0, NULL, HFILL } },
4854
16
            { &hf_cdma2k_Regulatory_Ind_Incl,
4855
16
            { "Regulatory Indicator Included", "cdma2k.Regulatory_Ind_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4856
16
            { &hf_cdma2k_Regulatory_Ind,
4857
16
            { "Regulatory Indication", "cdma2k.Regulatory_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4858
16
            { &hf_cdma2k_Msg_Number,
4859
16
            { "Msg Number", "cdma2k.Msg_Number", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4860
16
            { &hf_cdma2k_Burst_Type,
4861
16
            { "Burst Type", "cdma2k.Burst_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4862
16
            { &hf_cdma2k_Num_Msgs,
4863
16
            { "Num Msgs", "cdma2k.Num_Msgs", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4864
16
            { &hf_cdma2k_Num_Fields,
4865
16
            { "Num Fields", "cdma2k.Num_Fields", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4866
16
            { &hf_cdma2k_Chari_Data,
4867
16
            { "Chari Data", "cdma2k.Chari_Data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4868
16
            { &hf_cdma2k_Msg_Identifier,
4869
16
            { "Msg Identifier", "cdma2k.Msg_Identifier", FT_UINT8, BASE_HEX_DEC, VALS(Chari_Identifier_Types), 0x0, NULL, HFILL } },
4870
16
            { &hf_cdma2k_Parm_Id,
4871
16
            { "Parm Id", "cdma2k.Parm_Id", FT_UINT8, BASE_HEX_DEC, VALS(Chari_Parm_Types), 0x0, NULL, HFILL } },
4872
16
            { &hf_cdma2k_Parm_Length,
4873
16
            { "Parm Length", "cdma2k.Parm_Length", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4874
16
            { &hf_cdma2k_Parm_Value,
4875
16
            { "Parm Data", "cdma2k.Parm_Value", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4876
16
            { &hf_cdma2k_Authu,
4877
16
            { "Authu", "cdma2k.Authu", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4878
16
            { &hf_cdma2k_Randu,
4879
16
            { "Randu", "cdma2k.Randu", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4880
16
            { &hf_cdma2k_Gen_Cmea_Key,
4881
16
            { "Gen Cmea Key", "cdma2k.Gen_Cmea_Key", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4882
16
            { &hf_cdma2k_service_option,
4883
16
            { "Service Option", "cdma2k.service_option", FT_UINT32, BASE_HEX_DEC, VALS(Page_Req_Service_Option_Types), 0x0, NULL, HFILL } },
4884
16
            { &hf_cdma2k_Use_Time,
4885
16
            { "Use Time", "cdma2k.Use_Time", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4886
16
            { &hf_cdma2k_Action_Time,
4887
16
            { "Action Time", "cdma2k.Action_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4888
16
            { &hf_cdma2k_Hdm_Seq,
4889
16
            { "Sequence Number", "cdma2k.Hdm_Seq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4890
16
            { &hf_cdma2k_Parms_Incl,
4891
16
            { "Parameters Incl", "cdma2k.Parms_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4892
16
            { &hf_cdma2k_P_Rev,
4893
16
            { "Protocol Revision", "cdma2k.P_Rev", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4894
16
            { &hf_cdma2k_Serv_Neg_Type,
4895
16
            { "Service Negotiation", "cdma2k.Serv_Neg_Type", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4896
16
            { &hf_cdma2k_Search_Incl,
4897
16
            { "Pilot Search Incl", "cdma2k.Search_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4898
16
            { &hf_cdma2k_Pilot_Search,
4899
16
            { "Pilot Search Parameters", "cdma2k.Search", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4900
16
            { &hf_cdma2k_Srch_Win_A,
4901
16
            { "Search Window size for Active Set", "cdma2k.Srch_Win_A", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4902
16
            { &hf_cdma2k_Srch_Win_N,
4903
16
            { "Search Window size for Neighbour Set", "cdma2k.Srch_Win_N", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4904
16
            { &hf_cdma2k_Srch_Win_R,
4905
16
            { "Search Window size for Remaining Set", "cdma2k.Srch_Win_R", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4906
16
            { &hf_cdma2k_T_Add,
4907
16
            { "Pilot Detection Threshold", "cdma2k.T_Add", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4908
16
            { &hf_cdma2k_T_Drop,
4909
16
            { "Pilot Drop Threshold", "cdma2k.T_Drop", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4910
16
            { &hf_cdma2k_T_Comp,
4911
16
            { "Active vs Candidate Set Comp Threshold", "cdma2k.T_Comp", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4912
16
            { &hf_cdma2k_T_Tdrop,
4913
16
            { "Drop Timer Value", "cdma2k.T_Tdrop", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4914
16
            { &hf_cdma2k_Soft_Slope,
4915
16
            { "Soft Slope", "cdma2k.Soft_Slope", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4916
16
            { &hf_cdma2k_Add_Intercept,
4917
16
            { "Add Pilot Intercept", "cdma2k.Add_Intercept", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4918
16
            { &hf_cdma2k_Drop_Intercept,
4919
16
            { "Drop Pilot Intercept", "cdma2k.Drop_Intercept", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4920
16
            { &hf_cdma2k_Extra_Parms_Incl,
4921
16
            { "Extra Parms Incl", "cdma2k.Extra_Parms_incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4922
16
            { &hf_cdma2k_Extra_Parms,
4923
16
            { "Extra Parameters", "cdma2k.Extra_Parms", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4924
16
            { &hf_cdma2k_Packet_Zone_Id,
4925
16
            { "Packet Zone Identifier", "cdma2k.Packet_Zone_Id", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4926
16
            { &hf_cdma2k_Frame_Offset,
4927
16
            { "Frame Offset", "cdma2k.Frame_Offset", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4928
16
            { &hf_cdma2k_Private_Lcm,
4929
16
            { "Private LCM", "cdma2k.Private_Lcm", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4930
16
            { &hf_cdma2k_Reset_L2,
4931
16
            { "Reset L2 Ack", "cdma2k.Reset_L2", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4932
16
            { &hf_cdma2k_Reset_Fpc,
4933
16
            { "Reset Fch Power Cntrl Cntrs", "cdma2k.Reset_Fpc", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4934
16
            { &hf_cdma2k_Encrypt_Mode,
4935
16
            { "Msg Encryption Mode", "cdma2k.Encrypt_Mode", FT_UINT8, BASE_HEX_DEC, VALS(Encrypt_Mode_Types), 0x0, NULL, HFILL } },
4936
16
            { &hf_cdma2k_Nom_Pwr_Ext,
4937
16
            { "Ext Nominal Transmit Power", "cdma2k.Nom_Pwr_Ext", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4938
16
            { &hf_cdma2k_Nom_Pwr,
4939
16
            { "Nominal Transmit Power Offset", "cdma2k.Nom_Pwr", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4940
16
            { &hf_cdma2k_Rlgain_Traffic_Pilot,
4941
16
            { "Rlgain Of Traffic Pilot", "cdma2k.Rlgain_Traffic_Pilot", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4942
16
            { &hf_cdma2k_Default_Rlag,
4943
16
            { "Reverse Link Attr Gain", "cdma2k.Default_Rlag", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4944
16
            { &hf_cdma2k_Num_Preamble,
4945
16
            { "Traffic Channel Preamble", "cdma2k.Num_Preamble", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4946
16
            { &hf_cdma2k_Band_Class,
4947
16
            { "Band Class", "cdma2k.Band_Class", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4948
16
            { &hf_cdma2k_Cdma_Freq,
4949
16
            { "Frequency Assignment", "cdma2k.Cdma_Freq", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4950
16
            { &hf_cdma2k_Return_If_Handoff_Fail,
4951
16
            { "Return On Failure", "cdma2k.Return_If_Handoff_Fail", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4952
16
            { &hf_cdma2k_Complete_Search,
4953
16
            { "Complete Search", "cdma2k.Complete_Search", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4954
16
            { &hf_cdma2k_Periodic_Search,
4955
16
            { "Periodic Search", "cdma2k.Periodic_Search", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4956
16
            { &hf_cdma2k_Scr_Incl,
4957
16
            { "Scr Incl", "cdma2k.Scr_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4958
16
            { &hf_cdma2k_Scr,
4959
16
            { "Service Config Records", "cdma2k.Scr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4960
16
            { &hf_cdma2k_Serv_Con_Seq,
4961
16
            { "Service Connect Sequence Number", "cdma2k.Serv_Con_Seq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4962
16
            { &hf_cdma2k_Record_Type,
4963
16
            { "Information Record Type", "cdma2k.Record_Type", FT_UINT8, BASE_HEX_DEC, VALS(Info_Rec_Types), 0x0, NULL, HFILL } },
4964
16
            { &hf_cdma2k_Record_Len,
4965
16
            { "Information Record Length", "cdma2k.Record_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4966
16
            { &hf_cdma2k_Type_Specific_Fields,
4967
16
            { "Type Specific Fields :", "cdma2k.Type_Specific_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4968
16
            { &hf_cdma2k_Nnscr_Incl,
4969
16
            { "Nnscr Incl", "cdma2k.Nnscr_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4970
16
            { &hf_cdma2k_Nnscr,
4971
16
            { "Non-Negotiable Service Config Records", "cdma2k.Nnscr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4972
16
            { &hf_cdma2k_Use_Pwr_Cntl_Step,
4973
16
            { "Power Control Step Size Incl", "cdma2k.Use_Pwr_Cntl_Step", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4974
16
            { &hf_cdma2k_Pwr_Cntl_Step,
4975
16
            { "Power Control Step Size", "cdma2k.Pwr_Cntl_Step", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4976
16
            { &hf_cdma2k_Clear_Retry_Delay,
4977
16
            { "Clear Retry Delay Indicator", "cdma2k.Clear_Retry_Delay", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4978
16
            { &hf_cdma2k_Sch_Incl,
4979
16
            { "Supplemented Channel Parms Incl", "cdma2k.Sch_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4980
16
            { &hf_cdma2k_Sch,
4981
16
            { "Supplemental Channel Parameters", "cdma2k.Sch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4982
16
            { &hf_cdma2k_Num_For_Assign,
4983
16
            { "Forward Channels Assigned", "cdma2k.Num_For_Assign", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4984
16
            { &hf_cdma2k_Record_For_Assign,
4985
16
            { "Forward Channel Records", "cdma2k.Record_For_Assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4986
16
            { &hf_cdma2k_Sch_Id,
4987
16
            { "Channel Identifier", "cdma2k.Sch_Id", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4988
16
            { &hf_cdma2k_Sch_Duration,
4989
16
            { "Channel Assignment Duration", "cdma2k.Sch_Duration", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4990
16
            { &hf_cdma2k_Sch_Start_Time_Incl,
4991
16
            { "Start Time Incl", "cdma2k.Sch_Start_Time_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4992
16
            { &hf_cdma2k_Sch_Start_Time,
4993
16
            { "Start Time", "cdma2k.Sch_Start_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4994
16
            { &hf_cdma2k_Sccl_Index,
4995
16
            { "Channel Code List Index", "cdma2k.Sccl_Index", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4996
16
            { &hf_cdma2k_Num_Rev_Assign,
4997
16
            { "Reverse Channels Assigned", "cdma2k.Num_Rev_Assign", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4998
16
            { &hf_cdma2k_Record_Rev_Assign,
4999
16
            { "Reverse Channel Records", "cdma2k.Record_Rev_Assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5000
16
            { &hf_cdma2k_Sch_Num_Bits_Idx,
5001
16
            { "Bits Per Frame Index", "cdma2k.Sch_Num_Bits_Idx", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5002
16
            { &hf_cdma2k_Fpc_Subchain_Gain,
5003
16
            { "Fwd Pwr Cntl Subchannel Rel Gain", "cdma2k.Fpc_Subchain_Gain", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5004
16
            { &hf_cdma2k_Use_Pc_Time,
5005
16
            { "Pwr Cntl Action Time Incl", "cdma2k.Use_Pc_Time", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5006
16
            { &hf_cdma2k_Pc_Action_Time,
5007
16
            { "Pwr Cntl Action Time", "cdma2k.Pc_Action_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5008
16
            { &hf_cdma2k_Ch_Ind,
5009
16
            { "Channel Indicator", "cdma2k.Ch_Ind", FT_UINT8, BASE_HEX_DEC, VALS(l3dpu_ORM_ch_ind_values), 0x0, NULL, HFILL } },
5010
16
            { &hf_cdma2k_Active_Set_Rec_Len,
5011
16
            { "Active Set Rec Length", "cdma2k.Active_Set_Rec_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5012
16
            { &hf_cdma2k_Active_Set_Rec_Fields,
5013
16
            { "Active Set Rec Fields", "cdma2k.Active_Set_Rec_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5014
16
            { &hf_cdma2k_Rev_Fch_Gating_Mode,
5015
16
            { "Rev Gating Mode Indicator", "cdma2k.Rev_Fch_Gating_Mode", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5016
16
            { &hf_cdma2k_Rev_Pwr_Cntl_Delay_Incl,
5017
16
            { "Rev Pwr Cntl Delay Incl", "cdma2k.Rev_Pwr_Cntl_Delay_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5018
16
            { &hf_cdma2k_Rev_Pwr_Cntl_Delay,
5019
16
            { "Rev Pwr Cntl Delay", "cdma2k.Rev_Pwr_Cntl_Delay", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5020
16
            { &hf_cdma2k_D_Sig_Encrypt_Mode,
5021
16
            { "Dedicated Chan Encryption Mode Ind", "cdma2k.D_Sig_Encrypt_Mode", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5022
16
            { &hf_cdma2k_3xfl_1xrl_Incl,
5023
16
            { "3x Fwd & 1x Rev Link Incl", "cdma2k.3xfl_1xrl_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5024
16
            { &hf_cdma2k_1xrl_Freq_Offset,
5025
16
            { "1x Rev Link Freq Offset", "cdma2k.1xrl_Freq_Offset", FT_UINT8, BASE_HEX_DEC, VALS(rl_Freq_Offset_Types), 0x0, NULL, HFILL } },
5026
16
            { &hf_cdma2k_Sync_Id_Incl,
5027
16
            { "Sync Identifier Incl", "cdma2k.Sync_Id_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5028
16
            { &hf_cdma2k_Sync_Id_Len,
5029
16
            { "Sync Identifier Len", "cdma2k.Sync_Id_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5030
16
            { &hf_cdma2k_Sync_Id,
5031
16
            { "Sync Identifier :", "cdma2k.Sync_Id", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5032
16
            { &hf_cdma2k_Cc_Info_Incl,
5033
16
            { "Call Cntl Info Incl", "cdma2k.Cc_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5034
16
            { &hf_cdma2k_Num_Calls_Assign,
5035
16
            { "Number Of Call Assignments", "cdma2k.Num_Calls_Assign", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5036
16
            { &hf_cdma2k_Record_Calls_Assign,
5037
16
            { "Call Assignment Records", "cdma2k.Record_Calls_Assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5038
16
            { &hf_cdma2k_Response_Ind,
5039
16
            { "Response Indicator", "cdma2k.Response_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5040
16
            { &hf_cdma2k_Bypass_Alert_Answer,
5041
16
            { "Bypass Alert Answer", "cdma2k.Bypass_Alert_Answer", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5042
16
            { &hf_cdma2k_Cs_Supported,
5043
16
            { "Concurrent Services Supported", "cdma2k.Cs_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5044
16
            { &hf_cdma2k_Chm_Supported,
5045
16
            { "Control Hold Mode Supported", "cdma2k.Chm_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5046
16
            { &hf_cdma2k_Cdma_Off_Time_Rep_Sup_Ind,
5047
16
            { "CDMA Off Time Report Supported", "cdma2k.Cdma_Off_Time_Rep_Sup_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5048
16
            { &hf_cdma2k_Cdma_Off_Time_Rep_Threshold_Unit,
5049
16
            { "Threshold Unit", "cdma2k.Cdma_Off_Time_Rep_Threshold_Unit", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5050
16
            { &hf_cdma2k_Cdma_Off_Time_Rep_Threshold,
5051
16
            { "Threshold", "cdma2k.Cdma_Off_Time_Rep_Threshold", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5052
16
            { &hf_cdma2k_Release_To_Idle_Ind,
5053
16
            { "Release To Idle Allowed", "cdma2k.Release_To_Idle_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5054
16
            { &hf_cdma2k_Msg_Integrity_Sup,
5055
16
            { "Msg Integrity Supported", "cdma2k.Msg_Integrity_Sup", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5056
16
            { &hf_cdma2k_Gen_2g_Key,
5057
16
            { "Generate 2G Encryption Key", "cdma2k.Gen_2g_Key", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5058
16
            { &hf_cdma2k_Register_In_Idle,
5059
16
            { "Register In Idle State", "cdma2k.Register_In_Idle", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5060
16
            { &hf_cdma2k_Plcm_Type_Incl,
5061
16
            { "PLCM Type Incl", "cdma2k.Plcm_Type_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5062
16
            { &hf_cdma2k_Plcm_Type,
5063
16
            { "PLCM Type", "cdma2k.Plcm_Type", FT_UINT8, BASE_HEX_DEC, VALS(Plcm_Types), 0x0, NULL, HFILL } },
5064
16
            { &hf_cdma2k_Plcm_39,
5065
16
            { "PLCM 39", "cdma2k.Plcm_39", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5066
16
            { &hf_cdma2k_T_Tdrop_Range_Incl,
5067
16
            { "Drop Timer Range Incl", "cdma2k.T_Tdrop_Range_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5068
16
            { &hf_cdma2k_T_Tdrop_Range,
5069
16
            { "Drop Timer Range", "cdma2k.T_Tdrop_Range", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5070
16
            { &hf_cdma2k_For_Pdch_Supported,
5071
16
            { "For Packet Data Channel Supported", "cdma2k.For_Pdch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5072
16
            { &hf_cdma2k_Pdch_Chm_Supported,
5073
16
            { "PDCh Cntl Mode Supported", "cdma2k.Pdch_Chm_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5074
16
            { &hf_cdma2k_Pilot_Info_Req_Supported,
5075
16
            { "Pilot Info Req Supported", "cdma2k.Pilot_Info_Req_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5076
16
            { &hf_cdma2k_Enc_Supported,
5077
16
            { "Encryption Fields Incl", "cdma2k.Enc_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5078
16
            { &hf_cdma2k_Sig_Encrypt_Sup,
5079
16
            { "Signalling Encryption Supported", "cdma2k.Sig_Encrypt_Sup", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5080
16
            { &hf_cdma2k_Ui_Encrypt_Sup,
5081
16
            { "User Info Encryption Supported", "cdma2k.Ui_Encrypt_Sup", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5082
16
            { &hf_cdma2k_Use_Sync_Id,
5083
16
            { "Sync Id Supported", "cdma2k.Use_Sync_Id", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5084
16
            { &hf_cdma2k_Sid_Incl,
5085
16
            { "System Identification Incl", "cdma2k.Sid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5086
16
            { &hf_cdma2k_Sid,
5087
16
            { "System Identification", "cdma2k.Sid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5088
16
            { &hf_cdma2k_Nid_Incl,
5089
16
            { "Network Identification Incl", "cdma2k.Nid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5090
16
            { &hf_cdma2k_Nid,
5091
16
            { "Network Identification", "cdma2k.Nid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5092
16
            { &hf_cdma2k_Sdb_Supported,
5093
16
            { "Short Data Burst Indicator", "cdma2k.Sdb_Supported", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5094
16
            { &hf_cdma2k_Mob_Qos,
5095
16
            { "MS QoS Parm Req", "cdma2k.Mob_Qos", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5096
16
            { &hf_cdma2k_Ms_Init_Pos_Loc_Sup_Ind,
5097
16
            { "MS Pos Loc Supported", "cdma2k.Ms_Init_Pos_Loc_Sup_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5098
16
            { &hf_cdma2k_Rev_Pdch_Supported,
5099
16
            { "Rev Packet Data Channel Supported", "cdma2k.Rev_Pdch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5100
16
            { &hf_cdma2k_Pz_Hyst_Enabled,
5101
16
            { "Packet Zone Hysteresis Enabled", "cdma2k.Pz_Hyst_Enabled", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5102
16
            { &hf_cdma2k_Pz_Hyst_Info_Incl,
5103
16
            { "Packet Zone Hysteresis Info Incl", "cdma2k.Pz_Hyst_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5104
16
            { &hf_cdma2k_Pz_Hyst_List_Len,
5105
16
            { "Packet Zone Hysteresis List Length", "cdma2k.Pz_Hyst_List_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5106
16
            { &hf_cdma2k_Pz_Hyst_Act_Timer,
5107
16
            { "Packet Zone Hysteresis Act Timer", "cdma2k.Pz_Hyst_Act_Timer", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5108
16
            { &hf_cdma2k_Pz_Hyst_Timer_Mul,
5109
16
            { "Packet Zone Hysteresis Timer Multiplier", "cdma2k.Pz_Hyst_Timer_Mul", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5110
16
            { &hf_cdma2k_Pz_Hyst_Timer_Exp,
5111
16
            { "Packet Zone Hysteresis Timer Exponent", "cdma2k.Pz_Hyst_Timer_Exp", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5112
16
            { &hf_cdma2k_Bcmc_On_Traffic_Sup,
5113
16
            { "BCMC On Tch Supported", "cdma2k.Bcmc_On_Traffic_Sup", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5114
16
            { &hf_cdma2k_Auto_Re_Traffic_Allowed_Ind,
5115
16
            { "BCMC Req On Tch Allowed", "cdma2k.Auto_Re_Traffic_Allowed_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5116
16
            { &hf_cdma2k_Sch_Bcmc_Ind,
5117
16
            { "BCMC On Sch Indicator", "cdma2k.Sch_Bcmc_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5118
16
            { &hf_cdma2k_Add_Plcm_For_Sch_Incl,
5119
16
            { "For Sch Additional PLCM Incl", "cdma2k.Add_Plcm_For_Sch_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5120
16
            { &hf_cdma2k_Add_Plcm_For_Sch_Type,
5121
16
            { "For Sch Additional PLCM Type", "cdma2k.Add_Plcm_For_Sch_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5122
16
            { &hf_cdma2k_Add_Plcm_For_Sch_35,
5123
16
            { "For Sch Additional PLCM", "cdma2k.Add_Plcm_For_Sch_35", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5124
16
            { &hf_cdma2k_Record_Sch_Bcmc,
5125
16
            { "Sch BCMC Records", "cdma2k.Record_Sch_Bcmc", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5126
16
            { &hf_cdma2k_Use_Add_Plcm_For_Sch,
5127
16
            { "Use For Sch Additional PLCM", "cdma2k.Use_Add_Plcm_For_Sch", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5128
16
            { &hf_cdma2k_Fsch_Outercode_Incl,
5129
16
            { "For Sch Outer Code Incl", "cdma2k.Fsch_Outercode_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5130
16
            { &hf_cdma2k_Fsch_Outercode_Rate,
5131
16
            { "For Sch Outer Code Rate", "cdma2k.Fsch_Outercode_Rate", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5132
16
            { &hf_cdma2k_Fsch_Outercode_Offset,
5133
16
            { "For Sch Outer Code Offset", "cdma2k.Fsch_Outercode_Offset", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5134
16
            { &hf_cdma2k_Max_Add_Serv_Instance,
5135
16
            { "Max Additional Service Identifiers", "cdma2k.Max_Add_Serv_Instance", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5136
16
            { &hf_cdma2k_Use_Ch_Cfg_Rrm,
5137
16
            { "Channel Config Req Allowed", "cdma2k.Use_Ch_Cfg_Rrm", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5138
16
            { &hf_cdma2k_Tx_Pwr_Limit_Incl,
5139
16
            { "Tx Pwr Limit Incl", "cdma2k.Tx_Pwr_Limit_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5140
16
            { &hf_cdma2k_Tx_Pwr_Limit_Default,
5141
16
            { "Tx Pwr Limit Default", "cdma2k.Tx_Pwr_Limit_Default", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5142
16
            { &hf_cdma2k_Tx_Pwr_Limit,
5143
16
            { "Tx Pwr Limit", "cdma2k.Tx_Pwr_Limit", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5144
16
            { &hf_cdma2k_Num_For_Sch,
5145
16
            { "Forward Sch Record Count", "cdma2k.Num_For_Sch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5146
16
            { &hf_cdma2k_Record_For_Sch,
5147
16
            { "Forward Supplemental Channel Record", "cdma2k.Record_For_Sch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5148
16
            { &hf_cdma2k_Num_Rev_Sch,
5149
16
            { "Reverse Sch Record Count", "cdma2k.Num_Rev_Sch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5150
16
            { &hf_cdma2k_Record_Rev_Sch,
5151
16
            { "Reverse Supplemental Channel Record", "cdma2k.Record_Rev_Sch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5152
16
            { &hf_cdma2k_Walsh_Id,
5153
16
            { "Walsh Cover Identifier", "cdma2k.Walsh_Id", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5154
16
            { &hf_cdma2k_Num_Pilots,
5155
16
            { "Pilot Count", "cdma2k.Num_Pilots", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5156
16
            { &hf_cdma2k_Srch_Offset_Incl,
5157
16
            { "Search Window Offset Incl", "cdma2k.Srch_Offset_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5158
16
            { &hf_cdma2k_Record_Pilots,
5159
16
            { "Pilot Record", "cdma2k.Record_Pilots", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5160
16
            { &hf_cdma2k_Pilot_Pn,
5161
16
            { "PN Sequence Offset Idx", "cdma2k.Pilot_Pn", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5162
16
            { &hf_cdma2k_Srch_Offset,
5163
16
            { "Search Window Offset", "cdma2k.Srch_Offset", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5164
16
            { &hf_cdma2k_Add_Pilot_Rec_Incl,
5165
16
            { "Add Pilot Info Incl", "cdma2k.Add_Pilot_Rec_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5166
16
            { &hf_cdma2k_Pilot_Rec_Type,
5167
16
            { "Pilot Rec Type", "cdma2k.Pilot_Rec_Type", FT_UINT8, BASE_HEX_DEC, VALS(Pilot_Rec_Types), 0x0, NULL, HFILL } },
5168
16
            { &hf_cdma2k_Pwr_Comb_Ind,
5169
16
            { "Power Cntl Indicator", "cdma2k.Pwr_Comb_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5170
16
            { &hf_cdma2k_Code_Chan_Fch,
5171
16
            { "CodeCh On Fundamental Channel", "cdma2k.Code_Chan_Fch", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5172
16
            { &hf_cdma2k_Qof_Mask_Id_Fch,
5173
16
            { "Qof Idx On Fundamental Channel", "cdma2k.Qof_Mask_Id_Fch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5174
16
            { &hf_cdma2k_Num_Sch,
5175
16
            { "Supplemental Channel Record Cnt", "cdma2k.Num_Sch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5176
16
            { &hf_cdma2k_Record_Sch,
5177
16
            { "Supplemental Channel Records", "cdma2k.Record_Sch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5178
16
            { &hf_cdma2k_Pilot_Incl,
5179
16
            { "Pilot Incl", "cdma2k.Pilot_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5180
16
            { &hf_cdma2k_Code_Chan_Sch,
5181
16
            { "Code Channel", "cdma2k.Code_Chan_Sch", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5182
16
            { &hf_cdma2k_Qof_Mask_Id_Sch,
5183
16
            { "Qof Index", "cdma2k.Qof_Mask_Id_Sch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5184
16
            { &hf_cdma2k_3xFch_Info_Incl,
5185
16
            { "3xFundamentalCh Info Incl", "cdma2k.3xFch_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5186
16
            { &hf_cdma2k_3xFch_Low_Incl,
5187
16
            { "Fundamental CodeCh On Low Freq Incl", "cdma2k.3xFch_Low_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5188
16
            { &hf_cdma2k_Qof_Mask_Id_Fch_Low,
5189
16
            { "Qof Idx", "cdma2k.Qof_Mask_Id_Fch_Low", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5190
16
            { &hf_cdma2k_Code_Chan_Fch_Low,
5191
16
            { "Code Channel", "cdma2k.Code_Chan_Fch_Low", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5192
16
            { &hf_cdma2k_3xFch_High_Incl,
5193
16
            { "Fundamental CodeCh On High Freq Incl", "cdma2k.3xFch_High_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5194
16
            { &hf_cdma2k_Qof_Mask_Id_Fch_High,
5195
16
            { "Qof Idx", "cdma2k.Qof_Mask_Id_Fch_High", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5196
16
            { &hf_cdma2k_Code_Chan_Fch_High,
5197
16
            { "Code Channel", "cdma2k.Code_Chan_Fch_High", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5198
16
            { &hf_cdma2k_3xSch_Info_Incl,
5199
16
            { "3x SCh Info Incl", "cdma2k.3xSch_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5200
16
            { &hf_cdma2k_3xSch_Low_Incl,
5201
16
            { "Sch On Low Freq Incl", "cdma2k.3xSch_Low_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5202
16
            { &hf_cdma2k_Qof_Mask_Id_Sch_Low,
5203
16
            { "Qof Index", "cdma2k.Qof_Mask_Id_Sch_Low", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5204
16
            { &hf_cdma2k_Code_Chan_Sch_Low,
5205
16
            { "Code Channel", "cdma2k.Code_Chan_Sch_Low", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5206
16
            { &hf_cdma2k_3xSch_High_Incl,
5207
16
            { "Sch On High Freq Incl", "cdma2k.3xSch_High_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5208
16
            { &hf_cdma2k_Qof_Mask_Id_Sch_High,
5209
16
            { "Qof Index", "cdma2k.Qof_Mask_Id_Sch_High", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5210
16
            { &hf_cdma2k_Code_Chan_Sch_High,
5211
16
            { "Code Channel", "cdma2k.Code_Chan_Sch_High", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5212
16
            { &hf_cdma2k_Ccsh_Included,
5213
16
            { "Ccsh Incl", "cdma2k.Ccsh_Included", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5214
16
            { &hf_cdma2k_Use_Ccsh_Encoder_Time,
5215
16
            { "Ccsh Encoder Indicator", "cdma2k.Use_Ccsh_Encoder_Time", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5216
16
            { &hf_cdma2k_Ccsh_Encoder_Action_Time,
5217
16
            { "Ccsh Encoder Action Time", "cdma2k.Ccsh_Encoder_Action_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5218
16
            { &hf_cdma2k_Ccsh_Encoder_Type,
5219
16
            { "Ccsh Encoder Type", "cdma2k.Ccsh_Encoder_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5220
16
            { &hf_cdma2k_Code_Chan_Dcch,
5221
16
            { "CodeCh On Dedicated Channel", "cdma2k.Code_Chan_Dcch", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5222
16
            { &hf_cdma2k_Qof_Mask_Id_Dcch,
5223
16
            { "Qof Idx On Dedicated Channel", "cdma2k.Qof_Mask_Id_Dcch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5224
16
            { &hf_cdma2k_3xDcch_Info_Incl,
5225
16
            { "3xDedicatedCh Info Incl", "cdma2k.3xDcch_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5226
16
            { &hf_cdma2k_3xDcch_Low_Incl,
5227
16
            { "Dedicated CodeCh On Low Freq Incl", "cdma2k.3xDcch_Low_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5228
16
            { &hf_cdma2k_Qof_Mask_Id_Dcch_Low,
5229
16
            { "Qof Idx", "cdma2k.Qof_Mask_Id_Dcch_Low", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5230
16
            { &hf_cdma2k_Code_Chan_Dcch_Low,
5231
16
            { "Code Channel", "cdma2k.Code_Chan_Dcch_Low", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5232
16
            { &hf_cdma2k_3xDcch_High_Incl,
5233
16
            { "Dedicated CodeCh On High Freq Incl", "cdma2k.3xDcch_High_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5234
16
            { &hf_cdma2k_Qof_Mask_Id_Dcch_High,
5235
16
            { "Qof Idx", "cdma2k.Qof_Mask_Id_Dcch_High", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5236
16
            { &hf_cdma2k_Code_Chan_Dcch_High,
5237
16
            { "Code Channel", "cdma2k.Code_Chan_Dcch_High", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5238
16
            { &hf_cdma2k_Fundicated_Bcmc_Ind,
5239
16
            { "BCMC On FundicatedCh Indicator", "cdma2k.Fundicated_Bcmc_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5240
16
            { &hf_cdma2k_For_Cpcch_Walsh,
5241
16
            { "Forward Cpcch Walsh Code", "cdma2k.For_Cpcch_Walsh", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5242
16
            { &hf_cdma2k_For_Cpcsch,
5243
16
            { "Forward Cpcsch", "cdma2k.For_Cpcsch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5244
16
            { &hf_cdma2k_Rev_Fch_Assigned,
5245
16
            { "Rev FCh Channel Assigned", "cdma2k.Rev_Fch_Assigned", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5246
16
            { &hf_cdma2k_Add_Plcm_For_Fch_Incl,
5247
16
            { "Add PLCM For Forward Fch Incl", "cdma2k.Add_Plcm_For_Fch_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5248
16
            { &hf_cdma2k_Add_Plcm_For_Fch_Type,
5249
16
            { "Add PLCM For Forward Fch Type", "cdma2k.Add_Plcm_For_Fch_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5250
16
            { &hf_cdma2k_Add_Plcm_For_Fch_39,
5251
16
            { "Add PLCM For Forward Fch", "cdma2k.Add_Plcm_For_Fch_39", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5252
16
            { &hf_cdma2k_For_Cpcch_Info_Incl,
5253
16
            { "Cpcch Info Incl", "cdma2k.For_Cpcch_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5254
16
            { &hf_cdma2k_Info_Rec,
5255
16
            { "Information Records", "cdma2k.Info_Rec", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5256
16
            { &hf_cdma2k_Chari,
5257
16
            { "Chari", "cdma2k.Chari", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5258
16
            { &hf_cdma2k_Number_Type,
5259
16
            { "Number Type", "cdma2k.Number_Type", FT_UINT8, BASE_HEX_DEC, VALS(Number_Types), 0x0, NULL, HFILL } },
5260
16
            { &hf_cdma2k_Number_Plan,
5261
16
            { "Number Plan", "cdma2k.Number_Plan", FT_UINT8, BASE_HEX_DEC, VALS(Number_Plan_Types), 0x0, NULL, HFILL } },
5262
16
            { &hf_cdma2k_Pres_Indicator,
5263
16
            { "Presentation Indicator", "cdma2k.Pres_Indicator", FT_UINT8, BASE_HEX_DEC, VALS(Pres_Ind_Types), 0x0, NULL, HFILL } },
5264
16
            { &hf_cdma2k_Scr_Indicator,
5265
16
            { "Screening Indicator", "cdma2k.Scr_Indicator", FT_UINT8, BASE_HEX_DEC, VALS(Scr_Ind_Types), 0x0, NULL, HFILL } },
5266
16
            { &hf_cdma2k_Signal_Type,
5267
16
            { "Signal Type", "cdma2k.Signal_Type", FT_UINT8, BASE_HEX_DEC, VALS(Signal_Types), 0x0, NULL, HFILL } },
5268
16
            { &hf_cdma2k_Alert_Pitch,
5269
16
            { "Alert Pitch", "cdma2k.Alert_Pitch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5270
16
            { &hf_cdma2k_Signal,
5271
16
            { "Signal", "cdma2k.Signal", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5272
16
            { &hf_cdma2k_Msg_Count,
5273
16
            { "Msg Count", "cdma2k.Msg_Count", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5274
16
            { &hf_cdma2k_Extension_Bit,
5275
16
            { "Extension Bit", "cdma2k.Extension_Bit", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5276
16
            { &hf_cdma2k_Subaddress_Type,
5277
16
            { "Subaddress Type", "cdma2k.Subaddress_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5278
16
            { &hf_cdma2k_Odd_Even_Ind,
5279
16
            { "Odd/Even Indicator", "cdma2k.Odd_Even_Ind", FT_UINT8, BASE_HEX_DEC, VALS(Odd_Even_Ind_Types), 0x0, NULL, HFILL } },
5280
16
            { &hf_cdma2k_Redirection_Reason,
5281
16
            { "Redirection Reason", "cdma2k.Redirection_Reason", FT_UINT8, BASE_HEX_DEC, VALS(Redir_Reason_Types), 0x0, NULL, HFILL } },
5282
16
            { &hf_cdma2k_Pulse_Freq,
5283
16
            { "Pulse Frequency", "cdma2k.Pulse_Freq", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5284
16
            { &hf_cdma2k_Pulse_On_Time,
5285
16
            { "Pulse On Time", "cdma2k.Pulse_On_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5286
16
            { &hf_cdma2k_Pulse_Off_Time,
5287
16
            { "Pulse Off Time", "cdma2k.Pulse_Off_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5288
16
            { &hf_cdma2k_Pulse_Count,
5289
16
            { "Pulse Count", "cdma2k.Pulse_Count", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5290
16
            { &hf_cdma2k_Cadence_Count,
5291
16
            { "Cadence Count", "cdma2k.Cadence_Count", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5292
16
            { &hf_cdma2k_Num_Grps,
5293
16
            { "Num Of Groups", "cdma2k.Num_Grps", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5294
16
            { &hf_cdma2k_Amplitude,
5295
16
            { "Amplitude", "cdma2k.Amplitude", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5296
16
            { &hf_cdma2k_Freq,
5297
16
            { "Tone Frequency", "cdma2k.Freq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5298
16
            { &hf_cdma2k_On_Time,
5299
16
            { "On Time", "cdma2k.On_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5300
16
            { &hf_cdma2k_Off_Time,
5301
16
            { "Off Time", "cdma2k.Off_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5302
16
            { &hf_cdma2k_Repeat,
5303
16
            { "Repeat", "cdma2k.Repeat", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5304
16
            { &hf_cdma2k_Delay,
5305
16
            { "Delay", "cdma2k.Delay", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5306
16
            { &hf_cdma2k_Cadence_Type,
5307
16
            { "Cadence Type", "cdma2k.Cadence_Type", FT_UINT8, BASE_HEX_DEC, VALS(Cadence_Types), 0x0, NULL, HFILL } },
5308
16
            { &hf_cdma2k_Polarity_Incl,
5309
16
            { "Polarity Incl", "cdma2k.Polarity_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5310
16
            { &hf_cdma2k_Toggle_Mode,
5311
16
            { "Toggle Mode", "cdma2k.Toggle_Mode", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5312
16
            { &hf_cdma2k_Reverse_Polarity,
5313
16
            { "Reverse Polarity", "cdma2k.Reverse_Polarity", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5314
16
            { &hf_cdma2k_Pwr_Denial_Time,
5315
16
            { "Power Denial Time", "cdma2k.Pwr_Denial_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5316
16
            { &hf_cdma2k_Call_Waiting_Ind,
5317
16
            { "Call Waiting Ind", "cdma2k.Call_Waiting_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5318
16
            { &hf_cdma2k_Request_Mode,
5319
16
            { "Request Mode", "cdma2k.Request_Mode", FT_UINT8, BASE_DEC, VALS(l3dpu_ORM_PRM_req_mode_values), 0x0, NULL, HFILL } },
5320
16
            { &hf_cdma2k_Special_Service,
5321
16
            { "Special Service", "cdma2k.Special_Service", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5322
16
            { &hf_cdma2k_pm,
5323
16
            { "Privacy Mode", "cdma2k.PM", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5324
16
            {  &hf_cdma2k_digit_mode,
5325
16
            { "Digit Mode", "cdma2k.Digit_Mode", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5326
16
            {  &hf_cdma2k_More_Fields,
5327
16
            { "More Fields", "cdma2k.More_Fields", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5328
16
            {  &hf_cdma2k_Nar_An_Cap,
5329
16
            { "NAR AN CAP", "cdma2k.Nar_An_Cap", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5330
16
            {  &hf_cdma2k_Paca_Reorig,
5331
16
            { "PACA REORIG", "cdma2k.Paca_Reorig", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5332
16
            {  &hf_cdma2k_More_Records,
5333
16
            { "More Records", "cdma2k.More_Records", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5334
16
            {  &hf_cdma2k_encryption_supported,
5335
16
            { "Encryption Supported", "cdma2k.Encryption_Supported", FT_UINT8, BASE_DEC, VALS(l3dpu_ORM_encryption_algo_values), 0x0, NULL, HFILL } },
5336
16
            {  &hf_cdma2k_Paca_Supported,
5337
16
            { "Paca Supported", "cdma2k.Paca_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5338
16
            {  &hf_cdma2k_num_alt_so,
5339
16
            { "NUM ALT SO", "cdma2k.NUM_ALT_SO", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5340
16
            {  &hf_cdma2k_Alt_So,
5341
16
            { "Alt So", "cdma2k.Alt_So", FT_UINT16, BASE_HEX_DEC, VALS(Page_Req_Service_Option_Types), 0x0, NULL, HFILL } },
5342
16
            {  &hf_cdma2k_DRS,
5343
16
            { "Data ready to send", "cdma2k.DRS", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5344
16
            {  &hf_cdma2k_SR_ID,
5345
16
            { "SR ID", "cdma2k.SR_ID", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5346
16
            {  &hf_cdma2k_Otd_Supported,
5347
16
            { "OTD Supported", "cdma2k.OTD_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5348
16
            {  &hf_cdma2k_For_Rc_Pref,
5349
16
            { "Forward Rc Pref", "cdma2k.For_Rc_Pref", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5350
16
            {  &hf_cdma2k_Rev_Rc_Pref,
5351
16
            { "Reverse Rc Pref", "cdma2k.Rev_Rc_Pref", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5352
16
            {  &hf_cdma2k_Fch_Supported,
5353
16
            { "Fch Supported","cdma2k.Fch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5354
16
            {  &hf_cdma2k_Fch_capability_type_specific_Fields,
5355
16
            { "Fch capability type specific Fields","cdma2k.Fch_cap_type_specific_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5356
16
            {  &hf_cdma2k_Fch_Frame_Size,
5357
16
            { "Frame Size", "cdma2k.Fch_Frame_Size", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5358
16
            {  &hf_cdma2k_For_Fch_Len,
5359
16
            { "Forward Fch Len", "cdma2k.For_Fch_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5360
16
            {  &hf_cdma2k_For_Fch_Rc_Map,
5361
16
            { "Forward Fch Rc Map", "cdma2k.For_Fch_Rc_Map", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL } },
5362
16
            {  &hf_cdma2k_Rev_Fch_Len,
5363
16
            { "Reverse Fch Len", "cdma2k.Rev_Fch_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5364
16
            {  &hf_cdma2k_Rev_Fch_Rc_Map,
5365
16
            { "Reverse Fch Rc Map", "cdma2k.Rev_Fch_Rc_Map", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL } },
5366
16
            {  &hf_cdma2k_Dcch_capability_type_specific_Fields,
5367
16
            { "Dcch cap type specific Fields","cdma2k.Dcch_cap_type_specific_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5368
16
            {  &hf_cdma2k_Dcch_Supported,
5369
16
            { "Dcch Supported","cdma2k.Dcch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5370
16
            {  &hf_cdma2k_Dcch_Frame_Size,
5371
16
            { "Frame Size", "cdma2k.Dcch_Frame_Size", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5372
16
            {  &hf_cdma2k_For_Dcch_Len,
5373
16
            { "Forward Dcch Len", "cdma2k.For_Dcch_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5374
16
            {  &hf_cdma2k_For_Dcch_Rc_Map,
5375
16
            { "Forward Dcch Rc Map", "cdma2k.For_Dcch_Rc_Map", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL } },
5376
16
            {  &hf_cdma2k_Rev_Dcch_Len,
5377
16
            { "Reverse Dcch Len", "cdma2k.Rev_Dcch_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5378
16
            { &hf_cdma2k_Rev_Dcch_Rc_Map,
5379
16
            { "Reverse Dcch Rc Map", "cdma2k.Rev_Dcch_Rc_Map", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL } },
5380
16
            {  &hf_cdma2k_Rev_Fch_Gating_Req,
5381
16
            { "RevFch GatingReq","cdma2k.Rev_Fch_GatingReq", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5382
16
            {  &hf_cdma2k_Orig_Reason,
5383
16
                { "Orig Reason","cdma2k.Orig_Reason", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5384
16
            {  &hf_cdma2k_Orig_Count,
5385
16
            { "Orig Count", "cdma2k.Orig_Count", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5386
16
            {  &hf_cdma2k_Sts_Supported,
5387
16
        { "Sts Supported","cdma2k.Sts_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5388
16
        {  &hf_cdma2k_ThreeXCchSupported,
5389
16
        { "ThreeXCch Supported","cdma2k.ThreeXCch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5390
16
        {  &hf_cdma2k_Wll_Incl,
5391
16
        { "Wll Incl","cdma2k.Wll_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5392
16
        {  &hf_cdma2k_Wll_Device_Type,
5393
16
        { "Wll Device Type", "cdma2k.Wll_Device_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5394
16
        {  &hf_cdma2k_Global_Emergency_Call,
5395
16
                { "Global Emergency Call","cdma2k.Global_Emergency_Call", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5396
16
        {  &hf_cdma2k_Ms_Init_Pos_Loc_Ind,
5397
16
        { "Ms Init Pos Loc Ind","cdma2k.Ms_Init_Pos_Loc_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5398
16
        {  &hf_cdma2k_Qos_Parms_Incl,
5399
16
        { "Qos Parms Incl","cdma2k.Qos_Parms_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5400
16
        {  &hf_cdma2k_Qos_Parms_Length,
5401
16
        { "Qos Parms Length", "cdma2k.Qos_Parms_Length", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5402
16
        {  &hf_cdma2k_Qos_Parms,
5403
16
        { "Qos Parms", "cdma2k.Qos_Parms", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5404
16
        {  &hf_cdma2k_Enc_Info_Incl,
5405
16
        { "Enc Info Incl","cdma2k.EncInfo_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5406
16
        {  &hf_cdma2k_Sig_Encrypt_Supp,
5407
16
        { "Sig Encrypt Supported", "cdma2k.Sig_Encrypt_Supp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5408
16
        {  &hf_cdma2k_DSig_Encrypt_Req,
5409
16
        { "DSig Encrypt Req","cdma2k.DSig_Encrypt_Req", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5410
16
        {  &hf_cdma2k_CSig_Encrypt_Req,
5411
16
        { "CSig Encrypt Req","cdma2k.CSig_Encrypt_Req", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5412
16
        {  &hf_cdma2k_New_Sseq_H,
5413
16
                { "New SseqH", "cdma2k.New_Sseq_H", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5414
16
        {  &hf_cdma2k_New_Sseq_H_Sig,
5415
16
                { "New SseqH Sig", "cdma2k.New_Sseq_H_Sig", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5416
16
        {  &hf_cdma2k_Ui_Encrypt_Req,
5417
16
        { "Ui Encrypt Req","cdma2k.Ui_Encrypt_Req", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5418
16
        {  &hf_cdma2k_Prev_Sid_Incl,
5419
16
        { "Prev Sid Incl","cdma2k.Prev_Sid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5420
16
        {  &hf_cdma2k_Prev_Sid,
5421
16
        { "Prev Sid", "cdma2k.Prev_Sid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5422
16
        {  &hf_cdma2k_Prev_Nid_Incl,
5423
16
        { "Prev Nid_Incl","cdma2k.Prev_Nid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5424
16
        {  &hf_cdma2k_Prev_Nid,
5425
16
        { "Prev Nid", "cdma2k.Prev_Nid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5426
16
        {  &hf_cdma2k_Prev_Pzid_Incl,
5427
16
        { "Prev Pzid Incl","cdma2k.Prev_Pzid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5428
16
        {  &hf_cdma2k_Prev_Pzid,
5429
16
        { "Prev Pzid", "cdma2k.Prev_Pzid", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5430
16
        {  &hf_cdma2k_So_Bitmap_Ind,
5431
16
        { "So Bitmap Ind", "cdma2k.So_Bitmap_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5432
16
        {  &hf_cdma2k_So_Group_Num,
5433
16
        { "So Group Num", "cdma2k.So_Group_Num", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5434
16
        {  &hf_cdma2k_So_Bitmap,
5435
16
                { "So Bitmap", "cdma2k.So_Bitmap", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5436
16
        {  &hf_cdma2k_Cmea,
5437
16
                { "Cell Msg Encry Alg", "cdma2k.Cmea", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5438
16
        {  &hf_cdma2k_Ecmea,
5439
16
                { "Enhanced Cell Msg Encry Alg", "cdma2k.Ecmea", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5440
16
        {  &hf_cdma2k_Rea,
5441
16
                { "Rijndael Encry Alg", "cdma2k.Rea", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5442
5443
16
        { &hf_cdma2k_Reserved,
5444
16
            { "Reserved", "cdma2k.Reserved", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5445
5446
16
        {  &hf_cdma2k_AlertWithInfoMsg,
5447
16
            { "Alert With Info Msg", "cdma2k.AlertWithInfoMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5448
16
        {  &hf_cdma2k_Hook_Status,
5449
16
            { "Hook_Status", "cdma2k.Hook_Status", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
5450
16
        {  &hf_cdma2k_MeIdUhdmMsg,
5451
16
            { "MeIdUhdmMsg", "cdma2k.MeIdUhdmMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5452
16
        {  &hf_cdma2k_UhdmMsg,
5453
16
            { "UhdmMsg", "cdma2k.UhdmMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5454
16
        { &hf_cdma2k_ext_scm_ind,
5455
16
            { "Extended SCM Indicator", "cdma2k.ext_scm_ind", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values7), 0x0, NULL, HFILL } },
5456
16
        { &hf_cdma2k_scm_dual_mode,
5457
16
            { "Dual Mode", "cdma2k.scm.dual_mode", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values6), 0x0, NULL, HFILL } },
5458
16
        { &hf_cdma2k_scm_slotted_class,
5459
16
            { "Slotted Class", "cdma2k.scm.slotted_class", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values5), 0x0, NULL, HFILL } },
5460
16
        { &hf_cdma2k_scm_meid_sup,
5461
16
            { "MEID support indicator", "cdma2k.scm.meid_sup", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values4), 0x0, NULL, HFILL } },
5462
16
        { &hf_cdma2k_scm_25mhz_bw,
5463
16
            { "25 MHz Bandwidth", "cdma2k.scm.25mhz_bw", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
5464
16
        { &hf_cdma2k_scm_trans,
5465
16
            { "Transmission", "cdma2k.scm.trans", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values2), 0x0, NULL, HFILL } },
5466
16
        { &hf_cdma2k_scm_pow_class,
5467
16
            { "Power Class for Band Class 0 Analog Operation", "cdma2k.scm.pow_class", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
5468
16
    };
5469
5470
16
    static int *ett[] = {
5471
16
        &ett_cdma2k_msghdr,
5472
16
            &ett_cdma2k_subtree,
5473
16
            &ett_cdma2k_subtree1,
5474
16
            &ett_cdma2k_subtree2,
5475
16
            &ett_cdma2k_m_s1,
5476
16
            &ett_cdma2000_scm
5477
16
    };
5478
5479
16
    static ei_register_info ei[] = {
5480
16
        { &ei_cdma2k_error, { "cdma2k.error", PI_PROTOCOL, PI_ERROR, "Violation of protocol specs (e.g. invalid information element)", EXPFILL }},
5481
16
    };
5482
5483
16
    expert_module_t* expert_cdma2k;
5484
5485
16
    proto_cdma2k = proto_register_protocol ("CDMA2K", "CDMA2K", "cdma2k");
5486
5487
16
    cdma2k_handle = register_dissector("cdma2k", dissect_cdma2k, proto_cdma2k);
5488
5489
16
    proto_register_field_array(proto_cdma2k, hf, array_length(hf));
5490
16
    proto_register_subtree_array(ett, array_length(ett));
5491
5492
16
    expert_cdma2k = expert_register_protocol(proto_cdma2k);
5493
16
    expert_register_field_array(expert_cdma2k, ei, array_length(ei));
5494
16
}
5495
5496
5497
void proto_reg_handoff_cdma2k(void)
5498
16
{
5499
16
}
5500
/*
5501
* Editor modelines
5502
*
5503
* Local Variables:
5504
* c-basic-offset: 4
5505
* tab-width: 8
5506
* indent-tabs-mode: nil
5507
* End:
5508
*
5509
* ex: set shiftwidth=4 tabstop=8 expandtab:
5510
* :indentSize=4:tabSize=8:noTabs=true:
5511
*/