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