Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-cdma2k.c
blob8d4ecd381bbb692baa7ff0c9dd6a9b6c87dd683d
1 /*
2 * packet-cdma2k.c
4 * Wireshark - Network traffic analyzer
5 * By Gerald Combs <gerald@wireshark.org>
6 * Copyright 1998 Gerald Combs
8 * SPDX-License-Identifier: GPL-2.0-or-later
10 * Ref CDMA2K: 3GPP2 C.S0005-E v3.0
13 #include "config.h"
15 #include <epan/packet.h>
16 #include <epan/expert.h>
18 void proto_reg_handoff_cdma2k(void);
19 void proto_register_cdma2k(void);
21 /* cdma2k Handle for the dissection */
22 static dissector_handle_t cdma2k_handle;
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);
37 static void cdma2k_message_ADDR_FIELDS(proto_item *item, tvbuff_t *tvb, proto_tree *tree, uint16_t *l_offset, uint16_t headerRecLen);
38 static void cdma2k_message_AUTH_FIELDS(proto_item *item, tvbuff_t *tvb, proto_tree *tree, uint16_t *l_offset, uint16_t headerRecLen);
39 static void cdma2k_message_IMSI_CLASS_SUBFIELDS(proto_item *item, tvbuff_t *tvb, proto_tree *tree, uint16_t *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,uint16_t *l_offset, uint16_t chInd,uint16_t schIncl);
45 /*Initialize all the header parameters that are to be displayed*/
47 static int proto_cdma2k;
48 static int hf_cdma2k_msghdr;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
193 /* Service Status Order */
194 static int hf_cdma2k_Sr_Id_Bitmap;
195 static int hf_cdma2k_Service_Status;
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;
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;
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;
279 /* Auth Chall Rsp Msg Parms */
280 static int hf_cdma2k_Authu;
282 /* Auth Chall Req Msg Parms */
283 static int hf_cdma2k_Randu;
284 static int hf_cdma2k_Gen_Cmea_Key;
286 /* Gen Page Req Msg Parms */
287 static int hf_cdma2k_service_option;
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;
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;
478 /* Alert With Info Msg Parms */
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;
513 static int hf_cdma2k_Reserved;
515 static int hf_cdma2k_Cmea;
516 static int hf_cdma2k_Ecmea;
517 static int hf_cdma2k_Rea;
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;
526 static expert_field ei_cdma2k_error;
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;
536 #define CDMA2KRegIndMsg 0x01
537 #define CDMA2KOrderIndMsg 0x02
538 #define CDMA2KDataBurstIndMsg 0x03
539 #define CDMA2KOrigIndMsg 0x04
540 #define CDMA2KPageResponseMsg 0x05
541 #define CDMA2KAuthChallRspMsg 0x06
542 #define CDMA2KOrderCmdMsg 0x07
543 #define CDMA2KDataBurstCmdMsg 0x09
544 #define CDMA2KAuthChallReqMsg 0x0A
545 #define CDMA2KGenPageReqMsg 0x11
547 #define CDMA2KAlertWithInfoMsg 0x03
548 #define CDMA2KUniversalHandoffDirectionMsg 0x22
549 #define CDMA2KMeIdUniversalHandoffDirectionMsg 0x35
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 },
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 },
575 #endif
577 /* TLAC Channel Types */
578 static const value_string Channel_Types[] = {
579 { 0, "CSCH_LOGICAL_CHANNEL" },
580 { 1, "DSCH_LOGICAL_CHANNEL" },
581 { 0, NULL },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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)" },
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" },
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" },
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)" },
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 },
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 },
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 },
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 },
851 #endif
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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)" },
1164 {0x00, NULL }
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 }
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 }
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_)
1185 uint16_t channel = -1, msgtype = -1, headerRecCnt = -1, headerRecLen = -1, l_offset = -1;
1186 uint16_t headerRecType = -1, inc = -1, count = -1, l3PduLen = -1, authIncl = -1, oneXPrev = -1;
1187 proto_item *item1 = NULL;
1188 proto_tree *subtree = NULL, *subtree1 = NULL, *subtree2 = NULL, *subtree3 = NULL;
1190 item1 = proto_tree_add_item(tree,hf_cdma2k_tlac_Header, tvb, *offset,1, ENC_NA);
1191 subtree = proto_item_add_subtree(item1, ett_cdma2k_subtree);
1193 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Channel, tvb, *offset*8,1, ENC_BIG_ENDIAN);
1194 channel = tvb_get_bits8(tvb,*offset*8,1);
1195 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_1x_Protocol_Revision, tvb, *offset*8 + 1,8, ENC_BIG_ENDIAN);
1196 oneXPrev = tvb_get_bits8(tvb,*offset*8 + 1,8);
1197 *offset+=1;
1199 if (channel == 0)
1201 /*get LSB 6 bits for MsgType if r-csch*/
1202 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_msgType, tvb, *offset*8 + 3,6, ENC_BIG_ENDIAN);
1203 msgtype = tvb_get_bits8(tvb,*offset*8 + 3,6);
1204 *offset+=1;
1206 else
1208 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_msgType, tvb, *offset*8 + 1,8, ENC_BIG_ENDIAN);
1209 msgtype = tvb_get_bits8(tvb,*offset*8 + 1,8);
1210 *offset+=1;
1213 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Records_Count, tvb, *offset*8 + 1,4, ENC_BIG_ENDIAN);
1214 headerRecCnt = tvb_get_bits8(tvb,*offset*8 + 1,4);
1215 l_offset = *offset*8 + 5;
1217 item1 = proto_tree_add_item(subtree, hf_cdma2k_tlac_Header_Record, tvb, *offset,1, ENC_NA);
1218 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
1220 for(count = 1; count <= headerRecCnt; count++)
1222 item1 = proto_tree_add_item(subtree1, hf_cdma2k_tlac_Header_Record, tvb, l_offset/8,1, ENC_NA);
1223 proto_item_append_text(item1," : [%02x]",count);
1224 subtree2 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
1225 proto_tree_add_bits_item(subtree2,hf_cdma2k_tlac_Header_Record_Type, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1226 headerRecType = tvb_get_bits8(tvb,l_offset, 4);
1227 l_offset+=4;
1229 if(headerRecType == 0)
1231 proto_tree_add_bits_item(subtree2,hf_cdma2k_tlac_Header_Record_Length, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1232 headerRecLen = tvb_get_bits8(tvb,l_offset, 8);
1233 l_offset+=8;
1234 item1 = proto_tree_add_item(subtree2, hf_cdma2k_tlac_Header_Record_Values, tvb, (l_offset/8),headerRecLen+1 , ENC_NA);
1235 subtree3 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
1236 cdma2k_message_ADDR_FIELDS(item1, tvb, subtree3, &l_offset, headerRecLen);
1238 else if(headerRecType == 1)
1240 authIncl = 1;
1241 proto_tree_add_bits_item(subtree2,hf_cdma2k_tlac_Header_Record_Length, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1242 headerRecLen = tvb_get_bits8(tvb,l_offset, 8);
1243 l_offset+=8;
1244 item1 = proto_tree_add_item(subtree2, hf_cdma2k_tlac_Header_Record_Values, tvb, (l_offset/8), headerRecLen+1, ENC_NA);
1245 subtree3 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
1246 cdma2k_message_AUTH_FIELDS(item1, tvb, subtree3, &l_offset, headerRecLen);
1248 else
1250 proto_tree_add_bits_item(subtree2,hf_cdma2k_tlac_Header_Record_Length, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1251 headerRecLen = tvb_get_bits8(tvb,l_offset, 8);
1252 l_offset+=8;
1253 item1 = proto_tree_add_item(subtree2, hf_cdma2k_tlac_Header_Record_Values, tvb, (l_offset/8), headerRecLen+1, ENC_NA);
1255 for (inc = 0; inc < (headerRecLen*8); )
1257 proto_item_append_text(item1," 0x%02x ",tvb_get_bits8(tvb,l_offset, 8));
1258 l_offset+=8;
1259 inc+=8;
1264 if(l_offset%8 == 0)
1266 *offset = (l_offset/8);
1268 else
1270 proto_tree_add_bits_item(subtree1, hf_cdma2k_tlac_Header_Record_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
1271 *offset = (l_offset/8) + 1;
1274 item1 = proto_tree_add_item(subtree1, hf_cdma2k_tlac_Pdu, tvb, *offset,-1, ENC_NA);
1275 subtree2 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
1276 proto_tree_add_item(subtree2,hf_cdma2k_tlac_Pdu_Length, tvb, *offset,2, ENC_BIG_ENDIAN);
1277 l3PduLen = tvb_get_bits16(tvb,*offset*8,16, ENC_BIG_ENDIAN);
1278 *offset+=2;
1280 if(channel == 0)
1282 switch(msgtype)
1284 case CDMA2KRegIndMsg:
1285 { cdma2k_message_REGISTRATION(item1, tvb, subtree2, offset, oneXPrev); break;}
1287 case CDMA2KOrderIndMsg:
1288 { cdma2k_message_ORDER_IND(item1, tvb, subtree2,offset); break;}
1290 case CDMA2KDataBurstIndMsg:
1291 { cdma2k_message_DATA_BURST_IND(item1, tvb, subtree2,offset); break;}
1293 case CDMA2KOrigIndMsg:
1294 { cdma2k_message_ORIGINATION(item1, tvb, subtree2,offset,authIncl,oneXPrev); break;}
1296 case CDMA2KPageResponseMsg:
1297 { cdma2k_message_PAGE_RESPONSE(item1, tvb, subtree2,offset,authIncl,oneXPrev); break;}
1299 case CDMA2KAuthChallRspMsg:
1300 { cdma2k_message_AUTH_CHALL_RSP(item1, tvb, subtree2,offset); break;}
1302 case CDMA2KOrderCmdMsg:
1303 { cdma2k_message_ORDER_CMD(item1, tvb, subtree2,offset); break;}
1305 case CDMA2KDataBurstCmdMsg:
1306 { cdma2k_message_DATA_BURST_CMD(item1, tvb, subtree2,offset); break;}
1308 case CDMA2KAuthChallReqMsg:
1309 { cdma2k_message_AUTH_CHALL_REQ(item1, tvb, subtree2,offset); break;}
1311 case CDMA2KGenPageReqMsg:
1312 { cdma2k_message_GEN_PAGE_REQ(item1, tvb, subtree2,offset,l3PduLen); break;}
1314 default:
1315 { *noerror = 0; break; }
1318 else
1320 switch(msgtype)
1322 case CDMA2KAlertWithInfoMsg:
1323 { cdma2k_message_ALERT_WITH_INFO(item1, tvb, subtree2,offset); break;}
1325 case CDMA2KUniversalHandoffDirectionMsg:
1326 case CDMA2KMeIdUniversalHandoffDirectionMsg:
1327 { cdma2k_message_HANDOFF_DIR(item1, tvb, subtree2,offset,msgtype); break;}
1329 default:
1330 { *noerror = 0; break; }
1336 /* 3GPP2 C.S0005-E v3.0 Table 2.3.3-1. Station Class Mark */
1338 /* SCM Fields values */
1339 static const value_string l3dpu_SCM_field_values7[] = {
1340 { 0x00, "Other bands" },
1341 { 0x01, "Band Classes 1,4,14" },
1342 { 0x00, NULL }
1345 static const value_string l3dpu_SCM_field_values6[] = {
1346 { 0x00, "CDMA Only" },
1347 { 0x01, "?" },
1348 { 0x00, NULL }
1351 static const value_string l3dpu_SCM_field_values5[] = {
1352 { 0x00, "Non-Slotted" },
1353 { 0x01, "Slotted" },
1354 { 0x00, NULL }
1357 static const value_string l3dpu_SCM_field_values4[] = {
1358 { 0x00, "MEID not configured" },
1359 { 0x01, "MEID configured" },
1360 { 0x00, NULL }
1364 static const value_string l3dpu_SCM_field_values2[] = {
1365 { 0x00, "Continuous" },
1366 { 0x01, "Discontinuous" },
1367 { 0x00, NULL }
1370 static void
1371 dissect_cdma2000_scm(tvbuff_t* tvb, proto_tree* tree, unsigned bit_offset)
1373 proto_tree *sub_tree = proto_tree_add_subtree(tree, tvb, bit_offset >> 3, 2, ett_cdma2000_scm, NULL, "SCM - Station Class Mark");
1375 /* Extended SCM Indicator bit 7 */
1376 proto_tree_add_bits_item(sub_tree, hf_cdma2k_ext_scm_ind, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1377 bit_offset++;
1378 /* Dual Mode Bit 6 */
1379 proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_dual_mode, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1380 bit_offset++;
1381 /* Slotted Class Bit 5*/
1382 proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_slotted_class, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1383 bit_offset++;
1384 /* MEID support indicator bit 4 */
1385 proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_meid_sup, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1386 bit_offset++;
1387 /* 25 MHz Bandwidth Bit 3 */
1388 proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_25mhz_bw, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1389 bit_offset++;
1390 /* Transmission Bit 2 */
1391 proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_trans, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
1392 bit_offset++;
1393 /* Power Class for Band Class 0 Analog Operation Bit 1 - 0 */
1394 proto_tree_add_bits_item(sub_tree, hf_cdma2k_scm_pow_class, tvb, bit_offset, 2, ENC_BIG_ENDIAN);
1398 static void cdma2k_message_REGISTRATION(proto_item *item, tvbuff_t *tvb, proto_tree *tree, unsigned *offset, uint16_t oneXPrev)
1400 uint16_t mob_P_Rev_Value = -1, mob_P_Rev_Rx = -1;
1401 uint16_t uzid_Incl = -1, geoLoc_Incl = -1, l_offset = -1;
1402 proto_tree *subtree = NULL;
1404 /*iws_Mob_P_Rev_In_Use = 7;*/
1406 item = proto_tree_add_item(tree,hf_cdma2k_RegMsg, tvb, *offset,-1, ENC_NA);
1407 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
1408 proto_tree_add_bits_item(subtree, hf_cdma2k_Reg_Type, tvb, *offset*8,4, ENC_BIG_ENDIAN);
1409 proto_tree_add_bits_item(subtree, hf_cdma2k_Slot_Cycle_Index, tvb, *offset*8 + 4,3, ENC_BIG_ENDIAN);
1410 proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_P_Rev, tvb, *offset*8 + 7,8, ENC_BIG_ENDIAN);
1411 mob_P_Rev_Rx = tvb_get_bits8(tvb,*offset*8 + 7,8);
1412 *offset+=1;
1414 mob_P_Rev_Value = ((oneXPrev >= mob_P_Rev_Rx)? mob_P_Rev_Rx : oneXPrev);
1416 if(mob_P_Rev_Value == 1)
1418 proto_tree_add_bits_item(subtree, hf_cdma2k_Ext_Scm, tvb, *offset*8 + 7,1, ENC_BIG_ENDIAN);
1419 *offset+=1;
1420 /* Jump Over the one bit Reserved Field*/
1421 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, *offset*8,1, ENC_BIG_ENDIAN);
1422 proto_tree_add_bits_item(subtree, hf_cdma2k_Sloted_Mode, tvb, *offset*8 + 1,1, ENC_BIG_ENDIAN);
1423 /*Jump Over the five bit Reserved Field*/
1424 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, *offset*8 + 2,5, ENC_BIG_ENDIAN);
1426 else
1428 dissect_cdma2000_scm(tvb, subtree, *offset * 8 + 7);
1429 *offset+=1;
1432 proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_Term, tvb, *offset*8 + 7,1, ENC_BIG_ENDIAN);
1433 *offset+=1;
1434 l_offset = *offset*8;
1436 if(mob_P_Rev_Value > 3)
1438 proto_tree_add_bits_item(subtree, hf_cdma2k_Return_Cause, tvb, *offset*8,4, ENC_BIG_ENDIAN);
1439 l_offset+=4;
1442 if(mob_P_Rev_Value >= 6)
1444 proto_tree_add_bits_item(subtree, hf_cdma2k_Qpch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1445 l_offset+=1;
1446 proto_tree_add_bits_item(subtree, hf_cdma2k_Enhanced_Rc, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1447 l_offset+=1;
1448 proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1449 uzid_Incl = tvb_get_bits8(tvb,l_offset, 1);
1450 l_offset+=1;
1452 if(uzid_Incl != 0)
1454 proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
1455 l_offset+=16;
1459 if(mob_P_Rev_Value >= 7)
1461 proto_tree_add_bits_item(subtree, hf_cdma2k_GeoLoc_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1462 geoLoc_Incl = tvb_get_bits8(tvb,l_offset, 1);
1463 l_offset+=1;
1465 if(geoLoc_Incl != 0)
1467 proto_tree_add_bits_item(subtree, hf_cdma2k_GeoLoc_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1468 l_offset+=3;
1472 if(l_offset%8 == 0)
1473 *offset = (l_offset/8);
1474 else
1475 *offset = (l_offset/8) + 1;
1479 /* Decode Order Indication Message Parameters */
1480 static void cdma2k_message_ORDER_IND(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
1482 uint16_t addRecLen = -1, ordq = -1, rejectedtype = -1;
1483 uint16_t l_offset = -1, rsc_mode_ind = -1, ordertype = -1;
1484 proto_tree *subtree = NULL, *subtree1 = NULL;
1486 item = proto_tree_add_item(tree,hf_cdma2k_OrderIndMsg, tvb, *offset, -1, ENC_NA);
1487 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
1488 proto_tree_add_bits_item(subtree, hf_cdma2k_Order_Ind, tvb, *offset*8,6, ENC_BIG_ENDIAN);
1489 ordertype = tvb_get_bits8(tvb,*offset*8, 6);
1490 proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Record_Len, tvb, *offset*8 + 6,3, ENC_BIG_ENDIAN);
1491 addRecLen = tvb_get_bits8(tvb,*offset*8 + 6,3);
1492 *offset+=1;
1493 l_offset = *offset*8+1;
1495 if(addRecLen > 0)
1497 item = proto_tree_add_item(subtree, hf_cdma2k_Order_Specific_Fields, tvb, *offset,-1, ENC_NA);
1498 subtree1 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
1500 switch(ordertype)
1502 case 2:
1504 proto_item_append_text(item, " : BASE STATION CHALLENGE Order ");
1506 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1507 l_offset+=8;
1509 proto_tree_add_bits_item(subtree1, hf_cdma2k_Randbs, tvb, l_offset, 32, ENC_BIG_ENDIAN);
1510 l_offset+=32;
1511 break;
1514 case 4:
1516 proto_item_append_text(item, " : REORDER Order ");
1518 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1519 l_offset+=8;
1521 break;
1524 case 19:
1526 proto_item_append_text(item, " : SERVICE OPTION REQUEST Order ");
1528 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1529 l_offset+=8;
1530 proto_tree_add_bits_item(subtree1, hf_cdma2k_service_option, tvb, l_offset, 16, ENC_BIG_ENDIAN);
1531 l_offset+=16;
1532 break;
1534 case 20:
1536 proto_item_append_text(item, " : SERVICE OPTION RESPONSE Order ");
1538 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1539 l_offset+=8;
1540 proto_tree_add_bits_item(subtree1, hf_cdma2k_service_option, tvb, l_offset, 16, ENC_BIG_ENDIAN);
1541 l_offset+=16;
1542 break;
1544 case 31:
1546 proto_item_append_text(item, " : MOBILE STATION REJECT Order ");
1548 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1549 ordq = tvb_get_bits8(tvb,*offset*8+1,8);
1550 l_offset+=8;
1552 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Type, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1553 rejectedtype = tvb_get_bits8(tvb,*offset*8+1,8);
1554 l_offset+=8;
1556 if ((rejectedtype == 7) || (rejectedtype == 1)) /* 7= access, 1= reverse traffic */
1558 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1559 l_offset+=2;
1560 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Order, tvb, l_offset, 6, ENC_BIG_ENDIAN);
1561 l_offset+=6;/* 4 byte , 1 bit */
1562 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1563 l_offset+=8;/* 5 byte , 1 bit */
1566 if (rejectedtype == 12) /* for both access & reverse traffic */
1568 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Parm_Id, tvb, l_offset, 16, ENC_BIG_ENDIAN);
1569 l_offset+=16;/* 7 byte , 1 bit */
1570 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Record, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1571 l_offset+=8;/* 8 byte , 1 bit */
1574 if ((ordq == 16) || (ordq == 17) || (ordq == 18) || (ordq == 19))
1576 proto_tree_add_bits_item(subtree1, hf_cdma2k_Con_Ref, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1577 l_offset+=8;
1579 if (ordq == 19)
1581 proto_tree_add_bits_item(subtree1, hf_cdma2k_Tag, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1582 l_offset+=4;
1585 if(l_offset%8 != 0)
1587 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
1589 break;
1592 case 21:
1594 proto_item_append_text(item, " : RELEASE Order ");
1596 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, *offset*8+1,8, ENC_BIG_ENDIAN);
1597 ordq = tvb_get_bits8(tvb,*offset*8+1,8);
1598 l_offset+=8;
1600 if (ordq == 3)
1602 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_Mode_Ind , tvb, l_offset, 1, ENC_BIG_ENDIAN);
1603 rsc_mode_ind = tvb_get_bits8(tvb,*offset*8+1,1);
1604 l_offset+=1;
1605 if (rsc_mode_ind == 1)
1607 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsci, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1608 l_offset+=4;
1609 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1610 l_offset+=2;
1611 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Value, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1612 l_offset+=4;
1616 break;
1619 case 34:
1621 proto_item_append_text(item, " : FAST CALL SETUP Order ");
1623 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, *offset*8+1,8, ENC_BIG_ENDIAN);
1624 l_offset+=8;
1626 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_Mode_Ind , tvb, l_offset, 1, ENC_BIG_ENDIAN);
1627 rsc_mode_ind = tvb_get_bits8(tvb,*offset*8+1,1);
1628 l_offset+=1;
1630 if (rsc_mode_ind == 1)
1632 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsci, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1633 l_offset+=4;
1634 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1635 l_offset+=2;
1636 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Value, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1637 l_offset+=4;
1639 break;
1642 default:
1644 proto_item_append_text(item, " : Invalid / Unsupported Order Type Received");
1645 break;
1649 if(l_offset%8 == 0)
1650 *offset = (l_offset/8);
1651 else
1652 *offset = (l_offset/8) + 1;
1655 /* Decode Order Command Message Parameters */
1656 static void cdma2k_message_ORDER_CMD(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
1658 uint16_t addRecLen = -1, ordq = -1, csig = -1;
1659 uint16_t l_offset = -1, MsgIntInfoIncl = -1, retrytype = -1, allbcmcflowind = -1, clearallretrydelay = -1;
1660 uint16_t numbcmcprograms = -1, bcmc_program_id = -1;
1661 uint16_t bcmcflowdiscriminatorlen = -1, regulatoryindincl = -1;
1662 uint16_t rsc_mode_supported = -1, rer_mode_incl = -1, rer_mode_enabled = -1, tkz_mode_incl = -1;
1663 uint16_t sameaspreviousbcmcflow = -1, ordertype = -1, clearretrydelay = -1, rer_time = -1;
1664 uint16_t rsc_mode_ind = -1;
1665 proto_tree *subtree = NULL, *subtree1 = NULL;
1667 subtree = proto_tree_add_subtree(tree, tvb, *offset, -1, ett_cdma2k_subtree1, NULL, "Order Command Message");
1669 proto_tree_add_item(subtree, hf_cdma2k_Order_Cmd, tvb, *offset,1, ENC_BIG_ENDIAN);
1670 ordertype = tvb_get_uint8(tvb,*offset) >> 2;
1672 proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Record_Len, tvb, *offset*8 + 6,3, ENC_BIG_ENDIAN);
1673 addRecLen = tvb_get_bits8(tvb,*offset*8 + 6,3);
1674 *offset+=1;
1675 l_offset = *offset*8+1;
1677 if(addRecLen > 0)
1679 item = proto_tree_add_item(subtree, hf_cdma2k_Order_Specific_Fields, tvb, *offset,-1, ENC_NA);
1680 subtree1 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
1682 switch(ordertype)
1684 case 2:
1686 proto_item_append_text(item, " : BASE STATION CHALLENGE CONFIRMATION Order ");
1688 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1689 l_offset+=8;
1691 proto_tree_add_bits_item(subtree1, hf_cdma2k_Authbs, tvb, l_offset, 18, ENC_BIG_ENDIAN);
1692 l_offset+=18;
1694 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 6, ENC_BIG_ENDIAN);
1695 l_offset+=6;
1696 break;
1699 case 4:
1701 proto_item_append_text(item, " : REORDER Order ");
1703 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1704 l_offset+=8;
1706 break;
1709 case 21:
1711 proto_item_append_text(item, " : RELEASE Order ");
1713 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, *offset*8+1,8, ENC_BIG_ENDIAN);
1714 ordq = tvb_get_bits8(tvb,*offset*8+1,8);
1715 l_offset+=8;
1717 if (ordq == 3)
1719 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_Mode_Ind , tvb, l_offset, 1, ENC_BIG_ENDIAN);
1720 rsc_mode_ind = tvb_get_bits8(tvb,*offset*8+1,1);
1721 l_offset+=1;
1722 if (rsc_mode_ind == 1)
1724 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsci, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1725 l_offset+=4;
1726 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1727 l_offset+=2;
1728 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_End_Time_Value, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1729 l_offset+=4;
1732 break;
1735 case 27:
1737 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1738 ordq = tvb_get_bits8(tvb,l_offset, 8);
1739 l_offset+=8;
1742 * 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
1744 switch(ordq){
1745 case 0: /* Registration Accepted Order (ROAM_INDI not included; see 3.7.4.5) */
1746 proto_item_append_text(item, " : Registration Accepted Order ");
1747 break;
1748 case 1: /* Registration Request Order */
1749 proto_item_append_text(item, " : Registration Request Order ");
1750 break;
1751 case 2: /* Registration Rejected Order */
1752 proto_item_append_text(item, " : Registration Rejected Order ");
1753 break;
1754 case 4: /* Registration Rejected Order (delete TMSI) */
1755 proto_item_append_text(item, " : Registration Rejected Order (delete TMSI) ");
1756 break;
1757 case 5: /* Registration Accepted Order (ROAM_INDI included but the signaling encryption related fields are not included; see 3.7.4.5) */
1758 proto_item_append_text(item, " : Registration Accepted Order ");
1759 proto_tree_add_bits_item(subtree1, hf_cdma2k_Roam_Ind, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1760 l_offset+=8;
1761 break;
1762 case 7: /* Registration Accepted Order (ROAM_INDI and the signaling encryption related fields are included; see 3.7.4.5) */
1763 proto_item_append_text(item, " : Registration Accepted Order ");
1764 proto_tree_add_bits_item(subtree1, hf_cdma2k_Roam_Ind, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1765 l_offset+=8;
1767 proto_tree_add_bits_item(subtree1, hf_cdma2k_C_Sig_Encrypt_Mode, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1768 csig = tvb_get_bits8(tvb,l_offset, 3);
1769 l_offset+=8;
1771 proto_tree_add_bits_item(subtree1, hf_cdma2k_Msg_Int_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1772 MsgIntInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
1773 l_offset+=1;
1774 break;
1775 default:
1776 break;
1780 if ((csig == 1) || (csig == 2))
1782 proto_tree_add_bits_item(subtree1, hf_cdma2k_Enc_Key_Size, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1783 l_offset+=3;
1786 if (MsgIntInfoIncl == 1)
1788 proto_tree_add_bits_item(subtree1, hf_cdma2k_Change_Keys, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1789 l_offset+=1;
1791 proto_tree_add_bits_item(subtree1, hf_cdma2k_Use_Uak, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1792 l_offset+=1;
1795 if(l_offset%8 != 0)
1797 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
1799 break;
1802 case 32:
1804 proto_item_append_text(item, " : RETRY Order ");
1806 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1807 l_offset+=8;
1809 proto_tree_add_bits_item(subtree1, hf_cdma2k_Retry_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1810 retrytype = tvb_get_bits8(tvb,l_offset, 3);
1811 l_offset+=3;
1813 if (retrytype != 0)
1815 proto_tree_add_bits_item(subtree1, hf_cdma2k_Retry_Delay, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1816 l_offset+=8;
1819 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 5, ENC_BIG_ENDIAN);
1820 l_offset+=5;
1821 break;
1823 case 33:
1825 proto_item_append_text(item, " : BASE STATION REJECT Order ");
1827 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1828 l_offset+=8;
1830 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reject_Reason, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1831 l_offset+=4;
1833 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Msg_Type, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1834 l_offset+=8;
1836 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rejected_Msg_Seq, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1837 l_offset+=3;
1838 break;
1841 case 35:
1843 proto_item_append_text(item, " : BCMC Order ");
1845 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1846 l_offset+=8;
1848 proto_tree_add_bits_item(subtree1, hf_cdma2k_All_Bcmc_Flows_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1849 allbcmcflowind = tvb_get_bits8(tvb,l_offset, 1);
1850 l_offset+=1;
1852 if (allbcmcflowind == 1)
1854 proto_tree_add_bits_item(subtree1, hf_cdma2k_Clear_All_Retry_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1855 clearallretrydelay = tvb_get_bits8(tvb,l_offset, 1);
1856 l_offset+=1;
1859 if ((allbcmcflowind == 1) || (clearallretrydelay == 0))
1861 proto_tree_add_bits_item(subtree1, hf_cdma2k_All_Bcmc_Reason, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1862 l_offset+=4;
1865 proto_tree_add_bits_item(subtree1, hf_cdma2k_All_Bcmc_Retry_Delay, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1866 l_offset+=8;
1868 if (allbcmcflowind == 0)
1870 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Bcmc_Programs, tvb, l_offset, 6, ENC_BIG_ENDIAN);
1871 numbcmcprograms = tvb_get_bits8(tvb,l_offset, 8);
1872 l_offset+=6;
1875 if (numbcmcprograms != 0)
1878 proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Program_Id_Len, tvb, l_offset, 5, ENC_BIG_ENDIAN);
1879 bcmc_program_id = tvb_get_bits8(tvb,l_offset, 5);
1880 l_offset+=5;
1882 proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Program_Id, tvb, l_offset, bcmc_program_id+1, ENC_BIG_ENDIAN);
1883 l_offset+=bcmc_program_id+1;
1885 proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Flow_Discriminator_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1886 bcmcflowdiscriminatorlen = tvb_get_bits8(tvb,l_offset, 3);/* Extract Bcmc_Flow_Discriminator_Len */
1887 l_offset+=3;
1889 if (bcmcflowdiscriminatorlen != 0)
1891 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Flow_Discriminator, tvb, l_offset, bcmcflowdiscriminatorlen, ENC_BIG_ENDIAN);
1892 l_offset+=bcmcflowdiscriminatorlen;
1895 proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Flow_Discriminator, tvb, l_offset, bcmcflowdiscriminatorlen, ENC_BIG_ENDIAN);
1896 l_offset+=bcmcflowdiscriminatorlen;
1898 proto_tree_add_bits_item(subtree1, hf_cdma2k_Same_As_Previous_Bcmc_Flow, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1899 sameaspreviousbcmcflow = tvb_get_bits8(tvb,l_offset, 1);
1900 l_offset+=1;
1902 if (sameaspreviousbcmcflow == 0)
1904 proto_tree_add_bits_item(subtree1, hf_cdma2k_Clear_Retry_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1905 clearretrydelay = tvb_get_bits8(tvb,l_offset, 1);
1906 l_offset+=1;
1909 if ((sameaspreviousbcmcflow == 0) || (clearretrydelay == 0))
1911 proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Reason, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1912 l_offset+=4;
1915 proto_tree_add_bits_item(subtree1, hf_cdma2k_Bcmc_Retry_Delay, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1916 l_offset+=8;
1918 break;
1921 case 36:
1923 proto_item_append_text(item, " : FAST CALL SETUP Order ");
1925 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
1926 ordq = tvb_get_bits8(tvb, l_offset, 1);
1927 l_offset += 8;
1929 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rsc_Mode_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1930 rsc_mode_supported = tvb_get_bits8(tvb, l_offset, 1);
1931 l_offset += 1;
1933 if (rsc_mode_supported == 1)
1935 proto_tree_add_bits_item(subtree1, hf_cdma2k_Max_Rsc_End_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1936 l_offset += 2;
1938 proto_tree_add_bits_item(subtree1, hf_cdma2k_Max_Rsc_End_Time_Value, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1939 l_offset += 4;
1941 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ignore_Qpch, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1942 l_offset += 1;
1947 if ((ordq == 0) && (rsc_mode_supported == 1))
1949 proto_tree_add_bits_item(subtree1, hf_cdma2k_Req_Rsci, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1950 l_offset += 4;
1953 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Mode_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1954 rer_mode_incl = tvb_get_bits8(tvb, l_offset, 1);
1955 l_offset += 1;
1957 if (rer_mode_incl == 1)
1959 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Mode_Enabled, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1960 rer_mode_enabled = tvb_get_bits8(tvb, l_offset, 1);
1961 l_offset += 1;
1964 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Max_Num_Msg_Idx, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1965 l_offset += 3;
1967 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Time, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1968 rer_time = tvb_get_bits8(tvb, l_offset, 3);
1969 l_offset += 3;
1971 if ((rer_time != 7) && (rer_mode_enabled == 1))
1973 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rer_Time_Unit, tvb, l_offset, 2, ENC_BIG_ENDIAN);
1974 l_offset += 2;
1977 proto_tree_add_bits_item(subtree1, hf_cdma2k_Max_Rer_Pilot_List_Size, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1978 l_offset += 3;
1980 proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Mode_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1981 tkz_mode_incl = tvb_get_bits8(tvb, l_offset, 1);
1982 l_offset += 1;
1984 if (tkz_mode_incl == 1)
1986 proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Mode_Enabled, tvb, l_offset, 1, ENC_BIG_ENDIAN);
1987 l_offset += 1;
1990 proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Max_Num_Msg_Idx, tvb, l_offset, 3, ENC_BIG_ENDIAN);
1991 l_offset += 3;
1993 proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Update_Prd, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1994 l_offset += 4;
1996 proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_List_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
1997 l_offset += 4;
1999 proto_tree_add_bits_item(subtree1, hf_cdma2k_Tkz_Timer, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2000 l_offset += 8;
2002 break;
2003 case 37:
2005 proto_item_append_text(item, " : SERVICE STATUS Order ");
2007 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2008 l_offset+=8;
2010 proto_tree_add_bits_item(subtree1, hf_cdma2k_Sr_Id_Bitmap, tvb, l_offset, 6, ENC_BIG_ENDIAN);
2011 l_offset+=6;
2013 proto_tree_add_bits_item(subtree1, hf_cdma2k_Service_Status, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2014 l_offset+=3;
2016 if(l_offset%8 != 0)
2018 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
2020 break;
2024 case 38:
2026 proto_item_append_text(item, " : LOCATION SERVICES Order ");
2028 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ordq, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2029 l_offset+=8;
2031 proto_tree_add_bits_item(subtree1, hf_cdma2k_Regulatory_Ind_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2032 regulatoryindincl = tvb_get_bits8(tvb,l_offset, 1);
2033 l_offset+=1;
2035 if (regulatoryindincl == 1)
2037 proto_tree_add_bits_item(subtree1, hf_cdma2k_Regulatory_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2038 l_offset+=2;
2040 break;
2043 default:
2045 proto_item_append_text(item, " : Invalid / Unsupported Order Type");
2046 break;
2050 if(l_offset%8 == 0)
2051 *offset = (l_offset/8);
2052 else
2053 *offset = (l_offset/8) + 1;
2057 /* Helper function to decode Data Burst Indication Message Parameters */
2058 static void cdma2k_message_DATA_BURST_IND(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
2060 uint16_t numOfFields = -1, parmLen = -1;
2061 uint16_t inc = -1, cnt = -1, disp_cnt = -1;
2062 proto_tree *subtree = NULL, *subtree1 = NULL, *subtree2 = NULL;
2063 cnt = 1;
2065 item = proto_tree_add_item(tree,hf_cdma2k_DataBurstIndMsg, tvb, *offset,-1, ENC_NA);
2066 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2067 proto_tree_add_item(subtree, hf_cdma2k_Msg_Number, tvb, *offset,1, ENC_BIG_ENDIAN);
2068 *offset+=1;
2069 proto_tree_add_bits_item(subtree, hf_cdma2k_Burst_Type, tvb, *offset*8,6, ENC_BIG_ENDIAN);
2070 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Msgs, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2071 *offset+=1;
2072 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Fields, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2073 numOfFields = tvb_get_bits8(tvb,*offset*8 + 6,8);
2074 *offset+=1;
2076 item = proto_tree_add_item(subtree, hf_cdma2k_Chari_Data, tvb, *offset,-1, ENC_NA);
2077 subtree1 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
2078 proto_tree_add_bits_item(subtree1, hf_cdma2k_Msg_Identifier, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2079 *offset+=1;
2080 numOfFields-=1;
2082 while(numOfFields > 0)
2084 item = proto_tree_add_bits_item(subtree1, hf_cdma2k_Parm_Id, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2085 subtree2 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
2086 *offset+=1;
2087 numOfFields-=1;
2088 proto_tree_add_bits_item(subtree2,hf_cdma2k_Parm_Length, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2089 parmLen = tvb_get_bits8(tvb,*offset*8 + 6,8);
2090 *offset+=1;
2091 numOfFields-=1;
2093 if (cnt*32 < parmLen)
2095 disp_cnt = 32;
2097 else
2099 disp_cnt = parmLen+1;
2102 item = proto_tree_add_item(subtree2,hf_cdma2k_Parm_Value, tvb, *offset,disp_cnt, ENC_NA);
2104 for (inc = 0; inc < parmLen; inc++)
2106 proto_item_append_text(item," 0x%02x ",tvb_get_bits8(tvb,*offset*8 + 6,8));
2107 *offset+=1;
2109 if(inc%8 == 7)
2110 proto_item_append_text(item,"\n");
2112 if(inc%32 == 31)
2114 if (cnt*32 < parmLen)
2116 disp_cnt = 32;
2118 else
2120 disp_cnt = (parmLen - cnt*32);
2123 item = proto_tree_add_item(subtree2,hf_cdma2k_Parm_Value, tvb, *offset,disp_cnt, ENC_NA);
2124 proto_item_append_text(item,"cont..." );
2125 cnt+=1;
2128 numOfFields-=parmLen;
2130 *offset+=1;
2133 static void cdma2k_message_ORIGINATION(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset,uint16_t authIncl,uint16_t oneXPrev)
2135 uint16_t prevInUse = -1, mob_P_Rev_Rx = -1, Prev_Nid_Incl = -1;
2136 uint16_t Sync_Id_Len = -1, Prev_Pzid_Incl= -1, For_FchLen = -1,Rev_FchLen = -1;
2137 uint16_t uzid_Incl = -1, GeoLoc_Incl = -1, l_offset = -1, numOfFields = -1, Map_Length = -1, Qos_Parms_Incl= -1;
2138 uint16_t specialService = -1, Wll_Incl = -1,Global_Emergency_call = -1,Sync_Id_Incl = -1,Prev_Sid_Incl = -1;
2139 uint16_t DigitMode = -1, Num_Alt_So = -1, Qos_Parms_Length = -1, Enc_Info_Incl = -1;
2140 uint16_t digitSize = -1, So_Bitmap_Ind = -1, Dcch_supported = -1;
2141 uint16_t Fch_supported = -1, Rev_DcchLen = -1, rea = -1, ecmea = -1, For_DcchLen = -1;
2143 proto_tree *subtree = NULL,*subtree1 = NULL, *subtree4 = NULL,*subtree3 = NULL;
2144 proto_item *item1 = NULL, *item2 = NULL, *item4 = NULL;
2146 /*iws_Mob_P_Rev_In_Use = 7;*/
2148 l_offset = *offset*8;
2150 item = proto_tree_add_item(tree,hf_cdma2k_OrigMsg, tvb, l_offset/8,-1, ENC_NA);
2151 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2152 proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_Term, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2153 l_offset +=1;
2154 proto_tree_add_bits_item(subtree, hf_cdma2k_Slot_Cycle_Index, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2155 l_offset +=3;
2156 proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_P_Rev, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2157 mob_P_Rev_Rx = tvb_get_bits8(tvb,l_offset, 8);
2158 l_offset +=8;
2160 prevInUse = ((oneXPrev >= mob_P_Rev_Rx) ? mob_P_Rev_Rx : oneXPrev);
2162 if(prevInUse == 1)
2164 proto_tree_add_bits_item(subtree, hf_cdma2k_Ext_Scm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2165 l_offset +=1;
2166 /*Jump Over the one bit Reserved Field*/
2167 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2168 l_offset +=1;
2169 proto_tree_add_bits_item(subtree, hf_cdma2k_Sloted_Mode, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2170 l_offset +=1;
2171 /*Jump Over the five bit Reserved Field*/
2172 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2173 l_offset +=5;
2175 else
2177 dissect_cdma2000_scm(tvb, subtree, l_offset);
2178 l_offset +=8;
2181 proto_tree_add_bits_item(subtree, hf_cdma2k_Request_Mode, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2182 l_offset +=3;
2183 proto_tree_add_bits_item(subtree, hf_cdma2k_Special_Service, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2184 specialService = tvb_get_bits8(tvb,l_offset, 1);
2185 l_offset +=1;
2187 if (specialService == 1)
2189 proto_tree_add_bits_item(subtree, hf_cdma2k_service_option, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2190 l_offset +=16;
2193 proto_tree_add_bits_item(subtree, hf_cdma2k_pm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2194 l_offset +=1;
2195 proto_tree_add_bits_item(subtree, hf_cdma2k_digit_mode, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2196 DigitMode = tvb_get_bits8(tvb,l_offset, 1);
2197 l_offset +=1;
2199 if (DigitMode == 1)
2201 /* if(mob_P_Rev_Rx > 8)
2202 { */
2203 proto_tree_add_bits_item(subtree, hf_cdma2k_Number_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2204 l_offset +=3;
2205 /* } */
2206 proto_tree_add_bits_item(subtree, hf_cdma2k_Number_Plan, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2207 l_offset +=4;
2210 proto_tree_add_bits_item(subtree, hf_cdma2k_More_Fields, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2211 l_offset += 1;
2212 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Fields, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2213 numOfFields = tvb_get_bits8(tvb,l_offset, 8);
2214 l_offset += 8;
2216 if(numOfFields > 0)
2218 item2 = proto_tree_add_item(subtree, hf_cdma2k_Chari_Data, tvb, (l_offset/8),1, ENC_NA);
2219 proto_item_append_text(item2," - Dialed Digits :");
2220 while(numOfFields > 0)
2222 if(DigitMode == 1)
2224 digitSize = 8;
2225 proto_item_append_text(item2," 0x%02x",tvb_get_bits8(tvb,l_offset, digitSize));
2226 l_offset+=digitSize;
2228 else if(DigitMode == 0)
2230 digitSize = 4;
2231 proto_item_append_text(item2," 0x%x",tvb_get_bits8(tvb,l_offset, digitSize));
2232 l_offset+=digitSize;
2234 numOfFields-=1;
2237 proto_tree_add_bits_item(subtree, hf_cdma2k_Nar_An_Cap, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2238 l_offset += 1;
2239 proto_tree_add_bits_item(subtree, hf_cdma2k_Paca_Reorig, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2240 l_offset += 1;
2241 proto_tree_add_bits_item(subtree, hf_cdma2k_Return_Cause, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2242 l_offset += 4;
2243 proto_tree_add_bits_item(subtree, hf_cdma2k_More_Records, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2244 l_offset += 1;
2246 if (prevInUse < 7 && authIncl == 1)
2248 proto_tree_add_bits_item(subtree, hf_cdma2k_encryption_supported, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2249 l_offset += 4;
2251 proto_tree_add_bits_item(subtree, hf_cdma2k_Paca_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2252 l_offset += 1;
2253 proto_tree_add_bits_item(subtree, hf_cdma2k_num_alt_so, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2254 Num_Alt_So = tvb_get_bits8(tvb,l_offset, 3);
2255 l_offset += 3;
2256 while (Num_Alt_So > 0)
2258 proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_So, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2259 l_offset+=16;
2260 Num_Alt_So--;
2262 if (prevInUse >= 6)
2264 proto_tree_add_bits_item(subtree, hf_cdma2k_DRS, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2265 l_offset +=1;
2266 proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2267 uzid_Incl = tvb_get_bits8(tvb,l_offset, 1);
2268 l_offset +=1;
2269 if (uzid_Incl == 1)
2271 proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2272 l_offset+=16;
2274 proto_tree_add_bits_item(subtree, hf_cdma2k_Ch_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2275 l_offset+=2;
2276 proto_tree_add_bits_item(subtree, hf_cdma2k_SR_ID, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2277 l_offset+=3;
2278 proto_tree_add_bits_item(subtree, hf_cdma2k_Otd_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2279 l_offset +=1;
2280 proto_tree_add_bits_item(subtree, hf_cdma2k_Qpch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2281 l_offset +=1;
2282 proto_tree_add_bits_item(subtree, hf_cdma2k_Enhanced_Rc, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2283 l_offset +=1;
2284 proto_tree_add_bits_item(subtree, hf_cdma2k_For_Rc_Pref, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2285 l_offset +=5;
2286 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Rc_Pref, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2287 l_offset +=5;
2288 proto_tree_add_bits_item(subtree, hf_cdma2k_Fch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2289 Fch_supported = tvb_get_bits8(tvb,l_offset, 1);
2290 l_offset +=1;
2291 if(Fch_supported == 1)
2293 item4 = proto_tree_add_item(subtree, hf_cdma2k_Fch_capability_type_specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2294 subtree4 = proto_item_add_subtree(item4, ett_cdma2k_subtree2);
2295 proto_tree_add_bits_item(subtree4,hf_cdma2k_Fch_Frame_Size, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2296 l_offset +=1;
2297 proto_tree_add_bits_item(subtree4,hf_cdma2k_For_Fch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2298 For_FchLen = tvb_get_bits8(tvb,l_offset, 3);
2299 l_offset+=3;
2300 Map_Length = 3*For_FchLen ;
2301 if(Map_Length > 0)
2303 proto_tree_add_bits_item(subtree4,hf_cdma2k_For_Fch_Rc_Map, tvb, l_offset, Map_Length, ENC_BIG_ENDIAN);
2304 l_offset+= Map_Length;
2306 proto_tree_add_bits_item(subtree4,hf_cdma2k_Rev_Fch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2307 Rev_FchLen = tvb_get_bits8(tvb,l_offset, 3);
2308 l_offset+=3;
2309 Map_Length = 3*Rev_FchLen ;
2310 if(Map_Length > 0)
2312 proto_tree_add_bits_item(subtree4,hf_cdma2k_Rev_Fch_Rc_Map, tvb, l_offset, Map_Length, ENC_BIG_ENDIAN);
2313 l_offset+= Map_Length;
2316 proto_tree_add_bits_item(subtree, hf_cdma2k_Dcch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2317 Dcch_supported = tvb_get_bits8(tvb,l_offset, 1);
2318 l_offset +=1;
2320 if(Dcch_supported == 1)
2322 item4 = proto_tree_add_item(subtree, hf_cdma2k_Dcch_capability_type_specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2323 subtree3 = proto_item_add_subtree(item4, ett_cdma2k_subtree2);
2324 proto_tree_add_bits_item(subtree3,hf_cdma2k_Dcch_Frame_Size, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2325 l_offset +=2;
2326 proto_tree_add_bits_item(subtree3,hf_cdma2k_For_Dcch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2327 For_DcchLen = tvb_get_bits8(tvb,l_offset, 3);
2328 l_offset+=3;
2329 Map_Length = 3*For_DcchLen ;
2330 if(Map_Length > 0)
2332 proto_tree_add_bits_item(subtree3,hf_cdma2k_For_Dcch_Rc_Map, tvb, l_offset, Map_Length, ENC_BIG_ENDIAN);
2333 l_offset+= Map_Length;
2335 proto_tree_add_bits_item(subtree3,hf_cdma2k_Rev_Dcch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2336 Rev_DcchLen = tvb_get_bits8(tvb,l_offset, 3);
2337 l_offset+=3;
2338 Map_Length = 3*Rev_DcchLen ;
2339 if(Map_Length > 0)
2341 proto_tree_add_bits_item(subtree3,hf_cdma2k_Rev_Dcch_Rc_Map, tvb, l_offset, Map_Length, ENC_BIG_ENDIAN);
2342 l_offset+= Map_Length;
2346 proto_tree_add_bits_item(subtree, hf_cdma2k_GeoLoc_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2347 GeoLoc_Incl = tvb_get_bits8(tvb,l_offset, 1);
2348 l_offset += 1;
2349 if(GeoLoc_Incl == 1)
2351 proto_tree_add_bits_item(subtree, hf_cdma2k_GeoLoc_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2352 l_offset += 3;
2355 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Fch_Gating_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2356 l_offset += 1;
2357 if(prevInUse >= 7)
2359 proto_tree_add_bits_item(subtree, hf_cdma2k_Orig_Reason, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2360 l_offset += 1;
2361 proto_tree_add_bits_item(subtree, hf_cdma2k_Orig_Count, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2362 l_offset += 2;
2363 proto_tree_add_bits_item(subtree, hf_cdma2k_Sts_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2364 l_offset += 1;
2365 proto_tree_add_bits_item(subtree, hf_cdma2k_ThreeXCchSupported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2366 l_offset += 1;
2367 proto_tree_add_bits_item(subtree, hf_cdma2k_Wll_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2368 Wll_Incl = tvb_get_bits8(tvb,l_offset, 1);
2369 l_offset += 1;
2370 if(Wll_Incl == 1)
2372 proto_tree_add_bits_item(subtree, hf_cdma2k_Wll_Device_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2373 l_offset += 3;
2376 proto_tree_add_bits_item(subtree, hf_cdma2k_Global_Emergency_Call, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2377 Global_Emergency_call = tvb_get_bits8(tvb,l_offset, 1);
2378 l_offset += 1;
2379 if(Global_Emergency_call == 1)
2381 proto_tree_add_bits_item(subtree, hf_cdma2k_Ms_Init_Pos_Loc_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2382 l_offset += 1;
2384 proto_tree_add_bits_item(subtree, hf_cdma2k_Qos_Parms_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2385 Qos_Parms_Incl = tvb_get_bits8(tvb,l_offset, 1);
2386 l_offset += 1;
2387 if(Qos_Parms_Incl != 0)
2389 proto_tree_add_bits_item(subtree, hf_cdma2k_Qos_Parms_Length, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2390 Qos_Parms_Length = tvb_get_bits8(tvb,l_offset, 5);
2391 l_offset += 5;
2392 while (Qos_Parms_Length > 0)
2394 item4 = proto_tree_add_item(subtree1, hf_cdma2k_Qos_Parms, tvb, (l_offset/8), 1, ENC_BIG_ENDIAN);
2395 subtree1 = proto_item_add_subtree(item4, ett_cdma2k_subtree2);
2396 proto_item_append_text(item4," 0x%02x",tvb_get_bits8(tvb,l_offset, 8));
2397 l_offset+=8;
2398 Qos_Parms_Length -=1;
2401 proto_tree_add_bits_item(subtree, hf_cdma2k_Enc_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2402 Enc_Info_Incl = tvb_get_bits8(tvb,l_offset, 1);
2403 l_offset+=1;
2404 if(Enc_Info_Incl != 0)
2406 item2 = proto_tree_add_item(subtree, hf_cdma2k_Sig_Encrypt_Supp, tvb, (l_offset/8),1, ENC_NA);
2407 subtree1 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
2408 proto_tree_add_bits_item(subtree1, hf_cdma2k_Cmea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2409 l_offset+=1;
2410 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ecmea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2411 ecmea = tvb_get_bits8(tvb,l_offset, 1);
2412 l_offset+=1;
2413 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2414 rea = tvb_get_bits8(tvb,l_offset, 1);
2415 l_offset+=1;
2416 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2417 l_offset+=5;
2418 proto_tree_add_bits_item(subtree, hf_cdma2k_DSig_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2419 l_offset+=1;
2420 proto_tree_add_bits_item(subtree, hf_cdma2k_CSig_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2421 l_offset+=1;
2422 if(ecmea == 1 || rea == 1)
2424 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H, tvb, l_offset, 24, ENC_BIG_ENDIAN);
2425 l_offset+=24;
2426 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Sig, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2427 l_offset+=8;
2430 proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2431 l_offset+=1;
2432 proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2433 l_offset+=8;
2435 proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Incl, tvb, l_offset, 1, ENC_NA);
2436 Sync_Id_Incl = tvb_get_bits8(tvb,l_offset, 1);
2437 l_offset +=1;
2438 if(Sync_Id_Incl != 0)
2440 proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2441 Sync_Id_Len = tvb_get_bits8(tvb,l_offset, 4);
2442 l_offset +=4;
2443 while (Sync_Id_Len > 0)
2445 item1 = proto_tree_add_item(subtree1, hf_cdma2k_Sync_Id, tvb, (l_offset/8),Sync_Id_Len, ENC_NA);
2446 /*subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);*/
2447 proto_item_append_text(item1," 0x%02x",tvb_get_bits8(tvb,l_offset, 8));
2448 l_offset+=8;
2449 Sync_Id_Len -=1;
2452 proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Sid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2453 Prev_Sid_Incl = tvb_get_bits8(tvb,l_offset, 1);
2454 l_offset+=1;
2455 if (Prev_Sid_Incl != 0)
2457 proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Sid, tvb, l_offset, 15, ENC_BIG_ENDIAN);
2458 l_offset+=15;
2460 proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Nid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2461 Prev_Nid_Incl = tvb_get_bits8(tvb,l_offset, 1);
2462 l_offset+=1;
2463 if (Prev_Nid_Incl != 0)
2465 proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Nid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2466 l_offset+=16;
2468 proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Pzid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2469 Prev_Pzid_Incl = tvb_get_bits8(tvb,l_offset, 1);
2470 l_offset+=1;
2471 if (Prev_Pzid_Incl != 0)
2473 proto_tree_add_bits_item(subtree, hf_cdma2k_Prev_Pzid, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2474 l_offset+=8;
2476 proto_tree_add_bits_item(subtree, hf_cdma2k_So_Bitmap_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2477 So_Bitmap_Ind = tvb_get_bits8(tvb,l_offset, 2);
2478 l_offset+=2;
2479 if (So_Bitmap_Ind > 0)
2481 proto_tree_add_bits_item(subtree, hf_cdma2k_So_Group_Num, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2482 l_offset+=5;
2483 proto_tree_add_bits_item(subtree, hf_cdma2k_So_Bitmap, tvb, l_offset, 4*So_Bitmap_Ind, ENC_BIG_ENDIAN);
2484 l_offset+=4*So_Bitmap_Ind;
2489 /*Currently IWS Stack supports only till Mobile Protocol Revision Value 7*/
2490 /* if (mob_P_Rev_Rx >= 8)
2492 proto_tree_add_bits_item(subtree, hf_cdma2k_SDB_Desired, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2493 l_offset+=1;
2494 proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_Band_Class_Sup, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2495 l_offset+=1;
2497 if (mob_P_Rev_Rx >= 9)
2499 proto_tree_add_bits_item(subtree, hf_cdma2k_Msg_Int_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2500 msg_Int_Info_Incl = tvb_get_bits8(tvb,l_offset, 1);
2501 l_offset+=1;
2502 if (msg_Int_Info_Incl == 1)
2504 proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Sup_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2505 sigIntegritySupIncl = tvb_get_bits8(tvb,l_offset, 1);
2506 l_offset+=1;
2507 if(sigIntegritySupIncl ==1)
2509 proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2510 l_offset+=8;
2511 proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Req, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2512 l_offset+=3;
2514 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Key_Id, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2515 l_offset+=2;
2516 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2517 newSseqHIncl = tvb_get_bits8(tvb,l_offset, 1);
2518 l_offset+=1;
2519 if (newSseqHIncl == 1)
2521 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H, tvb, l_offset, 24, ENC_BIG_ENDIAN);
2522 l_offset+=24;
2523 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Sig, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2524 l_offset+=8;
2527 proto_tree_add_bits_item(subtree, hf_cdma2k_For_Pdch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2528 forPdchSupported = tvb_get_bits8(tvb,l_offset, 1);
2529 l_offset+=1;
2530 if(forPdchSupported == 1)
2532 item2 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2533 subtree1 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
2534 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ack_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2535 l_offset+=1;
2536 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Arq_Chan, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2537 l_offset+=2;
2538 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Pdch_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2539 forPdchLen = tvb_get_bits8(tvb,l_offset, 2);
2540 l_offset+=2;
2541 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Pdch_Rc_Map, tvb, l_offset, 3*(forPdchLen+1), ENC_BIG_ENDIAN);
2542 l_offset+=3*(forPdchLen+1);
2543 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ch_Config_Sup_Map_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2544 chConfigSupMapLen = tvb_get_bits8(tvb,l_offset, 2);
2545 l_offset+=2;
2546 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ch_Config_Sup_Map, tvb, l_offset, 3*(chConfigSupMapLen + 1), ENC_BIG_ENDIAN);
2547 l_offset+=3*(chConfigSupMapLen + 1);
2550 if(chInd == 0)
2552 proto_tree_add_bits_item(subtree, hf_cdma2k_Ext_Ch_Ind, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2553 l_offset+=5;
2556 if(l_offset%8 == 0)
2557 *offset = (l_offset/8);
2558 else
2559 *offset = (l_offset/8) + 1;
2563 /* Helper function to decode Authentication Challenge Response Message Parameters */
2564 static void cdma2k_message_AUTH_CHALL_RSP(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
2566 proto_tree *subtree = NULL;
2567 item = proto_tree_add_item(tree,hf_cdma2k_AuthChallRspMsg, tvb, *offset,-1, ENC_NA);
2568 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2569 proto_tree_add_bits_item(subtree, hf_cdma2k_Authu, tvb, *offset*8,18, ENC_BIG_ENDIAN);
2570 *offset+=3;
2574 /* Helper function to decode Data Burst Command Message Parameters */
2575 static void cdma2k_message_DATA_BURST_CMD(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
2577 uint16_t numOfFields = -1, parmLen = -1;
2578 uint16_t inc = -1, cnt = -1, disp_cnt = -1;
2579 proto_tree *subtree = NULL, *subtree1 = NULL, *subtree2 = NULL;
2580 cnt = 1;
2582 item = proto_tree_add_item(tree,hf_cdma2k_DataBurstCmdMsg, tvb, *offset,-1, ENC_NA);
2583 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2584 proto_tree_add_item(subtree, hf_cdma2k_Msg_Number, tvb, *offset,1, ENC_BIG_ENDIAN);
2585 *offset+=1;
2586 proto_tree_add_bits_item(subtree, hf_cdma2k_Burst_Type, tvb, *offset*8,6, ENC_BIG_ENDIAN);
2587 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Msgs, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2588 *offset+=1;
2589 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Fields, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2590 numOfFields = tvb_get_bits8(tvb,*offset*8 + 6,8);
2591 *offset+=1;
2593 item = proto_tree_add_item(subtree, hf_cdma2k_Chari_Data, tvb, *offset,-1, ENC_NA);
2594 subtree1 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
2595 proto_tree_add_bits_item(subtree1, hf_cdma2k_Msg_Identifier, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2596 *offset+=1;
2597 numOfFields-=1;
2599 while(numOfFields > 0)
2601 item = proto_tree_add_bits_item(subtree1, hf_cdma2k_Parm_Id, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2602 subtree2 = proto_item_add_subtree(item, ett_cdma2k_subtree2);
2603 *offset+=1;
2604 numOfFields-=1;
2605 proto_tree_add_bits_item(subtree2,hf_cdma2k_Parm_Length, tvb, *offset*8 + 6,8, ENC_BIG_ENDIAN);
2606 parmLen = tvb_get_bits8(tvb,*offset*8 + 6,8);
2607 *offset+=1;
2608 numOfFields-=1;
2610 if (cnt*32 < parmLen)
2612 disp_cnt = 32;
2614 else
2616 disp_cnt = parmLen+1;
2618 item = proto_tree_add_item(subtree2,hf_cdma2k_Parm_Value, tvb, *offset,disp_cnt, ENC_NA);
2620 for (inc = 0; inc < parmLen; inc++)
2622 proto_item_append_text(item," 0x%02x ",tvb_get_bits8(tvb,*offset*8 + 6,8));
2623 *offset+=1;
2626 if(inc%8 == 7)
2627 proto_item_append_text(item,"\n");
2629 if(inc%32 == 31)
2631 if (cnt*32 < parmLen)
2633 disp_cnt = 32;
2635 else
2637 disp_cnt = (parmLen - cnt*32);
2640 item = proto_tree_add_item(subtree2,hf_cdma2k_Parm_Value, tvb, *offset,disp_cnt, ENC_NA);
2641 proto_item_append_text(item,"cont..." );
2642 cnt+=1;
2645 numOfFields-=parmLen;
2647 *offset+=1;
2651 /* Helper function to decode Authentication Challenge Request Message Parameters */
2652 static void cdma2k_message_AUTH_CHALL_REQ(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
2654 proto_tree *subtree = NULL;
2655 item = proto_tree_add_item(tree,hf_cdma2k_AuthChallReqMsg, tvb, *offset,-1, ENC_NA);
2656 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2657 proto_tree_add_bits_item(subtree, hf_cdma2k_Randu, tvb, *offset*8,24, ENC_BIG_ENDIAN);
2658 *offset+=3;
2659 proto_tree_add_item(subtree, hf_cdma2k_Gen_Cmea_Key, tvb, *offset,1, ENC_BIG_ENDIAN);
2660 *offset+=1;
2664 /* Helper function to decode General Page Request Message Parameters */
2665 static void cdma2k_message_GEN_PAGE_REQ(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset,uint16_t l3PduLen)
2667 proto_tree *subtree = NULL;
2668 item = proto_tree_add_item(tree,hf_cdma2k_GenPageReqMsg, tvb, *offset,-1, ENC_NA);
2669 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2671 if (l3PduLen)
2673 proto_tree_add_item(subtree, hf_cdma2k_service_option, tvb, *offset,2, ENC_BIG_ENDIAN);
2674 *offset+=2;
2679 /* Helper Function to decode Page Response Message Parameters */
2680 static void cdma2k_message_PAGE_RESPONSE(proto_item *item, tvbuff_t *tvb,proto_tree *tree,unsigned *offset,uint16_t authIncl,uint16_t oneXPrev)
2682 uint16_t fchSupported = -1, dcchSupported = -1,numAltSo = -1, soBitmapInd = -1;
2683 uint16_t forFchLen = -1, revFchLen = -1, forDcchLen = -1, revDcchLen = -1 , syncIdLen =-1;
2684 uint16_t uzidIncl = -1, wllIncl = -1, encInfoIncl = -1, syncIdIncl = -1;
2685 uint16_t l_offset = -1, rea = -1, ecmea = -1;
2686 uint16_t prevInUse = -1, mob_P_Rev_Rx = -1;
2688 proto_tree *subtree = NULL, *subtree1 = NULL;
2689 proto_item *item1 = NULL;
2691 /*iws_Mob_P_Rev_In_Use = 7;*/
2693 item = proto_tree_add_item(tree,hf_cdma2k_PageRspMsg, tvb, *offset,-1, ENC_NA);
2694 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
2695 proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_Term, tvb, *offset*8,1, ENC_BIG_ENDIAN);
2696 l_offset = *offset*8 + 1;
2697 proto_tree_add_bits_item(subtree, hf_cdma2k_Slot_Cycle_Index, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2698 l_offset+= 3;
2699 proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_P_Rev, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2700 mob_P_Rev_Rx = tvb_get_bits8(tvb,l_offset, 8);
2701 l_offset+= 8;
2703 prevInUse = ((oneXPrev >= mob_P_Rev_Rx) ? mob_P_Rev_Rx : oneXPrev);
2705 dissect_cdma2000_scm(tvb, subtree, l_offset);
2706 l_offset+=8;
2708 proto_tree_add_bits_item(subtree, hf_cdma2k_Request_Mode, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2709 l_offset+=3;
2711 proto_tree_add_bits_item(subtree, hf_cdma2k_service_option , tvb, l_offset, 16, ENC_BIG_ENDIAN);
2712 l_offset+=16;
2714 proto_tree_add_bits_item(subtree, hf_cdma2k_pm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2715 l_offset+=1;
2717 proto_tree_add_bits_item(subtree, hf_cdma2k_Nar_An_Cap, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2718 l_offset+=1;
2720 if(prevInUse < 7 && authIncl == 1)
2722 proto_tree_add_bits_item(subtree, hf_cdma2k_encryption_supported, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2723 l_offset+=4;
2726 proto_tree_add_bits_item(subtree, hf_cdma2k_num_alt_so, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2727 numAltSo = tvb_get_bits8(tvb,l_offset, 3);
2728 l_offset+=3;
2730 while(numAltSo > 0)
2732 proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_So, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2733 l_offset+=16;
2734 numAltSo--;
2737 if(prevInUse >= 6)
2739 proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2740 uzidIncl = tvb_get_bits8(tvb,l_offset, 1);
2741 l_offset+=1;
2742 if(uzidIncl == 1)
2744 proto_tree_add_bits_item(subtree, hf_cdma2k_Uzid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
2745 l_offset+=16;
2747 proto_tree_add_bits_item(subtree, hf_cdma2k_Ch_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2748 l_offset+=2;
2749 proto_tree_add_bits_item(subtree, hf_cdma2k_Otd_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2750 l_offset+=1;
2751 proto_tree_add_bits_item(subtree, hf_cdma2k_Qpch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2752 l_offset+=1;
2753 proto_tree_add_bits_item(subtree, hf_cdma2k_Enhanced_Rc, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2754 l_offset+=1;
2755 proto_tree_add_bits_item(subtree, hf_cdma2k_For_Rc_Pref, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2756 l_offset+=5;
2757 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Rc_Pref, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2758 l_offset+=5;
2759 proto_tree_add_bits_item(subtree, hf_cdma2k_Fch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2760 fchSupported = tvb_get_bits8(tvb,l_offset, 1);
2761 l_offset+=1;
2762 if(fchSupported == 1)
2764 item1 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2765 proto_item_append_text(item1, "Fch Records");
2766 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2767 proto_tree_add_bits_item(subtree1, hf_cdma2k_Fch_Frame_Size, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2768 l_offset+=1;
2769 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Fch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2770 forFchLen = tvb_get_bits8(tvb,l_offset, 3);
2771 l_offset+=3;
2772 if(forFchLen > 0)
2774 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Fch_Rc_Map, tvb, l_offset, 3*forFchLen, ENC_BIG_ENDIAN);
2775 l_offset+=3*forFchLen;
2777 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rev_Fch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2778 revFchLen = tvb_get_bits8(tvb,l_offset, 3);
2779 l_offset+=3;
2780 if(revFchLen > 0)
2782 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rev_Fch_Rc_Map, tvb, l_offset, 3*revFchLen , ENC_BIG_ENDIAN);
2783 l_offset+=3*revFchLen;
2786 proto_tree_add_bits_item(subtree, hf_cdma2k_Dcch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2787 dcchSupported = tvb_get_bits8(tvb,l_offset, 1);
2788 l_offset+=1;
2789 if(dcchSupported == 1)
2791 item1 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2792 proto_item_append_text(item1, "Dcch Records");
2793 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2794 proto_tree_add_bits_item(subtree1, hf_cdma2k_Dcch_Frame_Size, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2795 l_offset+=2;
2796 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Dcch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2797 forDcchLen = tvb_get_bits8(tvb,l_offset, 3);
2798 l_offset+=3;
2799 if(forDcchLen > 0)
2801 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Dcch_Rc_Map, tvb, l_offset, 3*forDcchLen, ENC_BIG_ENDIAN);
2802 l_offset+=3*forDcchLen;
2804 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rev_Dcch_Len, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2805 revDcchLen = tvb_get_bits8(tvb,l_offset, 3);
2806 l_offset+=3;
2807 if (revDcchLen > 0)
2809 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rev_Dcch_Rc_Map, tvb, l_offset, 3*revDcchLen, ENC_BIG_ENDIAN);
2810 l_offset+=3*revDcchLen;
2813 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Fch_Gating_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2814 l_offset+=1;
2816 if(prevInUse >= 7)
2818 proto_tree_add_bits_item(subtree, hf_cdma2k_Sts_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2819 l_offset+=1;
2820 proto_tree_add_bits_item(subtree, hf_cdma2k_ThreeXCchSupported , tvb, l_offset, 1, ENC_BIG_ENDIAN);
2821 l_offset+=1;
2822 proto_tree_add_bits_item(subtree, hf_cdma2k_Wll_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2823 wllIncl = tvb_get_bits8(tvb,l_offset, 1);
2824 l_offset+=1;
2825 if (wllIncl == 1)
2827 proto_tree_add_bits_item(subtree, hf_cdma2k_Wll_Device_Type, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2828 l_offset+=3;
2829 proto_tree_add_bits_item(subtree, hf_cdma2k_Hook_Status, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2830 l_offset+=4;
2832 proto_tree_add_bits_item(subtree, hf_cdma2k_Enc_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2833 encInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
2834 l_offset+=1;
2835 if(encInfoIncl == 1)
2837 item1 = proto_tree_add_item(subtree, hf_cdma2k_Sig_Encrypt_Supp, tvb, (l_offset/8),1, ENC_NA);
2838 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2839 proto_tree_add_bits_item(subtree1, hf_cdma2k_Cmea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2840 l_offset+=1;
2841 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ecmea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2842 ecmea = tvb_get_bits8(tvb,l_offset, 1);
2843 l_offset+=1;
2844 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rea, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2845 rea = tvb_get_bits8(tvb,l_offset, 1);
2846 l_offset+=1;
2847 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2848 l_offset+=5;
2849 proto_tree_add_bits_item(subtree, hf_cdma2k_DSig_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2850 l_offset+=1;
2851 proto_tree_add_bits_item(subtree, hf_cdma2k_CSig_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2852 l_offset+=1;
2853 if(ecmea == 1 || rea == 1)
2855 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H, tvb, l_offset, 24, ENC_BIG_ENDIAN);
2856 l_offset+=24;
2857 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Sig, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2858 l_offset+=8;
2860 proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Req, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2861 l_offset+=1;
2862 proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2863 l_offset+=8;
2865 proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2866 syncIdIncl = tvb_get_bits8(tvb,l_offset, 1);
2867 l_offset+=1;
2868 if(syncIdIncl == 1)
2870 proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
2871 syncIdLen = tvb_get_bits8(tvb,l_offset, 4);
2872 l_offset+=4;
2873 item1 = proto_tree_add_item(subtree, hf_cdma2k_Sync_Id, tvb, l_offset/8,syncIdLen, ENC_NA);
2874 while(syncIdLen > 0)
2876 proto_item_append_text(item1, " %02x",tvb_get_bits8(tvb,l_offset, 8));
2877 l_offset+=8;
2878 syncIdLen--;
2881 proto_tree_add_bits_item(subtree, hf_cdma2k_So_Bitmap_Ind, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2882 soBitmapInd = tvb_get_bits8(tvb,l_offset, 2);
2883 l_offset+=2;
2884 if(soBitmapInd != 0)
2886 proto_tree_add_bits_item(subtree, hf_cdma2k_So_Group_Num, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2887 l_offset+=5;
2888 proto_tree_add_bits_item(subtree, hf_cdma2k_So_Bitmap, tvb, l_offset, 4*soBitmapInd, ENC_BIG_ENDIAN);
2889 l_offset+=4*soBitmapInd;
2893 /* Currently IWS Stack supports only till Mobile Protocol Revision Value 7 */
2894 /*if(mob_P_Rev_Rx >= 8)
2896 proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_Band_Class_Sup, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2897 l_offset+=1;
2899 if(mob_P_Rev_Rx >= 9)
2901 proto_tree_add_bits_item(subtree, hf_cdma2k_Msg_Int_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2902 msgIntInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
2903 l_offset+=1;
2904 if(msgIntInfoIncl == 1)
2906 proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Sup_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2907 sigIntegritySupIncl = tvb_get_bits8(tvb,l_offset, 1);
2908 l_offset+=1;
2909 if(sigIntegritySupIncl ==1)
2911 proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Integrity_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2912 l_offset+=8;
2913 proto_tree_add_bits_item(subtree, hf_cdma2k_Alt_Sig_Integrity_Req, tvb, l_offset, 3, ENC_BIG_ENDIAN);
2914 l_offset+=3;
2916 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Key_Id, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2917 l_offset+=2;
2918 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2919 newSseqHIncl = tvb_get_bits8(tvb,l_offset, 1);
2920 l_offset+=1;
2921 if(newSseqHIncl == 1)
2923 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H, tvb, l_offset, 24, ENC_BIG_ENDIAN);
2924 l_offset+=24;
2925 proto_tree_add_bits_item(subtree, hf_cdma2k_New_Sseq_H_Sig, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2926 l_offset+=8;
2930 proto_tree_add_bits_item(subtree, hf_cdma2k_For_Pdch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2931 forPdchSupported = tvb_get_bits8(tvb,l_offset, 1);
2932 l_offset+=1;
2933 if(forPdchSupported == 1)
2935 item1 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2936 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2937 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ack_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2938 l_offset+=1;
2939 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Arq_Chan, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2940 l_offset+=2;
2941 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Pdch_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2942 forPdchLen = tvb_get_bits8(tvb,l_offset, 2);
2943 l_offset+=2;
2944 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Pdch_Rc_Map, tvb, l_offset, 3*(forPdchLen+1), ENC_BIG_ENDIAN);
2945 l_offset+=3*(forFchLen+1);
2946 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ch_Config_Sup_Map_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2947 chConfigSupMapLen = tvb_get_bits8(tvb,l_offset, 2);
2948 l_offset+=2;
2949 proto_tree_add_bits_item(subtree1, hf_cdma2k_Ch_Config_Sup_Map, tvb, l_offset, 3*(chConfigSupMapLen + 1), ENC_BIG_ENDIAN);
2950 l_offset+=3*(chConfigSupMapLen + 1);
2953 if(chInd == 0)
2955 proto_tree_add_bits_item(subtree, hf_cdma2k_Ext_Ch_Ind, tvb, l_offset, 5, ENC_BIG_ENDIAN);
2956 l_offset+=5;
2958 if(mob_P_Rev_Rx >= 11)
2960 if(slotCycleIndex != 0)
2962 proto_tree_add_bits_item(subtree, hf_cdma2k_Sign_Slot_Cycle_Index, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2963 l_offset+=1;
2965 proto_tree_add_bits_item(subtree, hf_cdma2k_Bcmc_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2966 bcmcIncl = tvb_get_bits8(tvb,l_offset, 1);
2967 l_offset+=1;
2968 if(bcmcIncl !=0)
2970 proto_tree_add_bits_item(subtree, hf_cdma2k_Bcmc_Pref_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2971 l_offset+=1;
2972 proto_tree_add_bits_item(subtree, hf_cdma2k_Fundicated_Bcmc_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2973 fundicatedBcmcSupported = tvb_get_bits8(tvb,l_offset, 1);
2974 l_offset+=1;
2975 if(fundicatedBcmcSupported == 1)
2977 item1 = proto_tree_add_item(subtree, hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),1, ENC_NA);
2978 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
2979 proto_tree_add_bits_item(subtree1, hf_cdma2k_Fundicated_Bcmc_Ch_Sup_Map_Len, tvb, l_offset, 2, ENC_BIG_ENDIAN);
2980 fundicatedBcmcChSupMapLen = tvb_get_bits8(tvb,l_offset, 2);
2981 l_offset+=2;
2982 proto_tree_add_bits_item(subtree1, hf_cdma2k_Fundicated_Bcmc_Ch_Sup_Map, tvb, l_offset, 3*(fundicatedBcmcChSupMapLen + 1), ENC_BIG_ENDIAN);
2983 l_offset+=3*(fundicatedBcmcChSupMapLen + 1);
2985 proto_tree_add_bits_item(subtree, hf_cdma2k_Auth_Signature_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
2986 authSignatureIncl = tvb_get_bits8(tvb,l_offset, 1);
2987 l_offset+=1;
2988 if(authSignatureIncl !=0)
2990 proto_tree_add_bits_item(subtree, hf_cdma2k_Time_Stamp_Short_Length, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2991 l_offset+=8;
2992 proto_tree_add_bits_item(subtree, hf_cdma2k_Time_Stamp_Short, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2993 l_offset+=8;/ * Length needs to be check * /
2994 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Bcmc_Programs, tvb, l_offset, 8, ENC_BIG_ENDIAN);
2995 l_offset+=8;
2999 if(l_offset%8 == 0)
3000 *offset = (l_offset/8);
3001 else
3002 *offset = (l_offset/8) + 1;
3006 /* Helper function to decode Handoff Direction Message Parameters */
3007 static void cdma2k_message_HANDOFF_DIR(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset, uint16_t msgType)
3009 uint16_t useTime = -1, parmsIncl = -1, searchIncl = -1, extraParmsIncl = -1;
3010 uint16_t l_offset = -1, returnIfHandoffFail = -1, scrIncl = -1, nnscrIncl = -1;
3011 uint16_t recLen= -1, pwrCntlStepIncl = -1, schIncl = -1, startTimeIncl = -1;
3012 uint16_t loop = -1, usePcTime = -1, chInd = -1, gatMode = -1, pwrCntlDelayIncl = -1;
3013 uint16_t encryptMode = -1, linkIncl = -1, pRev = -1, syncIdIncl = -1, syncIdLen = -1;
3014 uint16_t ccInfoIncl = -1, noCallAssign = -1, resInd = -1, cdmaRepSup = -1, plcmIncl = -1;
3015 uint16_t plcmType = -1, dropTRangeIncl = -1, fwdPDChSup = -1, encIncl = -1, sidIncl = -1;
3016 uint16_t nidIncl = -1, csSup = -1, pacZoneId = -1, pzHysEnabled = -1, pzHysInfoIncl = -1;
3017 uint16_t bcmcTchSup = -1, numForAssign = -1, schBcmc = -1, addPlcmSchIncl = -1;
3018 uint16_t addPlcmSchType = -1, fSchOuterCodeIncl = -1, txPwrIncl = -1, txPwrDflt = -1;
3019 proto_tree *subtree = NULL, *subtree1 = NULL, *subtree2 = NULL;
3020 proto_item *item1 = NULL, *item2 = NULL, *item3 = NULL;
3022 if(msgType == 34)
3024 item = proto_tree_add_item(tree,hf_cdma2k_UhdmMsg, tvb, *offset,-1, ENC_NA);
3026 else
3028 item = proto_tree_add_item(tree,hf_cdma2k_MeIdUhdmMsg, tvb, *offset,-1, ENC_NA);
3030 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
3032 proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Time, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3033 useTime = tvb_get_bits8(tvb,*offset*8,1);
3034 l_offset = *offset*8 + 1;
3035 if(useTime == 1)
3037 proto_tree_add_bits_item(subtree, hf_cdma2k_Action_Time, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3038 l_offset+= 6;
3040 proto_tree_add_bits_item(subtree, hf_cdma2k_Hdm_Seq, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3041 l_offset+=2;
3043 proto_tree_add_bits_item(subtree, hf_cdma2k_Parms_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3044 parmsIncl = tvb_get_bits8(tvb,l_offset, 1);
3045 l_offset+=1;
3046 if(parmsIncl == 1)
3048 proto_tree_add_bits_item(subtree, hf_cdma2k_P_Rev, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3049 pRev = tvb_get_bits8(tvb,l_offset, 8);
3050 l_offset+=8;
3051 proto_tree_add_bits_item(subtree, hf_cdma2k_Serv_Neg_Type, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3052 l_offset+=1;
3055 proto_tree_add_bits_item(subtree, hf_cdma2k_Search_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3056 searchIncl = tvb_get_bits8(tvb,l_offset, 1);
3057 l_offset+=1;
3058 if(searchIncl == 1)
3060 item1 = proto_tree_add_item(subtree, hf_cdma2k_Pilot_Search, tvb, (l_offset/8),7, ENC_NA);
3061 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
3062 proto_tree_add_bits_item(subtree1, hf_cdma2k_Srch_Win_A, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3063 l_offset+=4;
3064 proto_tree_add_bits_item(subtree1, hf_cdma2k_Srch_Win_N, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3065 l_offset+=4;
3066 proto_tree_add_bits_item(subtree1, hf_cdma2k_Srch_Win_R, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3067 l_offset+=4;
3068 proto_tree_add_bits_item(subtree1, hf_cdma2k_T_Add, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3069 l_offset+=6;
3070 proto_tree_add_bits_item(subtree1, hf_cdma2k_T_Drop, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3071 l_offset+=6;
3072 proto_tree_add_bits_item(subtree1, hf_cdma2k_T_Comp, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3073 l_offset+=4;
3074 proto_tree_add_bits_item(subtree1, hf_cdma2k_T_Tdrop, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3075 l_offset+=4;
3076 proto_tree_add_bits_item(subtree1, hf_cdma2k_Soft_Slope, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3077 l_offset+=6;
3078 proto_tree_add_bits_item(subtree1, hf_cdma2k_Add_Intercept, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3079 l_offset+=6;
3080 proto_tree_add_bits_item(subtree1, hf_cdma2k_Drop_Intercept, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3081 l_offset+=6;
3084 proto_tree_add_bits_item(subtree, hf_cdma2k_Extra_Parms_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3085 extraParmsIncl = tvb_get_bits8(tvb,l_offset, 1);
3086 l_offset+=1;
3087 if(extraParmsIncl == 1)
3089 item1 = proto_tree_add_item(subtree, hf_cdma2k_Extra_Parms, tvb, (l_offset/8),1, ENC_NA);
3090 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree2);
3091 proto_tree_add_bits_item(subtree1, hf_cdma2k_Packet_Zone_Id, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3092 pacZoneId = tvb_get_bits8(tvb,l_offset, 8);
3093 l_offset+=8;
3094 proto_tree_add_bits_item(subtree1, hf_cdma2k_Frame_Offset, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3095 l_offset+=4;
3096 proto_tree_add_bits_item(subtree1, hf_cdma2k_Private_Lcm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3097 l_offset+=1;
3098 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reset_L2, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3099 l_offset+=1;
3100 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reset_Fpc, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3101 l_offset+=1;
3102 proto_tree_add_bits_item(subtree1, hf_cdma2k_Encrypt_Mode, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3103 encryptMode = tvb_get_bits8(tvb,l_offset, 2);
3104 l_offset+=2;
3105 proto_tree_add_bits_item(subtree1, hf_cdma2k_Nom_Pwr_Ext, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3106 l_offset+=1;
3107 proto_tree_add_bits_item(subtree1, hf_cdma2k_Nom_Pwr, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3108 l_offset+=4;
3109 proto_tree_add_bits_item(subtree1, hf_cdma2k_Rlgain_Traffic_Pilot, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3110 l_offset+=6;
3111 proto_tree_add_bits_item(subtree1, hf_cdma2k_Default_Rlag, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3112 l_offset+=1;
3113 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Preamble, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3114 l_offset+=3;
3115 proto_tree_add_bits_item(subtree1, hf_cdma2k_Band_Class, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3116 l_offset+=5;
3117 proto_tree_add_bits_item(subtree1, hf_cdma2k_Cdma_Freq, tvb, l_offset, 11, ENC_BIG_ENDIAN);
3118 l_offset+=11;
3120 proto_tree_add_bits_item(subtree1, hf_cdma2k_Return_If_Handoff_Fail, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3121 returnIfHandoffFail = tvb_get_bits8(tvb,l_offset, 1);
3122 l_offset+=1;
3123 if(returnIfHandoffFail == 1)
3125 proto_tree_add_bits_item(subtree1, hf_cdma2k_Complete_Search, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3126 l_offset+=1;
3128 proto_tree_add_bits_item(subtree1, hf_cdma2k_Periodic_Search, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3129 l_offset+=1;
3130 proto_tree_add_bits_item(subtree1, hf_cdma2k_Scr_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3131 scrIncl = tvb_get_bits8(tvb,l_offset, 1);
3132 l_offset+=1;
3134 if(scrIncl == 1)
3136 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Scr, tvb, (l_offset/8),1, ENC_NA);
3137 subtree2 = proto_item_add_subtree(item2, ett_cdma2k_subtree2);
3138 proto_tree_add_bits_item(subtree2,hf_cdma2k_Serv_Con_Seq, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3139 l_offset+=3;
3140 proto_tree_add_bits_item(subtree2,hf_cdma2k_Record_Type, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3141 l_offset+=8;
3142 proto_tree_add_bits_item(subtree2,hf_cdma2k_Record_Len, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3143 recLen = tvb_get_bits8(tvb,l_offset, 8);
3144 l_offset+=8;
3145 item3 = proto_tree_add_item(subtree2,hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),recLen+1, ENC_NA);
3146 while(recLen>0)
3148 proto_item_append_text(item3," 0x%02x",tvb_get_bits8(tvb,l_offset, 8));
3149 l_offset+=8;
3150 recLen-=1;
3152 } /* scrIncl */
3154 proto_tree_add_bits_item(subtree1, hf_cdma2k_Nnscr_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3155 nnscrIncl = tvb_get_bits8(tvb,l_offset, 1);
3156 l_offset+=1;
3158 if(nnscrIncl == 1)
3160 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Nnscr, tvb, (l_offset/8),1, ENC_NA);
3161 subtree2 = proto_item_add_subtree(item2, ett_cdma2k_subtree2);
3162 proto_tree_add_bits_item(subtree2,hf_cdma2k_Record_Type, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3163 l_offset+=8;
3164 proto_tree_add_bits_item(subtree2,hf_cdma2k_Record_Len, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3165 recLen = tvb_get_bits8(tvb,l_offset, 8);
3166 l_offset+=8;
3167 item3 = proto_tree_add_item(subtree2,hf_cdma2k_Type_Specific_Fields, tvb, (l_offset/8),recLen, ENC_NA);
3168 while(recLen>0)
3170 proto_item_append_text(item3," 0x%02x",tvb_get_bits8(tvb,l_offset, 8));
3171 l_offset+=8;
3172 recLen-=1;
3174 } /* nnscrIncl */
3175 } /* extraParmsIncl */
3177 proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Pwr_Cntl_Step, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3178 pwrCntlStepIncl = tvb_get_bits8(tvb,l_offset, 1);
3179 l_offset+=1;
3180 if(pwrCntlStepIncl == 1)
3182 proto_tree_add_bits_item(subtree, hf_cdma2k_Pwr_Cntl_Step, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3183 l_offset+=3;
3185 proto_tree_add_bits_item(subtree, hf_cdma2k_Clear_Retry_Delay, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3186 l_offset+=1;
3187 proto_tree_add_bits_item(subtree, hf_cdma2k_Sch_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3188 schIncl = tvb_get_bits8(tvb,l_offset, 1);
3189 l_offset+=1;
3191 if(schIncl == 1)
3193 item1 = proto_tree_add_item(subtree, hf_cdma2k_Sch, tvb, (l_offset/8),7, ENC_NA);
3194 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3195 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_For_Assign, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3196 recLen = tvb_get_bits8(tvb,l_offset, 2);
3197 numForAssign = recLen;
3198 l_offset+=2;
3200 for(loop = 1; loop <= recLen; loop++)
3202 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_For_Assign, tvb, (l_offset/8),3, ENC_NA);
3203 proto_item_append_text(item2, " : [%02d]",loop);
3204 subtree2 = proto_item_add_subtree(item2, ett_cdma2k_subtree2);
3205 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Id, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3206 l_offset+=1;
3207 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Duration, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3208 l_offset+=4;
3209 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Start_Time_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3210 startTimeIncl = tvb_get_bits8(tvb,l_offset, 1);
3211 l_offset+=1;
3212 if(startTimeIncl == 1)
3214 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Start_Time, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3215 l_offset+=5;
3217 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sccl_Index, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3218 l_offset+=4;
3221 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Rev_Assign, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3222 recLen = tvb_get_bits8(tvb,l_offset, 2);
3223 l_offset+=2;
3225 for(loop = 1; loop <= recLen; loop++)
3227 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_Rev_Assign, tvb, (l_offset/8),3, ENC_NA);
3228 proto_item_append_text(item2, " : [%02d]",loop);
3229 subtree2 = proto_item_add_subtree(item2, ett_cdma2k_subtree2);
3230 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Id, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3231 l_offset+=1;
3232 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Duration, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3233 l_offset+=4;
3234 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Start_Time_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3235 startTimeIncl = tvb_get_bits8(tvb,l_offset, 1);
3236 l_offset+=1;
3237 if(startTimeIncl == 1)
3239 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Start_Time, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3240 l_offset+=5;
3242 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Num_Bits_Idx, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3243 l_offset+=4;
3245 } /* schIncl */
3247 proto_tree_add_bits_item(subtree, hf_cdma2k_Fpc_Subchain_Gain, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3248 l_offset+=5;
3249 proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Pc_Time, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3250 usePcTime = tvb_get_bits8(tvb,l_offset, 1);
3251 l_offset+=1;
3252 if(usePcTime == 1)
3254 proto_tree_add_bits_item(subtree, hf_cdma2k_Pc_Action_Time, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3255 l_offset+=6;
3257 proto_tree_add_bits_item(subtree, hf_cdma2k_Ch_Ind, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3258 chInd = tvb_get_bits8(tvb,l_offset, 3);
3259 l_offset+=3;
3260 proto_tree_add_bits_item(subtree, hf_cdma2k_Active_Set_Rec_Len, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3261 recLen = tvb_get_bits8(tvb,l_offset, 8);
3262 l_offset+=8;
3264 if((recLen > 0) && (chInd != 0))
3266 item1 = proto_tree_add_item(subtree, hf_cdma2k_Active_Set_Rec_Fields, tvb, (l_offset/8),recLen, ENC_NA);
3267 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3268 cdma2k_message_ACTIVE_SET_RECORD_FIELDS(item1, tvb, subtree1, &l_offset, chInd, schIncl);
3270 else
3272 l_offset+=recLen*8;
3275 if((chInd != 2) && (chInd != 6))
3277 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Fch_Gating_Mode, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3278 gatMode = tvb_get_bits8(tvb,l_offset, 1);
3279 l_offset+=1;
3281 if(gatMode == 1)
3283 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Pwr_Cntl_Delay_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3284 pwrCntlDelayIncl = tvb_get_bits8(tvb,l_offset, 1);
3285 l_offset+=1;
3286 if(pwrCntlDelayIncl == 1)
3288 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Pwr_Cntl_Delay, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3289 l_offset+=2;
3292 if(encryptMode == 2 || encryptMode == 3)
3294 if(encryptMode == 3)
3296 proto_tree_add_bits_item(subtree, hf_cdma2k_D_Sig_Encrypt_Mode, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3297 l_offset+=3;
3299 proto_tree_add_bits_item(subtree, hf_cdma2k_Enc_Key_Size, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3300 l_offset+=3;
3302 proto_tree_add_bits_item(subtree, hf_cdma2k_3xfl_1xrl_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3303 linkIncl = tvb_get_bits8(tvb,l_offset, 1);
3304 l_offset+=1;
3305 if(linkIncl == 1)
3307 proto_tree_add_bits_item(subtree, hf_cdma2k_1xrl_Freq_Offset, tvb, l_offset, 2, ENC_BIG_ENDIAN);
3308 l_offset+=2;
3310 if(scrIncl == 1 || nnscrIncl == 1 || pRev >= 11)
3312 proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3313 syncIdIncl = tvb_get_bits8(tvb,l_offset, 1);
3314 l_offset+=1;
3315 if(syncIdIncl == 1)
3317 proto_tree_add_bits_item(subtree, hf_cdma2k_Sync_Id_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3318 syncIdLen = tvb_get_bits8(tvb,l_offset, 4);
3319 l_offset+=4;
3320 item1 = proto_tree_add_item(subtree, hf_cdma2k_Sync_Id, tvb, l_offset/8,syncIdLen, ENC_NA);
3321 while(syncIdLen > 0)
3323 proto_item_append_text(item1, " %02x",tvb_get_bits8(tvb,l_offset, 8));
3324 l_offset+=8;
3325 syncIdLen--;
3329 proto_tree_add_bits_item(subtree, hf_cdma2k_Cc_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3330 ccInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
3331 l_offset+=1;
3332 if(ccInfoIncl == 1)
3334 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Calls_Assign, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3335 noCallAssign = tvb_get_bits8(tvb,l_offset, 8);
3336 l_offset+=8;
3337 for(loop = 1; loop <= noCallAssign; loop++)
3339 item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Calls_Assign, tvb, l_offset/8,noCallAssign*2, ENC_NA);
3340 proto_item_append_text(item1, " : [%02d]",loop);
3341 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3342 proto_tree_add_bits_item(subtree1, hf_cdma2k_Con_Ref, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3343 l_offset+=8;
3344 proto_tree_add_bits_item(subtree1, hf_cdma2k_Response_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3345 resInd = tvb_get_bits8(tvb,l_offset, 1);
3346 l_offset+=1;
3347 if(resInd == 1)
3349 proto_tree_add_bits_item(subtree1, hf_cdma2k_Tag, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3350 l_offset+=4;
3352 else
3354 proto_tree_add_bits_item(subtree1, hf_cdma2k_Bypass_Alert_Answer, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3355 l_offset+=1;
3360 proto_tree_add_bits_item(subtree, hf_cdma2k_Cs_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3361 csSup = tvb_get_bits8(tvb,l_offset, 1);
3362 l_offset+=1;
3364 if(msgType == 53)
3366 if(pRev == 6)
3368 if(encryptMode == 2 && scrIncl ==1)
3370 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 13, ENC_BIG_ENDIAN);
3371 l_offset+=13;
3373 else if(encryptMode == 2 && scrIncl !=1 && nnscrIncl == 1)
3375 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 12, ENC_BIG_ENDIAN);
3376 l_offset+=12;
3378 else if(encryptMode == 2 && scrIncl !=1 && nnscrIncl != 1)
3380 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 11, ENC_BIG_ENDIAN);
3381 l_offset+=11;
3383 else if(encryptMode != 2 && scrIncl ==1)
3385 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 10, ENC_BIG_ENDIAN);
3386 l_offset+=10;
3388 else if(encryptMode != 2 && scrIncl !=1 && nnscrIncl == 1)
3390 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 9, ENC_BIG_ENDIAN);
3391 l_offset+=9;
3393 else if(encryptMode != 2 && scrIncl !=1 && nnscrIncl != 1)
3395 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3396 l_offset+=8;
3399 else if(pRev == 7 || pRev == 8)
3401 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3402 l_offset+=6;
3405 proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_Type_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3406 plcmIncl = tvb_get_bits8(tvb,l_offset, 1);
3407 l_offset+=1;
3408 if(plcmIncl == 1)
3410 proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_Type, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3411 plcmType = tvb_get_bits8(tvb,l_offset, 4);
3412 l_offset+=4;
3413 if(plcmType == 1)
3415 proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_39, tvb, l_offset, 39, ENC_BIG_ENDIAN);
3416 l_offset+=39;
3421 if(pRev > 7 && msgType == 34)
3423 proto_tree_add_bits_item(subtree, hf_cdma2k_Chm_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3424 l_offset+=1;
3425 proto_tree_add_bits_item(subtree, hf_cdma2k_Cdma_Off_Time_Rep_Sup_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3426 cdmaRepSup = tvb_get_bits8(tvb,l_offset, 1);
3427 l_offset+=1;
3428 if(cdmaRepSup == 1)
3430 proto_tree_add_bits_item(subtree, hf_cdma2k_Cdma_Off_Time_Rep_Threshold_Unit, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3431 l_offset+=1;
3432 proto_tree_add_bits_item(subtree, hf_cdma2k_Cdma_Off_Time_Rep_Threshold, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3433 l_offset+=3;
3435 proto_tree_add_bits_item(subtree, hf_cdma2k_Release_To_Idle_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3436 l_offset+=1;
3437 proto_tree_add_bits_item(subtree, hf_cdma2k_Msg_Integrity_Sup, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3438 l_offset+=1;
3439 proto_tree_add_bits_item(subtree, hf_cdma2k_Gen_2g_Key, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3440 l_offset+=1;
3441 proto_tree_add_bits_item(subtree, hf_cdma2k_Register_In_Idle, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3442 l_offset+=1;
3444 proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_Type_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3445 plcmIncl = tvb_get_bits8(tvb,l_offset, 1);
3446 l_offset+=1;
3447 if(plcmIncl == 1)
3449 proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_Type, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3450 l_offset+=4;
3451 proto_tree_add_bits_item(subtree, hf_cdma2k_Plcm_39, tvb, l_offset, 39, ENC_BIG_ENDIAN);
3452 l_offset+=39;
3454 if(searchIncl == 1)
3456 proto_tree_add_bits_item(subtree, hf_cdma2k_T_Tdrop_Range_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3457 dropTRangeIncl = tvb_get_bits8(tvb,l_offset, 1);
3458 l_offset+=1;
3459 if(dropTRangeIncl == 1)
3461 proto_tree_add_bits_item(subtree, hf_cdma2k_T_Tdrop_Range, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3462 l_offset+=4;
3465 proto_tree_add_bits_item(subtree, hf_cdma2k_For_Pdch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3466 fwdPDChSup = tvb_get_bits8(tvb,l_offset, 1);
3467 l_offset+=1;
3468 if(fwdPDChSup == 1)
3470 proto_tree_add_bits_item(subtree, hf_cdma2k_Pdch_Chm_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3471 l_offset+=1;
3473 proto_tree_add_bits_item(subtree, hf_cdma2k_Pilot_Info_Req_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3474 l_offset+=1;
3475 proto_tree_add_bits_item(subtree, hf_cdma2k_Enc_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3476 encIncl = tvb_get_bits8(tvb,l_offset, 1);
3477 l_offset+=1;
3478 if(encIncl == 1)
3480 proto_tree_add_bits_item(subtree, hf_cdma2k_Sig_Encrypt_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3481 l_offset+=8;
3482 proto_tree_add_bits_item(subtree, hf_cdma2k_Ui_Encrypt_Sup, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3483 l_offset+=8;
3485 proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Sync_Id, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3486 l_offset+=1;
3487 proto_tree_add_bits_item(subtree, hf_cdma2k_Sid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3488 sidIncl = tvb_get_bits8(tvb,l_offset, 1);
3489 l_offset+=1;
3490 if(sidIncl == 1)
3492 proto_tree_add_bits_item(subtree, hf_cdma2k_Sid, tvb, l_offset, 15, ENC_BIG_ENDIAN);
3493 l_offset+=15;
3495 proto_tree_add_bits_item(subtree, hf_cdma2k_Nid_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3496 nidIncl = tvb_get_bits8(tvb,l_offset, 1);
3497 l_offset+=1;
3498 if(nidIncl == 1)
3500 proto_tree_add_bits_item(subtree, hf_cdma2k_Nid, tvb, l_offset, 16, ENC_BIG_ENDIAN);
3501 l_offset+=16;
3504 proto_tree_add_bits_item(subtree, hf_cdma2k_Sdb_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3505 l_offset+=1;
3506 if(csSup== 1)
3508 proto_tree_add_bits_item(subtree, hf_cdma2k_Mob_Qos, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3509 l_offset+=1;
3511 proto_tree_add_bits_item(subtree, hf_cdma2k_Ms_Init_Pos_Loc_Sup_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3512 l_offset+=1;
3515 if(pRev > 9 && msgType == 34)
3517 if(fwdPDChSup == 1)
3519 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Pdch_Supported, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3520 l_offset+=1;
3522 if(pacZoneId != 0)
3524 proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Enabled, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3525 pzHysEnabled = tvb_get_bits8(tvb,l_offset, 1);
3526 l_offset+=1;
3527 if(pzHysEnabled == 1)
3529 proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Info_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3530 pzHysInfoIncl = tvb_get_bits8(tvb,l_offset, 1);
3531 l_offset+=1;
3532 if(pzHysInfoIncl == 1)
3534 proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_List_Len, tvb, l_offset, 4, ENC_BIG_ENDIAN);
3535 l_offset+=4;
3536 proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Act_Timer, tvb, l_offset, 8, ENC_BIG_ENDIAN);
3537 l_offset+=8;
3538 proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Timer_Mul, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3539 l_offset+=3;
3540 proto_tree_add_bits_item(subtree, hf_cdma2k_Pz_Hyst_Timer_Exp, tvb, l_offset, 5, ENC_BIG_ENDIAN);
3541 l_offset+=5;
3545 proto_tree_add_bits_item(subtree, hf_cdma2k_Bcmc_On_Traffic_Sup, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3546 bcmcTchSup = tvb_get_bits8(tvb,l_offset, 1);
3547 l_offset+=1;
3548 if(bcmcTchSup == 1)
3550 proto_tree_add_bits_item(subtree, hf_cdma2k_Auto_Re_Traffic_Allowed_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3551 l_offset+=1;
3553 if(bcmcTchSup == 1 || numForAssign == 1)
3555 proto_tree_add_bits_item(subtree, hf_cdma2k_Sch_Bcmc_Ind, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3556 schBcmc = tvb_get_bits8(tvb,l_offset, 1);
3557 l_offset+=1;
3559 if(schBcmc == 1)
3561 proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Sch_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3562 addPlcmSchIncl = tvb_get_bits8(tvb,l_offset, 1);
3563 l_offset+=1;
3564 if(addPlcmSchIncl == 1)
3566 proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Sch_Type, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3567 addPlcmSchType = tvb_get_bits8(tvb,l_offset, 1);
3568 l_offset+=1;
3569 if(addPlcmSchType == 1)
3571 proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Sch_35, tvb, l_offset, 35, ENC_BIG_ENDIAN);
3572 l_offset+=35;
3575 for(loop =1; loop <= numForAssign; loop++)
3577 item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Sch_Bcmc, tvb, l_offset/8,numForAssign*2, ENC_NA);
3578 proto_item_append_text(item1, " : [%02d]",loop);
3579 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3580 proto_tree_add_bits_item(subtree1, hf_cdma2k_Use_Add_Plcm_For_Sch, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3581 l_offset+=1;
3582 proto_tree_add_bits_item(subtree1, hf_cdma2k_Fsch_Outercode_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3583 fSchOuterCodeIncl = tvb_get_bits8(tvb,l_offset, 1);
3584 l_offset+=1;
3585 if(fSchOuterCodeIncl == 1)
3587 proto_tree_add_bits_item(subtree1, hf_cdma2k_Fsch_Outercode_Rate, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3588 l_offset+=3;
3589 proto_tree_add_bits_item(subtree1, hf_cdma2k_Fsch_Outercode_Offset, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3590 l_offset+=6;
3594 if(csSup== 1)
3596 proto_tree_add_bits_item(subtree, hf_cdma2k_Max_Add_Serv_Instance, tvb, l_offset, 3, ENC_BIG_ENDIAN);
3597 l_offset+=3;
3599 proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Ch_Cfg_Rrm, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3600 l_offset+=1;
3601 proto_tree_add_bits_item(subtree, hf_cdma2k_Tx_Pwr_Limit_Incl, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3602 txPwrIncl = tvb_get_bits8(tvb,l_offset, 1);
3603 l_offset+=1;
3604 if(txPwrIncl == 1)
3606 proto_tree_add_bits_item(subtree, hf_cdma2k_Tx_Pwr_Limit_Default, tvb, l_offset, 1, ENC_BIG_ENDIAN);
3607 txPwrDflt = tvb_get_bits8(tvb,l_offset, 1);
3608 l_offset+=1;
3609 if(txPwrDflt == 0)
3611 proto_tree_add_bits_item(subtree, hf_cdma2k_Tx_Pwr_Limit, tvb, l_offset, 6, ENC_BIG_ENDIAN);
3612 l_offset+=6;
3617 if(l_offset%8 == 0)
3619 *offset = (l_offset/8);
3621 else
3623 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, l_offset, (8-(l_offset%8)), ENC_BIG_ENDIAN);
3624 *offset = (l_offset/8) + 1;
3629 /* Helper function to decode Alert With Info Message Parameters */
3630 static void cdma2k_message_ALERT_WITH_INFO(proto_item *item,tvbuff_t *tvb,proto_tree *tree,unsigned *offset)
3632 uint16_t recType = -1, recLen = -1, extBit = -1, numGrps = -1;
3633 uint16_t polIncl = -1, inc = -1;
3634 proto_tree *subtree = NULL, *subtree1 = NULL;
3635 proto_item *item1 = NULL, *item2 = NULL;
3637 item = proto_tree_add_item(tree,hf_cdma2k_AlertWithInfoMsg, tvb, *offset,-1, ENC_NA);
3638 subtree = proto_item_add_subtree(item, ett_cdma2k_subtree1);
3640 inc = 1;
3641 while(tvb_captured_length_remaining(tvb,*offset) != 0 )
3643 item1 = proto_tree_add_item(subtree, hf_cdma2k_Info_Rec, tvb, *offset,1, ENC_NA);
3644 proto_item_append_text(item1," : [%02d]", inc);
3645 inc++;
3646 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3647 proto_tree_add_item(subtree1, hf_cdma2k_Record_Type, tvb, *offset,1, ENC_BIG_ENDIAN);
3648 recType = tvb_get_bits8(tvb,*offset*8,8);
3649 *offset+=1;
3650 proto_tree_add_item(subtree1, hf_cdma2k_Record_Len, tvb, *offset,1, ENC_BIG_ENDIAN);
3651 recLen = tvb_get_bits8(tvb,*offset*8,8);
3652 *offset+=1;
3653 item1 = proto_tree_add_item(subtree1, hf_cdma2k_Type_Specific_Fields, tvb, *offset,recLen, ENC_NA);
3655 switch(recType)
3657 case 1:
3659 proto_item_append_text(item1," DISPLAY");
3660 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3661 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen, ENC_NA);
3662 proto_item_append_text(item2, " - ASCII Values Of Characters : ");
3663 while(recLen > 0)
3665 proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3666 *offset+=1;
3667 recLen-=1;
3669 break;
3672 case 2:
3674 proto_item_append_text(item1," CALLED PARTY NUMBER");
3675 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3676 proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Type, tvb, *offset*8,3, ENC_BIG_ENDIAN);
3677 proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Plan, tvb, *offset*8+3,4, ENC_BIG_ENDIAN);
3678 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen, ENC_NA);
3679 proto_item_append_text(item2, " - ASCII Values Of Called Party Number : ");
3680 while(recLen > 1)
3682 proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8+7,8));
3683 *offset+=1;
3684 recLen-=1;
3686 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+7,1, ENC_BIG_ENDIAN);
3687 *offset+=1;
3688 break;
3691 case 3:
3693 proto_item_append_text(item1," CALLING PARTY NUMBER");
3694 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3695 proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Type, tvb, *offset*8,3, ENC_BIG_ENDIAN);
3696 proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Plan, tvb, *offset*8+3,4, ENC_BIG_ENDIAN);
3697 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pres_Indicator, tvb, *offset*8+7,2, ENC_BIG_ENDIAN);
3698 *offset+=1;
3699 recLen-=1;
3700 proto_tree_add_bits_item(subtree1, hf_cdma2k_Scr_Indicator, tvb, *offset*8+1,2, ENC_BIG_ENDIAN);
3701 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen, ENC_NA);
3702 proto_item_append_text(item2, " - ASCII Values Of Calling Party Number : ");
3703 while(recLen > 1)
3705 proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8+3,8));
3706 *offset+=1;
3707 recLen-=1;
3709 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+3,5, ENC_BIG_ENDIAN);
3710 *offset+=1;
3711 break;
3714 case 5:
3716 proto_item_append_text(item1," SIGNAL");
3717 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3718 proto_tree_add_bits_item(subtree1, hf_cdma2k_Signal_Type, tvb, *offset*8,2, ENC_BIG_ENDIAN);
3719 proto_tree_add_bits_item(subtree1, hf_cdma2k_Alert_Pitch, tvb, *offset*8+2,2, ENC_BIG_ENDIAN);
3720 proto_tree_add_bits_item(subtree1, hf_cdma2k_Signal, tvb, *offset*8+4,6, ENC_BIG_ENDIAN);
3721 *offset+=1;
3722 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+2,6, ENC_BIG_ENDIAN);
3723 *offset+=1;
3724 break;
3727 case 6:
3729 proto_item_append_text(item1," MESSAGE WAITING");
3730 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3731 proto_tree_add_item(subtree1, hf_cdma2k_Msg_Count, tvb, *offset,1, ENC_BIG_ENDIAN);
3732 *offset+=1;
3733 break;
3736 case 8:
3738 proto_item_append_text(item1," CALLED PARTY SUBADDRESS");
3739 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3740 proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3741 proto_tree_add_bits_item(subtree1, hf_cdma2k_Subaddress_Type, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3742 proto_tree_add_bits_item(subtree1, hf_cdma2k_Odd_Even_Ind, tvb, *offset*8+4,1, ENC_BIG_ENDIAN);
3743 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+5,3, ENC_BIG_ENDIAN);
3744 *offset+=1;
3745 recLen-=1;
3746 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen-1, ENC_NA);
3747 proto_item_append_text(item2, " - ASCII Values Of Called Party Subaddress : ");
3748 while(recLen > 1)
3750 proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3751 *offset+=1;
3752 recLen-=1;
3754 break;
3757 case 9:
3759 proto_item_append_text(item1," CALLING PARTY SUBADDRESS");
3760 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3761 proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3762 proto_tree_add_bits_item(subtree1, hf_cdma2k_Subaddress_Type, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3763 proto_tree_add_bits_item(subtree1, hf_cdma2k_Odd_Even_Ind, tvb, *offset*8+4,1, ENC_BIG_ENDIAN);
3764 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+5,3, ENC_BIG_ENDIAN);
3765 *offset+=1;
3766 recLen-=1;
3767 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen-1, ENC_NA);
3768 proto_item_append_text(item2, " - ASCII Values Of Calling Party Subaddress : ");
3769 while(recLen > 1)
3771 proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3772 *offset+=1;
3773 recLen-=1;
3775 break;
3778 case 11:
3780 proto_item_append_text(item1," REDIRECTING NUMBER");
3781 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3782 proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3783 extBit = tvb_get_bits8(tvb,*offset*8,1);
3784 proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Type, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3785 proto_tree_add_bits_item(subtree1, hf_cdma2k_Number_Plan, tvb, *offset*8+4,4, ENC_BIG_ENDIAN);
3786 *offset+=1;
3787 recLen-=1;
3788 if(extBit == 0)
3790 proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3791 extBit = tvb_get_bits8(tvb,*offset*8,1);
3792 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pres_Indicator, tvb, *offset*8+1,2, ENC_BIG_ENDIAN);
3793 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+3,3, ENC_BIG_ENDIAN);
3794 proto_tree_add_bits_item(subtree1, hf_cdma2k_Scr_Indicator, tvb, *offset*8+6,2, ENC_BIG_ENDIAN);
3795 *offset+=1;
3796 recLen-=1;
3798 if(extBit == 0)
3800 proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3801 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3802 proto_tree_add_bits_item(subtree1, hf_cdma2k_Redirection_Reason, tvb, *offset*8+4,4, ENC_BIG_ENDIAN);
3803 *offset+=1;
3804 recLen-=1;
3806 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen-1, ENC_NA);
3807 proto_item_append_text(item2, " - ASCII Values Of Redirecting Number : ");
3808 while(recLen > 1)
3810 proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3811 *offset+=1;
3812 recLen-=1;
3814 break;
3817 case 12:
3819 proto_item_append_text(item1," REDIRECTING SUBADDRESS");
3820 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3821 proto_tree_add_bits_item(subtree1, hf_cdma2k_Extension_Bit, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3822 proto_tree_add_bits_item(subtree1, hf_cdma2k_Subaddress_Type, tvb, *offset*8+1,3, ENC_BIG_ENDIAN);
3823 proto_tree_add_bits_item(subtree1, hf_cdma2k_Odd_Even_Ind, tvb, *offset*8+4,1, ENC_BIG_ENDIAN);
3824 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+5,3, ENC_BIG_ENDIAN);
3825 *offset+=1;
3826 recLen-=1;
3827 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Chari, tvb, *offset,recLen-1, ENC_NA);
3828 proto_item_append_text(item2, " - ASCII Values Of Redirecting Subaddress : ");
3829 while(recLen > 1)
3831 proto_item_append_text(item2, "%02x ",tvb_get_bits8(tvb,*offset*8,8));
3832 *offset+=1;
3833 recLen-=1;
3835 break;
3838 case 13:
3840 proto_item_append_text(item1," METER PULSES");
3841 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3842 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pulse_Freq, tvb, *offset*8,11, ENC_BIG_ENDIAN);
3843 *offset+=1;
3844 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pulse_On_Time, tvb, *offset*8+3,8, ENC_BIG_ENDIAN);
3845 *offset+=1;
3846 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pulse_Off_Time, tvb, *offset*8+3,8, ENC_BIG_ENDIAN);
3847 *offset+=1;
3848 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pulse_Count, tvb, *offset*8+3,4, ENC_BIG_ENDIAN);
3849 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+7,1, ENC_BIG_ENDIAN);
3850 *offset+=1;
3851 break;
3854 case 14:
3856 proto_item_append_text(item1," PARAMETRIC ALERTING");
3857 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3858 proto_tree_add_item(subtree1, hf_cdma2k_Cadence_Count, tvb, *offset,1, ENC_BIG_ENDIAN);
3859 *offset+=1;
3860 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Grps, tvb, *offset*8,4, ENC_BIG_ENDIAN);
3861 numGrps = tvb_get_bits8(tvb,*offset*8,4);
3862 while(numGrps > 0)
3864 proto_tree_add_bits_item(subtree1, hf_cdma2k_Amplitude, tvb, *offset*8+4,8, ENC_BIG_ENDIAN);
3865 *offset+=1;
3866 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Freq, tvb, *offset,2, ENC_NA);
3867 proto_item_append_text(item2, " [01] : %02d", tvb_get_bits8(tvb,*offset*8+4,10));
3868 *offset+=1;
3869 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Freq, tvb, *offset,2, ENC_NA);
3870 proto_item_append_text(item2, " [02] : %02d", tvb_get_bits8(tvb,*offset*8+6,10));
3871 *offset+=2;
3872 proto_tree_add_item(subtree1, hf_cdma2k_On_Time, tvb, *offset,1, ENC_BIG_ENDIAN);
3873 *offset+=1;
3874 proto_tree_add_item(subtree1, hf_cdma2k_Off_Time, tvb, *offset,1, ENC_BIG_ENDIAN);
3875 *offset+=1;
3876 proto_tree_add_bits_item(subtree1, hf_cdma2k_Repeat, tvb, *offset*8,4, ENC_BIG_ENDIAN);
3877 proto_tree_add_bits_item(subtree1, hf_cdma2k_Delay, tvb, *offset*8+4,8, ENC_BIG_ENDIAN);
3878 *offset+=1;
3879 numGrps-=1;
3881 proto_tree_add_bits_item(subtree1, hf_cdma2k_Cadence_Type, tvb, *offset*8+4,2, ENC_BIG_ENDIAN);
3882 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+6,2, ENC_BIG_ENDIAN);
3883 *offset+=1;
3884 break;
3887 case 15:
3889 proto_item_append_text(item1," LINE CONTROL");
3890 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3891 proto_tree_add_bits_item(subtree1, hf_cdma2k_Polarity_Incl, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3892 polIncl = tvb_get_bits8(tvb,*offset*8,1);
3893 if(polIncl == 1)
3895 proto_tree_add_bits_item(subtree1, hf_cdma2k_Toggle_Mode, tvb, *offset*8+1,1, ENC_BIG_ENDIAN);
3896 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reverse_Polarity, tvb, *offset*8+2,1, ENC_BIG_ENDIAN);
3897 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pwr_Denial_Time, tvb, *offset*8+3,8, ENC_BIG_ENDIAN);
3898 *offset+=1;
3899 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+3,5, ENC_BIG_ENDIAN);
3900 *offset+=1;
3902 else
3904 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pwr_Denial_Time, tvb, *offset*8+1,8, ENC_BIG_ENDIAN);
3905 *offset+=1;
3906 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+1,7, ENC_BIG_ENDIAN);
3907 *offset+=1;
3909 break;
3912 case 21:
3914 proto_item_append_text(item1," CALL WAITING INDICATOR");
3915 subtree1 = proto_item_add_subtree(item1, ett_cdma2k_subtree1);
3916 proto_tree_add_bits_item(subtree1, hf_cdma2k_Call_Waiting_Ind, tvb, *offset*8,1, ENC_BIG_ENDIAN);
3917 proto_tree_add_bits_item(subtree1, hf_cdma2k_Reserved, tvb, *offset*8+1,7, ENC_BIG_ENDIAN);
3918 *offset+=1;
3919 break;
3922 default:
3924 proto_item_append_text(item1," Invalid / Unsupported Record Type in Alert With Info Message");
3925 break;
3927 } /* Switch */
3928 } /* while */
3932 /* Helper function to decode Active Set Record Field Parameters */
3933 static void cdma2k_message_ACTIVE_SET_RECORD_FIELDS(proto_item *item _U_, tvbuff_t *tvb, proto_tree *subtree, uint16_t *l_offset, uint16_t chInd, uint16_t schIncl)
3935 uint16_t loop = -1, numForSch = -1, numRevSch = -1, pilotCnt = -1, srchOffsetIncl = -1;
3936 uint16_t pilotInfoIncl = -1, recLen = -1, schCnt = -1, fchInfoIncl = -1, fchLowIncl = -1;
3937 uint16_t fchHighIncl = -1, schInfoIncl = -1, schLowIncl = -1, ccshIncl = -1, ccshEncIncl = -1;
3938 uint16_t pilotIncl = -1, schHighIncl = -1, dcchInfoIncl = -1, dcchLowIncl = -1, dcchHighIncl = -1;
3939 uint16_t bcmcFunIncl = -1, addPlcmFchIncl = -1, cpcchInfoIncl = -1, addPlcmFchType = -1;
3940 proto_tree *subtree1 = NULL, *subtree2 = NULL;
3941 proto_item *item1 = NULL, *item2 = NULL;
3943 if(schIncl != 0)
3945 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_For_Sch, tvb, *l_offset, 5, ENC_BIG_ENDIAN);
3946 numForSch = tvb_get_bits8(tvb,*l_offset, 5);
3947 *l_offset+=5;
3948 if(numForSch != 0)
3950 for(loop = 1; loop <= numForSch; loop++)
3952 item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_For_Sch, tvb, *l_offset/8,numForSch*2, ENC_NA);
3953 proto_item_append_text(item1," : [%d]", loop);
3954 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
3955 proto_tree_add_bits_item(subtree1, hf_cdma2k_Sch_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
3956 *l_offset+=1;
3957 proto_tree_add_bits_item(subtree1, hf_cdma2k_Sccl_Index, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
3958 *l_offset+=4;
3959 proto_tree_add_bits_item(subtree1, hf_cdma2k_Sch_Num_Bits_Idx, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
3960 *l_offset+=4;
3963 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Rev_Sch, tvb, *l_offset, 5, ENC_BIG_ENDIAN);
3964 numRevSch = tvb_get_bits8(tvb,*l_offset, 5);
3965 *l_offset+=5;
3966 if(numRevSch != 0)
3968 for(loop = 1; loop <= numRevSch; loop++)
3970 item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Rev_Sch, tvb, *l_offset/8,numRevSch*1, ENC_NA);
3971 proto_item_append_text(item1," : [%d]", loop);
3972 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
3973 proto_tree_add_bits_item(subtree1, hf_cdma2k_Sch_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
3974 *l_offset+=1;
3975 proto_tree_add_bits_item(subtree1, hf_cdma2k_Walsh_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
3976 *l_offset+=1;
3977 proto_tree_add_bits_item(subtree1, hf_cdma2k_Sch_Num_Bits_Idx, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
3978 *l_offset+=4;
3981 } /* schIncl */
3983 proto_tree_add_bits_item(subtree, hf_cdma2k_Num_Pilots, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
3984 pilotCnt = tvb_get_bits8(tvb,*l_offset, 3);
3985 *l_offset+=3;
3986 proto_tree_add_bits_item(subtree, hf_cdma2k_Srch_Offset_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
3987 srchOffsetIncl = tvb_get_bits8(tvb,*l_offset, 1);
3988 *l_offset+=1;
3989 for(loop = 1; loop <= pilotCnt; loop++)
3991 item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Pilots, tvb, *l_offset/8,1, ENC_NA);
3992 proto_item_append_text(item1," : [%d]", loop);
3993 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
3994 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pilot_Pn, tvb, *l_offset, 9, ENC_BIG_ENDIAN);
3995 *l_offset+=9;
3996 if(srchOffsetIncl == 1)
3998 proto_tree_add_bits_item(subtree1, hf_cdma2k_Srch_Offset, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
3999 *l_offset+=3;
4001 proto_tree_add_bits_item(subtree1, hf_cdma2k_Add_Pilot_Rec_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4002 pilotInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4003 *l_offset+=1;
4004 if(pilotInfoIncl == 1)
4006 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pilot_Rec_Type, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4007 *l_offset+=3;
4008 proto_tree_add_bits_item(subtree1, hf_cdma2k_Record_Len, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4009 recLen = tvb_get_bits8(tvb,*l_offset, 3);
4010 *l_offset+=3;
4011 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Type_Specific_Fields, tvb, (*l_offset/8),recLen+1, ENC_NA);
4012 while(recLen > 0)
4014 proto_item_append_text(item2," 0x%02x",tvb_get_bits8(tvb,*l_offset, 8));
4015 *l_offset+=8;
4016 recLen-=1;
4019 proto_tree_add_bits_item(subtree1, hf_cdma2k_Pwr_Comb_Ind, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4020 *l_offset+=1;
4021 if(chInd == 5 || chInd == 7)
4023 proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Fch, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4024 *l_offset+=11;
4025 proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Fch, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4026 *l_offset+=2;
4028 if(chInd == 2 || chInd == 6 || chInd == 7)
4030 proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Dcch, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4031 *l_offset+=11;
4032 proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Dcch, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4033 *l_offset+=2;
4036 if(schIncl != 0)
4038 proto_tree_add_bits_item(subtree1, hf_cdma2k_Num_Sch, tvb, *l_offset, 5, ENC_BIG_ENDIAN);
4039 schCnt = tvb_get_bits8(tvb,*l_offset, 5);
4040 *l_offset+=5;
4041 for(loop = 1; loop <= schCnt; loop++)
4043 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_Sch, tvb, *l_offset/8,-1, ENC_NA);
4044 proto_item_append_text(item2," : [%d]", loop);
4045 subtree2 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
4046 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4047 *l_offset+=1;
4048 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sccl_Index, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
4049 *l_offset+=4;
4050 proto_tree_add_bits_item(subtree2,hf_cdma2k_Pilot_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4051 pilotIncl = tvb_get_bits8(tvb,*l_offset, 1);
4052 *l_offset+=1;
4053 if(pilotIncl == 1)
4055 proto_tree_add_bits_item(subtree2,hf_cdma2k_Code_Chan_Sch, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4056 *l_offset+=11;
4057 proto_tree_add_bits_item(subtree2,hf_cdma2k_Qof_Mask_Id_Sch, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4058 *l_offset+=2;
4061 } /* schIncl */
4062 } /* loop */
4064 if(chInd == 5 || chInd == 7)
4066 proto_tree_add_bits_item(subtree, hf_cdma2k_3xFch_Info_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4067 fchInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4068 *l_offset+=1;
4070 if(chInd == 2 || chInd == 6 || chInd == 7)
4072 proto_tree_add_bits_item(subtree, hf_cdma2k_3xDcch_Info_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4073 dcchInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4074 *l_offset+=1;
4076 if((fchInfoIncl == 1) || (dcchInfoIncl == 1))
4078 for(loop = 1; loop <= pilotCnt; loop++)
4080 item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Pilots, tvb, *l_offset/8,-1, ENC_NA);
4081 proto_item_append_text(item1," : [%d]", loop);
4082 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
4083 if(fchInfoIncl == 1)
4085 proto_tree_add_bits_item(subtree1, hf_cdma2k_3xFch_Low_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4086 fchLowIncl = tvb_get_bits8(tvb,*l_offset, 1);
4087 *l_offset+=1;
4088 if(fchLowIncl == 1)
4090 proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Fch_Low, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4091 *l_offset+=2;
4092 proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Fch_Low, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4093 *l_offset+=11;
4095 proto_tree_add_bits_item(subtree1, hf_cdma2k_3xFch_High_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4096 fchHighIncl = tvb_get_bits8(tvb,*l_offset, 1);
4097 *l_offset+=1;
4098 if(fchHighIncl == 1)
4100 proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Fch_High, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4101 *l_offset+=2;
4102 proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Fch_High, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4103 *l_offset+=11;
4106 if(dcchInfoIncl == 1)
4108 proto_tree_add_bits_item(subtree1, hf_cdma2k_3xDcch_Low_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4109 dcchLowIncl = tvb_get_bits8(tvb,*l_offset, 1);
4110 *l_offset+=1;
4111 if(dcchLowIncl == 1)
4113 proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Dcch_Low, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4114 *l_offset+=2;
4115 proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Dcch_Low, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4116 *l_offset+=11;
4118 proto_tree_add_bits_item(subtree1, hf_cdma2k_3xDcch_High_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4119 dcchHighIncl = tvb_get_bits8(tvb,*l_offset, 1);
4120 *l_offset+=1;
4121 if(dcchHighIncl == 1)
4123 proto_tree_add_bits_item(subtree1, hf_cdma2k_Qof_Mask_Id_Dcch_High, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4124 *l_offset+=2;
4125 proto_tree_add_bits_item(subtree1, hf_cdma2k_Code_Chan_Dcch_High, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4126 *l_offset+=11;
4129 if(schIncl != 0)
4131 proto_tree_add_bits_item(subtree1, hf_cdma2k_3xSch_Info_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4132 schInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4133 *l_offset+=1;
4134 if(schInfoIncl == 1)
4136 for(loop = 1; loop <= schCnt; loop++)
4138 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_Sch, tvb, *l_offset/8,-1, ENC_NA);
4139 proto_item_append_text(item2," : [%d]", loop);
4140 subtree2 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
4141 proto_tree_add_bits_item(subtree2,hf_cdma2k_Sch_Id, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4142 *l_offset+=1;
4143 proto_tree_add_bits_item(subtree2,hf_cdma2k_3xSch_Low_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4144 schLowIncl = tvb_get_bits8(tvb,*l_offset, 1);
4145 *l_offset+=1;
4146 if(schLowIncl == 1)
4148 proto_tree_add_bits_item(subtree2,hf_cdma2k_Qof_Mask_Id_Sch_Low, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4149 *l_offset+=2;
4150 proto_tree_add_bits_item(subtree2,hf_cdma2k_Code_Chan_Sch_Low, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4151 *l_offset+=11;
4153 proto_tree_add_bits_item(subtree2,hf_cdma2k_3xSch_High_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4154 schHighIncl = tvb_get_bits8(tvb,*l_offset, 1);
4155 *l_offset+=1;
4156 if(schHighIncl == 1)
4158 proto_tree_add_bits_item(subtree2,hf_cdma2k_Qof_Mask_Id_Sch_High, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4159 *l_offset+=2;
4160 proto_tree_add_bits_item(subtree2,hf_cdma2k_Code_Chan_Sch_High, tvb, *l_offset, 11, ENC_BIG_ENDIAN);
4161 *l_offset+=11;
4163 } /* Sch loop */
4164 } /* schInfoIncl */
4165 } /* schIncl */
4166 } /* Pilot loop */
4167 } /* FchInfoIncl */
4169 proto_tree_add_bits_item(subtree, hf_cdma2k_Ccsh_Included, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4170 ccshIncl = tvb_get_bits8(tvb,*l_offset, 1);
4171 *l_offset+=1;
4172 if(ccshIncl == 1)
4174 proto_tree_add_bits_item(subtree, hf_cdma2k_Use_Ccsh_Encoder_Time, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4175 ccshEncIncl = tvb_get_bits8(tvb,*l_offset, 1);
4176 *l_offset+=1;
4177 if(ccshEncIncl == 1)
4179 proto_tree_add_bits_item(subtree, hf_cdma2k_Ccsh_Encoder_Action_Time, tvb, *l_offset, 6, ENC_BIG_ENDIAN);
4180 *l_offset+=6;
4182 for(loop = 1; loop <= pilotCnt; loop++)
4184 item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Pilots, tvb, *l_offset/8,-1, ENC_NA);
4185 proto_item_append_text(item1," : [%d]", loop);
4186 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
4187 for(loop = 1; loop <= schCnt; loop++)
4189 item2 = proto_tree_add_item(subtree1, hf_cdma2k_Record_Sch, tvb, *l_offset/8,-1, ENC_NA);
4190 proto_item_append_text(item2," : [%d]", loop);
4191 subtree2 = proto_item_add_subtree(item2,ett_cdma2k_subtree2);
4192 proto_tree_add_bits_item(subtree2,hf_cdma2k_Ccsh_Encoder_Type, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4193 *l_offset+=1;
4198 if(chInd == 2 || chInd == 6 || chInd == 7)
4200 proto_tree_add_bits_item(subtree, hf_cdma2k_Fundicated_Bcmc_Ind, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4201 bcmcFunIncl = tvb_get_bits8(tvb,*l_offset, 1);
4202 *l_offset+=1;
4203 if(chInd == 7 && bcmcFunIncl == 1)
4205 proto_tree_add_bits_item(subtree, hf_cdma2k_Rev_Fch_Assigned, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4206 *l_offset+=1;
4207 proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Fch_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4208 addPlcmFchIncl = tvb_get_bits8(tvb,*l_offset, 1);
4209 *l_offset+=1;
4210 if(addPlcmFchIncl == 1)
4212 proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Fch_Type, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4213 addPlcmFchType = tvb_get_bits8(tvb,*l_offset, 1);
4214 *l_offset+=1;
4215 if(addPlcmFchType == 1)
4217 proto_tree_add_bits_item(subtree, hf_cdma2k_Add_Plcm_For_Fch_39, tvb, *l_offset, 39, ENC_BIG_ENDIAN);
4218 *l_offset+=39;
4221 proto_tree_add_bits_item(subtree, hf_cdma2k_For_Cpcch_Info_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4222 cpcchInfoIncl = tvb_get_bits8(tvb,*l_offset, 1);
4223 *l_offset+=1;
4226 if(((chInd == 2 || chInd == 6) && (bcmcFunIncl == 1)) || ((chInd == 7) && (cpcchInfoIncl == 1)))
4228 for(loop = 1; loop <= pilotCnt; loop++)
4230 item1 = proto_tree_add_item(subtree, hf_cdma2k_Record_Pilots, tvb, *l_offset/8,-1, ENC_NA);
4231 proto_item_append_text(item1," : [%d]", loop);
4232 subtree1 = proto_item_add_subtree(item1,ett_cdma2k_subtree2);
4233 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Cpcch_Walsh, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4234 *l_offset+=7;
4235 proto_tree_add_bits_item(subtree1, hf_cdma2k_For_Cpcsch, tvb, *l_offset, 5, ENC_BIG_ENDIAN);
4236 *l_offset+=5;
4241 if(*l_offset%8 != 0)
4243 proto_tree_add_bits_item(subtree, hf_cdma2k_Reserved, tvb, *l_offset, (8-(*l_offset%8)), ENC_BIG_ENDIAN);
4248 /* Helper function to decode Authentication Field Parameters */
4249 static void cdma2k_message_AUTH_FIELDS(proto_item *item,tvbuff_t *tvb,proto_tree *subtree,uint16_t *l_offset, uint16_t headerRecLen)
4251 uint16_t macIncl = -1, authIncl = -1, sduSseqOrSseqh = -1, endOffset = -1;
4252 endOffset = *l_offset + (headerRecLen*8);
4254 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Mac_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4255 macIncl = tvb_get_bits8(tvb,*l_offset, 1);
4256 *l_offset+=1;
4257 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Auth_Incl, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4258 authIncl = tvb_get_bits8(tvb,*l_offset, 1);
4259 *l_offset+=1;
4261 if(authIncl == 1)
4263 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Authr, tvb, *l_offset, 18, ENC_BIG_ENDIAN);
4264 *l_offset+=18;
4265 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Randc, tvb, *l_offset, 8, ENC_BIG_ENDIAN);
4266 *l_offset+=8;
4267 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Count, tvb, *l_offset, 6, ENC_BIG_ENDIAN);
4268 *l_offset+=6;
4271 if(macIncl == 1)
4273 if(authIncl == 0)
4275 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Randc, tvb, *l_offset, 8, ENC_BIG_ENDIAN);
4276 *l_offset+=8;
4279 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_KeyId, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4280 *l_offset+=2;
4281 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_Algo, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4282 *l_offset+=3;
4283 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_Sseq_Or_Sseqh, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4284 sduSseqOrSseqh = tvb_get_bits8(tvb,*l_offset, 1);
4285 *l_offset+=1;
4287 if(sduSseqOrSseqh == 0)
4289 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_Sseq, tvb, *l_offset, 8, ENC_BIG_ENDIAN);
4290 *l_offset+=8;
4292 else
4294 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Sdu_Sseqh, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4295 *l_offset+=24;
4299 /*Skip bits till Header Record Length*/
4300 if(*l_offset < endOffset)
4302 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, (endOffset-*l_offset), ENC_BIG_ENDIAN);
4303 *l_offset+=(endOffset-*l_offset);
4305 else if(*l_offset > endOffset)
4307 proto_item_append_text(item," : Offset corruption in Authentication Fields");
4312 /* Helper function to decode Addressing Field Parameters */
4313 static void cdma2k_message_ADDR_FIELDS(proto_item *item,tvbuff_t *tvb,proto_tree *tree,uint16_t *l_offset, uint16_t headerRecLen)
4315 proto_item* ti;
4316 proto_tree *sub_tree;
4317 uint16_t msIdType = -1, extMsIdType = -1, msIdLen = -1, endOffset = -1;
4319 endOffset = *l_offset + (headerRecLen*8);
4320 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_MsId_Type, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4321 msIdType = tvb_get_bits8(tvb,*l_offset, 3);
4322 *l_offset+=3;
4324 if(msIdType == 4)
4326 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Ext_MsId_Type, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4327 extMsIdType = tvb_get_bits8(tvb,*l_offset, 3);
4328 *l_offset+=3;
4331 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_MsId_Length, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
4332 msIdLen = tvb_get_bits8(tvb,*l_offset, 4);
4333 *l_offset+=4;
4335 switch(msIdType)
4337 case 0:
4338 ti = proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Imsi_M_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4339 sub_tree = proto_item_add_subtree(ti, ett_cdma2k_m_s1);
4340 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);
4341 *l_offset += 10;
4342 proto_tree_add_bits_item(sub_tree, hf_cdma2k_tlac_Header_Record_Imsi_M_S1_thousand_dig, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
4343 *l_offset+=4;
4344 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);
4345 *l_offset += 10;
4346 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Imsi_M_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4347 *l_offset+=10;
4348 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Esn, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4349 *l_offset+=32;
4350 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 6, ENC_BIG_ENDIAN);
4351 *l_offset+=6;
4352 break;
4354 case 1:
4355 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Esn, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4356 *l_offset+=32;
4357 break;
4359 case 2:
4360 cdma2k_message_IMSI_CLASS_SUBFIELDS(item, tvb, tree,l_offset);
4361 break;
4363 case 3:
4364 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Esn, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4365 *l_offset+=32;
4366 cdma2k_message_IMSI_CLASS_SUBFIELDS(item, tvb, tree,l_offset);
4367 break;
4369 case 4:
4370 switch (extMsIdType)
4372 case 0:
4373 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId, tvb, *l_offset, 56, ENC_BIG_ENDIAN);
4374 *l_offset+=56;
4375 break;
4377 case 1:
4378 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId, tvb, *l_offset, 56, ENC_BIG_ENDIAN);
4379 *l_offset+=56;
4380 cdma2k_message_IMSI_CLASS_SUBFIELDS(item, tvb, tree,l_offset);
4381 break;
4383 case 2:
4384 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Esn, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4385 *l_offset+=32;
4386 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId, tvb, *l_offset, 56, ENC_BIG_ENDIAN);
4387 *l_offset+=56;
4388 cdma2k_message_IMSI_CLASS_SUBFIELDS(item, tvb, tree,l_offset);
4389 break;
4391 default:
4392 proto_item_append_text(item," : Invalid extMsIdType in Addressing Fields");
4393 break;
4395 break;
4397 case 5:
4398 if(msIdLen > 4)
4400 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Tmsi_Zone, tvb, *l_offset, (msIdLen-4)*8, ENC_BIG_ENDIAN);
4401 *l_offset+=((msIdLen-4)*8);
4402 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Tmsi_Code_Addr, tvb, *l_offset, 32, ENC_BIG_ENDIAN);
4403 *l_offset+=32;
4405 else
4407 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Tmsi_Code_Addr, tvb, *l_offset, msIdLen*8, ENC_BIG_ENDIAN);
4408 *l_offset+=(msIdLen*8);
4410 break;
4412 default:
4413 proto_item_append_text(item," : Invalid msIdType in Addressing Fields");
4414 break;
4417 /*Skip bits till Header Record Length*/
4418 if(*l_offset < endOffset)
4420 proto_tree_add_bits_item(tree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, (endOffset-*l_offset), ENC_BIG_ENDIAN);
4421 *l_offset+=(endOffset-*l_offset);
4423 else if(*l_offset > endOffset)
4425 proto_item_append_text(item," : Offset corruption in Addressing Fields");
4429 /* Helper function to decode Imsi Class and SubField Parameters */
4430 static void cdma2k_message_IMSI_CLASS_SUBFIELDS(proto_item *item,tvbuff_t *tvb, proto_tree *subtree, uint16_t *l_offset)
4432 uint16_t imsi_class = -1, classType = -1;
4434 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Class, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4435 imsi_class = tvb_get_bits8(tvb,*l_offset, 1);
4436 *l_offset+=1;
4438 if(imsi_class == 0)
4440 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Class0_Type, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4441 classType = tvb_get_bits8(tvb,*l_offset, 2);
4442 *l_offset+=2;
4444 switch (classType)
4446 case 0:
4447 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4448 *l_offset+=3;
4449 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4450 *l_offset+=10;
4451 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4452 *l_offset+=24;
4453 break;
4455 case 1:
4456 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 4, ENC_BIG_ENDIAN);
4457 *l_offset+=4;
4458 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_11_12, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4459 *l_offset+=7;
4460 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4461 *l_offset+=10;
4462 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4463 *l_offset+=24;
4464 break;
4466 case 2:
4467 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4468 *l_offset+=1;
4469 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_MCC, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4470 *l_offset+=10;
4471 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4472 *l_offset+=10;
4473 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4474 *l_offset+=24;
4475 break;
4477 case 3:
4478 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4479 *l_offset+=2;
4480 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_MCC, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4481 *l_offset+=10;
4482 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_11_12, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4483 *l_offset+=7;
4484 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4485 *l_offset+=10;
4486 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4487 *l_offset+=24;
4488 break;
4490 default:
4491 proto_item_append_text(item," : Invalid Class0 Type in Addressing Fields");
4492 break;
4495 else if(imsi_class == 1)
4497 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Class1_Type, tvb, *l_offset, 1, ENC_BIG_ENDIAN);
4498 classType = tvb_get_bits8(tvb,*l_offset, 1);
4499 *l_offset+=1;
4501 if(classType == 0)
4503 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Reserved, tvb, *l_offset, 2, ENC_BIG_ENDIAN);
4504 *l_offset+=2;
4505 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Addr_Num, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4506 *l_offset+=3;
4507 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_11_12, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4508 *l_offset+=7;
4509 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4510 *l_offset+=10;
4511 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4512 *l_offset+=24;
4514 else if(classType == 1)
4516 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_Addr_Num, tvb, *l_offset, 3, ENC_BIG_ENDIAN);
4517 *l_offset+=3;
4518 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_MCC, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4519 *l_offset+=10;
4520 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_11_12, tvb, *l_offset, 7, ENC_BIG_ENDIAN);
4521 *l_offset+=7;
4522 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S2, tvb, *l_offset, 10, ENC_BIG_ENDIAN);
4523 *l_offset+=10;
4524 proto_tree_add_bits_item(subtree, hf_cdma2k_tlac_Header_Record_Imsi_S1, tvb, *l_offset, 24, ENC_BIG_ENDIAN);
4525 *l_offset+=24;
4527 else
4529 proto_item_append_text(item," : Invalid Class1 Type in Addressing Fields");
4532 else
4534 proto_item_append_text(item," : Invalid Class in Addressing Fields");
4539 /*Method called when the dissection starts.....Starting point*/
4540 static int
4541 dissect_cdma2k(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
4544 /* Initialization*/
4545 proto_tree *cdma2k_msghdr_tree_start = NULL;
4547 proto_item *item = NULL;
4549 uint32_t offset = 0;
4550 uint16_t noerror = 1;
4552 /*Add the protocol name to display*/
4553 col_set_str(pinfo->cinfo, COL_PROTOCOL, "CDMA2K");
4554 col_set_str(pinfo->cinfo, COL_INFO, "[CDMA2K]");
4556 item = proto_tree_add_item(tree, hf_cdma2k_msghdr, tvb, 0, -1, ENC_NA);
4557 cdma2k_msghdr_tree_start = proto_item_add_subtree(item, ett_cdma2k_msghdr);
4559 item = proto_tree_add_item(cdma2k_msghdr_tree_start, hf_cdma2k_tlac_Record, tvb, offset, 1, ENC_NA );
4561 if (tree)
4563 while(tvb_captured_length_remaining(tvb, offset) != 0 && noerror == 1)
4564 cdma2k_message_decode(item, tvb, cdma2k_msghdr_tree_start, &offset, tree, &noerror, pinfo);
4566 if(noerror == 0)
4568 expert_add_info(pinfo, item, &ei_cdma2k_error);
4572 return tvb_reported_length(tvb);
4576 /*Register cdma2k */
4577 void proto_register_cdma2k(void)
4579 static hf_register_info hf[] = {
4580 { &hf_cdma2k_tlac_Record,
4581 { "TLAC Header Record and L3PDU", "cdma2k.tlacRecord", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4582 { &hf_cdma2k_tlac_Header,
4583 { "TLAC Header", "cdma2k.tlacHeader", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4584 { &hf_cdma2k_tlac_Channel,
4585 { "Channel Type", "cdma2k.tlacChannel", FT_UINT8, BASE_HEX_DEC, VALS(Channel_Types), 0x0, NULL, HFILL } },
4586 { &hf_cdma2k_tlac_1x_Protocol_Revision,
4587 { "1x Protocol Revision", "cdma2k.tlac1xProtocolRevision", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4588 { &hf_cdma2k_tlac_msgType,
4589 { "CDMA2K Message Type", "cdma2k.MsgType", FT_UINT8, BASE_HEX_DEC, VALS(Cdma2k_Message_types), 0x0, NULL, HFILL } },
4590 { &hf_cdma2k_tlac_Header_Record,
4591 { "TLAC Header Record", "cdma2k.tlacHeaderRecord", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4592 { &hf_cdma2k_tlac_Header_Records_Count,
4593 { "Header Record Count", "cdma2k.tlacHeaderRecordCount", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4594 { &hf_cdma2k_tlac_Header_Record_Type ,
4595 { "Header Record Type", "cdma2k.tlacHeaderRecordType", FT_UINT8, BASE_HEX_DEC, VALS(Header_Record_Types), 0x0, NULL, HFILL } },
4596 { &hf_cdma2k_tlac_Header_Record_Length,
4597 { "Header Record Length", "cdma2k.tlacHeaderRecordLength", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4598 { &hf_cdma2k_tlac_Header_Record_Values,
4599 { "Header Record Data :", "cdma2k.tlacHeaderRecordData", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4600 { &hf_cdma2k_tlac_Header_Record_Reserved,
4601 { "Reserved", "cdma2k.tlacHeaderRecordReservedData", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4602 { &hf_cdma2k_tlac_Header_Record_MsId_Type,
4603 { "MsId Type", "cdma2k.tlacHeaderRecordMsIdType", FT_UINT8, BASE_HEX_DEC, VALS(MsId_Address_Types), 0x0, NULL, HFILL } },
4604 { &hf_cdma2k_tlac_Header_Record_Ext_MsId_Type,
4605 { "Ext MsId Type", "cdma2k.tlacHeaderRecordExtMsIdType", FT_UINT8, BASE_HEX_DEC, VALS(Ext_MsId_Address_Types), 0x0, NULL, HFILL } },
4606 { &hf_cdma2k_tlac_Header_Record_MsId_Length,
4607 { "MsId Length", "cdma2k.tlacHeaderRecordMsIdLength", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4608 { &hf_cdma2k_tlac_Header_Record_Imsi_M_S1,
4609 { "Imsi M S1", "cdma2k.tlacHeaderRecordImsiMS1", FT_UINT24, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4610 { &hf_cdma2k_tlac_Header_Record_Imsi_M_S1_sec_3_dig,
4611 { "Second 3 digits", "cdma2k.tlacHeaderRecordImsiMS1sec_3_dig", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
4612 { &hf_cdma2k_tlac_Header_Record_Imsi_M_S1_thousand_dig,
4613 { "Thousands Digit", "cdma2k.tlacHeaderRecordImsiMS1thousand_dig", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
4614 { &hf_cdma2k_tlac_Header_Record_Imsi_M_S1_last_3_dig,
4615 { "Last 3 digits", "cdma2k.tlacHeaderRecordImsiMS1last_3_dig", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
4616 { &hf_cdma2k_tlac_Header_Record_Imsi_M_S2,
4617 { "Imsi M S2", "cdma2k.tlacHeaderRecordImsiMS2", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4618 { &hf_cdma2k_tlac_Header_Record_Esn,
4619 { "Esn", "cdma2k.tlacHeaderRecordEsn", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4620 { &hf_cdma2k_tlac_Header_Record_Imsi_Class,
4621 { "Imsi Class", "cdma2k.tlacHeaderRecordImsiClass", FT_UINT8, BASE_HEX_DEC, VALS(Imsi_Class), 0x0, NULL, HFILL } },
4622 { &hf_cdma2k_tlac_Header_Record_Imsi_Class0_Type,
4623 { "Imsi Class Type", "cdma2k.tlacHeaderRecordImsiClass0Type", FT_UINT8, BASE_HEX_DEC, VALS(Imsi_Class0_Types), 0x0, NULL, HFILL } },
4624 { &hf_cdma2k_tlac_Header_Record_Imsi_Class1_Type,
4625 { "Imsi Class Type", "cdma2k.tlacHeaderRecordImsiClass1Type", FT_UINT8, BASE_HEX_DEC, VALS(Imsi_Class1_Types), 0x0, NULL, HFILL } },
4626 { &hf_cdma2k_tlac_Header_Record_Imsi_S2,
4627 { "Imsi S2", "cdma2k.tlacHeaderRecordImsiS2", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4628 { &hf_cdma2k_tlac_Header_Record_Imsi_S1,
4629 { "Imsi S1", "cdma2k.tlacHeaderRecordImsiS1", FT_UINT24, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4630 { &hf_cdma2k_tlac_Header_Record_Imsi_11_12,
4631 { "Imsi 11 12", "cdma2k.tlacHeaderRecordImsi1112", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4632 { &hf_cdma2k_tlac_Header_Record_MCC,
4633 { "Mcc", "cdma2k.tlacHeaderRecordMcc", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4634 { &hf_cdma2k_tlac_Header_Record_Imsi_Addr_Num,
4635 { "Imsi Addr Num", "cdma2k.tlacHeaderRecordImsiAddrNum", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4636 { &hf_cdma2k_tlac_Header_Record_Ext_MsId_MeId,
4637 { "Ext MsId MeId", "cdma2k.tlacHeaderRecordExtMsIdMeId", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4638 { &hf_cdma2k_tlac_Header_Record_Tmsi_Code_Addr,
4639 { "Tmsi Code Addr", "cdma2k.tlacHeaderRecordTmsiCodeAddr", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4640 { &hf_cdma2k_tlac_Header_Record_Tmsi_Zone,
4641 { "Tmsi Zone", "cdma2k.tlacHeaderRecordTmsiZone", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4642 { &hf_cdma2k_tlac_Header_Record_Mac_Incl,
4643 { "Maci Incl", "cdma2k.tlacHeaderRecordMacIncl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4644 { &hf_cdma2k_tlac_Header_Record_Auth_Incl,
4645 { "Auth Incl", "cdma2k.tlacHeaderRecordAuthIncl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4646 { &hf_cdma2k_tlac_Header_Record_Authr,
4647 { "Authr", "cdma2k.tlacHeaderRecordAuthr", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4648 { &hf_cdma2k_tlac_Header_Record_Randc,
4649 { "Randc", "cdma2k.tlacHeaderRecordRandc", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4650 { &hf_cdma2k_tlac_Header_Record_Count,
4651 { "Count", "cdma2k.tlacHeaderRecordCount", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4652 { &hf_cdma2k_tlac_Header_Record_Sdu_KeyId,
4653 { "Sdu Key Id", "cdma2k.tlacHeaderRecordSduKeyId", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4654 { &hf_cdma2k_tlac_Header_Record_Sdu_Algo,
4655 { "Sdu Integrity Algo", "cdma2k.tlacHeaderRecordSduAlgo", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4656 { &hf_cdma2k_tlac_Header_Record_Sdu_Sseq,
4657 { "Sdu Sseq", "cdma2k.tlacHeaderRecordSduSseq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4658 { &hf_cdma2k_tlac_Header_Record_Sdu_Sseqh,
4659 { "Sdu Sseqh", "cdma2k.tlacHeaderRecordSduSseqh", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4660 { &hf_cdma2k_tlac_Header_Record_Sdu_Sseq_Or_Sseqh,
4661 { "Sdu Sseq Or Sseqh", "cdma2k.tlacHeaderRecordSduSseqOrSseqh", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4662 { &hf_cdma2k_tlac_Pdu,
4663 { "1x LAYER3 PDU", "cdma2k.tlacPdu", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4664 { &hf_cdma2k_tlac_Pdu_Length,
4665 { "1x LAYER3 PDU Length", "cdma2k.tlacPduLength", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4666 { &hf_cdma2k_RegMsg,
4667 { "Registration Message", "cdma2k.RegMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4668 { &hf_cdma2k_OrderIndMsg,
4669 { "Order Indication Message", "cdma2k.OrderIndMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4670 { &hf_cdma2k_DataBurstIndMsg,
4671 { "Data Burst Indication Message", "cdma2k.DataBurstIndMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4672 { &hf_cdma2k_OrigMsg,
4673 { "Origination Message", "cdma2k.OrigMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4674 { &hf_cdma2k_PageRspMsg,
4675 { "Page Response Message", "cdma2k.PageRspMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4676 { &hf_cdma2k_AuthChallRspMsg,
4677 { "Authentication Challenge Response Message", "cdma2k.AuthChallRspMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4678 { &hf_cdma2k_DataBurstCmdMsg,
4679 { "Data Burst Command Message", "cdma2k.DataBurstCmdMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4680 { &hf_cdma2k_AuthChallReqMsg,
4681 { "Authentication Challenge Request Message", "cdma2k.AuthChallReqMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4682 { &hf_cdma2k_GenPageReqMsg,
4683 { "Page Request Message", "cdma2k.GenPageReqMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4684 { &hf_cdma2k_msghdr,
4685 { "CDMA2000 Application Protocol", "cdma2k.msghdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4686 { &hf_cdma2k_Reg_Type,
4687 { "Reg Type", "cdma2k.Reg_Type", FT_UINT8, BASE_HEX_DEC, VALS(Reg_Types), 0x0, NULL, HFILL } },
4688 { &hf_cdma2k_Slot_Cycle_Index,
4689 { "Slot Cycle Index", "cdma2k.Slot_Cycle_Index", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4690 { &hf_cdma2k_Mob_P_Rev,
4691 { "MobPRev Value", "cdma2k.Mob_P_Rev", FT_UINT8, BASE_HEX_DEC,NULL, 0x0, NULL, HFILL } },
4692 { &hf_cdma2k_Ext_Scm,
4693 { "Ext Scm", "cdma2k.Ext_Scm", FT_UINT8, BASE_HEX_DEC,NULL, 0x0, NULL, HFILL } },
4694 { &hf_cdma2k_Sloted_Mode,
4695 { "Slotted Mode", "cdma2k.Slotted_Mode", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4696 { &hf_cdma2k_Mob_Term,
4697 { "Mob Term", "cdma2k.Mob_Term", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4698 { &hf_cdma2k_Return_Cause,
4699 { "Return Cause", "cdma2k.Return_Cause", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4700 { &hf_cdma2k_Qpch_Supported,
4701 { "Qpch Supported", "cdma2k.pch_Supported", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4702 { &hf_cdma2k_Enhanced_Rc,
4703 { "Enhanced Rc", "cdma2k.Enhanced_Rc", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4704 { &hf_cdma2k_Uzid_Incl,
4705 { "Uzid Incl", "cdma2k.Uzid_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4706 { &hf_cdma2k_Uzid,
4707 { "Uzid", "cdma2k.Uzid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4708 { &hf_cdma2k_GeoLoc_Incl,
4709 { "GeoLoc Incl", "cdma2k.GeoLoc_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4710 { &hf_cdma2k_GeoLoc_Type,
4711 { "GeoLoc Type", "cdma2k.GeoLoc_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4712 { &hf_cdma2k_Order_Ind,
4713 { "Order Value", "cdma2k.Order_Ind", FT_UINT8, BASE_HEX_DEC, VALS(Order_Ind_Cause_Types), 0x0, NULL, HFILL } },
4714 { &hf_cdma2k_Order_Cmd,
4715 { "Order Value", "cdma2k.Order_Cmd", FT_UINT8, BASE_HEX_DEC, VALS(Order_Cmd_Cause_Types), 0xfc, NULL, HFILL } },
4716 { &hf_cdma2k_Add_Record_Len,
4717 { "Add Record Len", "cdma2k.Add_Record_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4718 { &hf_cdma2k_Order_Specific_Fields,
4719 { "Order Specific Fields", "cdma2k.Order_Specific_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4720 { &hf_cdma2k_Ordq,
4721 { "Order Qualification", "cdma2k.Ordq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4722 { &hf_cdma2k_Randbs,
4723 { "Random Chall Data", "cdma2k.Randbs", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4724 { &hf_cdma2k_Rejected_Type,
4725 { "Rejected Message Type", "cdma2k.Rejected_Type", FT_UINT8, BASE_HEX_DEC, VALS(Cdma2k_Message_types), 0x0, NULL, HFILL } },
4726 { &hf_cdma2k_Rejected_Order,
4727 { "Order of Rejected Message", "cdma2k.Rejected_Order", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4728 { &hf_cdma2k_Rejected_Ordq,
4729 { "Order Qualification of Rejected Message", "cdma2k.Rejected_Ordq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4730 { &hf_cdma2k_Rejected_Parm_Id,
4731 { "Rejected Parameter", "cdma2k.Rejected_Parm_Id", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4732 { &hf_cdma2k_Rejected_Record,
4733 { "Rejected Record Type", "cdma2k.Rejected_Record", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4734 { &hf_cdma2k_Tag,
4735 { "Transaction Identifier", "cdma2k.Tag", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4736 { &hf_cdma2k_Rsc_Mode_Ind,
4737 { "Reduced Slot Cycle Mode Indication", "cdma2k.Rsc_Mode_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4738 { &hf_cdma2k_Rsci,
4739 { "Reduced Slot Cycle Mode Index", "cdma2k.Rsci", FT_UINT8, BASE_HEX_DEC, VALS(RSCI_Types), 0x0, NULL, HFILL } },
4740 { &hf_cdma2k_Rsc_End_Time_Unit,
4741 { "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 } },
4742 { &hf_cdma2k_Rsc_End_Time_Value,
4743 { "Reduced Slot Cycle Mode End Time Value", "cdma2k.Rsc_End_Time_Value", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4744 { &hf_cdma2k_Con_Ref,
4745 { "Connection Reference", "cdma2k.Con_Ref", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4746 { &hf_cdma2k_Authbs,
4747 { "Authbs", "cdma2k.Authbs", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4748 { &hf_cdma2k_Roam_Ind,
4749 { "Roam Indicator", "cdma2k.Roam_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4750 { &hf_cdma2k_C_Sig_Encrypt_Mode,
4751 { "Encrypt Mode", "cdma2k.C_Sig_Encrypt_Mode", FT_UINT8, BASE_HEX_DEC, VALS(C_Sig_Encrypt_Mode_Types), 0x0, NULL, HFILL } },
4752 { &hf_cdma2k_Enc_Key_Size,
4753 { "Enc Key Size", "cdma2k.Enc_Key_Size", FT_UINT8, BASE_HEX_DEC, VALS(Enc_Key_Types), 0x0, NULL, HFILL } },
4754 { &hf_cdma2k_Msg_Int_Info_Incl,
4755 { "Msg Int Info Incl", "cdma2k.Msg_Int_Info_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4756 { &hf_cdma2k_Change_Keys,
4757 { "Change Keys", "cdma2k.Change_Keys", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4758 { &hf_cdma2k_Use_Uak,
4759 { "Use Uak", "cdma2k.Use_Uak", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4760 { &hf_cdma2k_Retry_Type,
4761 { "Retry Type", "cdma2k.Retry_Type", FT_UINT8, BASE_HEX_DEC, VALS(Retry_Types), 0x0, NULL, HFILL } },
4762 { &hf_cdma2k_Retry_Delay,
4763 { "Retry Delay", "cdma2k.Retry_Delay", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4764 { &hf_cdma2k_Reject_Reason,
4765 { "Reject Reason", "cdma2k.Reject_Reason", FT_UINT8, BASE_HEX_DEC, VALS(Reject_Reason_Types), 0x0, NULL, HFILL } },
4766 { &hf_cdma2k_Rejected_Msg_Type,
4767 { "Rejected Message Type", "cdma2k.Rejected_Msg_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4768 { &hf_cdma2k_Rejected_Msg_Seq,
4769 { "Rejected Message Sequence", "cdma2k.Rejected_Msg_Seq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4770 { &hf_cdma2k_All_Bcmc_Flows_Ind,
4771 { "All BCMC Flows Indication", "cdma2k.All_Bcmc_Flows_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4772 { &hf_cdma2k_Clear_All_Retry_Delay,
4773 { "Clear All Retry Delay", "cdma2k.Clear_All_Retry_Delay", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4774 { &hf_cdma2k_All_Bcmc_Reason,
4775 { "All BCMC Reason", "cdma2k.All_Bcmc_Reason", FT_UINT8, BASE_HEX_DEC, VALS(All_Bcmc_Reason_Types), 0x0, NULL, HFILL } },
4776 { &hf_cdma2k_All_Bcmc_Retry_Delay,
4777 { "All BCMC Retry Delay", "cdma2k.All_Bcmc_Retry_Delay", FT_UINT8, BASE_HEX_DEC, VALS(All_Bcmc_Retry_Delay_Types), 0x0, NULL, HFILL } },
4778 { &hf_cdma2k_Num_Bcmc_Programs,
4779 { "Number of BCMC Programs", "cdma2k.Num_Bcmc_Programs", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4780 { &hf_cdma2k_Bcmc_Program_Id_Len,
4781 { "BCMC Program ID Length", "cdma2k.Bcmc_Program_Id_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4782 { &hf_cdma2k_Bcmc_Program_Id,
4783 { "BCMC Program ID", "cdma2k.Bcmc_Program_Id", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4784 { &hf_cdma2k_Bcmc_Flow_Discriminator_Len,
4785 { "BCMC Flow Discriminator Length", "cdma2k.Bcmc_Flow_Discriminator_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4786 { &hf_cdma2k_Num_Flow_Discriminator,
4787 { "Number of Flow Discriminator", "cdma2k.Num_Flow_Discriminator", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4788 { &hf_cdma2k_Bcmc_Flow_Discriminator ,
4789 { "BCMC Flow Discriminator", "cdma2k.Bcmc_Flow_Discriminator", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4790 { &hf_cdma2k_Same_As_Previous_Bcmc_Flow,
4791 { "Same As Previous BCMC Flow", "cdma2k.Same_As_Previous_Bcmc_Flow", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4792 { &hf_cdma2k_Bcmc_Reason,
4793 { "BCMC Reason", "cdma2k.Bcmc_Reason", FT_UINT8, BASE_HEX_DEC, VALS(All_Bcmc_Reason_Types), 0x0, NULL, HFILL } },
4794 { &hf_cdma2k_Bcmc_Retry_Delay,
4795 { "BCMC Retry Delay", "cdma2k.Bcmc_Retry_Delay", FT_UINT8, BASE_HEX_DEC, VALS(All_Bcmc_Retry_Delay_Types), 0x0, NULL, HFILL } },
4796 { &hf_cdma2k_Rsc_Mode_Supported,
4797 { "Reduced Slot Cycle Mode Supported", "cdma2k.Rsc_Mode_Supported", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4798 { &hf_cdma2k_Max_Rsc_End_Time_Unit,
4799 { "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 } },
4800 { &hf_cdma2k_Max_Rsc_End_Time_Value,
4801 { "maximum RSC End Time Value", "cdma2k.Max_Rsc_End_Time_Value", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4802 { &hf_cdma2k_Req_Rsci,
4803 { "Requested Reduced Slot Cycle index", "cdma2k.Req_Rsci", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4804 { &hf_cdma2k_Ignore_Qpch,
4805 { "Ignore QPCH Indicators", "cdma2k.Ignore_Qpch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4806 { &hf_cdma2k_Rer_Mode_Incl,
4807 { "Radio Environment Reporting Mode Indicator", "cdma2k.Rer_Mode_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4808 { &hf_cdma2k_Rer_Mode_Enabled,
4809 { "Radio Environment Reporting Mode Enabled", "cdma2k.Rer_Mode_Enabled", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4810 { &hf_cdma2k_Rer_Max_Num_Msg_Idx,
4811 { "RER Maximum Message Index", "cdma2k.Rer_Max_Num_Msg_Idx", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4812 { &hf_cdma2k_Rer_Time,
4813 { "Radio Environment Reporting Time", "cdma2k.Rer_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4814 { &hf_cdma2k_Rer_Time_Unit,
4815 { "Radio Environment Reporting Time Unit", "cdma2k.Rer_Time_Unit", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4816 { &hf_cdma2k_Max_Rer_Pilot_List_Size,
4817 { "Maximum RER pilot List Size", "cdma2k.Max_Rer_Pilot_List_Size", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4818 { &hf_cdma2k_Tkz_Mode_Incl,
4819 { "Tracking Zone Mode Indication", "cdma2k.Tkz_Mode_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4820 { &hf_cdma2k_Tkz_Mode_Enabled,
4821 { "Tracking Zone Mode Enabled", "cdma2k.Tkz_Mode_Enabled", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4822 { &hf_cdma2k_Tkz_Max_Num_Msg_Idx,
4823 { "Tracking Zone Maximum Message Index", "cdma2k.Tkz_Max_Num_Msg_Idx", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4824 { &hf_cdma2k_Tkz_Update_Prd,
4825 { "Tracking Zone Update Period", "cdma2k.Tkz_Update_Prd", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4826 { &hf_cdma2k_Tkz_List_Len,
4827 { "Tracking Zone List Length", "cdma2k.Tkz_List_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4828 { &hf_cdma2k_Tkz_Timer,
4829 { "Tracking Zone Timer", "cdma2k.Tkz_Timer", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4830 { &hf_cdma2k_Sr_Id_Bitmap,
4831 { "Service Reference Identifier Bitmap", "cdma2k.Sr_Id_Bitmap", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4832 { &hf_cdma2k_Service_Status,
4833 { "Service Status", "cdma2k.Service_Status", FT_UINT8, BASE_HEX_DEC, VALS(Service_Status_Types), 0x0, NULL, HFILL } },
4834 { &hf_cdma2k_Regulatory_Ind_Incl,
4835 { "Regulatory Indicator Included", "cdma2k.Regulatory_Ind_Incl", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4836 { &hf_cdma2k_Regulatory_Ind,
4837 { "Regulatory Indication", "cdma2k.Regulatory_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4838 { &hf_cdma2k_Msg_Number,
4839 { "Msg Number", "cdma2k.Msg_Number", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4840 { &hf_cdma2k_Burst_Type,
4841 { "Burst Type", "cdma2k.Burst_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4842 { &hf_cdma2k_Num_Msgs,
4843 { "Num Msgs", "cdma2k.Num_Msgs", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4844 { &hf_cdma2k_Num_Fields,
4845 { "Num Fields", "cdma2k.Num_Fields", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4846 { &hf_cdma2k_Chari_Data,
4847 { "Chari Data", "cdma2k.Chari_Data", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4848 { &hf_cdma2k_Msg_Identifier,
4849 { "Msg Identifier", "cdma2k.Msg_Identifier", FT_UINT8, BASE_HEX_DEC, VALS(Chari_Identifier_Types), 0x0, NULL, HFILL } },
4850 { &hf_cdma2k_Parm_Id,
4851 { "Parm Id", "cdma2k.Parm_Id", FT_UINT8, BASE_HEX_DEC, VALS(Chari_Parm_Types), 0x0, NULL, HFILL } },
4852 { &hf_cdma2k_Parm_Length,
4853 { "Parm Length", "cdma2k.Parm_Length", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4854 { &hf_cdma2k_Parm_Value,
4855 { "Parm Data", "cdma2k.Parm_Value", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4856 { &hf_cdma2k_Authu,
4857 { "Authu", "cdma2k.Authu", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4858 { &hf_cdma2k_Randu,
4859 { "Randu", "cdma2k.Randu", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4860 { &hf_cdma2k_Gen_Cmea_Key,
4861 { "Gen Cmea Key", "cdma2k.Gen_Cmea_Key", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4862 { &hf_cdma2k_service_option,
4863 { "Service Option", "cdma2k.service_option", FT_UINT32, BASE_HEX_DEC, VALS(Page_Req_Service_Option_Types), 0x0, NULL, HFILL } },
4864 { &hf_cdma2k_Use_Time,
4865 { "Use Time", "cdma2k.Use_Time", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4866 { &hf_cdma2k_Action_Time,
4867 { "Action Time", "cdma2k.Action_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4868 { &hf_cdma2k_Hdm_Seq,
4869 { "Sequence Number", "cdma2k.Hdm_Seq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4870 { &hf_cdma2k_Parms_Incl,
4871 { "Parameters Incl", "cdma2k.Parms_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4872 { &hf_cdma2k_P_Rev,
4873 { "Protocol Revision", "cdma2k.P_Rev", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4874 { &hf_cdma2k_Serv_Neg_Type,
4875 { "Service Negotiation", "cdma2k.Serv_Neg_Type", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4876 { &hf_cdma2k_Search_Incl,
4877 { "Pilot Search Incl", "cdma2k.Search_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4878 { &hf_cdma2k_Pilot_Search,
4879 { "Pilot Search Parameters", "cdma2k.Search", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4880 { &hf_cdma2k_Srch_Win_A,
4881 { "Search Window size for Active Set", "cdma2k.Srch_Win_A", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4882 { &hf_cdma2k_Srch_Win_N,
4883 { "Search Window size for Neighbour Set", "cdma2k.Srch_Win_N", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4884 { &hf_cdma2k_Srch_Win_R,
4885 { "Search Window size for Remaining Set", "cdma2k.Srch_Win_R", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4886 { &hf_cdma2k_T_Add,
4887 { "Pilot Detection Threshold", "cdma2k.T_Add", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4888 { &hf_cdma2k_T_Drop,
4889 { "Pilot Drop Threshold", "cdma2k.T_Drop", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4890 { &hf_cdma2k_T_Comp,
4891 { "Active vs Candidate Set Comp Threshold", "cdma2k.T_Comp", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4892 { &hf_cdma2k_T_Tdrop,
4893 { "Drop Timer Value", "cdma2k.T_Tdrop", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4894 { &hf_cdma2k_Soft_Slope,
4895 { "Soft Slope", "cdma2k.Soft_Slope", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4896 { &hf_cdma2k_Add_Intercept,
4897 { "Add Pilot Intercept", "cdma2k.Add_Intercept", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4898 { &hf_cdma2k_Drop_Intercept,
4899 { "Drop Pilot Intercept", "cdma2k.Drop_Intercept", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4900 { &hf_cdma2k_Extra_Parms_Incl,
4901 { "Extra Parms Incl", "cdma2k.Extra_Parms_incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4902 { &hf_cdma2k_Extra_Parms,
4903 { "Extra Parameters", "cdma2k.Extra_Parms", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4904 { &hf_cdma2k_Packet_Zone_Id,
4905 { "Packet Zone Identifier", "cdma2k.Packet_Zone_Id", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4906 { &hf_cdma2k_Frame_Offset,
4907 { "Frame Offset", "cdma2k.Frame_Offset", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4908 { &hf_cdma2k_Private_Lcm,
4909 { "Private LCM", "cdma2k.Private_Lcm", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4910 { &hf_cdma2k_Reset_L2,
4911 { "Reset L2 Ack", "cdma2k.Reset_L2", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4912 { &hf_cdma2k_Reset_Fpc,
4913 { "Reset Fch Power Cntrl Cntrs", "cdma2k.Reset_Fpc", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4914 { &hf_cdma2k_Encrypt_Mode,
4915 { "Msg Encryption Mode", "cdma2k.Encrypt_Mode", FT_UINT8, BASE_HEX_DEC, VALS(Encrypt_Mode_Types), 0x0, NULL, HFILL } },
4916 { &hf_cdma2k_Nom_Pwr_Ext,
4917 { "Ext Nominal Transmit Power", "cdma2k.Nom_Pwr_Ext", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4918 { &hf_cdma2k_Nom_Pwr,
4919 { "Nominal Transmit Power Offset", "cdma2k.Nom_Pwr", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4920 { &hf_cdma2k_Rlgain_Traffic_Pilot,
4921 { "Rlgain Of Traffic Pilot", "cdma2k.Rlgain_Traffic_Pilot", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4922 { &hf_cdma2k_Default_Rlag,
4923 { "Reverse Link Attr Gain", "cdma2k.Default_Rlag", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4924 { &hf_cdma2k_Num_Preamble,
4925 { "Traffic Channel Preamble", "cdma2k.Num_Preamble", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4926 { &hf_cdma2k_Band_Class,
4927 { "Band Class", "cdma2k.Band_Class", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4928 { &hf_cdma2k_Cdma_Freq,
4929 { "Frequency Assignment", "cdma2k.Cdma_Freq", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4930 { &hf_cdma2k_Return_If_Handoff_Fail,
4931 { "Return On Failure", "cdma2k.Return_If_Handoff_Fail", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4932 { &hf_cdma2k_Complete_Search,
4933 { "Complete Search", "cdma2k.Complete_Search", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4934 { &hf_cdma2k_Periodic_Search,
4935 { "Periodic Search", "cdma2k.Periodic_Search", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4936 { &hf_cdma2k_Scr_Incl,
4937 { "Scr Incl", "cdma2k.Scr_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4938 { &hf_cdma2k_Scr,
4939 { "Service Config Records", "cdma2k.Scr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4940 { &hf_cdma2k_Serv_Con_Seq,
4941 { "Service Connect Sequence Number", "cdma2k.Serv_Con_Seq", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4942 { &hf_cdma2k_Record_Type,
4943 { "Information Record Type", "cdma2k.Record_Type", FT_UINT8, BASE_HEX_DEC, VALS(Info_Rec_Types), 0x0, NULL, HFILL } },
4944 { &hf_cdma2k_Record_Len,
4945 { "Information Record Length", "cdma2k.Record_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4946 { &hf_cdma2k_Type_Specific_Fields,
4947 { "Type Specific Fields :", "cdma2k.Type_Specific_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4948 { &hf_cdma2k_Nnscr_Incl,
4949 { "Nnscr Incl", "cdma2k.Nnscr_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4950 { &hf_cdma2k_Nnscr,
4951 { "Non-Negotiable Service Config Records", "cdma2k.Nnscr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4952 { &hf_cdma2k_Use_Pwr_Cntl_Step,
4953 { "Power Control Step Size Incl", "cdma2k.Use_Pwr_Cntl_Step", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4954 { &hf_cdma2k_Pwr_Cntl_Step,
4955 { "Power Control Step Size", "cdma2k.Pwr_Cntl_Step", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4956 { &hf_cdma2k_Clear_Retry_Delay,
4957 { "Clear Retry Delay Indicator", "cdma2k.Clear_Retry_Delay", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4958 { &hf_cdma2k_Sch_Incl,
4959 { "Supplemented Channel Parms Incl", "cdma2k.Sch_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4960 { &hf_cdma2k_Sch,
4961 { "Supplemental Channel Parameters", "cdma2k.Sch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4962 { &hf_cdma2k_Num_For_Assign,
4963 { "Forward Channels Assigned", "cdma2k.Num_For_Assign", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4964 { &hf_cdma2k_Record_For_Assign,
4965 { "Forward Channel Records", "cdma2k.Record_For_Assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4966 { &hf_cdma2k_Sch_Id,
4967 { "Channel Identifier", "cdma2k.Sch_Id", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4968 { &hf_cdma2k_Sch_Duration,
4969 { "Channel Assignment Duration", "cdma2k.Sch_Duration", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4970 { &hf_cdma2k_Sch_Start_Time_Incl,
4971 { "Start Time Incl", "cdma2k.Sch_Start_Time_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4972 { &hf_cdma2k_Sch_Start_Time,
4973 { "Start Time", "cdma2k.Sch_Start_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4974 { &hf_cdma2k_Sccl_Index,
4975 { "Channel Code List Index", "cdma2k.Sccl_Index", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4976 { &hf_cdma2k_Num_Rev_Assign,
4977 { "Reverse Channels Assigned", "cdma2k.Num_Rev_Assign", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4978 { &hf_cdma2k_Record_Rev_Assign,
4979 { "Reverse Channel Records", "cdma2k.Record_Rev_Assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4980 { &hf_cdma2k_Sch_Num_Bits_Idx,
4981 { "Bits Per Frame Index", "cdma2k.Sch_Num_Bits_Idx", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4982 { &hf_cdma2k_Fpc_Subchain_Gain,
4983 { "Fwd Pwr Cntl Subchannel Rel Gain", "cdma2k.Fpc_Subchain_Gain", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4984 { &hf_cdma2k_Use_Pc_Time,
4985 { "Pwr Cntl Action Time Incl", "cdma2k.Use_Pc_Time", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4986 { &hf_cdma2k_Pc_Action_Time,
4987 { "Pwr Cntl Action Time", "cdma2k.Pc_Action_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4988 { &hf_cdma2k_Ch_Ind,
4989 { "Channel Indicator", "cdma2k.Ch_Ind", FT_UINT8, BASE_HEX_DEC, VALS(l3dpu_ORM_ch_ind_values), 0x0, NULL, HFILL } },
4990 { &hf_cdma2k_Active_Set_Rec_Len,
4991 { "Active Set Rec Length", "cdma2k.Active_Set_Rec_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4992 { &hf_cdma2k_Active_Set_Rec_Fields,
4993 { "Active Set Rec Fields", "cdma2k.Active_Set_Rec_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4994 { &hf_cdma2k_Rev_Fch_Gating_Mode,
4995 { "Rev Gating Mode Indicator", "cdma2k.Rev_Fch_Gating_Mode", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
4996 { &hf_cdma2k_Rev_Pwr_Cntl_Delay_Incl,
4997 { "Rev Pwr Cntl Delay Incl", "cdma2k.Rev_Pwr_Cntl_Delay_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
4998 { &hf_cdma2k_Rev_Pwr_Cntl_Delay,
4999 { "Rev Pwr Cntl Delay", "cdma2k.Rev_Pwr_Cntl_Delay", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5000 { &hf_cdma2k_D_Sig_Encrypt_Mode,
5001 { "Dedicated Chan Encryption Mode Ind", "cdma2k.D_Sig_Encrypt_Mode", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5002 { &hf_cdma2k_3xfl_1xrl_Incl,
5003 { "3x Fwd & 1x Rev Link Incl", "cdma2k.3xfl_1xrl_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5004 { &hf_cdma2k_1xrl_Freq_Offset,
5005 { "1x Rev Link Freq Offset", "cdma2k.1xrl_Freq_Offset", FT_UINT8, BASE_HEX_DEC, VALS(rl_Freq_Offset_Types), 0x0, NULL, HFILL } },
5006 { &hf_cdma2k_Sync_Id_Incl,
5007 { "Sync Identifier Incl", "cdma2k.Sync_Id_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5008 { &hf_cdma2k_Sync_Id_Len,
5009 { "Sync Identifier Len", "cdma2k.Sync_Id_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5010 { &hf_cdma2k_Sync_Id,
5011 { "Sync Identifier :", "cdma2k.Sync_Id", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5012 { &hf_cdma2k_Cc_Info_Incl,
5013 { "Call Cntl Info Incl", "cdma2k.Cc_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5014 { &hf_cdma2k_Num_Calls_Assign,
5015 { "Number Of Call Assignments", "cdma2k.Num_Calls_Assign", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5016 { &hf_cdma2k_Record_Calls_Assign,
5017 { "Call Assignment Records", "cdma2k.Record_Calls_Assign", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5018 { &hf_cdma2k_Response_Ind,
5019 { "Response Indicator", "cdma2k.Response_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5020 { &hf_cdma2k_Bypass_Alert_Answer,
5021 { "Bypass Alert Answer", "cdma2k.Bypass_Alert_Answer", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5022 { &hf_cdma2k_Cs_Supported,
5023 { "Concurrent Services Supported", "cdma2k.Cs_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5024 { &hf_cdma2k_Chm_Supported,
5025 { "Control Hold Mode Supported", "cdma2k.Chm_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5026 { &hf_cdma2k_Cdma_Off_Time_Rep_Sup_Ind,
5027 { "CDMA Off Time Report Supported", "cdma2k.Cdma_Off_Time_Rep_Sup_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5028 { &hf_cdma2k_Cdma_Off_Time_Rep_Threshold_Unit,
5029 { "Threshold Unit", "cdma2k.Cdma_Off_Time_Rep_Threshold_Unit", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5030 { &hf_cdma2k_Cdma_Off_Time_Rep_Threshold,
5031 { "Threshold", "cdma2k.Cdma_Off_Time_Rep_Threshold", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5032 { &hf_cdma2k_Release_To_Idle_Ind,
5033 { "Release To Idle Allowed", "cdma2k.Release_To_Idle_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5034 { &hf_cdma2k_Msg_Integrity_Sup,
5035 { "Msg Integrity Supported", "cdma2k.Msg_Integrity_Sup", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5036 { &hf_cdma2k_Gen_2g_Key,
5037 { "Generate 2G Encryption Key", "cdma2k.Gen_2g_Key", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5038 { &hf_cdma2k_Register_In_Idle,
5039 { "Register In Idle State", "cdma2k.Register_In_Idle", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5040 { &hf_cdma2k_Plcm_Type_Incl,
5041 { "PLCM Type Incl", "cdma2k.Plcm_Type_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5042 { &hf_cdma2k_Plcm_Type,
5043 { "PLCM Type", "cdma2k.Plcm_Type", FT_UINT8, BASE_HEX_DEC, VALS(Plcm_Types), 0x0, NULL, HFILL } },
5044 { &hf_cdma2k_Plcm_39,
5045 { "PLCM 39", "cdma2k.Plcm_39", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5046 { &hf_cdma2k_T_Tdrop_Range_Incl,
5047 { "Drop Timer Range Incl", "cdma2k.T_Tdrop_Range_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5048 { &hf_cdma2k_T_Tdrop_Range,
5049 { "Drop Timer Range", "cdma2k.T_Tdrop_Range", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5050 { &hf_cdma2k_For_Pdch_Supported,
5051 { "For Packet Data Channel Supported", "cdma2k.For_Pdch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5052 { &hf_cdma2k_Pdch_Chm_Supported,
5053 { "PDCh Cntl Mode Supported", "cdma2k.Pdch_Chm_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5054 { &hf_cdma2k_Pilot_Info_Req_Supported,
5055 { "Pilot Info Req Supported", "cdma2k.Pilot_Info_Req_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5056 { &hf_cdma2k_Enc_Supported,
5057 { "Encryption Fields Incl", "cdma2k.Enc_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5058 { &hf_cdma2k_Sig_Encrypt_Sup,
5059 { "Signalling Encryption Supported", "cdma2k.Sig_Encrypt_Sup", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5060 { &hf_cdma2k_Ui_Encrypt_Sup,
5061 { "User Info Encryption Supported", "cdma2k.Ui_Encrypt_Sup", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5062 { &hf_cdma2k_Use_Sync_Id,
5063 { "Sync Id Supported", "cdma2k.Use_Sync_Id", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5064 { &hf_cdma2k_Sid_Incl,
5065 { "System Identification Incl", "cdma2k.Sid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5066 { &hf_cdma2k_Sid,
5067 { "System Identification", "cdma2k.Sid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5068 { &hf_cdma2k_Nid_Incl,
5069 { "Network Identification Incl", "cdma2k.Nid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5070 { &hf_cdma2k_Nid,
5071 { "Network Identification", "cdma2k.Nid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5072 { &hf_cdma2k_Sdb_Supported,
5073 { "Short Data Burst Indicator", "cdma2k.Sdb_Supported", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5074 { &hf_cdma2k_Mob_Qos,
5075 { "MS QoS Parm Req", "cdma2k.Mob_Qos", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5076 { &hf_cdma2k_Ms_Init_Pos_Loc_Sup_Ind,
5077 { "MS Pos Loc Supported", "cdma2k.Ms_Init_Pos_Loc_Sup_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5078 { &hf_cdma2k_Rev_Pdch_Supported,
5079 { "Rev Packet Data Channel Supported", "cdma2k.Rev_Pdch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5080 { &hf_cdma2k_Pz_Hyst_Enabled,
5081 { "Packet Zone Hysteresis Enabled", "cdma2k.Pz_Hyst_Enabled", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5082 { &hf_cdma2k_Pz_Hyst_Info_Incl,
5083 { "Packet Zone Hysteresis Info Incl", "cdma2k.Pz_Hyst_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5084 { &hf_cdma2k_Pz_Hyst_List_Len,
5085 { "Packet Zone Hysteresis List Length", "cdma2k.Pz_Hyst_List_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5086 { &hf_cdma2k_Pz_Hyst_Act_Timer,
5087 { "Packet Zone Hysteresis Act Timer", "cdma2k.Pz_Hyst_Act_Timer", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5088 { &hf_cdma2k_Pz_Hyst_Timer_Mul,
5089 { "Packet Zone Hysteresis Timer Multiplier", "cdma2k.Pz_Hyst_Timer_Mul", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5090 { &hf_cdma2k_Pz_Hyst_Timer_Exp,
5091 { "Packet Zone Hysteresis Timer Exponent", "cdma2k.Pz_Hyst_Timer_Exp", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5092 { &hf_cdma2k_Bcmc_On_Traffic_Sup,
5093 { "BCMC On Tch Supported", "cdma2k.Bcmc_On_Traffic_Sup", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5094 { &hf_cdma2k_Auto_Re_Traffic_Allowed_Ind,
5095 { "BCMC Req On Tch Allowed", "cdma2k.Auto_Re_Traffic_Allowed_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5096 { &hf_cdma2k_Sch_Bcmc_Ind,
5097 { "BCMC On Sch Indicator", "cdma2k.Sch_Bcmc_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5098 { &hf_cdma2k_Add_Plcm_For_Sch_Incl,
5099 { "For Sch Additional PLCM Incl", "cdma2k.Add_Plcm_For_Sch_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5100 { &hf_cdma2k_Add_Plcm_For_Sch_Type,
5101 { "For Sch Additional PLCM Type", "cdma2k.Add_Plcm_For_Sch_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5102 { &hf_cdma2k_Add_Plcm_For_Sch_35,
5103 { "For Sch Additional PLCM", "cdma2k.Add_Plcm_For_Sch_35", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5104 { &hf_cdma2k_Record_Sch_Bcmc,
5105 { "Sch BCMC Records", "cdma2k.Record_Sch_Bcmc", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5106 { &hf_cdma2k_Use_Add_Plcm_For_Sch,
5107 { "Use For Sch Additional PLCM", "cdma2k.Use_Add_Plcm_For_Sch", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5108 { &hf_cdma2k_Fsch_Outercode_Incl,
5109 { "For Sch Outer Code Incl", "cdma2k.Fsch_Outercode_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5110 { &hf_cdma2k_Fsch_Outercode_Rate,
5111 { "For Sch Outer Code Rate", "cdma2k.Fsch_Outercode_Rate", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5112 { &hf_cdma2k_Fsch_Outercode_Offset,
5113 { "For Sch Outer Code Offset", "cdma2k.Fsch_Outercode_Offset", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5114 { &hf_cdma2k_Max_Add_Serv_Instance,
5115 { "Max Additional Service Identifiers", "cdma2k.Max_Add_Serv_Instance", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5116 { &hf_cdma2k_Use_Ch_Cfg_Rrm,
5117 { "Channel Config Req Allowed", "cdma2k.Use_Ch_Cfg_Rrm", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5118 { &hf_cdma2k_Tx_Pwr_Limit_Incl,
5119 { "Tx Pwr Limit Incl", "cdma2k.Tx_Pwr_Limit_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5120 { &hf_cdma2k_Tx_Pwr_Limit_Default,
5121 { "Tx Pwr Limit Default", "cdma2k.Tx_Pwr_Limit_Default", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5122 { &hf_cdma2k_Tx_Pwr_Limit,
5123 { "Tx Pwr Limit", "cdma2k.Tx_Pwr_Limit", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5124 { &hf_cdma2k_Num_For_Sch,
5125 { "Forward Sch Record Count", "cdma2k.Num_For_Sch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5126 { &hf_cdma2k_Record_For_Sch,
5127 { "Forward Supplemental Channel Record", "cdma2k.Record_For_Sch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5128 { &hf_cdma2k_Num_Rev_Sch,
5129 { "Reverse Sch Record Count", "cdma2k.Num_Rev_Sch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5130 { &hf_cdma2k_Record_Rev_Sch,
5131 { "Reverse Supplemental Channel Record", "cdma2k.Record_Rev_Sch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5132 { &hf_cdma2k_Walsh_Id,
5133 { "Walsh Cover Identifier", "cdma2k.Walsh_Id", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5134 { &hf_cdma2k_Num_Pilots,
5135 { "Pilot Count", "cdma2k.Num_Pilots", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5136 { &hf_cdma2k_Srch_Offset_Incl,
5137 { "Search Window Offset Incl", "cdma2k.Srch_Offset_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5138 { &hf_cdma2k_Record_Pilots,
5139 { "Pilot Record", "cdma2k.Record_Pilots", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5140 { &hf_cdma2k_Pilot_Pn,
5141 { "PN Sequence Offset Idx", "cdma2k.Pilot_Pn", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5142 { &hf_cdma2k_Srch_Offset,
5143 { "Search Window Offset", "cdma2k.Srch_Offset", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5144 { &hf_cdma2k_Add_Pilot_Rec_Incl,
5145 { "Add Pilot Info Incl", "cdma2k.Add_Pilot_Rec_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5146 { &hf_cdma2k_Pilot_Rec_Type,
5147 { "Pilot Rec Type", "cdma2k.Pilot_Rec_Type", FT_UINT8, BASE_HEX_DEC, VALS(Pilot_Rec_Types), 0x0, NULL, HFILL } },
5148 { &hf_cdma2k_Pwr_Comb_Ind,
5149 { "Power Cntl Indicator", "cdma2k.Pwr_Comb_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5150 { &hf_cdma2k_Code_Chan_Fch,
5151 { "CodeCh On Fundamental Channel", "cdma2k.Code_Chan_Fch", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5152 { &hf_cdma2k_Qof_Mask_Id_Fch,
5153 { "Qof Idx On Fundamental Channel", "cdma2k.Qof_Mask_Id_Fch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5154 { &hf_cdma2k_Num_Sch,
5155 { "Supplemental Channel Record Cnt", "cdma2k.Num_Sch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5156 { &hf_cdma2k_Record_Sch,
5157 { "Supplemental Channel Records", "cdma2k.Record_Sch", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5158 { &hf_cdma2k_Pilot_Incl,
5159 { "Pilot Incl", "cdma2k.Pilot_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5160 { &hf_cdma2k_Code_Chan_Sch,
5161 { "Code Channel", "cdma2k.Code_Chan_Sch", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5162 { &hf_cdma2k_Qof_Mask_Id_Sch,
5163 { "Qof Index", "cdma2k.Qof_Mask_Id_Sch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5164 { &hf_cdma2k_3xFch_Info_Incl,
5165 { "3xFundamentalCh Info Incl", "cdma2k.3xFch_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5166 { &hf_cdma2k_3xFch_Low_Incl,
5167 { "Fundamental CodeCh On Low Freq Incl", "cdma2k.3xFch_Low_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5168 { &hf_cdma2k_Qof_Mask_Id_Fch_Low,
5169 { "Qof Idx", "cdma2k.Qof_Mask_Id_Fch_Low", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5170 { &hf_cdma2k_Code_Chan_Fch_Low,
5171 { "Code Channel", "cdma2k.Code_Chan_Fch_Low", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5172 { &hf_cdma2k_3xFch_High_Incl,
5173 { "Fundamental CodeCh On High Freq Incl", "cdma2k.3xFch_High_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5174 { &hf_cdma2k_Qof_Mask_Id_Fch_High,
5175 { "Qof Idx", "cdma2k.Qof_Mask_Id_Fch_High", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5176 { &hf_cdma2k_Code_Chan_Fch_High,
5177 { "Code Channel", "cdma2k.Code_Chan_Fch_High", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5178 { &hf_cdma2k_3xSch_Info_Incl,
5179 { "3x SCh Info Incl", "cdma2k.3xSch_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5180 { &hf_cdma2k_3xSch_Low_Incl,
5181 { "Sch On Low Freq Incl", "cdma2k.3xSch_Low_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5182 { &hf_cdma2k_Qof_Mask_Id_Sch_Low,
5183 { "Qof Index", "cdma2k.Qof_Mask_Id_Sch_Low", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5184 { &hf_cdma2k_Code_Chan_Sch_Low,
5185 { "Code Channel", "cdma2k.Code_Chan_Sch_Low", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5186 { &hf_cdma2k_3xSch_High_Incl,
5187 { "Sch On High Freq Incl", "cdma2k.3xSch_High_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5188 { &hf_cdma2k_Qof_Mask_Id_Sch_High,
5189 { "Qof Index", "cdma2k.Qof_Mask_Id_Sch_High", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5190 { &hf_cdma2k_Code_Chan_Sch_High,
5191 { "Code Channel", "cdma2k.Code_Chan_Sch_High", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5192 { &hf_cdma2k_Ccsh_Included,
5193 { "Ccsh Incl", "cdma2k.Ccsh_Included", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5194 { &hf_cdma2k_Use_Ccsh_Encoder_Time,
5195 { "Ccsh Encoder Indicator", "cdma2k.Use_Ccsh_Encoder_Time", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5196 { &hf_cdma2k_Ccsh_Encoder_Action_Time,
5197 { "Ccsh Encoder Action Time", "cdma2k.Ccsh_Encoder_Action_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5198 { &hf_cdma2k_Ccsh_Encoder_Type,
5199 { "Ccsh Encoder Type", "cdma2k.Ccsh_Encoder_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5200 { &hf_cdma2k_Code_Chan_Dcch,
5201 { "CodeCh On Dedicated Channel", "cdma2k.Code_Chan_Dcch", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5202 { &hf_cdma2k_Qof_Mask_Id_Dcch,
5203 { "Qof Idx On Dedicated Channel", "cdma2k.Qof_Mask_Id_Dcch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5204 { &hf_cdma2k_3xDcch_Info_Incl,
5205 { "3xDedicatedCh Info Incl", "cdma2k.3xDcch_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5206 { &hf_cdma2k_3xDcch_Low_Incl,
5207 { "Dedicated CodeCh On Low Freq Incl", "cdma2k.3xDcch_Low_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5208 { &hf_cdma2k_Qof_Mask_Id_Dcch_Low,
5209 { "Qof Idx", "cdma2k.Qof_Mask_Id_Dcch_Low", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5210 { &hf_cdma2k_Code_Chan_Dcch_Low,
5211 { "Code Channel", "cdma2k.Code_Chan_Dcch_Low", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5212 { &hf_cdma2k_3xDcch_High_Incl,
5213 { "Dedicated CodeCh On High Freq Incl", "cdma2k.3xDcch_High_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5214 { &hf_cdma2k_Qof_Mask_Id_Dcch_High,
5215 { "Qof Idx", "cdma2k.Qof_Mask_Id_Dcch_High", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5216 { &hf_cdma2k_Code_Chan_Dcch_High,
5217 { "Code Channel", "cdma2k.Code_Chan_Dcch_High", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5218 { &hf_cdma2k_Fundicated_Bcmc_Ind,
5219 { "BCMC On FundicatedCh Indicator", "cdma2k.Fundicated_Bcmc_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5220 { &hf_cdma2k_For_Cpcch_Walsh,
5221 { "Forward Cpcch Walsh Code", "cdma2k.For_Cpcch_Walsh", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5222 { &hf_cdma2k_For_Cpcsch,
5223 { "Forward Cpcsch", "cdma2k.For_Cpcsch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5224 { &hf_cdma2k_Rev_Fch_Assigned,
5225 { "Rev FCh Channel Assigned", "cdma2k.Rev_Fch_Assigned", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5226 { &hf_cdma2k_Add_Plcm_For_Fch_Incl,
5227 { "Add PLCM For Forward Fch Incl", "cdma2k.Add_Plcm_For_Fch_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5228 { &hf_cdma2k_Add_Plcm_For_Fch_Type,
5229 { "Add PLCM For Forward Fch Type", "cdma2k.Add_Plcm_For_Fch_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5230 { &hf_cdma2k_Add_Plcm_For_Fch_39,
5231 { "Add PLCM For Forward Fch", "cdma2k.Add_Plcm_For_Fch_39", FT_UINT64, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5232 { &hf_cdma2k_For_Cpcch_Info_Incl,
5233 { "Cpcch Info Incl", "cdma2k.For_Cpcch_Info_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5234 { &hf_cdma2k_Info_Rec,
5235 { "Information Records", "cdma2k.Info_Rec", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5236 { &hf_cdma2k_Chari,
5237 { "Chari", "cdma2k.Chari", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5238 { &hf_cdma2k_Number_Type,
5239 { "Number Type", "cdma2k.Number_Type", FT_UINT8, BASE_HEX_DEC, VALS(Number_Types), 0x0, NULL, HFILL } },
5240 { &hf_cdma2k_Number_Plan,
5241 { "Number Plan", "cdma2k.Number_Plan", FT_UINT8, BASE_HEX_DEC, VALS(Number_Plan_Types), 0x0, NULL, HFILL } },
5242 { &hf_cdma2k_Pres_Indicator,
5243 { "Presentation Indicator", "cdma2k.Pres_Indicator", FT_UINT8, BASE_HEX_DEC, VALS(Pres_Ind_Types), 0x0, NULL, HFILL } },
5244 { &hf_cdma2k_Scr_Indicator,
5245 { "Screening Indicator", "cdma2k.Scr_Indicator", FT_UINT8, BASE_HEX_DEC, VALS(Scr_Ind_Types), 0x0, NULL, HFILL } },
5246 { &hf_cdma2k_Signal_Type,
5247 { "Signal Type", "cdma2k.Signal_Type", FT_UINT8, BASE_HEX_DEC, VALS(Signal_Types), 0x0, NULL, HFILL } },
5248 { &hf_cdma2k_Alert_Pitch,
5249 { "Alert Pitch", "cdma2k.Alert_Pitch", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5250 { &hf_cdma2k_Signal,
5251 { "Signal", "cdma2k.Signal", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5252 { &hf_cdma2k_Msg_Count,
5253 { "Msg Count", "cdma2k.Msg_Count", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5254 { &hf_cdma2k_Extension_Bit,
5255 { "Extension Bit", "cdma2k.Extension_Bit", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5256 { &hf_cdma2k_Subaddress_Type,
5257 { "Subaddress Type", "cdma2k.Subaddress_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5258 { &hf_cdma2k_Odd_Even_Ind,
5259 { "Odd/Even Indicator", "cdma2k.Odd_Even_Ind", FT_UINT8, BASE_HEX_DEC, VALS(Odd_Even_Ind_Types), 0x0, NULL, HFILL } },
5260 { &hf_cdma2k_Redirection_Reason,
5261 { "Redirection Reason", "cdma2k.Redirection_Reason", FT_UINT8, BASE_HEX_DEC, VALS(Redir_Reason_Types), 0x0, NULL, HFILL } },
5262 { &hf_cdma2k_Pulse_Freq,
5263 { "Pulse Frequency", "cdma2k.Pulse_Freq", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5264 { &hf_cdma2k_Pulse_On_Time,
5265 { "Pulse On Time", "cdma2k.Pulse_On_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5266 { &hf_cdma2k_Pulse_Off_Time,
5267 { "Pulse Off Time", "cdma2k.Pulse_Off_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5268 { &hf_cdma2k_Pulse_Count,
5269 { "Pulse Count", "cdma2k.Pulse_Count", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5270 { &hf_cdma2k_Cadence_Count,
5271 { "Cadence Count", "cdma2k.Cadence_Count", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5272 { &hf_cdma2k_Num_Grps,
5273 { "Num Of Groups", "cdma2k.Num_Grps", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5274 { &hf_cdma2k_Amplitude,
5275 { "Amplitude", "cdma2k.Amplitude", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5276 { &hf_cdma2k_Freq,
5277 { "Tone Frequency", "cdma2k.Freq", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5278 { &hf_cdma2k_On_Time,
5279 { "On Time", "cdma2k.On_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5280 { &hf_cdma2k_Off_Time,
5281 { "Off Time", "cdma2k.Off_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5282 { &hf_cdma2k_Repeat,
5283 { "Repeat", "cdma2k.Repeat", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5284 { &hf_cdma2k_Delay,
5285 { "Delay", "cdma2k.Delay", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5286 { &hf_cdma2k_Cadence_Type,
5287 { "Cadence Type", "cdma2k.Cadence_Type", FT_UINT8, BASE_HEX_DEC, VALS(Cadence_Types), 0x0, NULL, HFILL } },
5288 { &hf_cdma2k_Polarity_Incl,
5289 { "Polarity Incl", "cdma2k.Polarity_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5290 { &hf_cdma2k_Toggle_Mode,
5291 { "Toggle Mode", "cdma2k.Toggle_Mode", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5292 { &hf_cdma2k_Reverse_Polarity,
5293 { "Reverse Polarity", "cdma2k.Reverse_Polarity", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5294 { &hf_cdma2k_Pwr_Denial_Time,
5295 { "Power Denial Time", "cdma2k.Pwr_Denial_Time", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5296 { &hf_cdma2k_Call_Waiting_Ind,
5297 { "Call Waiting Ind", "cdma2k.Call_Waiting_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5298 { &hf_cdma2k_Request_Mode,
5299 { "Request Mode", "cdma2k.Request_Mode", FT_UINT8, BASE_DEC, VALS(l3dpu_ORM_PRM_req_mode_values), 0x0, NULL, HFILL } },
5300 { &hf_cdma2k_Special_Service,
5301 { "Special Service", "cdma2k.Special_Service", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5302 { &hf_cdma2k_pm,
5303 { "Privacy Mode", "cdma2k.PM", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5304 { &hf_cdma2k_digit_mode,
5305 { "Digit Mode", "cdma2k.Digit_Mode", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5306 { &hf_cdma2k_More_Fields,
5307 { "More Fields", "cdma2k.More_Fields", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5308 { &hf_cdma2k_Nar_An_Cap,
5309 { "NAR AN CAP", "cdma2k.Nar_An_Cap", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5310 { &hf_cdma2k_Paca_Reorig,
5311 { "PACA REORIG", "cdma2k.Paca_Reorig", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5312 { &hf_cdma2k_More_Records,
5313 { "More Records", "cdma2k.More_Records", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5314 { &hf_cdma2k_encryption_supported,
5315 { "Encryption Supported", "cdma2k.Encryption_Supported", FT_UINT8, BASE_DEC, VALS(l3dpu_ORM_encryption_algo_values), 0x0, NULL, HFILL } },
5316 { &hf_cdma2k_Paca_Supported,
5317 { "Paca Supported", "cdma2k.Paca_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5318 { &hf_cdma2k_num_alt_so,
5319 { "NUM ALT SO", "cdma2k.NUM_ALT_SO", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5320 { &hf_cdma2k_Alt_So,
5321 { "Alt So", "cdma2k.Alt_So", FT_UINT16, BASE_HEX_DEC, VALS(Page_Req_Service_Option_Types), 0x0, NULL, HFILL } },
5322 { &hf_cdma2k_DRS,
5323 { "Data ready to send", "cdma2k.DRS", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5324 { &hf_cdma2k_SR_ID,
5325 { "SR ID", "cdma2k.SR_ID", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5326 { &hf_cdma2k_Otd_Supported,
5327 { "OTD Supported", "cdma2k.OTD_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5328 { &hf_cdma2k_For_Rc_Pref,
5329 { "Forward Rc Pref", "cdma2k.For_Rc_Pref", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5330 { &hf_cdma2k_Rev_Rc_Pref,
5331 { "Reverse Rc Pref", "cdma2k.Rev_Rc_Pref", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5332 { &hf_cdma2k_Fch_Supported,
5333 { "Fch Supported","cdma2k.Fch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5334 { &hf_cdma2k_Fch_capability_type_specific_Fields,
5335 { "Fch capability type specific Fields","cdma2k.Fch_cap_type_specific_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5336 { &hf_cdma2k_Fch_Frame_Size,
5337 { "Frame Size", "cdma2k.Fch_Frame_Size", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5338 { &hf_cdma2k_For_Fch_Len,
5339 { "Forward Fch Len", "cdma2k.For_Fch_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5340 { &hf_cdma2k_For_Fch_Rc_Map,
5341 { "Forward Fch Rc Map", "cdma2k.For_Fch_Rc_Map", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL } },
5342 { &hf_cdma2k_Rev_Fch_Len,
5343 { "Reverse Fch Len", "cdma2k.Rev_Fch_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5344 { &hf_cdma2k_Rev_Fch_Rc_Map,
5345 { "Reverse Fch Rc Map", "cdma2k.Rev_Fch_Rc_Map", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL } },
5346 { &hf_cdma2k_Dcch_capability_type_specific_Fields,
5347 { "Dcch cap type specific Fields","cdma2k.Dcch_cap_type_specific_Fields", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5348 { &hf_cdma2k_Dcch_Supported,
5349 { "Dcch Supported","cdma2k.Dcch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5350 { &hf_cdma2k_Dcch_Frame_Size,
5351 { "Frame Size", "cdma2k.Dcch_Frame_Size", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5352 { &hf_cdma2k_For_Dcch_Len,
5353 { "Forward Dcch Len", "cdma2k.For_Dcch_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5354 { &hf_cdma2k_For_Dcch_Rc_Map,
5355 { "Forward Dcch Rc Map", "cdma2k.For_Dcch_Rc_Map", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL } },
5356 { &hf_cdma2k_Rev_Dcch_Len,
5357 { "Reverse Dcch Len", "cdma2k.Rev_Dcch_Len", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5358 { &hf_cdma2k_Rev_Dcch_Rc_Map,
5359 { "Reverse Dcch Rc Map", "cdma2k.Rev_Dcch_Rc_Map", FT_UINT8, BASE_HEX_DEC , NULL, 0x0, NULL, HFILL } },
5360 { &hf_cdma2k_Rev_Fch_Gating_Req,
5361 { "RevFch GatingReq","cdma2k.Rev_Fch_GatingReq", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5362 { &hf_cdma2k_Orig_Reason,
5363 { "Orig Reason","cdma2k.Orig_Reason", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5364 { &hf_cdma2k_Orig_Count,
5365 { "Orig Count", "cdma2k.Orig_Count", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5366 { &hf_cdma2k_Sts_Supported,
5367 { "Sts Supported","cdma2k.Sts_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5368 { &hf_cdma2k_ThreeXCchSupported,
5369 { "ThreeXCch Supported","cdma2k.ThreeXCch_Supported", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5370 { &hf_cdma2k_Wll_Incl,
5371 { "Wll Incl","cdma2k.Wll_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5372 { &hf_cdma2k_Wll_Device_Type,
5373 { "Wll Device Type", "cdma2k.Wll_Device_Type", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5374 { &hf_cdma2k_Global_Emergency_Call,
5375 { "Global Emergency Call","cdma2k.Global_Emergency_Call", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5376 { &hf_cdma2k_Ms_Init_Pos_Loc_Ind,
5377 { "Ms Init Pos Loc Ind","cdma2k.Ms_Init_Pos_Loc_Ind", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5378 { &hf_cdma2k_Qos_Parms_Incl,
5379 { "Qos Parms Incl","cdma2k.Qos_Parms_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5380 { &hf_cdma2k_Qos_Parms_Length,
5381 { "Qos Parms Length", "cdma2k.Qos_Parms_Length", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5382 { &hf_cdma2k_Qos_Parms,
5383 { "Qos Parms", "cdma2k.Qos_Parms", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5384 { &hf_cdma2k_Enc_Info_Incl,
5385 { "Enc Info Incl","cdma2k.EncInfo_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5386 { &hf_cdma2k_Sig_Encrypt_Supp,
5387 { "Sig Encrypt Supported", "cdma2k.Sig_Encrypt_Supp", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5388 { &hf_cdma2k_DSig_Encrypt_Req,
5389 { "DSig Encrypt Req","cdma2k.DSig_Encrypt_Req", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5390 { &hf_cdma2k_CSig_Encrypt_Req,
5391 { "CSig Encrypt Req","cdma2k.CSig_Encrypt_Req", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5392 { &hf_cdma2k_New_Sseq_H,
5393 { "New SseqH", "cdma2k.New_Sseq_H", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5394 { &hf_cdma2k_New_Sseq_H_Sig,
5395 { "New SseqH Sig", "cdma2k.New_Sseq_H_Sig", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5396 { &hf_cdma2k_Ui_Encrypt_Req,
5397 { "Ui Encrypt Req","cdma2k.Ui_Encrypt_Req", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5398 { &hf_cdma2k_Prev_Sid_Incl,
5399 { "Prev Sid Incl","cdma2k.Prev_Sid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5400 { &hf_cdma2k_Prev_Sid,
5401 { "Prev Sid", "cdma2k.Prev_Sid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5402 { &hf_cdma2k_Prev_Nid_Incl,
5403 { "Prev Nid_Incl","cdma2k.Prev_Nid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5404 { &hf_cdma2k_Prev_Nid,
5405 { "Prev Nid", "cdma2k.Prev_Nid", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5406 { &hf_cdma2k_Prev_Pzid_Incl,
5407 { "Prev Pzid Incl","cdma2k.Prev_Pzid_Incl", FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5408 { &hf_cdma2k_Prev_Pzid,
5409 { "Prev Pzid", "cdma2k.Prev_Pzid", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5410 { &hf_cdma2k_So_Bitmap_Ind,
5411 { "So Bitmap Ind", "cdma2k.So_Bitmap_Ind", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5412 { &hf_cdma2k_So_Group_Num,
5413 { "So Group Num", "cdma2k.So_Group_Num", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5414 { &hf_cdma2k_So_Bitmap,
5415 { "So Bitmap", "cdma2k.So_Bitmap", FT_UINT16, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5416 { &hf_cdma2k_Cmea,
5417 { "Cell Msg Encry Alg", "cdma2k.Cmea", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5418 { &hf_cdma2k_Ecmea,
5419 { "Enhanced Cell Msg Encry Alg", "cdma2k.Ecmea", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5420 { &hf_cdma2k_Rea,
5421 { "Rijndael Encry Alg", "cdma2k.Rea", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5423 { &hf_cdma2k_Reserved,
5424 { "Reserved", "cdma2k.Reserved", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } },
5426 { &hf_cdma2k_AlertWithInfoMsg,
5427 { "Alert With Info Msg", "cdma2k.AlertWithInfoMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5428 { &hf_cdma2k_Hook_Status,
5429 { "Hook_Status", "cdma2k.Hook_Status", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } },
5430 { &hf_cdma2k_MeIdUhdmMsg,
5431 { "MeIdUhdmMsg", "cdma2k.MeIdUhdmMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5432 { &hf_cdma2k_UhdmMsg,
5433 { "UhdmMsg", "cdma2k.UhdmMsg", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
5434 { &hf_cdma2k_ext_scm_ind,
5435 { "Extended SCM Indicator", "cdma2k.ext_scm_ind", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values7), 0x0, NULL, HFILL } },
5436 { &hf_cdma2k_scm_dual_mode,
5437 { "Dual Mode", "cdma2k.scm.dual_mode", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values6), 0x0, NULL, HFILL } },
5438 { &hf_cdma2k_scm_slotted_class,
5439 { "Slotted Class", "cdma2k.scm.slotted_class", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values5), 0x0, NULL, HFILL } },
5440 { &hf_cdma2k_scm_meid_sup,
5441 { "MEID support indicator", "cdma2k.scm.meid_sup", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values4), 0x0, NULL, HFILL } },
5442 { &hf_cdma2k_scm_25mhz_bw,
5443 { "25 MHz Bandwidth", "cdma2k.scm.25mhz_bw", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
5444 { &hf_cdma2k_scm_trans,
5445 { "Transmission", "cdma2k.scm.trans", FT_UINT8, BASE_DEC, VALS(l3dpu_SCM_field_values2), 0x0, NULL, HFILL } },
5446 { &hf_cdma2k_scm_pow_class,
5447 { "Power Class for Band Class 0 Analog Operation", "cdma2k.scm.pow_class", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } },
5450 static int *ett[] = {
5451 &ett_cdma2k_msghdr,
5452 &ett_cdma2k_subtree,
5453 &ett_cdma2k_subtree1,
5454 &ett_cdma2k_subtree2,
5455 &ett_cdma2k_m_s1,
5456 &ett_cdma2000_scm
5459 static ei_register_info ei[] = {
5460 { &ei_cdma2k_error, { "cdma2k.error", PI_PROTOCOL, PI_ERROR, "Violation of protocol specs (e.g. invalid information element)", EXPFILL }},
5463 expert_module_t* expert_cdma2k;
5465 proto_cdma2k = proto_register_protocol (
5466 "CDMA2K", /* name */
5467 "CDMA2K", /* short name */
5468 "cdma2k" /* abbrev */
5471 cdma2k_handle = register_dissector("cdma2k", dissect_cdma2k, proto_cdma2k);
5473 proto_register_field_array(proto_cdma2k, hf, array_length(hf));
5474 proto_register_subtree_array(ett, array_length(ett));
5476 expert_cdma2k = expert_register_protocol(proto_cdma2k);
5477 expert_register_field_array(expert_cdma2k, ei, array_length(ei));
5481 void proto_reg_handoff_cdma2k(void)
5485 * Editor modelines
5487 * Local Variables:
5488 * c-basic-offset: 4
5489 * tab-width: 8
5490 * indent-tabs-mode: nil
5491 * End:
5493 * ex: set shiftwidth=4 tabstop=8 expandtab:
5494 * :indentSize=4:tabSize=8:noTabs=true: