PageRenderTime 112ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 2ms

/epan/dissectors/packet-gsm_rlcmac.c

https://github.com/labx-technologies-llc/wireshark
C | 11408 lines | 9751 code | 1290 blank | 367 comment | 112 complexity | 6813227f7a884d8e697c2628acf1b08e MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause
  1. /* packet-gsm_rlcmac.c
  2. * Routines for GSM RLC MAC control plane message dissection in wireshark.
  3. * TS 44.060 and 24.008
  4. * By Vincent Helfre, based on original code by Jari Sassi
  5. * with the gracious authorization of STE
  6. * Copyright (c) 2011 ST-Ericsson
  7. *
  8. * $Id$
  9. *
  10. * Wireshark - Network traffic analyzer
  11. * By Gerald Combs <gerald@wireshark.org>
  12. * Copyright 1998 Gerald Combs
  13. *
  14. * This program is free software; you can redistribute it and/or
  15. * modify it under the terms of the GNU General Public License
  16. * as published by the Free Software Foundation; either version 2
  17. * of the License, or (at your option) any later version.
  18. *
  19. * This program is distributed in the hope that it will be useful,
  20. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  21. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  22. * GNU General Public License for more details.
  23. *
  24. * You should have received a copy of the GNU General Public License
  25. * along with this program; if not, write to the Free Software
  26. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  27. */
  28. /* Notes on the use of this dissector:-
  29. *
  30. * These dissectors should be called with pinfo->private_data pointing to a
  31. * populated RlcMacPrivateData_t structure, this is needed to pass the Physical
  32. * Layer Coding scheme and other parameters required for correct Data Block decoding.
  33. * For backward compatibility, a NULL pointer causes the dissector to assume GPRS CS1.
  34. *
  35. * To dissect EGPRS blocks, the gsm_rlcmac_ul or gsm_rlcmac_dl dissector should be
  36. * called 1, 2 or 3 times, for the header block and then each available data block,
  37. * with the flags in pinfo->private_data indicating which block is to be dissected.
  38. *
  39. * - The EGPRS Header Block occupies 4, 5 or 6 octets, the last octet is right-aligned
  40. * (as viewed in wireshark) with any null bits at the high bits of the last octet.
  41. * - Each EGPRS Data Block has 6 padding bits at the front, so there are then 2 data bits
  42. * followed by the rest of the data block (which is implicitly octet aligned).
  43. * - Either or both of the possible EGPRS Data Blocks may have been received
  44. * with bad CRC and this should be marked in the flags field to allow
  45. * upper layer decoding to ignore bad data blocks
  46. *
  47. * see packet-gsmtap.c for an example of the use of this dissector.
  48. */
  49. #include "config.h"
  50. #include <glib.h>
  51. #include <epan/packet.h>
  52. #include <epan/expert.h>
  53. #include "packet-csn1.h"
  54. #include "packet-gsm_rlcmac.h"
  55. /* private typedefs */
  56. typedef struct
  57. {
  58. guint8 offset;
  59. guint8 li;
  60. }length_indicator_t;
  61. /* local constant tables */
  62. const guint8 gsm_rlcmac_gprs_cs_to_block_length[] = {
  63. 23, /* CS1 */
  64. 33, /* CS2 */
  65. 39, /* CS3 */
  66. 53 /* CS4 */
  67. };
  68. const guint8 gsm_rlcmac_egprs_header_type_to_dl_header_block_length[] = {
  69. 5, /* RLCMAC_HDR_TYPE_1 */
  70. 4, /* RLCMAC_HDR_TYPE_2 */
  71. 4 /* RLCMAC_HDR_TYPE_3 */
  72. };
  73. const guint8 gsm_rlcmac_egprs_header_type_to_ul_header_block_length[] = {
  74. 6, /* RLCMAC_HDR_TYPE_1 */
  75. 5, /* RLCMAC_HDR_TYPE_2 */
  76. 4 /* RLCMAC_HDR_TYPE_3 */
  77. };
  78. #define MCS_INVALID 10 /* used for reserved CPS codepoints */
  79. const guint8 gsm_rlcmac_egprs_mcs_to_data_block_length[] = {
  80. 0, /* MCS0 */
  81. 23,/* MCS1 */
  82. 29,
  83. 38,
  84. 45,
  85. 57,
  86. 75,
  87. 57,
  88. 69,
  89. 75, /* MCS9 */
  90. 0, /* MCS_INVALID */
  91. };
  92. /* Initialize the protocol and registered fields
  93. */
  94. static int proto_gsm_rlcmac = -1;
  95. static int ett_gsm_rlcmac = -1;
  96. static int ett_gsm_rlcmac_data = -1;
  97. static int ett_data_segments = -1;
  98. /* common MAC header IEs */
  99. static int hf_usf = -1;
  100. static int hf_ul_payload_type = -1;
  101. static int hf_dl_payload_type = -1;
  102. static int hf_rrbp = -1;
  103. static int hf_s_p = -1;
  104. static int hf_es_p = -1;
  105. static int hf_fbi = -1;
  106. /* common RLC IEs*/
  107. static int hf_prach8_message_type_3 = -1;
  108. static int hf_prach8_message_type_6 = -1;
  109. static int hf_prach11_message_type_6 = -1;
  110. static int hf_prach11_message_type_9 = -1;
  111. static int hf_tlli = -1;
  112. static int hf_uplink_tfi = -1;
  113. static int hf_downlink_tfi = -1;
  114. static int hf_page_mode = -1;
  115. static int hf_bsn = -1;
  116. static int hf_bsn2_offset = -1;
  117. static int hf_e = -1;
  118. static int hf_li= -1;
  119. static int hf_pi= -1;
  120. static int hf_ti= -1;
  121. static int hf_rsb= -1;
  122. static int hf_dl_spb= -1;
  123. static int hf_ul_spb= -1;
  124. static int hf_cps1= -1;
  125. static int hf_cps2= -1;
  126. static int hf_cps3= -1;
  127. static int hf_me = -1;
  128. static int hf_countdown_value = -1;
  129. static int hf_ul_data_si = -1;
  130. static int hf_ul_data_spare = -1;
  131. static int hf_pfi = -1;
  132. /* RLC/MAC Downlink control block header */
  133. static int hf_dl_ctrl_rbsn = -1;
  134. static int hf_dl_ctrl_rti = -1;
  135. static int hf_dl_ctrl_fs = -1;
  136. static int hf_dl_ctrl_ac = -1;
  137. static int hf_dl_ctrl_pr = -1;
  138. static int hf_dl_ctrl_d = -1;
  139. static int hf_dl_ctrl_rbsn_e = -1;
  140. static int hf_dl_ctrl_fs_e = -1;
  141. static int hf_dl_ctrl_spare = -1;
  142. static int hf_startingtime_n32 = -1;
  143. static int hf_startingtime_n51 = -1;
  144. static int hf_startingtime_n26 = -1;
  145. /* common uplink ies */
  146. static int hf_ul_message_type = -1;
  147. static int hf_ul_mac_header_spare = -1;
  148. static int hf_ul_retry = -1;
  149. /* < Global TFI IE > */
  150. /* < Starting Frame Number Description IE > */
  151. static int hf_starting_frame_number_k = -1;
  152. /* < Ack/Nack Description IE > */
  153. static int hf_final_ack_indication = -1;
  154. static int hf_starting_sequence_number = -1;
  155. /* < Packet Timing Advance IE > */
  156. static int hf_timing_advance_value = -1;
  157. static int hf_timing_advance_index = -1;
  158. static int hf_timing_advance_timeslot_number = -1;
  159. /* < Power Control Parameters IE > */
  160. static int hf_alpha = -1;
  161. static int hf_gamma = -1;
  162. static int hf_t_avg_w = -1;
  163. static int hf_t_avg_t = -1;
  164. static int hf_pc_meas_chan = -1;
  165. static int hf_n_avg_i = -1;
  166. /* < Global Power Control Parameters IE > */
  167. static int hf_global_power_control_parameters_pb = -1;
  168. static int hf_global_power_control_parameters_int_meas_channel_list_avail = -1;
  169. /* < Global Packet Timing Advance IE > */
  170. /* < Channel Quality Report struct > */
  171. static int hf_channel_quality_report_c_value = -1;
  172. static int hf_channel_quality_report_rxqual = -1;
  173. static int hf_channel_quality_report_sign_var = -1;
  174. static int hf_channel_quality_report_slot0_i_level_tn = -1;
  175. static int hf_channel_quality_report_slot1_i_level_tn = -1;
  176. static int hf_channel_quality_report_slot2_i_level_tn = -1;
  177. static int hf_channel_quality_report_slot3_i_level_tn = -1;
  178. static int hf_channel_quality_report_slot4_i_level_tn = -1;
  179. static int hf_channel_quality_report_slot5_i_level_tn = -1;
  180. static int hf_channel_quality_report_slot6_i_level_tn = -1;
  181. static int hf_channel_quality_report_slot7_i_level_tn = -1;
  182. /* < EGPRS Ack/Nack Description > */
  183. static int hf_egprs_acknack_beginning_of_window = -1;
  184. static int hf_egprs_acknack_end_of_window = -1;
  185. static int hf_egprs_acknack_crbb_length = -1;
  186. static int hf_egprs_acknack_crbb_starting_color_code = -1;
  187. /* <P1 Rest Octets> */
  188. /* <P2 Rest Octets> */
  189. static int hf_mobileallocationie_length = -1;
  190. static int hf_single_rf_channel_spare = -1;
  191. static int hf_arfcn = -1;
  192. static int hf_maio = -1;
  193. static int hf_hsn = -1;
  194. static int hf_channel_description_channel_type_and_tdma_offset = -1;
  195. static int hf_channel_description_tn = -1;
  196. static int hf_group_call_reference_value = -1;
  197. static int hf_group_call_reference_sf = -1;
  198. static int hf_group_call_reference_af = -1;
  199. static int hf_group_call_reference_call_priority = -1;
  200. static int hf_group_call_reference_ciphering_information = -1;
  201. static int hf_nln_pch = -1;
  202. static int hf_nln_status = -1;
  203. static int hf_priority = -1;
  204. static int hf_p1_rest_octets_packet_page_indication_1 = -1;
  205. static int hf_p1_rest_octets_packet_page_indication_2 = -1;
  206. static int hf_p2_rest_octets_cn3 = -1;
  207. static int hf_nln = -1;
  208. static int hf_p2_rest_octets_packet_page_indication_3 = -1;
  209. /* <IA Rest Octets> */
  210. static int hf_usf_granularity = -1;
  211. static int hf_p0 = -1;
  212. static int hf_pr_mode = -1;
  213. static int hf_nr_of_radio_blocks_allocated = -1;
  214. static int hf_bts_pwr_ctrl_mode = -1;
  215. static int hf_polling = -1;
  216. static int hf_egprs_channel_coding_command = -1;
  217. static int hf_tlli_block_channel_coding = -1;
  218. static int hf_bep_period2 = -1;
  219. static int hf_resegment = -1;
  220. static int hf_egprs_windowsize = -1;
  221. static int hf_extendedra = -1;
  222. static int hf_ia_egprs_uniontype = -1;
  223. static int hf_ia_freqparamsbeforetime_length = -1;
  224. static int hf_gprs_channel_coding_command = -1;
  225. static int hf_link_quality_measurement_mode = -1;
  226. static int hf_rlc_mode = -1;
  227. static int hf_ta_valid = -1;
  228. static int hf_tqi = -1;
  229. /* <Packet Polling Request> */
  230. static int hf_dl_message_type = -1;
  231. /* < SI 13 Rest Octets > */
  232. static int hf_gprs_cell_options_nmo = -1;
  233. static int hf_gprs_cell_options_t3168 = -1;
  234. static int hf_gprs_cell_options_t3192 = -1;
  235. static int hf_gprs_cell_options_drx_timer_max = -1;
  236. static int hf_gprs_cell_options_access_burst_type = -1;
  237. static int hf_ack_type = -1;
  238. static int hf_gprs_cell_options_bs_cv_max = -1;
  239. static int hf_gprs_cell_options_pan_dec = -1;
  240. static int hf_gprs_cell_options_pan_inc = -1;
  241. static int hf_gprs_cell_options_pan_max = -1;
  242. static int hf_rac = -1;
  243. static int hf_pbcch_not_present_spgc_ccch_sup = -1;
  244. static int hf_pbcch_not_present_priority_access_thr = -1;
  245. static int hf_pbcch_not_present_network_control_order = -1;
  246. static int hf_pbcch_description_pb = -1;
  247. static int hf_pbcch_description_tn = -1;
  248. static int hf_pbcch_present_psi1_repeat_period = -1;
  249. static int hf_bcch_change_mark = -1;
  250. static int hf_si_change_field = -1;
  251. static int hf_si13_change_mark = -1;
  252. static int hf_sgsnr = -1;
  253. static int hf_si_status_ind = -1;
  254. /* < Packet TBF Release message content > */
  255. static int hf_packetbf_release_uplink_release = -1;
  256. static int hf_packetbf_release_downlink_release = -1;
  257. static int hf_packetbf_release_tbf_release_cause = -1;
  258. /* < Packet Control Acknowledgement message content > */
  259. static int hf_packet_control_acknowledgement_additionsr6_ctrl_ack_extension = -1;
  260. static int hf_packet_control_acknowledgement_additionsr5_tn_rrbp = -1;
  261. static int hf_packet_control_acknowledgement_additionsr5_g_rnti_extension = -1;
  262. static int hf_packet_control_acknowledgement_ctrl_ack = -1;
  263. /* < Packet Downlink Dummy Control Block message content > */
  264. /* < Packet Uplink Dummy Control Block message content > */
  265. static int hf_receive_n_pdu_number_nsapi = -1;
  266. static int hf_receive_n_pdu_number_value = -1;
  267. /* < MS Radio Access capability IE > */
  268. static int hf_dtm_egprs_dtm_egprs_multislot_class = -1;
  269. static int hf_dtm_egprs_highmultislotclass_dtm_egprs_highmultislotclass = -1;
  270. static int hf_multislot_capability_hscsd_multislot_class = -1;
  271. static int hf_multislot_capability_gprs_multislot_class = -1;
  272. static int hf_multislot_capability_gprs_extended_dynamic_allocation_capability = -1;
  273. static int hf_multislot_capability_sms_value = -1;
  274. static int hf_multislot_capability_sm_value = -1;
  275. static int hf_multislot_capability_ecsd_multislot_class = -1;
  276. static int hf_multislot_capability_egprs_multislot_class = -1;
  277. static int hf_multislot_capability_egprs_extended_dynamic_allocation_capability = -1;
  278. static int hf_multislot_capability_dtm_gprs_multislot_class = -1;
  279. static int hf_multislot_capability_single_slot_dtm = -1;
  280. static int hf_content_rf_power_capability = -1;
  281. static int hf_content_a5_bits = -1;
  282. static int hf_content_es_ind = -1;
  283. static int hf_content_ps = -1;
  284. static int hf_content_vgcs = -1;
  285. static int hf_content_vbs = -1;
  286. static int hf_content_eight_psk_power_capability = -1;
  287. static int hf_content_compact_interference_measurement_capability = -1;
  288. static int hf_content_revision_level_indicator = -1;
  289. static int hf_content_umts_fdd_radio_access_technology_capability = -1;
  290. static int hf_content_umts_384_tdd_radio_access_technology_capability = -1;
  291. static int hf_content_cdma2000_radio_access_technology_capability = -1;
  292. static int hf_content_umts_128_tdd_radio_access_technology_capability = -1;
  293. static int hf_content_geran_feature_package_1 = -1;
  294. static int hf_content_extended_dtm_gprs_multislot_class = -1;
  295. static int hf_content_extended_dtm_egprs_multislot_class = -1;
  296. static int hf_content_modulation_based_multislot_class_support = -1;
  297. static int hf_content_highmultislotcapability = -1;
  298. static int hf_content_geran_lu_modecapability = -1;
  299. static int hf_content_gmsk_multislotpowerprofile = -1;
  300. static int hf_content_eightpsk_multislotprofile = -1;
  301. static int hf_content_multipletbf_capability = -1;
  302. static int hf_content_downlinkadvancedreceiverperformance = -1;
  303. static int hf_content_extendedrlc_mac_controlmessagesegmentionscapability = -1;
  304. static int hf_content_dtm_enhancementscapability = -1;
  305. static int hf_content_dtm_gprs_highmultislotclass = -1;
  306. static int hf_content_ps_handovercapability = -1;
  307. static int hf_additional_accessechnologies_struct_t_access_technology_type = -1;
  308. static int hf_additional_accessechnologies_struct_t_gmsk_power_class = -1;
  309. static int hf_additional_accessechnologies_struct_t_eight_psk_power_class = -1;
  310. /* static int hf_ms_radio_access_capability_iei = -1; */
  311. /* static int hf_ms_radio_access_capability_length = -1; */
  312. /* < MS Classmark 3 IE > */
  313. static int hf_arc_a5_bits = -1;
  314. static int hf_multiband_a5_bits = -1;
  315. static int hf_arc_arc2_spare = -1;
  316. static int hf_arc_arc1 = -1;
  317. static int hf_edge_rf_pwr_edge_rf_pwrcap1 = -1;
  318. static int hf_edge_rf_pwr_edge_rf_pwrcap2 = -1;
  319. static int hf_ms_class3_unpacked_spare1 = -1;
  320. static int hf_ms_class3_unpacked_r_gsm_arc = -1;
  321. static int hf_ms_class3_unpacked_multislotclass = -1;
  322. static int hf_ms_class3_unpacked_ucs2 = -1;
  323. static int hf_ms_class3_unpacked_extendedmeasurementcapability = -1;
  324. static int hf_ms_class3_unpacked_sms_value = -1;
  325. static int hf_ms_class3_unpacked_sm_value = -1;
  326. static int hf_ms_class3_unpacked_ms_positioningmethod = -1;
  327. static int hf_ms_class3_unpacked_edge_multislotclass = -1;
  328. static int hf_ms_class3_unpacked_modulationcapability = -1;
  329. static int hf_ms_class3_unpacked_gsm400_bands = -1;
  330. static int hf_ms_class3_unpacked_gsm400_arc = -1;
  331. static int hf_ms_class3_unpacked_gsm850_arc = -1;
  332. static int hf_ms_class3_unpacked_pcs1900_arc = -1;
  333. static int hf_ms_class3_unpacked_umts_fdd_radio_access_technology_capability = -1;
  334. static int hf_ms_class3_unpacked_umts_384_tdd_radio_access_technology_capability = -1;
  335. static int hf_ms_class3_unpacked_cdma2000_radio_access_technology_capability = -1;
  336. static int hf_ms_class3_unpacked_dtm_gprs_multislot_class = -1;
  337. static int hf_ms_class3_unpacked_single_slot_dtm = -1;
  338. static int hf_ms_class3_unpacked_gsm_band = -1;
  339. static int hf_ms_class3_unpacked_gsm_700_associated_radio_capability = -1;
  340. static int hf_ms_class3_unpacked_umts_128_tdd_radio_access_technology_capability = -1;
  341. static int hf_ms_class3_unpacked_geran_feature_package_1 = -1;
  342. static int hf_ms_class3_unpacked_extended_dtm_gprs_multislot_class = -1;
  343. static int hf_ms_class3_unpacked_extended_dtm_egprs_multislot_class = -1;
  344. static int hf_ms_class3_unpacked_highmultislotcapability = -1;
  345. static int hf_ms_class3_unpacked_geran_lu_modecapability = -1;
  346. static int hf_ms_class3_unpacked_geran_featurepackage_2 = -1;
  347. static int hf_ms_class3_unpacked_gmsk_multislotpowerprofile = -1;
  348. static int hf_ms_class3_unpacked_eightpsk_multislotprofile = -1;
  349. static int hf_ms_class3_unpacked_tgsm_400_bandssupported = -1;
  350. static int hf_ms_class3_unpacked_tgsm_400_associatedradiocapability = -1;
  351. static int hf_ms_class3_unpacked_tgsm_900_associatedradiocapability = -1;
  352. static int hf_ms_class3_unpacked_downlinkadvancedreceiverperformance = -1;
  353. static int hf_ms_class3_unpacked_dtm_enhancementscapability = -1;
  354. static int hf_ms_class3_unpacked_dtm_gprs_highmultislotclass = -1;
  355. static int hf_ms_class3_unpacked_offsetrequired = -1;
  356. static int hf_ms_class3_unpacked_repeatedsacch_capability = -1;
  357. static int hf_ms_class3_unpacked_spare2 = -1;
  358. static int hf_channel_request_description_peak_throughput_class = -1;
  359. static int hf_channel_request_description_radio_priority = -1;
  360. static int hf_channel_request_description_llc_pdu_type = -1;
  361. static int hf_channel_request_description_rlc_octet_count = -1;
  362. /* < Packet Resource Request message content > */
  363. static int hf_bep_measurementreport_mean_bep_gmsk = -1;
  364. static int hf_bep_measurementreport_mean_bep_8psk = -1;
  365. static int hf_interferencemeasurementreport_i_level = -1;
  366. static int hf_egprs_bep_linkqualitymeasurements_mean_bep_gmsk = -1;
  367. static int hf_egprs_bep_linkqualitymeasurements_cv_bep_gmsk = -1;
  368. static int hf_egprs_bep_linkqualitymeasurements_mean_bep_8psk = -1;
  369. static int hf_egprs_bep_linkqualitymeasurements_cv_bep_8psk = -1;
  370. static int hf_prr_additionsr99_ms_rac_additionalinformationavailable = -1;
  371. static int hf_prr_additionsr99_retransmissionofprr = -1;
  372. static int hf_packet_resource_request_access_type = -1;
  373. static int hf_packet_resource_request_change_mark = -1;
  374. static int hf_packet_resource_request_c_value = -1;
  375. static int hf_packet_resource_request_sign_var = -1;
  376. /* < Packet Mobile TBF Status message content > */
  377. static int hf_packet_mobile_tbf_status_tbf_cause = -1;
  378. /* < Packet PSI Status message content > */
  379. static int hf_psi_message_psix_change_mark = -1;
  380. static int hf_additional_msg_type = -1;
  381. static int hf_packet_psi_status_pbcch_change_mark = -1;
  382. /* < Packet SI Status message content > */
  383. static int hf_si_message_mess_rec = -1;
  384. /* < Packet Downlink Ack/Nack message content > */
  385. /* < EGPRS Packet Downlink Ack/Nack message content > */
  386. static int hf_egprs_channelqualityreport_c_value = -1;
  387. static int hf_egprs_pd_acknack_ms_out_of_memory = -1;
  388. static int hf_fddarget_cell_t_fdd_arfcn = -1;
  389. static int hf_fddarget_cell_t_diversity = -1;
  390. static int hf_fddarget_cell_t_bandwith_fdd = -1;
  391. static int hf_fddarget_cell_t_scrambling_code = -1;
  392. static int hf_tddarget_cell_t_tdd_arfcn = -1;
  393. static int hf_tddarget_cell_t_diversity = -1;
  394. static int hf_tddarget_cell_t_bandwith_tdd = -1;
  395. static int hf_tddarget_cell_t_cell_parameter = -1;
  396. static int hf_tddarget_cell_t_sync_case_tstd = -1;
  397. /* < Packet Cell Change Failure message content > */
  398. static int hf_packet_cell_change_failure_bsic = -1;
  399. static int hf_packet_cell_change_failure_cause = -1;
  400. static int hf_utran_csg_target_cell_ci = -1;
  401. static int hf_eutran_csg_target_cell_ci = -1;
  402. static int hf_eutran_csg_target_cell_tac = -1;
  403. /* < Packet Uplink Ack/Nack message content > */
  404. static int hf_pu_acknack_gprs_additionsr99_tbf_est = -1;
  405. static int hf_pu_acknack_gprs_fixedallocationdummy = -1;
  406. static int hf_pu_acknack_egprs_00_pre_emptive_transmission = -1;
  407. static int hf_pu_acknack_egprs_00_prr_retransmission_request = -1;
  408. static int hf_pu_acknack_egprs_00_arac_retransmission_request = -1;
  409. static int hf_pu_acknack_egprs_00_tbf_est = -1;
  410. static int hf_packet_extended_timing_advance = -1;
  411. /* < Packet Uplink Assignment message content > */
  412. static int hf_change_mark_change_mark_1 = -1;
  413. static int hf_change_mark_change_mark_2 = -1;
  414. static int hf_indirect_encoding_ma_number = -1;
  415. static int hf_packet_request_reference_random_access_information = -1;
  416. static int hf_timeslot_allocation_usf_tn = -1;
  417. static int hf_extended_dynamic_allocation = -1;
  418. static int hf_rlc_data_blocks_granted = -1;
  419. static int hf_single_block_allocation_timeslot_number = -1;
  420. static int hf_dtm_single_block_allocation_timeslot_number = -1;
  421. static int hf_compact_reducedma_bitmaplength = -1;
  422. static int hf_multiblock_allocation_timeslot_number = -1;
  423. static int hf_pua_egprs_00_arac_retransmission_request = -1;
  424. /* < Packet Downlink Assignment message content > */
  425. static int hf_measurement_mapping_struct_measurement_interval = -1;
  426. static int hf_measurement_mapping_struct_measurement_bitmap = -1;
  427. static int hf_mac_mode = -1;
  428. static int hf_control_ack = -1;
  429. static int hf_dl_timeslot_allocation = -1;
  430. static int hf_dtm_channel_request_description_dtm_pkt_est_cause = -1;
  431. /* < Packet Paging Request message content > */
  432. static int hf_mobile_identity_length_of_mobile_identity_contents = -1;
  433. static int hf_page_request_for_rr_conn_channel_needed = -1;
  434. static int hf_page_request_for_rr_conn_emlpp_priority = -1;
  435. static int hf_packet_pdch_release_timeslots_available = -1;
  436. /* < Packet Power Control/Timing Advance message content > */
  437. /* < Packet Queueing Notification message content > */
  438. /* < Packet Timeslot Reconfigure message content > */
  439. /* < Packet PRACH Parameters message content > */
  440. static int hf_prach_control_s = -1;
  441. static int hf_prach_control_tx_int = -1;
  442. static int hf_hcs_priority_class = -1;
  443. static int hf_hcs_hcs_thr = -1;
  444. static int hf_location_repeat_pbcch_location = -1;
  445. static int hf_location_repeat_psi1_repeat_period = -1;
  446. static int hf_si13_pbcch_location_si13_location = -1;
  447. static int hf_cell_selection_bsic = -1;
  448. static int hf_cell_bar_access_2 = -1;
  449. static int hf_cell_selection_same_ra_as_serving_cell = -1;
  450. static int hf_cell_selection_gprs_rxlev_access_min = -1;
  451. static int hf_cell_selection_gprs_ms_txpwr_max_cch = -1;
  452. static int hf_cell_selection_gprs_temporary_offset = -1;
  453. static int hf_cell_selection_gprs_penalty_time = -1;
  454. static int hf_cell_selection_gprs_reselect_offset = -1;
  455. static int hf_neighbourcellparameters_start_frequency = -1;
  456. static int hf_neighbourcellparameters_nr_of_remaining_cells = -1;
  457. static int hf_cell_selection_2_same_ra_as_serving_cell = -1;
  458. static int hf_cell_selection_2_gprs_rxlev_access_min = -1;
  459. static int hf_cell_selection_2_gprs_ms_txpwr_max_cch = -1;
  460. static int hf_cell_selection_2_gprs_temporary_offset = -1;
  461. static int hf_cell_selection_2_gprs_penalty_time = -1;
  462. static int hf_cell_selection_2_gprs_reselect_offset = -1;
  463. /* < Packet Access Reject message content > */
  464. static int hf_reject_wait_indication = -1;
  465. static int hf_reject_wait_indication_size = -1;
  466. /* < Packet Cell Change Order message content > */
  467. static int hf_h_freqbsiccell_bsic = -1;
  468. static int hf_cellselectionparamswithfreqdiff_bsic = -1;
  469. static int hf_add_frequency_list_start_frequency = -1;
  470. static int hf_add_frequency_list_bsic = -1;
  471. static int hf_add_frequency_list_nr_of_frequencies = -1;
  472. static int hf_removed_freq_index_removed_freq_index = -1;
  473. static int hf_nc_measurement_parameters_network_control_order = -1;
  474. static int hf_nc_measurement_parameters_nc_non_drx_period = -1;
  475. static int hf_nc_measurement_parameters_nc_reporting_period_i = -1;
  476. static int hf_nc_measurement_parameters_nc_reporting_period_t = -1;
  477. static int hf_nc_measurement_parameters_with_frequency_list_network_control_order = -1;
  478. static int hf_nc_measurement_parameters_with_frequency_list_nc_non_drx_period = -1;
  479. static int hf_nc_measurement_parameters_with_frequency_list_nc_reporting_period_i = -1;
  480. static int hf_nc_measurement_parameters_with_frequency_list_nc_reporting_period_t = -1;
  481. /* < Packet Cell Change Order message contents > */
  482. static int hf_ba_ind_ba_ind = -1;
  483. static int hf_ba_ind_ba_ind_3g = -1;
  484. static int hf_gprsreportpriority_number_cells = -1;
  485. static int hf_offsetthreshold_reporting_offset = -1;
  486. static int hf_offsetthreshold_reporting_threshold = -1;
  487. static int hf_gprsmeasurementparams_pmo_pcco_multi_band_reporting = -1;
  488. static int hf_gprsmeasurementparams_pmo_pcco_serving_band_reporting = -1;
  489. static int hf_gprsmeasurementparams_pmo_pcco_scale_ord = -1;
  490. static int hf_gprsmeasurementparams3g_qsearch_p = -1;
  491. static int hf_gprsmeasurementparams3g_searchprio3g = -1;
  492. static int hf_gprsmeasurementparams3g_repquantfdd = -1;
  493. static int hf_gprsmeasurementparams3g_multiratreportingfdd = -1;
  494. static int hf_gprsmeasurementparams3g_reportingoffsetfdd = -1;
  495. static int hf_gprsmeasurementparams3g_reportingthresholdfdd = -1;
  496. static int hf_gprsmeasurementparams3g_multiratreportingtdd = -1;
  497. static int hf_gprsmeasurementparams3g_reportingoffsettdd = -1;
  498. static int hf_gprsmeasurementparams3g_reportingthresholdtdd = -1;
  499. static int hf_multiratparams3g_multiratreporting = -1;
  500. static int hf_enh_gprsmeasurementparams3g_pmo_qsearch_p = -1;
  501. static int hf_enh_gprsmeasurementparams3g_pmo_searchprio3g = -1;
  502. static int hf_enh_gprsmeasurementparams3g_pmo_repquantfdd = -1;
  503. static int hf_enh_gprsmeasurementparams3g_pmo_multiratreportingfdd = -1;
  504. static int hf_enh_gprsmeasurementparams3g_pcco_qsearch_p = -1;
  505. static int hf_enh_gprsmeasurementparams3g_pcco_searchprio3g = -1;
  506. static int hf_enh_gprsmeasurementparams3g_pcco_repquantfdd = -1;
  507. static int hf_enh_gprsmeasurementparams3g_pcco_multiratreportingfdd = -1;
  508. static int hf_n2_removed_3gcell_index = -1;
  509. static int hf_n2_cell_diff_length_3g = -1;
  510. static int hf_cdma2000_description_complete_this = -1;
  511. static int hf_utran_fdd_neighbourcells_zero = -1;
  512. static int hf_utran_fdd_neighbourcells_uarfcn = -1;
  513. static int hf_utran_fdd_neighbourcells_indic0 = -1;
  514. static int hf_utran_fdd_neighbourcells_nrofcells = -1;
  515. static int hf_utran_fdd_description_bandwidth = -1;
  516. static int hf_utran_tdd_neighbourcells_zero = -1;
  517. static int hf_utran_tdd_neighbourcells_uarfcn = -1;
  518. static int hf_utran_tdd_neighbourcells_indic0 = -1;
  519. static int hf_utran_tdd_neighbourcells_nrofcells = -1;
  520. static int hf_utran_tdd_description_bandwidth = -1;
  521. static int hf_index_start_3g = -1;
  522. static int hf_absolute_index_start_emr = -1;
  523. static int hf_psi3_change_mark = -1;
  524. static int hf_enh_measurement_parameters_pmo_pmo_ind = -1;
  525. static int hf_enh_measurement_parameters_pmo_report_type = -1;
  526. static int hf_enh_measurement_parameters_pmo_reporting_rate = -1;
  527. static int hf_enh_measurement_parameters_pmo_invalid_bsic_reporting = -1;
  528. static int hf_enh_measurement_parameters_pcco_pmo_ind = -1;
  529. static int hf_enh_measurement_parameters_pcco_report_type = -1;
  530. static int hf_enh_measurement_parameters_pcco_reporting_rate = -1;
  531. static int hf_enh_measurement_parameters_pcco_invalid_bsic_reporting = -1;
  532. static int hf_ccn_support_description_number_cells = -1;
  533. static int hf_lu_modecellselectionparameters_cell_bar_qualify_3 = -1;
  534. static int hf_lu_modeneighbourcellparams_nr_of_frequencies = -1;
  535. static int hf_lu_modeonlycellselection_cell_bar_qualify_3 = -1;
  536. static int hf_lu_modeonlycellselection_same_ra_as_serving_cell = -1;
  537. static int hf_lu_modeonlycellselection_gprs_rxlev_access_min = -1;
  538. static int hf_lu_modeonlycellselection_gprs_ms_txpwr_max_cch = -1;
  539. static int hf_lu_modeonlycellselection_gprs_temporary_offset = -1;
  540. static int hf_lu_modeonlycellselection_gprs_penalty_time = -1;
  541. static int hf_lu_modeonlycellselection_gprs_reselect_offset = -1;
  542. static int hf_lu_modeonlycellselectionparamswithfreqdiff_bsic = -1;
  543. static int hf_add_lu_modeonlyfrequencylist_start_frequency = -1;
  544. static int hf_add_lu_modeonlyfrequencylist_bsic = -1;
  545. static int hf_add_lu_modeonlyfrequencylist_nr_of_frequencies = -1;
  546. static int hf_add_lu_modeonlyfrequencylist_freq_diff_length = -1;
  547. static int hf_gprs_additionalmeasurementparams3g_fdd_reporting_threshold_2 = -1;
  548. static int hf_servingcellpriorityparametersdescription_geran_priority = -1;
  549. static int hf_servingcellpriorityparametersdescription_thresh_priority_search = -1;
  550. static int hf_servingcellpriorityparametersdescription_thresh_gsm_low = -1;
  551. static int hf_servingcellpriorityparametersdescription_h_prio = -1;
  552. static int hf_servingcellpriorityparametersdescription_t_reselection = -1;
  553. static int hf_repeatedutran_priorityparameters_utran_priority = -1;
  554. static int hf_repeatedutran_priorityparameters_thresh_utran_high = -1;
  555. static int hf_repeatedutran_priorityparameters_thresh_utran_low = -1;
  556. static int hf_repeatedutran_priorityparameters_utran_qrxlevmin = -1;
  557. static int hf_priorityparametersdescription3g_pmo_default_utran_priority = -1;
  558. static int hf_priorityparametersdescription3g_pmo_default_thresh_utran = -1;
  559. static int hf_priorityparametersdescription3g_pmo_default_utran_qrxlevmin = -1;
  560. static int hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_threshold = -1;
  561. static int hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_threshold_2 = -1;
  562. static int hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_offset = -1;
  563. static int hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_threshold = -1;
  564. static int hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_threshold_2 = -1;
  565. static int hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_offset = -1;
  566. static int hf_gprs_eutran_measurementparametersdescription_qsearch_p_eutran = -1;
  567. static int hf_gprs_eutran_measurementparametersdescription_eutran_rep_quant = -1;
  568. static int hf_gprs_eutran_measurementparametersdescription_eutran_multirat_reporting = -1;
  569. static int hf_repeatedeutran_cells_earfcn = -1;
  570. static int hf_repeatedeutran_cells_measurementbandwidth = -1;
  571. static int hf_repeatedeutran_neighbourcells_eutran_priority = -1;
  572. static int hf_repeatedeutran_neighbourcells_thresh_eutran_high = -1;
  573. static int hf_repeatedeutran_neighbourcells_thresh_eutran_low = -1;
  574. static int hf_repeatedeutran_neighbourcells_eutran_qrxlevmin = -1;
  575. static int hf_pcid_pattern_pcid_pattern_length = -1;
  576. static int hf_pcid_pattern_pcid_pattern_sense = -1;
  577. static int hf_pcid_group_ie_pcid_bitmap_group = -1;
  578. static int hf_eutran_frequency_index_eutran_frequency_index = -1;
  579. static int hf_eutran_parametersdescription_pmo_eutran_ccn_active = -1;
  580. static int hf_psc_pattern_sense = -1;
  581. static int hf_psc_pattern_length = -1;
  582. static int hf_meas_ctrl_param_meas_ctrl_eutran = -1;
  583. static int hf_meas_ctrl_param_eutran_freq_idx = -1;
  584. static int hf_meas_ctrl_param_meas_ctrl_utran = -1;
  585. static int hf_meas_ctrl_param_utran_freq_idx = -1;
  586. static int hf_rept_eutran_enh_cell_resel_param_eutran_qmin = -1;
  587. static int hf_rept_eutran_enh_cell_resel_param_thresh_eutran_high_q = -1;
  588. static int hf_rept_eutran_enh_cell_resel_param_thresh_eutran_low_q = -1;
  589. static int hf_rept_eutran_enh_cell_resel_param_thresh_eutran_qqualmin = -1;
  590. static int hf_rept_eutran_enh_cell_resel_param_thresh_eutran_rsrpmin = -1;
  591. static int hf_utran_csg_fdd_reporting_threshold = -1;
  592. static int hf_utran_csg_fdd_reporting_threshold2 = -1;
  593. static int hf_utran_csg_tdd_reporting_threshold = -1;
  594. static int hf_eutran_csg_fdd_reporting_threshold = -1;
  595. static int hf_eutran_csg_fdd_reporting_threshold2 = -1;
  596. static int hf_eutran_csg_tdd_reporting_threshold = -1;
  597. static int hf_eutran_csg_tdd_reporting_threshold2 = -1;
  598. static int hf_pmo_additionsr8_ba_ind_3g = -1;
  599. static int hf_pmo_additionsr8_pmo_ind = -1;
  600. static int hf_pmo_additionsr7_reporting_offset_700 = -1;
  601. static int hf_pmo_additionsr7_reporting_threshold_700 = -1;
  602. static int hf_pmo_additionsr7_reporting_offset_810 = -1;
  603. static int hf_pmo_additionsr7_reporting_threshold_810 = -1;
  604. static int hf_pmo_additionsr6_ccn_active_3g = -1;
  605. static int hf_pcco_additionsr6_ccn_active_3g = -1;
  606. static int hf_pmo_additionsr5_grnti = -1;
  607. static int hf_pcco_additionsr5_grnti = -1;
  608. static int hf_pmo_additionsr4_ccn_active = -1;
  609. static int hf_pcco_additionsr4_ccn_active = -1;
  610. static int hf_pcco_additionsr4_container_id = -1;
  611. static int hf_lsa_id_info_element_lsa_id = -1;
  612. static int hf_lsa_id_info_element_shortlsa_id = -1;
  613. static int hf_lsa_parameters_nr_of_freq_or_cells = -1;
  614. static int hf_target_cell_gsm_immediate_rel = -1;
  615. static int hf_target_cell_gsm_bsic = -1;
  616. static int hf_target_cell_3g_immediate_rel = -1;
  617. static int hf_target_cell_eutran_earfcn = -1;
  618. static int hf_target_cell_eutran_measurement_bandwidth = -1;
  619. static int hf_target_cell_eutran_pl_cell_id = -1;
  620. static int hf_idvd_default_utran_priority = -1;
  621. static int hf_idvd_utran_priority = -1;
  622. static int hf_idvd_default_eutran_priority = -1;
  623. static int hf_idvd_eutran_priority = -1;
  624. static int hf_idvd_prio_geran_priority = -1;
  625. static int hf_idvd_prio_t3230_timeout_value = -1;
  626. static int hf_target_cell_g_rnti_ext = -1;
  627. /* < Packet (Enhanced) Measurement Report message contents > */
  628. static int hf_ba_used_ba_used = -1;
  629. static int hf_ba_used_ba_used_3g = -1;
  630. static int hf_serving_cell_data_rxlev_serving_cell = -1;
  631. static int hf_nc_measurements_frequency_n = -1;
  632. static int hf_nc_measurements_bsic_n = -1;
  633. static int hf_nc_measurements_rxlev_n = -1;
  634. static int hf_repeatedinvalid_bsic_info_bcch_freq_n = -1;
  635. static int hf_repeatedinvalid_bsic_info_bsic_n = -1;
  636. static int hf_repeatedinvalid_bsic_info_rxlev_n = -1;
  637. static int hf_reporting_quantity_instance_reporting_quantity = -1;
  638. static int hf_nc_measurement_report_nc_mode = -1;
  639. static int hf_nc_measurement_report_number_of_nc_measurements = -1;
  640. static int hf_enh_nc_measurement_report_nc_mode = -1;
  641. static int hf_enh_nc_measurement_report_pmo_used = -1;
  642. static int hf_enh_nc_measurement_report_bsic_seen = -1;
  643. static int hf_enh_nc_measurement_report_scale = -1;
  644. static int hf_ext_measurement_report_ext_reporting_type = -1;
  645. static int hf_ext_measurement_report_slot0_i_level = -1;
  646. static int hf_ext_measurement_report_slot1_i_level = -1;
  647. static int hf_ext_measurement_report_slot2_i_level = -1;
  648. static int hf_ext_measurement_report_slot3_i_level = -1;
  649. static int hf_ext_measurement_report_slot4_i_level = -1;
  650. static int hf_ext_measurement_report_slot5_i_level = -1;
  651. static int hf_ext_measurement_report_slot6_i_level = -1;
  652. static int hf_ext_measurement_report_slot7_i_level = -1;
  653. static int hf_ext_measurement_report_number_of_ext_measurements = -1;
  654. static int hf_measurements_3g_cell_list_index_3g = -1;
  655. static int hf_measurements_3g_reporting_quantity = -1;
  656. static int hf_pmr_additionsr99_pmo_used = -1;
  657. static int hf_pmr_eutran_meas_rpt_freq_idx = -1;
  658. static int hf_pmr_eutran_meas_rpt_cell_id = -1;
  659. static int hf_pmr_eutran_meas_rpt_quantity = -1;
  660. static int hf_emr_servingcell_dtx_used = -1;
  661. static int hf_emr_servingcell_rxlev_val = -1;
  662. static int hf_emr_servingcell_rx_qual_full = -1;
  663. static int hf_emr_servingcell_mean_bep = -1;
  664. static int hf_emr_servingcell_cv_bep = -1;
  665. static int hf_emr_servingcell_nbr_rcvd_blocks = -1;
  666. static int hf_enhancedmeasurementreport_rr_short_pd = -1;
  667. static int hf_enhancedmeasurementreport_message_type = -1;
  668. static int hf_enhancedmeasurementreport_shortlayer2_header = -1;
  669. static int hf_enhancedmeasurementreport_bsic_seen = -1;
  670. static int hf_enhancedmeasurementreport_scale = -1;
  671. static int hf_packet_measurement_report_psi5_change_mark = -1;
  672. /* < Packet Measurement Order message contents > */
  673. static int hf_ext_frequency_list_start_frequency = -1;
  674. static int hf_ext_frequency_list_nr_of_frequencies = -1;
  675. static int hf_ext_frequency_list_freq_diff_length = -1;
  676. static int hf_packet_measurement_order_pmo_index = -1;
  677. static int hf_packet_measurement_order_pmo_count = -1;
  678. static int hf_ccn_measurement_report_rxlev_serving_cell = -1;
  679. static int hf_ccn_measurement_report_number_of_nc_measurements = -1;
  680. static int hf_target_cell_gsm_notif_bsic = -1;
  681. static int hf_fdd_target_cell_notif_fdd_arfcn = -1;
  682. static int hf_fdd_target_cell_notif_bandwith_fdd = -1;
  683. static int hf_fdd_target_cell_notif_scrambling_code = -1;
  684. static int hf_target_cell_3g_notif_reporting_quantity = -1;
  685. static int hf_pccn_additionsr6_ba_used_3g = -1;
  686. /* < Packet Cell Change Notification message contents > */
  687. static int hf_packet_cell_change_notification_ba_ind = -1;
  688. static int hf_packet_cell_change_notification_pmo_used = -1;
  689. static int hf_packet_cell_change_notification_pccn_sending = -1;
  690. static int hf_packet_cell_change_notification_lte_reporting_quantity = -1;
  691. static int hf_eutran_ccn_meas_rpt_3g_ba_used = -1;
  692. static int hf_eutran_ccn_meas_rpt_freq_idx = -1;
  693. static int hf_eutran_ccn_meas_cell_id = -1;
  694. static int hf_eutran_ccn_meas_rpt_quantity = -1;
  695. static int hf_utran_csg_meas_rpt_cgi = -1;
  696. static int hf_utran_csg_meas_rpt_csg_id = -1;
  697. static int hf_utran_csg_meas_rpt_access_mode = -1;
  698. static int hf_utran_csg_meas_rpt_quantity = -1;
  699. static int hf_eutran_csg_meas_rpt_cgi = -1;
  700. static int hf_eutran_csg_meas_rpt_ta = -1;
  701. static int hf_eutran_csg_meas_rpt_csg_id = -1;
  702. static int hf_eutran_csg_meas_rpt_access_mode = -1;
  703. static int hf_eutran_csg_meas_rpt_quantity = -1;
  704. /* < Packet Cell Change Continue message contents > */
  705. static int hf_packet_cell_change_continue_arfcn = -1;
  706. static int hf_packet_cell_change_continue_bsic = -1;
  707. static int hf_packet_cell_change_continue_container_id = -1;
  708. /* < Packet Neighbour Cell Data message contents > */
  709. static int hf_pncd_container_with_id_bsic = -1;
  710. static int hf_packet_neighbour_cell_data_container_id = -1;
  711. static int hf_packet_neighbour_cell_data_spare = -1;
  712. static int hf_packet_neighbour_cell_data_container_index = -1;
  713. /* < Packet Serving Cell Data message contents > */
  714. static int hf_packet_serving_cell_data_spare = -1;
  715. static int hf_packet_serving_cell_data_container_index = -1;
  716. static int hf_servingcelldata_rxlev_serving_cell = -1;
  717. static int hf_repeated_invalid_bsic_info_bcch_freq_ncell = -1;
  718. static int hf_repeated_invalid_bsic_info_bsic = -1;
  719. static int hf_repeated_invalid_bsic_info_rxlev_ncell = -1;
  720. static int hf_reporting_quantity_reporting_quantity = -1;
  721. static int hf_nc_measurementreport_nc_mode = -1;
  722. static int hf_nc_measurementreport_pmo_used = -1;
  723. static int hf_nc_measurementreport_scale = -1;
  724. /* < Packet Handover Command message content > */
  725. static int hf_globaltimeslotdescription_ms_timeslotallocation = -1;
  726. static int hf_pho_usf_1_7_usf = -1;
  727. static int hf_usf_allocationarray_usf_0 = -1;
  728. static int hf_egprs_description_linkqualitymeasurementmode = -1;
  729. static int hf_nas_container_nas_containerlength = -1;
  730. static int hf_ps_handoverto_utran_payload_rrc_containerlength = -1;
  731. static int hf_pho_radioresources_handoverreference = -1;
  732. static int hf_pho_radioresources_si = -1;
  733. static int hf_pho_radioresources_nci = -1;
  734. static int hf_pho_radioresources_bsic = -1;
  735. static int hf_pho_radioresources_ccn_active = -1;
  736. static int hf_pho_radioresources_ccn_active_3g = -1;
  737. static int hf_pho_radioresources_networkcontrolorder = -1;
  738. static int hf_pho_radioresources_rlc_reset = -1;
  739. static int hf_pho_radioresources_uplinkcontroltimeslot = -1;
  740. static int hf_packet_handover_command_containerid = -1;
  741. /* < End Packet Handover Command > */
  742. /* < Packet Physical Information message content > */
  743. /* < End Packet Physical Information > */
  744. /* < Additinal MS Radio Access Capability */
  745. /* < End Additinal MS Radio Access Capability */
  746. /* < Packet Pause > */
  747. /* < End Packet Pause > */
  748. /* < Packet System Information Type 1 > */
  749. static int hf_packet_system_info_type1_pbcch_change_mark = -1;
  750. static int hf_packet_system_info_type1_psi_change_field = -1;
  751. static int hf_packet_system_info_type1_psi1_repeat_period = -1;
  752. static int hf_packet_system_info_type1_psi_count_lr = -1;
  753. static int hf_packet_system_info_type1_psi_count_hr = -1;
  754. static int hf_packet_system_info_type1_measurement_order = -1;
  755. static int hf_packet_system_info_type1_psi_status_ind = -1;
  756. static int hf_packet_system_info_type1_mscr = -1;
  757. static int hf_packet_system_info_type1_band_indicator = -1;
  758. static int hf_packet_system_info_type1_lb_ms_txpwr_max_ccch = -1;
  759. static int hf_pccch_org_bs_pcc_rel = -1;
  760. static int hf_pccch_org_pbcch_blks = -1;
  761. static int hf_pccch_org_pag_blks_res = -1;
  762. static int hf_pccch_org_prach_blks = -1;
  763. /* <End Packet System Information Type 1> */
  764. /* <Packet System Information Type 2> */
  765. static int hf_packet_system_info_type2_change_mark = -1;
  766. static int hf_packet_system_info_type2_index = -1;
  767. static int hf_packet_system_info_type2_count = -1;
  768. static int hf_packet_system_info_type2_ref_freq_num = -1;
  769. static int hf_packet_system_info_type2_ma_number = -1;
  770. static int hf_tsc = -1;
  771. static int hf_packet_system_info_type2_non_hopping_timeslot = -1;
  772. static int hf_packet_system_info_type2_hopping_ma_num = -1;
  773. static int hf_packet_system_info_type2_hopping_timeslot = -1;
  774. static int hf_packet_cell_id_cell_identity = -1;
  775. static int hf_packet_lai_lac = -1;
  776. static int hf_packet_plmn_mcc1 = -1;
  777. static int hf_packet_plmn_mcc2 = -1;
  778. static int hf_packet_plmn_mcc3 = -1;
  779. static int hf_packet_plmn_mnc1 = -1;
  780. static int hf_packet_plmn_mnc2 = -1;
  781. static int hf_packet_plmn_mnc3 = -1;
  782. static int hf_packet_non_gprs_cell_opt_att = -1;
  783. static int hf_packet_non_gprs_cell_opt_t3212 = -1;
  784. static int hf_packet_non_gprs_cell_opt_neci = -1;
  785. static int hf_packet_non_gprs_cell_opt_pwrc = -1;
  786. static int hf_packet_non_gprs_cell_opt_dtx = -1;
  787. static int hf_packet_non_gprs_cell_opt_radio_link_timeout = -1;
  788. static int hf_packet_non_gprs_cell_opt_bs_ag_blks_res = -1;
  789. static int hf_packet_non_gprs_cell_opt_ccch_conf = -1;
  790. static int hf_packet_non_gprs_cell_opt_bs_pa_mfrms = -1;
  791. static int hf_packet_non_gprs_cell_opt_max_retrans = -1;
  792. static int hf_packet_non_gprs_cell_opt_tx_int = -1;
  793. static int hf_packet_non_gprs_cell_opt_ec = -1;
  794. static int hf_packet_non_gprs_cell_opt_ms_txpwr_max_ccch = -1;
  795. /* static int hf_packet_non_gprs_cell_opt_ext_len = -1; */
  796. /* <End Packet System Information Type 2> */
  797. /* <Packet System Information Type 3> */
  798. static int hf_packet_system_info_type3_change_mark = -1;
  799. static int hf_packet_system_info_type3_bis_count = -1;
  800. static int hf_exc_acc = -1;
  801. static int hf_packet_scell_param_gprs_rxlev_access_min = -1;
  802. static int hf_packet_scell_param_gprs_ms_txpwr_max_cch = -1;
  803. static int hf_packet_scell_param_multiband_reporting = -1;
  804. static int hf_packet_gen_cell_sel_gprs_cell_resl_hyst = -1;
  805. static int hf_packet_gen_cell_sel_c31_hyst = -1;
  806. static int hf_packet_gen_cell_sel_c32_qual = -1;
  807. static int hf_packet_gen_cell_sel_t_resel = -1;
  808. static int hf_packet_gen_cell_sel_ra_resel_hyst = -1;
  809. static int hf_packet_compact_cell_sel_bsic = -1;
  810. static int hf_packet_compact_cell_sel_same_as_scell = -1;
  811. static int hf_packet_compact_cell_sel_gprs_rxlev_access_min = -1;
  812. static int hf_packet_compact_cell_sel_gprs_ms_txpwr_max_cch = -1;
  813. static int hf_packet_compact_cell_sel_gprs_temp_offset = -1;
  814. static int hf_packet_compact_cell_sel_gprs_penalty_time = -1;
  815. static int hf_packet_compact_cell_sel_gprs_resel_offset = -1;
  816. static int hf_packet_compact_cell_sel_time_group = -1;
  817. static int hf_packet_compact_cell_sel_guar_const_pwr_blks = -1;
  818. static int hf_packet_compact_ncell_param_start_freq = -1;
  819. static int hf_packet_compact_ncell_param_nr_of_remaining_cells = -1;
  820. /* <End Packet System Information Type 3> */
  821. /* <Packet System Information Type 5> */
  822. static int hf_gprsmeasurementparams3g_psi5_repquantfdd = -1;
  823. static int hf_gprsmeasurementparams3g_psi5_multiratreportingfdd = -1;
  824. static int hf_gprsmeasurementparams3g_psi5_reportingoffsetfdd = -1;
  825. static int hf_gprsmeasurementparams3g_psi5_reportingthresholdfdd = -1;
  826. static int hf_gprsmeasurementparams3g_psi5_multiratreportingtdd = -1;
  827. static int hf_gprsmeasurementparams3g_psi5_reportingoffsettdd = -1;
  828. static int hf_gprsmeasurementparams3g_psi5_reportingthresholdtdd = -1;
  829. static int hf_enh_reporting_parameters_report_type = -1;
  830. static int hf_enh_reporting_parameters_reporting_rate = -1;
  831. static int hf_enh_reporting_parameters_invalid_bsic_reporting = -1;
  832. static int hf_enh_reporting_parameters_ncc_permitted = -1;
  833. static int hf_packet_system_info_type5_change_mark = -1;
  834. static int hf_packet_system_info_type5_index = -1;
  835. static int hf_packet_system_info_type5_count = -1;
  836. /* <End Packet System Information Type 5> */
  837. /* <Packet System Information Type 13> */
  838. static int hf_packet_system_info_type13_lb_ms_mxpwr_max_cch = -1;
  839. static int hf_packet_system_info_type13_si2n_support = -1;
  840. /* <End Packet System Information Type 13> */
  841. static int hf_si1_restoctet_nch_position = -1;
  842. static int hf_si1_restoctet_bandindicator = -1;
  843. static int hf_selection_parameters_cbq = -1;
  844. static int hf_selection_parameters_cell_reselect_offset = -1;
  845. static int hf_selection_parameters_temporary_offset = -1;
  846. static int hf_selection_parameters_penalty_time = -1;
  847. static int hf_si3_rest_octet_power_offset = -1;
  848. static int hf_si3_rest_octet_system_information_2ter_indicator = -1;
  849. static int hf_si3_rest_octet_early_classmark_sending_control = -1;
  850. static int hf_si3_rest_octet_where = -1;
  851. static int hf_si3_rest_octet_ra_colour = -1;
  852. static int hf_si13_position = -1;
  853. static int hf_si3_rest_octet_ecs_restriction3g = -1;
  854. static int hf_si3_rest_octet_si2quaterindicator = -1;
  855. static int hf_si4_rest_octet_power_offset = -1;
  856. static int hf_si4_rest_octet_ra_colour = -1;
  857. static int hf_pch_and_nch_info_pagingchannelrestructuring = -1;
  858. static int hf_pch_and_nch_info_nln_sacch = -1;
  859. static int hf_pch_and_nch_info_callpriority = -1;
  860. static int hf_si6_restoctet_vbs_vgcs_options = -1;
  861. static int hf_si6_restoctet_max_lapdm = -1;
  862. static int hf_si6_restoctet_bandindicator = -1;
  863. static dissector_handle_t data_handle;
  864. /* Payload type as defined in TS 44.060 / 10.4.7 */
  865. #define PAYLOAD_TYPE_DATA 0
  866. #define PAYLOAD_TYPE_CTRL_NO_OPT_OCTET 1
  867. #define PAYLOAD_TYPE_CTRL_OPT_OCTET 2
  868. #define PAYLOAD_TYPE_RESERVED 3
  869. #define GPRS_CS_OFFSET(cS) ((cS)- RLCMAC_CS1)
  870. #define EGPRS_HEADER_TYPE_OFFSET(hT) ((hT)- RLCMAC_HDR_TYPE_1)
  871. static const guint8 egprs_Header_type1_coding_puncturing_scheme_to_mcs[] = {
  872. 9 /* 0x00, "(MCS-9/P1 ; MCS-9/P1)" */,
  873. 9 /* 0x01, "(MCS-9/P1 ; MCS-9/P2)" */,
  874. 9 /* 0x02, "(MCS-9/P1 ; MCS-9/P3)" */,
  875. MCS_INVALID /* 0x03, "reserved" */,
  876. 9 /* 0x04, "(MCS-9/P2 ; MCS-9/P1)" */,
  877. 9 /* 0x05, "(MCS-9/P2 ; MCS-9/P2)" */,
  878. 9 /* 0x06, "(MCS-9/P2 ; MCS-9/P3)" */,
  879. MCS_INVALID /* 0x07, "reserved" */,
  880. 9 /* 0x08, "(MCS-9/P3 ; MCS-9/P1)" */,
  881. 9 /* 0x09, "(MCS-9/P3 ; MCS-9/P2)" */,
  882. 9 /* 0x0A, "(MCS-9/P3 ; MCS-9/P3)" */,
  883. 8 /* 0x0B, "(MCS-8/P1 ; MCS-8/P1)" */,
  884. 8 /* 0x0C, "(MCS-8/P1 ; MCS-8/P2)" */,
  885. 8 /* 0x0D, "(MCS-8/P1 ; MCS-8/P3)" */,
  886. 8 /* 0x0E, "(MCS-8/P2 ; MCS-8/P1)" */,
  887. 8 /* 0x0F, "(MCS-8/P2 ; MCS-8/P2)" */,
  888. 8 /* 0x10, "(MCS-8/P2 ; MCS-8/P3)" */,
  889. 8 /* 0x11, "(MCS-8/P3 ; MCS-8/P1)" */,
  890. 8 /* 0x12, "(MCS-8/P3 ; MCS-8/P2)" */,
  891. 8 /* 0x13, "(MCS-8/P3 ; MCS-8/P3)" */,
  892. 7 /* 0x14, "(MCS-7/P1 ; MCS-7/P1)" */,
  893. 7 /* 0x15, "(MCS-7/P1 ; MCS-7/P2)" */,
  894. 7 /* 0x16, "(MCS-7/P1 ; MCS-7/P3)" */,
  895. 7 /* 0x17, "(MCS-7/P2 ; MCS-7/P1)" */,
  896. 7 /* 0x18, "(MCS-7/P2 ; MCS-7/P2)" */,
  897. 7 /* 0x19, "(MCS-7/P2 ; MCS-7/P3)" */,
  898. 7 /* 0x1A, "(MCS-7/P3 ; MCS-7/P1)" */,
  899. 7 /* 0x1B, "(MCS-7/P3 ; MCS-7/P2)" */,
  900. 7 /* 0x1C, "(MCS-7/P3 ; MCS-7/P3)" */,
  901. MCS_INVALID /* 0x1D, "reserved" */,
  902. MCS_INVALID /* 0x1E, "reserved" */,
  903. MCS_INVALID /* 0x1F, "reserved" */
  904. };
  905. static const guint8 egprs_Header_type2_coding_puncturing_scheme_to_mcs[] = {
  906. 6 /* {0x00, "MCS-6/P1"} */,
  907. 6 /* {0x01, "MCS-6/P2"} */,
  908. 6 /* {0x02, "MCS-6/P1 with 6 octet padding"} */,
  909. 6 /* {0x03, "MCS-6/P2 with 6 octet padding "} */,
  910. 5 /* {0x04, "MCS-5/P1"} */,
  911. 5 /* {0x05, "MCS-5/P2"} */,
  912. 5 /* {0x06, "MCS-6/P1 with 10 octet padding "} */,
  913. 5 /* {0x07, "MCS-6/P2 with 10 octet padding "} */
  914. };
  915. static const guint8 egprs_Header_type3_coding_puncturing_scheme_to_mcs[] = {
  916. 4 /* {0x00, "MCS-4/P1"} */,
  917. 4 /* {0x01, "MCS-4/P2"} */,
  918. 4 /* {0x02, "MCS-4/P3"} */,
  919. 3 /* {0x03, "MCS-3/P1"} */,
  920. 3 /* {0x04, "MCS-3/P2"} */,
  921. 3 /* {0x05, "MCS-3/P3"} */,
  922. 3 /* {0x06, "MCS-3/P1 with padding"} */,
  923. 3 /* {0x07, "MCS-3/P2 with padding"} */,
  924. 3 /* {0x08, "MCS-3/P3 with padding"} */,
  925. 2 /* {0x09, "MCS-2/P1"} */,
  926. 2 /* {0x0A, "MCS-2/P2"} */,
  927. 1 /* {0x0B, "MCS-1/P1"} */,
  928. 1 /* {0x0C, "MCS-1/P2"} */,
  929. 2 /* {0x0D, "MCS-2/P1 with padding"} */,
  930. 2 /* {0x0E, "MCS-2/P2 with padding"} */,
  931. 0 /* {0x0F, "MCS-0"} */
  932. };
  933. static crumb_spec_t bits_spec_ul_bsn1[] = {
  934. {10, 6},
  935. {0, 5},
  936. {0, 0}
  937. };
  938. static crumb_spec_t bits_spec_ul_bsn2[] = {
  939. {8, 8},
  940. {0, 2},
  941. {0, 0}
  942. };
  943. static crumb_spec_t bits_spec_ul_tfi[] = {
  944. {13, 3},
  945. {0, 2},
  946. {0, 0}
  947. };
  948. static crumb_spec_t bits_spec_ul_type2_cps[] = {
  949. {15, 1},
  950. {0, 2},
  951. {0, 0}
  952. };
  953. static crumb_spec_t bits_spec_ul_type3_cps[] = {
  954. {14, 2},
  955. {0, 2},
  956. {0, 0}
  957. };
  958. static crumb_spec_t bits_spec_dl_type1_bsn1[] = {
  959. {23, 1},
  960. {8, 8},
  961. {0, 2},
  962. {0, 0}
  963. };
  964. static crumb_spec_t bits_spec_dl_type1_bsn2[] = {
  965. {13, 3},
  966. {0, 7},
  967. {0, 0}
  968. };
  969. static crumb_spec_t bits_spec_dl_type2_bsn[] = {
  970. {23, 1},
  971. {8, 8},
  972. {0, 2},
  973. {0, 0}
  974. };
  975. static crumb_spec_t bits_spec_dl_type3_bsn[] = {
  976. {23, 1},
  977. {8, 8},
  978. {0, 2},
  979. {0, 0}
  980. };
  981. static crumb_spec_t bits_spec_dl_tfi[] = {
  982. {12, 4},
  983. {0, 1},
  984. {0, 0}
  985. };
  986. /* CSN1 structures */
  987. /*(not all parts of CSN_DESCR structure are always initialized.)*/
  988. static const
  989. CSN_DESCR_BEGIN(PLMN_t)
  990. M_UINT (PLMN_t, MCC2, 4, &hf_packet_plmn_mcc2),
  991. M_UINT (PLMN_t, MCC1, 4, &hf_packet_plmn_mcc1),
  992. M_UINT (PLMN_t, MNC3, 4, &hf_packet_plmn_mnc3),
  993. M_UINT (PLMN_t, MCC3, 4, &hf_packet_plmn_mcc3),
  994. M_UINT (PLMN_t, MNC2, 4, &hf_packet_plmn_mnc2),
  995. M_UINT (PLMN_t, MNC1, 4, &hf_packet_plmn_mnc1),
  996. CSN_DESCR_END (PLMN_t)
  997. static const
  998. CSN_DESCR_BEGIN(StartingTime_t)
  999. M_UINT (StartingTime_t, N32, 5, &hf_startingtime_n32),
  1000. M_UINT (StartingTime_t, N51, 6, &hf_startingtime_n51),
  1001. M_UINT (StartingTime_t, N26, 5, &hf_startingtime_n26),
  1002. CSN_DESCR_END (StartingTime_t)
  1003. /* < Global TFI IE > */
  1004. static const
  1005. CSN_DESCR_BEGIN(Global_TFI_t)
  1006. M_UNION (Global_TFI_t, 2),
  1007. M_UINT (Global_TFI_t, u.UPLINK_TFI, 5, &hf_uplink_tfi),
  1008. M_UINT (Global_TFI_t, u.DOWNLINK_TFI, 5, &hf_downlink_tfi),
  1009. CSN_DESCR_END (Global_TFI_t)
  1010. /* < Starting Frame Number Description IE > */
  1011. static const
  1012. CSN_DESCR_BEGIN(Starting_Frame_Number_t)
  1013. M_UNION (Starting_Frame_Number_t, 2),
  1014. M_TYPE (Starting_Frame_Number_t, u.StartingTime, StartingTime_t),
  1015. M_UINT (Starting_Frame_Number_t, u.k, 13, &hf_starting_frame_number_k),
  1016. CSN_DESCR_END(Starting_Frame_Number_t)
  1017. /* < Ack/Nack Description IE > */
  1018. static const
  1019. CSN_DESCR_BEGIN(Ack_Nack_Description_t)
  1020. M_UINT (Ack_Nack_Description_t, FINAL_ACK_INDICATION, 1, &hf_final_ack_indication),
  1021. M_UINT (Ack_Nack_Description_t, STARTING_SEQUENCE_NUMBER, 7, &hf_starting_sequence_number),
  1022. M_BITMAP (Ack_Nack_Description_t, RECEIVED_BLOCK_BITMAP, 64),
  1023. CSN_DESCR_END (Ack_Nack_Description_t)
  1024. /* < Packet Timing Advance IE > */
  1025. static const
  1026. CSN_DESCR_BEGIN(Packet_Timing_Advance_t)
  1027. M_NEXT_EXIST (Packet_Timing_Advance_t, Exist_TIMING_ADVANCE_VALUE, 1),
  1028. M_UINT (Packet_Timing_Advance_t, TIMING_ADVANCE_VALUE, 6, &hf_timing_advance_value),
  1029. M_NEXT_EXIST (Packet_Timing_Advance_t, Exist_IndexAndtimeSlot, 2),
  1030. M_UINT (Packet_Timing_Advance_t, TIMING_ADVANCE_INDEX, 4, &hf_timing_advance_index),
  1031. M_UINT (Packet_Timing_Advance_t, TIMING_ADVANCE_TIMESLOT_NUMBER, 3, &hf_timing_advance_timeslot_number),
  1032. CSN_DESCR_END (Packet_Timing_Advance_t)
  1033. /* < Power Control Parameters IE > */
  1034. static const
  1035. CSN_DESCR_BEGIN(GPRS_Power_Control_Parameters_t)
  1036. M_UINT (GPRS_Power_Control_Parameters_t, ALPHA, 4, &hf_alpha),
  1037. M_UINT (GPRS_Power_Control_Parameters_t, T_AVG_W, 5, &hf_t_avg_w),
  1038. M_UINT (GPRS_Power_Control_Parameters_t, T_AVG_T, 5, &hf_t_avg_t),
  1039. M_UINT (GPRS_Power_Control_Parameters_t, PC_MEAS_CHAN, 1, &hf_pc_meas_chan),
  1040. M_UINT (GPRS_Power_Control_Parameters_t, N_AVG_I, 4, &hf_n_avg_i),
  1041. CSN_DESCR_END (GPRS_Power_Control_Parameters_t)
  1042. /* < Global Power Control Parameters IE > */
  1043. static const
  1044. CSN_DESCR_BEGIN(Global_Power_Control_Parameters_t)
  1045. M_UINT (Global_Power_Control_Parameters_t, ALPHA, 4, &hf_alpha),
  1046. M_UINT (Global_Power_Control_Parameters_t, T_AVG_W, 5, &hf_t_avg_w),
  1047. M_UINT (Global_Power_Control_Parameters_t, T_AVG_T, 5, &hf_t_avg_t),
  1048. M_UINT (Global_Power_Control_Parameters_t, Pb, 4, &hf_global_power_control_parameters_pb),
  1049. M_UINT (Global_Power_Control_Parameters_t, PC_MEAS_CHAN, 1, &hf_pc_meas_chan),
  1050. M_UINT (Global_Power_Control_Parameters_t, INT_MEAS_CHANNEL_LIST_AVAIL, 1, &hf_global_power_control_parameters_int_meas_channel_list_avail),
  1051. M_UINT (Global_Power_Control_Parameters_t, N_AVG_I, 4, &hf_n_avg_i),
  1052. CSN_DESCR_END (Global_Power_Control_Parameters_t)
  1053. /* < Global Packet Timing Advance IE > */
  1054. static const
  1055. CSN_DESCR_BEGIN(Global_Packet_Timing_Advance_t)
  1056. M_NEXT_EXIST (Global_Packet_Timing_Advance_t, Exist_TIMING_ADVANCE_VALUE, 1),
  1057. M_UINT (Global_Packet_Timing_Advance_t, TIMING_ADVANCE_VALUE, 6, &hf_timing_advance_value),
  1058. M_NEXT_EXIST (Global_Packet_Timing_Advance_t, Exist_UPLINK_TIMING_ADVANCE, 2),
  1059. M_UINT (Global_Packet_Timing_Advance_t, UPLINK_TIMING_ADVANCE_INDEX, 4, &hf_timing_advance_index),
  1060. M_UINT (Global_Packet_Timing_Advance_t, UPLINK_TIMING_ADVANCE_TIMESLOT_NUMBER, 3, &hf_timing_advance_timeslot_number),
  1061. M_NEXT_EXIST (Global_Packet_Timing_Advance_t, Exist_DOWNLINK_TIMING_ADVANCE, 2),
  1062. M_UINT (Global_Packet_Timing_Advance_t, DOWNLINK_TIMING_ADVANCE_INDEX, 4, &hf_timing_advance_index),
  1063. M_UINT (Global_Packet_Timing_Advance_t, DOWNLINK_TIMING_ADVANCE_TIMESLOT_NUMBER, 3, &hf_timing_advance_timeslot_number),
  1064. CSN_DESCR_END (Global_Packet_Timing_Advance_t)
  1065. /* < Channel Quality Report struct > */
  1066. static const
  1067. CSN_DESCR_BEGIN(Channel_Quality_Report_t)
  1068. M_UINT (Channel_Quality_Report_t, C_VALUE, 6, &hf_channel_quality_report_c_value),
  1069. M_UINT (Channel_Quality_Report_t, RXQUAL, 3, &hf_channel_quality_report_rxqual),
  1070. M_UINT (Channel_Quality_Report_t, SIGN_VAR, 6, &hf_channel_quality_report_sign_var),
  1071. M_NEXT_EXIST (Channel_Quality_Report_t, Slot[0].Exist, 1),
  1072. M_UINT (Channel_Quality_Report_t, Slot[0].I_LEVEL_TN, 4, &hf_channel_quality_report_slot0_i_level_tn),
  1073. M_NEXT_EXIST (Channel_Quality_Report_t, Slot[1].Exist, 1),
  1074. M_UINT (Channel_Quality_Report_t, Slot[1].I_LEVEL_TN, 4, &hf_channel_quality_report_slot1_i_level_tn),
  1075. M_NEXT_EXIST (Channel_Quality_Report_t, Slot[2].Exist, 1),
  1076. M_UINT (Channel_Quality_Report_t, Slot[2].I_LEVEL_TN, 4, &hf_channel_quality_report_slot2_i_level_tn),
  1077. M_NEXT_EXIST (Channel_Quality_Report_t, Slot[3].Exist, 1),
  1078. M_UINT (Channel_Quality_Report_t, Slot[3].I_LEVEL_TN, 4, &hf_channel_quality_report_slot3_i_level_tn),
  1079. M_NEXT_EXIST (Channel_Quality_Report_t, Slot[4].Exist, 1),
  1080. M_UINT (Channel_Quality_Report_t, Slot[4].I_LEVEL_TN, 4, &hf_channel_quality_report_slot4_i_level_tn),
  1081. M_NEXT_EXIST (Channel_Quality_Report_t, Slot[5].Exist, 1),
  1082. M_UINT (Channel_Quality_Report_t, Slot[5].I_LEVEL_TN, 4, &hf_channel_quality_report_slot5_i_level_tn),
  1083. M_NEXT_EXIST (Channel_Quality_Report_t, Slot[6].Exist, 1),
  1084. M_UINT (Channel_Quality_Report_t, Slot[6].I_LEVEL_TN, 4, &hf_channel_quality_report_slot6_i_level_tn),
  1085. M_NEXT_EXIST (Channel_Quality_Report_t, Slot[7].Exist, 1),
  1086. M_UINT (Channel_Quality_Report_t, Slot[7].I_LEVEL_TN, 4, &hf_channel_quality_report_slot7_i_level_tn),
  1087. CSN_DESCR_END (Channel_Quality_Report_t)
  1088. /* < EGPRS Ack/Nack Description struct > */
  1089. static const
  1090. CSN_DESCR_BEGIN (EGPRS_AckNack_Desc_t)
  1091. M_UINT (EGPRS_AckNack_Desc_t, FINAL_ACK_INDICATION, 1, &hf_final_ack_indication),
  1092. M_UINT (EGPRS_AckNack_Desc_t, BEGINNING_OF_WINDOW, 1, &hf_egprs_acknack_beginning_of_window),
  1093. M_UINT (EGPRS_AckNack_Desc_t, END_OF_WINDOW, 1, &hf_egprs_acknack_end_of_window),
  1094. M_UINT (EGPRS_AckNack_Desc_t, STARTING_SEQUENCE_NUMBER, 11, &hf_starting_sequence_number),
  1095. M_NEXT_EXIST (EGPRS_AckNack_Desc_t, Exist_CRBB, 3),
  1096. M_UINT (EGPRS_AckNack_Desc_t, CRBB_LENGTH, 7, &hf_egprs_acknack_crbb_length),
  1097. M_UINT (EGPRS_AckNack_Desc_t, CRBB_STARTING_COLOR_CODE, 1, &hf_egprs_acknack_crbb_starting_color_code),
  1098. M_LEFT_VAR_BMP (EGPRS_AckNack_Desc_t, CRBB, CRBB_LENGTH, 0),
  1099. M_LEFT_VAR_BMP_1(EGPRS_AckNack_Desc_t, URBB, URBB_LENGTH, 0),
  1100. CSN_DESCR_END (EGPRS_AckNack_Desc_t)
  1101. /* < EGPRS Ack/Nack Description IE > */
  1102. gint16 Egprs_Ack_Nack_Desc_w_len_Dissector(proto_tree *tree, csnStream_t* ar, tvbuff_t *tvb, void* data, int ett_csn1 _U_)
  1103. {
  1104. return csnStreamDissector(tree, ar, CSNDESCR(EGPRS_AckNack_Desc_t), tvb, data, ett_gsm_rlcmac);
  1105. }
  1106. /* this intermediate structure is only required because M_SERIALIZE cannot be used as a member of M_UNION */
  1107. static const
  1108. CSN_DESCR_BEGIN(EGPRS_AckNack_w_len_t)
  1109. M_SERIALIZE (EGPRS_AckNack_w_len_t, Desc, 8, Egprs_Ack_Nack_Desc_w_len_Dissector),
  1110. CSN_DESCR_END (EGPRS_AckNack_w_len_t)
  1111. static const
  1112. CSN_DESCR_BEGIN(EGPRS_AckNack_t)
  1113. M_UNION (EGPRS_AckNack_t, 2),
  1114. M_TYPE (EGPRS_AckNack_t, Desc, EGPRS_AckNack_Desc_t),
  1115. M_TYPE (EGPRS_AckNack_t, Desc, EGPRS_AckNack_w_len_t),
  1116. CSN_DESCR_END (EGPRS_AckNack_t)
  1117. /* <P1 Rest Octets> */
  1118. /* <P2 Rest Octets> */
  1119. static const
  1120. CSN_DESCR_BEGIN(MobileAllocationIE_t)
  1121. M_UINT (MobileAllocationIE_t, Length, 8, &hf_mobileallocationie_length),
  1122. M_VAR_ARRAY (MobileAllocationIE_t, MA, Length, 0),
  1123. CSN_DESCR_END (MobileAllocationIE_t)
  1124. static const
  1125. CSN_DESCR_BEGIN(SingleRFChannel_t)
  1126. M_UINT (SingleRFChannel_t, spare, 2, &hf_single_rf_channel_spare),
  1127. M_UINT (SingleRFChannel_t, ARFCN, 10, &hf_arfcn),
  1128. CSN_DESCR_END (SingleRFChannel_t)
  1129. static const
  1130. CSN_DESCR_BEGIN(RFHoppingChannel_t)
  1131. M_UINT (RFHoppingChannel_t, MAIO, 6, &hf_maio),
  1132. M_UINT (RFHoppingChannel_t, HSN, 6, &hf_hsn),
  1133. CSN_DESCR_END (RFHoppingChannel_t)
  1134. static const
  1135. CSN_DESCR_BEGIN(MobileAllocation_or_Frequency_Short_List_t)
  1136. M_UNION (MobileAllocation_or_Frequency_Short_List_t, 2),
  1137. M_BITMAP (MobileAllocation_or_Frequency_Short_List_t, u.Frequency_Short_List, 64),
  1138. M_TYPE (MobileAllocation_or_Frequency_Short_List_t, u.MA, MobileAllocationIE_t),
  1139. CSN_DESCR_END (MobileAllocation_or_Frequency_Short_List_t)
  1140. static const
  1141. CSN_DESCR_BEGIN(Channel_Description_t)
  1142. M_UINT (Channel_Description_t, Channel_type_and_TDMA_offset, 5, &hf_channel_description_channel_type_and_tdma_offset),
  1143. M_UINT (Channel_Description_t, TN, 3, &hf_channel_description_tn),
  1144. M_UINT (Channel_Description_t, TSC, 3, &hf_tsc),
  1145. M_UNION (Channel_Description_t, 2),
  1146. M_TYPE (Channel_Description_t, u.SingleRFChannel, SingleRFChannel_t),
  1147. M_TYPE (Channel_Description_t, u.RFHoppingChannel, RFHoppingChannel_t),
  1148. CSN_DESCR_END(Channel_Description_t)
  1149. static const
  1150. CSN_DESCR_BEGIN(Group_Channel_Description_t)
  1151. M_TYPE (Group_Channel_Description_t, Channel_Description, Channel_Description_t),
  1152. M_NEXT_EXIST (Group_Channel_Description_t, Exist_Hopping, 1),
  1153. M_TYPE (Group_Channel_Description_t, MA_or_Frequency_Short_List, MobileAllocation_or_Frequency_Short_List_t),
  1154. CSN_DESCR_END (Group_Channel_Description_t)
  1155. static const
  1156. CSN_DESCR_BEGIN(Group_Call_Reference_t)
  1157. M_UINT (Group_Call_Reference_t, value, 27, &hf_group_call_reference_value),
  1158. M_UINT (Group_Call_Reference_t, SF, 1,&hf_group_call_reference_sf),
  1159. M_UINT (Group_Call_Reference_t, AF, 1, &hf_group_call_reference_af),
  1160. M_UINT (Group_Call_Reference_t, call_priority, 3, &hf_group_call_reference_call_priority),
  1161. M_UINT (Group_Call_Reference_t, Ciphering_information, 4, &hf_group_call_reference_ciphering_information),
  1162. CSN_DESCR_END (Group_Call_Reference_t)
  1163. static const
  1164. CSN_DESCR_BEGIN(Group_Call_information_t)
  1165. M_TYPE (Group_Call_information_t, Group_Call_Reference, Group_Call_Reference_t),
  1166. M_NEXT_EXIST (Group_Call_information_t, Exist_Group_Channel_Description, 1),
  1167. M_TYPE (Group_Call_information_t, Group_Channel_Description, Group_Channel_Description_t),
  1168. CSN_DESCR_END (Group_Call_information_t)
  1169. static const
  1170. CSN_DESCR_BEGIN (P1_Rest_Octets_t)
  1171. M_NEXT_EXIST_LH(P1_Rest_Octets_t, Exist_NLN_PCH_and_NLN_status, 2),
  1172. M_UINT (P1_Rest_Octets_t, NLN_PCH, 2, &hf_nln_pch),
  1173. M_UINT (P1_Rest_Octets_t, NLN_status, 1, &hf_nln_status),
  1174. M_NEXT_EXIST_LH(P1_Rest_Octets_t, Exist_Priority1, 1),
  1175. M_UINT (P1_Rest_Octets_t, Priority1, 3, &hf_priority),
  1176. M_NEXT_EXIST_LH(P1_Rest_Octets_t, Exist_Priority2, 1),
  1177. M_UINT (P1_Rest_Octets_t, Priority2, 3, &hf_priority),
  1178. M_NEXT_EXIST_LH(P1_Rest_Octets_t, Exist_Group_Call_information, 1),
  1179. M_TYPE (P1_Rest_Octets_t, Group_Call_information, Group_Call_information_t),
  1180. M_UINT_LH (P1_Rest_Octets_t, Packet_Page_Indication_1, 1, &hf_p1_rest_octets_packet_page_indication_1),
  1181. M_UINT_LH (P1_Rest_Octets_t, Packet_Page_Indication_2, 1, &hf_p1_rest_octets_packet_page_indication_2),
  1182. CSN_DESCR_END (P1_Rest_Octets_t)
  1183. static const
  1184. CSN_DESCR_BEGIN (P2_Rest_Octets_t)
  1185. M_NEXT_EXIST_LH(P2_Rest_Octets_t, Exist_CN3, 1),
  1186. M_UINT (P2_Rest_Octets_t, CN3, 2, &hf_p2_rest_octets_cn3),
  1187. M_NEXT_EXIST_LH(P2_Rest_Octets_t, Exist_NLN_and_status, 2),
  1188. M_UINT (P2_Rest_Octets_t, NLN, 2, &hf_nln),
  1189. M_UINT (P2_Rest_Octets_t, NLN_status, 1, &hf_nln_status),
  1190. M_NEXT_EXIST_LH(P2_Rest_Octets_t, Exist_Priority1, 1),
  1191. M_UINT (P2_Rest_Octets_t, Priority1, 3, &hf_priority),
  1192. M_NEXT_EXIST_LH(P2_Rest_Octets_t, Exist_Priority2, 1),
  1193. M_UINT (P2_Rest_Octets_t, Priority2, 3, &hf_priority),
  1194. M_NEXT_EXIST_LH(P2_Rest_Octets_t, Exist_Priority3, 1),
  1195. M_UINT (P2_Rest_Octets_t, Priority3, 3, &hf_priority),
  1196. M_UINT_LH (P2_Rest_Octets_t, Packet_Page_Indication_3, 1, &hf_p2_rest_octets_packet_page_indication_3),
  1197. CSN_DESCR_END (P2_Rest_Octets_t)
  1198. /* <IA Rest Octets>
  1199. * Note!!
  1200. * - first two bits skipped and frequencyparameters skipped
  1201. * - additions for R99 and EGPRS added
  1202. */
  1203. static const
  1204. CSN_DESCR_BEGIN(DynamicAllocation_t)
  1205. M_UINT (DynamicAllocation_t, USF, 3, &hf_usf),
  1206. M_UINT (DynamicAllocation_t, USF_GRANULARITY, 1, &hf_usf_granularity),
  1207. M_NEXT_EXIST (DynamicAllocation_t, Exist_P0_PR_MODE, 2),
  1208. M_UINT (DynamicAllocation_t, P0, 4, &hf_p0),
  1209. M_UINT (DynamicAllocation_t, PR_MODE, 1, &hf_pr_mode),
  1210. CSN_DESCR_END (DynamicAllocation_t)
  1211. static const
  1212. CSN_DESCR_BEGIN(EGPRS_TwoPhaseAccess_t)
  1213. M_NEXT_EXIST (EGPRS_TwoPhaseAccess_t, Exist_ALPHA, 1),
  1214. M_UINT (EGPRS_TwoPhaseAccess_t, ALPHA, 4, &hf_alpha),
  1215. M_UINT (EGPRS_TwoPhaseAccess_t, GAMMA, 5, &hf_gamma),
  1216. M_TYPE (EGPRS_TwoPhaseAccess_t, TBF_STARTING_TIME, StartingTime_t),
  1217. M_UINT (EGPRS_TwoPhaseAccess_t, NR_OF_RADIO_BLOCKS_ALLOCATED, 2, &hf_nr_of_radio_blocks_allocated),
  1218. M_NEXT_EXIST (EGPRS_TwoPhaseAccess_t, Exist_P0_BTS_PWR_CTRL_PR_MODE, 3),
  1219. M_UINT (EGPRS_TwoPhaseAccess_t, P0, 4, &hf_p0),
  1220. M_UINT (EGPRS_TwoPhaseAccess_t, BTS_PWR_CTRL_MODE, 1, &hf_bts_pwr_ctrl_mode),
  1221. M_UINT (EGPRS_TwoPhaseAccess_t, PR_MODE, 1, &hf_pr_mode),
  1222. CSN_DESCR_END (EGPRS_TwoPhaseAccess_t)
  1223. static const
  1224. CSN_DESCR_BEGIN(EGPRS_OnePhaseAccess_t)
  1225. M_UINT (EGPRS_OnePhaseAccess_t, TFI_ASSIGNMENT, 5, &hf_uplink_tfi),
  1226. M_UINT (EGPRS_OnePhaseAccess_t, POLLING, 1, &hf_polling),
  1227. M_UNION (EGPRS_OnePhaseAccess_t, 2),
  1228. M_TYPE (EGPRS_OnePhaseAccess_t, Allocation.DynamicAllocation, DynamicAllocation_t),
  1229. CSN_ERROR (EGPRS_OnePhaseAccess_t, "1 <Fixed Allocation>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  1230. M_UINT (EGPRS_OnePhaseAccess_t, EGPRS_CHANNEL_CODING_COMMAND, 4, &hf_egprs_channel_coding_command),
  1231. M_UINT (EGPRS_OnePhaseAccess_t, TLLI_BLOCK_CHANNEL_CODING, 1, &hf_tlli_block_channel_coding),
  1232. M_NEXT_EXIST (EGPRS_OnePhaseAccess_t, Exist_BEP_PERIOD2, 1),
  1233. M_UINT (EGPRS_OnePhaseAccess_t, BEP_PERIOD2, 4, &hf_bep_period2),
  1234. M_UINT (EGPRS_OnePhaseAccess_t, RESEGMENT, 1, &hf_resegment),
  1235. M_UINT (EGPRS_OnePhaseAccess_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  1236. M_NEXT_EXIST (EGPRS_OnePhaseAccess_t, Exist_ALPHA, 1),
  1237. M_UINT (EGPRS_OnePhaseAccess_t, ALPHA, 4, &hf_alpha),
  1238. M_UINT (EGPRS_OnePhaseAccess_t, GAMMA, 5, &hf_gamma),
  1239. M_NEXT_EXIST (EGPRS_OnePhaseAccess_t, Exist_TIMING_ADVANCE_INDEX, 1),
  1240. M_UINT (EGPRS_OnePhaseAccess_t, TIMING_ADVANCE_INDEX, 4, &hf_timing_advance_index),
  1241. M_NEXT_EXIST (EGPRS_OnePhaseAccess_t, Exist_TBF_STARTING_TIME, 1),
  1242. M_TYPE (EGPRS_OnePhaseAccess_t, TBF_STARTING_TIME, StartingTime_t),
  1243. CSN_DESCR_END (EGPRS_OnePhaseAccess_t)
  1244. static const
  1245. CSN_DESCR_BEGIN(IA_EGPRS_00_t)
  1246. M_UINT (IA_EGPRS_00_t, ExtendedRA, 5, &hf_extendedra),
  1247. M_REC_ARRAY (IA_EGPRS_00_t, AccessTechnologyType, NrOfAccessTechnologies, 4),
  1248. M_UNION (IA_EGPRS_00_t, 2),
  1249. M_TYPE (IA_EGPRS_00_t, Access.TwoPhaseAccess, EGPRS_TwoPhaseAccess_t),
  1250. M_TYPE (IA_EGPRS_00_t, Access.OnePhaseAccess, EGPRS_OnePhaseAccess_t),
  1251. CSN_DESCR_END (IA_EGPRS_00_t)
  1252. static const
  1253. CSN_ChoiceElement_t IA_EGPRS_Choice[] =
  1254. {
  1255. {2, 0x00, 0, M_TYPE (IA_EGPRS_t, u.IA_EGPRS_PUA, IA_EGPRS_00_t)},
  1256. {2, 0x01, 0, CSN_ERROR(IA_EGPRS_t, "01 <IA_EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED)},
  1257. {1, 0x01, 0, CSN_ERROR(IA_EGPRS_t, "1 <IA_EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED)}
  1258. };
  1259. /* Please observe the double usage of UnionType element.
  1260. * First, it is used to store the second bit of LL/LH identification of EGPRS contents.
  1261. * Thereafter, UnionType will be used to store the index to detected choice.
  1262. */
  1263. static const
  1264. CSN_DESCR_BEGIN(IA_EGPRS_t)
  1265. M_UINT (IA_EGPRS_t, UnionType , 1, &hf_ia_egprs_uniontype ),
  1266. M_CHOICE (IA_EGPRS_t, UnionType, IA_EGPRS_Choice, ElementsOf(IA_EGPRS_Choice)),
  1267. CSN_DESCR_END (IA_EGPRS_t)
  1268. static const
  1269. CSN_DESCR_BEGIN(IA_FreqParamsBeforeTime_t)
  1270. M_UINT (IA_FreqParamsBeforeTime_t, Length, 6, &hf_ia_freqparamsbeforetime_length),
  1271. M_UINT (IA_FreqParamsBeforeTime_t, MAIO, 6, &hf_maio),
  1272. M_VAR_ARRAY (IA_FreqParamsBeforeTime_t, MobileAllocation, Length, 8),
  1273. CSN_DESCR_END (IA_FreqParamsBeforeTime_t)
  1274. static const
  1275. CSN_DESCR_BEGIN (GPRS_SingleBlockAllocation_t)
  1276. M_NEXT_EXIST (GPRS_SingleBlockAllocation_t, Exist_ALPHA, 1),
  1277. M_UINT (GPRS_SingleBlockAllocation_t, ALPHA, 4, &hf_alpha),
  1278. M_UINT (GPRS_SingleBlockAllocation_t, GAMMA, 5, &hf_gamma),
  1279. M_FIXED (GPRS_SingleBlockAllocation_t, 2, 0x01),
  1280. M_TYPE (GPRS_SingleBlockAllocation_t, TBF_STARTING_TIME, StartingTime_t), /*bit(16)*/
  1281. M_NEXT_EXIST_LH(GPRS_SingleBlockAllocation_t, Exist_P0_BTS_PWR_CTRL_PR_MODE, 3),
  1282. M_UINT (GPRS_SingleBlockAllocation_t, P0, 4, &hf_p0),
  1283. M_UINT (GPRS_SingleBlockAllocation_t, BTS_PWR_CTRL_MODE, 1, &hf_bts_pwr_ctrl_mode),
  1284. M_UINT (GPRS_SingleBlockAllocation_t, PR_MODE, 1, &hf_pr_mode),
  1285. CSN_DESCR_END (GPRS_SingleBlockAllocation_t)
  1286. static const
  1287. CSN_DESCR_BEGIN (GPRS_DynamicOrFixedAllocation_t)
  1288. M_UINT (GPRS_DynamicOrFixedAllocation_t, TFI_ASSIGNMENT, 5, &hf_uplink_tfi),
  1289. M_UINT (GPRS_DynamicOrFixedAllocation_t, POLLING, 1, &hf_polling),
  1290. M_UNION (GPRS_DynamicOrFixedAllocation_t, 2),
  1291. M_TYPE (GPRS_DynamicOrFixedAllocation_t, Allocation.DynamicAllocation, DynamicAllocation_t),
  1292. CSN_ERROR (GPRS_DynamicOrFixedAllocation_t, "1 <Fixed Allocation>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  1293. M_UINT (GPRS_DynamicOrFixedAllocation_t, CHANNEL_CODING_COMMAND, 2, &hf_gprs_channel_coding_command),
  1294. M_UINT (GPRS_DynamicOrFixedAllocation_t, TLLI_BLOCK_CHANNEL_CODING, 1, &hf_tlli_block_channel_coding),
  1295. M_NEXT_EXIST (GPRS_DynamicOrFixedAllocation_t, Exist_ALPHA, 1),
  1296. M_UINT (GPRS_DynamicOrFixedAllocation_t, ALPHA, 4, &hf_alpha),
  1297. M_UINT (GPRS_DynamicOrFixedAllocation_t, GAMMA, 5, &hf_gamma),
  1298. M_NEXT_EXIST (GPRS_DynamicOrFixedAllocation_t, Exist_TIMING_ADVANCE_INDEX, 1),
  1299. M_UINT (GPRS_DynamicOrFixedAllocation_t, TIMING_ADVANCE_INDEX, 4, &hf_timing_advance_index),
  1300. M_NEXT_EXIST (GPRS_DynamicOrFixedAllocation_t, Exist_TBF_STARTING_TIME, 1),
  1301. M_TYPE (GPRS_DynamicOrFixedAllocation_t, TBF_STARTING_TIME, StartingTime_t),
  1302. CSN_DESCR_END (GPRS_DynamicOrFixedAllocation_t)
  1303. static const
  1304. CSN_DESCR_BEGIN(PU_IA_AdditionsR99_t)
  1305. M_NEXT_EXIST (PU_IA_AdditionsR99_t, Exist_ExtendedRA, 1),
  1306. M_UINT (PU_IA_AdditionsR99_t, ExtendedRA, 5, &hf_extendedra),
  1307. CSN_DESCR_END (PU_IA_AdditionsR99_t)
  1308. static const
  1309. CSN_DESCR_BEGIN (Packet_Uplink_ImmAssignment_t)
  1310. M_UNION (Packet_Uplink_ImmAssignment_t, 2),
  1311. M_TYPE (Packet_Uplink_ImmAssignment_t, Access.SingleBlockAllocation, GPRS_SingleBlockAllocation_t),
  1312. M_TYPE (Packet_Uplink_ImmAssignment_t, Access.DynamicOrFixedAllocation, GPRS_DynamicOrFixedAllocation_t),
  1313. M_NEXT_EXIST_OR_NULL_LH(Packet_Uplink_ImmAssignment_t, Exist_AdditionsR99, 1),
  1314. M_TYPE (Packet_Uplink_ImmAssignment_t, AdditionsR99, PU_IA_AdditionsR99_t),
  1315. CSN_DESCR_END (Packet_Uplink_ImmAssignment_t)
  1316. static const
  1317. CSN_DESCR_BEGIN(PD_IA_AdditionsR99_t)
  1318. M_UINT (PD_IA_AdditionsR99_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  1319. M_UINT (PD_IA_AdditionsR99_t, LINK_QUALITY_MEASUREMENT_MODE, 2, &hf_link_quality_measurement_mode),
  1320. M_NEXT_EXIST (PD_IA_AdditionsR99_t, Exist_BEP_PERIOD2, 1),
  1321. M_UINT (PD_IA_AdditionsR99_t, BEP_PERIOD2, 4, &hf_bep_period2),
  1322. CSN_DESCR_END (PD_IA_AdditionsR99_t)
  1323. static const
  1324. CSN_DESCR_BEGIN(Packet_Downlink_ImmAssignment_t)
  1325. M_UINT (Packet_Downlink_ImmAssignment_t, TLLI, 32, &hf_tlli),
  1326. M_NEXT_EXIST (Packet_Downlink_ImmAssignment_t, Exist_TFI_to_TA_VALID, 6 + 1),
  1327. M_UINT (Packet_Downlink_ImmAssignment_t, TFI_ASSIGNMENT, 5, &hf_downlink_tfi),
  1328. M_UINT (Packet_Downlink_ImmAssignment_t, RLC_MODE, 1, &hf_rlc_mode),
  1329. M_NEXT_EXIST (Packet_Downlink_ImmAssignment_t, Exist_ALPHA, 1),
  1330. M_UINT (Packet_Downlink_ImmAssignment_t, ALPHA, 4, &hf_alpha),
  1331. M_UINT (Packet_Downlink_ImmAssignment_t, GAMMA, 5, &hf_gamma),
  1332. M_UINT (Packet_Downlink_ImmAssignment_t, POLLING, 1, &hf_polling),
  1333. M_UINT (Packet_Downlink_ImmAssignment_t, TA_VALID, 1, &hf_ta_valid),
  1334. M_NEXT_EXIST (Packet_Downlink_ImmAssignment_t, Exist_TIMING_ADVANCE_INDEX, 1),
  1335. M_UINT (Packet_Downlink_ImmAssignment_t, TIMING_ADVANCE_INDEX, 4, &hf_timing_advance_index),
  1336. M_NEXT_EXIST (Packet_Downlink_ImmAssignment_t, Exist_TBF_STARTING_TIME, 1),
  1337. M_TYPE (Packet_Downlink_ImmAssignment_t, TBF_STARTING_TIME, StartingTime_t),
  1338. M_NEXT_EXIST (Packet_Downlink_ImmAssignment_t, Exist_P0_PR_MODE, 3),
  1339. M_UINT (Packet_Downlink_ImmAssignment_t, P0, 4, &hf_p0),
  1340. M_UINT (Packet_Downlink_ImmAssignment_t, BTS_PWR_CTRL_MODE, 1, &hf_bts_pwr_ctrl_mode),
  1341. M_UINT (Packet_Downlink_ImmAssignment_t, PR_MODE, 1, &hf_pr_mode),
  1342. M_NEXT_EXIST_OR_NULL_LH(Packet_Downlink_ImmAssignment_t, Exist_AdditionsR99, 1),
  1343. M_TYPE (Packet_Downlink_ImmAssignment_t, AdditionsR99, PD_IA_AdditionsR99_t),
  1344. CSN_DESCR_END (Packet_Downlink_ImmAssignment_t)
  1345. static const
  1346. CSN_DESCR_BEGIN (Second_Part_Packet_Assignment_t)
  1347. M_NEXT_EXIST_OR_NULL_LH(Second_Part_Packet_Assignment_t, Exist_SecondPart, 2),
  1348. M_NEXT_EXIST (Second_Part_Packet_Assignment_t, Exist_ExtendedRA, 1),
  1349. M_UINT (Second_Part_Packet_Assignment_t, ExtendedRA, 5, &hf_extendedra),
  1350. CSN_DESCR_END (Second_Part_Packet_Assignment_t)
  1351. static const
  1352. CSN_DESCR_BEGIN(IA_PacketAssignment_UL_DL_t)
  1353. M_UNION (IA_PacketAssignment_UL_DL_t, 2),
  1354. M_TYPE (IA_PacketAssignment_UL_DL_t, ul_dl.Packet_Uplink_ImmAssignment, Packet_Uplink_ImmAssignment_t),
  1355. M_TYPE (IA_PacketAssignment_UL_DL_t, ul_dl.Packet_Downlink_ImmAssignment, Packet_Downlink_ImmAssignment_t),
  1356. CSN_DESCR_END (IA_PacketAssignment_UL_DL_t)
  1357. static const
  1358. CSN_DESCR_BEGIN(IA_PacketAssignment_t)
  1359. M_UNION (IA_PacketAssignment_t, 2),
  1360. M_TYPE (IA_PacketAssignment_t, u.UplinkDownlinkAssignment, IA_PacketAssignment_UL_DL_t),
  1361. M_TYPE (IA_PacketAssignment_t, u.UplinkDownlinkAssignment, Second_Part_Packet_Assignment_t),
  1362. CSN_DESCR_END (IA_PacketAssignment_t)
  1363. /* <Packet Polling Request> */
  1364. static const
  1365. CSN_ChoiceElement_t PacketPollingID[] =
  1366. {
  1367. {1, 0, 0, M_TYPE(PacketPollingID_t, u.Global_TFI, Global_TFI_t)},
  1368. {2, 0x02, 0, M_UINT(PacketPollingID_t, u.TLLI, 32, &hf_tlli)},
  1369. {3, 0x06, 0, M_UINT(PacketPollingID_t, u.TQI, 16, &hf_tqi)},
  1370. /*{3, 0x07 , 0, M_TYPE(PacketUplinkID_t, u.Packet_Request_Reference, Packet_Request_Reference_t)},*/
  1371. };
  1372. static const
  1373. CSN_DESCR_BEGIN(PacketPollingID_t)
  1374. M_CHOICE (PacketPollingID_t, UnionType, PacketPollingID, ElementsOf(PacketPollingID)),
  1375. CSN_DESCR_END (PacketPollingID_t)
  1376. static const
  1377. CSN_DESCR_BEGIN(Packet_Polling_Request_t)
  1378. M_UINT (Packet_Polling_Request_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  1379. M_UINT (Packet_Polling_Request_t, PAGE_MODE, 2, &hf_page_mode),
  1380. M_TYPE (Packet_Polling_Request_t, ID, PacketPollingID_t),
  1381. M_UINT (Packet_Polling_Request_t, TYPE_OF_ACK, 1, &hf_ack_type),
  1382. M_PADDING_BITS(Packet_Polling_Request_t),
  1383. CSN_DESCR_END (Packet_Polling_Request_t)
  1384. static const
  1385. CSN_DESCR_BEGIN(MobileAllocation_t)
  1386. M_UINT_OFFSET(MobileAllocation_t, MA_BitLength, 6, 1),
  1387. M_VAR_BITMAP (MobileAllocation_t, MA_BITMAP, MA_BitLength, 0),
  1388. CSN_DESCR_END (MobileAllocation_t)
  1389. static const
  1390. CSN_DESCR_BEGIN(ARFCN_index_list_t)
  1391. M_REC_ARRAY (ARFCN_index_list_t, ARFCN_INDEX, ElementsOf_ARFCN_INDEX, 6),
  1392. CSN_DESCR_END (ARFCN_index_list_t)
  1393. static const
  1394. CSN_DESCR_BEGIN(GPRS_Mobile_Allocation_t)
  1395. M_UINT (GPRS_Mobile_Allocation_t, HSN, 6, &hf_hsn),
  1396. M_REC_ARRAY (GPRS_Mobile_Allocation_t, RFL_NUMBER, ElementsOf_RFL_NUMBER, 4),
  1397. M_UNION (GPRS_Mobile_Allocation_t, 2),
  1398. M_TYPE (GPRS_Mobile_Allocation_t, u.MA, MobileAllocation_t),
  1399. M_TYPE (GPRS_Mobile_Allocation_t, u.ARFCN_index_list, ARFCN_index_list_t),
  1400. CSN_DESCR_END (GPRS_Mobile_Allocation_t)
  1401. /* < SI 13 Rest Octets > */
  1402. static const
  1403. CSN_DESCR_BEGIN (Extension_Bits_t)
  1404. M_UINT_OFFSET (Extension_Bits_t, extension_length, 6, 1),
  1405. M_LEFT_VAR_BMP(Extension_Bits_t, Extension_Info, extension_length, 0),
  1406. CSN_DESCR_END (Extension_Bits_t)
  1407. static const
  1408. CSN_DESCR_BEGIN(GPRS_Cell_Options_t)
  1409. M_UINT (GPRS_Cell_Options_t, NMO, 2, &hf_gprs_cell_options_nmo),
  1410. M_UINT (GPRS_Cell_Options_t, T3168, 3, &hf_gprs_cell_options_t3168),
  1411. M_UINT (GPRS_Cell_Options_t, T3192, 3, &hf_gprs_cell_options_t3192),
  1412. M_UINT (GPRS_Cell_Options_t, DRX_TIMER_MAX, 3, &hf_gprs_cell_options_drx_timer_max),
  1413. M_UINT (GPRS_Cell_Options_t, ACCESS_BURST_TYPE, 1, &hf_gprs_cell_options_access_burst_type),
  1414. M_UINT (GPRS_Cell_Options_t, CONTROL_ACK_TYPE, 1, &hf_ack_type),
  1415. M_UINT (GPRS_Cell_Options_t, BS_CV_MAX, 4, &hf_gprs_cell_options_bs_cv_max),
  1416. M_NEXT_EXIST (GPRS_Cell_Options_t, Exist_PAN, 3),
  1417. M_UINT (GPRS_Cell_Options_t, PAN_DEC, 3, &hf_gprs_cell_options_pan_dec),
  1418. M_UINT (GPRS_Cell_Options_t, PAN_INC, 3, &hf_gprs_cell_options_pan_inc),
  1419. M_UINT (GPRS_Cell_Options_t, PAN_MAX, 3, &hf_gprs_cell_options_pan_max),
  1420. M_NEXT_EXIST (GPRS_Cell_Options_t, Exist_Extension_Bits, 1),
  1421. M_TYPE (GPRS_Cell_Options_t, Extension_Bits, Extension_Bits_t),
  1422. CSN_DESCR_END (GPRS_Cell_Options_t)
  1423. static const
  1424. CSN_DESCR_BEGIN(PBCCH_Not_present_t)
  1425. M_UINT (PBCCH_Not_present_t, RAC, 8, &hf_rac),
  1426. M_UINT (PBCCH_Not_present_t, SPGC_CCCH_SUP, 1, &hf_pbcch_not_present_spgc_ccch_sup),
  1427. M_UINT (PBCCH_Not_present_t, PRIORITY_ACCESS_THR, 3, &hf_pbcch_not_present_priority_access_thr),
  1428. M_UINT (PBCCH_Not_present_t, NETWORK_CONTROL_ORDER, 2, &hf_pbcch_not_present_network_control_order),
  1429. M_TYPE (PBCCH_Not_present_t, GPRS_Cell_Options, GPRS_Cell_Options_t),
  1430. M_TYPE (PBCCH_Not_present_t, GPRS_Power_Control_Parameters, GPRS_Power_Control_Parameters_t),
  1431. CSN_DESCR_END (PBCCH_Not_present_t)
  1432. static const
  1433. CSN_ChoiceElement_t SI13_PBCCH_Description_Channel[] =
  1434. {/* this one is used in SI13*/
  1435. {2, 0x00, 0, M_NULL(PBCCH_Description_t, u.dummy, 0)},/*Default to BCCH carrier*/
  1436. {2, 0x01, 0, M_UINT(PBCCH_Description_t, u.ARFCN, 10, &hf_arfcn)},
  1437. {1, 0x01, 0, M_UINT(PBCCH_Description_t, u.MAIO, 6, &hf_maio)},
  1438. };
  1439. static const
  1440. CSN_DESCR_BEGIN(PBCCH_Description_t)/*SI13*/
  1441. M_UINT (PBCCH_Description_t, Pb, 4, &hf_pbcch_description_pb),
  1442. M_UINT (PBCCH_Description_t, TSC, 3, &hf_tsc),
  1443. M_UINT (PBCCH_Description_t, TN, 3, &hf_pbcch_description_tn),
  1444. M_CHOICE (PBCCH_Description_t, UnionType, SI13_PBCCH_Description_Channel, ElementsOf(SI13_PBCCH_Description_Channel)),
  1445. CSN_DESCR_END (PBCCH_Description_t)
  1446. static const
  1447. CSN_DESCR_BEGIN(PBCCH_present_t)
  1448. M_UINT (PBCCH_present_t, PSI1_REPEAT_PERIOD, 4, &hf_pbcch_present_psi1_repeat_period),
  1449. M_TYPE (PBCCH_present_t, PBCCH_Description, PBCCH_Description_t),
  1450. CSN_DESCR_END (PBCCH_present_t)
  1451. static const
  1452. CSN_DESCR_BEGIN(SI13_AdditionsR6)
  1453. M_NEXT_EXIST (SI13_AdditionsR6, Exist_LB_MS_TXPWR_MAX_CCH, 1),
  1454. M_UINT (SI13_AdditionsR6, LB_MS_TXPWR_MAX_CCH, 5, &hf_packet_system_info_type13_lb_ms_mxpwr_max_cch),
  1455. M_UINT (SI13_AdditionsR6, SI2n_SUPPORT, 2, &hf_packet_system_info_type13_si2n_support),
  1456. CSN_DESCR_END (SI13_AdditionsR6)
  1457. static const
  1458. CSN_DESCR_BEGIN(SI13_AdditionsR4)
  1459. M_UINT (SI13_AdditionsR4, SI_STATUS_IND, 1, &hf_si_status_ind),
  1460. M_NEXT_EXIST_OR_NULL_LH (SI13_AdditionsR4, Exist_AdditionsR6, 1),
  1461. M_TYPE (SI13_AdditionsR4, AdditionsR6, SI13_AdditionsR6),
  1462. CSN_DESCR_END (SI13_AdditionsR4)
  1463. static const
  1464. CSN_DESCR_BEGIN(SI13_AdditionR99)
  1465. M_UINT (SI13_AdditionR99, SGSNR, 1, &hf_sgsnr),
  1466. M_NEXT_EXIST_OR_NULL_LH (SI13_AdditionR99, Exist_AdditionsR4, 1),
  1467. M_TYPE (SI13_AdditionR99, AdditionsR4, SI13_AdditionsR4),
  1468. CSN_DESCR_END (SI13_AdditionR99)
  1469. static const
  1470. CSN_DESCR_BEGIN (SI_13_t)
  1471. M_THIS_EXIST_LH (SI_13_t),
  1472. M_UINT (SI_13_t, BCCH_CHANGE_MARK, 3, &hf_bcch_change_mark),
  1473. M_UINT (SI_13_t, SI_CHANGE_FIELD, 4, &hf_si_change_field),
  1474. M_NEXT_EXIST (SI_13_t, Exist_MA, 2),
  1475. M_UINT (SI_13_t, SI13_CHANGE_MARK, 2, &hf_si13_change_mark),
  1476. M_TYPE (SI_13_t, GPRS_Mobile_Allocation, GPRS_Mobile_Allocation_t),
  1477. M_UNION (SI_13_t, 2),
  1478. M_TYPE (SI_13_t, u.PBCCH_Not_present, PBCCH_Not_present_t),
  1479. M_TYPE (SI_13_t, u.PBCCH_present, PBCCH_present_t),
  1480. M_NEXT_EXIST_OR_NULL_LH(SI_13_t, Exist_AdditionsR99, 1),
  1481. M_TYPE (SI_13_t, AdditionsR99, SI13_AdditionR99),
  1482. CSN_DESCR_END (SI_13_t)
  1483. /************************************************************/
  1484. /* TS 44.060 messages */
  1485. /************************************************************/
  1486. /* < Packet TBF Release message content > */
  1487. static const
  1488. CSN_DESCR_BEGIN(Packet_TBF_Release_t)
  1489. M_UINT (Packet_TBF_Release_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  1490. M_UINT (Packet_TBF_Release_t, PAGE_MODE, 2, &hf_page_mode),
  1491. M_FIXED (Packet_TBF_Release_t, 1, 0x00),
  1492. M_TYPE (Packet_TBF_Release_t, Global_TFI, Global_TFI_t),
  1493. M_UINT (Packet_TBF_Release_t, UPLINK_RELEASE, 1, &hf_packetbf_release_uplink_release),
  1494. M_UINT (Packet_TBF_Release_t, DOWNLINK_RELEASE, 1, &hf_packetbf_release_downlink_release),
  1495. M_UINT (Packet_TBF_Release_t, TBF_RELEASE_CAUSE, 4, &hf_packetbf_release_tbf_release_cause),
  1496. M_PADDING_BITS(Packet_TBF_Release_t ),
  1497. CSN_DESCR_END (Packet_TBF_Release_t)
  1498. /* < Packet Control Acknowledgement message content > */
  1499. static const
  1500. CSN_DESCR_BEGIN (Packet_Control_Acknowledgement_AdditionsR6_t)
  1501. M_NEXT_EXIST (Packet_Control_Acknowledgement_AdditionsR6_t, Exist_CTRL_ACK_Extension, 1),
  1502. M_UINT (Packet_Control_Acknowledgement_AdditionsR6_t, CTRL_ACK_Extension, 9, &hf_packet_control_acknowledgement_additionsr6_ctrl_ack_extension),
  1503. CSN_DESCR_END (Packet_Control_Acknowledgement_AdditionsR6_t)
  1504. static const
  1505. CSN_DESCR_BEGIN (Packet_Control_Acknowledgement_AdditionsR5_t)
  1506. M_NEXT_EXIST (Packet_Control_Acknowledgement_AdditionsR5_t, Exist_TN_RRBP, 1),
  1507. M_UINT (Packet_Control_Acknowledgement_AdditionsR5_t, TN_RRBP, 3, &hf_packet_control_acknowledgement_additionsr5_tn_rrbp),
  1508. M_NEXT_EXIST (Packet_Control_Acknowledgement_AdditionsR5_t, Exist_G_RNTI_Extension, 1),
  1509. M_UINT (Packet_Control_Acknowledgement_AdditionsR5_t, G_RNTI_Extension, 4, &hf_packet_control_acknowledgement_additionsr5_g_rnti_extension),
  1510. M_NEXT_EXIST_OR_NULL (Packet_Control_Acknowledgement_AdditionsR5_t, Exist_AdditionsR6, 1),
  1511. M_TYPE (Packet_Control_Acknowledgement_AdditionsR5_t, AdditionsR6, Packet_Control_Acknowledgement_AdditionsR6_t),
  1512. CSN_DESCR_END (Packet_Control_Acknowledgement_AdditionsR5_t)
  1513. static const
  1514. CSN_DESCR_BEGIN (Packet_Control_Acknowledgement_t)
  1515. M_UINT (Packet_Control_Acknowledgement_t, PayloadType, 2, &hf_ul_payload_type),
  1516. M_UINT (Packet_Control_Acknowledgement_t, spare, 5, &hf_ul_mac_header_spare),
  1517. M_UINT (Packet_Control_Acknowledgement_t, R, 1, &hf_ul_retry),
  1518. M_UINT (Packet_Control_Acknowledgement_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  1519. M_UINT (Packet_Control_Acknowledgement_t, TLLI, 32, &hf_tlli),
  1520. M_UINT (Packet_Control_Acknowledgement_t, CTRL_ACK, 2, &hf_packet_control_acknowledgement_ctrl_ack),
  1521. M_NEXT_EXIST_OR_NULL (Packet_Control_Acknowledgement_t, Exist_AdditionsR5, 1),
  1522. M_TYPE (Packet_Control_Acknowledgement_t, AdditionsR5, Packet_Control_Acknowledgement_AdditionsR5_t),
  1523. M_PADDING_BITS (Packet_Control_Acknowledgement_t),
  1524. CSN_DESCR_END (Packet_Control_Acknowledgement_t)
  1525. /* < Packet Downlink Dummy Control Block message content > */
  1526. static const
  1527. CSN_DESCR_BEGIN(Packet_Downlink_Dummy_Control_Block_t)
  1528. M_UINT (Packet_Downlink_Dummy_Control_Block_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  1529. M_UINT (Packet_Downlink_Dummy_Control_Block_t, PAGE_MODE, 2, &hf_page_mode),
  1530. M_NEXT_EXIST (Packet_Downlink_Dummy_Control_Block_t, Exist_PERSISTENCE_LEVEL, 1),
  1531. M_UINT_ARRAY (Packet_Downlink_Dummy_Control_Block_t, PERSISTENCE_LEVEL, 4, 4),
  1532. M_PADDING_BITS(Packet_Downlink_Dummy_Control_Block_t ),
  1533. CSN_DESCR_END (Packet_Downlink_Dummy_Control_Block_t)
  1534. /* < Packet Uplink Dummy Control Block message content > */
  1535. static const
  1536. CSN_DESCR_BEGIN(Packet_Uplink_Dummy_Control_Block_t)
  1537. M_UINT (Packet_Uplink_Dummy_Control_Block_t, PayloadType, 2, &hf_ul_payload_type),
  1538. M_UINT (Packet_Uplink_Dummy_Control_Block_t, spare, 5, &hf_ul_mac_header_spare),
  1539. M_UINT (Packet_Uplink_Dummy_Control_Block_t, R, 1, &hf_ul_retry),
  1540. M_UINT (Packet_Uplink_Dummy_Control_Block_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  1541. M_UINT (Packet_Uplink_Dummy_Control_Block_t, TLLI, 32, &hf_tlli),
  1542. /*M_FIXED (Packet_Uplink_Dummy_Control_Block_t, 1, 0),*/
  1543. M_PADDING_BITS(Packet_Uplink_Dummy_Control_Block_t),
  1544. CSN_DESCR_END (Packet_Uplink_Dummy_Control_Block_t)
  1545. static const
  1546. CSN_DESCR_BEGIN(Receive_N_PDU_Number_t)
  1547. M_UINT (Receive_N_PDU_Number_t, nsapi, 4, &hf_receive_n_pdu_number_nsapi),
  1548. M_UINT (Receive_N_PDU_Number_t, value, 8, &hf_receive_n_pdu_number_value),
  1549. CSN_DESCR_END (Receive_N_PDU_Number_t)
  1550. gint16 Receive_N_PDU_Number_list_Dissector(proto_tree *tree, csnStream_t* ar, tvbuff_t *tvb, void* data, int ett_csn1 _U_)
  1551. {
  1552. return csnStreamDissector(tree, ar, CSNDESCR(Receive_N_PDU_Number_t), tvb, data, ett_gsm_rlcmac);
  1553. }
  1554. static const
  1555. CSN_DESCR_BEGIN(Receive_N_PDU_Number_list_t)
  1556. M_SERIALIZE (Receive_N_PDU_Number_list_t, IEI, 7, Receive_N_PDU_Number_list_Dissector),
  1557. M_VAR_TARRAY (Receive_N_PDU_Number_list_t, Receive_N_PDU_Number, Receive_N_PDU_Number_t, Count_Receive_N_PDU_Number),
  1558. CSN_DESCR_END (Receive_N_PDU_Number_list_t)
  1559. /* < MS Radio Access capability IE > */
  1560. static const
  1561. CSN_DESCR_BEGIN (DTM_EGPRS_t)
  1562. M_NEXT_EXIST (DTM_EGPRS_t, Exist_DTM_EGPRS_multislot_class, 1),
  1563. M_UINT (DTM_EGPRS_t, DTM_EGPRS_multislot_class, 2, &hf_dtm_egprs_dtm_egprs_multislot_class),
  1564. CSN_DESCR_END (DTM_EGPRS_t)
  1565. static const
  1566. CSN_DESCR_BEGIN (DTM_EGPRS_HighMultislotClass_t)
  1567. M_NEXT_EXIST (DTM_EGPRS_HighMultislotClass_t, Exist_DTM_EGPRS_HighMultislotClass, 1),
  1568. M_UINT (DTM_EGPRS_HighMultislotClass_t, DTM_EGPRS_HighMultislotClass, 3, &hf_dtm_egprs_highmultislotclass_dtm_egprs_highmultislotclass),
  1569. CSN_DESCR_END (DTM_EGPRS_HighMultislotClass_t)
  1570. static const
  1571. CSN_DESCR_BEGIN (Multislot_capability_t)
  1572. M_NEXT_EXIST_OR_NULL(Multislot_capability_t, Exist_HSCSD_multislot_class, 1),
  1573. M_UINT (Multislot_capability_t, HSCSD_multislot_class, 5, &hf_multislot_capability_hscsd_multislot_class),
  1574. M_NEXT_EXIST_OR_NULL(Multislot_capability_t, Exist_GPRS_multislot_class, 2),
  1575. M_UINT (Multislot_capability_t, GPRS_multislot_class, 5, &hf_multislot_capability_gprs_multislot_class),
  1576. M_UINT (Multislot_capability_t, GPRS_Extended_Dynamic_Allocation_Capability, 1, &hf_multislot_capability_gprs_extended_dynamic_allocation_capability),
  1577. M_NEXT_EXIST_OR_NULL(Multislot_capability_t, Exist_SM, 2),
  1578. M_UINT (Multislot_capability_t, SMS_VALUE, 4, &hf_multislot_capability_sms_value),
  1579. M_UINT (Multislot_capability_t, SM_VALUE, 4, &hf_multislot_capability_sm_value),
  1580. M_NEXT_EXIST_OR_NULL(Multislot_capability_t, Exist_ECSD_multislot_class, 1),
  1581. M_UINT (Multislot_capability_t, ECSD_multislot_class, 5, &hf_multislot_capability_ecsd_multislot_class),
  1582. M_NEXT_EXIST_OR_NULL(Multislot_capability_t, Exist_EGPRS_multislot_class, 2),
  1583. M_UINT (Multislot_capability_t, EGPRS_multislot_class, 5, &hf_multislot_capability_egprs_multislot_class),
  1584. M_UINT (Multislot_capability_t, EGPRS_Extended_Dynamic_Allocation_Capability, 1, &hf_multislot_capability_egprs_extended_dynamic_allocation_capability),
  1585. M_NEXT_EXIST_OR_NULL(Multislot_capability_t, Exist_DTM_GPRS_multislot_class, 3),
  1586. M_UINT (Multislot_capability_t, DTM_GPRS_multislot_class, 2, &hf_multislot_capability_dtm_gprs_multislot_class),
  1587. M_UINT (Multislot_capability_t, Single_Slot_DTM, 1, &hf_multislot_capability_single_slot_dtm),
  1588. M_TYPE (Multislot_capability_t, DTM_EGPRS_Params, DTM_EGPRS_t),
  1589. CSN_DESCR_END (Multislot_capability_t)
  1590. static const
  1591. CSN_DESCR_BEGIN (Content_t)
  1592. M_UINT (Content_t, RF_Power_Capability, 3, &hf_content_rf_power_capability),
  1593. M_NEXT_EXIST_OR_NULL(Content_t, Exist_A5_bits, 1),
  1594. M_UINT_OR_NULL (Content_t, A5_bits, 7, &hf_content_a5_bits),
  1595. M_UINT_OR_NULL (Content_t, ES_IND, 1, &hf_content_es_ind),
  1596. M_UINT_OR_NULL (Content_t, PS, 1, &hf_content_ps),
  1597. M_UINT_OR_NULL (Content_t, VGCS, 1, &hf_content_vgcs),
  1598. M_UINT_OR_NULL (Content_t, VBS, 1, &hf_content_vbs),
  1599. M_NEXT_EXIST_OR_NULL(Content_t, Exist_Multislot_capability, 1),
  1600. M_TYPE (Content_t, Multislot_capability, Multislot_capability_t),
  1601. M_NEXT_EXIST_OR_NULL(Content_t, Exist_Eight_PSK_Power_Capability, 1),
  1602. M_UINT (Content_t, Eight_PSK_Power_Capability, 2, &hf_content_eight_psk_power_capability),
  1603. M_UINT_OR_NULL (Content_t, COMPACT_Interference_Measurement_Capability, 1, &hf_content_compact_interference_measurement_capability),
  1604. M_UINT_OR_NULL (Content_t, Revision_Level_Indicator, 1, &hf_content_revision_level_indicator),
  1605. M_UINT_OR_NULL (Content_t, UMTS_FDD_Radio_Access_Technology_Capability, 1, &hf_content_umts_fdd_radio_access_technology_capability),
  1606. M_UINT_OR_NULL (Content_t, UMTS_384_TDD_Radio_Access_Technology_Capability, 1, &hf_content_umts_384_tdd_radio_access_technology_capability),
  1607. M_UINT_OR_NULL (Content_t, CDMA2000_Radio_Access_Technology_Capability, 1, &hf_content_cdma2000_radio_access_technology_capability),
  1608. M_UINT_OR_NULL (Content_t, UMTS_128_TDD_Radio_Access_Technology_Capability, 1, &hf_content_umts_128_tdd_radio_access_technology_capability),
  1609. M_UINT_OR_NULL (Content_t, GERAN_Feature_Package_1, 1, &hf_content_geran_feature_package_1),
  1610. M_NEXT_EXIST_OR_NULL(Content_t, Exist_Extended_DTM_multislot_class, 2),
  1611. M_UINT (Content_t, Extended_DTM_GPRS_multislot_class, 2, &hf_content_extended_dtm_gprs_multislot_class),
  1612. M_UINT (Content_t, Extended_DTM_EGPRS_multislot_class, 2, &hf_content_extended_dtm_egprs_multislot_class),
  1613. M_UINT_OR_NULL (Content_t, Modulation_based_multislot_class_support, 1, &hf_content_modulation_based_multislot_class_support),
  1614. M_NEXT_EXIST_OR_NULL(Content_t, Exist_HighMultislotCapability, 1),
  1615. M_UINT (Content_t, HighMultislotCapability, 2, &hf_content_highmultislotcapability),
  1616. M_NEXT_EXIST_OR_NULL(Content_t, Exist_GERAN_lu_ModeCapability, 1),
  1617. M_UINT (Content_t, GERAN_lu_ModeCapability, 4, &hf_content_geran_lu_modecapability),
  1618. M_UINT_OR_NULL (Content_t, GMSK_MultislotPowerProfile, 2, &hf_content_gmsk_multislotpowerprofile),
  1619. M_UINT_OR_NULL (Content_t, EightPSK_MultislotProfile, 2, &hf_content_eightpsk_multislotprofile),
  1620. M_UINT_OR_NULL (Content_t, MultipleTBF_Capability, 1, &hf_content_multipletbf_capability),
  1621. M_UINT_OR_NULL (Content_t, DownlinkAdvancedReceiverPerformance, 2, &hf_content_downlinkadvancedreceiverperformance),
  1622. M_UINT_OR_NULL (Content_t, ExtendedRLC_MAC_ControlMessageSegmentionsCapability, 1, &hf_content_extendedrlc_mac_controlmessagesegmentionscapability),
  1623. M_UINT_OR_NULL (Content_t, DTM_EnhancementsCapability, 1, &hf_content_dtm_enhancementscapability),
  1624. M_NEXT_EXIST_OR_NULL(Content_t, Exist_DTM_GPRS_HighMultislotClass, 2),
  1625. M_UINT (Content_t, DTM_GPRS_HighMultislotClass, 3, &hf_content_dtm_gprs_highmultislotclass),
  1626. M_TYPE (Content_t, DTM_EGPRS_HighMultislotClass, DTM_EGPRS_HighMultislotClass_t),
  1627. M_UINT_OR_NULL (Content_t, PS_HandoverCapability, 1, &hf_content_ps_handovercapability),
  1628. CSN_DESCR_END (Content_t)
  1629. gint16 Content_Dissector(proto_tree *tree, csnStream_t* ar, tvbuff_t *tvb, void* data, int ett_csn1 _U_)
  1630. {
  1631. return csnStreamDissector(tree, ar, CSNDESCR(Content_t), tvb, data, ett_gsm_rlcmac);
  1632. }
  1633. static const
  1634. CSN_DESCR_BEGIN (Additional_access_technologies_struct_t)
  1635. M_UINT (Additional_access_technologies_struct_t, Access_Technology_Type, 4, &hf_additional_accessechnologies_struct_t_access_technology_type),
  1636. M_UINT (Additional_access_technologies_struct_t, GMSK_Power_class, 3, &hf_additional_accessechnologies_struct_t_gmsk_power_class),
  1637. M_UINT (Additional_access_technologies_struct_t, Eight_PSK_Power_class, 2, &hf_additional_accessechnologies_struct_t_eight_psk_power_class),
  1638. CSN_DESCR_END (Additional_access_technologies_struct_t)
  1639. static const
  1640. CSN_DESCR_BEGIN (Additional_access_technologies_t)
  1641. M_REC_TARRAY (Additional_access_technologies_t, Additional_access_technologies[0], Additional_access_technologies_struct_t, Count_additional_access_technologies),
  1642. CSN_DESCR_END (Additional_access_technologies_t)
  1643. gint16 Additional_access_technologies_Dissector(proto_tree *tree, csnStream_t* ar, tvbuff_t *tvb, void* data, int ett_csn1 _U_)
  1644. {
  1645. return csnStreamDissector(tree, ar, CSNDESCR(Additional_access_technologies_t), tvb, data, ett_gsm_rlcmac);
  1646. }
  1647. static const
  1648. CSN_ChoiceElement_t MS_RA_capability_value_Choice[] =
  1649. {
  1650. {4, AccTech_GSMP, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */
  1651. {4, AccTech_GSME, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */
  1652. {4, AccTech_GSM1800, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */
  1653. {4, AccTech_GSM1900, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */
  1654. {4, AccTech_GSM850, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Content, 7, Content_Dissector)}, /* Long Form */
  1655. {4, AccTech_GSMOther, 0, M_SERIALIZE (MS_RA_capability_value_t, u.Additional_access_technologies, 7, Additional_access_technologies_Dissector)}, /* Short Form */
  1656. };
  1657. static const
  1658. CSN_DESCR_BEGIN(MS_RA_capability_value_t)
  1659. M_CHOICE (MS_RA_capability_value_t, IndexOfAccTech, MS_RA_capability_value_Choice, ElementsOf(MS_RA_capability_value_Choice)),
  1660. CSN_DESCR_END (MS_RA_capability_value_t)
  1661. static const
  1662. CSN_DESCR_BEGIN (MS_Radio_Access_capability_t)
  1663. /*Will be done in the main routines:*/
  1664. /*M_UINT (MS_Radio_Access_capability_t, IEI, 8, &hf_ms_radio_access_capability_iei),*/
  1665. /*M_UINT (MS_Radio_Access_capability_t, Length, 8, &hf_ms_radio_access_capability_length),*/
  1666. M_REC_TARRAY_1(MS_Radio_Access_capability_t, MS_RA_capability_value, MS_RA_capability_value_t, Count_MS_RA_capability_value),
  1667. CSN_DESCR_END (MS_Radio_Access_capability_t)
  1668. /* < MS Classmark 3 IE > */
  1669. static const
  1670. CSN_DESCR_BEGIN(ARC_t)
  1671. M_UINT (ARC_t, A5_Bits, 4, &hf_arc_a5_bits),
  1672. M_UINT (ARC_t, Arc2_Spare, 4, &hf_arc_arc2_spare),
  1673. M_UINT (ARC_t, Arc1, 4, &hf_arc_arc1),
  1674. CSN_DESCR_END (ARC_t)
  1675. static const
  1676. CSN_ChoiceElement_t MultibandChoice[] =
  1677. {
  1678. {3, 0x00, 0, M_UINT(Multiband_t, u.A5_Bits, 4, &hf_multiband_a5_bits)},
  1679. {3, 0x05, 0, M_TYPE(Multiband_t, u.ARC, ARC_t)},
  1680. {3, 0x06, 0, M_TYPE(Multiband_t, u.ARC, ARC_t)},
  1681. {3, 0x01, 0, M_TYPE(Multiband_t, u.ARC, ARC_t)},
  1682. {3, 0x02, 0, M_TYPE(Multiband_t, u.ARC, ARC_t)},
  1683. {3, 0x04, 0, M_TYPE(Multiband_t, u.ARC, ARC_t)},
  1684. };
  1685. static const
  1686. CSN_DESCR_BEGIN(Multiband_t)
  1687. M_CHOICE (Multiband_t, Multiband, MultibandChoice, ElementsOf(MultibandChoice)),
  1688. CSN_DESCR_END (Multiband_t)
  1689. static const
  1690. CSN_DESCR_BEGIN(EDGE_RF_Pwr_t)
  1691. M_NEXT_EXIST (EDGE_RF_Pwr_t, ExistEDGE_RF_PwrCap1, 1),
  1692. M_UINT (EDGE_RF_Pwr_t, EDGE_RF_PwrCap1, 2, &hf_edge_rf_pwr_edge_rf_pwrcap1),
  1693. M_NEXT_EXIST (EDGE_RF_Pwr_t, ExistEDGE_RF_PwrCap2, 1),
  1694. M_UINT (EDGE_RF_Pwr_t, EDGE_RF_PwrCap2, 2, &hf_edge_rf_pwr_edge_rf_pwrcap2),
  1695. CSN_DESCR_END (EDGE_RF_Pwr_t)
  1696. static const
  1697. CSN_DESCR_BEGIN(MS_Class3_Unpacked_t)
  1698. M_UINT (MS_Class3_Unpacked_t, Spare1, 1, &hf_ms_class3_unpacked_spare1),
  1699. M_TYPE (MS_Class3_Unpacked_t, Multiband, Multiband_t),
  1700. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_R_Support, 1),
  1701. M_UINT (MS_Class3_Unpacked_t, R_GSM_Arc, 3, &hf_ms_class3_unpacked_r_gsm_arc),
  1702. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_MultiSlotCapability, 1),
  1703. M_UINT (MS_Class3_Unpacked_t, MultiSlotClass, 5, &hf_ms_class3_unpacked_multislotclass),
  1704. M_UINT (MS_Class3_Unpacked_t, UCS2, 1, &hf_ms_class3_unpacked_ucs2),
  1705. M_UINT (MS_Class3_Unpacked_t, ExtendedMeasurementCapability, 1, &hf_ms_class3_unpacked_extendedmeasurementcapability),
  1706. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_MS_MeasurementCapability, 2),
  1707. M_UINT (MS_Class3_Unpacked_t, SMS_VALUE, 4, &hf_ms_class3_unpacked_sms_value),
  1708. M_UINT (MS_Class3_Unpacked_t, SM_VALUE, 4, &hf_ms_class3_unpacked_sm_value),
  1709. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_MS_PositioningMethodCapability, 1),
  1710. M_UINT (MS_Class3_Unpacked_t, MS_PositioningMethod, 5, &hf_ms_class3_unpacked_ms_positioningmethod),
  1711. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_EDGE_MultiSlotCapability, 1),
  1712. M_UINT (MS_Class3_Unpacked_t, EDGE_MultiSlotClass, 5, &hf_ms_class3_unpacked_edge_multislotclass),
  1713. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_EDGE_Struct, 2),
  1714. M_UINT (MS_Class3_Unpacked_t, ModulationCapability, 1, &hf_ms_class3_unpacked_modulationcapability),
  1715. M_TYPE (MS_Class3_Unpacked_t, EDGE_RF_PwrCaps, EDGE_RF_Pwr_t),
  1716. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_GSM400_Info, 2),
  1717. M_UINT (MS_Class3_Unpacked_t, GSM400_Bands, 2, &hf_ms_class3_unpacked_gsm400_bands),
  1718. M_UINT (MS_Class3_Unpacked_t, GSM400_Arc, 4, &hf_ms_class3_unpacked_gsm400_arc),
  1719. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_GSM850_Arc, 1),
  1720. M_UINT (MS_Class3_Unpacked_t, GSM850_Arc, 4, &hf_ms_class3_unpacked_gsm850_arc),
  1721. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_PCS1900_Arc, 1),
  1722. M_UINT (MS_Class3_Unpacked_t, PCS1900_Arc, 4, &hf_ms_class3_unpacked_pcs1900_arc),
  1723. M_UINT (MS_Class3_Unpacked_t, UMTS_FDD_Radio_Access_Technology_Capability, 1, &hf_ms_class3_unpacked_umts_fdd_radio_access_technology_capability),
  1724. M_UINT (MS_Class3_Unpacked_t, UMTS_384_TDD_Radio_Access_Technology_Capability, 1, &hf_ms_class3_unpacked_umts_384_tdd_radio_access_technology_capability),
  1725. M_UINT (MS_Class3_Unpacked_t, CDMA2000_Radio_Access_Technology_Capability, 1, &hf_ms_class3_unpacked_cdma2000_radio_access_technology_capability),
  1726. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_DTM_GPRS_multislot_class, 3),
  1727. M_UINT (MS_Class3_Unpacked_t, DTM_GPRS_multislot_class, 2, &hf_ms_class3_unpacked_dtm_gprs_multislot_class),
  1728. M_UINT (MS_Class3_Unpacked_t, Single_Slot_DTM, 1, &hf_ms_class3_unpacked_single_slot_dtm),
  1729. M_TYPE (MS_Class3_Unpacked_t, DTM_EGPRS_Params, DTM_EGPRS_t),
  1730. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_SingleBandSupport, 1),
  1731. M_UINT (MS_Class3_Unpacked_t, GSM_Band, 4, &hf_ms_class3_unpacked_gsm_band),
  1732. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_GSM_700_Associated_Radio_Capability, 1),
  1733. M_UINT (MS_Class3_Unpacked_t, GSM_700_Associated_Radio_Capability, 4, &hf_ms_class3_unpacked_gsm_700_associated_radio_capability),
  1734. M_UINT (MS_Class3_Unpacked_t, UMTS_128_TDD_Radio_Access_Technology_Capability, 1, &hf_ms_class3_unpacked_umts_128_tdd_radio_access_technology_capability),
  1735. M_UINT (MS_Class3_Unpacked_t, GERAN_Feature_Package_1, 1, &hf_ms_class3_unpacked_geran_feature_package_1),
  1736. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_Extended_DTM_multislot_class, 2),
  1737. M_UINT (MS_Class3_Unpacked_t, Extended_DTM_GPRS_multislot_class, 2, &hf_ms_class3_unpacked_extended_dtm_gprs_multislot_class),
  1738. M_UINT (MS_Class3_Unpacked_t, Extended_DTM_EGPRS_multislot_class, 2, &hf_ms_class3_unpacked_extended_dtm_egprs_multislot_class),
  1739. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_HighMultislotCapability, 1),
  1740. M_UINT (MS_Class3_Unpacked_t, HighMultislotCapability, 2, &hf_ms_class3_unpacked_highmultislotcapability),
  1741. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_GERAN_lu_ModeCapability, 1),
  1742. M_UINT (MS_Class3_Unpacked_t, GERAN_lu_ModeCapability, 4, &hf_ms_class3_unpacked_geran_lu_modecapability),
  1743. M_UINT (MS_Class3_Unpacked_t, GERAN_FeaturePackage_2, 1, &hf_ms_class3_unpacked_geran_featurepackage_2),
  1744. M_UINT (MS_Class3_Unpacked_t, GMSK_MultislotPowerProfile, 2, &hf_ms_class3_unpacked_gmsk_multislotpowerprofile),
  1745. M_UINT (MS_Class3_Unpacked_t, EightPSK_MultislotProfile, 2, &hf_ms_class3_unpacked_eightpsk_multislotprofile),
  1746. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_TGSM_400_Bands, 2),
  1747. M_UINT (MS_Class3_Unpacked_t, TGSM_400_BandsSupported, 2, &hf_ms_class3_unpacked_tgsm_400_bandssupported),
  1748. M_UINT (MS_Class3_Unpacked_t, TGSM_400_AssociatedRadioCapability, 4, &hf_ms_class3_unpacked_tgsm_400_associatedradiocapability),
  1749. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_TGSM_900_AssociatedRadioCapability, 1),
  1750. M_UINT (MS_Class3_Unpacked_t, TGSM_900_AssociatedRadioCapability, 4, &hf_ms_class3_unpacked_tgsm_900_associatedradiocapability),
  1751. M_UINT (MS_Class3_Unpacked_t, DownlinkAdvancedReceiverPerformance, 2, &hf_ms_class3_unpacked_downlinkadvancedreceiverperformance),
  1752. M_UINT (MS_Class3_Unpacked_t, DTM_EnhancementsCapability, 1, &hf_ms_class3_unpacked_dtm_enhancementscapability),
  1753. M_NEXT_EXIST (MS_Class3_Unpacked_t, Exist_DTM_GPRS_HighMultislotClass, 3),
  1754. M_UINT (MS_Class3_Unpacked_t, DTM_GPRS_HighMultislotClass, 3, &hf_ms_class3_unpacked_dtm_gprs_highmultislotclass),
  1755. M_UINT (MS_Class3_Unpacked_t, OffsetRequired, 1, &hf_ms_class3_unpacked_offsetrequired),
  1756. M_TYPE (MS_Class3_Unpacked_t, DTM_EGPRS_HighMultislotClass, DTM_EGPRS_HighMultislotClass_t),
  1757. M_UINT (MS_Class3_Unpacked_t, RepeatedSACCH_Capability, 1, &hf_ms_class3_unpacked_repeatedsacch_capability),
  1758. M_UINT (MS_Class3_Unpacked_t, Spare2, 1, &hf_ms_class3_unpacked_spare2),
  1759. CSN_DESCR_END (MS_Class3_Unpacked_t)
  1760. static const
  1761. CSN_DESCR_BEGIN(Channel_Request_Description_t)
  1762. M_UINT (Channel_Request_Description_t, PEAK_THROUGHPUT_CLASS, 4, &hf_channel_request_description_peak_throughput_class),
  1763. M_UINT (Channel_Request_Description_t, RADIO_PRIORITY, 2, &hf_channel_request_description_radio_priority),
  1764. M_UINT (Channel_Request_Description_t, RLC_MODE, 1, &hf_rlc_mode),
  1765. M_UINT (Channel_Request_Description_t, LLC_PDU_TYPE, 1, &hf_channel_request_description_llc_pdu_type),
  1766. M_UINT (Channel_Request_Description_t, RLC_OCTET_COUNT, 16, &hf_channel_request_description_rlc_octet_count),
  1767. CSN_DESCR_END (Channel_Request_Description_t)
  1768. /* < Packet Resource Request message content > */
  1769. static const
  1770. CSN_ChoiceElement_t PacketResourceRequestID[] =
  1771. {
  1772. {1, 0, 0, M_TYPE(PacketResourceRequestID_t, u.Global_TFI, Global_TFI_t)},
  1773. {1, 0x01, 0, M_UINT(PacketResourceRequestID_t, u.TLLI, 32, &hf_tlli)},
  1774. };
  1775. static const
  1776. CSN_DESCR_BEGIN(PacketResourceRequestID_t)
  1777. M_CHOICE (PacketResourceRequestID_t, UnionType, PacketResourceRequestID, ElementsOf(PacketResourceRequestID)),
  1778. CSN_DESCR_END (PacketResourceRequestID_t)
  1779. static const
  1780. CSN_DESCR_BEGIN(BEP_MeasurementReport_t)
  1781. M_NEXT_EXIST (BEP_MeasurementReport_t, Exist, 3),
  1782. M_UNION (BEP_MeasurementReport_t, 2),
  1783. M_UINT (BEP_MeasurementReport_t, u.MEAN_BEP_GMSK, 4, &hf_bep_measurementreport_mean_bep_gmsk),
  1784. M_UINT (BEP_MeasurementReport_t, u.MEAN_BEP_8PSK, 4, &hf_bep_measurementreport_mean_bep_8psk),
  1785. CSN_DESCR_END (BEP_MeasurementReport_t)
  1786. static const
  1787. CSN_DESCR_BEGIN(InterferenceMeasurementReport_t)
  1788. M_NEXT_EXIST (InterferenceMeasurementReport_t, Exist, 1),
  1789. M_UINT (InterferenceMeasurementReport_t, I_LEVEL, 4, &hf_interferencemeasurementreport_i_level),
  1790. CSN_DESCR_END (InterferenceMeasurementReport_t)
  1791. static const
  1792. CSN_DESCR_BEGIN(EGPRS_TimeslotLinkQualityMeasurements_t)
  1793. M_NEXT_EXIST (EGPRS_TimeslotLinkQualityMeasurements_t, Exist_BEP_MEASUREMENTS, 1),
  1794. M_TYPE_ARRAY (EGPRS_TimeslotLinkQualityMeasurements_t, BEP_MEASUREMENTS, BEP_MeasurementReport_t, 8),
  1795. M_NEXT_EXIST (EGPRS_TimeslotLinkQualityMeasurements_t, Exist_INTERFERENCE_MEASUREMENTS, 1),
  1796. M_TYPE_ARRAY (EGPRS_TimeslotLinkQualityMeasurements_t, INTERFERENCE_MEASUREMENTS, InterferenceMeasurementReport_t, 8),
  1797. CSN_DESCR_END (EGPRS_TimeslotLinkQualityMeasurements_t)
  1798. static const
  1799. CSN_DESCR_BEGIN(EGPRS_BEP_LinkQualityMeasurements_t)
  1800. M_NEXT_EXIST (EGPRS_BEP_LinkQualityMeasurements_t, Exist_MEAN_CV_BEP_GMSK, 2),
  1801. M_UINT (EGPRS_BEP_LinkQualityMeasurements_t, MEAN_BEP_GMSK, 5, &hf_egprs_bep_linkqualitymeasurements_mean_bep_gmsk),
  1802. M_UINT (EGPRS_BEP_LinkQualityMeasurements_t, CV_BEP_GMSK, 3, &hf_egprs_bep_linkqualitymeasurements_cv_bep_gmsk),
  1803. M_NEXT_EXIST (EGPRS_BEP_LinkQualityMeasurements_t, Exist_MEAN_CV_BEP_8PSK, 2),
  1804. M_UINT (EGPRS_BEP_LinkQualityMeasurements_t, MEAN_BEP_8PSK, 5, &hf_egprs_bep_linkqualitymeasurements_mean_bep_8psk),
  1805. M_UINT (EGPRS_BEP_LinkQualityMeasurements_t, CV_BEP_8PSK, 3, &hf_egprs_bep_linkqualitymeasurements_cv_bep_8psk),
  1806. CSN_DESCR_END (EGPRS_BEP_LinkQualityMeasurements_t)
  1807. static const
  1808. CSN_DESCR_BEGIN(PRR_AdditionsR99_t)
  1809. M_NEXT_EXIST (PRR_AdditionsR99_t, Exist_EGPRS_BEP_LinkQualityMeasurements, 1),
  1810. M_TYPE (PRR_AdditionsR99_t, EGPRS_BEP_LinkQualityMeasurements, EGPRS_BEP_LinkQualityMeasurements_t),
  1811. M_NEXT_EXIST (PRR_AdditionsR99_t, Exist_EGPRS_TimeslotLinkQualityMeasurements, 1),
  1812. M_TYPE (PRR_AdditionsR99_t, EGPRS_TimeslotLinkQualityMeasurements, EGPRS_TimeslotLinkQualityMeasurements_t),
  1813. M_NEXT_EXIST (PRR_AdditionsR99_t, Exist_PFI, 1),
  1814. M_UINT (PRR_AdditionsR99_t, PFI, 7, &hf_pfi),
  1815. M_UINT (PRR_AdditionsR99_t, MS_RAC_AdditionalInformationAvailable, 1, &hf_prr_additionsr99_ms_rac_additionalinformationavailable),
  1816. M_UINT (PRR_AdditionsR99_t, RetransmissionOfPRR, 1, &hf_prr_additionsr99_retransmissionofprr),
  1817. CSN_DESCR_END (PRR_AdditionsR99_t)
  1818. static const
  1819. CSN_DESCR_BEGIN (Packet_Resource_Request_t)
  1820. /* Mac header */
  1821. M_UINT (Packet_Resource_Request_t, PayloadType, 2, &hf_ul_payload_type),
  1822. M_UINT (Packet_Resource_Request_t, spare, 5, &hf_ul_mac_header_spare),
  1823. M_UINT (Packet_Resource_Request_t, R, 1, &hf_ul_retry),
  1824. M_UINT (Packet_Resource_Request_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  1825. /* Mac header */
  1826. M_NEXT_EXIST (Packet_Resource_Request_t, Exist_ACCESS_TYPE, 1),
  1827. M_UINT (Packet_Resource_Request_t, ACCESS_TYPE, 2, &hf_packet_resource_request_access_type),
  1828. M_TYPE (Packet_Resource_Request_t, ID, PacketResourceRequestID_t),
  1829. M_NEXT_EXIST (Packet_Resource_Request_t, Exist_MS_Radio_Access_capability, 1),
  1830. M_TYPE (Packet_Resource_Request_t, MS_Radio_Access_capability, MS_Radio_Access_capability_t),
  1831. M_TYPE (Packet_Resource_Request_t, Channel_Request_Description, Channel_Request_Description_t),
  1832. M_NEXT_EXIST (Packet_Resource_Request_t, Exist_CHANGE_MARK, 1),
  1833. M_UINT (Packet_Resource_Request_t, CHANGE_MARK, 2, &hf_packet_resource_request_change_mark),
  1834. M_UINT (Packet_Resource_Request_t, C_VALUE, 6, &hf_packet_resource_request_c_value),
  1835. M_NEXT_EXIST (Packet_Resource_Request_t, Exist_SIGN_VAR, 1),
  1836. M_UINT (Packet_Resource_Request_t, SIGN_VAR, 6, &hf_packet_resource_request_sign_var),
  1837. M_TYPE_ARRAY (Packet_Resource_Request_t, Slot, InterferenceMeasurementReport_t, 8),
  1838. M_NEXT_EXIST_OR_NULL(Packet_Resource_Request_t, Exist_AdditionsR99, 1),
  1839. M_TYPE (Packet_Resource_Request_t, AdditionsR99, PRR_AdditionsR99_t),
  1840. M_PADDING_BITS (Packet_Resource_Request_t),
  1841. CSN_DESCR_END (Packet_Resource_Request_t)
  1842. /* < Packet Mobile TBF Status message content > */
  1843. static const
  1844. CSN_DESCR_BEGIN(Packet_Mobile_TBF_Status_t)
  1845. /* Mac header */
  1846. M_UINT (Packet_Mobile_TBF_Status_t, PayloadType, 2, &hf_ul_payload_type),
  1847. M_UINT (Packet_Mobile_TBF_Status_t, spare, 5, &hf_ul_mac_header_spare),
  1848. M_UINT (Packet_Mobile_TBF_Status_t, R, 1, &hf_ul_retry),
  1849. M_UINT (Packet_Mobile_TBF_Status_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  1850. /* Mac header */
  1851. M_TYPE (Packet_Mobile_TBF_Status_t, Global_TFI, Global_TFI_t),
  1852. M_UINT (Packet_Mobile_TBF_Status_t, TBF_CAUSE, 3, &hf_packet_mobile_tbf_status_tbf_cause),
  1853. M_NEXT_EXIST (Packet_Mobile_TBF_Status_t, Exist_STATUS_MESSAGE_TYPE, 1),
  1854. M_UINT (Packet_Mobile_TBF_Status_t, STATUS_MESSAGE_TYPE, 6, &hf_dl_message_type),
  1855. M_PADDING_BITS(Packet_Mobile_TBF_Status_t),
  1856. CSN_DESCR_END (Packet_Mobile_TBF_Status_t)
  1857. /* < Packet PSI Status message content > */
  1858. static const
  1859. CSN_DESCR_BEGIN(PSI_Message_t)
  1860. M_UINT (PSI_Message_t, PSI_MESSAGE_TYPE, 6, &hf_dl_message_type),
  1861. M_UINT (PSI_Message_t, PSIX_CHANGE_MARK, 2, &hf_psi_message_psix_change_mark),
  1862. M_NEXT_EXIST (PSI_Message_t, Exist_PSIX_COUNT_and_Instance_Bitmap, 2),
  1863. M_FIXED (PSI_Message_t, 4, 0), /* Placeholder for PSIX_COUNT (4 bits) */
  1864. M_FIXED (PSI_Message_t, 1, 0), /* Placeholder for Instance bitmap (1 bit) */
  1865. CSN_DESCR_END (PSI_Message_t)
  1866. static const
  1867. CSN_DESCR_BEGIN(PSI_Message_List_t)
  1868. M_REC_TARRAY (PSI_Message_List_t, PSI_Message[0], PSI_Message_t, Count_PSI_Message),
  1869. M_FIXED (PSI_Message_List_t, 1, 0x00),
  1870. M_UINT (PSI_Message_List_t, ADDITIONAL_MSG_TYPE, 1, &hf_additional_msg_type),
  1871. CSN_DESCR_END (PSI_Message_List_t)
  1872. static const
  1873. CSN_DESCR_BEGIN(Unknown_PSI_Message_List_t)
  1874. M_FIXED (Unknown_PSI_Message_List_t, 1, 0x00),
  1875. M_UINT (Unknown_PSI_Message_List_t, ADDITIONAL_MSG_TYPE, 1, &hf_dl_message_type),
  1876. CSN_DESCR_END (Unknown_PSI_Message_List_t)
  1877. static const
  1878. CSN_DESCR_BEGIN(Packet_PSI_Status_t)
  1879. /* Mac header */
  1880. M_UINT (Packet_PSI_Status_t, PayloadType, 2, &hf_ul_payload_type),
  1881. M_UINT (Packet_PSI_Status_t, spare, 5, &hf_ul_mac_header_spare),
  1882. M_UINT (Packet_PSI_Status_t, R, 1, &hf_ul_retry),
  1883. M_UINT (Packet_PSI_Status_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  1884. /* Mac header */
  1885. M_TYPE (Packet_PSI_Status_t, Global_TFI, Global_TFI_t),
  1886. M_UINT (Packet_PSI_Status_t, PBCCH_CHANGE_MARK, 3, &hf_packet_psi_status_pbcch_change_mark),
  1887. M_TYPE (Packet_PSI_Status_t, PSI_Message_List, PSI_Message_List_t),
  1888. M_TYPE (Packet_PSI_Status_t, Unknown_PSI_Message_List, Unknown_PSI_Message_List_t),
  1889. M_PADDING_BITS(Packet_PSI_Status_t),
  1890. CSN_DESCR_END (Packet_PSI_Status_t)
  1891. /* < Packet SI Status message content > */
  1892. static const
  1893. CSN_DESCR_BEGIN(SI_Message_t)
  1894. M_UINT (SI_Message_t, SI_MESSAGE_TYPE, 8, &hf_dl_message_type),
  1895. M_UINT (SI_Message_t, MESS_REC, 2, &hf_si_message_mess_rec),
  1896. CSN_DESCR_END (SI_Message_t)
  1897. static const
  1898. CSN_DESCR_BEGIN(SI_Message_List_t)
  1899. M_REC_TARRAY (SI_Message_List_t, SI_Message[0], SI_Message_t, Count_SI_Message),
  1900. M_FIXED (SI_Message_List_t, 1, 0x00),
  1901. M_UINT (SI_Message_List_t, ADDITIONAL_MSG_TYPE, 1, &hf_additional_msg_type),
  1902. CSN_DESCR_END (SI_Message_List_t)
  1903. static const
  1904. CSN_DESCR_BEGIN(Unknown_SI_Message_List_t)
  1905. M_FIXED (Unknown_SI_Message_List_t, 1, 0x00),
  1906. M_UINT (Unknown_SI_Message_List_t, ADDITIONAL_MSG_TYPE, 1, &hf_additional_msg_type),
  1907. CSN_DESCR_END (Unknown_SI_Message_List_t)
  1908. static const
  1909. CSN_DESCR_BEGIN(Packet_SI_Status_t)
  1910. /* Mac header */
  1911. M_UINT (Packet_SI_Status_t, PayloadType, 2, &hf_ul_payload_type),
  1912. M_UINT (Packet_SI_Status_t, spare, 5, &hf_ul_mac_header_spare),
  1913. M_UINT (Packet_SI_Status_t, R, 1, &hf_ul_retry),
  1914. M_UINT (Packet_SI_Status_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  1915. /* Mac header */
  1916. M_TYPE (Packet_SI_Status_t, Global_TFI, Global_TFI_t),
  1917. M_UINT (Packet_SI_Status_t, BCCH_CHANGE_MARK, 3, &hf_bcch_change_mark),
  1918. M_TYPE (Packet_SI_Status_t, SI_Message_List, SI_Message_List_t),
  1919. M_TYPE (Packet_SI_Status_t, Unknown_SI_Message_List, Unknown_SI_Message_List_t),
  1920. M_PADDING_BITS(Packet_SI_Status_t),
  1921. CSN_DESCR_END (Packet_SI_Status_t)
  1922. /* < Packet Downlink Ack/Nack message content > */
  1923. static const
  1924. CSN_DESCR_BEGIN(PD_AckNack_AdditionsR99_t)
  1925. M_NEXT_EXIST (PD_AckNack_AdditionsR99_t, Exist_PFI, 1),
  1926. M_UINT (PD_AckNack_AdditionsR99_t, PFI, 7, &hf_pfi),
  1927. CSN_DESCR_END (PD_AckNack_AdditionsR99_t)
  1928. static const
  1929. CSN_DESCR_BEGIN (Packet_Downlink_Ack_Nack_t)
  1930. M_UINT (Packet_Downlink_Ack_Nack_t, PayloadType, 2, &hf_ul_payload_type),
  1931. M_UINT (Packet_Downlink_Ack_Nack_t, spare, 5, &hf_ul_mac_header_spare),
  1932. M_UINT (Packet_Downlink_Ack_Nack_t, R, 1, &hf_ul_retry),
  1933. M_UINT (Packet_Downlink_Ack_Nack_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  1934. M_UINT (Packet_Downlink_Ack_Nack_t, DOWNLINK_TFI, 5, &hf_downlink_tfi),
  1935. M_TYPE (Packet_Downlink_Ack_Nack_t, Ack_Nack_Description, Ack_Nack_Description_t),
  1936. M_NEXT_EXIST (Packet_Downlink_Ack_Nack_t, Exist_Channel_Request_Description, 1),
  1937. M_TYPE (Packet_Downlink_Ack_Nack_t, Channel_Request_Description, Channel_Request_Description_t),
  1938. M_TYPE (Packet_Downlink_Ack_Nack_t, Channel_Quality_Report, Channel_Quality_Report_t),
  1939. M_NEXT_EXIST_OR_NULL(Packet_Downlink_Ack_Nack_t, Exist_AdditionsR99, 1),
  1940. M_TYPE (Packet_Downlink_Ack_Nack_t, AdditionsR99, PD_AckNack_AdditionsR99_t),
  1941. M_PADDING_BITS (Packet_Downlink_Ack_Nack_t),
  1942. CSN_DESCR_END (Packet_Downlink_Ack_Nack_t)
  1943. /* < EGPRS Packet Downlink Ack/Nack message content > */
  1944. static const
  1945. CSN_DESCR_BEGIN(EGPRS_ChannelQualityReport_t)
  1946. M_TYPE (EGPRS_ChannelQualityReport_t, EGPRS_BEP_LinkQualityMeasurements, EGPRS_BEP_LinkQualityMeasurements_t),
  1947. M_UINT (EGPRS_ChannelQualityReport_t, C_VALUE, 6, &hf_egprs_channelqualityreport_c_value),
  1948. M_TYPE (EGPRS_ChannelQualityReport_t, EGPRS_TimeslotLinkQualityMeasurements, EGPRS_TimeslotLinkQualityMeasurements_t),
  1949. CSN_DESCR_END (EGPRS_ChannelQualityReport_t)
  1950. static const
  1951. CSN_DESCR_BEGIN(EGPRS_PD_AckNack_t)
  1952. /* M_CALLBACK (EGPRS_PD_AckNack_t, (void*)21, IsSupported, IsSupported), */
  1953. M_UINT (EGPRS_PD_AckNack_t, PayloadType, 2, &hf_ul_payload_type),
  1954. M_UINT (EGPRS_PD_AckNack_t, spare, 5, &hf_ul_mac_header_spare),
  1955. M_UINT (EGPRS_PD_AckNack_t, R, 1, &hf_ul_retry),
  1956. M_UINT (EGPRS_PD_AckNack_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  1957. M_UINT (EGPRS_PD_AckNack_t, DOWNLINK_TFI, 5, &hf_downlink_tfi),
  1958. M_UINT (EGPRS_PD_AckNack_t, MS_OUT_OF_MEMORY, 1, &hf_egprs_pd_acknack_ms_out_of_memory),
  1959. M_NEXT_EXIST (EGPRS_PD_AckNack_t, Exist_EGPRS_ChannelQualityReport, 1),
  1960. M_TYPE (EGPRS_PD_AckNack_t, EGPRS_ChannelQualityReport, EGPRS_ChannelQualityReport_t),
  1961. M_NEXT_EXIST (EGPRS_PD_AckNack_t, Exist_ChannelRequestDescription, 1),
  1962. M_TYPE (EGPRS_PD_AckNack_t, ChannelRequestDescription, Channel_Request_Description_t),
  1963. M_NEXT_EXIST (EGPRS_PD_AckNack_t, Exist_PFI, 1),
  1964. M_UINT (EGPRS_PD_AckNack_t, PFI, 7, &hf_pfi),
  1965. M_NEXT_EXIST (EGPRS_PD_AckNack_t, Exist_ExtensionBits, 1),
  1966. M_TYPE (EGPRS_PD_AckNack_t, ExtensionBits, Extension_Bits_t),
  1967. M_TYPE (EGPRS_PD_AckNack_t, EGPRS_AckNack, EGPRS_AckNack_t),
  1968. /* M_CALLBACK (EGPRS_PD_AckNack_t, (void*)24, EGPRS_AckNack, EGPRS_AckNack), */
  1969. M_PADDING_BITS(EGPRS_PD_AckNack_t),
  1970. CSN_DESCR_END (EGPRS_PD_AckNack_t)
  1971. static const
  1972. CSN_DESCR_BEGIN(FDD_Target_Cell_t)
  1973. M_UINT (FDD_Target_Cell_t, FDD_ARFCN, 14, &hf_fddarget_cell_t_fdd_arfcn),
  1974. M_UINT (FDD_Target_Cell_t, DIVERSITY, 1, &hf_fddarget_cell_t_diversity),
  1975. M_NEXT_EXIST (FDD_Target_Cell_t, Exist_Bandwith_FDD, 1),
  1976. M_UINT (FDD_Target_Cell_t, BANDWITH_FDD, 3, &hf_fddarget_cell_t_bandwith_fdd),
  1977. M_UINT (FDD_Target_Cell_t, SCRAMBLING_CODE, 9, &hf_fddarget_cell_t_scrambling_code),
  1978. CSN_DESCR_END (FDD_Target_Cell_t)
  1979. static const
  1980. CSN_DESCR_BEGIN(TDD_Target_Cell_t)
  1981. M_UINT (TDD_Target_Cell_t, TDD_ARFCN, 14, &hf_tddarget_cell_t_tdd_arfcn),
  1982. M_UINT (TDD_Target_Cell_t, DIVERSITY_TDD, 1, &hf_tddarget_cell_t_diversity),
  1983. M_NEXT_EXIST (TDD_Target_Cell_t, Exist_Bandwith_TDD, 1),
  1984. M_UINT (TDD_Target_Cell_t, BANDWITH_TDD, 3, &hf_tddarget_cell_t_bandwith_tdd),
  1985. M_UINT (TDD_Target_Cell_t, CELL_PARAMETER, 7, &hf_tddarget_cell_t_cell_parameter),
  1986. M_UINT (TDD_Target_Cell_t, Sync_Case_TSTD, 1, &hf_tddarget_cell_t_sync_case_tstd),
  1987. CSN_DESCR_END (TDD_Target_Cell_t)
  1988. static const
  1989. CSN_DESCR_BEGIN(EUTRAN_Target_Cell_t)
  1990. M_UINT (EUTRAN_Target_Cell_t, EARFCN, 16, &hf_target_cell_eutran_earfcn),
  1991. M_NEXT_EXIST (EUTRAN_Target_Cell_t, Exist_Measurement_Bandwidth, 1),
  1992. M_UINT (EUTRAN_Target_Cell_t, Measurement_Bandwidth, 3, &hf_target_cell_eutran_measurement_bandwidth),
  1993. M_UINT (EUTRAN_Target_Cell_t, Physical_Layer_Cell_Identity, 9, &hf_target_cell_eutran_pl_cell_id),
  1994. CSN_DESCR_END (EUTRAN_Target_Cell_t)
  1995. static const
  1996. CSN_DESCR_BEGIN(UTRAN_CSG_Target_Cell_t)
  1997. M_UINT (UTRAN_CSG_Target_Cell_t, UTRAN_CI, 28, &hf_utran_csg_target_cell_ci),
  1998. M_NEXT_EXIST (UTRAN_CSG_Target_Cell_t, Exist_PLMN_ID, 1),
  1999. M_TYPE (UTRAN_CSG_Target_Cell_t, PLMN_ID, PLMN_t),
  2000. CSN_DESCR_END (UTRAN_CSG_Target_Cell_t)
  2001. static const
  2002. CSN_DESCR_BEGIN(EUTRAN_CSG_Target_Cell_t)
  2003. M_UINT (EUTRAN_CSG_Target_Cell_t, EUTRAN_CI, 28, &hf_eutran_csg_target_cell_ci),
  2004. M_UINT (EUTRAN_CSG_Target_Cell_t, Tracking_Area_Code, 16, &hf_eutran_csg_target_cell_tac),
  2005. M_NEXT_EXIST (EUTRAN_CSG_Target_Cell_t, Exist_PLMN_ID, 1),
  2006. M_TYPE (EUTRAN_CSG_Target_Cell_t, PLMN_ID, PLMN_t),
  2007. CSN_DESCR_END (EUTRAN_CSG_Target_Cell_t)
  2008. static const
  2009. CSN_DESCR_BEGIN(PCCF_AdditionsR9_t)
  2010. M_NEXT_EXIST (PCCF_AdditionsR9_t, Exist_UTRAN_CSG_Target_Cell, 1),
  2011. M_TYPE (PCCF_AdditionsR9_t, UTRAN_CSG_Target_Cell, UTRAN_CSG_Target_Cell_t),
  2012. M_NEXT_EXIST (PCCF_AdditionsR9_t, Exist_EUTRAN_CSG_Target_Cell, 1),
  2013. M_TYPE (PCCF_AdditionsR9_t, EUTRAN_CSG_Target_Cell, EUTRAN_CSG_Target_Cell_t),
  2014. CSN_DESCR_END (PCCF_AdditionsR9_t)
  2015. static const
  2016. CSN_DESCR_BEGIN(PCCF_AdditionsR8_t)
  2017. M_NEXT_EXIST (PCCF_AdditionsR8_t, Exist_EUTRAN_Target_Cell, 1),
  2018. M_TYPE (PCCF_AdditionsR8_t, EUTRAN_Target_Cell, EUTRAN_Target_Cell_t),
  2019. M_NEXT_EXIST_OR_NULL(PCCF_AdditionsR8_t, Exist_AdditionsR9, 1),
  2020. M_TYPE (PCCF_AdditionsR8_t, AdditionsR9, PCCF_AdditionsR9_t),
  2021. CSN_DESCR_END (PCCF_AdditionsR8_t)
  2022. static const
  2023. CSN_DESCR_BEGIN(PCCF_AdditionsR5_t)
  2024. M_NEXT_EXIST (PCCF_AdditionsR5_t, Exist_G_RNTI_extention, 1),
  2025. M_UINT (PCCF_AdditionsR5_t, G_RNTI_extention, 4, &hf_pmo_additionsr5_grnti),
  2026. M_NEXT_EXIST_OR_NULL(PCCF_AdditionsR5_t, Exist_AdditionsR8, 1),
  2027. M_TYPE (PCCF_AdditionsR5_t, AdditionsR8, PCCF_AdditionsR8_t),
  2028. CSN_DESCR_END (PCCF_AdditionsR5_t)
  2029. static const
  2030. CSN_DESCR_BEGIN(PCCF_AdditionsR99_t)
  2031. M_NEXT_EXIST (PCCF_AdditionsR99_t, Exist_FDD_Description, 1),
  2032. M_TYPE (PCCF_AdditionsR99_t, FDD_Target_Cell, FDD_Target_Cell_t),
  2033. M_NEXT_EXIST (PCCF_AdditionsR99_t, Exist_TDD_Description, 1),
  2034. M_TYPE (PCCF_AdditionsR99_t, TDD_Target_Cell, TDD_Target_Cell_t),
  2035. M_NEXT_EXIST_OR_NULL(PCCF_AdditionsR99_t, Exist_AdditionsR5, 1),
  2036. M_TYPE (PCCF_AdditionsR99_t, AdditionsR5, PCCF_AdditionsR5_t),
  2037. CSN_DESCR_END (PCCF_AdditionsR99_t)
  2038. /* < Packet Cell Change Failure message content > */
  2039. static const
  2040. CSN_DESCR_BEGIN(Packet_Cell_Change_Failure_t)
  2041. /* Mac header */
  2042. M_UINT (Packet_Cell_Change_Failure_t, PayloadType, 2, &hf_ul_payload_type),
  2043. M_UINT (Packet_Cell_Change_Failure_t, spare, 5, &hf_ul_mac_header_spare),
  2044. M_UINT (Packet_Cell_Change_Failure_t, R, 1, &hf_ul_retry),
  2045. M_UINT (Packet_Cell_Change_Failure_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  2046. /* Mac header */
  2047. M_UINT (Packet_Cell_Change_Failure_t, TLLI, 32, &hf_tlli),
  2048. M_UINT (Packet_Cell_Change_Failure_t, ARFCN, 10, &hf_arfcn),
  2049. M_UINT (Packet_Cell_Change_Failure_t, BSIC, 6, &hf_packet_cell_change_failure_bsic),
  2050. M_UINT (Packet_Cell_Change_Failure_t, CAUSE, 4, &hf_packet_cell_change_failure_cause),
  2051. M_NEXT_EXIST_OR_NULL (Packet_Cell_Change_Failure_t, Exist_AdditionsR99, 1),
  2052. M_TYPE (Packet_Cell_Change_Failure_t, AdditionsR99, PCCF_AdditionsR99_t),
  2053. M_PADDING_BITS (Packet_Cell_Change_Failure_t),
  2054. CSN_DESCR_END (Packet_Cell_Change_Failure_t)
  2055. /* < Packet Uplink Ack/Nack message content > */
  2056. static const
  2057. CSN_DESCR_BEGIN(Power_Control_Parameters_t)
  2058. M_UINT (Power_Control_Parameters_t, ALPHA, 4, &hf_alpha),
  2059. M_NEXT_EXIST (Power_Control_Parameters_t, Slot[0].Exist, 1),
  2060. M_UINT (Power_Control_Parameters_t, Slot[0].GAMMA_TN, 5, &hf_gamma),
  2061. M_NEXT_EXIST (Power_Control_Parameters_t, Slot[1].Exist, 1),
  2062. M_UINT (Power_Control_Parameters_t, Slot[1].GAMMA_TN, 5, &hf_gamma),
  2063. M_NEXT_EXIST (Power_Control_Parameters_t, Slot[2].Exist, 1),
  2064. M_UINT (Power_Control_Parameters_t, Slot[2].GAMMA_TN, 5, &hf_gamma),
  2065. M_NEXT_EXIST (Power_Control_Parameters_t, Slot[3].Exist, 1),
  2066. M_UINT (Power_Control_Parameters_t, Slot[3].GAMMA_TN, 5, &hf_gamma),
  2067. M_NEXT_EXIST (Power_Control_Parameters_t, Slot[4].Exist, 1),
  2068. M_UINT (Power_Control_Parameters_t, Slot[4].GAMMA_TN, 5, &hf_gamma),
  2069. M_NEXT_EXIST (Power_Control_Parameters_t, Slot[5].Exist, 1),
  2070. M_UINT (Power_Control_Parameters_t, Slot[5].GAMMA_TN, 5, &hf_gamma),
  2071. M_NEXT_EXIST (Power_Control_Parameters_t, Slot[6].Exist, 1),
  2072. M_UINT (Power_Control_Parameters_t, Slot[6].GAMMA_TN, 5, &hf_gamma),
  2073. M_NEXT_EXIST (Power_Control_Parameters_t, Slot[7].Exist, 1),
  2074. M_UINT (Power_Control_Parameters_t, Slot[7].GAMMA_TN, 5, &hf_gamma),
  2075. CSN_DESCR_END (Power_Control_Parameters_t)
  2076. static const
  2077. CSN_DESCR_BEGIN(PU_AckNack_GPRS_AdditionsR99_t)
  2078. M_NEXT_EXIST (PU_AckNack_GPRS_AdditionsR99_t, Exist_PacketExtendedTimingAdvance, 1),
  2079. M_UINT (PU_AckNack_GPRS_AdditionsR99_t, PacketExtendedTimingAdvance, 2, &hf_packet_extended_timing_advance),
  2080. M_UINT (PU_AckNack_GPRS_AdditionsR99_t, TBF_EST, 1, &hf_pu_acknack_gprs_additionsr99_tbf_est),
  2081. CSN_DESCR_END (PU_AckNack_GPRS_AdditionsR99_t)
  2082. static const
  2083. CSN_DESCR_BEGIN (PU_AckNack_GPRS_t)
  2084. M_UINT (PU_AckNack_GPRS_t, CHANNEL_CODING_COMMAND, 2, &hf_gprs_channel_coding_command),
  2085. M_TYPE (PU_AckNack_GPRS_t, Ack_Nack_Description, Ack_Nack_Description_t),
  2086. M_NEXT_EXIST (PU_AckNack_GPRS_t, Common_Uplink_Ack_Nack_Data.Exist_CONTENTION_RESOLUTION_TLLI, 1),
  2087. M_UINT (PU_AckNack_GPRS_t, Common_Uplink_Ack_Nack_Data.CONTENTION_RESOLUTION_TLLI, 32, &hf_tlli),
  2088. M_NEXT_EXIST (PU_AckNack_GPRS_t, Common_Uplink_Ack_Nack_Data.Exist_Packet_Timing_Advance, 1),
  2089. M_TYPE (PU_AckNack_GPRS_t, Common_Uplink_Ack_Nack_Data.Packet_Timing_Advance, Packet_Timing_Advance_t),
  2090. M_NEXT_EXIST (PU_AckNack_GPRS_t, Common_Uplink_Ack_Nack_Data.Exist_Power_Control_Parameters, 1),
  2091. M_TYPE (PU_AckNack_GPRS_t, Common_Uplink_Ack_Nack_Data.Power_Control_Parameters, Power_Control_Parameters_t),
  2092. M_NEXT_EXIST (PU_AckNack_GPRS_t, Common_Uplink_Ack_Nack_Data.Exist_Extension_Bits, 1),
  2093. M_TYPE (PU_AckNack_GPRS_t, Common_Uplink_Ack_Nack_Data.Extension_Bits, Extension_Bits_t),
  2094. M_UNION (PU_AckNack_GPRS_t, 2), /* Fixed Allocation was removed */
  2095. M_UINT (PU_AckNack_GPRS_t, u.FixedAllocationDummy, 1, &hf_pu_acknack_gprs_fixedallocationdummy),
  2096. CSN_ERROR (PU_AckNack_GPRS_t, "01 <Fixed Allocation>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2097. M_NEXT_EXIST_OR_NULL(PU_AckNack_GPRS_t, Exist_AdditionsR99, 1),
  2098. M_TYPE (PU_AckNack_GPRS_t, AdditionsR99, PU_AckNack_GPRS_AdditionsR99_t),
  2099. CSN_DESCR_END (PU_AckNack_GPRS_t)
  2100. static const
  2101. CSN_DESCR_BEGIN(PU_AckNack_EGPRS_00_t)
  2102. M_UINT (PU_AckNack_EGPRS_00_t, EGPRS_ChannelCodingCommand, 4, &hf_egprs_channel_coding_command),
  2103. M_UINT (PU_AckNack_EGPRS_00_t, RESEGMENT, 1, &hf_resegment),
  2104. M_UINT (PU_AckNack_EGPRS_00_t, PRE_EMPTIVE_TRANSMISSION, 1, &hf_pu_acknack_egprs_00_pre_emptive_transmission),
  2105. M_UINT (PU_AckNack_EGPRS_00_t, PRR_RETRANSMISSION_REQUEST, 1, &hf_pu_acknack_egprs_00_prr_retransmission_request),
  2106. M_UINT (PU_AckNack_EGPRS_00_t, ARAC_RETRANSMISSION_REQUEST, 1, &hf_pu_acknack_egprs_00_arac_retransmission_request),
  2107. M_NEXT_EXIST (PU_AckNack_EGPRS_00_t, Common_Uplink_Ack_Nack_Data.Exist_CONTENTION_RESOLUTION_TLLI, 1),
  2108. M_UINT (PU_AckNack_EGPRS_00_t, Common_Uplink_Ack_Nack_Data.CONTENTION_RESOLUTION_TLLI, 32, &hf_tlli),
  2109. M_UINT (PU_AckNack_EGPRS_00_t, TBF_EST, 1, &hf_pu_acknack_egprs_00_tbf_est),
  2110. M_NEXT_EXIST (PU_AckNack_EGPRS_00_t, Common_Uplink_Ack_Nack_Data.Exist_Packet_Timing_Advance, 1),
  2111. M_TYPE (PU_AckNack_EGPRS_00_t, Common_Uplink_Ack_Nack_Data.Packet_Timing_Advance, Packet_Timing_Advance_t),
  2112. M_NEXT_EXIST (PU_AckNack_EGPRS_00_t, Exist_Packet_Extended_Timing_Advance, 1),
  2113. M_UINT (PU_AckNack_EGPRS_00_t, Packet_Extended_Timing_Advance, 2, &hf_packet_extended_timing_advance),
  2114. M_NEXT_EXIST (PU_AckNack_EGPRS_00_t, Common_Uplink_Ack_Nack_Data.Exist_Power_Control_Parameters, 1),
  2115. M_TYPE (PU_AckNack_EGPRS_00_t, Common_Uplink_Ack_Nack_Data.Power_Control_Parameters, Power_Control_Parameters_t),
  2116. M_NEXT_EXIST (PU_AckNack_EGPRS_00_t, Common_Uplink_Ack_Nack_Data.Exist_Extension_Bits, 1),
  2117. M_TYPE (PU_AckNack_EGPRS_00_t, Common_Uplink_Ack_Nack_Data.Extension_Bits, Extension_Bits_t),
  2118. M_TYPE (PU_AckNack_EGPRS_00_t, EGPRS_AckNack, EGPRS_AckNack_t),
  2119. /* M_CALLBACK (PU_AckNack_EGPRS_00_t, (void*)24, EGPRS_AckNack, EGPRS_AckNack), */
  2120. CSN_DESCR_END (PU_AckNack_EGPRS_00_t)
  2121. static const
  2122. CSN_DESCR_BEGIN(PU_AckNack_EGPRS_t)
  2123. /* M_CALLBACK (PU_AckNack_EGPRS_t, (void*)21, IsSupported, IsSupported), */
  2124. M_UNION (PU_AckNack_EGPRS_t, 4),
  2125. M_TYPE (PU_AckNack_EGPRS_t, u.PU_AckNack_EGPRS_00, PU_AckNack_EGPRS_00_t),
  2126. CSN_ERROR (PU_AckNack_EGPRS_t, "01 <PU_AckNack_EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2127. CSN_ERROR (PU_AckNack_EGPRS_t, "10 <PU_AckNack_EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2128. CSN_ERROR (PU_AckNack_EGPRS_t, "11 <PU_AckNack_EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2129. CSN_DESCR_END (PU_AckNack_EGPRS_t)
  2130. static const
  2131. CSN_DESCR_BEGIN(Packet_Uplink_Ack_Nack_t)
  2132. M_UINT (Packet_Uplink_Ack_Nack_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2133. M_UINT (Packet_Uplink_Ack_Nack_t, PAGE_MODE, 2, &hf_page_mode),
  2134. M_FIXED (Packet_Uplink_Ack_Nack_t, 2, 0x00),
  2135. M_UINT (Packet_Uplink_Ack_Nack_t, UPLINK_TFI, 5, &hf_uplink_tfi),
  2136. M_UNION (Packet_Uplink_Ack_Nack_t, 2),
  2137. M_TYPE (Packet_Uplink_Ack_Nack_t, u.PU_AckNack_GPRS_Struct, PU_AckNack_GPRS_t),
  2138. M_TYPE (Packet_Uplink_Ack_Nack_t, u.PU_AckNack_EGPRS_Struct, PU_AckNack_EGPRS_t),
  2139. M_PADDING_BITS(Packet_Uplink_Ack_Nack_t ),
  2140. CSN_DESCR_END (Packet_Uplink_Ack_Nack_t)
  2141. /* < Packet Uplink Assignment message content > */
  2142. static const
  2143. CSN_DESCR_BEGIN(CHANGE_MARK_t)
  2144. M_UINT (CHANGE_MARK_t, CHANGE_MARK_1, 2, &hf_change_mark_change_mark_1),
  2145. M_NEXT_EXIST (CHANGE_MARK_t, Exist_CHANGE_MARK_2, 1),
  2146. M_UINT (CHANGE_MARK_t, CHANGE_MARK_2, 2, &hf_change_mark_change_mark_2),
  2147. CSN_DESCR_END (CHANGE_MARK_t)
  2148. static const
  2149. CSN_DESCR_BEGIN(Indirect_encoding_t)
  2150. M_UINT (Indirect_encoding_t, MAIO, 6, &hf_maio),
  2151. M_UINT (Indirect_encoding_t, MA_NUMBER, 4, &hf_indirect_encoding_ma_number),
  2152. M_NEXT_EXIST (Indirect_encoding_t, Exist_CHANGE_MARK, 1),
  2153. M_TYPE (Indirect_encoding_t, CHANGE_MARK, CHANGE_MARK_t),
  2154. CSN_DESCR_END (Indirect_encoding_t)
  2155. static const
  2156. CSN_DESCR_BEGIN(Direct_encoding_1_t)
  2157. M_UINT (Direct_encoding_1_t, MAIO, 6, &hf_maio),
  2158. M_TYPE (Direct_encoding_1_t, GPRS_Mobile_Allocation, GPRS_Mobile_Allocation_t),
  2159. CSN_DESCR_END (Direct_encoding_1_t)
  2160. static const
  2161. CSN_DESCR_BEGIN(Direct_encoding_2_t)
  2162. M_UINT (Direct_encoding_2_t, MAIO, 6, &hf_maio),
  2163. M_UINT (Direct_encoding_2_t, HSN, 6, &hf_hsn),
  2164. M_UINT_OFFSET(Direct_encoding_2_t, Length_of_MA_Frequency_List, 4, 3),
  2165. M_VAR_ARRAY (Direct_encoding_2_t, MA_Frequency_List, Length_of_MA_Frequency_List, 0),
  2166. CSN_DESCR_END (Direct_encoding_2_t)
  2167. static const
  2168. CSN_DESCR_BEGIN(Frequency_Parameters_t)
  2169. M_UINT (Frequency_Parameters_t, TSC, 3, &hf_tsc),
  2170. M_UNION (Frequency_Parameters_t, 4),
  2171. M_UINT (Frequency_Parameters_t, u.ARFCN, 10, &hf_arfcn),
  2172. M_TYPE (Frequency_Parameters_t, u.Indirect_encoding, Indirect_encoding_t),
  2173. M_TYPE (Frequency_Parameters_t, u.Direct_encoding_1, Direct_encoding_1_t),
  2174. M_TYPE (Frequency_Parameters_t, u.Direct_encoding_2, Direct_encoding_2_t),
  2175. CSN_DESCR_END (Frequency_Parameters_t)
  2176. static const
  2177. CSN_DESCR_BEGIN(Packet_Request_Reference_t)
  2178. M_UINT (Packet_Request_Reference_t, RANDOM_ACCESS_INFORMATION, 11, &hf_packet_request_reference_random_access_information),
  2179. M_UINT_ARRAY (Packet_Request_Reference_t, FRAME_NUMBER, 8, 2),
  2180. CSN_DESCR_END (Packet_Request_Reference_t)
  2181. static const
  2182. CSN_DESCR_BEGIN(Timeslot_Allocation_t)
  2183. M_NEXT_EXIST (Timeslot_Allocation_t, Exist, 1),
  2184. M_UINT (Timeslot_Allocation_t, USF_TN, 3, &hf_timeslot_allocation_usf_tn),
  2185. CSN_DESCR_END (Timeslot_Allocation_t)
  2186. static const
  2187. CSN_DESCR_BEGIN(Timeslot_Allocation_Power_Ctrl_Param_t)
  2188. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, ALPHA, 4, &hf_alpha),
  2189. M_NEXT_EXIST (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[0].Exist, 2),
  2190. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[0].USF_TN, 3, &hf_usf),
  2191. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[0].GAMMA_TN, 5, &hf_gamma),
  2192. M_NEXT_EXIST (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[1].Exist, 2),
  2193. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[1].USF_TN, 3, &hf_usf),
  2194. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[1].GAMMA_TN, 5, &hf_gamma),
  2195. M_NEXT_EXIST (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[2].Exist, 2),
  2196. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[2].USF_TN, 3, &hf_usf),
  2197. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[2].GAMMA_TN, 5, &hf_gamma),
  2198. M_NEXT_EXIST (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[3].Exist, 2),
  2199. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[3].USF_TN, 3, &hf_usf),
  2200. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[3].GAMMA_TN, 5, &hf_gamma),
  2201. M_NEXT_EXIST (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[4].Exist, 2),
  2202. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[4].USF_TN, 3, &hf_usf),
  2203. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[4].GAMMA_TN, 5, &hf_gamma),
  2204. M_NEXT_EXIST (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[5].Exist, 2),
  2205. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[5].USF_TN, 3, &hf_usf),
  2206. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[5].GAMMA_TN, 5, &hf_gamma),
  2207. M_NEXT_EXIST (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[6].Exist, 2),
  2208. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[6].USF_TN, 3, &hf_usf),
  2209. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[6].GAMMA_TN, 5, &hf_gamma),
  2210. M_NEXT_EXIST (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[7].Exist, 2),
  2211. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[7].USF_TN, 3, &hf_usf),
  2212. M_UINT (Timeslot_Allocation_Power_Ctrl_Param_t, Slot[7].GAMMA_TN, 5, &hf_gamma),
  2213. CSN_DESCR_END (Timeslot_Allocation_Power_Ctrl_Param_t)
  2214. /* USED in <Packet Uplink Assignment message content> */
  2215. static const
  2216. CSN_DESCR_BEGIN(Dynamic_Allocation_t)
  2217. M_UINT (Dynamic_Allocation_t, Extended_Dynamic_Allocation, 1, &hf_extended_dynamic_allocation),
  2218. M_NEXT_EXIST (Dynamic_Allocation_t, Exist_P0, 2),
  2219. M_UINT (Dynamic_Allocation_t, P0, 4, &hf_p0),
  2220. M_UINT (Dynamic_Allocation_t, PR_MODE, 1, &hf_pr_mode),
  2221. M_UINT (Dynamic_Allocation_t, USF_GRANULARITY, 1, &hf_usf_granularity),
  2222. M_NEXT_EXIST (Dynamic_Allocation_t, Exist_UPLINK_TFI_ASSIGNMENT, 1),
  2223. M_UINT (Dynamic_Allocation_t, UPLINK_TFI_ASSIGNMENT, 5, &hf_uplink_tfi),
  2224. M_NEXT_EXIST (Dynamic_Allocation_t, Exist_RLC_DATA_BLOCKS_GRANTED, 1),
  2225. M_UINT (Dynamic_Allocation_t, RLC_DATA_BLOCKS_GRANTED, 8, &hf_rlc_data_blocks_granted),
  2226. M_NEXT_EXIST (Dynamic_Allocation_t, Exist_TBF_Starting_Time, 1),
  2227. M_TYPE (Dynamic_Allocation_t, TBF_Starting_Time, Starting_Frame_Number_t),
  2228. M_UNION (Dynamic_Allocation_t, 2),
  2229. M_TYPE_ARRAY (Dynamic_Allocation_t, u.Timeslot_Allocation, Timeslot_Allocation_t, 8),
  2230. M_TYPE (Dynamic_Allocation_t, u.Timeslot_Allocation_Power_Ctrl_Param, Timeslot_Allocation_Power_Ctrl_Param_t),
  2231. CSN_DESCR_END (Dynamic_Allocation_t)
  2232. static const
  2233. CSN_DESCR_BEGIN(Single_Block_Allocation_t)
  2234. M_UINT (Single_Block_Allocation_t, TIMESLOT_NUMBER, 3, &hf_single_block_allocation_timeslot_number),
  2235. M_NEXT_EXIST (Single_Block_Allocation_t, Exist_ALPHA_and_GAMMA_TN, 2),
  2236. M_UINT (Single_Block_Allocation_t, ALPHA, 4, &hf_alpha),
  2237. M_UINT (Single_Block_Allocation_t, GAMMA_TN, 5, &hf_gamma),
  2238. M_NEXT_EXIST (Single_Block_Allocation_t, Exist_P0, 3),
  2239. M_UINT (Single_Block_Allocation_t, P0, 4, &hf_p0),
  2240. M_UINT (Single_Block_Allocation_t, BTS_PWR_CTRL_MODE, 1, &hf_bts_pwr_ctrl_mode),
  2241. M_UINT (Single_Block_Allocation_t, PR_MODE, 1, &hf_pr_mode),
  2242. M_TYPE (Single_Block_Allocation_t, TBF_Starting_Time, Starting_Frame_Number_t),
  2243. CSN_DESCR_END (Single_Block_Allocation_t)
  2244. static const
  2245. CSN_DESCR_BEGIN(DTM_Dynamic_Allocation_t)
  2246. M_UINT (DTM_Dynamic_Allocation_t, Extended_Dynamic_Allocation, 1, &hf_extended_dynamic_allocation),
  2247. M_NEXT_EXIST (DTM_Dynamic_Allocation_t, Exist_P0, 2),
  2248. M_UINT (DTM_Dynamic_Allocation_t, P0, 4, &hf_p0),
  2249. M_UINT (DTM_Dynamic_Allocation_t, PR_MODE, 1, &hf_pr_mode),
  2250. M_UINT (DTM_Dynamic_Allocation_t, USF_GRANULARITY, 1, &hf_usf_granularity),
  2251. M_NEXT_EXIST (DTM_Dynamic_Allocation_t, Exist_UPLINK_TFI_ASSIGNMENT, 1),
  2252. M_UINT (DTM_Dynamic_Allocation_t, UPLINK_TFI_ASSIGNMENT, 5, &hf_uplink_tfi),
  2253. M_NEXT_EXIST (DTM_Dynamic_Allocation_t, Exist_RLC_DATA_BLOCKS_GRANTED, 1),
  2254. M_UINT (DTM_Dynamic_Allocation_t, RLC_DATA_BLOCKS_GRANTED, 8, &hf_rlc_data_blocks_granted),
  2255. M_UNION (DTM_Dynamic_Allocation_t, 2),
  2256. M_TYPE_ARRAY (DTM_Dynamic_Allocation_t, u.Timeslot_Allocation, Timeslot_Allocation_t, 8),
  2257. M_TYPE (DTM_Dynamic_Allocation_t, u.Timeslot_Allocation_Power_Ctrl_Param, Timeslot_Allocation_Power_Ctrl_Param_t),
  2258. CSN_DESCR_END (DTM_Dynamic_Allocation_t)
  2259. static const
  2260. CSN_DESCR_BEGIN(DTM_Single_Block_Allocation_t)
  2261. M_UINT (DTM_Single_Block_Allocation_t, TIMESLOT_NUMBER, 3, &hf_dtm_single_block_allocation_timeslot_number),
  2262. M_NEXT_EXIST (DTM_Single_Block_Allocation_t, Exist_ALPHA_and_GAMMA_TN, 2),
  2263. M_UINT (DTM_Single_Block_Allocation_t, ALPHA, 4, &hf_alpha),
  2264. M_UINT (DTM_Single_Block_Allocation_t, GAMMA_TN, 5, &hf_gamma),
  2265. M_NEXT_EXIST (DTM_Single_Block_Allocation_t, Exist_P0, 3),
  2266. M_UINT (DTM_Single_Block_Allocation_t, P0, 4, &hf_p0),
  2267. M_UINT (DTM_Single_Block_Allocation_t, BTS_PWR_CTRL_MODE, 1, &hf_bts_pwr_ctrl_mode),
  2268. M_UINT (DTM_Single_Block_Allocation_t, PR_MODE, 1, &hf_pr_mode),
  2269. CSN_DESCR_END (DTM_Single_Block_Allocation_t)
  2270. /* Help structures */
  2271. typedef struct
  2272. {
  2273. Global_TFI_t Global_TFI; /* 0 < Global TFI : < Global TFI IE > > */
  2274. } h0_Global_TFI_t;
  2275. static const
  2276. CSN_DESCR_BEGIN(h0_Global_TFI_t)
  2277. M_FIXED (h0_Global_TFI_t, 1, 0x00),
  2278. M_TYPE (h0_Global_TFI_t, Global_TFI, Global_TFI_t),
  2279. CSN_DESCR_END (h0_Global_TFI_t)
  2280. typedef struct
  2281. {
  2282. guint32 TLLI;/* | 10 < TLLI : bit (32) > */
  2283. } h10_TLLI_t;
  2284. static const
  2285. CSN_DESCR_BEGIN(h10_TLLI_t)
  2286. M_FIXED (h10_TLLI_t, 2, 0x02),
  2287. M_UINT (h10_TLLI_t, TLLI, 32, &hf_tlli),
  2288. CSN_DESCR_END (h10_TLLI_t)
  2289. typedef struct
  2290. {
  2291. guint16 TQI;/*| 110 < TQI : bit (16) > */
  2292. } h110_TQI_t;
  2293. static const
  2294. CSN_DESCR_BEGIN(h110_TQI_t)
  2295. M_FIXED (h110_TQI_t, 3, 0x06),
  2296. M_UINT (h110_TQI_t, TQI, 16, &hf_tqi),
  2297. CSN_DESCR_END (h110_TQI_t)
  2298. typedef struct
  2299. {
  2300. Packet_Request_Reference_t Packet_Request_Reference;/*| 111 < Packet Request Reference : < Packet Request Reference IE > > }*/
  2301. } h111_Packet_Request_Reference_t;
  2302. static const
  2303. CSN_DESCR_BEGIN(h111_Packet_Request_Reference_t)
  2304. M_FIXED (h111_Packet_Request_Reference_t, 3, 0x07),
  2305. M_TYPE (h111_Packet_Request_Reference_t, Packet_Request_Reference, Packet_Request_Reference_t),
  2306. CSN_DESCR_END (h111_Packet_Request_Reference_t)
  2307. static const
  2308. CSN_ChoiceElement_t PacketUplinkID[] =
  2309. {
  2310. {1, 0, 0, M_TYPE(PacketUplinkID_t, u.Global_TFI, Global_TFI_t)},
  2311. {2, 0x02, 0, M_UINT(PacketUplinkID_t, u.TLLI, 32, &hf_tlli)},
  2312. {3, 0x06, 0, M_UINT(PacketUplinkID_t, u.TQI, 16, &hf_tqi)},
  2313. {3, 0x07, 0, M_TYPE(PacketUplinkID_t, u.Packet_Request_Reference, Packet_Request_Reference_t)},
  2314. };
  2315. static const
  2316. CSN_DESCR_BEGIN(PacketUplinkID_t)
  2317. M_CHOICE (PacketUplinkID_t, UnionType, PacketUplinkID, ElementsOf(PacketUplinkID)),
  2318. CSN_DESCR_END (PacketUplinkID_t)
  2319. static const
  2320. CSN_DESCR_BEGIN(PUA_GPRS_AdditionsR99_t)
  2321. M_NEXT_EXIST (PUA_GPRS_AdditionsR99_t, Exist_Packet_Extended_Timing_Advance, 1),
  2322. M_UINT (PUA_GPRS_AdditionsR99_t, Packet_Extended_Timing_Advance, 2, &hf_packet_extended_timing_advance),
  2323. CSN_DESCR_END (PUA_GPRS_AdditionsR99_t)
  2324. static const
  2325. CSN_DESCR_BEGIN (PUA_GPRS_t)
  2326. M_UINT (PUA_GPRS_t, CHANNEL_CODING_COMMAND, 2, &hf_gprs_channel_coding_command),
  2327. M_UINT (PUA_GPRS_t, TLLI_BLOCK_CHANNEL_CODING, 1, &hf_tlli_block_channel_coding),
  2328. M_TYPE (PUA_GPRS_t, Packet_Timing_Advance, Packet_Timing_Advance_t),
  2329. M_NEXT_EXIST (PUA_GPRS_t, Exist_Frequency_Parameters, 1),
  2330. M_TYPE (PUA_GPRS_t, Frequency_Parameters, Frequency_Parameters_t),
  2331. M_UNION (PUA_GPRS_t, 4),
  2332. CSN_ERROR (PUA_GPRS_t, "00 <extension> not implemented", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2333. M_TYPE (PUA_GPRS_t, u.Dynamic_Allocation, Dynamic_Allocation_t),
  2334. M_TYPE (PUA_GPRS_t, u.Single_Block_Allocation, Single_Block_Allocation_t),
  2335. CSN_ERROR (PUA_GPRS_t, "11 <Fixed Allocation> not supported", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2336. M_NEXT_EXIST_OR_NULL(PUA_GPRS_t, Exist_AdditionsR99, 1),
  2337. M_TYPE (PUA_GPRS_t, AdditionsR99, PUA_GPRS_AdditionsR99_t),
  2338. CSN_DESCR_END (PUA_GPRS_t)
  2339. static const
  2340. CSN_DESCR_BEGIN(COMPACT_ReducedMA_t)
  2341. M_UINT (COMPACT_ReducedMA_t, BitmapLength, 7, &hf_compact_reducedma_bitmaplength),
  2342. M_VAR_BITMAP (COMPACT_ReducedMA_t, ReducedMA_Bitmap, BitmapLength, 0),
  2343. M_NEXT_EXIST (COMPACT_ReducedMA_t, Exist_MAIO_2, 1),
  2344. M_UINT (COMPACT_ReducedMA_t, MAIO_2, 6, &hf_maio),
  2345. CSN_DESCR_END (COMPACT_TeducedMA_t)
  2346. static const
  2347. CSN_DESCR_BEGIN(MultiBlock_Allocation_t)
  2348. M_UINT (MultiBlock_Allocation_t, TIMESLOT_NUMBER, 3, &hf_multiblock_allocation_timeslot_number),
  2349. M_NEXT_EXIST (MultiBlock_Allocation_t, Exist_ALPHA_GAMMA_TN, 2),
  2350. M_UINT (MultiBlock_Allocation_t, ALPHA, 4, &hf_alpha),
  2351. M_UINT (MultiBlock_Allocation_t, GAMMA_TN, 5, &hf_gamma),
  2352. M_NEXT_EXIST (MultiBlock_Allocation_t, Exist_P0_BTS_PWR_CTRL_PR_MODE, 3),
  2353. M_UINT (MultiBlock_Allocation_t, P0, 4, &hf_p0),
  2354. M_UINT (MultiBlock_Allocation_t, BTS_PWR_CTRL_MODE, 1, &hf_bts_pwr_ctrl_mode),
  2355. M_UINT (MultiBlock_Allocation_t, PR_MODE, 1, &hf_pr_mode),
  2356. M_TYPE (MultiBlock_Allocation_t, TBF_Starting_Time, Starting_Frame_Number_t),
  2357. M_UINT (MultiBlock_Allocation_t, NUMBER_OF_RADIO_BLOCKS_ALLOCATED, 2, &hf_nr_of_radio_blocks_allocated),
  2358. CSN_DESCR_END (MultiBlock_Allocation_t)
  2359. static const
  2360. CSN_DESCR_BEGIN (PUA_EGPRS_00_t)
  2361. M_NEXT_EXIST (PUA_EGPRS_00_t, Exist_CONTENTION_RESOLUTION_TLLI, 1),
  2362. M_UINT (PUA_EGPRS_00_t, CONTENTION_RESOLUTION_TLLI, 32, &hf_tlli),
  2363. M_NEXT_EXIST (PUA_EGPRS_00_t, Exist_COMPACT_ReducedMA, 1),
  2364. M_TYPE (PUA_EGPRS_00_t, COMPACT_ReducedMA, COMPACT_ReducedMA_t),
  2365. M_UINT (PUA_EGPRS_00_t, EGPRS_CHANNEL_CODING_COMMAND, 4, &hf_egprs_channel_coding_command),
  2366. M_UINT (PUA_EGPRS_00_t, RESEGMENT, 1, &hf_resegment),
  2367. M_UINT (PUA_EGPRS_00_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  2368. M_REC_ARRAY (PUA_EGPRS_00_t, AccessTechnologyType, NrOfAccessTechnologies, 4),
  2369. M_UINT (PUA_EGPRS_00_t, ARAC_RETRANSMISSION_REQUEST, 1, &hf_pua_egprs_00_arac_retransmission_request),
  2370. M_UINT (PUA_EGPRS_00_t, TLLI_BLOCK_CHANNEL_CODING, 1, &hf_tlli_block_channel_coding),
  2371. M_NEXT_EXIST (PUA_EGPRS_00_t, Exist_BEP_PERIOD2, 1),
  2372. M_UINT (PUA_EGPRS_00_t, BEP_PERIOD2, 4, &hf_bep_period2),
  2373. M_TYPE (PUA_EGPRS_00_t, PacketTimingAdvance, Packet_Timing_Advance_t),
  2374. M_NEXT_EXIST (PUA_EGPRS_00_t, Exist_Packet_Extended_Timing_Advance, 1),
  2375. M_UINT (PUA_EGPRS_00_t, Packet_Extended_Timing_Advance, 2, &hf_packet_extended_timing_advance),
  2376. M_NEXT_EXIST (PUA_EGPRS_00_t, Exist_Frequency_Parameters, 1),
  2377. M_TYPE (PUA_EGPRS_00_t, Frequency_Parameters, Frequency_Parameters_t),
  2378. M_UNION (PUA_EGPRS_00_t, 4),
  2379. CSN_ERROR (PUA_EGPRS_00_t, "00 <extension>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2380. M_TYPE (PUA_EGPRS_00_t, u.Dynamic_Allocation, Dynamic_Allocation_t),
  2381. M_TYPE (PUA_EGPRS_00_t, u.MultiBlock_Allocation, MultiBlock_Allocation_t),
  2382. CSN_ERROR (PUA_EGPRS_00_t, "11 <Fixed Allocation>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2383. CSN_DESCR_END (PUA_EGPRS_00_t)
  2384. static const
  2385. CSN_DESCR_BEGIN(PUA_EGPRS_t)
  2386. M_UNION (PUA_EGPRS_t, 4),
  2387. M_TYPE (PUA_EGPRS_t, u.PUA_EGPRS_00, PUA_EGPRS_00_t),
  2388. CSN_ERROR (PUA_EGPRS_t, "01 <PUA EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2389. CSN_ERROR (PUA_EGPRS_t, "10 <PUA EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2390. CSN_ERROR (PUA_EGPRS_t, "11 <PUA EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2391. CSN_DESCR_END (PUA_EGPRS_t)
  2392. static const
  2393. CSN_DESCR_BEGIN(Packet_Uplink_Assignment_t)
  2394. M_UINT (Packet_Uplink_Assignment_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2395. M_UINT (Packet_Uplink_Assignment_t, PAGE_MODE, 2, &hf_page_mode),
  2396. M_NEXT_EXIST (Packet_Uplink_Assignment_t, Exist_PERSISTENCE_LEVEL, 1),
  2397. M_UINT_ARRAY (Packet_Uplink_Assignment_t, PERSISTENCE_LEVEL, 4, 4),
  2398. M_TYPE (Packet_Uplink_Assignment_t, ID, PacketUplinkID_t),
  2399. M_UNION (Packet_Uplink_Assignment_t, 2),
  2400. M_TYPE (Packet_Uplink_Assignment_t, u.PUA_GPRS_Struct, PUA_GPRS_t),
  2401. M_TYPE (Packet_Uplink_Assignment_t, u.PUA_EGPRS_Struct, PUA_EGPRS_t),
  2402. M_PADDING_BITS(Packet_Uplink_Assignment_t ),
  2403. CSN_DESCR_END (Packet_Uplink_Assignment_t)
  2404. /* < Packet Downlink Assignment message content > */
  2405. static const
  2406. CSN_DESCR_BEGIN(Measurement_Mapping_struct_t)
  2407. M_TYPE (Measurement_Mapping_struct_t, Measurement_Starting_Time, Starting_Frame_Number_t),
  2408. M_UINT (Measurement_Mapping_struct_t, MEASUREMENT_INTERVAL, 5, &hf_measurement_mapping_struct_measurement_interval),
  2409. M_UINT (Measurement_Mapping_struct_t, MEASUREMENT_BITMAP, 8, &hf_measurement_mapping_struct_measurement_bitmap),
  2410. CSN_DESCR_END (Measurement_Mapping_struct_t)
  2411. static const
  2412. CSN_ChoiceElement_t PacketDownlinkID[] =
  2413. {
  2414. {1, 0, 0, M_TYPE(PacketDownlinkID_t, u.Global_TFI, Global_TFI_t)},
  2415. {2, 0x02, 0, M_UINT(PacketDownlinkID_t, u.TLLI, 32, &hf_tlli)},
  2416. };
  2417. static const
  2418. CSN_DESCR_BEGIN(PacketDownlinkID_t)
  2419. M_CHOICE (PacketDownlinkID_t, UnionType, PacketDownlinkID, ElementsOf(PacketDownlinkID)),
  2420. CSN_DESCR_END (PacketDownlinkID_t)
  2421. static const
  2422. CSN_DESCR_BEGIN(PDA_AdditionsR99_t)
  2423. M_NEXT_EXIST (PDA_AdditionsR99_t, Exist_EGPRS_Params, 4), /*if Exist_EGPRS_Params == FALSE then none of the following 4 vars exist */
  2424. M_UINT (PDA_AdditionsR99_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  2425. M_UINT (PDA_AdditionsR99_t, LINK_QUALITY_MEASUREMENT_MODE, 2, &hf_link_quality_measurement_mode),
  2426. M_NEXT_EXIST (PDA_AdditionsR99_t, Exist_BEP_PERIOD2, 1),
  2427. M_UINT (PDA_AdditionsR99_t, BEP_PERIOD2, 4, &hf_bep_period2),
  2428. M_NEXT_EXIST (PDA_AdditionsR99_t, Exist_Packet_Extended_Timing_Advance, 1),
  2429. M_UINT (PDA_AdditionsR99_t, Packet_Extended_Timing_Advance, 2, &hf_packet_extended_timing_advance),
  2430. M_NEXT_EXIST (PDA_AdditionsR99_t, Exist_COMPACT_ReducedMA, 1),
  2431. M_TYPE (PDA_AdditionsR99_t, COMPACT_ReducedMA, COMPACT_ReducedMA_t),
  2432. CSN_DESCR_END (PDA_AdditionsR99_t)
  2433. static const
  2434. CSN_DESCR_BEGIN (Packet_Downlink_Assignment_t)
  2435. M_UINT (Packet_Downlink_Assignment_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2436. M_UINT (Packet_Downlink_Assignment_t, PAGE_MODE, 2, &hf_page_mode),
  2437. M_NEXT_EXIST (Packet_Downlink_Assignment_t, Exist_PERSISTENCE_LEVEL, 1),
  2438. M_UINT_ARRAY (Packet_Downlink_Assignment_t, PERSISTENCE_LEVEL, 4, 4),
  2439. M_TYPE (Packet_Downlink_Assignment_t, ID, PacketDownlinkID_t),
  2440. M_FIXED (Packet_Downlink_Assignment_t, 1, 0x00),/*-- Message escape */
  2441. M_UINT (Packet_Downlink_Assignment_t, MAC_MODE, 2, &hf_mac_mode),
  2442. M_UINT (Packet_Downlink_Assignment_t, RLC_MODE, 1, &hf_rlc_mode),
  2443. M_UINT (Packet_Downlink_Assignment_t, CONTROL_ACK, 1, &hf_control_ack),
  2444. M_UINT (Packet_Downlink_Assignment_t, TIMESLOT_ALLOCATION, 8, &hf_dl_timeslot_allocation),
  2445. M_TYPE (Packet_Downlink_Assignment_t, Packet_Timing_Advance, Packet_Timing_Advance_t),
  2446. M_NEXT_EXIST (Packet_Downlink_Assignment_t, Exist_P0_and_BTS_PWR_CTRL_MODE, 3),
  2447. M_UINT (Packet_Downlink_Assignment_t, P0, 4, &hf_p0),
  2448. M_UINT (Packet_Downlink_Assignment_t, BTS_PWR_CTRL_MODE, 1, &hf_bts_pwr_ctrl_mode),
  2449. M_UINT (Packet_Downlink_Assignment_t, PR_MODE, 1, &hf_pr_mode),
  2450. M_NEXT_EXIST (Packet_Downlink_Assignment_t, Exist_Frequency_Parameters, 1),
  2451. M_TYPE (Packet_Downlink_Assignment_t, Frequency_Parameters, Frequency_Parameters_t),
  2452. M_NEXT_EXIST (Packet_Downlink_Assignment_t, Exist_DOWNLINK_TFI_ASSIGNMENT, 1),
  2453. M_UINT (Packet_Downlink_Assignment_t, DOWNLINK_TFI_ASSIGNMENT, 5, &hf_downlink_tfi),
  2454. M_NEXT_EXIST (Packet_Downlink_Assignment_t, Exist_Power_Control_Parameters, 1),
  2455. M_TYPE (Packet_Downlink_Assignment_t, Power_Control_Parameters, Power_Control_Parameters_t),
  2456. M_NEXT_EXIST (Packet_Downlink_Assignment_t, Exist_TBF_Starting_Time, 1),
  2457. M_TYPE (Packet_Downlink_Assignment_t, TBF_Starting_Time, Starting_Frame_Number_t),
  2458. M_NEXT_EXIST (Packet_Downlink_Assignment_t, Exist_Measurement_Mapping, 1),
  2459. M_TYPE (Packet_Downlink_Assignment_t, Measurement_Mapping, Measurement_Mapping_struct_t),
  2460. M_NEXT_EXIST_OR_NULL(Packet_Downlink_Assignment_t, Exist_AdditionsR99, 1),
  2461. M_TYPE (Packet_Downlink_Assignment_t, AdditionsR99, PDA_AdditionsR99_t),
  2462. M_PADDING_BITS (Packet_Downlink_Assignment_t),
  2463. CSN_DESCR_END (Packet_Downlink_Assignment_t)
  2464. typedef Packet_Downlink_Assignment_t pdlaCheck_t;
  2465. static const
  2466. CSN_DESCR_BEGIN(pdlaCheck_t)
  2467. M_UINT (pdlaCheck_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2468. M_UINT (pdlaCheck_t, PAGE_MODE, 2, &hf_page_mode),
  2469. M_NEXT_EXIST (pdlaCheck_t, Exist_PERSISTENCE_LEVEL, 1),
  2470. M_UINT_ARRAY (pdlaCheck_t, PERSISTENCE_LEVEL, 4, 4),
  2471. M_TYPE (pdlaCheck_t, ID, PacketDownlinkID_t),
  2472. CSN_DESCR_END (pdlaCheck_t)
  2473. /* DTM Packet UL Assignment */
  2474. static const
  2475. CSN_DESCR_BEGIN(DTM_Packet_Uplink_Assignment_t)
  2476. M_UINT (DTM_Packet_Uplink_Assignment_t, CHANNEL_CODING_COMMAND, 2, &hf_gprs_channel_coding_command),
  2477. M_UINT (DTM_Packet_Uplink_Assignment_t, TLLI_BLOCK_CHANNEL_CODING, 1, &hf_tlli_block_channel_coding),
  2478. M_TYPE (DTM_Packet_Uplink_Assignment_t, Packet_Timing_Advance, Packet_Timing_Advance_t),
  2479. M_UNION (DTM_Packet_Uplink_Assignment_t, 3),
  2480. CSN_ERROR (DTM_Packet_Uplink_Assignment_t, "Not Implemented", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2481. M_TYPE (DTM_Packet_Uplink_Assignment_t, u.DTM_Dynamic_Allocation, DTM_Dynamic_Allocation_t),
  2482. M_TYPE (DTM_Packet_Uplink_Assignment_t, u.DTM_Single_Block_Allocation, DTM_Single_Block_Allocation_t),
  2483. M_NEXT_EXIST_OR_NULL (DTM_Packet_Uplink_Assignment_t, Exist_EGPRS_Parameters, 3),
  2484. M_UINT (DTM_Packet_Uplink_Assignment_t, EGPRS_CHANNEL_CODING_COMMAND, 4, &hf_egprs_channel_coding_command),
  2485. M_UINT (DTM_Packet_Uplink_Assignment_t, RESEGMENT, 1, &hf_resegment),
  2486. M_UINT (DTM_Packet_Uplink_Assignment_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  2487. M_NEXT_EXIST (DTM_Packet_Uplink_Assignment_t, Exist_Packet_Extended_Timing_Advance, 1),
  2488. M_UINT (DTM_Packet_Uplink_Assignment_t, Packet_Extended_Timing_Advance, 2, &hf_packet_extended_timing_advance),
  2489. CSN_DESCR_END(DTM_Packet_Uplink_Assignment_t)
  2490. static const
  2491. CSN_DESCR_BEGIN(DTM_UL_t)
  2492. M_TYPE (DTM_UL_t, DTM_Packet_Uplink_Assignment, DTM_Packet_Uplink_Assignment_t),
  2493. CSN_DESCR_END(DTM_UL_t)
  2494. /* DTM Packet DL Assignment */
  2495. static const
  2496. CSN_DESCR_BEGIN(DTM_Packet_Downlink_Assignment_t)
  2497. M_UINT (DTM_Packet_Downlink_Assignment_t, MAC_MODE, 2, &hf_mac_mode),
  2498. M_UINT (DTM_Packet_Downlink_Assignment_t, RLC_MODE, 1, &hf_rlc_mode),
  2499. M_UINT (DTM_Packet_Downlink_Assignment_t, TIMESLOT_ALLOCATION, 8, &hf_dl_timeslot_allocation),
  2500. M_TYPE (DTM_Packet_Downlink_Assignment_t, Packet_Timing_Advance, Packet_Timing_Advance_t),
  2501. M_NEXT_EXIST (DTM_Packet_Downlink_Assignment_t, Exist_P0_and_BTS_PWR_CTRL_MODE, 3),
  2502. M_UINT (DTM_Packet_Downlink_Assignment_t, P0, 4, &hf_p0),
  2503. M_UINT (DTM_Packet_Downlink_Assignment_t, BTS_PWR_CTRL_MODE, 1, &hf_bts_pwr_ctrl_mode),
  2504. M_UINT (DTM_Packet_Downlink_Assignment_t, PR_MODE, 1, &hf_pr_mode),
  2505. M_NEXT_EXIST (DTM_Packet_Downlink_Assignment_t, Exist_Power_Control_Parameters, 1),
  2506. M_TYPE (DTM_Packet_Downlink_Assignment_t, Power_Control_Parameters, Power_Control_Parameters_t),
  2507. M_NEXT_EXIST (DTM_Packet_Downlink_Assignment_t, Exist_DOWNLINK_TFI_ASSIGNMENT, 1),
  2508. M_UINT (DTM_Packet_Downlink_Assignment_t, DOWNLINK_TFI_ASSIGNMENT, 5, &hf_downlink_tfi),
  2509. M_NEXT_EXIST (DTM_Packet_Downlink_Assignment_t, Exist_Measurement_Mapping, 1),
  2510. M_TYPE (DTM_Packet_Downlink_Assignment_t, Measurement_Mapping, Measurement_Mapping_struct_t),
  2511. M_NEXT_EXIST_OR_NULL (DTM_Packet_Downlink_Assignment_t, EGPRS_Mode, 2),
  2512. M_UINT (DTM_Packet_Downlink_Assignment_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  2513. M_UINT (DTM_Packet_Downlink_Assignment_t, LINK_QUALITY_MEASUREMENT_MODE, 2, &hf_link_quality_measurement_mode),
  2514. M_NEXT_EXIST (DTM_Packet_Downlink_Assignment_t, Exist_Packet_Extended_Timing_Advance, 1),
  2515. M_UINT (DTM_Packet_Downlink_Assignment_t, Packet_Extended_Timing_Advance, 2, &hf_packet_extended_timing_advance),
  2516. CSN_DESCR_END(DTM_Packet_Downlink_Assignment_t)
  2517. static const
  2518. CSN_DESCR_BEGIN(DTM_DL_t)
  2519. M_TYPE (DTM_DL_t, DTM_Packet_Downlink_Assignment, DTM_Packet_Downlink_Assignment_t),
  2520. CSN_DESCR_END(DTM_DL_t)
  2521. /* GPRS Broadcast Information */
  2522. static const
  2523. CSN_DESCR_BEGIN(DTM_GPRS_Broadcast_Information_t)
  2524. M_TYPE (DTM_GPRS_Broadcast_Information_t, GPRS_Cell_Options, GPRS_Cell_Options_t),
  2525. M_TYPE (DTM_GPRS_Broadcast_Information_t, GPRS_Power_Control_Parameters, GPRS_Power_Control_Parameters_t),
  2526. CSN_DESCR_END(DTM_GPRS_Broadcast_Information_t)
  2527. static const
  2528. CSN_DESCR_BEGIN(DTM_GPRS_B_t)
  2529. M_TYPE (DTM_GPRS_B_t, DTM_GPRS_Broadcast_Information, DTM_GPRS_Broadcast_Information_t),
  2530. CSN_DESCR_END(DTM_GPRS_B_t)
  2531. static const
  2532. CSN_DESCR_BEGIN(DTM_Channel_Request_Description_t)
  2533. M_UINT (DTM_Channel_Request_Description_t, DTM_Pkt_Est_Cause, 2, &hf_dtm_channel_request_description_dtm_pkt_est_cause),
  2534. M_TYPE (DTM_Channel_Request_Description_t, Channel_Request_Description, Channel_Request_Description_t),
  2535. M_NEXT_EXIST (DTM_Channel_Request_Description_t, Exist_PFI, 1),
  2536. M_UINT (DTM_Channel_Request_Description_t, PFI, 7, &hf_pfi),
  2537. CSN_DESCR_END(DTM_Channel_Request_Description_t)
  2538. /* DTM */
  2539. /* < Packet Paging Request message content > */
  2540. typedef struct
  2541. {
  2542. guint8 Length_of_Mobile_Identity_contents;/* bit (4) */
  2543. guint8 Mobile_Identity[8];/* octet (val (Length of Mobile Identity contents)) */
  2544. } Mobile_Identity_t; /* helper */
  2545. static const
  2546. CSN_DESCR_BEGIN(Mobile_Identity_t)
  2547. M_UINT (Mobile_Identity_t, Length_of_Mobile_Identity_contents, 4, &hf_mobile_identity_length_of_mobile_identity_contents),
  2548. M_VAR_ARRAY (Mobile_Identity_t, Mobile_Identity, Length_of_Mobile_Identity_contents, 0),
  2549. CSN_DESCR_END (Mobile_Identity_t)
  2550. static const
  2551. CSN_DESCR_BEGIN(Page_request_for_TBF_establishment_t)
  2552. M_UNION (Page_request_for_TBF_establishment_t, 2),
  2553. M_UINT_ARRAY (Page_request_for_TBF_establishment_t, u.PTMSI, 8, 4),/* bit (32) == 8*4 */
  2554. M_TYPE (Page_request_for_TBF_establishment_t, u.Mobile_Identity, Mobile_Identity_t),
  2555. CSN_DESCR_END (Page_request_for_TBF_establishment_t)
  2556. static const
  2557. CSN_DESCR_BEGIN(Page_request_for_RR_conn_t)
  2558. M_UNION (Page_request_for_RR_conn_t, 2),
  2559. M_UINT_ARRAY (Page_request_for_RR_conn_t, u.TMSI, 8, 4),/* bit (32) == 8*4 */
  2560. M_TYPE (Page_request_for_RR_conn_t, u.Mobile_Identity, Mobile_Identity_t),
  2561. M_UINT (Page_request_for_RR_conn_t, CHANNEL_NEEDED, 2, &hf_page_request_for_rr_conn_channel_needed),
  2562. M_NEXT_EXIST (Page_request_for_RR_conn_t, Exist_eMLPP_PRIORITY, 1),
  2563. M_UINT (Page_request_for_RR_conn_t, eMLPP_PRIORITY, 3, &hf_page_request_for_rr_conn_emlpp_priority),
  2564. CSN_DESCR_END (Page_request_for_RR_conn_t)
  2565. static const
  2566. CSN_DESCR_BEGIN(Repeated_Page_info_t)
  2567. M_UNION (Repeated_Page_info_t, 2),
  2568. M_TYPE (Repeated_Page_info_t, u.Page_req_TBF, Page_request_for_TBF_establishment_t),
  2569. M_TYPE (Repeated_Page_info_t, u.Page_req_RR, Page_request_for_RR_conn_t),
  2570. CSN_DESCR_END (Repeated_Page_info_t)
  2571. static const
  2572. CSN_DESCR_BEGIN(Packet_Paging_Request_t)
  2573. M_UINT (Packet_Paging_Request_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2574. M_UINT (Packet_Paging_Request_t, PAGE_MODE, 2, &hf_page_mode),
  2575. M_NEXT_EXIST (Packet_Paging_Request_t, Exist_PERSISTENCE_LEVEL, 1),
  2576. M_UINT_ARRAY (Packet_Paging_Request_t, PERSISTENCE_LEVEL, 4, 4), /* 4bit*4 */
  2577. M_NEXT_EXIST (Packet_Paging_Request_t, Exist_NLN, 1),
  2578. M_UINT (Packet_Paging_Request_t, NLN, 2, &hf_nln),
  2579. M_REC_TARRAY (Packet_Paging_Request_t, Repeated_Page_info, Repeated_Page_info_t, Count_Repeated_Page_info),
  2580. M_PADDING_BITS(Packet_Paging_Request_t),
  2581. CSN_DESCR_END (Packet_Paging_Request_t)
  2582. static const
  2583. CSN_DESCR_BEGIN(Packet_PDCH_Release_t)
  2584. M_UINT (Packet_PDCH_Release_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2585. M_UINT (Packet_PDCH_Release_t, PAGE_MODE, 2, &hf_page_mode),
  2586. M_FIXED (Packet_PDCH_Release_t, 1, 0x01),
  2587. M_UINT (Packet_PDCH_Release_t, TIMESLOTS_AVAILABLE, 8, &hf_packet_pdch_release_timeslots_available),
  2588. M_PADDING_BITS(Packet_PDCH_Release_t),
  2589. CSN_DESCR_END (Packet_PDCH_Release_t)
  2590. /* < Packet Power Control/Timing Advance message content > */
  2591. static const
  2592. CSN_DESCR_BEGIN(GlobalTimingAndPower_t)
  2593. M_TYPE (GlobalTimingAndPower_t, Global_Packet_Timing_Advance, Global_Packet_Timing_Advance_t),
  2594. M_TYPE (GlobalTimingAndPower_t, Power_Control_Parameters, Power_Control_Parameters_t),
  2595. CSN_DESCR_END (GlobalTimingAndPower_t)
  2596. static const
  2597. CSN_DESCR_BEGIN(GlobalTimingOrPower_t)
  2598. M_UNION (GlobalTimingOrPower_t, 2),
  2599. M_TYPE (GlobalTimingOrPower_t, u.Global_Packet_Timing_Advance, Global_Packet_Timing_Advance_t),
  2600. M_TYPE (GlobalTimingOrPower_t, u.Power_Control_Parameters, Power_Control_Parameters_t),
  2601. CSN_DESCR_END (GlobalTimingOrPower_t)
  2602. static const
  2603. CSN_ChoiceElement_t PacketPowerControlTimingAdvanceID[] =
  2604. {
  2605. {1, 0, 0, M_TYPE(PacketPowerControlTimingAdvanceID_t, u.Global_TFI, Global_TFI_t)},
  2606. {3, 0x06, 0, M_UINT(PacketPowerControlTimingAdvanceID_t, u.TQI, 16, &hf_tqi)},
  2607. {3, 0x07, 0, M_TYPE(PacketPowerControlTimingAdvanceID_t, u.Packet_Request_Reference, Packet_Request_Reference_t)},
  2608. };
  2609. static const
  2610. CSN_DESCR_BEGIN(PacketPowerControlTimingAdvanceID_t)
  2611. M_CHOICE (PacketPowerControlTimingAdvanceID_t, UnionType, PacketPowerControlTimingAdvanceID, ElementsOf(PacketPowerControlTimingAdvanceID)),
  2612. CSN_DESCR_END (PacketPowerControlTimingAdvanceID_t)
  2613. static const
  2614. CSN_DESCR_BEGIN(Packet_Power_Control_Timing_Advance_t)
  2615. M_UINT (Packet_Power_Control_Timing_Advance_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2616. M_UINT (Packet_Power_Control_Timing_Advance_t, PAGE_MODE, 2, &hf_page_mode),
  2617. M_TYPE (Packet_Power_Control_Timing_Advance_t, ID, PacketPowerControlTimingAdvanceID_t),
  2618. /*-- Message escape*/
  2619. M_FIXED (Packet_Power_Control_Timing_Advance_t, 1, 0x00),
  2620. M_NEXT_EXIST (Packet_Power_Control_Timing_Advance_t, Exist_Global_Power_Control_Parameters, 1),
  2621. M_TYPE (Packet_Power_Control_Timing_Advance_t, Global_Power_Control_Parameters, Global_Power_Control_Parameters_t),
  2622. M_UNION (Packet_Power_Control_Timing_Advance_t, 2),
  2623. M_TYPE (Packet_Power_Control_Timing_Advance_t, u.GlobalTimingAndPower, GlobalTimingAndPower_t),
  2624. M_TYPE (Packet_Power_Control_Timing_Advance_t, u.GlobalTimingOrPower, GlobalTimingOrPower_t),
  2625. M_PADDING_BITS(Packet_Power_Control_Timing_Advance_t),
  2626. CSN_DESCR_END (Packet_Power_Control_Timing_Advance_t)
  2627. /* < Packet Queueing Notification message content > */
  2628. static const
  2629. CSN_DESCR_BEGIN(Packet_Queueing_Notification_t)
  2630. M_UINT (Packet_Queueing_Notification_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2631. M_UINT (Packet_Queueing_Notification_t, PAGE_MODE, 2, &hf_page_mode),
  2632. M_FIXED (Packet_Queueing_Notification_t, 3, 0x07),/* 111 Fixed */
  2633. M_TYPE (Packet_Queueing_Notification_t, Packet_Request_Reference, Packet_Request_Reference_t),
  2634. M_UINT (Packet_Queueing_Notification_t, TQI, 16, &hf_tqi),
  2635. M_PADDING_BITS(Packet_Queueing_Notification_t),
  2636. CSN_DESCR_END (Packet_Queueing_Notification_t)
  2637. /* USED in Packet Timeslot Reconfigure message content
  2638. * This is almost the same structure as used in
  2639. * <Packet Uplink Assignment message content> but UPLINK_TFI_ASSIGNMENT is removed.
  2640. */
  2641. static const
  2642. CSN_DESCR_BEGIN(TRDynamic_Allocation_t)
  2643. M_UINT (TRDynamic_Allocation_t, Extended_Dynamic_Allocation, 1, &hf_extended_dynamic_allocation),
  2644. M_NEXT_EXIST (TRDynamic_Allocation_t, Exist_P0, 2),
  2645. M_UINT (TRDynamic_Allocation_t, P0, 4, &hf_p0),
  2646. M_UINT (TRDynamic_Allocation_t, PR_MODE, 1, &hf_pr_mode),
  2647. M_UINT (TRDynamic_Allocation_t, USF_GRANULARITY, 1, &hf_usf_granularity),
  2648. M_NEXT_EXIST (TRDynamic_Allocation_t, Exist_RLC_DATA_BLOCKS_GRANTED, 1),
  2649. M_UINT (TRDynamic_Allocation_t, RLC_DATA_BLOCKS_GRANTED, 8, &hf_rlc_data_blocks_granted),
  2650. M_NEXT_EXIST (TRDynamic_Allocation_t, Exist_TBF_Starting_Time, 1),
  2651. M_TYPE (TRDynamic_Allocation_t, TBF_Starting_Time, Starting_Frame_Number_t),
  2652. M_UNION (TRDynamic_Allocation_t, 2),
  2653. M_TYPE_ARRAY (TRDynamic_Allocation_t, u.Timeslot_Allocation, Timeslot_Allocation_t, 8),
  2654. M_TYPE (TRDynamic_Allocation_t, u.Timeslot_Allocation_Power_Ctrl_Param, Timeslot_Allocation_Power_Ctrl_Param_t),
  2655. CSN_DESCR_END (TRDynamic_Allocation_t)
  2656. /* < Packet Timeslot Reconfigure message content > */
  2657. static const
  2658. CSN_DESCR_BEGIN(PTR_GPRS_AdditionsR99_t)
  2659. M_NEXT_EXIST (PTR_GPRS_AdditionsR99_t, Exist_Packet_Extended_Timing_Advance, 1),
  2660. M_UINT (PTR_GPRS_AdditionsR99_t, Packet_Extended_Timing_Advance, 2, &hf_packet_extended_timing_advance),
  2661. CSN_DESCR_END (PTR_GPRS_AdditionsR99_t)
  2662. static const
  2663. CSN_DESCR_BEGIN (PTR_GPRS_t)
  2664. M_UINT (PTR_GPRS_t, CHANNEL_CODING_COMMAND, 2, &hf_gprs_channel_coding_command),
  2665. M_TYPE (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.Global_Packet_Timing_Advance, Global_Packet_Timing_Advance_t),
  2666. M_UINT (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.DOWNLINK_RLC_MODE, 1, &hf_rlc_mode),
  2667. M_UINT (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.CONTROL_ACK, 1, &hf_control_ack),
  2668. M_NEXT_EXIST (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.Exist_DOWNLINK_TFI_ASSIGNMENT, 1),
  2669. M_UINT (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.DOWNLINK_TFI_ASSIGNMENT, 5, &hf_downlink_tfi),
  2670. M_NEXT_EXIST (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.Exist_UPLINK_TFI_ASSIGNMENT, 1),
  2671. M_UINT (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.UPLINK_TFI_ASSIGNMENT, 5, &hf_uplink_tfi),
  2672. M_UINT (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.DOWNLINK_TIMESLOT_ALLOCATION, 8, &hf_dl_timeslot_allocation),
  2673. M_NEXT_EXIST (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.Exist_Frequency_Parameters, 1),
  2674. M_TYPE (PTR_GPRS_t, Common_Timeslot_Reconfigure_Data.Frequency_Parameters, Frequency_Parameters_t),
  2675. M_UNION (PTR_GPRS_t, 2),
  2676. M_TYPE (PTR_GPRS_t, u.Dynamic_Allocation, TRDynamic_Allocation_t),
  2677. CSN_ERROR (PTR_GPRS_t, "1 - Fixed Allocation was removed", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2678. M_NEXT_EXIST_OR_NULL(PTR_GPRS_t, Exist_AdditionsR99, 1),
  2679. M_TYPE (PTR_GPRS_t, AdditionsR99, PTR_GPRS_AdditionsR99_t),
  2680. CSN_DESCR_END (PTR_GPRS_t)
  2681. static const
  2682. CSN_DESCR_BEGIN(PTR_EGPRS_00_t)
  2683. M_NEXT_EXIST (PTR_EGPRS_00_t, Exist_COMPACT_ReducedMA, 1),
  2684. M_TYPE (PTR_EGPRS_00_t, COMPACT_ReducedMA, COMPACT_ReducedMA_t),
  2685. M_UINT (PTR_EGPRS_00_t, EGPRS_ChannelCodingCommand, 4, &hf_egprs_channel_coding_command),
  2686. M_UINT (PTR_EGPRS_00_t, RESEGMENT, 1, &hf_resegment),
  2687. M_NEXT_EXIST (PTR_EGPRS_00_t, Exist_DOWNLINK_EGPRS_WindowSize, 1),
  2688. M_UINT (PTR_EGPRS_00_t, DOWNLINK_EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  2689. M_NEXT_EXIST (PTR_EGPRS_00_t, Exist_UPLINK_EGPRS_WindowSize, 1),
  2690. M_UINT (PTR_EGPRS_00_t, UPLINK_EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  2691. M_UINT (PTR_EGPRS_00_t, LINK_QUALITY_MEASUREMENT_MODE, 2, &hf_link_quality_measurement_mode),
  2692. M_TYPE (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.Global_Packet_Timing_Advance, Global_Packet_Timing_Advance_t),
  2693. M_NEXT_EXIST (PTR_EGPRS_00_t, Exist_Packet_Extended_Timing_Advance, 1),
  2694. M_UINT (PTR_EGPRS_00_t, Packet_Extended_Timing_Advance, 2, &hf_packet_extended_timing_advance),
  2695. M_UINT (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.DOWNLINK_RLC_MODE, 1, &hf_rlc_mode),
  2696. M_UINT (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.CONTROL_ACK, 1, &hf_control_ack),
  2697. M_NEXT_EXIST (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.Exist_DOWNLINK_TFI_ASSIGNMENT, 1),
  2698. M_UINT (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.DOWNLINK_TFI_ASSIGNMENT, 5, &hf_downlink_tfi),
  2699. M_NEXT_EXIST (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.Exist_UPLINK_TFI_ASSIGNMENT, 1),
  2700. M_UINT (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.UPLINK_TFI_ASSIGNMENT, 5, &hf_uplink_tfi),
  2701. M_UINT (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.DOWNLINK_TIMESLOT_ALLOCATION, 8, &hf_dl_timeslot_allocation),
  2702. M_NEXT_EXIST (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.Exist_Frequency_Parameters, 1),
  2703. M_TYPE (PTR_EGPRS_00_t, Common_Timeslot_Reconfigure_Data.Frequency_Parameters, Frequency_Parameters_t),
  2704. M_UNION (PTR_EGPRS_00_t, 2),
  2705. M_TYPE (PTR_EGPRS_00_t, u.Dynamic_Allocation, TRDynamic_Allocation_t),
  2706. CSN_ERROR (PTR_EGPRS_00_t, "1 <Fixed Allocation>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2707. CSN_DESCR_END (PTR_EGPRS_00_t)
  2708. static const
  2709. CSN_DESCR_BEGIN(PTR_EGPRS_t)
  2710. M_UNION (PTR_EGPRS_t, 4),
  2711. M_TYPE (PTR_EGPRS_t, u.PTR_EGPRS_00, PTR_EGPRS_00_t),
  2712. CSN_ERROR (PTR_EGPRS_t, "01 <PTR_EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2713. CSN_ERROR (PTR_EGPRS_t, "10 <PTR_EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2714. CSN_ERROR (PTR_EGPRS_t, "11 <PTR_EGPRS>", CSN_ERROR_STREAM_NOT_SUPPORTED),
  2715. CSN_DESCR_END (PTR_EGPRS_t)
  2716. static const
  2717. CSN_DESCR_BEGIN(Packet_Timeslot_Reconfigure_t)
  2718. M_UINT (Packet_Timeslot_Reconfigure_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2719. M_UINT (Packet_Timeslot_Reconfigure_t, PAGE_MODE, 2, &hf_page_mode),
  2720. M_FIXED (Packet_Timeslot_Reconfigure_t, 1, 0x00),
  2721. M_TYPE (Packet_Timeslot_Reconfigure_t, Global_TFI, Global_TFI_t),
  2722. M_UNION (Packet_Timeslot_Reconfigure_t, 2),
  2723. M_TYPE (Packet_Timeslot_Reconfigure_t, u.PTR_GPRS_Struct, PTR_GPRS_t),
  2724. M_TYPE (Packet_Timeslot_Reconfigure_t, u.PTR_EGPRS_Struct, PTR_EGPRS_t),
  2725. M_PADDING_BITS(Packet_Timeslot_Reconfigure_t),
  2726. CSN_DESCR_END (Packet_Timeslot_Reconfigure_t)
  2727. typedef Packet_Timeslot_Reconfigure_t PTRCheck_t;
  2728. static const
  2729. CSN_DESCR_BEGIN(PTRCheck_t)
  2730. M_UINT (PTRCheck_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2731. M_UINT (PTRCheck_t, PAGE_MODE, 2, &hf_page_mode),
  2732. M_FIXED (PTRCheck_t, 1, 0x00),/* 0 fixed */
  2733. M_TYPE (PTRCheck_t, Global_TFI, Global_TFI_t),
  2734. CSN_DESCR_END (PTRCheck_t)
  2735. /* < Packet PRACH Parameters message content > */
  2736. static const
  2737. CSN_DESCR_BEGIN(PRACH_Control_t)
  2738. M_UINT_ARRAY (PRACH_Control_t, ACC_CONTR_CLASS, 8, 2), /* bit (16) == 8bit*2 */
  2739. M_UINT_ARRAY (PRACH_Control_t, MAX_RETRANS, 2, 4), /* bit (2) * 4 */
  2740. M_UINT (PRACH_Control_t, S, 4, &hf_prach_control_s),
  2741. M_UINT (PRACH_Control_t, TX_INT, 4, &hf_prach_control_tx_int),
  2742. M_NEXT_EXIST (PRACH_Control_t, Exist_PERSISTENCE_LEVEL, 1),
  2743. M_UINT_ARRAY (PRACH_Control_t, PERSISTENCE_LEVEL, 4, 4),
  2744. CSN_DESCR_END (PRACH_Control_t)
  2745. static const
  2746. CSN_DESCR_BEGIN(Cell_Allocation_t)
  2747. M_REC_ARRAY (Cell_Allocation_t, RFL_Number, NoOfRFLs, 4),
  2748. CSN_DESCR_END (Cell_Allocation_t)
  2749. static const
  2750. CSN_DESCR_BEGIN(HCS_t)
  2751. M_UINT (HCS_t, PRIORITY_CLASS, 3, &hf_hcs_priority_class),
  2752. M_UINT (HCS_t, HCS_THR, 5, &hf_hcs_hcs_thr),
  2753. CSN_DESCR_END (HCS_t)
  2754. static const
  2755. CSN_DESCR_BEGIN(Location_Repeat_t)
  2756. M_UINT (Location_Repeat_t, PBCCH_LOCATION, 2, &hf_location_repeat_pbcch_location),
  2757. M_UINT (Location_Repeat_t, PSI1_REPEAT_PERIOD, 4, &hf_location_repeat_psi1_repeat_period),
  2758. CSN_DESCR_END (Location_Repeat_t)
  2759. static const
  2760. CSN_DESCR_BEGIN(SI13_PBCCH_Location_t)
  2761. M_UNION (SI13_PBCCH_Location_t, 2),
  2762. M_UINT (SI13_PBCCH_Location_t, u.SI13_LOCATION, 1, &hf_si13_pbcch_location_si13_location),
  2763. M_TYPE (SI13_PBCCH_Location_t, u.lr, Location_Repeat_t),
  2764. CSN_DESCR_END (SI13_PBCCH_Location_t)
  2765. static const
  2766. CSN_DESCR_BEGIN(Cell_Selection_t)
  2767. M_UINT (Cell_Selection_t, BSIC, 6, &hf_cell_selection_bsic),
  2768. M_UINT (Cell_Selection_t, CELL_BAR_ACCESS_2, 1, &hf_cell_bar_access_2),
  2769. M_UINT (Cell_Selection_t, EXC_ACC, 1, &hf_exc_acc),
  2770. M_UINT (Cell_Selection_t, SAME_RA_AS_SERVING_CELL, 1, &hf_cell_selection_same_ra_as_serving_cell),
  2771. M_NEXT_EXIST (Cell_Selection_t, Exist_RXLEV_and_TXPWR, 2),
  2772. M_UINT (Cell_Selection_t, GPRS_RXLEV_ACCESS_MIN, 6, &hf_cell_selection_gprs_rxlev_access_min),
  2773. M_UINT (Cell_Selection_t, GPRS_MS_TXPWR_MAX_CCH, 5, &hf_cell_selection_gprs_ms_txpwr_max_cch),
  2774. M_NEXT_EXIST (Cell_Selection_t, Exist_OFFSET_and_TIME, 2),
  2775. M_UINT (Cell_Selection_t, GPRS_TEMPORARY_OFFSET, 3, &hf_cell_selection_gprs_temporary_offset),
  2776. M_UINT (Cell_Selection_t, GPRS_PENALTY_TIME, 5, &hf_cell_selection_gprs_penalty_time),
  2777. M_NEXT_EXIST (Cell_Selection_t, Exist_GPRS_RESELECT_OFFSET, 1),
  2778. M_UINT (Cell_Selection_t, GPRS_RESELECT_OFFSET, 5, &hf_cell_selection_gprs_reselect_offset),
  2779. M_NEXT_EXIST (Cell_Selection_t, Exist_HCS, 1),
  2780. M_TYPE (Cell_Selection_t, HCS, HCS_t),
  2781. M_NEXT_EXIST (Cell_Selection_t, Exist_SI13_PBCCH_Location, 1),
  2782. M_TYPE (Cell_Selection_t, SI13_PBCCH_Location, SI13_PBCCH_Location_t),
  2783. CSN_DESCR_END (Cell_Selection_t)
  2784. static const
  2785. CSN_DESCR_BEGIN(Cell_Selection_Params_With_FreqDiff_t)
  2786. M_VAR_BITMAP (Cell_Selection_Params_With_FreqDiff_t, FREQUENCY_DIFF, FREQ_DIFF_LENGTH, 0),
  2787. M_TYPE (Cell_Selection_Params_With_FreqDiff_t, Cell_SelectionParams, Cell_Selection_t),
  2788. CSN_DESCR_END (Cell_Selection_Params_With_FreqDiff_t)
  2789. CSN_CallBackStatus_t callback_init_Cell_Selection_Params_FREQUENCY_DIFF(proto_tree *tree _U_, tvbuff_t *tvb _U_, void* param1, void* param2, int bit_offset _U_, int ett_csn1 _U_)
  2790. {
  2791. guint i;
  2792. guint8 freq_diff_len = *(guint8*)param1;
  2793. Cell_Selection_Params_With_FreqDiff_t *pCell_Sel_Param = (Cell_Selection_Params_With_FreqDiff_t*)param2;
  2794. for( i=0; i<16; i++, pCell_Sel_Param++ )
  2795. {
  2796. pCell_Sel_Param->FREQ_DIFF_LENGTH = freq_diff_len;
  2797. }
  2798. return 0;
  2799. }
  2800. static const
  2801. CSN_DESCR_BEGIN(NeighbourCellParameters_t)
  2802. M_UINT (NeighbourCellParameters_t, START_FREQUENCY, 10, &hf_neighbourcellparameters_start_frequency),
  2803. M_TYPE (NeighbourCellParameters_t, Cell_Selection, Cell_Selection_t),
  2804. M_UINT (NeighbourCellParameters_t, NR_OF_REMAINING_CELLS, 4, &hf_neighbourcellparameters_nr_of_remaining_cells),
  2805. M_UINT_OFFSET(NeighbourCellParameters_t, FREQ_DIFF_LENGTH, 3, 1),/* offset 1 */
  2806. M_CALLBACK (NeighbourCellParameters_t, callback_init_Cell_Selection_Params_FREQUENCY_DIFF, FREQ_DIFF_LENGTH, Cell_Selection_Params_With_FreqDiff),
  2807. M_VAR_TARRAY (NeighbourCellParameters_t, Cell_Selection_Params_With_FreqDiff, Cell_Selection_Params_With_FreqDiff_t, NR_OF_REMAINING_CELLS),
  2808. CSN_DESCR_END (NeighbourCellParameters_t)
  2809. static const
  2810. CSN_DESCR_BEGIN(NeighbourCellList_t)
  2811. M_REC_TARRAY (NeighbourCellList_t, Parameters, NeighbourCellParameters_t, Count),
  2812. CSN_DESCR_END (NeighbourCellList_t)
  2813. static const
  2814. CSN_DESCR_BEGIN(Cell_Selection_2_t)
  2815. M_UINT (Cell_Selection_2_t, CELL_BAR_ACCESS_2, 1, &hf_cell_bar_access_2),
  2816. M_UINT (Cell_Selection_2_t, EXC_ACC, 1, &hf_exc_acc),
  2817. M_UINT (Cell_Selection_2_t, SAME_RA_AS_SERVING_CELL, 1, &hf_cell_selection_2_same_ra_as_serving_cell),
  2818. M_NEXT_EXIST (Cell_Selection_2_t, Exist_RXLEV_and_TXPWR, 2),
  2819. M_UINT (Cell_Selection_2_t, GPRS_RXLEV_ACCESS_MIN, 6, &hf_cell_selection_2_gprs_rxlev_access_min),
  2820. M_UINT (Cell_Selection_2_t, GPRS_MS_TXPWR_MAX_CCH, 5, &hf_cell_selection_2_gprs_ms_txpwr_max_cch),
  2821. M_NEXT_EXIST (Cell_Selection_2_t, Exist_OFFSET_and_TIME, 2),
  2822. M_UINT (Cell_Selection_2_t, GPRS_TEMPORARY_OFFSET, 3, &hf_cell_selection_2_gprs_temporary_offset),
  2823. M_UINT (Cell_Selection_2_t, GPRS_PENALTY_TIME, 5, &hf_cell_selection_2_gprs_penalty_time),
  2824. M_NEXT_EXIST (Cell_Selection_2_t, Exist_GPRS_RESELECT_OFFSET, 1),
  2825. M_UINT (Cell_Selection_2_t, GPRS_RESELECT_OFFSET, 5, &hf_cell_selection_2_gprs_reselect_offset),
  2826. M_NEXT_EXIST (Cell_Selection_2_t, Exist_HCS, 1),
  2827. M_TYPE (Cell_Selection_2_t, HCS, HCS_t),
  2828. M_NEXT_EXIST (Cell_Selection_2_t, Exist_SI13_PBCCH_Location, 1),
  2829. M_TYPE (Cell_Selection_2_t, SI13_PBCCH_Location, SI13_PBCCH_Location_t),
  2830. CSN_DESCR_END (Cell_Selection_2_t)
  2831. static const
  2832. CSN_DESCR_BEGIN(Packet_PRACH_Parameters_t)
  2833. M_UINT (Packet_PRACH_Parameters_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2834. M_UINT (Packet_PRACH_Parameters_t, PAGE_MODE, 2, &hf_page_mode),
  2835. M_TYPE (Packet_PRACH_Parameters_t, PRACH_Control, PRACH_Control_t),
  2836. M_PADDING_BITS(Packet_PRACH_Parameters_t),
  2837. CSN_DESCR_END (Packet_PRACH_Parameters_t)
  2838. /* < Packet Access Reject message content > */
  2839. static const
  2840. CSN_ChoiceElement_t RejectID[] =
  2841. {
  2842. {1, 0x00, 0, M_UINT(RejectID_t, u.TLLI, 32, &hf_tlli)},
  2843. {2, 0x02, 0, M_TYPE(RejectID_t, u.Packet_Request_Reference, Packet_Request_Reference_t)},
  2844. {2, 0x03, 0, M_TYPE(RejectID_t, u.Global_TFI, Global_TFI_t)},
  2845. };
  2846. static const
  2847. CSN_DESCR_BEGIN(RejectID_t)
  2848. M_CHOICE (RejectID_t, UnionType, RejectID, ElementsOf(RejectID)),
  2849. CSN_DESCR_END (RejectID_t)
  2850. static const
  2851. CSN_DESCR_BEGIN(Reject_t)
  2852. M_TYPE (Reject_t, ID, RejectID_t),
  2853. M_NEXT_EXIST (Reject_t, Exist_Wait, 2),
  2854. M_UINT (Reject_t, WAIT_INDICATION, 8, &hf_reject_wait_indication),
  2855. M_UINT (Reject_t, WAIT_INDICATION_SIZE, 1, &hf_reject_wait_indication_size),
  2856. CSN_DESCR_END (Reject_t)
  2857. static const
  2858. CSN_DESCR_BEGIN(Packet_Access_Reject_t)
  2859. M_UINT (Packet_Access_Reject_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  2860. M_UINT (Packet_Access_Reject_t, PAGE_MODE, 2, &hf_page_mode),
  2861. M_TYPE (Packet_Access_Reject_t, Reject, Reject_t),
  2862. M_REC_TARRAY (Packet_Access_Reject_t, Reject[1], Reject_t, Count_Reject),
  2863. M_PADDING_BITS(Packet_Access_Reject_t),
  2864. CSN_DESCR_END (Packet_Access_Reject_t)
  2865. /* < Packet Cell Change Order message content > */
  2866. static const
  2867. CSN_ChoiceElement_t PacketCellChangeOrderID[] =
  2868. {
  2869. {1, 0, 0, M_TYPE(PacketCellChangeOrderID_t, u.Global_TFI, Global_TFI_t)},
  2870. {2, 0x02, 0, M_UINT(PacketCellChangeOrderID_t, u.TLLI, 32, &hf_tlli)},
  2871. };
  2872. /* PacketCellChangeOrderID_t; */
  2873. static const
  2874. CSN_DESCR_BEGIN(PacketCellChangeOrderID_t)
  2875. M_CHOICE (PacketCellChangeOrderID_t, UnionType, PacketCellChangeOrderID, ElementsOf(PacketCellChangeOrderID)),
  2876. CSN_DESCR_END (PacketCellChangeOrderID_t)
  2877. static const
  2878. CSN_DESCR_BEGIN(h_FreqBsicCell_t)
  2879. M_UINT (h_FreqBsicCell_t, BSIC, 6, &hf_h_freqbsiccell_bsic),
  2880. M_TYPE (h_FreqBsicCell_t, Cell_Selection, Cell_Selection_t),
  2881. CSN_DESCR_END (h_FreqBsicCell_t)
  2882. static const CSN_DESCR_BEGIN(CellSelectionParamsWithFreqDiff_t)
  2883. /*FREQUENCY_DIFF is really an integer but the number of bits to decode it are stored in FREQ_DIFF_LENGTH*/
  2884. M_VAR_BITMAP (CellSelectionParamsWithFreqDiff_t, FREQUENCY_DIFF, FREQ_DIFF_LENGTH, 0),
  2885. M_UINT (CellSelectionParamsWithFreqDiff_t, BSIC, 6, &hf_cellselectionparamswithfreqdiff_bsic),
  2886. M_NEXT_EXIST (CellSelectionParamsWithFreqDiff_t, Exist_CellSelectionParams, 1),
  2887. M_TYPE (CellSelectionParamsWithFreqDiff_t, CellSelectionParams, Cell_Selection_2_t),
  2888. CSN_DESCR_END (CellSelectionParamsWithFreqDiff_t)
  2889. CSN_CallBackStatus_t callback_init_Cell_Sel_Param_2_FREQUENCY_DIFF(proto_tree *tree _U_, tvbuff_t *tvb _U_, void* param1, void* param2, int bit_offset _U_, int ett_csn1 _U_)
  2890. {
  2891. guint i;
  2892. guint8 freq_diff_len = *(guint8*)param1;
  2893. CellSelectionParamsWithFreqDiff_t *pCell_Sel_Param = (CellSelectionParamsWithFreqDiff_t*)param2;
  2894. for( i=0; i<16; i++, pCell_Sel_Param++ )
  2895. {
  2896. pCell_Sel_Param->FREQ_DIFF_LENGTH = freq_diff_len;
  2897. }
  2898. return 0;
  2899. }
  2900. static const
  2901. CSN_DESCR_BEGIN(Add_Frequency_list_t)
  2902. M_UINT (Add_Frequency_list_t, START_FREQUENCY, 10, &hf_add_frequency_list_start_frequency),
  2903. M_UINT (Add_Frequency_list_t, BSIC, 6, &hf_add_frequency_list_bsic),
  2904. M_NEXT_EXIST (Add_Frequency_list_t, Exist_Cell_Selection, 1),
  2905. M_TYPE (Add_Frequency_list_t, Cell_Selection, Cell_Selection_2_t),
  2906. M_UINT (Add_Frequency_list_t, NR_OF_FREQUENCIES, 5, &hf_add_frequency_list_nr_of_frequencies),
  2907. M_UINT_OFFSET(Add_Frequency_list_t, FREQ_DIFF_LENGTH, 3, 1),/*offset 1*/
  2908. M_CALLBACK (Add_Frequency_list_t, callback_init_Cell_Sel_Param_2_FREQUENCY_DIFF, FREQ_DIFF_LENGTH, CellSelectionParamsWithFreqDiff),
  2909. M_VAR_TARRAY (Add_Frequency_list_t, CellSelectionParamsWithFreqDiff, CellSelectionParamsWithFreqDiff_t, NR_OF_FREQUENCIES),
  2910. CSN_DESCR_END (Add_Frequency_list_t)
  2911. static const CSN_DESCR_BEGIN(Removed_Freq_Index_t)
  2912. M_UINT(Removed_Freq_Index_t, REMOVED_FREQ_INDEX, 6, &hf_removed_freq_index_removed_freq_index),
  2913. CSN_DESCR_END(Removed_Freq_Index_t)
  2914. static const
  2915. CSN_DESCR_BEGIN(NC_Frequency_list_t)
  2916. M_NEXT_EXIST (NC_Frequency_list_t, Exist_REMOVED_FREQ, 2),
  2917. M_UINT_OFFSET(NC_Frequency_list_t, NR_OF_REMOVED_FREQ, 5, 1),/*offset 1*/
  2918. M_VAR_TARRAY (NC_Frequency_list_t, Removed_Freq_Index, Removed_Freq_Index_t, NR_OF_REMOVED_FREQ),
  2919. M_REC_TARRAY (NC_Frequency_list_t, Add_Frequency, Add_Frequency_list_t, Count_Add_Frequency),
  2920. CSN_DESCR_END (NC_Frequency_list_t)
  2921. static const
  2922. CSN_DESCR_BEGIN(NC_Measurement_Parameters_t)
  2923. M_UINT (NC_Measurement_Parameters_t, NETWORK_CONTROL_ORDER, 2, &hf_nc_measurement_parameters_network_control_order),
  2924. M_NEXT_EXIST (NC_Measurement_Parameters_t, Exist_NC, 3),
  2925. M_UINT (NC_Measurement_Parameters_t, NC_NON_DRX_PERIOD, 3, &hf_nc_measurement_parameters_nc_non_drx_period),
  2926. M_UINT (NC_Measurement_Parameters_t, NC_REPORTING_PERIOD_I, 3, &hf_nc_measurement_parameters_nc_reporting_period_i),
  2927. M_UINT (NC_Measurement_Parameters_t, NC_REPORTING_PERIOD_T, 3, &hf_nc_measurement_parameters_nc_reporting_period_t),
  2928. CSN_DESCR_END (NC_Measurement_Parameters_t)
  2929. static const
  2930. CSN_DESCR_BEGIN(NC_Measurement_Parameters_with_Frequency_List_t)
  2931. M_UINT (NC_Measurement_Parameters_with_Frequency_List_t, NETWORK_CONTROL_ORDER, 2, &hf_nc_measurement_parameters_with_frequency_list_network_control_order),
  2932. M_NEXT_EXIST (NC_Measurement_Parameters_with_Frequency_List_t, Exist_NC, 3),
  2933. M_UINT (NC_Measurement_Parameters_with_Frequency_List_t, NC_NON_DRX_PERIOD, 3, &hf_nc_measurement_parameters_with_frequency_list_nc_non_drx_period),
  2934. M_UINT (NC_Measurement_Parameters_with_Frequency_List_t, NC_REPORTING_PERIOD_I, 3, &hf_nc_measurement_parameters_with_frequency_list_nc_reporting_period_i),
  2935. M_UINT (NC_Measurement_Parameters_with_Frequency_List_t, NC_REPORTING_PERIOD_T, 3, &hf_nc_measurement_parameters_with_frequency_list_nc_reporting_period_t),
  2936. M_NEXT_EXIST (NC_Measurement_Parameters_with_Frequency_List_t, Exist_NC_FREQUENCY_LIST, 1),
  2937. M_TYPE (NC_Measurement_Parameters_with_Frequency_List_t, NC_Frequency_list, NC_Frequency_list_t),
  2938. CSN_DESCR_END (NC_Measurement_Parameters_with_Frequency_List_t)
  2939. /* < Packet Cell Change Order message contents > */
  2940. static const
  2941. CSN_DESCR_BEGIN(BA_IND_t)
  2942. M_UINT (BA_IND_t, BA_IND, 1, &hf_ba_ind_ba_ind),
  2943. M_UINT (BA_IND_t, BA_IND_3G, 1, &hf_ba_ind_ba_ind_3g),
  2944. CSN_DESCR_END (BA_IND_t)
  2945. static const
  2946. CSN_DESCR_BEGIN(GPRSReportPriority_t)
  2947. M_UINT (GPRSReportPriority_t, NUMBER_CELLS, 7, &hf_gprsreportpriority_number_cells),
  2948. M_VAR_BITMAP (GPRSReportPriority_t, REPORT_PRIORITY, NUMBER_CELLS, 0),
  2949. CSN_DESCR_END (GPRSReportPriority_t)
  2950. static const
  2951. CSN_DESCR_BEGIN(OffsetThreshold_t)
  2952. M_UINT (OffsetThreshold_t, REPORTING_OFFSET, 3, &hf_offsetthreshold_reporting_offset),
  2953. M_UINT (OffsetThreshold_t, REPORTING_THRESHOLD, 3, &hf_offsetthreshold_reporting_threshold),
  2954. CSN_DESCR_END (OffsetThreshold_t)
  2955. static const
  2956. CSN_DESCR_BEGIN(GPRSMeasurementParams_PMO_PCCO_t)
  2957. M_NEXT_EXIST (GPRSMeasurementParams_PMO_PCCO_t, Exist_MULTI_BAND_REPORTING, 1),
  2958. M_UINT (GPRSMeasurementParams_PMO_PCCO_t, MULTI_BAND_REPORTING, 2, &hf_gprsmeasurementparams_pmo_pcco_multi_band_reporting),
  2959. M_NEXT_EXIST (GPRSMeasurementParams_PMO_PCCO_t, Exist_SERVING_BAND_REPORTING, 1),
  2960. M_UINT (GPRSMeasurementParams_PMO_PCCO_t, SERVING_BAND_REPORTING, 2, &hf_gprsmeasurementparams_pmo_pcco_serving_band_reporting),
  2961. M_UINT (GPRSMeasurementParams_PMO_PCCO_t, SCALE_ORD, 2, &hf_gprsmeasurementparams_pmo_pcco_scale_ord),
  2962. M_NEXT_EXIST (GPRSMeasurementParams_PMO_PCCO_t, Exist_OffsetThreshold900, 1),
  2963. M_TYPE (GPRSMeasurementParams_PMO_PCCO_t, OffsetThreshold900, OffsetThreshold_t),
  2964. M_NEXT_EXIST (GPRSMeasurementParams_PMO_PCCO_t, Exist_OffsetThreshold1800, 1),
  2965. M_TYPE (GPRSMeasurementParams_PMO_PCCO_t, OffsetThreshold1800, OffsetThreshold_t),
  2966. M_NEXT_EXIST (GPRSMeasurementParams_PMO_PCCO_t, Exist_OffsetThreshold400, 1),
  2967. M_TYPE (GPRSMeasurementParams_PMO_PCCO_t, OffsetThreshold400, OffsetThreshold_t),
  2968. M_NEXT_EXIST (GPRSMeasurementParams_PMO_PCCO_t, Exist_OffsetThreshold1900, 1),
  2969. M_TYPE (GPRSMeasurementParams_PMO_PCCO_t, OffsetThreshold1900, OffsetThreshold_t),
  2970. M_NEXT_EXIST (GPRSMeasurementParams_PMO_PCCO_t, Exist_OffsetThreshold850, 1),
  2971. M_TYPE (GPRSMeasurementParams_PMO_PCCO_t, OffsetThreshold850, OffsetThreshold_t),
  2972. CSN_DESCR_END (GPRSMeasurementParams_PMO_PCCO_t)
  2973. static const
  2974. CSN_DESCR_BEGIN(GPRSMeasurementParams3G_t)
  2975. M_UINT (GPRSMeasurementParams3G_t, Qsearch_p, 4, &hf_gprsmeasurementparams3g_qsearch_p),
  2976. M_UINT (GPRSMeasurementParams3G_t, SearchPrio3G, 1, &hf_gprsmeasurementparams3g_searchprio3g),
  2977. M_NEXT_EXIST (GPRSMeasurementParams3G_t, existRepParamsFDD, 2),
  2978. M_UINT (GPRSMeasurementParams3G_t, RepQuantFDD, 1, &hf_gprsmeasurementparams3g_repquantfdd),
  2979. M_UINT (GPRSMeasurementParams3G_t, MultiratReportingFDD, 2, &hf_gprsmeasurementparams3g_multiratreportingfdd),
  2980. M_NEXT_EXIST (GPRSMeasurementParams3G_t, existReportingParamsFDD, 2),
  2981. M_UINT (GPRSMeasurementParams3G_t, ReportingOffsetFDD, 3, &hf_gprsmeasurementparams3g_reportingoffsetfdd),
  2982. M_UINT (GPRSMeasurementParams3G_t, ReportingThresholdFDD, 3, &hf_gprsmeasurementparams3g_reportingthresholdfdd),
  2983. M_NEXT_EXIST (GPRSMeasurementParams3G_t, existMultiratReportingTDD, 1),
  2984. M_UINT (GPRSMeasurementParams3G_t, MultiratReportingTDD, 2, &hf_gprsmeasurementparams3g_multiratreportingtdd),
  2985. M_NEXT_EXIST (GPRSMeasurementParams3G_t, existOffsetThresholdTDD, 2),
  2986. M_UINT (GPRSMeasurementParams3G_t, ReportingOffsetTDD, 3, &hf_gprsmeasurementparams3g_reportingoffsettdd),
  2987. M_UINT (GPRSMeasurementParams3G_t, ReportingThresholdTDD, 3, &hf_gprsmeasurementparams3g_reportingthresholdtdd),
  2988. CSN_DESCR_END (GPRSMeasurementParams3G_t)
  2989. static const
  2990. CSN_DESCR_BEGIN(MultiratParams3G_t)
  2991. M_NEXT_EXIST (MultiratParams3G_t, existMultiratReporting, 1),
  2992. M_UINT (MultiratParams3G_t, MultiratReporting, 2, &hf_multiratparams3g_multiratreporting),
  2993. M_NEXT_EXIST (MultiratParams3G_t, existOffsetThreshold, 1),
  2994. M_TYPE (MultiratParams3G_t, OffsetThreshold, OffsetThreshold_t),
  2995. CSN_DESCR_END (MultiratParams3G_t)
  2996. static const
  2997. CSN_DESCR_BEGIN(ENH_GPRSMeasurementParams3G_PMO_t)
  2998. M_UINT (ENH_GPRSMeasurementParams3G_PMO_t, Qsearch_P, 4, &hf_enh_gprsmeasurementparams3g_pmo_qsearch_p),
  2999. M_UINT (ENH_GPRSMeasurementParams3G_PMO_t, SearchPrio3G, 1, &hf_enh_gprsmeasurementparams3g_pmo_searchprio3g),
  3000. M_NEXT_EXIST (ENH_GPRSMeasurementParams3G_PMO_t, existRepParamsFDD, 2),
  3001. M_UINT (ENH_GPRSMeasurementParams3G_PMO_t, RepQuantFDD, 1, &hf_enh_gprsmeasurementparams3g_pmo_repquantfdd),
  3002. M_UINT (ENH_GPRSMeasurementParams3G_PMO_t, MultiratReportingFDD, 2, &hf_enh_gprsmeasurementparams3g_pmo_multiratreportingfdd),
  3003. M_NEXT_EXIST (ENH_GPRSMeasurementParams3G_PMO_t, existOffsetThreshold, 1),
  3004. M_TYPE (ENH_GPRSMeasurementParams3G_PMO_t, OffsetThreshold, OffsetThreshold_t),
  3005. M_TYPE (ENH_GPRSMeasurementParams3G_PMO_t, ParamsTDD, MultiratParams3G_t),
  3006. M_TYPE (ENH_GPRSMeasurementParams3G_PMO_t, ParamsCDMA2000, MultiratParams3G_t),
  3007. CSN_DESCR_END (ENH_GPRSMeasurementParams3G_PMO_t)
  3008. static const
  3009. CSN_DESCR_BEGIN(ENH_GPRSMeasurementParams3G_PCCO_t)
  3010. M_UINT (ENH_GPRSMeasurementParams3G_PCCO_t, Qsearch_P, 4, &hf_enh_gprsmeasurementparams3g_pcco_qsearch_p),
  3011. M_UINT (ENH_GPRSMeasurementParams3G_PCCO_t, SearchPrio3G, 1, &hf_enh_gprsmeasurementparams3g_pcco_searchprio3g),
  3012. M_NEXT_EXIST (ENH_GPRSMeasurementParams3G_PCCO_t, existRepParamsFDD, 2),
  3013. M_UINT (ENH_GPRSMeasurementParams3G_PCCO_t, RepQuantFDD, 1, &hf_enh_gprsmeasurementparams3g_pcco_repquantfdd),
  3014. M_UINT (ENH_GPRSMeasurementParams3G_PCCO_t, MultiratReportingFDD, 2, &hf_enh_gprsmeasurementparams3g_pcco_multiratreportingfdd),
  3015. M_NEXT_EXIST (ENH_GPRSMeasurementParams3G_PCCO_t, existOffsetThreshold, 1),
  3016. M_TYPE (ENH_GPRSMeasurementParams3G_PCCO_t, OffsetThreshold, OffsetThreshold_t),
  3017. M_TYPE (ENH_GPRSMeasurementParams3G_PCCO_t, ParamsTDD, MultiratParams3G_t),
  3018. CSN_DESCR_END (ENH_GPRSMeasurementParams3G_PCCO_t)
  3019. static const
  3020. CSN_DESCR_BEGIN(N2_t)
  3021. M_UINT (N2_t, REMOVED_3GCELL_INDEX, 7, &hf_n2_removed_3gcell_index),
  3022. M_UINT (N2_t, CELL_DIFF_LENGTH_3G, 3, &hf_n2_cell_diff_length_3g),
  3023. M_VAR_BITMAP (N2_t, CELL_DIFF_3G, CELL_DIFF_LENGTH_3G, 0),
  3024. CSN_DESCR_END (N2_t)
  3025. static const
  3026. CSN_DESCR_BEGIN (N1_t)
  3027. M_UINT_OFFSET (N1_t, N2_Count, 5, 1), /*offset 1*/
  3028. M_VAR_TARRAY (N1_t, N2s, N2_t, N2_Count),
  3029. CSN_DESCR_END (N1_t)
  3030. static const
  3031. CSN_DESCR_BEGIN (Removed3GCellDescription_t)
  3032. M_UINT_OFFSET (Removed3GCellDescription_t, N1_Count, 2, 1), /* offset 1 */
  3033. M_VAR_TARRAY (Removed3GCellDescription_t, N1s, N1_t, N1_Count),
  3034. CSN_DESCR_END (Removed3GCellDescription_t)
  3035. static const
  3036. CSN_DESCR_BEGIN(CDMA2000_Description_t)
  3037. M_UINT (CDMA2000_Description_t, Complete_This, 1, &hf_cdma2000_description_complete_this),
  3038. CSN_ERROR (CDMA2000_Description_t, "Not Implemented", CSN_ERROR_STREAM_NOT_SUPPORTED),
  3039. CSN_DESCR_END (CDMA2000_Description_t)
  3040. static const guint8 NR_OF_FDD_CELLS_map[32] = {0, 10, 19, 28, 36, 44, 52, 60, 67, 74, 81, 88, 95, 102, 109, 116, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  3041. CSN_CallBackStatus_t callback_UTRAN_FDD_map_NrOfFrequencies(proto_tree *tree _U_, tvbuff_t *tvb _U_, void* param1, void* param2, int bit_offset _U_, int ett_csn1 _U_)
  3042. { /* TS 44.060 Table 11.2.9b.2.a */
  3043. guint8 * pNrOfCells = (guint8*)param1;
  3044. guint8 * pBitsInCellInfo = (guint8*)param2;
  3045. if( *pNrOfCells < 32 )
  3046. {
  3047. *pBitsInCellInfo = NR_OF_FDD_CELLS_map[*pNrOfCells];
  3048. }
  3049. else
  3050. {
  3051. *pBitsInCellInfo = 0;
  3052. }
  3053. return 0;
  3054. }
  3055. CSN_CallBackStatus_t callback_UTRAN_FDD_compute_FDD_CELL_INFORMATION(proto_tree *tree, tvbuff_t *tvb, void* param1, void* param2 _U_, int bit_offset, int ett_csn1)
  3056. {
  3057. proto_item *ti;
  3058. proto_tree *subtree;
  3059. UTRAN_FDD_NeighbourCells_t * pUtranFddNcell = (UTRAN_FDD_NeighbourCells_t*)param1;
  3060. gint xdd_cell_info, wsize, nwi, jwi, w[64], i, iused;
  3061. gint curr_bit_offset, idx;
  3062. curr_bit_offset = bit_offset;
  3063. idx = pUtranFddNcell->BitsInCellInfo;
  3064. if( idx > 0 )
  3065. {
  3066. ti = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, 1, "FDD_CELL_INFORMATION: ");
  3067. subtree = proto_item_add_subtree(ti, ett_csn1);
  3068. if (pUtranFddNcell->Indic0)
  3069. {
  3070. proto_tree_add_text(tree,tvb, curr_bit_offset>>3, 0, "Scrambling Code: %d", 0);
  3071. proto_tree_add_text(tree,tvb, curr_bit_offset>>3, 0, "Diversity: %d", 0);
  3072. }
  3073. if (idx)
  3074. {
  3075. wsize = 10;
  3076. nwi = 1;
  3077. jwi = 0;
  3078. i = 1;
  3079. while (idx > 0)
  3080. {
  3081. w[i] = tvb_get_bits(tvb, curr_bit_offset, wsize, ENC_BIG_ENDIAN);
  3082. curr_bit_offset += wsize;
  3083. idx -= wsize;
  3084. if (w[i] == 0)
  3085. {
  3086. idx = 0;
  3087. break;
  3088. }
  3089. if (++jwi==nwi)
  3090. {
  3091. jwi = 0;
  3092. nwi <<= 1;
  3093. wsize--;
  3094. }
  3095. i++;
  3096. }
  3097. if (idx < 0)
  3098. {
  3099. curr_bit_offset += idx;
  3100. }
  3101. iused = i-1;
  3102. for (i=1; i <= iused; i++)
  3103. {
  3104. xdd_cell_info = f_k(i, w, 1024);
  3105. proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 0, "Scrambling Code: %d", xdd_cell_info & 0x01FF);
  3106. proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 0, "Diversity: %d", (xdd_cell_info >> 9) & 0x01);
  3107. }
  3108. }
  3109. }
  3110. return curr_bit_offset - bit_offset;
  3111. }
  3112. static const
  3113. CSN_DESCR_BEGIN(UTRAN_FDD_NeighbourCells_t)
  3114. M_UINT (UTRAN_FDD_NeighbourCells_t, ZERO, 1, &hf_utran_fdd_neighbourcells_zero),
  3115. M_UINT (UTRAN_FDD_NeighbourCells_t, UARFCN, 14, &hf_utran_fdd_neighbourcells_uarfcn),
  3116. M_UINT (UTRAN_FDD_NeighbourCells_t, Indic0, 1, &hf_utran_fdd_neighbourcells_indic0),
  3117. M_UINT (UTRAN_FDD_NeighbourCells_t, NrOfCells, 5, &hf_utran_fdd_neighbourcells_nrofcells),
  3118. M_VAR_BITMAP (UTRAN_FDD_NeighbourCells_t, CellInfo, BitsInCellInfo, 0),
  3119. CSN_DESCR_END (UTRAN_FDD_NeighbourCells_t)
  3120. static const
  3121. CSN_DESCR_BEGIN(UTRAN_FDD_Description_t)
  3122. M_NEXT_EXIST (UTRAN_FDD_Description_t, existBandwidth, 1),
  3123. M_UINT (UTRAN_FDD_Description_t, Bandwidth, 3, &hf_utran_fdd_description_bandwidth),
  3124. M_REC_TARRAY (UTRAN_FDD_Description_t, CellParams, UTRAN_FDD_NeighbourCells_t, NrOfFrequencies),
  3125. CSN_DESCR_END (UTRAN_FDD_Description_t)
  3126. static const guint8 NR_OF_TDD_CELLS_map[32] = {0, 9, 17, 25, 32, 39, 46, 53, 59, 65, 71, 77, 83, 89, 95, 101, 106, 111, 116, 121, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  3127. CSN_CallBackStatus_t callback_UTRAN_TDD_map_NrOfFrequencies(proto_tree *tree _U_, tvbuff_t *tvb _U_, void* param1, void* param2, int bit_offset _U_, int ett_csn1 _U_)
  3128. { /* TS 44.060 Table 11.2.9b.2.b */
  3129. guint8 * pNrOfCells = (guint8*)param1;
  3130. guint8 * pBitsInCellInfo = (guint8*)param2;
  3131. if( *pNrOfCells < 32 )
  3132. {
  3133. *pBitsInCellInfo = NR_OF_TDD_CELLS_map[*pNrOfCells];
  3134. }
  3135. else
  3136. {
  3137. *pBitsInCellInfo = 0;
  3138. }
  3139. return 0;
  3140. }
  3141. CSN_CallBackStatus_t callback_UTRAN_TDD_compute_TDD_CELL_INFORMATION(proto_tree *tree, tvbuff_t *tvb, void* param1, void* param2 _U_, int bit_offset, int ett_csn1)
  3142. {
  3143. proto_item *ti;
  3144. proto_tree *subtree;
  3145. UTRAN_TDD_NeighbourCells_t * pUtranTddNcell = (UTRAN_TDD_NeighbourCells_t*)param1;
  3146. gint xdd_cell_info, wsize, nwi, jwi, w[64], i, iused;
  3147. gint curr_bit_offset, idx;
  3148. curr_bit_offset = bit_offset;
  3149. idx = pUtranTddNcell->BitsInCellInfo;
  3150. if( idx > 0 )
  3151. {
  3152. ti = proto_tree_add_text(tree, tvb, curr_bit_offset>>3, 1, "TDD_CELL_INFORMATION: ");
  3153. subtree = proto_item_add_subtree(ti, ett_csn1);
  3154. if (pUtranTddNcell->Indic0)
  3155. {
  3156. proto_tree_add_text(tree,tvb, curr_bit_offset>>3, 0, "Cell Parameter: %d", 0);
  3157. proto_tree_add_text(tree,tvb, curr_bit_offset>>3, 0, "Sync Case TSTD: %d", 0);
  3158. proto_tree_add_text(tree,tvb, curr_bit_offset>>3, 0, "Diversity TDD: %d", 0);
  3159. }
  3160. if (idx)
  3161. {
  3162. wsize = 10;
  3163. nwi = 1;
  3164. jwi = 0;
  3165. i = 1;
  3166. while (idx > 0)
  3167. {
  3168. w[i] = tvb_get_bits(tvb, curr_bit_offset, wsize, ENC_BIG_ENDIAN);
  3169. curr_bit_offset += wsize;
  3170. idx -= wsize;
  3171. if (w[i] == 0)
  3172. {
  3173. idx = 0;
  3174. break;
  3175. }
  3176. if (++jwi==nwi)
  3177. {
  3178. jwi = 0;
  3179. nwi <<= 1;
  3180. wsize--;
  3181. }
  3182. i++;
  3183. }
  3184. if (idx < 0)
  3185. {
  3186. curr_bit_offset += idx;
  3187. }
  3188. iused = i-1;
  3189. for (i=1; i <= iused; i++)
  3190. {
  3191. xdd_cell_info = f_k(i, w, 1024);
  3192. proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 0, "Cell Parameter: %d", xdd_cell_info & 0x007F);
  3193. proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 0, "Sync Case TSTD: %d", (xdd_cell_info >> 7) & 0x01);
  3194. proto_tree_add_text(subtree,tvb, curr_bit_offset>>3, 0, "Diversity TDD: %d", (xdd_cell_info >> 8) & 0x01);
  3195. }
  3196. }
  3197. }
  3198. return curr_bit_offset - bit_offset;
  3199. }
  3200. static const
  3201. CSN_DESCR_BEGIN(UTRAN_TDD_NeighbourCells_t)
  3202. M_UINT (UTRAN_TDD_NeighbourCells_t, ZERO, 1, &hf_utran_tdd_neighbourcells_zero),
  3203. M_UINT (UTRAN_TDD_NeighbourCells_t, UARFCN, 14, &hf_utran_tdd_neighbourcells_uarfcn),
  3204. M_UINT (UTRAN_TDD_NeighbourCells_t, Indic0, 1, &hf_utran_tdd_neighbourcells_indic0),
  3205. M_UINT (UTRAN_TDD_NeighbourCells_t, NrOfCells, 5, &hf_utran_tdd_neighbourcells_nrofcells),
  3206. M_CALLBACK (UTRAN_TDD_NeighbourCells_t, callback_UTRAN_TDD_map_NrOfFrequencies, NrOfCells, BitsInCellInfo),
  3207. M_CALLBACK (UTRAN_TDD_NeighbourCells_t, callback_UTRAN_TDD_compute_TDD_CELL_INFORMATION, ZERO, CellInfo),
  3208. CSN_DESCR_END (UTRAN_TDD_NeighbourCells_t)
  3209. static const
  3210. CSN_DESCR_BEGIN(UTRAN_TDD_Description_t)
  3211. M_NEXT_EXIST (UTRAN_TDD_Description_t, existBandwidth, 1),
  3212. M_UINT (UTRAN_TDD_Description_t, Bandwidth, 3, &hf_utran_tdd_description_bandwidth),
  3213. M_REC_TARRAY (UTRAN_TDD_Description_t, CellParams, UTRAN_TDD_NeighbourCells_t, NrOfFrequencies),
  3214. CSN_DESCR_END (UTRAN_TDD_Description_t)
  3215. static const
  3216. CSN_DESCR_BEGIN(NeighbourCellDescription3G_PMO_t)
  3217. M_NEXT_EXIST (NeighbourCellDescription3G_PMO_t, Exist_Index_Start_3G, 1),
  3218. M_UINT (NeighbourCellDescription3G_PMO_t, Index_Start_3G, 7, &hf_index_start_3g),
  3219. M_NEXT_EXIST (NeighbourCellDescription3G_PMO_t, Exist_Absolute_Index_Start_EMR, 1),
  3220. M_UINT (NeighbourCellDescription3G_PMO_t, Absolute_Index_Start_EMR, 7, &hf_absolute_index_start_emr),
  3221. M_NEXT_EXIST (NeighbourCellDescription3G_PMO_t, Exist_UTRAN_FDD_Description, 1),
  3222. M_TYPE (NeighbourCellDescription3G_PMO_t, UTRAN_FDD_Description, UTRAN_FDD_Description_t),
  3223. M_NEXT_EXIST (NeighbourCellDescription3G_PMO_t, Exist_UTRAN_TDD_Description, 1),
  3224. M_TYPE (NeighbourCellDescription3G_PMO_t, UTRAN_TDD_Description, UTRAN_TDD_Description_t),
  3225. M_NEXT_EXIST (NeighbourCellDescription3G_PMO_t, Exist_CDMA2000_Description, 1),
  3226. M_TYPE (NeighbourCellDescription3G_PMO_t, CDMA2000_Description, CDMA2000_Description_t),
  3227. M_NEXT_EXIST (NeighbourCellDescription3G_PMO_t, Exist_Removed3GCellDescription, 1),
  3228. M_TYPE (NeighbourCellDescription3G_PMO_t, Removed3GCellDescription, Removed3GCellDescription_t),
  3229. CSN_DESCR_END (NeighbourCellDescription3G_PMO_t)
  3230. static const
  3231. CSN_DESCR_BEGIN(NeighbourCellDescription3G_PCCO_t)
  3232. M_NEXT_EXIST (NeighbourCellDescription3G_PCCO_t, Exist_Index_Start_3G, 1),
  3233. M_UINT (NeighbourCellDescription3G_PCCO_t, Index_Start_3G, 7, &hf_index_start_3g),
  3234. M_NEXT_EXIST (NeighbourCellDescription3G_PCCO_t, Exist_Absolute_Index_Start_EMR, 1),
  3235. M_UINT (NeighbourCellDescription3G_PCCO_t, Absolute_Index_Start_EMR, 7, &hf_absolute_index_start_emr),
  3236. M_NEXT_EXIST (NeighbourCellDescription3G_PCCO_t, Exist_UTRAN_FDD_Description, 1),
  3237. M_TYPE (NeighbourCellDescription3G_PCCO_t, UTRAN_FDD_Description, UTRAN_FDD_Description_t),
  3238. M_NEXT_EXIST (NeighbourCellDescription3G_PCCO_t, Exist_UTRAN_TDD_Description, 1),
  3239. M_TYPE (NeighbourCellDescription3G_PCCO_t, UTRAN_TDD_Description, UTRAN_TDD_Description_t),
  3240. M_NEXT_EXIST (NeighbourCellDescription3G_PCCO_t, Exist_Removed3GCellDescription, 1),
  3241. M_TYPE (NeighbourCellDescription3G_PCCO_t, Removed3GCellDescription, Removed3GCellDescription_t),
  3242. CSN_DESCR_END (NeighbourCellDescription3G_PCCO_t)
  3243. static const
  3244. CSN_DESCR_BEGIN(ENH_Measurement_Parameters_PMO_t)
  3245. M_UNION (ENH_Measurement_Parameters_PMO_t, 2),
  3246. M_TYPE (ENH_Measurement_Parameters_PMO_t, u.BA_IND, BA_IND_t),
  3247. M_UINT (ENH_Measurement_Parameters_PMO_t, u.PSI3_CHANGE_MARK, 2, &hf_psi3_change_mark),
  3248. M_UINT (ENH_Measurement_Parameters_PMO_t, PMO_IND, 1, &hf_enh_measurement_parameters_pmo_pmo_ind),
  3249. M_UINT (ENH_Measurement_Parameters_PMO_t, REPORT_TYPE, 1, &hf_enh_measurement_parameters_pmo_report_type),
  3250. M_UINT (ENH_Measurement_Parameters_PMO_t, REPORTING_RATE, 1, &hf_enh_measurement_parameters_pmo_reporting_rate),
  3251. M_UINT (ENH_Measurement_Parameters_PMO_t, INVALID_BSIC_REPORTING, 1, &hf_enh_measurement_parameters_pmo_invalid_bsic_reporting),
  3252. M_NEXT_EXIST (ENH_Measurement_Parameters_PMO_t, Exist_NeighbourCellDescription3G, 1),
  3253. M_TYPE (ENH_Measurement_Parameters_PMO_t, NeighbourCellDescription3G, NeighbourCellDescription3G_PMO_t),
  3254. M_NEXT_EXIST (ENH_Measurement_Parameters_PMO_t, Exist_GPRSReportPriority, 1),
  3255. M_TYPE (ENH_Measurement_Parameters_PMO_t, GPRSReportPriority, GPRSReportPriority_t),
  3256. M_NEXT_EXIST (ENH_Measurement_Parameters_PMO_t, Exist_GPRSMeasurementParams, 1),
  3257. M_TYPE (ENH_Measurement_Parameters_PMO_t, GPRSMeasurementParams, GPRSMeasurementParams_PMO_PCCO_t),
  3258. M_NEXT_EXIST (ENH_Measurement_Parameters_PMO_t, Exist_GPRSMeasurementParams3G, 1),
  3259. M_TYPE (ENH_Measurement_Parameters_PMO_t, GPRSMeasurementParams3G, ENH_GPRSMeasurementParams3G_PMO_t),
  3260. CSN_DESCR_END (ENH_Measurement_Parameters_PMO_t)
  3261. static const
  3262. CSN_DESCR_BEGIN(ENH_Measurement_Parameters_PCCO_t)
  3263. M_UNION (ENH_Measurement_Parameters_PCCO_t, 2),
  3264. M_TYPE (ENH_Measurement_Parameters_PCCO_t, u.BA_IND, BA_IND_t),
  3265. M_UINT (ENH_Measurement_Parameters_PCCO_t, u.PSI3_CHANGE_MARK, 2, &hf_psi3_change_mark),
  3266. M_UINT (ENH_Measurement_Parameters_PCCO_t, PMO_IND, 1, &hf_enh_measurement_parameters_pcco_pmo_ind),
  3267. M_UINT (ENH_Measurement_Parameters_PCCO_t, REPORT_TYPE, 1, &hf_enh_measurement_parameters_pcco_report_type),
  3268. M_UINT (ENH_Measurement_Parameters_PCCO_t, REPORTING_RATE, 1, &hf_enh_measurement_parameters_pcco_reporting_rate),
  3269. M_UINT (ENH_Measurement_Parameters_PCCO_t, INVALID_BSIC_REPORTING, 1, &hf_enh_measurement_parameters_pcco_invalid_bsic_reporting),
  3270. M_NEXT_EXIST (ENH_Measurement_Parameters_PCCO_t, Exist_NeighbourCellDescription3G, 1),
  3271. M_TYPE (ENH_Measurement_Parameters_PCCO_t, NeighbourCellDescription3G, NeighbourCellDescription3G_PCCO_t),
  3272. M_NEXT_EXIST (ENH_Measurement_Parameters_PCCO_t, Exist_GPRSReportPriority, 1),
  3273. M_TYPE (ENH_Measurement_Parameters_PCCO_t, GPRSReportPriority, GPRSReportPriority_t),
  3274. M_NEXT_EXIST (ENH_Measurement_Parameters_PCCO_t, Exist_GPRSMeasurementParams, 1),
  3275. M_TYPE (ENH_Measurement_Parameters_PCCO_t, GPRSMeasurementParams, GPRSMeasurementParams_PMO_PCCO_t),
  3276. M_NEXT_EXIST (ENH_Measurement_Parameters_PCCO_t, Exist_GPRSMeasurementParams3G, 1),
  3277. M_TYPE (ENH_Measurement_Parameters_PCCO_t, GPRSMeasurementParams3G, ENH_GPRSMeasurementParams3G_PCCO_t),
  3278. CSN_DESCR_END (ENH_Measurement_Parameters_PCCO_t)
  3279. static const
  3280. CSN_DESCR_BEGIN(CCN_Support_Description_t)
  3281. M_UINT (CCN_Support_Description_t, NUMBER_CELLS, 7, &hf_ccn_support_description_number_cells),
  3282. M_VAR_BITMAP (CCN_Support_Description_t, CCN_SUPPORTED, NUMBER_CELLS, 0),
  3283. CSN_DESCR_END (CCN_Support_Description_t)
  3284. static const
  3285. CSN_DESCR_BEGIN(lu_ModeCellSelectionParameters_t)
  3286. M_UINT (lu_ModeCellSelectionParameters_t, CELL_BAR_QUALIFY_3, 2, &hf_lu_modecellselectionparameters_cell_bar_qualify_3),
  3287. M_NEXT_EXIST (lu_ModeCellSelectionParameters_t, Exist_SI13_Alt_PBCCH_Location, 1),
  3288. M_TYPE (lu_ModeCellSelectionParameters_t, SI13_Alt_PBCCH_Location, SI13_PBCCH_Location_t),
  3289. CSN_DESCR_END (lu_ModeCellSelectionParameters_t)
  3290. static const
  3291. CSN_DESCR_BEGIN(lu_ModeCellSelectionParams_t)
  3292. M_NEXT_EXIST (lu_ModeCellSelectionParams_t, Exist_lu_ModeCellSelectionParams, 1),
  3293. M_TYPE (lu_ModeCellSelectionParams_t, lu_ModeCellSelectionParameters, lu_ModeCellSelectionParameters_t),
  3294. CSN_DESCR_END (lu_ModeCellSelectionParams_t)
  3295. static const
  3296. CSN_DESCR_BEGIN(lu_ModeNeighbourCellParams_t)
  3297. M_TYPE (lu_ModeNeighbourCellParams_t, lu_ModeCellSelectionParameters, lu_ModeCellSelectionParams_t),
  3298. M_UINT (lu_ModeNeighbourCellParams_t, NR_OF_FREQUENCIES, 5, &hf_lu_modeneighbourcellparams_nr_of_frequencies),
  3299. M_VAR_TARRAY (lu_ModeNeighbourCellParams_t, lu_ModeCellSelectionParams, lu_ModeCellSelectionParams_t, NR_OF_FREQUENCIES),
  3300. CSN_DESCR_END (lu_ModeNeighbourCellParams_t)
  3301. static const
  3302. CSN_DESCR_BEGIN(lu_ModeOnlyCellSelection_t)
  3303. M_UINT (lu_ModeOnlyCellSelection_t, CELL_BAR_QUALIFY_3, 2, &hf_lu_modeonlycellselection_cell_bar_qualify_3),
  3304. M_UINT (lu_ModeOnlyCellSelection_t, SAME_RA_AS_SERVING_CELL, 1, &hf_lu_modeonlycellselection_same_ra_as_serving_cell),
  3305. M_NEXT_EXIST (lu_ModeOnlyCellSelection_t, Exist_RXLEV_and_TXPWR, 2),
  3306. M_UINT (lu_ModeOnlyCellSelection_t, GPRS_RXLEV_ACCESS_MIN, 6, &hf_lu_modeonlycellselection_gprs_rxlev_access_min),
  3307. M_UINT (lu_ModeOnlyCellSelection_t, GPRS_MS_TXPWR_MAX_CCH, 5, &hf_lu_modeonlycellselection_gprs_ms_txpwr_max_cch),
  3308. M_NEXT_EXIST (lu_ModeOnlyCellSelection_t, Exist_OFFSET_and_TIME, 2),
  3309. M_UINT (lu_ModeOnlyCellSelection_t, GPRS_TEMPORARY_OFFSET, 3, &hf_lu_modeonlycellselection_gprs_temporary_offset),
  3310. M_UINT (lu_ModeOnlyCellSelection_t, GPRS_PENALTY_TIME, 5, &hf_lu_modeonlycellselection_gprs_penalty_time),
  3311. M_NEXT_EXIST (lu_ModeOnlyCellSelection_t, Exist_GPRS_RESELECT_OFFSET, 1),
  3312. M_UINT (lu_ModeOnlyCellSelection_t, GPRS_RESELECT_OFFSET, 5, &hf_lu_modeonlycellselection_gprs_reselect_offset),
  3313. M_NEXT_EXIST (lu_ModeOnlyCellSelection_t, Exist_HCS, 1),
  3314. M_TYPE (lu_ModeOnlyCellSelection_t, HCS, HCS_t),
  3315. M_NEXT_EXIST (lu_ModeOnlyCellSelection_t, Exist_SI13_Alt_PBCCH_Location, 1),
  3316. M_TYPE (lu_ModeOnlyCellSelection_t, SI13_Alt_PBCCH_Location, SI13_PBCCH_Location_t),
  3317. CSN_DESCR_END (lu_ModeOnlyCellSelection_t)
  3318. static const
  3319. CSN_DESCR_BEGIN(lu_ModeOnlyCellSelectionParamsWithFreqDiff_t)
  3320. /*FREQUENCY_DIFF is really an integer but the number of bits to decode it are stored in FREQ_DIFF_LENGTH*/
  3321. M_VAR_BITMAP (lu_ModeOnlyCellSelectionParamsWithFreqDiff_t, FREQUENCY_DIFF, FREQ_DIFF_LENGTH, 0),
  3322. M_UINT (lu_ModeOnlyCellSelectionParamsWithFreqDiff_t, BSIC, 6, &hf_lu_modeonlycellselectionparamswithfreqdiff_bsic),
  3323. M_NEXT_EXIST (lu_ModeOnlyCellSelectionParamsWithFreqDiff_t, Exist_lu_ModeOnlyCellSelectionParams, 1),
  3324. M_TYPE (lu_ModeOnlyCellSelectionParamsWithFreqDiff_t, lu_ModeOnlyCellSelectionParams, lu_ModeOnlyCellSelection_t),
  3325. CSN_DESCR_END (lu_ModeOnlyCellSelectionParamsWithFreqDiff_t)
  3326. CSN_CallBackStatus_t callback_init_luMode_Cell_Sel_Param_FREQUENCY_DIFF(proto_tree *tree _U_, tvbuff_t *tvb _U_, void* param1, void* param2, int bit_offset _U_, int ett_csn1 _U_)
  3327. {
  3328. guint i;
  3329. guint8 freq_diff_len = *(guint8*)param1;
  3330. lu_ModeOnlyCellSelectionParamsWithFreqDiff_t *pArray = (lu_ModeOnlyCellSelectionParamsWithFreqDiff_t*)param2;
  3331. for( i=0; i<16; i++, pArray++ )
  3332. {
  3333. pArray->FREQ_DIFF_LENGTH = freq_diff_len;
  3334. }
  3335. return 0;
  3336. }
  3337. static const
  3338. CSN_DESCR_BEGIN(Add_lu_ModeOnlyFrequencyList_t)
  3339. M_UINT (Add_lu_ModeOnlyFrequencyList_t, START_FREQUENCY, 10, &hf_add_lu_modeonlyfrequencylist_start_frequency),
  3340. M_UINT (Add_lu_ModeOnlyFrequencyList_t, BSIC, 6, &hf_add_lu_modeonlyfrequencylist_bsic),
  3341. M_NEXT_EXIST (Add_lu_ModeOnlyFrequencyList_t, Exist_lu_ModeCellSelection, 1),
  3342. M_TYPE (Add_lu_ModeOnlyFrequencyList_t, lu_ModeOnlyCellSelection, lu_ModeOnlyCellSelection_t),
  3343. M_UINT (Add_lu_ModeOnlyFrequencyList_t, NR_OF_FREQUENCIES, 5, &hf_add_lu_modeonlyfrequencylist_nr_of_frequencies),
  3344. M_UINT (Add_lu_ModeOnlyFrequencyList_t, FREQ_DIFF_LENGTH, 3, &hf_add_lu_modeonlyfrequencylist_freq_diff_length),
  3345. M_CALLBACK (Add_lu_ModeOnlyFrequencyList_t, callback_init_luMode_Cell_Sel_Param_FREQUENCY_DIFF, FREQ_DIFF_LENGTH, lu_ModeOnlyCellSelectionParamsWithFreqDiff),
  3346. M_VAR_TARRAY (Add_lu_ModeOnlyFrequencyList_t, lu_ModeOnlyCellSelectionParamsWithFreqDiff, lu_ModeOnlyCellSelectionParamsWithFreqDiff_t, NR_OF_FREQUENCIES),
  3347. CSN_DESCR_END (Add_lu_ModeOnlyFrequencyList_t)
  3348. static const
  3349. CSN_DESCR_BEGIN(NC_lu_ModeOnlyCapableCellList_t)
  3350. M_REC_TARRAY (NC_lu_ModeOnlyCapableCellList_t, Add_lu_ModeOnlyFrequencyList, Add_lu_ModeOnlyFrequencyList_t, Count_Add_lu_ModeOnlyFrequencyList),
  3351. CSN_DESCR_END (NC_lu_ModeOnlyCapableCellList_t)
  3352. static const
  3353. CSN_DESCR_BEGIN(GPRS_AdditionalMeasurementParams3G_t)
  3354. M_NEXT_EXIST (GPRS_AdditionalMeasurementParams3G_t, Exist_FDD_REPORTING_THRESHOLD_2, 1),
  3355. M_UINT (GPRS_AdditionalMeasurementParams3G_t, FDD_REPORTING_THRESHOLD_2, 6, &hf_gprs_additionalmeasurementparams3g_fdd_reporting_threshold_2),
  3356. CSN_DESCR_END (GPRS_AdditionalMeasurementParams3G_t)
  3357. static const
  3358. CSN_DESCR_BEGIN(ServingCellPriorityParametersDescription_t)
  3359. M_UINT (ServingCellPriorityParametersDescription_t, GERAN_PRIORITY, 3, &hf_servingcellpriorityparametersdescription_geran_priority),
  3360. M_UINT (ServingCellPriorityParametersDescription_t, THRESH_Priority_Search, 4, &hf_servingcellpriorityparametersdescription_thresh_priority_search),
  3361. M_UINT (ServingCellPriorityParametersDescription_t, THRESH_GSM_low, 4, &hf_servingcellpriorityparametersdescription_thresh_gsm_low),
  3362. M_UINT (ServingCellPriorityParametersDescription_t, H_PRIO, 2, &hf_servingcellpriorityparametersdescription_h_prio),
  3363. M_UINT (ServingCellPriorityParametersDescription_t, T_Reselection, 2, &hf_servingcellpriorityparametersdescription_t_reselection),
  3364. CSN_DESCR_END (ServingCellPriorityParametersDescription_t)
  3365. static const
  3366. CSN_DESCR_BEGIN(RepeatedUTRAN_PriorityParameters_t)
  3367. M_REC_ARRAY (RepeatedUTRAN_PriorityParameters_t, UTRAN_FREQUENCY_INDEX_a, NumberOfFrequencyIndexes, 5),
  3368. M_NEXT_EXIST (RepeatedUTRAN_PriorityParameters_t, existUTRAN_PRIORITY, 1),
  3369. M_UINT (RepeatedUTRAN_PriorityParameters_t, UTRAN_PRIORITY, 3, &hf_repeatedutran_priorityparameters_utran_priority),
  3370. M_UINT (RepeatedUTRAN_PriorityParameters_t, THRESH_UTRAN_high, 5, &hf_repeatedutran_priorityparameters_thresh_utran_high),
  3371. M_NEXT_EXIST (RepeatedUTRAN_PriorityParameters_t, existTHRESH_UTRAN_low, 1),
  3372. M_UINT (RepeatedUTRAN_PriorityParameters_t, THRESH_UTRAN_low, 5, &hf_repeatedutran_priorityparameters_thresh_utran_low),
  3373. M_NEXT_EXIST (RepeatedUTRAN_PriorityParameters_t, existUTRAN_QRXLEVMIN, 1),
  3374. M_UINT (RepeatedUTRAN_PriorityParameters_t, UTRAN_QRXLEVMIN, 5, &hf_repeatedutran_priorityparameters_utran_qrxlevmin),
  3375. CSN_DESCR_END (RepeatedUTRAN_PriorityParameters_t)
  3376. static const
  3377. CSN_DESCR_BEGIN(PriorityParametersDescription3G_PMO_t)
  3378. M_NEXT_EXIST (PriorityParametersDescription3G_PMO_t, existDEFAULT_UTRAN_Parameters, 3),
  3379. M_UINT (PriorityParametersDescription3G_PMO_t, DEFAULT_UTRAN_PRIORITY, 3, &hf_priorityparametersdescription3g_pmo_default_utran_priority),
  3380. M_UINT (PriorityParametersDescription3G_PMO_t, DEFAULT_THRESH_UTRAN, 5, &hf_priorityparametersdescription3g_pmo_default_thresh_utran),
  3381. M_UINT (PriorityParametersDescription3G_PMO_t, DEFAULT_UTRAN_QRXLEVMIN, 5, &hf_priorityparametersdescription3g_pmo_default_utran_qrxlevmin),
  3382. M_REC_TARRAY (PriorityParametersDescription3G_PMO_t, RepeatedUTRAN_PriorityParameters_a, RepeatedUTRAN_PriorityParameters_t, NumberOfPriorityParameters),
  3383. CSN_DESCR_END (PriorityParametersDescription3G_PMO_t)
  3384. static const
  3385. CSN_DESCR_BEGIN(EUTRAN_REPORTING_THRESHOLD_OFFSET_t)
  3386. M_NEXT_EXIST (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, existEUTRAN_FDD_REPORTING_THRESHOLD_OFFSET, 5),
  3387. M_UINT (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, EUTRAN_FDD_REPORTING_THRESHOLD, 3, &hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_threshold),
  3388. M_NEXT_EXIST (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, existEUTRAN_FDD_REPORTING_THRESHOLD_2, 1),
  3389. M_UINT (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, EUTRAN_FDD_REPORTING_THRESHOLD_2, 6, &hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_threshold_2),
  3390. M_NEXT_EXIST (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, existEUTRAN_FDD_REPORTING_OFFSET, 1),
  3391. M_UINT (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, EUTRAN_FDD_REPORTING_OFFSET, 3, &hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_offset),
  3392. M_NEXT_EXIST (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, existEUTRAN_TDD_REPORTING_THRESHOLD_OFFSET, 5),
  3393. M_UINT (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, EUTRAN_TDD_REPORTING_THRESHOLD, 3, &hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_threshold),
  3394. M_NEXT_EXIST (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, existEUTRAN_TDD_REPORTING_THRESHOLD_2, 1),
  3395. M_UINT (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, EUTRAN_TDD_REPORTING_THRESHOLD_2, 6, &hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_threshold_2),
  3396. M_NEXT_EXIST (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, existEUTRAN_TDD_REPORTING_OFFSET, 1),
  3397. M_UINT (EUTRAN_REPORTING_THRESHOLD_OFFSET_t, EUTRAN_TDD_REPORTING_OFFSET, 3, &hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_offset),
  3398. CSN_DESCR_END (EUTRAN_REPORTING_THRESHOLD_OFFSET_t)
  3399. static const
  3400. CSN_DESCR_BEGIN(GPRS_EUTRAN_MeasurementParametersDescription_t)
  3401. M_UINT (GPRS_EUTRAN_MeasurementParametersDescription_t, Qsearch_P_EUTRAN, 4, &hf_gprs_eutran_measurementparametersdescription_qsearch_p_eutran),
  3402. M_UINT (GPRS_EUTRAN_MeasurementParametersDescription_t, EUTRAN_REP_QUANT, 1, &hf_gprs_eutran_measurementparametersdescription_eutran_rep_quant),
  3403. M_UINT (GPRS_EUTRAN_MeasurementParametersDescription_t, EUTRAN_MULTIRAT_REPORTING, 2, &hf_gprs_eutran_measurementparametersdescription_eutran_multirat_reporting),
  3404. M_TYPE (GPRS_EUTRAN_MeasurementParametersDescription_t, EUTRAN_REPORTING_THRESHOLD_OFFSET, EUTRAN_REPORTING_THRESHOLD_OFFSET_t),
  3405. CSN_DESCR_END (GPRS_EUTRAN_MeasurementParametersDescription_t)
  3406. static const
  3407. CSN_DESCR_BEGIN(RepeatedEUTRAN_Cells_t)
  3408. M_UINT (RepeatedEUTRAN_Cells_t, EARFCN, 16, &hf_repeatedeutran_cells_earfcn),
  3409. M_NEXT_EXIST (RepeatedEUTRAN_Cells_t, existMeasurementBandwidth, 1),
  3410. M_UINT (RepeatedEUTRAN_Cells_t, MeasurementBandwidth, 3, &hf_repeatedeutran_cells_measurementbandwidth),
  3411. CSN_DESCR_END (RepeatedEUTRAN_Cells_t)
  3412. static const
  3413. CSN_DESCR_BEGIN(RepeatedEUTRAN_NeighbourCells_t)
  3414. M_REC_TARRAY (RepeatedEUTRAN_NeighbourCells_t, EUTRAN_Cells_a, RepeatedEUTRAN_Cells_t, nbrOfEUTRAN_Cells),
  3415. M_NEXT_EXIST (RepeatedEUTRAN_NeighbourCells_t, existEUTRAN_PRIORITY, 1),
  3416. M_UINT (RepeatedEUTRAN_NeighbourCells_t, EUTRAN_PRIORITY, 3, &hf_repeatedeutran_neighbourcells_eutran_priority),
  3417. M_UINT (RepeatedEUTRAN_NeighbourCells_t, THRESH_EUTRAN_high, 5, &hf_repeatedeutran_neighbourcells_thresh_eutran_high),
  3418. M_NEXT_EXIST (RepeatedEUTRAN_NeighbourCells_t, existTHRESH_EUTRAN_low, 1),
  3419. M_UINT (RepeatedEUTRAN_NeighbourCells_t, THRESH_EUTRAN_low, 5, &hf_repeatedeutran_neighbourcells_thresh_eutran_low),
  3420. M_NEXT_EXIST (RepeatedEUTRAN_NeighbourCells_t, existEUTRAN_QRXLEVMIN, 1),
  3421. M_UINT (RepeatedEUTRAN_NeighbourCells_t, EUTRAN_QRXLEVMIN, 5, &hf_repeatedeutran_neighbourcells_eutran_qrxlevmin),
  3422. CSN_DESCR_END (RepeatedEUTRAN_NeighbourCells_t)
  3423. static const
  3424. CSN_DESCR_BEGIN(PCID_Pattern_t)
  3425. M_UINT (PCID_Pattern_t, PCID_Pattern_length, 3, &hf_pcid_pattern_pcid_pattern_length),
  3426. M_VAR_BITMAP (PCID_Pattern_t, PCID_Pattern, PCID_Pattern_length, 1), /* offset 1, 44.060 12.57 */
  3427. M_UINT (PCID_Pattern_t, PCID_Pattern_sense, 1, &hf_pcid_pattern_pcid_pattern_sense),
  3428. CSN_DESCR_END (PCID_Pattern_t)
  3429. static const
  3430. CSN_DESCR_BEGIN(PCID_Group_IE_t)
  3431. M_REC_ARRAY (PCID_Group_IE_t, PCID_a, NumberOfPCIDs, 9),
  3432. M_NEXT_EXIST (PCID_Group_IE_t, existPCID_BITMAP_GROUP, 1),
  3433. M_UINT (PCID_Group_IE_t, PCID_BITMAP_GROUP, 6, &hf_pcid_group_ie_pcid_bitmap_group),
  3434. M_REC_TARRAY (PCID_Group_IE_t, PCID_Pattern_a, PCID_Pattern_t, NumberOfPCID_Patterns),
  3435. CSN_DESCR_END (PCID_Group_IE_t)
  3436. static const
  3437. CSN_DESCR_BEGIN(EUTRAN_FREQUENCY_INDEX_t)
  3438. M_UINT (EUTRAN_FREQUENCY_INDEX_t, EUTRAN_FREQUENCY_INDEX, 3, &hf_eutran_frequency_index_eutran_frequency_index),
  3439. CSN_DESCR_END (EUTRAN_FREQUENCY_INDEX_t)
  3440. static const
  3441. CSN_DESCR_BEGIN(RepeatedEUTRAN_NotAllowedCells_t)
  3442. M_TYPE (RepeatedEUTRAN_NotAllowedCells_t, NotAllowedCells, PCID_Group_IE_t),
  3443. M_REC_TARRAY (RepeatedEUTRAN_NotAllowedCells_t, EUTRAN_FREQUENCY_INDEX_a, EUTRAN_FREQUENCY_INDEX_t, NumberOfFrequencyIndexes),
  3444. CSN_DESCR_END (RepeatedEUTRAN_NotAllowedCells_t)
  3445. static const
  3446. CSN_DESCR_BEGIN(RepeatedEUTRAN_PCID_to_TA_mapping_t)
  3447. M_REC_TARRAY (RepeatedEUTRAN_PCID_to_TA_mapping_t, PCID_ToTA_Mapping_a, PCID_Group_IE_t, NumberOfMappings),
  3448. M_REC_TARRAY (RepeatedEUTRAN_PCID_to_TA_mapping_t, EUTRAN_FREQUENCY_INDEX_a, EUTRAN_FREQUENCY_INDEX_t, NumberOfFrequencyIndexes),
  3449. CSN_DESCR_END (RepeatedEUTRAN_PCID_to_TA_mapping_t)
  3450. static const
  3451. CSN_DESCR_BEGIN(EUTRAN_ParametersDescription_PMO_t)
  3452. M_UINT (EUTRAN_ParametersDescription_PMO_t, EUTRAN_CCN_ACTIVE, 1, &hf_eutran_parametersdescription_pmo_eutran_ccn_active),
  3453. M_NEXT_EXIST (EUTRAN_ParametersDescription_PMO_t, existGPRS_EUTRAN_MeasurementParametersDescription, 1),
  3454. M_TYPE (EUTRAN_ParametersDescription_PMO_t, GPRS_EUTRAN_MeasurementParametersDescription, GPRS_EUTRAN_MeasurementParametersDescription_t),
  3455. M_REC_TARRAY (EUTRAN_ParametersDescription_PMO_t, RepeatedEUTRAN_NeighbourCells_a, RepeatedEUTRAN_NeighbourCells_t, nbrOfRepeatedEUTRAN_NeighbourCellsStructs),
  3456. M_REC_TARRAY (EUTRAN_ParametersDescription_PMO_t, RepeatedEUTRAN_NotAllowedCells_a, RepeatedEUTRAN_NotAllowedCells_t, NumberOfNotAllowedCells),
  3457. M_REC_TARRAY (EUTRAN_ParametersDescription_PMO_t, RepeatedEUTRAN_PCID_to_TA_mapping_a, RepeatedEUTRAN_PCID_to_TA_mapping_t, NumberOfMappings),
  3458. CSN_DESCR_END (EUTRAN_ParametersDescription_PMO_t)
  3459. static const
  3460. CSN_DESCR_BEGIN(PSC_Pattern_t)
  3461. M_UINT (PSC_Pattern_t, PSC_Pattern_length, 3, &hf_psc_pattern_length),
  3462. M_VAR_BITMAP (PSC_Pattern_t, PSC_Pattern, PSC_Pattern_length, 1),
  3463. M_UINT (PSC_Pattern_t, PSC_Pattern_sense, 1, &hf_psc_pattern_sense),
  3464. CSN_DESCR_END (PSC_Pattern_t)
  3465. static const
  3466. CSN_DESCR_BEGIN(PSC_Group_t)
  3467. M_REC_ARRAY (PSC_Group_t, PSC, PSC_Count, 9),
  3468. M_REC_TARRAY (PSC_Group_t, PSC_Pattern, PSC_Pattern_t, PSC_Pattern_Count),
  3469. CSN_DESCR_END (PSC_Group_t)
  3470. static const
  3471. CSN_DESCR_BEGIN(ThreeG_CSG_Description_Body_t)
  3472. M_TYPE (ThreeG_CSG_Description_Body_t, CSG_PSC_SPLIT, PSC_Group_t),
  3473. M_REC_ARRAY (ThreeG_CSG_Description_Body_t, UTRAN_FREQUENCY_INDEX, Count, 5),
  3474. CSN_DESCR_END (ThreeG_CSG_Description_Body_t)
  3475. static const
  3476. CSN_DESCR_BEGIN(ThreeG_CSG_Description_t)
  3477. M_REC_TARRAY (ThreeG_CSG_Description_t, ThreeG_CSG_Description_Body, ThreeG_CSG_Description_Body_t, Count),
  3478. CSN_DESCR_END (ThreeG_CSG_Description_t)
  3479. static const
  3480. CSN_DESCR_BEGIN(EUTRAN_CSG_Description_Body_t)
  3481. M_TYPE (EUTRAN_CSG_Description_Body_t, CSG_PCI_SPLIT, PSC_Group_t),
  3482. M_REC_ARRAY (EUTRAN_CSG_Description_Body_t, EUTRAN_FREQUENCY_INDEX, Count, 3),
  3483. CSN_DESCR_END (EUTRAN_CSG_Description_Body_t)
  3484. static const
  3485. CSN_DESCR_BEGIN(EUTRAN_CSG_Description_t)
  3486. M_REC_TARRAY (EUTRAN_CSG_Description_t, EUTRAN_CSG_Description_Body, EUTRAN_CSG_Description_Body_t, Count),
  3487. CSN_DESCR_END (EUTRAN_CSG_Description_t)
  3488. static const
  3489. CSN_DESCR_BEGIN(Meas_Ctrl_Param_Desp_t)
  3490. M_NEXT_EXIST (Meas_Ctrl_Param_Desp_t, existMeasurement_Control_EUTRAN, 3),
  3491. M_UINT (Meas_Ctrl_Param_Desp_t, Measurement_Control_EUTRAN, 1, &hf_meas_ctrl_param_meas_ctrl_eutran),
  3492. M_UINT (Meas_Ctrl_Param_Desp_t, EUTRAN_FREQUENCY_INDEX_top, 3, &hf_meas_ctrl_param_eutran_freq_idx),
  3493. M_REC_ARRAY (Meas_Ctrl_Param_Desp_t, EUTRAN_FREQUENCY_INDEX, Count_EUTRAN_FREQUENCY_INDEX, 3),
  3494. M_NEXT_EXIST (Meas_Ctrl_Param_Desp_t, existMeasurement_Control_UTRAN, 1),
  3495. M_UINT (Meas_Ctrl_Param_Desp_t, Measurement_Control_UTRAN, 1, &hf_meas_ctrl_param_meas_ctrl_utran),
  3496. M_UINT (Meas_Ctrl_Param_Desp_t, UTRAN_FREQUENCY_INDEX_top, 5, &hf_meas_ctrl_param_utran_freq_idx),
  3497. M_REC_ARRAY (Meas_Ctrl_Param_Desp_t, UTRAN_FREQUENCY_INDEX, Count_UTRAN_FREQUENCY_INDEX, 5),
  3498. CSN_DESCR_END (Meas_Ctrl_Param_Desp_t)
  3499. static const
  3500. CSN_DESCR_BEGIN(Reselection_Based_On_RSRQ_t)
  3501. M_UINT (Reselection_Based_On_RSRQ_t, THRESH_EUTRAN_high_Q, 5, &hf_rept_eutran_enh_cell_resel_param_thresh_eutran_high_q),
  3502. M_NEXT_EXIST (Reselection_Based_On_RSRQ_t, existTHRESH_EUTRAN_low_Q, 1),
  3503. M_UINT (Reselection_Based_On_RSRQ_t, THRESH_EUTRAN_low_Q, 5, &hf_rept_eutran_enh_cell_resel_param_thresh_eutran_low_q),
  3504. M_NEXT_EXIST (Reselection_Based_On_RSRQ_t, existEUTRAN_QQUALMIN, 1),
  3505. M_UINT (Reselection_Based_On_RSRQ_t, EUTRAN_QQUALMIN, 4, &hf_rept_eutran_enh_cell_resel_param_thresh_eutran_qqualmin),
  3506. M_NEXT_EXIST (Reselection_Based_On_RSRQ_t, existEUTRAN_RSRPmin, 1),
  3507. M_UINT (Reselection_Based_On_RSRQ_t, EUTRAN_RSRPmin, 5, &hf_rept_eutran_enh_cell_resel_param_thresh_eutran_rsrpmin),
  3508. CSN_DESCR_END (Reselection_Based_On_RSRQ_t)
  3509. static const
  3510. CSN_DESCR_BEGIN(Rept_EUTRAN_Enh_Cell_Resel_Param_t)
  3511. M_REC_ARRAY (Rept_EUTRAN_Enh_Cell_Resel_Param_t, EUTRAN_FREQUENCY_INDEX, Count_EUTRAN_FREQUENCY_INDEX, 3),
  3512. M_UNION (Rept_EUTRAN_Enh_Cell_Resel_Param_t, 2),
  3513. M_UINT (Rept_EUTRAN_Enh_Cell_Resel_Param_t, u.EUTRAN_Qmin, 4, &hf_rept_eutran_enh_cell_resel_param_eutran_qmin),
  3514. M_TYPE (Rept_EUTRAN_Enh_Cell_Resel_Param_t, u.Reselection_Based_On_RSRQ, Reselection_Based_On_RSRQ_t),
  3515. CSN_DESCR_END (Rept_EUTRAN_Enh_Cell_Resel_Param_t)
  3516. static const
  3517. CSN_DESCR_BEGIN(Enh_Cell_Reselect_Param_Desp_t)
  3518. M_REC_TARRAY (Enh_Cell_Reselect_Param_Desp_t, Repeated_EUTRAN_Enhanced_Cell_Reselection_Parameters, Rept_EUTRAN_Enh_Cell_Resel_Param_t, Count),
  3519. CSN_DESCR_END (Enh_Cell_Reselect_Param_Desp_t)
  3520. static const
  3521. CSN_DESCR_BEGIN(UTRAN_CSG_Cells_Reporting_Desp_t)
  3522. M_NEXT_EXIST (UTRAN_CSG_Cells_Reporting_Desp_t, existUTRAN_CSG_FDD_REPORTING_THRESHOLD, 2),
  3523. M_UINT (UTRAN_CSG_Cells_Reporting_Desp_t, UTRAN_CSG_FDD_REPORTING_THRESHOLD, 3, &hf_utran_csg_fdd_reporting_threshold),
  3524. M_UINT (UTRAN_CSG_Cells_Reporting_Desp_t, UTRAN_CSG_FDD_REPORTING_THRESHOLD_2, 6, &hf_utran_csg_fdd_reporting_threshold2),
  3525. M_NEXT_EXIST (UTRAN_CSG_Cells_Reporting_Desp_t, existUTRAN_CSG_TDD_REPORTING_THRESHOLD, 1),
  3526. M_UINT (UTRAN_CSG_Cells_Reporting_Desp_t, UTRAN_CSG_TDD_REPORTING_THRESHOLD, 3, &hf_utran_csg_tdd_reporting_threshold),
  3527. CSN_DESCR_END (UTRAN_CSG_Cells_Reporting_Desp_t)
  3528. static const
  3529. CSN_DESCR_BEGIN(EUTRAN_CSG_Cells_Reporting_Desp_t)
  3530. M_NEXT_EXIST (EUTRAN_CSG_Cells_Reporting_Desp_t, existEUTRAN_CSG_FDD_REPORTING_THRESHOLD, 2),
  3531. M_UINT (EUTRAN_CSG_Cells_Reporting_Desp_t, EUTRAN_CSG_FDD_REPORTING_THRESHOLD, 3, &hf_eutran_csg_fdd_reporting_threshold),
  3532. M_UINT (EUTRAN_CSG_Cells_Reporting_Desp_t, EUTRAN_CSG_FDD_REPORTING_THRESHOLD_2, 6, &hf_eutran_csg_fdd_reporting_threshold2),
  3533. M_NEXT_EXIST (EUTRAN_CSG_Cells_Reporting_Desp_t, existEUTRAN_CSG_TDD_REPORTING_THRESHOLD, 2),
  3534. M_UINT (EUTRAN_CSG_Cells_Reporting_Desp_t, EUTRAN_CSG_TDD_REPORTING_THRESHOLD, 3, &hf_eutran_csg_tdd_reporting_threshold),
  3535. M_UINT (EUTRAN_CSG_Cells_Reporting_Desp_t, EUTRAN_CSG_TDD_REPORTING_THRESHOLD_2, 6, &hf_eutran_csg_tdd_reporting_threshold2),
  3536. CSN_DESCR_END (EUTRAN_CSG_Cells_Reporting_Desp_t)
  3537. static const
  3538. CSN_DESCR_BEGIN(CSG_Cells_Reporting_Desp_t)
  3539. M_NEXT_EXIST (CSG_Cells_Reporting_Desp_t, existUTRAN_CSG_Cells_Reporting_Description, 1),
  3540. M_TYPE (CSG_Cells_Reporting_Desp_t, UTRAN_CSG_Cells_Reporting_Description, UTRAN_CSG_Cells_Reporting_Desp_t),
  3541. M_NEXT_EXIST (CSG_Cells_Reporting_Desp_t, existEUTRAN_CSG_Cells_Reporting_Description, 1),
  3542. M_TYPE (CSG_Cells_Reporting_Desp_t, EUTRAN_CSG_Cells_Reporting_Description, EUTRAN_CSG_Cells_Reporting_Desp_t),
  3543. CSN_DESCR_END (CSG_Cells_Reporting_Desp_t)
  3544. static const
  3545. CSN_DESCR_BEGIN (PriorityAndEUTRAN_ParametersDescription_PMO_t)
  3546. M_NEXT_EXIST (PriorityAndEUTRAN_ParametersDescription_PMO_t, existServingCellPriorityParametersDescription, 1),
  3547. M_TYPE (PriorityAndEUTRAN_ParametersDescription_PMO_t, ServingCellPriorityParametersDescription, ServingCellPriorityParametersDescription_t),
  3548. M_NEXT_EXIST (PriorityAndEUTRAN_ParametersDescription_PMO_t, existPriorityParametersDescription3G_PMO, 1),
  3549. M_TYPE (PriorityAndEUTRAN_ParametersDescription_PMO_t, PriorityParametersDescription3G_PMO, PriorityParametersDescription3G_PMO_t),
  3550. M_NEXT_EXIST (PriorityAndEUTRAN_ParametersDescription_PMO_t, existEUTRAN_ParametersDescription_PMO, 1),
  3551. M_TYPE (PriorityAndEUTRAN_ParametersDescription_PMO_t, EUTRAN_ParametersDescription_PMO, EUTRAN_ParametersDescription_PMO_t),
  3552. CSN_DESCR_END (PriorityAndEUTRAN_ParametersDescription_PMO_t)
  3553. static const
  3554. CSN_DESCR_BEGIN (Delete_All_Stored_Individual_Priorities_t)
  3555. M_NULL (Delete_All_Stored_Individual_Priorities_t, dummy, 0),
  3556. CSN_DESCR_END (Delete_All_Stored_Individual_Priorities_t)
  3557. static const
  3558. CSN_DESCR_BEGIN (Individual_UTRAN_Priority_FDD_t)
  3559. M_REC_ARRAY (Individual_UTRAN_Priority_FDD_t, FDD_ARFCN, Count, 14),
  3560. CSN_DESCR_END (Individual_UTRAN_Priority_FDD_t)
  3561. static const
  3562. CSN_DESCR_BEGIN (Individual_UTRAN_Priority_TDD_t)
  3563. M_REC_ARRAY (Individual_UTRAN_Priority_TDD_t, TDD_ARFCN, Count, 14),
  3564. CSN_DESCR_END (Individual_UTRAN_Priority_TDD_t)
  3565. static const
  3566. CSN_DESCR_BEGIN (Repeated_Individual_UTRAN_Priority_Parameters_t)
  3567. M_UNION (Repeated_Individual_UTRAN_Priority_Parameters_t, 2),
  3568. M_TYPE (Repeated_Individual_UTRAN_Priority_Parameters_t, u.Individual_UTRAN_Priority_FDD, Individual_UTRAN_Priority_FDD_t),
  3569. M_TYPE (Repeated_Individual_UTRAN_Priority_Parameters_t, u.Individual_UTRAN_Priority_TDD, Individual_UTRAN_Priority_TDD_t),
  3570. M_UINT (Repeated_Individual_UTRAN_Priority_Parameters_t, UTRAN_PRIORITY, 3, &hf_idvd_utran_priority),
  3571. CSN_DESCR_END (Repeated_Individual_UTRAN_Priority_Parameters_t)
  3572. static const
  3573. CSN_DESCR_BEGIN (ThreeG_Individual_Priority_Parameters_Description_t)
  3574. M_NEXT_EXIST (ThreeG_Individual_Priority_Parameters_Description_t, Exist_DEFAULT_UTRAN_PRIORITY, 1),
  3575. M_UINT (ThreeG_Individual_Priority_Parameters_Description_t, DEFAULT_UTRAN_PRIORITY, 3, &hf_idvd_default_utran_priority),
  3576. M_REC_TARRAY (ThreeG_Individual_Priority_Parameters_Description_t, Repeated_Individual_UTRAN_Priority_Parameters, Repeated_Individual_UTRAN_Priority_Parameters_t, Repeated_Individual_UTRAN_Priority_Parameters_Count),
  3577. CSN_DESCR_END (ThreeG_Individual_Priority_Parameters_Description_t)
  3578. static const
  3579. CSN_DESCR_BEGIN (Repeated_Individual_EUTRAN_Priority_Parameters_t)
  3580. M_REC_ARRAY (Repeated_Individual_EUTRAN_Priority_Parameters_t, EARFCN, Count, 16),
  3581. M_UINT (Repeated_Individual_EUTRAN_Priority_Parameters_t, EUTRAN_PRIORITY, 3, &hf_idvd_eutran_priority),
  3582. CSN_DESCR_END (Repeated_Individual_EUTRAN_Priority_Parameters_t)
  3583. static const
  3584. CSN_DESCR_BEGIN (EUTRAN_Individual_Priority_Parameters_Description_t)
  3585. M_NEXT_EXIST (EUTRAN_Individual_Priority_Parameters_Description_t, Exist_DEFAULT_EUTRAN_PRIORITY, 1),
  3586. M_UINT (EUTRAN_Individual_Priority_Parameters_Description_t, DEFAULT_EUTRAN_PRIORITY, 3, &hf_idvd_default_eutran_priority),
  3587. M_REC_TARRAY (EUTRAN_Individual_Priority_Parameters_Description_t, Repeated_Individual_EUTRAN_Priority_Parameters, Repeated_Individual_EUTRAN_Priority_Parameters_t, Count),
  3588. CSN_DESCR_END (EUTRAN_Individual_Priority_Parameters_Description_t)
  3589. static const
  3590. CSN_DESCR_BEGIN (Provide_Individual_Priorities_t)
  3591. M_UINT (Provide_Individual_Priorities_t, GERAN_PRIORITY, 3, &hf_idvd_prio_geran_priority),
  3592. M_NEXT_EXIST (Provide_Individual_Priorities_t, Exist_3G_Individual_Priority_Parameters_Description, 1),
  3593. M_TYPE (Provide_Individual_Priorities_t, ThreeG_Individual_Priority_Parameters_Description, ThreeG_Individual_Priority_Parameters_Description_t),
  3594. M_NEXT_EXIST (Provide_Individual_Priorities_t, Exist_EUTRAN_Individual_Priority_Parameters_Description, 1),
  3595. M_TYPE (Provide_Individual_Priorities_t, EUTRAN_Individual_Priority_Parameters_Description, EUTRAN_Individual_Priority_Parameters_Description_t),
  3596. M_NEXT_EXIST (Provide_Individual_Priorities_t, Exist_T3230_timeout_value, 1),
  3597. M_UINT (Provide_Individual_Priorities_t, T3230_timeout_value, 3, &hf_idvd_prio_t3230_timeout_value),
  3598. CSN_DESCR_END (Provide_Individual_Priorities_t)
  3599. static const
  3600. CSN_DESCR_BEGIN (Individual_Priorities_t)
  3601. M_UNION (Individual_Priorities_t, 2),
  3602. M_TYPE (Individual_Priorities_t, u.Delete_All_Stored_Individual_Priorities, Delete_All_Stored_Individual_Priorities_t),
  3603. M_TYPE (Individual_Priorities_t, u.Provide_Individual_Priorities, Provide_Individual_Priorities_t),
  3604. CSN_DESCR_END (Individual_Priorities_t)
  3605. static const
  3606. CSN_DESCR_BEGIN (PMO_AdditionsR9_t)
  3607. M_NEXT_EXIST (PMO_AdditionsR9_t, existEnhanced_Cell_Reselection_Parameters_Description, 1),
  3608. M_TYPE (PMO_AdditionsR9_t, Enhanced_Cell_Reselection_Parameters_Description, Enh_Cell_Reselect_Param_Desp_t),
  3609. M_NEXT_EXIST (PMO_AdditionsR9_t, existCSG_Cells_Reporting_Description, 1),
  3610. M_TYPE (PMO_AdditionsR9_t, CSG_Cells_Reporting_Description, CSG_Cells_Reporting_Desp_t),
  3611. CSN_DESCR_END (PMO_AdditionsR9_t)
  3612. static const
  3613. CSN_DESCR_BEGIN (PMO_AdditionsR8_t)
  3614. M_NEXT_EXIST (PMO_AdditionsR8_t, existBA_IND_3G_PMO_IND, 2),
  3615. M_UINT (PMO_AdditionsR8_t, BA_IND_3G, 1, &hf_pmo_additionsr8_ba_ind_3g),
  3616. M_UINT (PMO_AdditionsR8_t, PMO_IND, 1, &hf_pmo_additionsr8_pmo_ind),
  3617. M_NEXT_EXIST (PMO_AdditionsR8_t, existPriorityAndEUTRAN_ParametersDescription_PMO, 1),
  3618. M_TYPE (PMO_AdditionsR8_t, PriorityAndEUTRAN_ParametersDescription_PMO, PriorityAndEUTRAN_ParametersDescription_PMO_t),
  3619. M_NEXT_EXIST (PMO_AdditionsR8_t, existIndividualPriorities_PMO, 1),
  3620. M_TYPE (PMO_AdditionsR8_t, IndividualPriorities_PMO, Individual_Priorities_t),
  3621. M_NEXT_EXIST (PMO_AdditionsR8_t, existThreeG_CSG_Description, 1),
  3622. M_TYPE (PMO_AdditionsR8_t, ThreeG_CSG_Description_PMO, ThreeG_CSG_Description_t),
  3623. M_NEXT_EXIST (PMO_AdditionsR8_t, existEUTRAN_CSG_Description, 1),
  3624. M_TYPE (PMO_AdditionsR8_t, EUTRAN_CSG_Description_PMO, EUTRAN_CSG_Description_t),
  3625. M_NEXT_EXIST (PMO_AdditionsR8_t, existMeasurement_Control_Parameters_Description, 1),
  3626. M_TYPE (PMO_AdditionsR8_t, Measurement_Control_Parameters_Description_PMO, Meas_Ctrl_Param_Desp_t),
  3627. M_NEXT_EXIST_OR_NULL (PMO_AdditionsR8_t, existAdditionsR9, 1),
  3628. M_TYPE (PMO_AdditionsR8_t, AdditionsR9, PMO_AdditionsR9_t),
  3629. CSN_DESCR_END (PMO_AdditionsR8_t)
  3630. static const
  3631. CSN_DESCR_BEGIN (PMO_AdditionsR7_t)
  3632. M_NEXT_EXIST (PMO_AdditionsR7_t, existREPORTING_OFFSET_THRESHOLD_700, 2),
  3633. M_UINT (PMO_AdditionsR7_t, REPORTING_OFFSET_700, 3, &hf_pmo_additionsr7_reporting_offset_700),
  3634. M_UINT (PMO_AdditionsR7_t, REPORTING_THRESHOLD_700, 3, &hf_pmo_additionsr7_reporting_threshold_700),
  3635. M_NEXT_EXIST (PMO_AdditionsR7_t, existREPORTING_OFFSET_THRESHOLD_810, 2),
  3636. M_UINT (PMO_AdditionsR7_t, REPORTING_OFFSET_810, 3, &hf_pmo_additionsr7_reporting_offset_810),
  3637. M_UINT (PMO_AdditionsR7_t, REPORTING_THRESHOLD_810, 3, &hf_pmo_additionsr7_reporting_threshold_810),
  3638. M_NEXT_EXIST_OR_NULL (PMO_AdditionsR7_t, existAdditionsR8, 1),
  3639. M_TYPE (PMO_AdditionsR7_t, additionsR8, PMO_AdditionsR8_t),
  3640. CSN_DESCR_END (PMO_AdditionsR7_t)
  3641. static const
  3642. CSN_DESCR_BEGIN (PMO_AdditionsR6_t)
  3643. M_UINT (PMO_AdditionsR6_t, CCN_ACTIVE_3G, 1, &hf_pmo_additionsr6_ccn_active_3g),
  3644. M_NEXT_EXIST_OR_NULL (PMO_AdditionsR6_t, existAdditionsR7, 1),
  3645. M_TYPE (PMO_AdditionsR6_t, additionsR7, PMO_AdditionsR7_t),
  3646. CSN_DESCR_END (PMO_AdditionsR6_t)
  3647. static const
  3648. CSN_DESCR_BEGIN(PCCO_AdditionsR6_t)
  3649. M_UINT (PCCO_AdditionsR6_t, CCN_ACTIVE_3G, 1, &hf_pcco_additionsr6_ccn_active_3g),
  3650. CSN_DESCR_END (PCCO_AdditionsR6_t)
  3651. static const
  3652. CSN_DESCR_BEGIN (PMO_AdditionsR5_t)
  3653. M_NEXT_EXIST (PMO_AdditionsR5_t, existGRNTI_Extension, 1),
  3654. M_UINT (PMO_AdditionsR5_t, GRNTI, 4, &hf_pmo_additionsr5_grnti),
  3655. M_NEXT_EXIST (PMO_AdditionsR5_t, exist_lu_ModeNeighbourCellParams, 1),
  3656. M_REC_TARRAY (PMO_AdditionsR5_t, lu_ModeNeighbourCellParams, lu_ModeNeighbourCellParams_t, count_lu_ModeNeighbourCellParams),
  3657. M_NEXT_EXIST (PMO_AdditionsR5_t, existNC_lu_ModeOnlyCapableCellList, 1),
  3658. M_TYPE (PMO_AdditionsR5_t, NC_lu_ModeOnlyCapableCellList, NC_lu_ModeOnlyCapableCellList_t),
  3659. M_NEXT_EXIST (PMO_AdditionsR5_t, existGPRS_AdditionalMeasurementParams3G, 1),
  3660. M_TYPE (PMO_AdditionsR5_t, GPRS_AdditionalMeasurementParams3G, GPRS_AdditionalMeasurementParams3G_t),
  3661. M_NEXT_EXIST_OR_NULL (PMO_AdditionsR5_t, existAdditionsR6, 1),
  3662. M_TYPE (PMO_AdditionsR5_t, additionsR6, PMO_AdditionsR6_t),
  3663. CSN_DESCR_END (PMO_AdditionsR5_t)
  3664. static const
  3665. CSN_DESCR_BEGIN (PCCO_AdditionsR5_t)
  3666. M_NEXT_EXIST (PCCO_AdditionsR5_t, existGRNTI_Extension, 1),
  3667. M_UINT (PCCO_AdditionsR5_t, GRNTI, 4, &hf_pcco_additionsr5_grnti),
  3668. M_NEXT_EXIST (PCCO_AdditionsR5_t, exist_lu_ModeNeighbourCellParams, 1),
  3669. M_REC_TARRAY (PCCO_AdditionsR5_t, lu_ModeNeighbourCellParams, lu_ModeNeighbourCellParams_t, count_lu_ModeNeighbourCellParams),
  3670. M_NEXT_EXIST (PCCO_AdditionsR5_t, existNC_lu_ModeOnlyCapableCellList, 1),
  3671. M_TYPE (PCCO_AdditionsR5_t, NC_lu_ModeOnlyCapableCellList, NC_lu_ModeOnlyCapableCellList_t),
  3672. M_NEXT_EXIST (PCCO_AdditionsR5_t, existGPRS_AdditionalMeasurementParams3G, 1),
  3673. M_TYPE (PCCO_AdditionsR5_t, GPRS_AdditionalMeasurementParams3G, GPRS_AdditionalMeasurementParams3G_t),
  3674. M_NEXT_EXIST_OR_NULL (PCCO_AdditionsR5_t, existAdditionsR6, 1),
  3675. M_TYPE (PCCO_AdditionsR5_t, additionsR6, PCCO_AdditionsR6_t),
  3676. CSN_DESCR_END (PCCO_AdditionsR5_t)
  3677. static const
  3678. CSN_DESCR_BEGIN (PMO_AdditionsR4_t)
  3679. M_UINT (PMO_AdditionsR4_t, CCN_ACTIVE, 1, &hf_pmo_additionsr4_ccn_active),
  3680. M_NEXT_EXIST (PMO_AdditionsR4_t, Exist_CCN_Support_Description_ID, 1),
  3681. M_TYPE (PMO_AdditionsR4_t, CCN_Support_Description, CCN_Support_Description_t),
  3682. M_NEXT_EXIST_OR_NULL (PMO_AdditionsR4_t, Exist_AdditionsR5, 1),
  3683. M_TYPE (PMO_AdditionsR4_t, AdditionsR5, PMO_AdditionsR5_t),
  3684. CSN_DESCR_END (PMO_AdditionsR4_t)
  3685. static const
  3686. CSN_DESCR_BEGIN (PMO_AdditionsR99_t)
  3687. M_NEXT_EXIST (PMO_AdditionsR99_t, Exist_ENH_Measurement_Parameters, 1),
  3688. M_TYPE (PMO_AdditionsR99_t, ENH_Measurement_Parameters, ENH_Measurement_Parameters_PMO_t),
  3689. M_NEXT_EXIST_OR_NULL (PMO_AdditionsR99_t, Exist_AdditionsR4, 1),
  3690. M_TYPE (PMO_AdditionsR99_t, AdditionsR4, PMO_AdditionsR4_t),
  3691. CSN_DESCR_END (PMO_AdditionsR99_t)
  3692. static const
  3693. CSN_DESCR_BEGIN (PCCO_AdditionsR4_t)
  3694. M_UINT (PCCO_AdditionsR4_t, CCN_ACTIVE, 1, &hf_pcco_additionsr4_ccn_active),
  3695. M_NEXT_EXIST (PCCO_AdditionsR4_t, Exist_Container_ID, 1),
  3696. M_UINT (PCCO_AdditionsR4_t, CONTAINER_ID, 2, &hf_pcco_additionsr4_container_id),
  3697. M_NEXT_EXIST (PCCO_AdditionsR4_t, Exist_CCN_Support_Description_ID, 1),
  3698. M_TYPE (PCCO_AdditionsR4_t, CCN_Support_Description, CCN_Support_Description_t),
  3699. M_NEXT_EXIST_OR_NULL (PCCO_AdditionsR4_t, Exist_AdditionsR5, 1),
  3700. M_TYPE (PCCO_AdditionsR4_t, AdditionsR5, PCCO_AdditionsR5_t),
  3701. CSN_DESCR_END (PCCO_AdditionsR4_t)
  3702. static const
  3703. CSN_DESCR_BEGIN (PCCO_AdditionsR99_t)
  3704. M_TYPE (PCCO_AdditionsR99_t, ENH_Measurement_Parameters, ENH_Measurement_Parameters_PCCO_t),
  3705. M_NEXT_EXIST_OR_NULL (PCCO_AdditionsR99_t, Exist_AdditionsR4, 1),
  3706. M_TYPE (PCCO_AdditionsR99_t, AdditionsR4, PCCO_AdditionsR4_t),
  3707. CSN_DESCR_END (PCCO_AdditionsR99_t)
  3708. static const
  3709. CSN_DESCR_BEGIN(LSA_ID_Info_Element_t)
  3710. M_UNION (LSA_ID_Info_Element_t, 2),
  3711. M_UINT (LSA_ID_Info_Element_t, u.LSA_ID, 24, &hf_lsa_id_info_element_lsa_id),
  3712. M_UINT (LSA_ID_Info_Element_t, u.ShortLSA_ID, 10, &hf_lsa_id_info_element_shortlsa_id),
  3713. CSN_DESCR_END (LSA_ID_Info_Element_t)
  3714. static const
  3715. CSN_DESCR_BEGIN(LSA_ID_Info_t)
  3716. M_REC_TARRAY (LSA_ID_Info_t, LSA_ID_Info_Elements, LSA_ID_Info_Element_t, Count_LSA_ID_Info_Element),
  3717. CSN_DESCR_END (LSA_ID_Info_t)
  3718. static const
  3719. CSN_DESCR_BEGIN(LSA_Parameters_t)
  3720. M_UINT (LSA_Parameters_t, NR_OF_FREQ_OR_CELLS, 5, &hf_lsa_parameters_nr_of_freq_or_cells),
  3721. M_VAR_TARRAY (LSA_Parameters_t, LSA_ID_Info, LSA_ID_Info_t, NR_OF_FREQ_OR_CELLS),
  3722. CSN_DESCR_END (LSA_Parameters_t)
  3723. static const
  3724. CSN_DESCR_BEGIN (PMO_AdditionsR98_t)
  3725. M_NEXT_EXIST (PMO_AdditionsR98_t, Exist_LSA_Parameters, 1),
  3726. M_TYPE (PMO_AdditionsR98_t, LSA_Parameters, LSA_Parameters_t),
  3727. M_NEXT_EXIST_OR_NULL (PMO_AdditionsR98_t, Exist_AdditionsR99, 1),
  3728. M_TYPE (PMO_AdditionsR98_t, AdditionsR99, PMO_AdditionsR99_t),
  3729. CSN_DESCR_END (PMO_AdditionsR98_t)
  3730. static const
  3731. CSN_DESCR_BEGIN (PCCO_AdditionsR98_t)
  3732. M_NEXT_EXIST (PCCO_AdditionsR98_t, Exist_LSA_Parameters, 1),
  3733. M_TYPE (PCCO_AdditionsR98_t, LSA_Parameters, LSA_Parameters_t),
  3734. M_NEXT_EXIST_OR_NULL (PCCO_AdditionsR98_t, Exist_AdditionsR99, 1),
  3735. M_TYPE (PCCO_AdditionsR98_t, AdditionsR99, PCCO_AdditionsR99_t),
  3736. CSN_DESCR_END (PCCO_AdditionsR98_t)
  3737. static const
  3738. CSN_DESCR_BEGIN (Target_Cell_GSM_t)
  3739. M_UINT (Target_Cell_GSM_t, IMMEDIATE_REL, 1, &hf_target_cell_gsm_immediate_rel),
  3740. M_UINT (Target_Cell_GSM_t, ARFCN, 10, &hf_arfcn),
  3741. M_UINT (Target_Cell_GSM_t, BSIC, 6, &hf_target_cell_gsm_bsic),
  3742. M_TYPE (Target_Cell_GSM_t, NC_Measurement_Parameters, NC_Measurement_Parameters_with_Frequency_List_t),
  3743. M_NEXT_EXIST_OR_NULL (Target_Cell_GSM_t, Exist_AdditionsR98, 1),
  3744. M_TYPE (Target_Cell_GSM_t, AdditionsR98, PCCO_AdditionsR98_t),
  3745. CSN_DESCR_END (Target_Cell_GSM_t)
  3746. static const
  3747. CSN_DESCR_BEGIN (Target_Cell_3G_AdditionsR8_t)
  3748. M_NEXT_EXIST (Target_Cell_3G_AdditionsR8_t, Exist_EUTRAN_Target_Cell, 1),
  3749. M_TYPE (Target_Cell_3G_AdditionsR8_t, EUTRAN_Target_Cell, EUTRAN_Target_Cell_t),
  3750. M_NEXT_EXIST (Target_Cell_3G_AdditionsR8_t, Exist_Individual_Priorities, 1),
  3751. M_TYPE (Target_Cell_3G_AdditionsR8_t, Individual_Priorities, Individual_Priorities_t),
  3752. CSN_DESCR_END (Target_Cell_3G_AdditionsR8_t)
  3753. static const
  3754. CSN_DESCR_BEGIN (Target_Cell_3G_AdditionsR5_t)
  3755. M_NEXT_EXIST (Target_Cell_3G_AdditionsR5_t, Exist_G_RNTI_Extention, 1),
  3756. M_UINT (Target_Cell_3G_AdditionsR5_t, G_RNTI_Extention, 4, &hf_target_cell_g_rnti_ext),
  3757. M_NEXT_EXIST_OR_NULL (Target_Cell_3G_AdditionsR5_t, Exist_AdditionsR8, 1),
  3758. M_TYPE (Target_Cell_3G_AdditionsR5_t, AdditionsR8, Target_Cell_3G_AdditionsR8_t),
  3759. CSN_DESCR_END (Target_Cell_3G_AdditionsR5_t)
  3760. static const
  3761. CSN_DESCR_BEGIN(Target_Cell_3G_t)
  3762. /* 00 -- Message escape */
  3763. M_FIXED (Target_Cell_3G_t, 2, 0x00),
  3764. M_UINT (Target_Cell_3G_t, IMMEDIATE_REL, 1, &hf_target_cell_3g_immediate_rel),
  3765. M_NEXT_EXIST (Target_Cell_3G_t, Exist_FDD_Description, 1),
  3766. M_TYPE (Target_Cell_3G_t, FDD_Target_Cell, FDD_Target_Cell_t),
  3767. M_NEXT_EXIST (Target_Cell_3G_t, Exist_TDD_Description, 1),
  3768. M_TYPE (Target_Cell_3G_t, TDD_Target_Cell, TDD_Target_Cell_t),
  3769. M_NEXT_EXIST_OR_NULL (Target_Cell_3G_t, Exist_AdditionsR5, 1),
  3770. M_TYPE (Target_Cell_3G_t, AdditionsR5, Target_Cell_3G_AdditionsR5_t),
  3771. CSN_DESCR_END (Target_Cell_3G_t)
  3772. static const
  3773. CSN_DESCR_BEGIN(Packet_Cell_Change_Order_t)
  3774. M_UINT (Packet_Cell_Change_Order_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  3775. M_UINT (Packet_Cell_Change_Order_t, PAGE_MODE, 2, &hf_page_mode),
  3776. M_TYPE (Packet_Cell_Change_Order_t, ID, PacketCellChangeOrderID_t),
  3777. M_UNION (Packet_Cell_Change_Order_t, 2),
  3778. M_TYPE (Packet_Cell_Change_Order_t, u.Target_Cell_GSM, Target_Cell_GSM_t),
  3779. M_TYPE (Packet_Cell_Change_Order_t, u.Target_Cell_3G, Target_Cell_3G_t),
  3780. M_PADDING_BITS(Packet_Cell_Change_Order_t),
  3781. CSN_DESCR_END (Packet_Cell_Change_Order_t)
  3782. /* < Packet (Enhanced) Measurement Report message contents > */
  3783. static const
  3784. CSN_DESCR_BEGIN(BA_USED_t)
  3785. M_UINT (BA_USED_t, BA_USED, 1, &hf_ba_used_ba_used),
  3786. M_UINT (BA_USED_t, BA_USED_3G, 1, &hf_ba_used_ba_used_3g),
  3787. CSN_DESCR_END (BA_USED_t)
  3788. static const
  3789. CSN_DESCR_BEGIN(Serving_Cell_Data_t)
  3790. M_UINT (Serving_Cell_Data_t, RXLEV_SERVING_CELL, 6, &hf_serving_cell_data_rxlev_serving_cell),
  3791. M_FIXED (Serving_Cell_Data_t, 1, 0),
  3792. CSN_DESCR_END (Serving_Cell_Data_t)
  3793. static const
  3794. CSN_DESCR_BEGIN(NC_Measurements_t)
  3795. M_UINT (NC_Measurements_t, FREQUENCY_N, 6, &hf_nc_measurements_frequency_n),
  3796. M_NEXT_EXIST (NC_Measurements_t, Exist_BSIC_N, 1),
  3797. M_UINT (NC_Measurements_t, BSIC_N, 6, &hf_nc_measurements_bsic_n),
  3798. M_UINT (NC_Measurements_t, RXLEV_N, 6, &hf_nc_measurements_rxlev_n),
  3799. CSN_DESCR_END (NC_Measurements_t)
  3800. static const
  3801. CSN_DESCR_BEGIN(RepeatedInvalid_BSIC_Info_t)
  3802. M_UINT (RepeatedInvalid_BSIC_Info_t, BCCH_FREQ_N, 5, &hf_repeatedinvalid_bsic_info_bcch_freq_n),
  3803. M_UINT (RepeatedInvalid_BSIC_Info_t, BSIC_N, 6, &hf_repeatedinvalid_bsic_info_bsic_n),
  3804. M_UINT (RepeatedInvalid_BSIC_Info_t, RXLEV_N, 6, &hf_repeatedinvalid_bsic_info_rxlev_n),
  3805. CSN_DESCR_END (RepeatedInvalid_BSIC_Info_t)
  3806. static const
  3807. CSN_DESCR_BEGIN(REPORTING_QUANTITY_Instance_t)
  3808. M_NEXT_EXIST (REPORTING_QUANTITY_Instance_t, Exist_REPORTING_QUANTITY, 1),
  3809. M_UINT (REPORTING_QUANTITY_Instance_t, REPORTING_QUANTITY, 6, &hf_reporting_quantity_instance_reporting_quantity),
  3810. CSN_DESCR_END (REPORTING_QUANTITY_Instance_t)
  3811. static const
  3812. CSN_DESCR_BEGIN(NC_Measurement_Report_t)
  3813. M_UINT (NC_Measurement_Report_t, NC_MODE, 1, &hf_nc_measurement_report_nc_mode),
  3814. M_TYPE (NC_Measurement_Report_t, Serving_Cell_Data, Serving_Cell_Data_t),
  3815. M_UINT (NC_Measurement_Report_t, NUMBER_OF_NC_MEASUREMENTS, 3, &hf_nc_measurement_report_number_of_nc_measurements),
  3816. M_VAR_TARRAY (NC_Measurement_Report_t, NC_Measurements, NC_Measurements_t, NUMBER_OF_NC_MEASUREMENTS),
  3817. CSN_DESCR_END (NC_Measurement_Report_t)
  3818. static const
  3819. CSN_DESCR_BEGIN(ENH_NC_Measurement_Report_t)
  3820. M_UINT (ENH_NC_Measurement_Report_t, NC_MODE, 1, &hf_enh_nc_measurement_report_nc_mode),
  3821. M_UNION (ENH_NC_Measurement_Report_t, 2),
  3822. M_TYPE (ENH_NC_Measurement_Report_t, u.BA_USED, BA_USED_t),
  3823. M_UINT (ENH_NC_Measurement_Report_t, u.PSI3_CHANGE_MARK, 2, &hf_psi3_change_mark),
  3824. M_UINT (ENH_NC_Measurement_Report_t, PMO_USED, 1, &hf_enh_nc_measurement_report_pmo_used),
  3825. M_UINT (ENH_NC_Measurement_Report_t, BSIC_Seen, 1, &hf_enh_nc_measurement_report_bsic_seen),
  3826. M_UINT (ENH_NC_Measurement_Report_t, SCALE, 1, &hf_enh_nc_measurement_report_scale),
  3827. M_NEXT_EXIST (ENH_NC_Measurement_Report_t, Exist_Serving_Cell_Data, 1),
  3828. M_TYPE (ENH_NC_Measurement_Report_t, Serving_Cell_Data, Serving_Cell_Data_t),
  3829. M_REC_TARRAY (ENH_NC_Measurement_Report_t, RepeatedInvalid_BSIC_Info[0], RepeatedInvalid_BSIC_Info_t, Count_RepeatedInvalid_BSIC_Info),
  3830. M_NEXT_EXIST (ENH_NC_Measurement_Report_t, Exist_ReportBitmap, 1),
  3831. M_VAR_TARRAY (ENH_NC_Measurement_Report_t, REPORTING_QUANTITY_Instances, REPORTING_QUANTITY_Instance_t, Count_REPORTING_QUANTITY_Instances),
  3832. CSN_DESCR_END (ENH_NC_Measurement_Report_t)
  3833. static const
  3834. CSN_DESCR_BEGIN(EXT_Measurement_Report_t)
  3835. M_UINT (EXT_Measurement_Report_t, EXT_REPORTING_TYPE, 2, &hf_ext_measurement_report_ext_reporting_type),
  3836. M_NEXT_EXIST (EXT_Measurement_Report_t, Exist_I_LEVEL, 1),
  3837. M_NEXT_EXIST (EXT_Measurement_Report_t, Slot[0].Exist, 1),
  3838. M_UINT (EXT_Measurement_Report_t, Slot[0].I_LEVEL, 6, &hf_ext_measurement_report_slot0_i_level),
  3839. M_NEXT_EXIST (EXT_Measurement_Report_t, Slot[1].Exist, 1),
  3840. M_UINT (EXT_Measurement_Report_t, Slot[1].I_LEVEL, 6, &hf_ext_measurement_report_slot1_i_level),
  3841. M_NEXT_EXIST (EXT_Measurement_Report_t, Slot[2].Exist, 1),
  3842. M_UINT (EXT_Measurement_Report_t, Slot[2].I_LEVEL, 6, &hf_ext_measurement_report_slot2_i_level),
  3843. M_NEXT_EXIST (EXT_Measurement_Report_t, Slot[3].Exist, 1),
  3844. M_UINT (EXT_Measurement_Report_t, Slot[3].I_LEVEL, 6, &hf_ext_measurement_report_slot3_i_level),
  3845. M_NEXT_EXIST (EXT_Measurement_Report_t, Slot[4].Exist, 1),
  3846. M_UINT (EXT_Measurement_Report_t, Slot[4].I_LEVEL, 6, &hf_ext_measurement_report_slot4_i_level),
  3847. M_NEXT_EXIST (EXT_Measurement_Report_t, Slot[5].Exist, 1),
  3848. M_UINT (EXT_Measurement_Report_t, Slot[5].I_LEVEL, 6, &hf_ext_measurement_report_slot5_i_level),
  3849. M_NEXT_EXIST (EXT_Measurement_Report_t, Slot[6].Exist, 1),
  3850. M_UINT (EXT_Measurement_Report_t, Slot[6].I_LEVEL, 6, &hf_ext_measurement_report_slot6_i_level),
  3851. M_NEXT_EXIST (EXT_Measurement_Report_t, Slot[7].Exist, 1),
  3852. M_UINT (EXT_Measurement_Report_t, Slot[7].I_LEVEL, 6, &hf_ext_measurement_report_slot7_i_level),
  3853. M_UINT (EXT_Measurement_Report_t, NUMBER_OF_EXT_MEASUREMENTS, 5, &hf_ext_measurement_report_number_of_ext_measurements),
  3854. M_VAR_TARRAY (EXT_Measurement_Report_t, EXT_Measurements, NC_Measurements_t, NUMBER_OF_EXT_MEASUREMENTS),
  3855. CSN_DESCR_END (EXT_Measurement_Report_t)
  3856. static const
  3857. CSN_DESCR_BEGIN (Measurements_3G_t)
  3858. M_UINT (Measurements_3G_t, CELL_LIST_INDEX_3G, 7, &hf_measurements_3g_cell_list_index_3g),
  3859. M_UINT (Measurements_3G_t, REPORTING_QUANTITY, 6, &hf_measurements_3g_reporting_quantity),
  3860. CSN_DESCR_END (Measurements_3G_t)
  3861. static const
  3862. CSN_DESCR_BEGIN (EUTRAN_Measurement_Report_Body_t)
  3863. M_UINT (EUTRAN_Measurement_Report_Body_t, EUTRAN_FREQUENCY_INDEX, 3, &hf_pmr_eutran_meas_rpt_freq_idx),
  3864. M_UINT (EUTRAN_Measurement_Report_Body_t, CELL_IDENTITY, 9, &hf_pmr_eutran_meas_rpt_cell_id),
  3865. M_UINT (EUTRAN_Measurement_Report_Body_t, REPORTING_QUANTITY, 6, &hf_pmr_eutran_meas_rpt_quantity),
  3866. CSN_DESCR_END (EUTRAN_Measurement_Report_Body_t)
  3867. static const
  3868. CSN_DESCR_BEGIN (EUTRAN_Measurement_Report_t)
  3869. M_UINT_OFFSET (EUTRAN_Measurement_Report_t, N_EUTRAN, 2, 1),
  3870. M_VAR_TARRAY (EUTRAN_Measurement_Report_t, Report, EUTRAN_Measurement_Report_Body_t, N_EUTRAN),
  3871. CSN_DESCR_END (EUTRAN_Measurement_Report_t)
  3872. static const
  3873. CSN_DESCR_BEGIN(UTRAN_CSG_Measurement_Report_t)
  3874. M_UINT (UTRAN_CSG_Measurement_Report_t, UTRAN_CGI, 28, &hf_utran_csg_meas_rpt_cgi),
  3875. M_NEXT_EXIST (UTRAN_CSG_Measurement_Report_t, Exist_PLMN_ID, 1),
  3876. M_TYPE (UTRAN_CSG_Measurement_Report_t, Plmn_ID, PLMN_t),
  3877. M_UINT (UTRAN_CSG_Measurement_Report_t, CSG_ID, 27, &hf_utran_csg_meas_rpt_csg_id),
  3878. M_UINT (UTRAN_CSG_Measurement_Report_t, Access_Mode, 1, &hf_utran_csg_meas_rpt_access_mode),
  3879. M_UINT (UTRAN_CSG_Measurement_Report_t, REPORTING_QUANTITY, 6, &hf_utran_csg_meas_rpt_quantity),
  3880. CSN_DESCR_END (UTRAN_CSG_Measurement_Report_t)
  3881. static const
  3882. CSN_DESCR_BEGIN(EUTRAN_CSG_Measurement_Report_t)
  3883. M_UINT (EUTRAN_CSG_Measurement_Report_t, EUTRAN_CGI, 28, &hf_eutran_csg_meas_rpt_cgi),
  3884. M_UINT (EUTRAN_CSG_Measurement_Report_t, Tracking_Area_Code, 16, &hf_eutran_csg_meas_rpt_ta),
  3885. M_NEXT_EXIST (EUTRAN_CSG_Measurement_Report_t, Exist_PLMN_ID, 1),
  3886. M_TYPE (EUTRAN_CSG_Measurement_Report_t, Plmn_ID, PLMN_t),
  3887. M_UINT (EUTRAN_CSG_Measurement_Report_t, CSG_ID, 27, &hf_eutran_csg_meas_rpt_csg_id),
  3888. M_UINT (EUTRAN_CSG_Measurement_Report_t, Access_Mode, 1, &hf_eutran_csg_meas_rpt_access_mode),
  3889. M_UINT (EUTRAN_CSG_Measurement_Report_t, REPORTING_QUANTITY, 6, &hf_eutran_csg_meas_rpt_quantity),
  3890. CSN_DESCR_END (EUTRAN_CSG_Measurement_Report_t)
  3891. static const
  3892. CSN_DESCR_BEGIN (PMR_AdditionsR9_t)
  3893. M_NEXT_EXIST (PMR_AdditionsR9_t, Exist_UTRAN_CSG_Meas_Rpt, 1),
  3894. M_TYPE (PMR_AdditionsR9_t, UTRAN_CSG_Meas_Rpt, UTRAN_CSG_Measurement_Report_t),
  3895. M_NEXT_EXIST (PMR_AdditionsR9_t, Exist_EUTRAN_CSG_Meas_Rpt, 1),
  3896. M_TYPE (PMR_AdditionsR9_t, EUTRAN_CSG_Meas_Rpt, EUTRAN_CSG_Measurement_Report_t),
  3897. CSN_DESCR_END (PMR_AdditionsR9_t)
  3898. static const
  3899. CSN_DESCR_BEGIN (PMR_AdditionsR8_t)
  3900. M_NEXT_EXIST (PMR_AdditionsR8_t, Exist_EUTRAN_Meas_Rpt, 1),
  3901. M_TYPE (PMR_AdditionsR8_t, EUTRAN_Meas_Rpt, EUTRAN_Measurement_Report_t),
  3902. M_NEXT_EXIST_OR_NULL(PMR_AdditionsR8_t, Exist_AdditionsR9, 1),
  3903. M_TYPE (PMR_AdditionsR8_t, AdditionsR9, PMR_AdditionsR9_t),
  3904. CSN_DESCR_END (PMR_AdditionsR8_t)
  3905. static const
  3906. CSN_DESCR_BEGIN (PMR_AdditionsR5_t)
  3907. M_NEXT_EXIST (PMR_AdditionsR5_t, Exist_GRNTI, 4),
  3908. M_UINT (PMR_AdditionsR5_t, GRNTI, 4, &hf_pmo_additionsr5_grnti),
  3909. M_NEXT_EXIST_OR_NULL (PMR_AdditionsR5_t, Exist_AdditionsR8, 1),
  3910. M_TYPE (PMR_AdditionsR5_t, AdditionsR8, PMR_AdditionsR8_t),
  3911. CSN_DESCR_END (PMR_AdditionsR5_t)
  3912. static const
  3913. CSN_DESCR_BEGIN (PMR_AdditionsR99_t)
  3914. M_NEXT_EXIST (PMR_AdditionsR99_t, Exist_Info3G, 4),
  3915. M_UNION (PMR_AdditionsR99_t, 2),
  3916. M_TYPE (PMR_AdditionsR99_t, u.BA_USED, BA_USED_t),
  3917. M_UINT (PMR_AdditionsR99_t, u.PSI3_CHANGE_MARK, 2, &hf_psi3_change_mark),
  3918. M_UINT (PMR_AdditionsR99_t, PMO_USED, 1, &hf_pmr_additionsr99_pmo_used),
  3919. M_NEXT_EXIST (PMR_AdditionsR99_t, Exist_MeasurementReport3G, 2),
  3920. M_UINT_OFFSET (PMR_AdditionsR99_t, N_3G, 3, 1), /* offset 1 */
  3921. M_VAR_TARRAY_OFFSET (PMR_AdditionsR99_t, Measurements_3G, Measurements_3G_t, N_3G),
  3922. M_NEXT_EXIST_OR_NULL (PMR_AdditionsR99_t, Exist_AdditionsR5, 1),
  3923. M_TYPE (PMR_AdditionsR99_t, AdditionsR5, PMR_AdditionsR5_t),
  3924. CSN_DESCR_END (PMR_AdditionsR99_t)
  3925. static const
  3926. CSN_DESCR_BEGIN(EMR_ServingCell_t)
  3927. /*CSN_MEMBER_BIT (EMR_ServingCell_t, DTX_USED),*/
  3928. M_UINT (EMR_ServingCell_t, DTX_USED, 1, &hf_emr_servingcell_dtx_used),
  3929. M_UINT (EMR_ServingCell_t, RXLEV_VAL, 6, &hf_emr_servingcell_rxlev_val),
  3930. M_UINT (EMR_ServingCell_t, RX_QUAL_FULL, 3, &hf_emr_servingcell_rx_qual_full),
  3931. M_UINT (EMR_ServingCell_t, MEAN_BEP, 5, &hf_emr_servingcell_mean_bep),
  3932. M_UINT (EMR_ServingCell_t, CV_BEP, 3, &hf_emr_servingcell_cv_bep),
  3933. M_UINT (EMR_ServingCell_t, NBR_RCVD_BLOCKS, 5, &hf_emr_servingcell_nbr_rcvd_blocks),
  3934. CSN_DESCR_END(EMR_ServingCell_t)
  3935. static const
  3936. CSN_DESCR_BEGIN (EnhancedMeasurementReport_t)
  3937. M_UINT (EnhancedMeasurementReport_t, RR_Short_PD, 1, &hf_enhancedmeasurementreport_rr_short_pd),
  3938. M_UINT (EnhancedMeasurementReport_t, MESSAGE_TYPE, 5, &hf_enhancedmeasurementreport_message_type),
  3939. M_UINT (EnhancedMeasurementReport_t, ShortLayer2_Header, 2, &hf_enhancedmeasurementreport_shortlayer2_header),
  3940. M_TYPE (EnhancedMeasurementReport_t, BA_USED, BA_USED_t),
  3941. M_UINT (EnhancedMeasurementReport_t, BSIC_Seen, 1, &hf_enhancedmeasurementreport_bsic_seen),
  3942. M_UINT (EnhancedMeasurementReport_t, SCALE, 1, &hf_enhancedmeasurementreport_scale),
  3943. M_NEXT_EXIST (EnhancedMeasurementReport_t, Exist_ServingCellData, 1),
  3944. M_TYPE (EnhancedMeasurementReport_t, ServingCellData, EMR_ServingCell_t),
  3945. M_REC_TARRAY (EnhancedMeasurementReport_t, RepeatedInvalid_BSIC_Info[0], RepeatedInvalid_BSIC_Info_t,
  3946. Count_RepeatedInvalid_BSIC_Info),
  3947. M_NEXT_EXIST (EnhancedMeasurementReport_t, Exist_ReportBitmap, 1),
  3948. M_VAR_TARRAY (EnhancedMeasurementReport_t, REPORTING_QUANTITY_Instances, REPORTING_QUANTITY_Instance_t, Count_REPORTING_QUANTITY_Instances),
  3949. CSN_DESCR_END (EnhancedMeasurementReport_t)
  3950. static const
  3951. CSN_DESCR_BEGIN (Packet_Measurement_Report_t)
  3952. /* Mac header */
  3953. M_UINT (Packet_Measurement_Report_t, PayloadType, 2, &hf_ul_payload_type),
  3954. M_UINT (Packet_Measurement_Report_t, spare, 5, &hf_ul_mac_header_spare),
  3955. M_UINT (Packet_Measurement_Report_t, R, 1, &hf_ul_retry),
  3956. M_UINT (Packet_Measurement_Report_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  3957. /* Mac header */
  3958. M_UINT (Packet_Measurement_Report_t, TLLI, 32, &hf_tlli),
  3959. M_NEXT_EXIST (Packet_Measurement_Report_t, Exist_PSI5_CHANGE_MARK, 1),
  3960. M_UINT (Packet_Measurement_Report_t, PSI5_CHANGE_MARK, 2, &hf_packet_measurement_report_psi5_change_mark),
  3961. M_UNION (Packet_Measurement_Report_t, 2),
  3962. M_TYPE (Packet_Measurement_Report_t, u.NC_Measurement_Report, NC_Measurement_Report_t),
  3963. M_TYPE (Packet_Measurement_Report_t, u.EXT_Measurement_Report, EXT_Measurement_Report_t),
  3964. M_NEXT_EXIST_OR_NULL(Packet_Measurement_Report_t, Exist_AdditionsR99, 1),
  3965. M_TYPE (Packet_Measurement_Report_t, AdditionsR99, PMR_AdditionsR99_t),
  3966. M_PADDING_BITS (Packet_Measurement_Report_t),
  3967. CSN_DESCR_END (Packet_Measurement_Report_t)
  3968. static const
  3969. CSN_DESCR_BEGIN (PEMR_AdditionsR9_t)
  3970. M_NEXT_EXIST (PEMR_AdditionsR9_t, Exist_UTRAN_CSG_Target_Cell, 1),
  3971. M_TYPE (PEMR_AdditionsR9_t, UTRAN_CSG_Target_Cell, UTRAN_CSG_Target_Cell_t),
  3972. M_NEXT_EXIST (PEMR_AdditionsR9_t, Exist_EUTRAN_CSG_Target_Cell, 1),
  3973. M_TYPE (PEMR_AdditionsR9_t, EUTRAN_CSG_Target_Cell, EUTRAN_CSG_Target_Cell_t),
  3974. CSN_DESCR_END (PEMR_AdditionsR9_t)
  3975. static const
  3976. CSN_DESCR_BEGIN (Bitmap_Report_Quantity_t)
  3977. M_NEXT_EXIST (Bitmap_Report_Quantity_t, Exist_REPORTING_QUANTITY, 1),
  3978. M_UINT (Bitmap_Report_Quantity_t, REPORTING_QUANTITY, 6, &hf_reporting_quantity_instance_reporting_quantity),
  3979. CSN_DESCR_END (Bitmap_Report_Quantity_t)
  3980. static const
  3981. CSN_DESCR_BEGIN (PEMR_AdditionsR8_t)
  3982. M_UINT_OFFSET (PEMR_AdditionsR8_t, BITMAP_LENGTH, 7, 1),
  3983. M_VAR_TARRAY (PEMR_AdditionsR8_t, Bitmap_Report_Quantity, Bitmap_Report_Quantity_t, BITMAP_LENGTH),
  3984. M_NEXT_EXIST (PEMR_AdditionsR8_t, Exist_EUTRAN_Meas_Rpt, 1),
  3985. M_TYPE (PEMR_AdditionsR8_t, EUTRAN_Meas_Rpt, EUTRAN_Measurement_Report_t),
  3986. M_NEXT_EXIST_OR_NULL(PEMR_AdditionsR8_t, Exist_AdditionsR9, 1),
  3987. M_TYPE (PEMR_AdditionsR8_t, AdditionsR9, PEMR_AdditionsR9_t),
  3988. CSN_DESCR_END (PEMR_AdditionsR8_t)
  3989. static const
  3990. CSN_DESCR_BEGIN (PEMR_AdditionsR5_t)
  3991. M_NEXT_EXIST (PEMR_AdditionsR5_t, Exist_GRNTI_Ext, 1),
  3992. M_UINT (PEMR_AdditionsR5_t, GRNTI_Ext, 4, &hf_pmo_additionsr5_grnti),
  3993. M_NEXT_EXIST_OR_NULL(PEMR_AdditionsR5_t, Exist_AdditionsR8, 1),
  3994. M_TYPE (PEMR_AdditionsR5_t, AdditionsR8, PEMR_AdditionsR8_t),
  3995. CSN_DESCR_END (PEMR_AdditionsR5_t)
  3996. static const
  3997. CSN_DESCR_BEGIN (Packet_Enh_Measurement_Report_t)
  3998. /* Mac header */
  3999. M_UINT (Packet_Enh_Measurement_Report_t, PayloadType, 2, &hf_ul_payload_type),
  4000. M_UINT (Packet_Enh_Measurement_Report_t, spare, 5, &hf_ul_mac_header_spare),
  4001. M_UINT (Packet_Enh_Measurement_Report_t, R, 1, &hf_ul_retry),
  4002. M_UINT (Packet_Enh_Measurement_Report_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  4003. /* Mac header */
  4004. M_UINT (Packet_Enh_Measurement_Report_t, TLLI, 32, &hf_tlli),
  4005. M_TYPE (Packet_Enh_Measurement_Report_t, Measurements, ENH_NC_Measurement_Report_t),
  4006. M_NEXT_EXIST_OR_NULL(Packet_Enh_Measurement_Report_t, Exist_AdditionsR5, 1),
  4007. M_TYPE (Packet_Enh_Measurement_Report_t, AdditionsR5, PEMR_AdditionsR5_t),
  4008. M_PADDING_BITS(Packet_Enh_Measurement_Report_t),
  4009. CSN_DESCR_END (Packet_Enh_Measurement_Report_t)
  4010. /* < Packet Measurement Order message contents > */
  4011. static const
  4012. CSN_DESCR_BEGIN(EXT_Frequency_List_t)
  4013. M_UINT (EXT_Frequency_List_t, START_FREQUENCY, 10, &hf_ext_frequency_list_start_frequency),
  4014. M_UINT (EXT_Frequency_List_t, NR_OF_FREQUENCIES, 5, &hf_ext_frequency_list_nr_of_frequencies),
  4015. M_UINT (EXT_Frequency_List_t, FREQ_DIFF_LENGTH, 3, &hf_ext_frequency_list_freq_diff_length),
  4016. /* TBD: Count_FREQUENCY_DIFF
  4017. * guint8 FREQUENCY_DIFF[31];
  4018. * bit (FREQ_DIFF_LENGTH) * NR_OF_FREQUENCIES --> MAX is bit(7) * 31
  4019. */
  4020. CSN_DESCR_END (EXT_Frequency_List_t)
  4021. static const
  4022. CSN_DESCR_BEGIN (Packet_Measurement_Order_t)
  4023. M_UINT (Packet_Measurement_Order_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4024. M_UINT (Packet_Measurement_Order_t, PAGE_MODE, 2, &hf_page_mode),
  4025. M_TYPE (Packet_Measurement_Order_t, ID, PacketDownlinkID_t), /* reuse the PDA ID type */
  4026. M_UINT (Packet_Measurement_Order_t, PMO_INDEX, 3, &hf_packet_measurement_order_pmo_index),
  4027. M_UINT (Packet_Measurement_Order_t, PMO_COUNT, 3, &hf_packet_measurement_order_pmo_count),
  4028. M_NEXT_EXIST (Packet_Measurement_Order_t, Exist_NC_Measurement_Parameters, 1),
  4029. M_TYPE (Packet_Measurement_Order_t, NC_Measurement_Parameters, NC_Measurement_Parameters_with_Frequency_List_t),
  4030. M_NEXT_EXIST (Packet_Measurement_Order_t, Exist_EXT_Measurement_Parameters, 1),
  4031. M_FIXED (Packet_Measurement_Order_t, 2, 0x0), /* EXT_Measurement_Parameters not handled */
  4032. M_NEXT_EXIST_OR_NULL (Packet_Measurement_Order_t, Exist_AdditionsR98, 1),
  4033. M_TYPE (Packet_Measurement_Order_t, AdditionsR98, PMO_AdditionsR98_t),
  4034. M_PADDING_BITS (Packet_Measurement_Order_t),
  4035. CSN_DESCR_END (Packet_Measurement_Order_t)
  4036. static const
  4037. CSN_DESCR_BEGIN(CCN_Measurement_Report_t)
  4038. M_UINT (CCN_Measurement_Report_t, RXLEV_SERVING_CELL, 6, &hf_ccn_measurement_report_rxlev_serving_cell),
  4039. M_FIXED (CCN_Measurement_Report_t, 1, 0),
  4040. M_UINT (CCN_Measurement_Report_t, NUMBER_OF_NC_MEASUREMENTS, 3, &hf_ccn_measurement_report_number_of_nc_measurements),
  4041. M_VAR_TARRAY (CCN_Measurement_Report_t, NC_Measurements, NC_Measurements_t, NUMBER_OF_NC_MEASUREMENTS),
  4042. CSN_DESCR_END (CCN_Measurement_Report_t)
  4043. static const
  4044. CSN_DESCR_BEGIN(Target_Cell_GSM_Notif_t)
  4045. M_UINT (Target_Cell_GSM_Notif_t, ARFCN, 10, &hf_arfcn),
  4046. M_UINT (Target_Cell_GSM_Notif_t, BSIC, 6, &hf_target_cell_gsm_notif_bsic),
  4047. CSN_DESCR_END (Target_Cell_GSM_Notif_t)
  4048. static const
  4049. CSN_DESCR_BEGIN(FDD_Target_Cell_Notif_t)
  4050. M_UINT (FDD_Target_Cell_Notif_t, FDD_ARFCN, 14, &hf_fdd_target_cell_notif_fdd_arfcn),
  4051. M_NEXT_EXIST (FDD_Target_Cell_Notif_t, Exist_Bandwith_FDD, 1),
  4052. M_UINT (FDD_Target_Cell_Notif_t, BANDWITH_FDD, 3, &hf_fdd_target_cell_notif_bandwith_fdd),
  4053. M_UINT (FDD_Target_Cell_Notif_t, SCRAMBLING_CODE, 9, &hf_fdd_target_cell_notif_scrambling_code),
  4054. CSN_DESCR_END (FDD_Target_Cell_Notif_t)
  4055. static const
  4056. CSN_DESCR_BEGIN(TDD_Target_Cell_Notif_t)
  4057. M_UINT (TDD_Target_Cell_Notif_t, TDD_ARFCN, 14, &hf_tddarget_cell_t_tdd_arfcn),
  4058. M_NEXT_EXIST (TDD_Target_Cell_Notif_t, Exist_Bandwith_TDD, 1),
  4059. M_UINT (TDD_Target_Cell_Notif_t, BANDWITH_TDD, 3, &hf_tddarget_cell_t_bandwith_tdd),
  4060. M_UINT (TDD_Target_Cell_Notif_t, CELL_PARAMETER, 7, &hf_tddarget_cell_t_cell_parameter),
  4061. M_UINT (TDD_Target_Cell_Notif_t, Sync_Case_TSTD, 1, &hf_tddarget_cell_t_sync_case_tstd),
  4062. CSN_DESCR_END (TDD_Target_Cell_Notif_t)
  4063. static const
  4064. CSN_DESCR_BEGIN(Target_Cell_3G_Notif_t)
  4065. M_NEXT_EXIST (Target_Cell_3G_Notif_t, Exist_FDD_Description, 1),
  4066. M_TYPE (Target_Cell_3G_Notif_t, FDD_Target_Cell_Notif, FDD_Target_Cell_Notif_t),
  4067. M_NEXT_EXIST (Target_Cell_3G_Notif_t, Exist_TDD_Description, 1),
  4068. M_TYPE (Target_Cell_3G_Notif_t, TDD_Target_Cell, TDD_Target_Cell_Notif_t),
  4069. M_UINT (Target_Cell_3G_Notif_t, REPORTING_QUANTITY, 6, &hf_target_cell_3g_notif_reporting_quantity),
  4070. CSN_DESCR_END (Target_Cell_3G_Notif_t)
  4071. static const
  4072. CSN_DESCR_BEGIN(Target_EUTRAN_Cell_Notif_t)
  4073. M_UINT (Target_EUTRAN_Cell_Notif_t, EARFCN, 16, &hf_target_cell_eutran_earfcn),
  4074. M_NEXT_EXIST (Target_EUTRAN_Cell_Notif_t, Exist_Measurement_Bandwidth, 1),
  4075. M_UINT (Target_EUTRAN_Cell_Notif_t, Measurement_Bandwidth, 3, &hf_target_cell_eutran_measurement_bandwidth),
  4076. M_UINT (Target_EUTRAN_Cell_Notif_t, Physical_Layer_Cell_Identity, 9, &hf_target_cell_eutran_pl_cell_id),
  4077. M_UINT (Target_EUTRAN_Cell_Notif_t, Reporting_Quantity, 6, &hf_packet_cell_change_notification_lte_reporting_quantity),
  4078. CSN_DESCR_END (Target_EUTRAN_Cell_Notif_t)
  4079. static const
  4080. CSN_DESCR_BEGIN(Eutran_Ccn_Measurement_Report_Cell_t)
  4081. M_UINT (Eutran_Ccn_Measurement_Report_Cell_t, EUTRAN_FREQUENCY_INDEX, 3, &hf_eutran_ccn_meas_rpt_freq_idx),
  4082. M_UINT (Eutran_Ccn_Measurement_Report_Cell_t, CELL_IDENTITY, 9, &hf_eutran_ccn_meas_cell_id),
  4083. M_UINT (Eutran_Ccn_Measurement_Report_Cell_t, REPORTING_QUANTITY, 6, &hf_eutran_ccn_meas_rpt_quantity),
  4084. CSN_DESCR_END (Eutran_Ccn_Measurement_Report_Cell_t)
  4085. static const
  4086. CSN_DESCR_BEGIN(Eutran_Ccn_Measurement_Report_t)
  4087. M_UINT (Eutran_Ccn_Measurement_Report_t, ThreeG_BA_USED, 1, &hf_eutran_ccn_meas_rpt_3g_ba_used),
  4088. M_UINT_OFFSET(Eutran_Ccn_Measurement_Report_t, N_EUTRAN, 2, 1),
  4089. M_VAR_TARRAY (Eutran_Ccn_Measurement_Report_t, Eutran_Ccn_Measurement_Report_Cell, Eutran_Ccn_Measurement_Report_Cell_t, N_EUTRAN),
  4090. CSN_DESCR_END (Eutran_Ccn_Measurement_Report_t)
  4091. static const
  4092. CSN_DESCR_BEGIN(Target_Cell_4G_Notif_t)
  4093. M_NEXT_EXIST (Target_Cell_4G_Notif_t, Exist_Arfcn, 2),
  4094. M_UINT (Target_Cell_4G_Notif_t, Arfcn, 10, &hf_arfcn),
  4095. M_UINT (Target_Cell_4G_Notif_t, bsic, 6, &hf_target_cell_gsm_bsic),
  4096. M_NEXT_EXIST (Target_Cell_4G_Notif_t, Exist_3G_Target_Cell, 1),
  4097. M_TYPE (Target_Cell_4G_Notif_t, Target_Cell_3G_Notif, Target_Cell_3G_Notif_t),
  4098. M_NEXT_EXIST (Target_Cell_4G_Notif_t, Exist_Eutran_Target_Cell, 1),
  4099. M_TYPE (Target_Cell_4G_Notif_t, Target_EUTRAN_Cell, Target_EUTRAN_Cell_Notif_t),
  4100. M_NEXT_EXIST (Target_Cell_4G_Notif_t, Exist_Eutran_Ccn_Measurement_Report, 1),
  4101. M_TYPE (Target_Cell_4G_Notif_t, Eutran_Ccn_Measurement_Report, Eutran_Ccn_Measurement_Report_t),
  4102. CSN_DESCR_END (Target_Cell_4G_Notif_t)
  4103. static const
  4104. CSN_DESCR_BEGIN(Target_Cell_CSG_Notif_t)
  4105. M_FIXED (Target_Cell_CSG_Notif_t, 1, 0x00),
  4106. M_UNION (Target_Cell_CSG_Notif_t, 2),
  4107. M_TYPE (Target_Cell_CSG_Notif_t, u.UTRAN_CSG_Measurement_Report, UTRAN_CSG_Measurement_Report_t),
  4108. M_TYPE (Target_Cell_CSG_Notif_t, u.EUTRAN_CSG_Measurement_Report, EUTRAN_CSG_Measurement_Report_t),
  4109. M_NEXT_EXIST (Target_Cell_CSG_Notif_t, Exist_Eutran_Ccn_Measurement_Report, 1),
  4110. M_TYPE (Target_Cell_CSG_Notif_t, Eutran_Ccn_Measurement_Report, Eutran_Ccn_Measurement_Report_t),
  4111. CSN_DESCR_END (Target_Cell_CSG_Notif_t)
  4112. static const
  4113. CSN_DESCR_BEGIN(Target_Other_RAT_2_Notif_t)
  4114. /* 110 vs 1110 */
  4115. M_UNION (Target_Other_RAT_2_Notif_t, 2),
  4116. M_TYPE (Target_Other_RAT_2_Notif_t, u.Target_Cell_4G_Notif, Target_Cell_4G_Notif_t),
  4117. M_TYPE (Target_Other_RAT_2_Notif_t, u.Target_Cell_CSG_Notif, Target_Cell_CSG_Notif_t),
  4118. CSN_DESCR_END (Target_Other_RAT_2_Notif_t)
  4119. static const
  4120. CSN_DESCR_BEGIN(Target_Other_RAT_Notif_t)
  4121. /* 10 vs 110 */
  4122. M_UNION (Target_Other_RAT_Notif_t, 2),
  4123. M_TYPE (Target_Other_RAT_Notif_t, u.Target_Cell_3G_Notif, Target_Cell_3G_Notif_t),
  4124. M_TYPE (Target_Other_RAT_Notif_t, u.Target_Other_RAT_2_Notif, Target_Other_RAT_2_Notif_t),
  4125. CSN_DESCR_END (Target_Other_RAT_Notif_t)
  4126. static const
  4127. CSN_DESCR_BEGIN(Target_Cell_t)
  4128. /* 0 vs 10 */
  4129. M_UNION (Target_Cell_t, 2),
  4130. M_TYPE (Target_Cell_t, u.Target_Cell_GSM_Notif, Target_Cell_GSM_Notif_t),
  4131. M_TYPE (Target_Cell_t, u.Target_Other_RAT_Notif, Target_Other_RAT_Notif_t),
  4132. CSN_DESCR_END (Target_Cell_t)
  4133. static const
  4134. CSN_DESCR_BEGIN (PCCN_AdditionsR6_t)
  4135. M_NEXT_EXIST (PCCN_AdditionsR6_t, Exist_BA_USED_3G, 1),
  4136. M_UINT (PCCN_AdditionsR6_t, BA_USED_3G, 1, &hf_pccn_additionsr6_ba_used_3g),
  4137. M_UINT_OFFSET (PCCN_AdditionsR6_t, N_3G, 3, 1), /* offset 1 */
  4138. M_VAR_TARRAY_OFFSET (PCCN_AdditionsR6_t, Measurements_3G, Measurements_3G_t, N_3G),
  4139. CSN_DESCR_END (PCCN_AdditionsR6_t)
  4140. /* < Packet Cell Change Notification message contents > */
  4141. static const
  4142. CSN_DESCR_BEGIN(Packet_Cell_Change_Notification_t)
  4143. /* Mac header */
  4144. M_UINT (Packet_Cell_Change_Notification_t, PayloadType, 2, &hf_ul_payload_type),
  4145. M_UINT (Packet_Cell_Change_Notification_t, spare, 5, &hf_ul_mac_header_spare),
  4146. M_UINT (Packet_Cell_Change_Notification_t, R, 1, &hf_ul_retry),
  4147. M_UINT (Packet_Cell_Change_Notification_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  4148. /* Mac header */
  4149. M_TYPE (Packet_Cell_Change_Notification_t, Global_TFI, Global_TFI_t),
  4150. M_TYPE (Packet_Cell_Change_Notification_t, Target_Cell, Target_Cell_t),
  4151. M_UNION (Packet_Cell_Change_Notification_t, 2),
  4152. M_UINT (Packet_Cell_Change_Notification_t, u.BA_IND, 1, &hf_packet_cell_change_notification_ba_ind),
  4153. M_UINT (Packet_Cell_Change_Notification_t, u.PSI3_CHANGE_MARK, 2, &hf_psi3_change_mark),
  4154. M_UINT (Packet_Cell_Change_Notification_t, PMO_USED, 1, &hf_packet_cell_change_notification_pmo_used),
  4155. M_UINT (Packet_Cell_Change_Notification_t, PCCN_SENDING, 1, &hf_packet_cell_change_notification_pccn_sending),
  4156. M_TYPE (Packet_Cell_Change_Notification_t, CCN_Measurement_Report, CCN_Measurement_Report_t),
  4157. M_NEXT_EXIST_OR_NULL(Packet_Cell_Change_Notification_t, Exist_AdditionsR6, 1),
  4158. M_TYPE (Packet_Cell_Change_Notification_t, AdditionsR6, PCCN_AdditionsR6_t),
  4159. M_PADDING_BITS(Packet_Cell_Change_Notification_t),
  4160. CSN_DESCR_END (Packet_Cell_Change_Notification_t)
  4161. /* < Packet Cell Change Continue message contents > */
  4162. static const
  4163. CSN_DESCR_BEGIN(Packet_Cell_Change_Continue_t)
  4164. M_UINT (Packet_Cell_Change_Continue_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4165. M_UINT (Packet_Cell_Change_Continue_t, PAGE_MODE, 2, &hf_page_mode),
  4166. M_FIXED (Packet_Cell_Change_Continue_t, 1, 0x00),
  4167. M_TYPE (Packet_Cell_Change_Continue_t, Global_TFI, Global_TFI_t),
  4168. M_NEXT_EXIST (Packet_Cell_Change_Continue_t, Exist_ID, 3),
  4169. M_UINT (Packet_Cell_Change_Continue_t, ARFCN, 10, &hf_packet_cell_change_continue_arfcn),
  4170. M_UINT (Packet_Cell_Change_Continue_t, BSIC, 6, &hf_packet_cell_change_continue_bsic),
  4171. M_UINT (Packet_Cell_Change_Continue_t, CONTAINER_ID, 2, &hf_packet_cell_change_continue_container_id),
  4172. M_PADDING_BITS(Packet_Cell_Change_Continue_t),
  4173. CSN_DESCR_END (Packet_Cell_Change_Continue_t)
  4174. /* < Packet Neighbour Cell Data message contents > */
  4175. static const
  4176. CSN_DESCR_BEGIN(PNCD_Container_With_ID_t)
  4177. M_UINT (PNCD_Container_With_ID_t, ARFCN, 10, &hf_arfcn),
  4178. M_UINT (PNCD_Container_With_ID_t, BSIC, 6, &hf_pncd_container_with_id_bsic),
  4179. M_UINT_ARRAY (PNCD_Container_With_ID_t, CONTAINER, 8, 17),/* 8*17 bits */
  4180. CSN_DESCR_END (PNCD_Container_With_ID_t)
  4181. static const
  4182. CSN_DESCR_BEGIN(PNCD_Container_Without_ID_t)
  4183. M_UINT_ARRAY (PNCD_Container_Without_ID_t, CONTAINER, 8, 19),/* 8*19 bits */
  4184. CSN_DESCR_END (PNCD_Container_Without_ID_t)
  4185. static const
  4186. CSN_ChoiceElement_t PNCDContainer[] =
  4187. {
  4188. {1, 0x0, 0, M_TYPE(PNCDContainer_t, u.PNCD_Container_Without_ID, PNCD_Container_Without_ID_t)},
  4189. {1, 0x1, 0, M_TYPE(PNCDContainer_t, u.PNCD_Container_With_ID, PNCD_Container_With_ID_t)},
  4190. };
  4191. static const
  4192. CSN_DESCR_BEGIN(PNCDContainer_t)
  4193. M_CHOICE (PNCDContainer_t, UnionType, PNCDContainer, ElementsOf(PNCDContainer)),
  4194. CSN_DESCR_END (PNCDContainer_t)
  4195. static const
  4196. CSN_DESCR_BEGIN(Packet_Neighbour_Cell_Data_t)
  4197. M_UINT (Packet_Neighbour_Cell_Data_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4198. M_UINT (Packet_Neighbour_Cell_Data_t, PAGE_MODE, 2, &hf_page_mode),
  4199. M_FIXED (Packet_Neighbour_Cell_Data_t, 1, 0x00),
  4200. M_TYPE (Packet_Neighbour_Cell_Data_t, Global_TFI, Global_TFI_t),
  4201. M_UINT (Packet_Neighbour_Cell_Data_t, CONTAINER_ID, 2, &hf_packet_neighbour_cell_data_container_id),
  4202. M_UINT (Packet_Neighbour_Cell_Data_t, spare, 1, &hf_packet_neighbour_cell_data_spare),
  4203. M_UINT (Packet_Neighbour_Cell_Data_t, CONTAINER_INDEX, 5, &hf_packet_neighbour_cell_data_container_index),
  4204. M_TYPE (Packet_Neighbour_Cell_Data_t, Container, PNCDContainer_t),
  4205. M_PADDING_BITS(Packet_Neighbour_Cell_Data_t),
  4206. CSN_DESCR_END (Packet_Neighbour_Cell_Data_t)
  4207. /* < Packet Serving Cell Data message contents > */
  4208. static const
  4209. CSN_DESCR_BEGIN(Packet_Serving_Cell_Data_t)
  4210. M_UINT (Packet_Serving_Cell_Data_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4211. M_UINT (Packet_Serving_Cell_Data_t, PAGE_MODE, 2, &hf_page_mode),
  4212. M_FIXED (Packet_Serving_Cell_Data_t, 1, 0x00),
  4213. M_TYPE (Packet_Serving_Cell_Data_t, Global_TFI, Global_TFI_t),
  4214. M_UINT (Packet_Serving_Cell_Data_t, spare, 4, &hf_packet_serving_cell_data_spare),
  4215. M_UINT (Packet_Serving_Cell_Data_t, CONTAINER_INDEX, 5, &hf_packet_serving_cell_data_container_index),
  4216. M_UINT_ARRAY (Packet_Serving_Cell_Data_t, CONTAINER, 8, 19),/* 8*19 bits */
  4217. M_PADDING_BITS(Packet_Serving_Cell_Data_t),
  4218. CSN_DESCR_END (Packet_Serving_Cell_Data_t)
  4219. /* Enhanced Measurement Report */
  4220. static const
  4221. CSN_DESCR_BEGIN (ServingCellData_t)
  4222. M_UINT (ServingCellData_t, RXLEV_SERVING_CELL, 6, &hf_servingcelldata_rxlev_serving_cell),
  4223. M_FIXED (ServingCellData_t, 1, 0),
  4224. CSN_DESCR_END (ServingCellData_t)
  4225. static const
  4226. CSN_DESCR_BEGIN (Repeated_Invalid_BSIC_Info_t)
  4227. M_UINT (Repeated_Invalid_BSIC_Info_t, BCCH_FREQ_NCELL, 5, &hf_repeated_invalid_bsic_info_bcch_freq_ncell),
  4228. M_UINT (Repeated_Invalid_BSIC_Info_t, BSIC, 6, &hf_repeated_invalid_bsic_info_bsic),
  4229. M_UINT (Repeated_Invalid_BSIC_Info_t, RXLEV_NCELL, 5, &hf_repeated_invalid_bsic_info_rxlev_ncell),
  4230. CSN_DESCR_END (Repeated_Invalid_BSIC_Info_t)
  4231. static const
  4232. CSN_DESCR_BEGIN (REPORTING_QUANTITY_t)
  4233. M_NEXT_EXIST (REPORTING_QUANTITY_t, Exist_REPORTING_QUANTITY, 1),
  4234. M_UINT (REPORTING_QUANTITY_t, REPORTING_QUANTITY, 6, &hf_reporting_quantity_reporting_quantity),
  4235. CSN_DESCR_END (REPORTING_QUANTITY_t)
  4236. static const
  4237. CSN_DESCR_BEGIN (NC_MeasurementReport_t)
  4238. M_UINT (NC_MeasurementReport_t, NC_MODE, 1, &hf_nc_measurementreport_nc_mode),
  4239. M_UNION (NC_MeasurementReport_t, 2),
  4240. M_TYPE (NC_MeasurementReport_t, u.BA_USED, BA_USED_t),
  4241. M_UINT (NC_MeasurementReport_t, u.PSI3_CHANGE_MARK, 2, &hf_psi3_change_mark),
  4242. M_UINT (NC_MeasurementReport_t, PMO_USED, 1, &hf_nc_measurementreport_pmo_used),
  4243. M_UINT (NC_MeasurementReport_t, SCALE, 1, &hf_nc_measurementreport_scale),
  4244. M_NEXT_EXIST (NC_MeasurementReport_t, Exist_ServingCellData, 1),
  4245. M_TYPE (NC_MeasurementReport_t, ServingCellData, ServingCellData_t),
  4246. M_REC_TARRAY (NC_MeasurementReport_t, Repeated_Invalid_BSIC_Info, Repeated_Invalid_BSIC_Info_t, Count_Repeated_Invalid_BSIC_Info),
  4247. M_NEXT_EXIST (NC_MeasurementReport_t, Exist_Repeated_REPORTING_QUANTITY, 1),
  4248. M_VAR_TARRAY (NC_MeasurementReport_t, Repeated_REPORTING_QUANTITY, REPORTING_QUANTITY_t, Count_Repeated_Reporting_Quantity),
  4249. CSN_DESCR_END (NC_MeasurementReport_t)
  4250. /* < Packet Handover Command message content > */
  4251. static const
  4252. CSN_DESCR_BEGIN (GlobalTimeslotDescription_t)
  4253. M_UNION (GlobalTimeslotDescription_t, 2),
  4254. M_UINT (GlobalTimeslotDescription_t, u.MS_TimeslotAllocation, 8, &hf_globaltimeslotdescription_ms_timeslotallocation),
  4255. M_TYPE (GlobalTimeslotDescription_t, u.Power_Control_Parameters, Power_Control_Parameters_t),
  4256. CSN_DESCR_END (GlobalTimeslotDescription_t)
  4257. static const
  4258. CSN_DESCR_BEGIN (PHO_DownlinkAssignment_t)
  4259. M_UINT (PHO_DownlinkAssignment_t, TimeslotAllocation, 8, &hf_dl_timeslot_allocation),
  4260. M_UINT (PHO_DownlinkAssignment_t, PFI, 7, &hf_pfi),
  4261. M_UINT (PHO_DownlinkAssignment_t, RLC_Mode, 1, &hf_rlc_mode),
  4262. M_UINT (PHO_DownlinkAssignment_t, TFI_Assignment, 5, &hf_downlink_tfi),
  4263. M_UINT (PHO_DownlinkAssignment_t, ControlACK, 1, &hf_control_ack),
  4264. M_NEXT_EXIST (PHO_DownlinkAssignment_t, Exist_EGPRS_WindowSize, 1),
  4265. M_UINT (PHO_DownlinkAssignment_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  4266. CSN_DESCR_END (PHO_DownlinkAssignment_t)
  4267. static const
  4268. CSN_DESCR_BEGIN (PHO_USF_1_7_t)
  4269. M_NEXT_EXIST (PHO_USF_1_7_t, Exist_USF, 1),
  4270. M_UINT (PHO_USF_1_7_t, USF, 3, &hf_pho_usf_1_7_usf),
  4271. CSN_DESCR_END (PHO_USF_1_7_t)
  4272. static const
  4273. CSN_DESCR_BEGIN (USF_AllocationArray_t)
  4274. M_UINT (USF_AllocationArray_t, USF_0, 3, &hf_usf_allocationarray_usf_0),
  4275. M_VAR_TARRAY_OFFSET (USF_AllocationArray_t, USF_1_7, PHO_USF_1_7_t, NBR_OfAllocatedTimeslots),
  4276. CSN_DESCR_END (USF_AllocationArray_t)
  4277. static const
  4278. CSN_DESCR_BEGIN (PHO_UplinkAssignment_t)
  4279. M_UINT (PHO_UplinkAssignment_t, PFI, 7, &hf_pfi),
  4280. M_UINT (PHO_UplinkAssignment_t, RLC_Mode, 1, &hf_rlc_mode),
  4281. M_UINT (PHO_UplinkAssignment_t, TFI_Assignment, 5, &hf_downlink_tfi),
  4282. M_NEXT_EXIST (PHO_UplinkAssignment_t, Exist_ChannelCodingCommand, 1),
  4283. M_UINT (PHO_UplinkAssignment_t, ChannelCodingCommand, 2, &hf_gprs_channel_coding_command),
  4284. M_NEXT_EXIST (PHO_UplinkAssignment_t, Exist_EGPRS_ChannelCodingCommand, 1),
  4285. M_UINT (PHO_UplinkAssignment_t, EGPRS_ChannelCodingCommand, 4, &hf_egprs_channel_coding_command),
  4286. M_NEXT_EXIST (PHO_UplinkAssignment_t, Exist_EGPRS_WindowSize, 1),
  4287. M_UINT (PHO_UplinkAssignment_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  4288. M_UINT (PHO_UplinkAssignment_t, USF_Granularity, 1, &hf_usf_granularity),
  4289. M_NEXT_EXIST (PHO_UplinkAssignment_t, Exist_TBF_TimeslotAllocation, 1),
  4290. M_LEFT_VAR_BMP (PHO_UplinkAssignment_t, TBF_TimeslotAllocation, u.USF_AllocationArray.NBR_OfAllocatedTimeslots, 0),
  4291. M_UNION (PHO_UplinkAssignment_t, 2),
  4292. M_UINT (PHO_UplinkAssignment_t, u.USF_SingleAllocation, 3, &hf_usf),
  4293. M_TYPE (PHO_UplinkAssignment_t, u.USF_AllocationArray, USF_AllocationArray_t),
  4294. CSN_DESCR_END (PHO_UplinkAssignment_t)
  4295. static const
  4296. CSN_DESCR_BEGIN (GlobalTimeslotDescription_UA_t)
  4297. M_TYPE (GlobalTimeslotDescription_UA_t, GlobalTimeslotDescription, GlobalTimeslotDescription_t),
  4298. M_NEXT_EXIST (GlobalTimeslotDescription_UA_t, Exist_PHO_UA, 3), /* Don't use M_REC_TARRAY as we don't support multiple TBFs */
  4299. M_TYPE (GlobalTimeslotDescription_UA_t, PHO_UA, PHO_UplinkAssignment_t),
  4300. M_FIXED (GlobalTimeslotDescription_UA_t, 1, 0x0), /* Escape recursive */
  4301. CSN_DESCR_END (GlobalTimeslotDescription_UA_t)
  4302. static const
  4303. CSN_DESCR_BEGIN (PHO_GPRS_t)
  4304. M_NEXT_EXIST (PHO_GPRS_t, Exist_ChannelCodingCommand, 1),
  4305. M_UINT (PHO_GPRS_t, ChannelCodingCommand, 2, &hf_gprs_channel_coding_command),
  4306. M_NEXT_EXIST (PHO_GPRS_t, Exist_GlobalTimeslotDescription_UA, 1),
  4307. M_TYPE (PHO_GPRS_t, GTD_UA, GlobalTimeslotDescription_UA_t),
  4308. M_NEXT_EXIST (PHO_GPRS_t, Exist_DownlinkAssignment, 2), /* Don't use M_REC_TARRAY as we don't support multiple TBFs */
  4309. M_TYPE (PHO_GPRS_t, DownlinkAssignment, PHO_DownlinkAssignment_t),
  4310. M_FIXED (PHO_GPRS_t, 1, 0x0), /* Escape recursive */
  4311. CSN_DESCR_END (PHO_GPRS_t)
  4312. static const
  4313. CSN_DESCR_BEGIN (EGPRS_Description_t)
  4314. M_NEXT_EXIST (EGPRS_Description_t, Exist_EGPRS_WindowSize, 1),
  4315. M_UINT (EGPRS_Description_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  4316. M_UINT (EGPRS_Description_t, LinkQualityMeasurementMode, 2, &hf_egprs_description_linkqualitymeasurementmode),
  4317. M_NEXT_EXIST (EGPRS_Description_t, Exist_BEP_Period2, 1),
  4318. M_UINT (EGPRS_Description_t, BEP_Period2, 4, &hf_bep_period2),
  4319. CSN_DESCR_END (EGPRS_Description_t)
  4320. static const
  4321. CSN_DESCR_BEGIN (DownlinkTBF_t)
  4322. M_NEXT_EXIST (DownlinkTBF_t, Exist_EGPRS_Description, 1),
  4323. M_TYPE (DownlinkTBF_t, EGPRS_Description, EGPRS_Description_t),
  4324. M_NEXT_EXIST (DownlinkTBF_t, Exist_DownlinkAssignment, 2), /* Don't use M_REC_TARRAY as we don't support multiple TBFs */
  4325. M_TYPE (DownlinkTBF_t, DownlinkAssignment, PHO_DownlinkAssignment_t),
  4326. M_FIXED (DownlinkTBF_t, 1, 0x0), /* Escape recursive */
  4327. CSN_DESCR_END (DownlinkTBF_t)
  4328. static const
  4329. CSN_DESCR_BEGIN (PHO_EGPRS_t)
  4330. M_NEXT_EXIST (PHO_EGPRS_t, Exist_EGPRS_WindowSize, 1),
  4331. M_UINT (PHO_EGPRS_t, EGPRS_WindowSize, 5, &hf_egprs_windowsize),
  4332. M_NEXT_EXIST (PHO_EGPRS_t, Exist_EGPRS_ChannelCodingCommand, 1),
  4333. M_UINT (PHO_EGPRS_t, EGPRS_ChannelCodingCommand, 4, &hf_egprs_channel_coding_command),
  4334. M_NEXT_EXIST (PHO_EGPRS_t, Exist_BEP_Period2, 1),
  4335. M_UINT (PHO_EGPRS_t, BEP_Period2, 4, &hf_bep_period2),
  4336. M_NEXT_EXIST (PHO_EGPRS_t, Exist_GlobalTimeslotDescription_UA, 1),
  4337. M_TYPE (PHO_EGPRS_t, GTD_UA, GlobalTimeslotDescription_UA_t),
  4338. M_NEXT_EXIST (PHO_EGPRS_t, Exist_DownlinkTBF, 2),
  4339. M_TYPE (PHO_EGPRS_t, DownlinkTBF, DownlinkTBF_t),
  4340. CSN_DESCR_END (PHO_EGPRS_t)
  4341. static const
  4342. CSN_DESCR_BEGIN(PHO_TimingAdvance_t)
  4343. M_TYPE (PHO_TimingAdvance_t, GlobalPacketTimingAdvance, Global_Packet_Timing_Advance_t),
  4344. M_NEXT_EXIST (PHO_TimingAdvance_t, Exist_PacketExtendedTimingAdvance, 1),
  4345. M_UINT (PHO_TimingAdvance_t, PacketExtendedTimingAdvance, 2, &hf_packet_extended_timing_advance),
  4346. CSN_DESCR_END (PHO_TimingAdvance_t)
  4347. static const
  4348. CSN_DESCR_BEGIN(NAS_Container_t)
  4349. M_UINT (NAS_Container_t, NAS_ContainerLength, 7, &hf_nas_container_nas_containerlength),
  4350. M_VAR_ARRAY (NAS_Container_t, NAS_Container, NAS_ContainerLength, 0),
  4351. CSN_DESCR_END (NAS_Container_t)
  4352. static const
  4353. CSN_DESCR_BEGIN(PS_HandoverTo_UTRAN_Payload_t)
  4354. M_UINT (PS_HandoverTo_UTRAN_Payload_t, RRC_ContainerLength, 8, &hf_ps_handoverto_utran_payload_rrc_containerlength),
  4355. M_VAR_ARRAY (PS_HandoverTo_UTRAN_Payload_t, RRC_Container, RRC_ContainerLength, 0),
  4356. CSN_DESCR_END (PS_HandoverTo_UTRAN_Payload_t)
  4357. static const
  4358. CSN_DESCR_BEGIN(PHO_RadioResources_t)
  4359. M_NEXT_EXIST (PHO_RadioResources_t, Exist_HandoverReference, 1),
  4360. M_UINT (PHO_RadioResources_t, HandoverReference, 8, &hf_pho_radioresources_handoverreference),
  4361. M_UINT (PHO_RadioResources_t, ARFCN, 10, &hf_arfcn),
  4362. M_UINT (PHO_RadioResources_t, SI, 2, &hf_pho_radioresources_si),
  4363. M_UINT (PHO_RadioResources_t, NCI, 1, &hf_pho_radioresources_nci),
  4364. M_UINT (PHO_RadioResources_t, BSIC, 6, &hf_pho_radioresources_bsic),
  4365. M_NEXT_EXIST (PHO_RadioResources_t, Exist_CCN_Active, 1),
  4366. M_UINT (PHO_RadioResources_t, CCN_Active, 1, &hf_pho_radioresources_ccn_active),
  4367. M_NEXT_EXIST (PHO_RadioResources_t, Exist_CCN_Active_3G, 1),
  4368. M_UINT (PHO_RadioResources_t, CCN_Active_3G, 1, &hf_pho_radioresources_ccn_active_3g),
  4369. M_NEXT_EXIST (PHO_RadioResources_t, Exist_CCN_Support_Description, 1),
  4370. M_TYPE (PHO_RadioResources_t, CCN_Support_Description, CCN_Support_Description_t),
  4371. M_TYPE (PHO_RadioResources_t, Frequency_Parameters, Frequency_Parameters_t),
  4372. M_UINT (PHO_RadioResources_t, NetworkControlOrder, 2, &hf_pho_radioresources_networkcontrolorder),
  4373. M_NEXT_EXIST (PHO_RadioResources_t, Exist_PHO_TimingAdvance, 1),
  4374. M_TYPE (PHO_RadioResources_t, PHO_TimingAdvance, PHO_TimingAdvance_t),
  4375. M_UINT (PHO_RadioResources_t, Extended_Dynamic_Allocation, 1, &hf_extended_dynamic_allocation),
  4376. M_UINT (PHO_RadioResources_t, RLC_Reset, 1, &hf_pho_radioresources_rlc_reset),
  4377. M_NEXT_EXIST (PHO_RadioResources_t, Exist_PO_PR, 2),
  4378. M_UINT (PHO_RadioResources_t, PO, 4, &hf_p0),
  4379. M_UINT (PHO_RadioResources_t, PR_Mode, 1, &hf_pr_mode),
  4380. M_NEXT_EXIST (PHO_RadioResources_t, Exist_UplinkControlTimeslot, 1),
  4381. M_UINT (PHO_RadioResources_t, UplinkControlTimeslot, 3, &hf_pho_radioresources_uplinkcontroltimeslot),
  4382. M_UNION (PHO_RadioResources_t, 2),
  4383. M_TYPE (PHO_RadioResources_t, u.PHO_GPRS_Mode, PHO_GPRS_t),
  4384. M_TYPE (PHO_RadioResources_t, u.PHO_EGPRS_Mode, PHO_EGPRS_t),
  4385. CSN_DESCR_END (PHO_RadioResources_t)
  4386. static const
  4387. CSN_DESCR_BEGIN(PS_HandoverTo_A_GB_ModePayload_t)
  4388. M_FIXED (PS_HandoverTo_A_GB_ModePayload_t, 2, 0x00), /* For future extension to enum. */
  4389. M_TYPE (PS_HandoverTo_A_GB_ModePayload_t, PHO_RadioResources, PHO_RadioResources_t),
  4390. M_NEXT_EXIST (PS_HandoverTo_A_GB_ModePayload_t, Exist_NAS_Container, 1),
  4391. M_TYPE (PS_HandoverTo_A_GB_ModePayload_t, NAS_Container, NAS_Container_t),
  4392. CSN_DESCR_END (PS_HandoverTo_A_GB_ModePayload_t)
  4393. static const
  4394. CSN_DESCR_BEGIN(Packet_Handover_Command_t)
  4395. M_UINT (Packet_Handover_Command_t, MessageType,6, &hf_dl_message_type),
  4396. M_UINT (Packet_Handover_Command_t, PageMode, 2, &hf_page_mode),
  4397. M_FIXED (Packet_Handover_Command_t, 1, 0x00), /* 0 fixed */
  4398. M_TYPE (Packet_Handover_Command_t, Global_TFI, Global_TFI_t),
  4399. M_UINT (Packet_Handover_Command_t, ContainerID, 2, &hf_packet_handover_command_containerid),
  4400. M_UNION (Packet_Handover_Command_t, 4),
  4401. M_TYPE (Packet_Handover_Command_t, u.PS_HandoverTo_A_GB_ModePayload, PS_HandoverTo_A_GB_ModePayload_t),
  4402. M_TYPE (Packet_Handover_Command_t, u.PS_HandoverTo_UTRAN_Payload, PS_HandoverTo_UTRAN_Payload_t),
  4403. CSN_ERROR (Packet_Handover_Command_t, "10 <extension> not implemented", CSN_ERROR_STREAM_NOT_SUPPORTED),
  4404. CSN_ERROR (Packet_Handover_Command_t, "11 <extension> not implemented", CSN_ERROR_STREAM_NOT_SUPPORTED),
  4405. M_PADDING_BITS(Packet_Handover_Command_t),
  4406. CSN_DESCR_END (Packet_Handover_Command_t)
  4407. /* < End Packet Handover Command > */
  4408. /* < Packet Physical Information message content > */
  4409. static const
  4410. CSN_DESCR_BEGIN(Packet_PhysicalInformation_t)
  4411. M_UINT (Packet_PhysicalInformation_t, MessageType, 6, &hf_dl_message_type),
  4412. M_UINT (Packet_PhysicalInformation_t, PageMode, 2, &hf_page_mode),
  4413. M_TYPE (Packet_PhysicalInformation_t, Global_TFI, Global_TFI_t),
  4414. M_UINT (Packet_PhysicalInformation_t, TimingAdvance, 8, &hf_timing_advance_value),
  4415. M_PADDING_BITS(Packet_PhysicalInformation_t),
  4416. CSN_DESCR_END (Packet_PhysicalInformation_t)
  4417. /* < End Packet Physical Information > */
  4418. /* < ADDITIONAL MS RADIO ACCESS CAPABILITIES content > */
  4419. static const
  4420. CSN_ChoiceElement_t AdditionalMsRadAccessCapID[] =
  4421. {
  4422. {1, 0, 0, M_TYPE(AdditionalMsRadAccessCapID_t, u.Global_TFI, Global_TFI_t)},
  4423. {1, 0x01, 0, M_UINT(AdditionalMsRadAccessCapID_t, u.TLLI, 32, &hf_tlli)},
  4424. };
  4425. static const
  4426. CSN_DESCR_BEGIN(AdditionalMsRadAccessCapID_t)
  4427. M_CHOICE (AdditionalMsRadAccessCapID_t, UnionType, AdditionalMsRadAccessCapID, ElementsOf(AdditionalMsRadAccessCapID)),
  4428. CSN_DESCR_END (AdditionalMsRadAccessCapID_t)
  4429. static const
  4430. CSN_DESCR_BEGIN (Additional_MS_Rad_Access_Cap_t)
  4431. /* Mac header */
  4432. M_UINT (Additional_MS_Rad_Access_Cap_t, PayloadType, 2, &hf_ul_payload_type),
  4433. M_UINT (Additional_MS_Rad_Access_Cap_t, spare, 5, &hf_ul_mac_header_spare),
  4434. M_UINT (Additional_MS_Rad_Access_Cap_t, R, 1, &hf_ul_retry),
  4435. M_UINT (Additional_MS_Rad_Access_Cap_t, MESSAGE_TYPE, 6, &hf_ul_message_type),
  4436. /* Mac header */
  4437. M_TYPE (Additional_MS_Rad_Access_Cap_t, ID, AdditionalMsRadAccessCapID_t),
  4438. M_TYPE (Additional_MS_Rad_Access_Cap_t, MS_Radio_Access_capability, MS_Radio_Access_capability_t),
  4439. M_PADDING_BITS (Additional_MS_Rad_Access_Cap_t),
  4440. CSN_DESCR_END (Additional_MS_Rad_Access_Cap_t)
  4441. /* < End ADDITIONAL MS RADIO ACCESS CAPABILITIES > */
  4442. /* < Packet Pause content > */
  4443. static const
  4444. CSN_DESCR_BEGIN (Packet_Pause_t)
  4445. M_UINT (Packet_Pause_t, MESSAGE_TYPE, 2, &hf_dl_message_type),
  4446. M_UINT (Packet_Pause_t, TLLI, 32, &hf_tlli),
  4447. M_BITMAP (Packet_Pause_t, RAI, 48),
  4448. M_PADDING_BITS (Packet_Pause_t),
  4449. CSN_DESCR_END (Packet_Pause_t)
  4450. /* < End Packet Pause > */
  4451. /* < Packet System Information Type 1 message content > */
  4452. static const
  4453. CSN_DESCR_BEGIN(PSI1_AdditionsR6_t)
  4454. M_UINT (PSI1_AdditionsR6_t, LB_MS_TXPWR_MAX_CCH, 5, &hf_packet_system_info_type1_lb_ms_txpwr_max_ccch),
  4455. CSN_DESCR_END (PSI1_AdditionsR6_t)
  4456. static const
  4457. CSN_DESCR_BEGIN (PSI1_AdditionsR99_t)
  4458. M_UINT (PSI1_AdditionsR99_t, MSCR, 1, &hf_packet_system_info_type1_mscr),
  4459. M_UINT (PSI1_AdditionsR99_t, SGSNR, 1, &hf_sgsnr),
  4460. M_UINT (PSI1_AdditionsR99_t, BandIndicator, 1, &hf_packet_system_info_type1_band_indicator),
  4461. M_NEXT_EXIST_OR_NULL (PSI1_AdditionsR99_t, Exist_AdditionsR6, 1),
  4462. M_TYPE (PSI1_AdditionsR99_t, AdditionsR6, PSI1_AdditionsR6_t),
  4463. CSN_DESCR_END (PSI1_AdditionsR99_t)
  4464. static const
  4465. CSN_DESCR_BEGIN(PCCCH_Organization_t)
  4466. M_UINT (PCCCH_Organization_t, BS_PCC_REL, 1, &hf_pccch_org_bs_pcc_rel),
  4467. M_UINT (PCCCH_Organization_t, BS_PBCCH_BLKS, 2, &hf_pccch_org_pbcch_blks),
  4468. M_UINT (PCCCH_Organization_t, BS_PAG_BLKS_RES, 4, &hf_pccch_org_pag_blks_res),
  4469. M_UINT (PCCCH_Organization_t, BS_PRACH_BLKS, 4, &hf_pccch_org_prach_blks),
  4470. CSN_DESCR_END (PCCCH_Organization_t)
  4471. static const
  4472. CSN_DESCR_BEGIN(PSI1_t)
  4473. M_UINT (PSI1_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4474. M_UINT (PSI1_t, PAGE_MODE, 2, &hf_page_mode),
  4475. M_UINT (PSI1_t, PBCCH_CHANGE_MARK, 3, &hf_packet_system_info_type1_pbcch_change_mark),
  4476. M_UINT (PSI1_t, PSI_CHANGE_FIELD, 4, &hf_packet_system_info_type1_psi_change_field),
  4477. M_UINT (PSI1_t, PSI1_REPEAT_PERIOD, 4, &hf_packet_system_info_type1_psi1_repeat_period),
  4478. M_UINT (PSI1_t, PSI_COUNT_LR, 6, &hf_packet_system_info_type1_psi_count_lr),
  4479. M_NEXT_EXIST (PSI1_t, Exist_PSI_COUNT_HR, 1),
  4480. M_UINT (PSI1_t, PSI_COUNT_HR, 4, &hf_packet_system_info_type1_psi_count_hr),
  4481. M_UINT (PSI1_t, MEASUREMENT_ORDER, 1, &hf_packet_system_info_type1_measurement_order),
  4482. M_TYPE (PSI1_t, GPRS_Cell_Options, GPRS_Cell_Options_t),
  4483. M_TYPE (PSI1_t, PRACH_Control, PRACH_Control_t),
  4484. M_TYPE (PSI1_t, PCCCH_Organization, PCCCH_Organization_t),
  4485. M_TYPE (PSI1_t, Global_Power_Control_Parameters, Global_Power_Control_Parameters_t),
  4486. M_UINT (PSI1_t, PSI_STATUS_IND, 1, &hf_packet_system_info_type1_psi_status_ind),
  4487. M_NEXT_EXIST_OR_NULL (PSI1_t, Exist_AdditionsR99, 1),
  4488. M_TYPE (PSI1_t, AdditionsR99, PSI1_AdditionsR99_t),
  4489. M_PADDING_BITS(PSI1_t),
  4490. CSN_DESCR_END (PSI1_t)
  4491. /* < End Packet System Information Type 1 message content > */
  4492. /* < Packet System Information Type 2 message content > */
  4493. static const
  4494. CSN_DESCR_BEGIN(LAI_t)
  4495. M_TYPE (LAI_t, PLMN, PLMN_t),
  4496. M_UINT (LAI_t, LAC, 16, &hf_packet_lai_lac),
  4497. CSN_DESCR_END (LAI_t)
  4498. static const
  4499. CSN_DESCR_BEGIN(Cell_Identification_t)
  4500. M_TYPE (Cell_Identification_t, LAI, LAI_t),
  4501. M_UINT (Cell_Identification_t, RAC, 8, &hf_rac),
  4502. M_UINT (Cell_Identification_t, Cell_Identity, 16, &hf_packet_cell_id_cell_identity),
  4503. CSN_DESCR_END (Cell_Identification_t)
  4504. static const
  4505. CSN_DESCR_BEGIN(Non_GPRS_Cell_Options_t)
  4506. M_UINT (Non_GPRS_Cell_Options_t, ATT, 1, &hf_packet_non_gprs_cell_opt_att),
  4507. M_NEXT_EXIST (Non_GPRS_Cell_Options_t, Exist_T3212, 1),
  4508. M_UINT (Non_GPRS_Cell_Options_t, T3212, 8, &hf_packet_non_gprs_cell_opt_t3212),
  4509. M_UINT (Non_GPRS_Cell_Options_t, NECI, 1, &hf_packet_non_gprs_cell_opt_neci),
  4510. M_UINT (Non_GPRS_Cell_Options_t, PWRC, 1, &hf_packet_non_gprs_cell_opt_pwrc),
  4511. M_UINT (Non_GPRS_Cell_Options_t, DTX, 2, &hf_packet_non_gprs_cell_opt_dtx),
  4512. M_UINT (Non_GPRS_Cell_Options_t, RADIO_LINK_TIMEOUT, 4, &hf_packet_non_gprs_cell_opt_radio_link_timeout),
  4513. M_UINT (Non_GPRS_Cell_Options_t, BS_AG_BLKS_RES, 3, &hf_packet_non_gprs_cell_opt_bs_ag_blks_res),
  4514. M_UINT (Non_GPRS_Cell_Options_t, CCCH_CONF, 3, &hf_packet_non_gprs_cell_opt_ccch_conf),
  4515. M_UINT (Non_GPRS_Cell_Options_t, BS_PA_MFRMS, 3, &hf_packet_non_gprs_cell_opt_bs_pa_mfrms),
  4516. M_UINT (Non_GPRS_Cell_Options_t, MAX_RETRANS, 2, &hf_packet_non_gprs_cell_opt_max_retrans),
  4517. M_UINT (Non_GPRS_Cell_Options_t, TX_INTEGER, 4, &hf_packet_non_gprs_cell_opt_tx_int),
  4518. M_UINT (Non_GPRS_Cell_Options_t, EC, 1, &hf_packet_non_gprs_cell_opt_ec),
  4519. M_UINT (Non_GPRS_Cell_Options_t, MS_TXPWR_MAX_CCCH, 5, &hf_packet_non_gprs_cell_opt_ms_txpwr_max_ccch),
  4520. M_NEXT_EXIST (Non_GPRS_Cell_Options_t, Exist_Extension_Bits, 1),
  4521. M_TYPE (Non_GPRS_Cell_Options_t, Extension_Bits, Extension_Bits_t),
  4522. CSN_DESCR_END (Non_GPRS_Cell_Options_t)
  4523. static const
  4524. CSN_DESCR_BEGIN(Reference_Frequency_t)
  4525. M_UINT(Reference_Frequency_t, NUMBER, 4, &hf_packet_system_info_type2_ref_freq_num),
  4526. M_UINT_OFFSET(Reference_Frequency_t, Length, 4, 3),
  4527. M_VAR_ARRAY (Reference_Frequency_t, Contents[0], Length, 0),
  4528. CSN_DESCR_END (Reference_Frequency_t)
  4529. static const
  4530. CSN_DESCR_BEGIN(PSI2_MA_t)
  4531. M_UINT(PSI2_MA_t, NUMBER, 4, &hf_packet_system_info_type2_ma_number),
  4532. M_TYPE(PSI2_MA_t, Mobile_Allocation, GPRS_Mobile_Allocation_t),
  4533. CSN_DESCR_END (PSI2_MA_t)
  4534. static const
  4535. CSN_DESCR_BEGIN(Non_Hopping_PCCCH_Carriers_t)
  4536. M_UINT(Non_Hopping_PCCCH_Carriers_t, ARFCN, 10, &hf_arfcn),
  4537. M_UINT(Non_Hopping_PCCCH_Carriers_t, TIMESLOT_ALLOCATION, 8, &hf_packet_system_info_type2_non_hopping_timeslot),
  4538. CSN_DESCR_END (Non_Hopping_PCCCH_Carriers_t)
  4539. static const
  4540. CSN_DESCR_BEGIN(NonHoppingPCCCH_t)
  4541. M_REC_TARRAY (NonHoppingPCCCH_t, Carriers[0], Non_Hopping_PCCCH_Carriers_t, Count_Carriers),
  4542. CSN_DESCR_END (NonHoppingPCCCH_t)
  4543. static const
  4544. CSN_DESCR_BEGIN(Hopping_PCCCH_Carriers_t)
  4545. M_UINT(Hopping_PCCCH_Carriers_t, MAIO, 6, &hf_maio),
  4546. M_UINT(Hopping_PCCCH_Carriers_t, TIMESLOT_ALLOCATION, 8, &hf_packet_system_info_type2_hopping_timeslot),
  4547. CSN_DESCR_END (Hopping_PCCCH_Carriers_t)
  4548. static const
  4549. CSN_DESCR_BEGIN(HoppingPCCCH_t)
  4550. M_UINT(HoppingPCCCH_t, MA_NUMBER, 4, &hf_packet_system_info_type2_hopping_ma_num),
  4551. M_REC_TARRAY (HoppingPCCCH_t, Carriers[0], Hopping_PCCCH_Carriers_t, Count_Carriers),
  4552. CSN_DESCR_END (HoppingPCCCH_t)
  4553. static const
  4554. CSN_DESCR_BEGIN(PCCCH_Description_t)
  4555. M_UINT(PCCCH_Description_t, TSC, 3, &hf_tsc),
  4556. M_UNION (PCCCH_Description_t, 2),
  4557. M_TYPE (PCCCH_Description_t, u.NonHopping, NonHoppingPCCCH_t),
  4558. M_TYPE (PCCCH_Description_t, u.Hopping, HoppingPCCCH_t),
  4559. CSN_DESCR_END (PCCCH_Description_t)
  4560. static const
  4561. CSN_DESCR_BEGIN(PSI2_t)
  4562. M_UINT (PSI2_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4563. M_UINT (PSI2_t, PAGE_MODE, 2, &hf_page_mode),
  4564. M_UINT (PSI2_t, CHANGE_MARK, 2, &hf_packet_system_info_type2_change_mark),
  4565. M_UINT (PSI2_t, INDEX, 3, &hf_packet_system_info_type2_index),
  4566. M_UINT (PSI2_t, COUNT, 3, &hf_packet_system_info_type2_count),
  4567. M_NEXT_EXIST (PSI2_t, Exist_Cell_Identification, 1),
  4568. M_TYPE (PSI2_t, Cell_Identification, Cell_Identification_t),
  4569. M_NEXT_EXIST (PSI2_t, Exist_Non_GPRS_Cell_Options, 1),
  4570. M_TYPE (PSI2_t, Non_GPRS_Cell_Options, Non_GPRS_Cell_Options_t),
  4571. M_REC_TARRAY (PSI2_t, Reference_Frequency[0], Reference_Frequency_t, Count_Reference_Frequency),
  4572. M_TYPE (PSI2_t, Cell_Allocation, Cell_Allocation_t),
  4573. M_REC_TARRAY (PSI2_t, GPRS_MA[0], PSI2_MA_t, Count_GPRS_MA),
  4574. M_REC_TARRAY (PSI2_t, PCCCH_Description[0], PCCCH_Description_t, Count_PCCCH_Description),
  4575. M_PADDING_BITS(PSI2_t),
  4576. CSN_DESCR_END (PSI2_t)
  4577. /* < End Packet System Information Type 2 message content > */
  4578. /* < Packet System Information Type 3 message content > */
  4579. static const
  4580. CSN_DESCR_BEGIN(Serving_Cell_params_t)
  4581. M_UINT (Serving_Cell_params_t, CELL_BAR_ACCESS_2, 1, &hf_cell_bar_access_2),
  4582. M_UINT (Serving_Cell_params_t, EXC_ACC, 1, &hf_exc_acc),
  4583. M_UINT (Serving_Cell_params_t, GPRS_RXLEV_ACCESS_MIN, 6, &hf_packet_scell_param_gprs_rxlev_access_min),
  4584. M_UINT (Serving_Cell_params_t, GPRS_MS_TXPWR_MAX_CCH, 5, &hf_packet_scell_param_gprs_ms_txpwr_max_cch),
  4585. M_NEXT_EXIST (Serving_Cell_params_t, Exist_HCS, 1),
  4586. M_TYPE (Serving_Cell_params_t, HCS, HCS_t),
  4587. M_UINT (Serving_Cell_params_t, MULTIBAND_REPORTING, 2, &hf_packet_scell_param_multiband_reporting),
  4588. CSN_DESCR_END (Serving_Cell_params_t)
  4589. static const
  4590. CSN_DESCR_BEGIN(Gen_Cell_Sel_t)
  4591. M_UINT (Gen_Cell_Sel_t, GPRS_CELL_RESELECT_HYSTERESIS, 3, &hf_packet_gen_cell_sel_gprs_cell_resl_hyst),
  4592. M_UINT (Gen_Cell_Sel_t, C31_HYST, 1, &hf_packet_gen_cell_sel_c31_hyst),
  4593. M_UINT (Gen_Cell_Sel_t, C32_QUAL, 1, &hf_packet_gen_cell_sel_c32_qual),
  4594. M_FIXED (Gen_Cell_Sel_t, 1, 0x01),
  4595. M_NEXT_EXIST (Gen_Cell_Sel_t, Exist_T_RESEL, 1),
  4596. M_UINT (Gen_Cell_Sel_t, T_RESEL, 3, &hf_packet_gen_cell_sel_t_resel),
  4597. M_NEXT_EXIST (Gen_Cell_Sel_t, Exist_RA_RESELECT_HYSTERESIS, 1),
  4598. M_UINT (Gen_Cell_Sel_t, RA_RESELECT_HYSTERESIS, 3, &hf_packet_gen_cell_sel_ra_resel_hyst),
  4599. CSN_DESCR_END (Gen_Cell_Sel_t)
  4600. static const
  4601. CSN_DESCR_BEGIN(COMPACT_Cell_Sel_t)
  4602. M_UINT (COMPACT_Cell_Sel_t, bsic, 6, &hf_packet_compact_cell_sel_bsic),
  4603. M_UINT (COMPACT_Cell_Sel_t, CELL_BAR_ACCESS_2, 1, &hf_cell_bar_access_2),
  4604. M_UINT (COMPACT_Cell_Sel_t, EXC_ACC, 1, &hf_exc_acc),
  4605. M_UINT (COMPACT_Cell_Sel_t, SAME_RA_AS_SERVING_CELL, 1, &hf_packet_compact_cell_sel_same_as_scell),
  4606. M_NEXT_EXIST (COMPACT_Cell_Sel_t, Exist_GPRS_RXLEV_ACCESS_MIN, 2),
  4607. M_UINT (COMPACT_Cell_Sel_t, GPRS_RXLEV_ACCESS_MIN, 6, &hf_packet_compact_cell_sel_gprs_rxlev_access_min),
  4608. M_UINT (COMPACT_Cell_Sel_t, GPRS_MS_TXPWR_MAX_CCH, 5, &hf_packet_compact_cell_sel_gprs_ms_txpwr_max_cch),
  4609. M_NEXT_EXIST (COMPACT_Cell_Sel_t, Exist_GPRS_TEMPORARY_OFFSET, 2),
  4610. M_UINT (COMPACT_Cell_Sel_t, GPRS_TEMPORARY_OFFSET, 3, &hf_packet_compact_cell_sel_gprs_temp_offset),
  4611. M_UINT (COMPACT_Cell_Sel_t, GPRS_PENALTY_TIME, 5, &hf_packet_compact_cell_sel_gprs_penalty_time),
  4612. M_NEXT_EXIST (COMPACT_Cell_Sel_t, Exist_GPRS_RESELECT_OFFSET, 1),
  4613. M_UINT (COMPACT_Cell_Sel_t, GPRS_RESELECT_OFFSET, 5, &hf_packet_compact_cell_sel_gprs_resel_offset),
  4614. M_NEXT_EXIST (COMPACT_Cell_Sel_t, Exist_Hcs_Parm, 1),
  4615. M_TYPE (COMPACT_Cell_Sel_t, HCS_Param, HCS_t),
  4616. M_NEXT_EXIST (COMPACT_Cell_Sel_t, Exist_TIME_GROUP, 1),
  4617. M_UINT (COMPACT_Cell_Sel_t, TIME_GROUP, 2, &hf_packet_compact_cell_sel_time_group),
  4618. M_NEXT_EXIST (COMPACT_Cell_Sel_t, Exist_GUAR_CONSTANT_PWR_BLKS, 1),
  4619. M_UINT (COMPACT_Cell_Sel_t, GUAR_CONSTANT_PWR_BLKS, 2, &hf_packet_compact_cell_sel_guar_const_pwr_blks),
  4620. CSN_DESCR_END (COMPACT_Cell_Sel_t)
  4621. static const
  4622. CSN_DESCR_BEGIN(COMPACT_Neighbour_Cell_Param_Remaining_t)
  4623. M_VAR_BITMAP (COMPACT_Neighbour_Cell_Param_Remaining_t, FREQUENCY_DIFF, FREQ_DIFF_LENGTH, 0),
  4624. M_TYPE (COMPACT_Neighbour_Cell_Param_Remaining_t, COMPACT_Cell_Sel_Remain_Cells, COMPACT_Cell_Sel_t),
  4625. CSN_DESCR_END (COMPACT_Neighbour_Cell_Param_Remaining_t)
  4626. CSN_CallBackStatus_t callback_init_COMP_Ncell_Param_FREQUENCY_DIFF(proto_tree *tree _U_, tvbuff_t *tvb _U_, void* param1, void* param2, int bit_offset _U_, int ett_csn1 _U_)
  4627. {
  4628. guint i;
  4629. guint8 freq_diff_len = *(guint8*)param1;
  4630. COMPACT_Neighbour_Cell_Param_Remaining_t *pCom_NCell_Param_rem = (COMPACT_Neighbour_Cell_Param_Remaining_t*)param2;
  4631. for( i=0; i<16; i++, pCom_NCell_Param_rem++ )
  4632. {
  4633. pCom_NCell_Param_rem->FREQ_DIFF_LENGTH = freq_diff_len;
  4634. }
  4635. return 0;
  4636. }
  4637. static const
  4638. CSN_DESCR_BEGIN(COMPACT_Neighbour_Cell_Param_t)
  4639. M_UINT (COMPACT_Neighbour_Cell_Param_t, START_FREQUENCY, 10, &hf_packet_compact_ncell_param_start_freq),
  4640. M_TYPE (COMPACT_Neighbour_Cell_Param_t, COMPACT_Cell_Sel, COMPACT_Cell_Sel_t),
  4641. M_UINT (COMPACT_Neighbour_Cell_Param_t, NR_OF_REMAINING_CELLS, 4, &hf_packet_compact_ncell_param_nr_of_remaining_cells),
  4642. M_UINT_OFFSET(COMPACT_Neighbour_Cell_Param_t, FREQ_DIFF_LENGTH, 3, 1),
  4643. M_CALLBACK (COMPACT_Neighbour_Cell_Param_t, callback_init_COMP_Ncell_Param_FREQUENCY_DIFF, FREQ_DIFF_LENGTH, COMPACT_Neighbour_Cell_Param_Remaining),
  4644. M_VAR_TARRAY (COMPACT_Neighbour_Cell_Param_t, COMPACT_Neighbour_Cell_Param_Remaining, COMPACT_Neighbour_Cell_Param_Remaining_t, NR_OF_REMAINING_CELLS),
  4645. CSN_DESCR_END (COMPACT_Neighbour_Cell_Param_t)
  4646. static const
  4647. CSN_DESCR_BEGIN(COMPACT_Info_t)
  4648. M_TYPE (COMPACT_Info_t, Cell_Identification, Cell_Identification_t),
  4649. M_REC_TARRAY (COMPACT_Info_t, COMPACT_Neighbour_Cell_Param, COMPACT_Neighbour_Cell_Param_t, COMPACT_Neighbour_Cell_Param_Count),
  4650. CSN_DESCR_END (COMPACT_Info_t)
  4651. static const
  4652. CSN_DESCR_BEGIN(PSI3_AdditionR4_t)
  4653. M_NEXT_EXIST (PSI3_AdditionR4_t, Exist_CCN_Support_Desc, 1),
  4654. M_TYPE (PSI3_AdditionR4_t, CCN_Support_Desc, CCN_Support_Description_t),
  4655. CSN_DESCR_END (PSI3_AdditionR4_t)
  4656. static const
  4657. CSN_DESCR_BEGIN(PSI3_AdditionR99_t)
  4658. M_FIXED (PSI3_AdditionR99_t, 2, 0x00),
  4659. M_NEXT_EXIST (PSI3_AdditionR99_t, Exist_COMPACT_Info, 1),
  4660. M_TYPE (PSI3_AdditionR99_t, COMPACT_Info, COMPACT_Info_t),
  4661. M_FIXED (PSI3_AdditionR99_t, 1, 0x00),
  4662. M_NEXT_EXIST (PSI3_AdditionR99_t, Exist_AdditionR4, 1),
  4663. M_TYPE (PSI3_AdditionR99_t, AdditionR4, PSI3_AdditionR4_t),
  4664. CSN_DESCR_END (PSI3_AdditionR99_t)
  4665. static const
  4666. CSN_DESCR_BEGIN(PSI3_AdditionR98_t)
  4667. M_TYPE (PSI3_AdditionR98_t, Scell_LSA_ID_Info, LSA_ID_Info_t),
  4668. M_NEXT_EXIST (PSI3_AdditionR98_t, Exist_LSA_Parameters, 1),
  4669. M_TYPE (PSI3_AdditionR98_t, LSA_Parameters, LSA_Parameters_t),
  4670. M_NEXT_EXIST (PSI3_AdditionR98_t, Exist_AdditionR99, 1),
  4671. M_TYPE (PSI3_AdditionR98_t, AdditionR99, PSI3_AdditionR99_t),
  4672. CSN_DESCR_END (PSI3_AdditionR98_t)
  4673. static const
  4674. CSN_DESCR_BEGIN(PSI3_t)
  4675. M_UINT (PSI3_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4676. M_UINT (PSI3_t, PAGE_MODE, 2, &hf_page_mode),
  4677. M_UINT (PSI3_t, CHANGE_MARK, 2, &hf_packet_system_info_type3_change_mark),
  4678. M_UINT (PSI3_t, BIS_COUNT, 4, &hf_packet_system_info_type3_bis_count),
  4679. M_TYPE (PSI3_t, Serving_Cell_params, Serving_Cell_params_t),
  4680. M_TYPE (PSI3_t, General_Cell_Selection, Gen_Cell_Sel_t),
  4681. M_TYPE (PSI3_t, NeighbourCellList, NeighbourCellList_t),
  4682. M_NEXT_EXIST (PSI3_t, Exist_AdditionR98, 1),
  4683. M_TYPE (PSI3_t, AdditionR98, PSI3_AdditionR98_t),
  4684. M_PADDING_BITS(PSI3_t),
  4685. CSN_DESCR_END (PSI3_t)
  4686. /* < End Packet System Information Type 3 message content > */
  4687. /* < Packet System Information Type 5 message content > */
  4688. static const
  4689. CSN_DESCR_BEGIN(MeasurementParams_t)
  4690. M_NEXT_EXIST (MeasurementParams_t, Exist_MULTI_BAND_REPORTING, 1),
  4691. M_UINT (MeasurementParams_t, MULTI_BAND_REPORTING, 2, &hf_gprsmeasurementparams_pmo_pcco_multi_band_reporting),
  4692. M_NEXT_EXIST (MeasurementParams_t, Exist_SERVING_BAND_REPORTING, 1),
  4693. M_UINT (MeasurementParams_t, SERVING_BAND_REPORTING, 2, &hf_gprsmeasurementparams_pmo_pcco_serving_band_reporting),
  4694. M_NEXT_EXIST (MeasurementParams_t, Exist_SCALE_ORD, 1),
  4695. M_UINT (MeasurementParams_t, SCALE_ORD, 2, &hf_gprsmeasurementparams_pmo_pcco_scale_ord),
  4696. M_NEXT_EXIST (MeasurementParams_t, Exist_OffsetThreshold900, 1),
  4697. M_TYPE (MeasurementParams_t, OffsetThreshold900, OffsetThreshold_t),
  4698. M_NEXT_EXIST (MeasurementParams_t, Exist_OffsetThreshold1800, 1),
  4699. M_TYPE (MeasurementParams_t, OffsetThreshold1800, OffsetThreshold_t),
  4700. M_NEXT_EXIST (MeasurementParams_t, Exist_OffsetThreshold400, 1),
  4701. M_TYPE (MeasurementParams_t, OffsetThreshold400, OffsetThreshold_t),
  4702. M_NEXT_EXIST (MeasurementParams_t, Exist_OffsetThreshold1900, 1),
  4703. M_TYPE (MeasurementParams_t, OffsetThreshold1900, OffsetThreshold_t),
  4704. M_NEXT_EXIST (MeasurementParams_t, Exist_OffsetThreshold850, 1),
  4705. M_TYPE (MeasurementParams_t, OffsetThreshold850, OffsetThreshold_t),
  4706. CSN_DESCR_END (MeasurementParams_t)
  4707. static const
  4708. CSN_DESCR_BEGIN(GPRSMeasurementParams3G_PSI5_t)
  4709. M_NEXT_EXIST (GPRSMeasurementParams3G_PSI5_t, existRepParamsFDD, 2),
  4710. M_UINT (GPRSMeasurementParams3G_PSI5_t, RepQuantFDD, 1, &hf_gprsmeasurementparams3g_psi5_repquantfdd),
  4711. M_UINT (GPRSMeasurementParams3G_PSI5_t, MultiratReportingFDD, 2, &hf_gprsmeasurementparams3g_psi5_multiratreportingfdd),
  4712. M_NEXT_EXIST (GPRSMeasurementParams3G_PSI5_t, existReportingParamsFDD, 2),
  4713. M_UINT (GPRSMeasurementParams3G_PSI5_t, ReportingOffsetFDD, 3, &hf_gprsmeasurementparams3g_psi5_reportingoffsetfdd),
  4714. M_UINT (GPRSMeasurementParams3G_PSI5_t, ReportingThresholdFDD, 3, &hf_gprsmeasurementparams3g_psi5_reportingthresholdfdd),
  4715. M_NEXT_EXIST (GPRSMeasurementParams3G_PSI5_t, existMultiratReportingTDD, 1),
  4716. M_UINT (GPRSMeasurementParams3G_PSI5_t, MultiratReportingTDD, 2, &hf_gprsmeasurementparams3g_psi5_multiratreportingtdd),
  4717. M_NEXT_EXIST (GPRSMeasurementParams3G_PSI5_t, existOffsetThresholdTDD, 2),
  4718. M_UINT (GPRSMeasurementParams3G_PSI5_t, ReportingOffsetTDD, 3, &hf_gprsmeasurementparams3g_psi5_reportingoffsettdd),
  4719. M_UINT (GPRSMeasurementParams3G_PSI5_t, ReportingThresholdTDD, 3, &hf_gprsmeasurementparams3g_psi5_reportingthresholdtdd),
  4720. CSN_DESCR_END (GPRSMeasurementParams3G_PSI5_t)
  4721. static const
  4722. CSN_DESCR_BEGIN(ENH_Reporting_Parameters_t)
  4723. M_UINT (ENH_Reporting_Parameters_t, REPORT_TYPE, 1, &hf_enh_reporting_parameters_report_type),
  4724. M_UINT (ENH_Reporting_Parameters_t, REPORTING_RATE, 1, &hf_enh_reporting_parameters_reporting_rate),
  4725. M_UINT (ENH_Reporting_Parameters_t, INVALID_BSIC_REPORTING, 1, &hf_enh_reporting_parameters_invalid_bsic_reporting),
  4726. M_NEXT_EXIST (ENH_Reporting_Parameters_t, Exist_NCC_PERMITTED, 1),
  4727. M_UINT (ENH_Reporting_Parameters_t, NCC_PERMITTED, 8, &hf_enh_reporting_parameters_ncc_permitted),
  4728. M_NEXT_EXIST (ENH_Reporting_Parameters_t, Exist_GPRSMeasurementParams, 1),
  4729. M_TYPE (ENH_Reporting_Parameters_t, GPRSMeasurementParams, MeasurementParams_t),
  4730. M_NEXT_EXIST (ENH_Reporting_Parameters_t, Exist_GPRSMeasurementParams3G, 1),
  4731. M_TYPE (ENH_Reporting_Parameters_t, GPRSMeasurementParams3G, GPRSMeasurementParams3G_PSI5_t),
  4732. CSN_DESCR_END (ENH_Reporting_Parameters_t)
  4733. static const
  4734. CSN_DESCR_BEGIN(PSI5_AdditionsR7)
  4735. M_NEXT_EXIST (PSI5_AdditionsR7, Exist_OffsetThreshold_700, 1),
  4736. M_TYPE (PSI5_AdditionsR7, OffsetThreshold_700, OffsetThreshold_t),
  4737. M_NEXT_EXIST (PSI5_AdditionsR7, Exist_OffsetThreshold_810, 1),
  4738. M_TYPE (PSI5_AdditionsR7, OffsetThreshold_810, OffsetThreshold_t),
  4739. CSN_DESCR_END (PSI5_AdditionsR7)
  4740. static const
  4741. CSN_DESCR_BEGIN(PSI5_AdditionsR5)
  4742. M_NEXT_EXIST (PSI5_AdditionsR5, Exist_GPRS_AdditionalMeasurementParams3G, 1),
  4743. M_TYPE (PSI5_AdditionsR5, GPRS_AdditionalMeasurementParams3G, GPRS_AdditionalMeasurementParams3G_t),
  4744. M_NEXT_EXIST (PSI5_AdditionsR5, Exist_AdditionsR7, 1),
  4745. M_TYPE (PSI5_AdditionsR5, AdditionsR7, PSI5_AdditionsR7),
  4746. CSN_DESCR_END (PSI5_AdditionsR5)
  4747. static const
  4748. CSN_DESCR_BEGIN(PSI5_AdditionsR99)
  4749. M_NEXT_EXIST (PSI5_AdditionsR99, Exist_ENH_Reporting_Param, 1),
  4750. M_TYPE (PSI5_AdditionsR99, ENH_Reporting_Param, ENH_Reporting_Parameters_t),
  4751. M_NEXT_EXIST (PSI5_AdditionsR99, Exist_AdditionsR5, 1),
  4752. M_TYPE (PSI5_AdditionsR99, AdditionisR5, PSI5_AdditionsR5),
  4753. CSN_DESCR_END (PSI5_AdditionsR99)
  4754. static const
  4755. CSN_DESCR_BEGIN(PSI5_t)
  4756. M_UINT (PSI5_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4757. M_UINT (PSI5_t, PAGE_MODE, 2, &hf_page_mode),
  4758. M_UINT (PSI5_t, CHANGE_MARK, 2, &hf_packet_system_info_type5_change_mark),
  4759. M_UINT (PSI5_t, INDEX, 3, &hf_packet_system_info_type5_index),
  4760. M_UINT (PSI5_t, COUNT, 3, &hf_packet_system_info_type5_count),
  4761. M_NEXT_EXIST (PSI5_t, Eixst_NC_Meas_Param, 1),
  4762. M_TYPE (PSI5_t, NC_Meas_Param, NC_Measurement_Parameters_t),
  4763. M_FIXED (PSI5_t, 1, 0x00),
  4764. M_NEXT_EXIST (PSI5_t, Exist_AdditionsR99, 1),
  4765. M_TYPE (PSI5_t, AdditionsR99, PSI5_AdditionsR99),
  4766. M_PADDING_BITS(PSI5_t),
  4767. CSN_DESCR_END (PSI5_t)
  4768. /* < End Packet System Information Type 5 message content > */
  4769. /* < Packet System Information Type 13 message content > */
  4770. static const
  4771. CSN_DESCR_BEGIN(PSI13_AdditionsR6)
  4772. M_NEXT_EXIST (PSI13_AdditionsR6, Exist_LB_MS_TXPWR_MAX_CCH, 1),
  4773. M_UINT (PSI13_AdditionsR6, LB_MS_TXPWR_MAX_CCH, 5, &hf_packet_system_info_type13_lb_ms_mxpwr_max_cch),
  4774. M_UINT (PSI13_AdditionsR6, SI2n_SUPPORT, 2, &hf_packet_system_info_type13_si2n_support),
  4775. CSN_DESCR_END (PSI13_AdditionsR6)
  4776. static const
  4777. CSN_DESCR_BEGIN(PSI13_AdditionsR4)
  4778. M_UINT (PSI13_AdditionsR4, SI_STATUS_IND, 1, &hf_si_status_ind),
  4779. M_NEXT_EXIST (PSI13_AdditionsR4, Exist_AdditionsR6, 1),
  4780. M_TYPE (PSI13_AdditionsR4, AdditionsR6, PSI13_AdditionsR6),
  4781. CSN_DESCR_END (PSI13_AdditionsR4)
  4782. static const
  4783. CSN_DESCR_BEGIN(PSI13_AdditionR99)
  4784. M_UINT (PSI13_AdditionR99, SGSNR, 1, &hf_sgsnr),
  4785. M_NEXT_EXIST (PSI13_AdditionR99, Exist_AdditionsR4, 1),
  4786. M_TYPE (PSI13_AdditionR99, AdditionsR4, PSI13_AdditionsR4),
  4787. CSN_DESCR_END (PSI13_AdditionR99)
  4788. static const
  4789. CSN_DESCR_BEGIN(PSI13_t)
  4790. M_UINT (PSI13_t, MESSAGE_TYPE, 6, &hf_dl_message_type),
  4791. M_UINT (PSI13_t, PAGE_MODE, 2, &hf_page_mode),
  4792. M_UINT (PSI13_t, BCCH_CHANGE_MARK, 3, &hf_bcch_change_mark),
  4793. M_UINT (PSI13_t, SI_CHANGE_FIELD, 4, &hf_si_change_field),
  4794. M_NEXT_EXIST (PSI13_t, Exist_MA, 2),
  4795. M_UINT (PSI13_t, SI13_CHANGE_MARK, 2, &hf_si13_change_mark),
  4796. M_TYPE (PSI13_t, GPRS_Mobile_Allocation, GPRS_Mobile_Allocation_t),
  4797. M_UNION (PSI13_t, 2),
  4798. M_TYPE (PSI13_t, u.PBCCH_Not_present, PBCCH_Not_present_t),
  4799. M_TYPE (PSI13_t, u.PBCCH_present, PBCCH_present_t),
  4800. M_NEXT_EXIST (PSI13_t, Exist_AdditionsR99, 1),
  4801. M_TYPE (PSI13_t, AdditionsR99, PSI13_AdditionR99),
  4802. M_PADDING_BITS(PSI13_t),
  4803. CSN_DESCR_END (PSI13_t)
  4804. /* < End Packet System Information Type 13 message content > */
  4805. #if 0 /* Not used ??? */
  4806. typedef const char* MT_Strings_t;
  4807. static const MT_Strings_t szMT_Downlink[] = {
  4808. "Invalid Message Type", /* 0x00 */
  4809. "PACKET_CELL_CHANGE_ORDER", /* 0x01 */
  4810. "PACKET_DOWNLINK_ASSIGNMENT", /* 0x02 */
  4811. "PACKET_MEASUREMENT_ORDER", /* 0x03 */
  4812. "PACKET_POLLING_REQUEST", /* 0x04 */
  4813. "PACKET_POWER_CONTROL_TIMING_ADVANCE", /* 0x05 */
  4814. "PACKET_QUEUEING_NOTIFICATION", /* 0x06 */
  4815. "PACKET_TIMESLOT_RECONFIGURE", /* 0x07 */
  4816. "PACKET_TBF_RELEASE", /* 0x08 */
  4817. "PACKET_UPLINK_ACK_NACK", /* 0x09 */
  4818. "PACKET_UPLINK_ASSIGNMENT", /* 0x0A */
  4819. "PACKET_CELL_CHANGE_CONTINUE", /* 0x0B */
  4820. "PACKET_NEIGHBOUR_CELL_DATA", /* 0x0C */
  4821. "PACKET_SERVING_CELL_DATA", /* 0x0D */
  4822. "Invalid Message Type", /* 0x0E */
  4823. "Invalid Message Type", /* 0x0F */
  4824. "Invalid Message Type", /* 0x10 */
  4825. "Invalid Message Type", /* 0x11 */
  4826. "Invalid Message Type", /* 0x12 */
  4827. "Invalid Message Type", /* 0x13 */
  4828. "Invalid Message Type", /* 0x14 */
  4829. "PACKET_HANDOVER_COMMAND", /* 0x15 */
  4830. "PACKET_PHYSICAL_INFORMATION", /* 0x16 */
  4831. "Invalid Message Type", /* 0x17 */
  4832. "Invalid Message Type", /* 0x18 */
  4833. "Invalid Message Type", /* 0x19 */
  4834. "Invalid Message Type", /* 0x1A */
  4835. "Invalid Message Type", /* 0x1B */
  4836. "Invalid Message Type", /* 0x1C */
  4837. "Invalid Message Type", /* 0x1D */
  4838. "Invalid Message Type", /* 0x1E */
  4839. "Invalid Message Type", /* 0x1F */
  4840. "Invalid Message Type", /* 0x20 */
  4841. "PACKET_ACCESS_REJECT", /* 0x21 */
  4842. "PACKET_PAGING_REQUEST", /* 0x22 */
  4843. "PACKET_PDCH_RELEASE", /* 0x23 */
  4844. "PACKET_PRACH_PARAMETERS", /* 0x24 */
  4845. "PACKET_DOWNLINK_DUMMY_CONTROL_BLOCK", /* 0x25 */
  4846. "Invalid Message Type", /* 0x26 */
  4847. "Invalid Message Type", /* 0x27 */
  4848. "Invalid Message Type", /* 0x28 */
  4849. "Invalid Message Type", /* 0x29 */
  4850. "Invalid Message Type", /* 0x2A */
  4851. "Invalid Message Type", /* 0x2B */
  4852. "Invalid Message Type", /* 0x2C */
  4853. "Invalid Message Type", /* 0x2D */
  4854. "Invalid Message Type", /* 0x2E */
  4855. "Invalid Message Type", /* 0x2F */
  4856. "PACKET_SYSTEM_INFO_6", /* 0x30 */
  4857. "PACKET_SYSTEM_INFO_1", /* 0x31 */
  4858. "PACKET_SYSTEM_INFO_2", /* 0x32 */
  4859. "PACKET_SYSTEM_INFO_3", /* 0x33 */
  4860. "PACKET_SYSTEM_INFO_3_BIS", /* 0x34 */
  4861. "PACKET_SYSTEM_INFO_4", /* 0x35 */
  4862. "PACKET_SYSTEM_INFO_5", /* 0x36 */
  4863. "PACKET_SYSTEM_INFO_13", /* 0x37 */
  4864. "PACKET_SYSTEM_INFO_7", /* 0x38 */
  4865. "PACKET_SYSTEM_INFO_8", /* 0x39 */
  4866. "PACKET_SYSTEM_INFO_14", /* 0x3A */
  4867. "Invalid Message Type", /* 0x3B */
  4868. "PACKET_SYSTEM_INFO_3_TER", /* 0x3C */
  4869. "PACKET_SYSTEM_INFO_3_QUATER", /* 0x3D */
  4870. "PACKET_SYSTEM_INFO_15" /* 0x3E */
  4871. };
  4872. static const MT_Strings_t szMT_Uplink[] = {
  4873. "PACKET_CELL_CHANGE_FAILURE", /* 0x00 */
  4874. "PACKET_CONTROL_ACKNOWLEDGEMENT", /* 0x01 */
  4875. "PACKET_DOWNLINK_ACK_NACK", /* 0x02 */
  4876. "PACKET_UPLINK_DUMMY_CONTROL_BLOCK", /* 0x03 */
  4877. "PACKET_MEASUREMENT_REPORT", /* 0x04 */
  4878. "PACKET_RESOURCE_REQUEST", /* 0x05 */
  4879. "PACKET_MOBILE_TBF_STATUS", /* 0x06 */
  4880. "PACKET_PSI_STATUS", /* 0x07 */
  4881. "EGPRS_PACKET_DOWNLINK_ACK_NACK", /* 0x08 */
  4882. "PACKET_PAUSE", /* 0x09 */
  4883. "PACKET_ENHANCED_MEASUREMENT_REPORT", /* 0x0A */
  4884. "ADDITIONAL_MS_RAC", /* 0x0B */
  4885. "PACKET_CELL_CHANGE_NOTIFICATION", /* 0x0C */
  4886. "PACKET_SI_STATUS", /* 0x0D */
  4887. };
  4888. static const char*
  4889. MT_DL_TextGet(guint8 mt)
  4890. {
  4891. if (mt < ElementsOf(szMT_Downlink))
  4892. {
  4893. return(szMT_Downlink[mt]);
  4894. }
  4895. else
  4896. {
  4897. return("Unknown message type");
  4898. }
  4899. }
  4900. static const char*
  4901. MT_UL_TextGet(guint8 mt)
  4902. {
  4903. if (mt < ElementsOf(szMT_Uplink))
  4904. {
  4905. return(szMT_Uplink[mt]);
  4906. }
  4907. else
  4908. {
  4909. return("Unknown message type");
  4910. }
  4911. }
  4912. #endif
  4913. /* SI1_RestOctet_t */
  4914. static const
  4915. CSN_DESCR_BEGIN (SI1_RestOctet_t)
  4916. M_NEXT_EXIST_LH(SI1_RestOctet_t, Exist_NCH_Position, 1),
  4917. M_UINT (SI1_RestOctet_t, NCH_Position, 5, &hf_si1_restoctet_nch_position),
  4918. M_UINT_LH (SI1_RestOctet_t, BandIndicator, 1, &hf_si1_restoctet_bandindicator),
  4919. CSN_DESCR_END (SI1_RestOctet_t)
  4920. /* SI3_Rest_Octet_t */
  4921. static const
  4922. CSN_DESCR_BEGIN(Selection_Parameters_t)
  4923. M_UINT (Selection_Parameters_t, CBQ, 1, &hf_selection_parameters_cbq),
  4924. M_UINT (Selection_Parameters_t, CELL_RESELECT_OFFSET, 6, &hf_selection_parameters_cell_reselect_offset),
  4925. M_UINT (Selection_Parameters_t, TEMPORARY_OFFSET, 3, &hf_selection_parameters_temporary_offset),
  4926. M_UINT (Selection_Parameters_t, PENALTY_TIME, 5, &hf_selection_parameters_penalty_time),
  4927. CSN_DESCR_END (Selection_Parameters_t)
  4928. static const
  4929. CSN_DESCR_BEGIN (SI3_Rest_Octet_t)
  4930. M_NEXT_EXIST_LH(SI3_Rest_Octet_t, Exist_Selection_Parameters, 1),
  4931. M_TYPE (SI3_Rest_Octet_t, Selection_Parameters, Selection_Parameters_t),
  4932. M_NEXT_EXIST_LH(SI3_Rest_Octet_t, Exist_Power_Offset, 1),
  4933. M_UINT (SI3_Rest_Octet_t, Power_Offset, 2, &hf_si3_rest_octet_power_offset),
  4934. M_UINT_LH (SI3_Rest_Octet_t, System_Information_2ter_Indicator, 1, &hf_si3_rest_octet_system_information_2ter_indicator),
  4935. M_UINT_LH (SI3_Rest_Octet_t, Early_Classmark_Sending_Control, 1, &hf_si3_rest_octet_early_classmark_sending_control),
  4936. M_NEXT_EXIST_LH(SI3_Rest_Octet_t, Exist_WHERE, 1),
  4937. M_UINT (SI3_Rest_Octet_t, WHERE, 3, &hf_si3_rest_octet_where),
  4938. M_NEXT_EXIST_LH(SI3_Rest_Octet_t, Exist_GPRS_Indicator, 2),
  4939. M_UINT (SI3_Rest_Octet_t, RA_COLOUR, 3, &hf_si3_rest_octet_ra_colour),
  4940. M_UINT (SI3_Rest_Octet_t, SI13_POSITION, 1, &hf_si13_position),
  4941. M_UINT_LH (SI3_Rest_Octet_t, ECS_Restriction3G, 1, &hf_si3_rest_octet_ecs_restriction3g),
  4942. M_NEXT_EXIST_LH(SI3_Rest_Octet_t, ExistSI2quaterIndicator, 1),
  4943. M_UINT (SI3_Rest_Octet_t, SI2quaterIndicator, 1, &hf_si3_rest_octet_si2quaterindicator),
  4944. CSN_DESCR_END (SI3_Rest_Octet_t)
  4945. static const
  4946. CSN_DESCR_BEGIN (SI4_Rest_Octet_t)
  4947. M_NEXT_EXIST_LH(SI4_Rest_Octet_t, Exist_Selection_Parameters, 1),
  4948. M_TYPE (SI4_Rest_Octet_t, Selection_Parameters, Selection_Parameters_t),
  4949. M_NEXT_EXIST_LH(SI4_Rest_Octet_t, Exist_Power_Offset, 1),
  4950. M_UINT (SI4_Rest_Octet_t, Power_Offset, 2, &hf_si4_rest_octet_power_offset),
  4951. M_NEXT_EXIST_LH(SI4_Rest_Octet_t, Exist_GPRS_Indicator, 2),
  4952. M_UINT (SI4_Rest_Octet_t, RA_COLOUR, 3, &hf_si4_rest_octet_ra_colour),
  4953. M_UINT (SI4_Rest_Octet_t, SI13_POSITION, 1, &hf_si13_position),
  4954. CSN_DESCR_END (SI4_Rest_Octet_t)
  4955. /* SI6_RestOctet_t */
  4956. static const
  4957. CSN_DESCR_BEGIN(PCH_and_NCH_Info_t)
  4958. M_UINT (PCH_and_NCH_Info_t, PagingChannelRestructuring, 1, &hf_pch_and_nch_info_pagingchannelrestructuring),
  4959. M_UINT (PCH_and_NCH_Info_t, NLN_SACCH, 2, &hf_pch_and_nch_info_nln_sacch),
  4960. M_NEXT_EXIST (PCH_and_NCH_Info_t, Exist_CallPriority, 1),
  4961. M_UINT (PCH_and_NCH_Info_t, CallPriority, 3, &hf_pch_and_nch_info_callpriority),
  4962. M_UINT (PCH_and_NCH_Info_t, NLN_Status, 1, &hf_nln_status),
  4963. CSN_DESCR_END (PCH_and_NCH_Info_t)
  4964. static const
  4965. CSN_DESCR_BEGIN (SI6_RestOctet_t)
  4966. M_NEXT_EXIST_LH(SI6_RestOctet_t, Exist_PCH_and_NCH_Info, 1),
  4967. M_TYPE (SI6_RestOctet_t, PCH_and_NCH_Info, PCH_and_NCH_Info_t),
  4968. M_NEXT_EXIST_LH(SI6_RestOctet_t, Exist_VBS_VGCS_Options, 1),
  4969. M_UINT (SI6_RestOctet_t, VBS_VGCS_Options, 2, &hf_si6_restoctet_vbs_vgcs_options),
  4970. M_NEXT_EXIST_LH(SI6_RestOctet_t, Exist_DTM_Support, 2),
  4971. M_UINT (SI6_RestOctet_t, RAC, 8, &hf_rac),
  4972. M_UINT (SI6_RestOctet_t, MAX_LAPDm, 3, &hf_si6_restoctet_max_lapdm),
  4973. M_UINT_LH (SI6_RestOctet_t, BandIndicator, 1, &hf_si6_restoctet_bandindicator),
  4974. CSN_DESCR_END (SI6_RestOctet_t)
  4975. CSN_DESCR_BEGIN (UL_Data_Mac_Header_t)
  4976. M_UINT (UL_Data_Mac_Header_t, Payload_Type, 2, &hf_ul_payload_type),
  4977. M_UINT (UL_Data_Mac_Header_t, Countdown_Value, 4, &hf_countdown_value),
  4978. M_UINT (UL_Data_Mac_Header_t, SI, 1, &hf_ul_data_si),
  4979. M_UINT (UL_Data_Mac_Header_t, R, 1, &hf_ul_retry),
  4980. CSN_DESCR_END (UL_Data_Mac_Header_t)
  4981. CSN_DESCR_BEGIN (UL_Data_Block_GPRS_t)
  4982. M_TYPE (UL_Data_Block_GPRS_t, UL_Data_Mac_Header, UL_Data_Mac_Header_t),
  4983. M_UINT (UL_Data_Block_GPRS_t, Spare, 1, &hf_ul_data_spare),
  4984. M_UINT (UL_Data_Block_GPRS_t, PI, 1, &hf_pi),
  4985. M_UINT (UL_Data_Block_GPRS_t, TFI, 5, &hf_uplink_tfi),
  4986. M_UINT (UL_Data_Block_GPRS_t, TI, 1, &hf_ti),
  4987. M_UINT (UL_Data_Block_GPRS_t, BSN, 7, &hf_bsn),
  4988. M_UINT (UL_Data_Block_GPRS_t, E, 1, &hf_e),
  4989. CSN_DESCR_END (UL_Data_Block_GPRS_t)
  4990. CSN_DESCR_BEGIN (UL_Data_Block_EGPRS_Header_Type1_t)
  4991. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type1_t, TFI, bits_spec_ul_tfi, 5, &hf_uplink_tfi),
  4992. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type1_t, TFI, bits_spec_ul_tfi, 1, &hf_uplink_tfi),
  4993. M_UINT (UL_Data_Block_EGPRS_Header_Type1_t, Countdown_Value, 4, &hf_countdown_value),
  4994. M_UINT (UL_Data_Block_EGPRS_Header_Type1_t, SI, 1, &hf_ul_data_si),
  4995. M_UINT (UL_Data_Block_EGPRS_Header_Type1_t, R, 1, &hf_ul_retry),
  4996. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type1_t, BSN1, bits_spec_ul_bsn1, 11, &hf_bsn),
  4997. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type1_t, BSN1, bits_spec_ul_bsn1, 1, &hf_bsn),
  4998. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type1_t, TFI, bits_spec_ul_tfi, 0, &hf_uplink_tfi),
  4999. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type1_t, BSN2_offset, bits_spec_ul_bsn2, 10, &hf_bsn2_offset),
  5000. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type1_t, BSN2_offset, bits_spec_ul_bsn2, 1, &hf_bsn2_offset),
  5001. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type1_t, BSN1, bits_spec_ul_bsn1, 0, &hf_bsn),
  5002. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type1_t, BSN2_offset, bits_spec_ul_bsn2, 0, &hf_bsn2_offset),
  5003. M_UINT (UL_Data_Block_EGPRS_Header_Type1_t, SPARE1, 1, &hf_ul_data_spare),
  5004. M_UINT (UL_Data_Block_EGPRS_Header_Type1_t, PI, 1, &hf_pi),
  5005. M_UINT (UL_Data_Block_EGPRS_Header_Type1_t, RSB, 1, &hf_rsb),
  5006. M_UINT (UL_Data_Block_EGPRS_Header_Type1_t, CPS, 5, &hf_cps1),
  5007. M_NULL (UL_Data_Block_EGPRS_Header_Type1_t, dummy, 2),
  5008. M_UINT (UL_Data_Block_EGPRS_Header_Type1_t, SPARE2, 6, &hf_ul_data_spare),
  5009. CSN_DESCR_END (UL_Data_Block_EGPRS_Header_Type1_t)
  5010. CSN_DESCR_BEGIN (UL_Data_Block_EGPRS_Header_Type2_t)
  5011. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type2_t, TFI, bits_spec_ul_tfi, 5, &hf_uplink_tfi),
  5012. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type2_t, TFI, bits_spec_ul_tfi, 1, &hf_uplink_tfi),
  5013. M_UINT (UL_Data_Block_EGPRS_Header_Type2_t, Countdown_Value, 4, &hf_countdown_value),
  5014. M_UINT (UL_Data_Block_EGPRS_Header_Type2_t, SI, 1, &hf_ul_data_si),
  5015. M_UINT (UL_Data_Block_EGPRS_Header_Type2_t, R, 1, &hf_ul_retry),
  5016. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type2_t, BSN1, bits_spec_ul_bsn1, 11, &hf_bsn),
  5017. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type2_t, BSN1, bits_spec_ul_bsn1, 1, &hf_bsn),
  5018. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type2_t, TFI, bits_spec_ul_tfi, 0, &hf_uplink_tfi),
  5019. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type2_t, CPS, bits_spec_ul_type2_cps, 5, &hf_cps2),
  5020. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type2_t, CPS, bits_spec_ul_type2_cps, 1, &hf_cps2),
  5021. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type2_t, BSN1, bits_spec_ul_bsn1, 0, &hf_bsn),
  5022. M_UINT (UL_Data_Block_EGPRS_Header_Type2_t, SPARE1, 5, &hf_ul_data_spare),
  5023. M_UINT (UL_Data_Block_EGPRS_Header_Type2_t, PI, 1, &hf_pi),
  5024. M_UINT (UL_Data_Block_EGPRS_Header_Type2_t, RSB, 1, &hf_rsb),
  5025. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type2_t, CPS, bits_spec_ul_type2_cps, 0, &hf_cps2),
  5026. M_NULL (UL_Data_Block_EGPRS_Header_Type1_t, dummy, 3),
  5027. M_UINT (UL_Data_Block_EGPRS_Header_Type2_t, SPARE2, 5, &hf_ul_data_spare),
  5028. CSN_DESCR_END (UL_Data_Block_EGPRS_Header_Type2_t)
  5029. CSN_DESCR_BEGIN (UL_Data_Block_EGPRS_Header_Type3_t)
  5030. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type3_t, TFI, bits_spec_ul_tfi, 5, &hf_uplink_tfi),
  5031. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type3_t, TFI, bits_spec_ul_tfi, 1, &hf_uplink_tfi),
  5032. M_UINT (UL_Data_Block_EGPRS_Header_Type3_t, Countdown_Value, 4, &hf_countdown_value),
  5033. M_UINT (UL_Data_Block_EGPRS_Header_Type3_t, SI, 1, &hf_ul_data_si),
  5034. M_UINT (UL_Data_Block_EGPRS_Header_Type3_t, R, 1, &hf_ul_retry),
  5035. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type3_t, BSN1, bits_spec_ul_bsn1, 11, &hf_bsn),
  5036. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type3_t, BSN1, bits_spec_ul_bsn1, 1, &hf_bsn),
  5037. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type3_t, TFI, bits_spec_ul_tfi, 0, &hf_uplink_tfi),
  5038. M_SPLIT_BITS (UL_Data_Block_EGPRS_Header_Type3_t, CPS, bits_spec_ul_type3_cps, 4, &hf_cps3),
  5039. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type3_t, CPS, bits_spec_ul_type3_cps, 1, &hf_cps3),
  5040. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type3_t, BSN1, bits_spec_ul_bsn1, 0, &hf_bsn),
  5041. M_NULL (UL_Data_Block_EGPRS_Header_Type1_t, dummy, 1),
  5042. M_UINT (UL_Data_Block_EGPRS_Header_Type3_t, SPARE1, 1, &hf_ul_data_spare),
  5043. M_UINT (UL_Data_Block_EGPRS_Header_Type3_t, PI, 1, &hf_pi),
  5044. M_UINT (UL_Data_Block_EGPRS_Header_Type3_t, RSB, 1, &hf_rsb),
  5045. M_UINT (UL_Data_Block_EGPRS_Header_Type3_t, SPB, 2, &hf_ul_spb),
  5046. M_BITS_CRUMB (UL_Data_Block_EGPRS_Header_Type3_t, CPS, bits_spec_ul_type3_cps, 0, &hf_cps3),
  5047. CSN_DESCR_END (UL_Data_Block_EGPRS_Header_Type3_t)
  5048. CSN_DESCR_BEGIN (UL_Packet_Control_Ack_11_t)
  5049. M_UINT (UL_Packet_Control_Ack_11_t, MESSAGE_TYPE, 9, &hf_prach11_message_type_9),
  5050. M_UINT (UL_Packet_Control_Ack_11_t, CTRL_ACK, 2, &hf_packet_control_acknowledgement_ctrl_ack),
  5051. CSN_DESCR_END (UL_Packet_Control_Ack_11_t)
  5052. CSN_DESCR_BEGIN (UL_Packet_Control_Ack_TN_RRBP_11_t)
  5053. M_UINT (UL_Packet_Control_Ack_TN_RRBP_11_t, MESSAGE_TYPE, 6, &hf_prach11_message_type_6),
  5054. M_UINT (UL_Packet_Control_Ack_TN_RRBP_11_t, TN_RRBP, 3, &hf_packet_control_acknowledgement_additionsr5_tn_rrbp),
  5055. M_UINT (UL_Packet_Control_Ack_TN_RRBP_11_t, CTRL_ACK, 2, &hf_packet_control_acknowledgement_ctrl_ack),
  5056. CSN_DESCR_END (UL_Packet_Control_Ack_TN_RRBP_11_t)
  5057. CSN_DESCR_BEGIN (UL_Packet_Control_Ack_8_t)
  5058. M_UINT (UL_Packet_Control_Ack_8_t, MESSAGE_TYPE, 6, &hf_prach8_message_type_6),
  5059. M_UINT (UL_Packet_Control_Ack_8_t, CTRL_ACK, 2, &hf_packet_control_acknowledgement_ctrl_ack),
  5060. CSN_DESCR_END (UL_Packet_Control_Ack_8_t)
  5061. CSN_DESCR_BEGIN (UL_Packet_Control_Ack_TN_RRBP_8_t)
  5062. M_UINT (UL_Packet_Control_Ack_TN_RRBP_8_t, MESSAGE_TYPE, 3, &hf_prach8_message_type_3),
  5063. M_UINT (UL_Packet_Control_Ack_TN_RRBP_8_t, TN_RRBP, 3, &hf_packet_control_acknowledgement_additionsr5_tn_rrbp),
  5064. M_UINT (UL_Packet_Control_Ack_TN_RRBP_8_t, CTRL_ACK, 2, &hf_packet_control_acknowledgement_ctrl_ack),
  5065. CSN_DESCR_END (UL_Packet_Control_Ack_TN_RRBP_8_t)
  5066. CSN_DESCR_BEGIN (DL_Data_Mac_Header_t)
  5067. M_UINT (DL_Data_Mac_Header_t, Payload_Type, 2, &hf_dl_payload_type),
  5068. M_UINT (DL_Data_Mac_Header_t, RRBP, 2, &hf_rrbp),
  5069. M_UINT (DL_Data_Mac_Header_t, S_P, 1, &hf_s_p),
  5070. M_UINT (DL_Data_Mac_Header_t, USF, 3, &hf_usf),
  5071. CSN_DESCR_END (DL_Data_Mac_Header_t)
  5072. CSN_DESCR_BEGIN (DL_Data_Block_GPRS_t)
  5073. M_TYPE (DL_Data_Block_GPRS_t, DL_Data_Mac_Header, DL_Data_Mac_Header_t),
  5074. M_UINT (DL_Data_Block_GPRS_t, Power_Reduction, 2, &hf_dl_ctrl_pr),
  5075. M_UINT (DL_Data_Block_GPRS_t, TFI, 5, &hf_downlink_tfi),
  5076. M_UINT (DL_Data_Block_GPRS_t, FBI, 1, &hf_fbi),
  5077. M_UINT (DL_Data_Block_GPRS_t, BSN, 7, &hf_bsn),
  5078. M_UINT (DL_Data_Block_GPRS_t, E, 1, &hf_e),
  5079. CSN_DESCR_END (DL_Data_Block_GPRS_t)
  5080. CSN_DESCR_BEGIN (DL_Data_Block_EGPRS_Header_Type1_t)
  5081. M_SPLIT_BITS (DL_Data_Block_EGPRS_Header_Type1_t, TFI, bits_spec_dl_tfi, 5, &hf_downlink_tfi),
  5082. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type1_t, TFI, bits_spec_dl_tfi, 1, &hf_downlink_tfi),
  5083. M_UINT (DL_Data_Block_EGPRS_Header_Type1_t, RRBP, 2, &hf_rrbp),
  5084. M_UINT (DL_Data_Block_EGPRS_Header_Type1_t, ES_P, 2, &hf_es_p),
  5085. M_UINT (DL_Data_Block_EGPRS_Header_Type1_t, USF, 3, &hf_usf),
  5086. M_SPLIT_BITS (DL_Data_Block_EGPRS_Header_Type1_t, BSN1, bits_spec_dl_type1_bsn1, 11, &hf_bsn),
  5087. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type1_t, BSN1, bits_spec_dl_type1_bsn1, 2, &hf_bsn),
  5088. M_UINT (DL_Data_Block_EGPRS_Header_Type1_t, Power_Reduction, 2, &hf_dl_ctrl_pr),
  5089. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type1_t, TFI, bits_spec_dl_tfi, 0, &hf_downlink_tfi),
  5090. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type1_t, BSN1, bits_spec_dl_type1_bsn1, 1, &hf_bsn),
  5091. M_SPLIT_BITS (DL_Data_Block_EGPRS_Header_Type1_t, BSN2_offset, bits_spec_dl_type1_bsn2, 11, &hf_bsn2_offset),
  5092. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type1_t, BSN2_offset, bits_spec_dl_type1_bsn2, 1, &hf_bsn2_offset),
  5093. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type1_t, BSN1, bits_spec_dl_type1_bsn1, 0, &hf_bsn),
  5094. M_UINT (DL_Data_Block_EGPRS_Header_Type1_t, CPS, 5, &hf_cps1),
  5095. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type1_t, BSN2_offset, bits_spec_dl_type1_bsn2, 0, &hf_bsn2_offset),
  5096. CSN_DESCR_END (DL_Data_Block_EGPRS_Header_Type1_t)
  5097. CSN_DESCR_BEGIN (DL_Data_Block_EGPRS_Header_Type2_t)
  5098. M_SPLIT_BITS (DL_Data_Block_EGPRS_Header_Type2_t, TFI, bits_spec_dl_tfi, 5, &hf_downlink_tfi),
  5099. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type2_t, TFI, bits_spec_dl_tfi, 1, &hf_downlink_tfi),
  5100. M_UINT (DL_Data_Block_EGPRS_Header_Type2_t, RRBP, 2, &hf_rrbp),
  5101. M_UINT (DL_Data_Block_EGPRS_Header_Type2_t, ES_P, 2, &hf_es_p),
  5102. M_UINT (DL_Data_Block_EGPRS_Header_Type2_t, USF, 3, &hf_usf),
  5103. M_SPLIT_BITS (DL_Data_Block_EGPRS_Header_Type2_t, BSN1, bits_spec_dl_type2_bsn, 11, &hf_bsn),
  5104. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type2_t, BSN1, bits_spec_dl_type2_bsn, 2, &hf_bsn),
  5105. M_UINT (DL_Data_Block_EGPRS_Header_Type2_t, Power_Reduction, 2, &hf_dl_ctrl_pr),
  5106. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type2_t, TFI, bits_spec_dl_tfi, 0, &hf_downlink_tfi),
  5107. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type2_t, BSN1, bits_spec_dl_type2_bsn, 1, &hf_bsn),
  5108. M_NULL (UL_Data_Block_EGPRS_Header_Type1_t, dummy, 4),
  5109. M_UINT (DL_Data_Block_EGPRS_Header_Type2_t, CPS, 3, &hf_cps2),
  5110. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type2_t, BSN1, bits_spec_dl_type2_bsn, 0, &hf_bsn),
  5111. CSN_DESCR_END (DL_Data_Block_EGPRS_Header_Type2_t)
  5112. CSN_DESCR_BEGIN (DL_Data_Block_EGPRS_Header_Type3_t)
  5113. M_SPLIT_BITS (DL_Data_Block_EGPRS_Header_Type3_t, TFI, bits_spec_dl_tfi, 5, &hf_downlink_tfi),
  5114. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type3_t, TFI, bits_spec_dl_tfi, 1, &hf_downlink_tfi),
  5115. M_UINT (DL_Data_Block_EGPRS_Header_Type3_t, RRBP, 2, &hf_rrbp),
  5116. M_UINT (DL_Data_Block_EGPRS_Header_Type3_t, ES_P, 2, &hf_es_p),
  5117. M_UINT (DL_Data_Block_EGPRS_Header_Type3_t, USF, 3, &hf_usf),
  5118. M_SPLIT_BITS (DL_Data_Block_EGPRS_Header_Type3_t, BSN1, bits_spec_dl_type3_bsn, 11, &hf_bsn),
  5119. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type3_t, BSN1, bits_spec_dl_type3_bsn, 2, &hf_bsn),
  5120. M_UINT (DL_Data_Block_EGPRS_Header_Type3_t, Power_Reduction, 2, &hf_dl_ctrl_pr),
  5121. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type3_t, TFI, bits_spec_dl_tfi, 0, &hf_downlink_tfi),
  5122. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type3_t, BSN1, bits_spec_dl_type3_bsn, 1, &hf_bsn),
  5123. M_NULL (UL_Data_Block_EGPRS_Header_Type1_t, dummy, 1),
  5124. M_UINT (DL_Data_Block_EGPRS_Header_Type3_t, SPB, 2, &hf_dl_spb),
  5125. M_UINT (DL_Data_Block_EGPRS_Header_Type3_t, CPS, 4, &hf_cps3),
  5126. M_BITS_CRUMB (DL_Data_Block_EGPRS_Header_Type3_t, BSN1, bits_spec_dl_type3_bsn, 0, &hf_bsn),
  5127. CSN_DESCR_END (DL_Data_Block_EGPRS_Header_Type3_t)
  5128. static const value_string dl_rlc_message_type_vals[] = {
  5129. /* {0x00, "Invalid Message Type"}, */
  5130. {0x01, "PACKET_CELL_CHANGE_ORDER"},
  5131. {0x02, "PACKET_DOWNLINK_ASSIGNMENT"},
  5132. {0x03, "PACKET_MEASUREMENT_ORDER"},
  5133. {0x04, "PACKET_POLLING_REQUEST"},
  5134. {0x05, "PACKET_POWER_CONTROL_TIMING_ADVANCE"},
  5135. {0x06, "PACKET_QUEUEING_NOTIFICATION"},
  5136. {0x07, "PACKET_TIMESLOT_RECONFIGURE"},
  5137. {0x08, "PACKET_TBF_RELEASE"},
  5138. {0x09, "PACKET_UPLINK_ACK_NACK"},
  5139. {0x0A, "PACKET_UPLINK_ASSIGNMENT"},
  5140. {0x0B, "PACKET_CELL_CHANGE_CONTINUE"},
  5141. {0x0C, "PACKET_NEIGHBOUR_CELL_DATA"},
  5142. {0x0D, "PACKET_SERVING_CELL_DATA"},
  5143. {0x0E, "Invalid Message Type"},
  5144. {0x0F, "Invalid Message Type"},
  5145. {0x10, "Invalid Message Type"},
  5146. {0x11, "Invalid Message Type"},
  5147. {0x12, "Invalid Message Type"},
  5148. {0x13, "Invalid Message Type"},
  5149. {0x14, "Invalid Message Type"},
  5150. {0x15, "PACKET_HANDOVER_COMMAND"},
  5151. {0x16, "PACKET_PHYSICAL_INFORMATION"},
  5152. {0x17, "Invalid Message Type"},
  5153. {0x18, "Invalid Message Type"},
  5154. {0x19, "Invalid Message Type"},
  5155. {0x1A, "Invalid Message Type"},
  5156. {0x1B, "Invalid Message Type"},
  5157. {0x1C, "Invalid Message Type"},
  5158. {0x1D, "Invalid Message Type"},
  5159. {0x1E, "Invalid Message Type"},
  5160. {0x1F, "Invalid Message Type"},
  5161. {0x20, "Invalid Message Type"},
  5162. {0x21, "PACKET_ACCESS_REJECT"},
  5163. {0x22, "PACKET_PAGING_REQUEST"},
  5164. {0x23, "PACKET_PDCH_RELEASE"},
  5165. {0x24, "PACKET_PRACH_PARAMETERS"},
  5166. {0x25, "PACKET_DOWNLINK_DUMMY_CONTROL_BLOCK"},
  5167. {0x26, "Invalid Message Type"},
  5168. {0x27, "Invalid Message Type"},
  5169. {0x28, "Invalid Message Type"},
  5170. {0x29, "Invalid Message Type"},
  5171. {0x2A, "Invalid Message Type"},
  5172. {0x2B, "Invalid Message Type"},
  5173. {0x2C, "Invalid Message Type"},
  5174. {0x2D, "Invalid Message Type"},
  5175. {0x2E, "Invalid Message Type"},
  5176. {0x2F, "Invalid Message Type"},
  5177. {0x30, "PACKET_SYSTEM_INFO_6"},
  5178. {0x31, "PACKET_SYSTEM_INFO_1"},
  5179. {0x32, "PACKET_SYSTEM_INFO_2"},
  5180. {0x33, "PACKET_SYSTEM_INFO_3"},
  5181. {0x34, "PACKET_SYSTEM_INFO_3_BIS"},
  5182. {0x35, "PACKET_SYSTEM_INFO_4"},
  5183. {0x36, "PACKET_SYSTEM_INFO_5"},
  5184. {0x37, "PACKET_SYSTEM_INFO_13"},
  5185. {0x38, "PACKET_SYSTEM_INFO_7"},
  5186. {0x39, "PACKET_SYSTEM_INFO_8"},
  5187. {0x3A, "PACKET_SYSTEM_INFO_14"},
  5188. {0x3B, "Invalid Message Type"},
  5189. {0x3C, "PACKET_SYSTEM_INFO_3_TER"},
  5190. {0x3D, "PACKET_SYSTEM_INFO_3_QUATER"},
  5191. {0x3E, "PACKET_SYSTEM_INFO_15"},
  5192. { 0, NULL }
  5193. };
  5194. static value_string_ext dl_rlc_message_type_vals_ext = VALUE_STRING_EXT_INIT(dl_rlc_message_type_vals);
  5195. static const value_string ul_rlc_message_type_vals[] = {
  5196. {0x00, "PACKET_CELL_CHANGE_FAILURE"},
  5197. {0x01, "PACKET_CONTROL_ACKNOWLEDGEMENT"},
  5198. {0x02, "PACKET_DOWNLINK_ACK_NACK"},
  5199. {0x03, "PACKET_UPLINK_DUMMY_CONTROL_BLOCK"},
  5200. {0x04, "PACKET_MEASUREMENT_REPORT"},
  5201. {0x05, "PACKET_RESOURCE_REQUEST"},
  5202. {0x06, "PACKET_MOBILE_TBF_STATUS"},
  5203. {0x07, "PACKET_PSI_STATUS"},
  5204. {0x08, "EGPRS_PACKET_DOWNLINK_ACK_NACK"},
  5205. {0x09, "PACKET_PAUSE"},
  5206. {0x0A, "PACKET_ENHANCED_MEASUREMENT_REPORT"},
  5207. {0x0B, "ADDITIONAL_MS_RAC"},
  5208. {0x0C, "PACKET_CELL_CHANGE_NOTIFICATION"},
  5209. {0x0D, "PACKET_SI_STATUS"},
  5210. /* {0x0E, "Invalid Message Type"}, */
  5211. /* {0x0F, "Invalid Message Type"}, */
  5212. /* {0x10, "Invalid Message Type"}, */
  5213. /* {0x11, "Invalid Message Type"}, */
  5214. /* {0x12, "Invalid Message Type"}, */
  5215. /* {0x13, "Invalid Message Type"}, */
  5216. /* {0x14, "Invalid Message Type"}, */
  5217. {0, NULL }
  5218. };
  5219. static const value_string ul_prach8_message_type3_vals[] = {
  5220. {0x00, "PACKET_CONTROL_ACKNOWLEDGEMENT"},
  5221. {0, NULL }
  5222. };
  5223. static const value_string ul_prach8_message_type6_vals[] = {
  5224. {0x1F, "PACKET_CONTROL_ACKNOWLEDGEMENT"},
  5225. {0, NULL }
  5226. };
  5227. static const value_string ul_prach11_message_type6_vals[] = {
  5228. {0x37, "PACKET_CONTROL_ACKNOWLEDGEMENT"},
  5229. {0, NULL }
  5230. };
  5231. static const value_string ul_prach11_message_type9_vals[] = {
  5232. {0x1F9, "PACKET_CONTROL_ACKNOWLEDGEMENT"},
  5233. {0, NULL }
  5234. };
  5235. static value_string_ext ul_rlc_message_type_vals_ext = VALUE_STRING_EXT_INIT(ul_rlc_message_type_vals);
  5236. static const true_false_string retry_vals = {
  5237. "MS sent channel request message twice or more",
  5238. "MS sent channel request message once"
  5239. };
  5240. static const value_string ctrl_ack_vals[] = {
  5241. {0x00, "In case the message is sent in access burst format, the MS received two RLC/MAC blocks with the same RTI value, one with RBSN = 0 and the other with RBSN = 1 and the mobile station is requesting new TBF. Otherwise the bit value '00' is reserved and shall not be sent. If received it shall be intepreted as the MS received an RLC/MAC control block addressed to itself and with RBSN = 1, and did not receive an RLC/MAC control block with the same RTI value and RBSN = 0"},
  5242. {0x01, "The MS received an RLC/MAC control block addressed to itself and with RBSN = 1, and did not receive an RLC/MAC control block with the same RTI value and RBSN = 0"},
  5243. {0x02, "The MS received an RLC/MAC control block addressed to itself and with RBSN = 0, and did not receive an RLC/MAC control block with the same RTI value and RBSN = 1. This value is sent irrespective of the value of the FS bit"},
  5244. {0x03, "The MS received two RLC/MAC blocks with the same RTI value, one with RBSN = 0 and the other with RBSN = 1"},
  5245. {0, NULL }
  5246. };
  5247. static const value_string ul_payload_type_vals[] = {
  5248. {0x00, "RLC/MAC block contains an RLC data block"},
  5249. {0x01, "RLC/MAC block contains an RLC/MAC control block that does not include the optional octets of the RLC/MAC control header"},
  5250. {0x02, "Reserved"},
  5251. {0x03, "Reserved"},
  5252. {0, NULL }
  5253. };
  5254. static const value_string dl_payload_type_vals[] = {
  5255. {0x00, "RLC/MAC block contains an RLC data block"},
  5256. {0x01, "RLC/MAC block contains an RLC/MAC control block that does not include the optional octets of the RLC/MAC control header"},
  5257. {0x02, "RLC/MAC block contains an RLC/MAC control block that includes the optional first octet of the RLC/MAC control header"},
  5258. {0x03, "Reserved. The mobile station shall ignore all fields of the RLC/MAC block except for the USF field"},
  5259. {0, NULL }
  5260. };
  5261. static const value_string rrbp_vals[] = {
  5262. {0x00, "Reserved Block: (N+13) mod 2715648"},
  5263. {0x01, "Reserved Block: (N+17 or N+18) mod 2715648"},
  5264. {0x02, "Reserved Block: (N+21 or N+22) mod 2715648"},
  5265. {0x03, "Reserved Block: (N+26) mod 2715648"},
  5266. {0, NULL }
  5267. };
  5268. static const true_false_string s_p_vals = {
  5269. "RRBP field is valid",
  5270. "RRBP field is not valid"
  5271. };
  5272. static const true_false_string fbi_vals = {
  5273. "Current Block is last RLC data block in TBF",
  5274. "Current Block is not last RLC data block in TBF"
  5275. };
  5276. static const true_false_string pi_vals = {
  5277. "PFI is present if TI field indicates presence of TLLI",
  5278. "PFI is not present"
  5279. };
  5280. static const true_false_string ti_vals = {
  5281. "TLLI/G-RNTI field is present",
  5282. "TLLI/G-RNTI field is not present"
  5283. };
  5284. static const true_false_string si_vals = {
  5285. "MS RLC transmit window is stalled",
  5286. "MS RLC transmit window is not stalled"
  5287. };
  5288. static const true_false_string r_vals = {
  5289. "MS sent channel request message twice or more",
  5290. "MS sent channel request message once"
  5291. };
  5292. static const true_false_string rsb_vals = {
  5293. "At least one RLC data block contained within the EGPRS radio block has been transmitted before",
  5294. "All of the RLC data blocks contained within the EGPRS radio block are being transmitted for the first time"
  5295. };
  5296. static const value_string es_p_vals[] = {
  5297. {0x00, "RRBP field is not valid (no Polling)"},
  5298. {0x01, "RRBP field is valid - Extended Ack/Nack bitmap type FPB"},
  5299. {0x02, "RRBP field is valid - Extended Ack/Nack bitmap type NPB"},
  5300. {0x03, "RRBP field is valid - Ack/Nack bitmap type NPB, measurement report included"},
  5301. {0, NULL }
  5302. };
  5303. static const value_string dl_spb_vals[] = {
  5304. {0x00, "No retransmission"},
  5305. {0x01, "Retransmission - third part of block"},
  5306. {0x02, "Retransmission - first part of block"},
  5307. {0x03, "Retransmission - second part of block"},
  5308. {0, NULL }
  5309. };
  5310. static const value_string ul_spb_vals[] = {
  5311. {0x00, "No retransmission"},
  5312. {0x01, "Retransmission - first part of block with 10 octet padding"},
  5313. {0x02, "Retransmission - first part of block with no padding or 6 octet padding"},
  5314. {0x03, "Retransmission - second part of block"},
  5315. {0, NULL }
  5316. };
  5317. static const value_string page_mode_vals[] = {
  5318. {0x00, "Normal Paging"},
  5319. {0x01, "Extended Paging"},
  5320. {0x02, "Paging Reorganization"},
  5321. {0x03, "Same as before"},
  5322. {0, NULL }
  5323. };
  5324. static const true_false_string e_vals = {
  5325. "No extension octet follows",
  5326. "Extension octet follows immediately"
  5327. };
  5328. static const value_string me_vals[] = {
  5329. {0x00, "The mobile station shall ignore all fields of the RLC/MAC block except for the fields of the MAC header"},
  5330. {0x01, "no more LLC segments in this RLC block after the current segment, no more extension octets"},
  5331. {0x02, "a new LLC PDU starts after the current LLC PDU and there is another extension octet, which delimits the new LLC PDU"},
  5332. {0x03, "a new LLC PDU starts after the current LLC PDU and continues until the end of the RLC information field, no more extension octets"},
  5333. {0, NULL }
  5334. };
  5335. static const true_false_string ack_type_vals = {
  5336. "PACKET CONTROL ACKNOWLEDGEMENT message format shall be an RLC/MAC control block",
  5337. "CONTROL ACKNOWLEDGEMENT message format shall be sent as four access bursts"
  5338. };
  5339. static const true_false_string fs_vals = {
  5340. "Current block contains the final segment of an RLC/MAC control message",
  5341. "Current block does not contain the final segment of an RLC/MAC control message"
  5342. };
  5343. static const true_false_string ac_vals = {
  5344. "TFI/D octet is present",
  5345. "TFI/D octet is not present"
  5346. };
  5347. static const value_string power_reduction_vals[] = {
  5348. {0x00, "0 dB (included) to 3 dB (excluded) less than BCCH level - P0"},
  5349. {0x01, "3 dB (included) to 7 dB (excluded) less than BCCH level - P0"},
  5350. {0x02, "7 dB (included) to 10 dB (included) less than BCCH level - P0"},
  5351. {0x03, "Not usable"},
  5352. {0, NULL }
  5353. };
  5354. static const true_false_string ctrl_d_vals = {
  5355. "TFI field identifies a downlink TBF",
  5356. "TFI field identifies an uplink TBF"
  5357. };
  5358. static const value_string rbsn_e_vals[] = {
  5359. {0x00, "2nd RLC/MAC control block"},
  5360. {0x01, "3rd / last RLC/MAC control block"},
  5361. {0x02, "4th / last RLC/MAC control block"},
  5362. {0x03, "5th / last RLC/MAC control block"},
  5363. {0x04, "6th / last RLC/MAC control block"},
  5364. {0x05, "7th / last RLC/MAC control block"},
  5365. {0x06, "8th / last RLC/MAC control block"},
  5366. {0x07, "9th and last RLC/MAC control block"},
  5367. {0, NULL }
  5368. };
  5369. static const value_string alpha_vals[] = {
  5370. {0x00, "Alpha* = 0.0"},
  5371. {0x01, "Alpha* = 0.1"},
  5372. {0x02, "Alpha* = 0.2"},
  5373. {0x03, "Alpha* = 0.3"},
  5374. {0x04, "Alpha* = 0.4"},
  5375. {0x05, "Alpha* = 0.5"},
  5376. {0x06, "Alpha* = 0.6"},
  5377. {0x07, "Alpha* = 0.7"},
  5378. {0x08, "Alpha* = 0.8"},
  5379. {0x09, "Alpha* = 0.9"},
  5380. {0x0A, "Alpha* = 1.0"},
  5381. {0x0B, "Alpha* = 1.0"},
  5382. {0x0C, "Alpha* = 1.0"},
  5383. {0x0D, "Alpha* = 1.0"},
  5384. {0x0E, "Alpha* = 1.0"},
  5385. {0x0F, "Alpha* = 1.0"},
  5386. {0, NULL }
  5387. };
  5388. static const true_false_string rlc_mode_vals = {
  5389. "RLC unacknowledged mode",
  5390. "RLC acknowledged mode"
  5391. };
  5392. static const true_false_string pc_meas_chan_vals = {
  5393. "downlink measurements for power control shall be made on PDCH",
  5394. "downlink measurements for power control shall be made on BCCH"
  5395. };
  5396. static const value_string mac_mode_vals[] = {
  5397. {0x00, "Dynamic Allocation"},
  5398. {0x01, "Extended Dynamic Allocation"},
  5399. {0x02, "Reserved -- The value '10' was allocated in an earlier version of the protocol and shall not be used"},
  5400. {0x03, "Reserved -- The value '11' was allocated in an earlier version of the protocol and shall not be used"},
  5401. {0, NULL }
  5402. };
  5403. static const true_false_string control_ack_vals = {
  5404. "A new downlink TBF for the mobile station whose timer T3192 is running",
  5405. "Not a new downlink TBF for the mobile station whose timer T3192 is running"
  5406. };
  5407. static const value_string cell_change_failure_cause_vals[] = {
  5408. {0x00, "Frequency not implemented"},
  5409. {0x01, "No response on target cell"},
  5410. {0x02, "Immediate Assign Reject or Packet Access Reject on target cell"},
  5411. {0x03, "On-going CS connection"},
  5412. {0x04, "PS Handover failure - other"},
  5413. {0x05, "MS in GMM Standby state"},
  5414. {0x06, "Forced to the Standby state"},
  5415. {0x07, "Reserved for Future Use"},
  5416. {0x08, "Reserved for Future Use"},
  5417. {0x09, "Reserved for Future Use"},
  5418. {0x0A, "Reserved for Future Use"},
  5419. {0x0B, "Reserved for Future Use"},
  5420. {0x0C, "Reserved for Future Use"},
  5421. {0x0D, "Reserved for Future Use"},
  5422. {0x0E, "Reserved for Future Use"},
  5423. {0x0F, "Reserved for Future Use"},
  5424. {0, NULL }
  5425. };
  5426. static const value_string egprs_modulation_channel_coding_scheme_vals[] = {
  5427. {0x00, "MCS-1"},
  5428. {0x01, "MCS-2"},
  5429. {0x02, "MCS-3"},
  5430. {0x03, "MCS-4"},
  5431. {0x04, "MCS-5"},
  5432. {0x05, "MCS-6"},
  5433. {0x06, "MCS-7"},
  5434. {0x07, "MCS-8"},
  5435. {0x08, "MCS-9"},
  5436. {0x09, "MCS-5-7"},
  5437. {0x0A, "MCS-6-9"},
  5438. {0x0B, "reserved"},
  5439. {0x0C, "reserved"},
  5440. {0x0D, "reserved"},
  5441. {0x0E, "reserved"},
  5442. {0x0F, "reserved"},
  5443. {0, NULL }
  5444. };
  5445. static const value_string egprs_Header_type1_coding_puncturing_scheme_vals[] = {
  5446. {0x00, "(MCS-9/P1 ; MCS-9/P1)"},
  5447. {0x01, "(MCS-9/P1 ; MCS-9/P2)"},
  5448. {0x02, "(MCS-9/P1 ; MCS-9/P3)"},
  5449. {0x03, "reserved"},
  5450. {0x04, "(MCS-9/P2 ; MCS-9/P1)"},
  5451. {0x05, "(MCS-9/P2 ; MCS-9/P2)"},
  5452. {0x06, "(MCS-9/P2 ; MCS-9/P3)"},
  5453. {0x07, "reserved"},
  5454. {0x08, "(MCS-9/P3 ; MCS-9/P1)"},
  5455. {0x09, "(MCS-9/P3 ; MCS-9/P2)"},
  5456. {0x0A, "(MCS-9/P3 ; MCS-9/P3)"},
  5457. {0x0B, "(MCS-8/P1 ; MCS-8/P1)"},
  5458. {0x0C, "(MCS-8/P1 ; MCS-8/P2)"},
  5459. {0x0D, "(MCS-8/P1 ; MCS-8/P3)"},
  5460. {0x0E, "(MCS-8/P2 ; MCS-8/P1)"},
  5461. {0x0F, "(MCS-8/P2 ; MCS-8/P2)"},
  5462. {0x10, "(MCS-8/P2 ; MCS-8/P3)"},
  5463. {0x11, "(MCS-8/P3 ; MCS-8/P1)"},
  5464. {0x12, "(MCS-8/P3 ; MCS-8/P2)"},
  5465. {0x13, "(MCS-8/P3 ; MCS-8/P3)"},
  5466. {0x14, "(MCS-7/P1 ; MCS-7/P1"},
  5467. {0x15, "(MCS-7/P1 ; MCS-7/P2)"},
  5468. {0x16, "(MCS-7/P1 ; MCS-7/P3)"},
  5469. {0x17, "(MCS-7/P2 ; MCS-7/P1)"},
  5470. {0x18, "(MCS-7/P2 ; MCS-7/P2)"},
  5471. {0x19, "(MCS-7/P2 ; MCS-7/P3)"},
  5472. {0x1A, "(MCS-7/P3 ; MCS-7/P1)"},
  5473. {0x1B, "(MCS-7/P3 ; MCS-7/P2)"},
  5474. {0x1C, "(MCS-7/P3 ; MCS-7/P3)"},
  5475. {0x1D, "reserved"},
  5476. {0x1E, "reserved"},
  5477. {0x1F, "reserved"},
  5478. {0, NULL }
  5479. };
  5480. static value_string_ext egprs_Header_type1_coding_puncturing_scheme_vals_ext = VALUE_STRING_EXT_INIT(egprs_Header_type1_coding_puncturing_scheme_vals);
  5481. static const value_string egprs_Header_type2_coding_puncturing_scheme_vals[] = {
  5482. {0x00, "MCS-6/P1"},
  5483. {0x01, "MCS-6/P2"},
  5484. {0x02, "MCS-6/P1 with 6 octet padding"},
  5485. {0x03, "MCS-6/P2 with 6 octet padding "},
  5486. {0x04, "MCS-5/P1"},
  5487. {0x05, "MCS-5/P2"},
  5488. {0x06, "MCS-6/P1 with 10 octet padding "},
  5489. {0x07, "MCS-6/P2 with 10 octet padding "},
  5490. {0, NULL }
  5491. };
  5492. static value_string_ext egprs_Header_type2_coding_puncturing_scheme_vals_ext = VALUE_STRING_EXT_INIT(egprs_Header_type2_coding_puncturing_scheme_vals);
  5493. static const value_string egprs_Header_type3_coding_puncturing_scheme_vals[] = {
  5494. {0x00, "MCS-4/P1"},
  5495. {0x01, "MCS-4/P2"},
  5496. {0x02, "MCS-4/P3"},
  5497. {0x03, "MCS-3/P1"},
  5498. {0x04, "MCS-3/P2"},
  5499. {0x05, "MCS-3/P3"},
  5500. {0x06, "MCS-3/P1 with padding"},
  5501. {0x07, "MCS-3/P2 with padding"},
  5502. {0x08, "MCS-3/P3 with padding"},
  5503. {0x09, "MCS-2/P1"},
  5504. {0x0A, "MCS-2/P2"},
  5505. {0x0B, "MCS-1/P1"},
  5506. {0x0C, "MCS-1/P2"},
  5507. {0x0D, "MCS-2/P1 with padding"},
  5508. {0x0E, "MCS-2/P2 with padding"},
  5509. {0x0F, "MCS-0"},
  5510. {0, NULL }
  5511. };
  5512. static value_string_ext egprs_Header_type3_coding_puncturing_scheme_vals_ext = VALUE_STRING_EXT_INIT(egprs_Header_type3_coding_puncturing_scheme_vals);
  5513. static const value_string gsm_rlcmac_psi_change_field_vals[] = {
  5514. { 0, "Update of unspecified PSI message(s)"},
  5515. { 1, "Unknown"},
  5516. { 2, "PSI2 updated"},
  5517. { 3, "PSI3/PSI3bis/PSI3ter/PSI3quater updated"},
  5518. { 4, "Unknown"},
  5519. { 5, "PSI5 updated"},
  5520. { 6, "PSI6 updated"},
  5521. { 7, "PSI7 updated"},
  5522. { 8, "PSI8 updated"},
  5523. { 9, "Update of unknown SI message type"},
  5524. {10, "Update of unknown SI message type"},
  5525. {11, "Update of unknown SI message type"},
  5526. {12, "Update of unknown SI message type"},
  5527. {13, "Update of unknown SI message type"},
  5528. {14, "Update of unknown SI message type"},
  5529. {15, "Update of unknown SI message type"},
  5530. { 0, NULL}
  5531. };
  5532. static const value_string gsm_rlcmac_val_plus_1_vals[] = {
  5533. { 0, "1"},
  5534. { 1, "2"},
  5535. { 2, "3"},
  5536. { 3, "4"},
  5537. { 4, "5"},
  5538. { 5, "6"},
  5539. { 6, "7"},
  5540. { 7, "8"},
  5541. { 8, "9"},
  5542. { 9, "10"},
  5543. {10, "11"},
  5544. {11, "12"},
  5545. {12, "13"},
  5546. {13, "14"},
  5547. {14, "15"},
  5548. {15, "16"},
  5549. { 0, NULL}
  5550. };
  5551. static const true_false_string gsm_rlcmac_psi1_measurement_order_value = {
  5552. "MS shall send measurement reports for cell re-selection",
  5553. "MS performs cell re-selection in both packet idle and transfert mode and shall not send any measurement reports to the network"
  5554. };
  5555. static const value_string gsm_rlcmac_nmo_vals[] = {
  5556. { 0, "Network Mode of Operation I"},
  5557. { 1, "Network Mode of Operation II"},
  5558. { 2, "Network Mode of Operation III"},
  5559. { 3, "Reserved"},
  5560. { 0, NULL}
  5561. };
  5562. static const value_string gsm_rlcmac_t3168_vals[] = {
  5563. { 0, "500 ms"},
  5564. { 1, "1000 ms"},
  5565. { 2, "1500 ms"},
  5566. { 3, "2000 ms"},
  5567. { 4, "2500 ms"},
  5568. { 5, "3000 ms"},
  5569. { 6, "3500 ms"},
  5570. { 7, "4000 ms"},
  5571. { 0, NULL}
  5572. };
  5573. static const value_string gsm_rlcmac_t3192_vals[] = {
  5574. { 0, "500 ms"},
  5575. { 1, "1000 ms"},
  5576. { 2, "1500 ms"},
  5577. { 3, "0 ms"},
  5578. { 4, "80 ms"},
  5579. { 5, "120 ms"},
  5580. { 6, "160 ms"},
  5581. { 7, "200 ms"},
  5582. { 0, NULL}
  5583. };
  5584. static guint8 construct_gprs_data_segment_li_array(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 initial_offset, guint8 *li_count, length_indicator_t *li_array, guint64 *e)
  5585. {
  5586. guint8 offset = initial_offset, li_array_size = *li_count;
  5587. proto_item *item;
  5588. *li_count = 0;
  5589. while(*e == 0)
  5590. {
  5591. item = proto_tree_add_bits_item(tree, hf_li, tvb, offset * 8, 6, ENC_BIG_ENDIAN);
  5592. if(*li_count < li_array_size)
  5593. {
  5594. li_array[*li_count].li = tvb_get_guint8(tvb, offset);
  5595. li_array[*li_count].offset = offset;
  5596. (*li_count)++;
  5597. }
  5598. else
  5599. {
  5600. expert_add_info_format(pinfo, item, PI_UNDECODED, PI_ERROR, "Too many LIs, corresponding blocks will not be decoded");
  5601. }
  5602. proto_tree_add_bits_item(tree, hf_me, tvb, (offset * 8) + 6, 2, ENC_BIG_ENDIAN);
  5603. proto_tree_add_bits_ret_val(tree, hf_e, tvb, (offset * 8) + 7, 1, e, ENC_BIG_ENDIAN);
  5604. offset++;
  5605. }
  5606. return (offset - initial_offset);
  5607. }
  5608. static guint8 construct_egprs_data_segment_li_array(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 initial_offset, guint8 *li_count, length_indicator_t *li_array, guint64 *e)
  5609. {
  5610. guint8 offset = initial_offset, li_array_size = *li_count;
  5611. proto_item *item;
  5612. *li_count = 0;
  5613. while(*e == 0)
  5614. {
  5615. DISSECTOR_ASSERT(*li_count < li_array_size);
  5616. item = proto_tree_add_bits_item(tree, hf_li, tvb, offset * 8, 7, ENC_BIG_ENDIAN);
  5617. proto_tree_add_bits_ret_val(tree, hf_e, tvb, (offset * 8) + 7, 1, e, ENC_BIG_ENDIAN);
  5618. if(*li_count < li_array_size)
  5619. {
  5620. /* store the LI and offset for use later when dissecting the rlc segments */
  5621. li_array[*li_count].offset = offset;
  5622. li_array[*li_count].li = tvb_get_guint8(tvb, offset);
  5623. (*li_count)++;
  5624. }
  5625. else
  5626. {
  5627. expert_add_info_format(pinfo, item, PI_UNDECODED, PI_ERROR, "Too many LIs, corresponding blocks will not be decoded");
  5628. }
  5629. offset++;
  5630. }
  5631. return (offset - initial_offset);
  5632. }
  5633. static guint8 dissect_gprs_data_segments(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 initial_offset,
  5634. guint8 octet_length, guint8 li_count, length_indicator_t *li_array)
  5635. {
  5636. guint8 octet_offset = initial_offset;
  5637. guint8 i;
  5638. tvbuff_t* data_tvb = NULL;
  5639. gboolean more = TRUE, first_li = TRUE;
  5640. proto_tree *subtree = NULL;
  5641. proto_item *ti = NULL;
  5642. /* decode the LIs and any associated LLC Frames */
  5643. for(i = 0; (i < li_count) && more; i++)
  5644. {
  5645. guint8 li = li_array[i].li >> 2;
  5646. /* if more bit is false, there are no more data segments in this block after the current one */
  5647. more = (li_array[i].li & 2) == 2;
  5648. switch(li)
  5649. {
  5650. case 0:
  5651. proto_tree_add_text(tree, tvb, li_array[i].offset, 1,
  5652. "LI[%d]=%d indicates: The previous segment of LLC Frame precisely filled the previous RLC Block",
  5653. i, li);
  5654. break;
  5655. case 63:
  5656. if(first_li)
  5657. {
  5658. ti = proto_tree_add_text(tree, tvb, octet_offset, li,
  5659. "data segment: LI[%d]=%d indicates: The RLC data block contains only filler bits",
  5660. i, li);
  5661. }
  5662. else
  5663. {
  5664. ti = proto_tree_add_text(tree, tvb, octet_offset, li,
  5665. "data segment: LI[%d]=%d indicates: The remainder of the RLC data block contains filler bits",
  5666. i, li);
  5667. }
  5668. subtree = proto_item_add_subtree(ti, ett_data_segments);
  5669. data_tvb = tvb_new_subset(tvb, octet_offset, octet_length - octet_offset, octet_length - octet_offset);
  5670. call_dissector(data_handle, data_tvb, pinfo, subtree);
  5671. octet_offset = octet_length;
  5672. break;
  5673. default:
  5674. ti = proto_tree_add_text(tree, tvb, octet_offset, li,
  5675. "data segment: LI[%d]=%d indicates: (Last segment of) LLC frame (%d octets)",
  5676. i, li, li);
  5677. subtree = proto_item_add_subtree(ti, ett_data_segments);
  5678. data_tvb = tvb_new_subset(tvb, octet_offset, li, li);
  5679. call_dissector(data_handle, data_tvb, pinfo, subtree);
  5680. octet_offset += li;
  5681. break;
  5682. }
  5683. first_li = FALSE;
  5684. }
  5685. if(octet_offset < octet_length)
  5686. {
  5687. /* if there is space left in the RLC Block, then it is a segment of LLC Frame without LI*/
  5688. if(more)
  5689. {
  5690. ti = proto_tree_add_text(tree, tvb, octet_offset, octet_length - octet_offset,
  5691. "data segment: LI not present: \n The Upper Layer PDU in the current RLC data block either fills the current RLC data block precisely \nor continues in the following in-sequence RLC data block");
  5692. }
  5693. else
  5694. {
  5695. ti = proto_tree_add_text(tree, tvb, octet_offset, octet_length - octet_offset, "Padding Octets");
  5696. }
  5697. subtree = proto_item_add_subtree(ti, ett_data_segments);
  5698. data_tvb = tvb_new_subset(tvb, octet_offset, octet_length - octet_offset, octet_length - octet_offset);
  5699. call_dissector(data_handle, data_tvb, pinfo, subtree);
  5700. octet_offset = octet_length;
  5701. }
  5702. return (octet_offset - initial_offset);
  5703. }
  5704. static guint16 dissect_egprs_data_segments(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint initial_offset, guint8 octet_length, guint8 li_count, length_indicator_t *li_array)
  5705. {
  5706. guint octet_offset = initial_offset;
  5707. guint8 i;
  5708. tvbuff_t* data_tvb = NULL;
  5709. gboolean first_li = TRUE;
  5710. proto_tree *subtree = NULL;
  5711. proto_item *ti = NULL;
  5712. /* decode the LIs and any associated LLC Frames */
  5713. for(i = 0; i < li_count; i++)
  5714. {
  5715. guint8 li = li_array[i].li >> 1;
  5716. /* if more bit is false, there are no more data segments in this block after the current one */
  5717. switch(li)
  5718. {
  5719. case 0:
  5720. if(first_li)
  5721. {
  5722. if(li_array[i].li & 1)
  5723. {
  5724. proto_tree_add_text(tree, tvb, li_array[i].offset, 1,
  5725. "LI[%d]=%d indicates: The previous RLC data block contains a Upper Layer PDU, or a part of it, \nthat fills precisely the previous data block and for which there is no length indicator in that RLC data block. \nThe current RLC data block contains a Upper Layer PDU that either fills the current RLC data block precisely or \ncontinues in the next RLC data block.",
  5726. i, li);
  5727. }
  5728. else
  5729. {
  5730. proto_tree_add_text(tree, tvb, li_array[i].offset, 1,
  5731. "LI[%d]=%d indicates: The last Upper Layer PDU of the previous in sequence RLC data block ends \nat the boundary of that RLC data block and it has no LI in the header of that RLC data block. \nThus the current RLC data block contains the first segment of all included Upper Layer PDUs.",
  5732. i, li);
  5733. }
  5734. }
  5735. else
  5736. {
  5737. proto_tree_add_text(tree, tvb, li_array[i].offset, 1,
  5738. "LI[%d]=%d indicates: Unexpected occurrence of LI=0.",
  5739. i, li);
  5740. }
  5741. break;
  5742. case 126:
  5743. if(first_li)
  5744. {
  5745. if(li_array[i].li & 1)
  5746. {
  5747. proto_tree_add_text(tree, tvb, li_array[i].offset, 1,
  5748. "LI[%d]=%d indicates: The current RLC data block contains the first segment of an Upper Layer PDU \nthat either fills the current RLC data block precisely or continues in the next RLC data block.",
  5749. i, li);
  5750. }
  5751. else
  5752. {
  5753. proto_tree_add_text(tree, tvb, li_array[i].offset, 1,
  5754. "LI[%d]=%d indicates: The current RLC data block contains the first segment of all included Upper Layer PDUs.",
  5755. i, li);
  5756. }
  5757. }
  5758. else
  5759. {
  5760. proto_tree_add_text(tree, tvb, li_array[i].offset, 1,
  5761. "LI[%d]=%d indicates: Unexpected occurrence of LI=126.",
  5762. i, li);
  5763. }
  5764. break;
  5765. case 127:
  5766. if(first_li)
  5767. {
  5768. ti = proto_tree_add_text(tree, tvb, octet_offset, octet_length - octet_offset,
  5769. "data segment: LI[%d]=%d indicates: The RLC data block contains only filler bits",
  5770. i, li);
  5771. }
  5772. else
  5773. {
  5774. ti = proto_tree_add_text(tree, tvb, octet_offset, octet_length - octet_offset,
  5775. "data segment: LI[%d]=%d indicates: The remainder of the RLC data block contains filler bits",
  5776. i, li);
  5777. }
  5778. subtree = proto_item_add_subtree(ti, ett_data_segments);
  5779. data_tvb = tvb_new_subset(tvb, octet_offset, octet_length - octet_offset, octet_length - octet_offset);
  5780. call_dissector(data_handle, data_tvb, pinfo, subtree);
  5781. octet_offset = octet_length;
  5782. break;
  5783. default:
  5784. ti = proto_tree_add_text(tree, tvb, octet_offset, li,
  5785. "data segment: LI[%d]=%d indicates: (Last segment of) LLC frame (%d octets)",
  5786. i, li, li);
  5787. subtree = proto_item_add_subtree(ti, ett_data_segments);
  5788. data_tvb = tvb_new_subset(tvb, octet_offset, li, li);
  5789. call_dissector(data_handle, data_tvb, pinfo, subtree);
  5790. octet_offset += li;
  5791. break;
  5792. }
  5793. first_li = FALSE;
  5794. }
  5795. /* if there is space left in the RLC Block, then it is a segment of LLC Frame without LI*/
  5796. if(octet_offset < octet_length)
  5797. {
  5798. ti = proto_tree_add_text(tree, tvb, octet_offset, octet_length - octet_offset,
  5799. "data segment: LI not present: \n The Upper Layer PDU in the current RLC data block either fills the current RLC data block precisely \nor continues in the following in-sequence RLC data block");
  5800. subtree = proto_item_add_subtree(ti, ett_data_segments);
  5801. data_tvb = tvb_new_subset(tvb, octet_offset, octet_length - octet_offset, octet_length - octet_offset);
  5802. call_dissector(data_handle, data_tvb, pinfo, subtree);
  5803. octet_offset = octet_length;
  5804. }
  5805. return (octet_offset - initial_offset);
  5806. }
  5807. static void
  5808. dissect_ul_rlc_control_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, RlcMacUplink_t *data, guint16 bit_length)
  5809. {
  5810. csnStream_t ar;
  5811. proto_item *ti;
  5812. proto_tree *rlcmac_tree;
  5813. guint bit_offset = 0;
  5814. csnStreamInit(&ar, 0, bit_length);
  5815. data->u.MESSAGE_TYPE = tvb_get_bits8(tvb, 8, 6);
  5816. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, bit_offset >> 3, -1,
  5817. "GSM RLC/MAC: %s (%d) (Uplink)",
  5818. val_to_str_ext(data->u.MESSAGE_TYPE, &ul_rlc_message_type_vals_ext, "Unknown Messsage Type"),
  5819. data->u.MESSAGE_TYPE);
  5820. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  5821. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", val_to_str_ext(data->u.MESSAGE_TYPE, &ul_rlc_message_type_vals_ext, "Unknown Messsage Type"));
  5822. switch (data->u.MESSAGE_TYPE)
  5823. {
  5824. case MT_PACKET_CELL_CHANGE_FAILURE:
  5825. {
  5826. /*
  5827. * data is the pointer to the unpack struct that hold the unpack value
  5828. * CSNDESCR is an array that holds the different element types
  5829. * ar is the csn context holding the bitcount, offset and output
  5830. */
  5831. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Cell_Change_Failure_t), tvb, &data->u.Packet_Cell_Change_Failure, ett_gsm_rlcmac);
  5832. break;
  5833. }
  5834. case MT_PACKET_CONTROL_ACK:
  5835. {
  5836. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Control_Acknowledgement_t), tvb, &data->u.Packet_Control_Acknowledgement, ett_gsm_rlcmac);
  5837. break;
  5838. }
  5839. case MT_PACKET_DOWNLINK_ACK_NACK:
  5840. {
  5841. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Downlink_Ack_Nack_t), tvb, &data->u.Packet_Downlink_Ack_Nack, ett_gsm_rlcmac);
  5842. break;
  5843. }
  5844. case MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK:
  5845. {
  5846. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Uplink_Dummy_Control_Block_t), tvb, &data->u.Packet_Uplink_Dummy_Control_Block, ett_gsm_rlcmac);
  5847. break;
  5848. }
  5849. case MT_PACKET_MEASUREMENT_REPORT:
  5850. {
  5851. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Measurement_Report_t), tvb, &data->u.Packet_Measurement_Report, ett_gsm_rlcmac);
  5852. break;
  5853. }
  5854. case MT_PACKET_RESOURCE_REQUEST:
  5855. {
  5856. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Resource_Request_t), tvb, &data->u.Packet_Resource_Request, ett_gsm_rlcmac);
  5857. break;
  5858. }
  5859. case MT_PACKET_MOBILE_TBF_STATUS:
  5860. {
  5861. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Mobile_TBF_Status_t), tvb, &data->u.Packet_Mobile_TBF_Status, ett_gsm_rlcmac);
  5862. break;
  5863. }
  5864. case MT_PACKET_PSI_STATUS:
  5865. {
  5866. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_PSI_Status_t), tvb, &data->u.Packet_PSI_Status, ett_gsm_rlcmac);
  5867. break;
  5868. }
  5869. case MT_EGPRS_PACKET_DOWNLINK_ACK_NACK:
  5870. {
  5871. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(EGPRS_PD_AckNack_t), tvb, &data->u.Egprs_Packet_Downlink_Ack_Nack, ett_gsm_rlcmac);
  5872. break;
  5873. }
  5874. case MT_PACKET_PAUSE:
  5875. {
  5876. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Pause_t), tvb, &data->u.Packet_Pause, ett_gsm_rlcmac);
  5877. break;
  5878. }
  5879. case MT_PACKET_ENHANCED_MEASUREMENT_REPORT:
  5880. {
  5881. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Enh_Measurement_Report_t), tvb, &data->u.Packet_Enh_Measurement_Report, ett_gsm_rlcmac);
  5882. break;
  5883. }
  5884. case MT_ADDITIONAL_MS_RAC:
  5885. {
  5886. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Additional_MS_Rad_Access_Cap_t), tvb, &data->u.Additional_MS_Rad_Access_Cap, ett_gsm_rlcmac);
  5887. break;
  5888. }
  5889. case MT_PACKET_CELL_CHANGE_NOTIFICATION:
  5890. {
  5891. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Cell_Change_Notification_t), tvb, &data->u.Packet_Cell_Change_Notification, ett_gsm_rlcmac);
  5892. break;
  5893. }
  5894. case MT_PACKET_SI_STATUS:
  5895. {
  5896. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_SI_Status_t), tvb, &data->u.Packet_SI_Status, ett_gsm_rlcmac);
  5897. break;
  5898. }
  5899. default:
  5900. /*ret = -1;*/
  5901. break;
  5902. }
  5903. }
  5904. static void
  5905. dissect_dl_rlc_control_message(tvbuff_t *tvb, proto_tree *tree, RlcMacDownlink_t *data, guint16 initial_bit_offset, guint16 bit_length)
  5906. {
  5907. csnStream_t ar;
  5908. proto_item *ti = NULL;
  5909. proto_tree *rlcmac_tree = NULL;
  5910. guint16 bit_offset = initial_bit_offset;
  5911. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, bit_offset >> 3, -1,
  5912. "%s (%d) (downlink)",
  5913. val_to_str_ext(data->u.MESSAGE_TYPE, &dl_rlc_message_type_vals_ext, "Unknown Messsage Type"),
  5914. data->u.MESSAGE_TYPE);
  5915. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  5916. /* Initialize the contexts */
  5917. csnStreamInit(&ar, bit_offset, bit_length - bit_offset);
  5918. switch (data->u.MESSAGE_TYPE)
  5919. {
  5920. case MT_PACKET_ACCESS_REJECT:
  5921. {
  5922. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Access_Reject_t), tvb, &data->u.Packet_Access_Reject, ett_gsm_rlcmac);
  5923. break;
  5924. }
  5925. case MT_PACKET_CELL_CHANGE_ORDER:
  5926. {
  5927. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Cell_Change_Order_t), tvb, &data->u.Packet_Cell_Change_Order, ett_gsm_rlcmac);
  5928. break;
  5929. }
  5930. case MT_PACKET_CELL_CHANGE_CONTINUE:
  5931. {
  5932. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Cell_Change_Continue_t), tvb, &data->u.Packet_Cell_Change_Continue, ett_gsm_rlcmac);
  5933. break;
  5934. }
  5935. case MT_PACKET_DOWNLINK_ASSIGNMENT:
  5936. {
  5937. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Downlink_Assignment_t), tvb, &data->u.Packet_Downlink_Assignment, ett_gsm_rlcmac);
  5938. break;
  5939. }
  5940. case MT_PACKET_MEASUREMENT_ORDER:
  5941. {
  5942. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Measurement_Order_t), tvb, &data->u.Packet_Measurement_Order, ett_gsm_rlcmac);
  5943. break;
  5944. }
  5945. case MT_PACKET_NEIGHBOUR_CELL_DATA:
  5946. {
  5947. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Neighbour_Cell_Data_t), tvb, &data->u.Packet_Neighbour_Cell_Data, ett_gsm_rlcmac);
  5948. break;
  5949. }
  5950. case MT_PACKET_SERVING_CELL_DATA:
  5951. {
  5952. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Serving_Cell_Data_t), tvb, &data->u.Packet_Serving_Cell_Data, ett_gsm_rlcmac);
  5953. break;
  5954. }
  5955. case MT_PACKET_PAGING_REQUEST:
  5956. {
  5957. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Paging_Request_t), tvb, &data->u.Packet_Paging_Request, ett_gsm_rlcmac);
  5958. break;
  5959. }
  5960. case MT_PACKET_PDCH_RELEASE:
  5961. {
  5962. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_PDCH_Release_t), tvb, &data->u.Packet_PDCH_Release, ett_gsm_rlcmac);
  5963. break;
  5964. }
  5965. case MT_PACKET_POLLING_REQ:
  5966. {
  5967. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Polling_Request_t), tvb, &data->u.Packet_Polling_Request, ett_gsm_rlcmac);
  5968. break;
  5969. }
  5970. case MT_PACKET_POWER_CONTROL_TIMING_ADVANCE:
  5971. {
  5972. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Power_Control_Timing_Advance_t), tvb, &data->u.Packet_Power_Control_Timing_Advance, ett_gsm_rlcmac);
  5973. break;
  5974. }
  5975. case MT_PACKET_PRACH_PARAMETERS:
  5976. {
  5977. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_PRACH_Parameters_t), tvb, &data->u.Packet_PRACH_Parameters, ett_gsm_rlcmac);
  5978. break;
  5979. }
  5980. case MT_PACKET_QUEUEING_NOTIFICATION:
  5981. {
  5982. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Queueing_Notification_t), tvb, &data->u.Packet_Queueing_Notification, ett_gsm_rlcmac);
  5983. break;
  5984. }
  5985. case MT_PACKET_TIMESLOT_RECONFIGURE:
  5986. {
  5987. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Timeslot_Reconfigure_t), tvb, &data->u.Packet_Timeslot_Reconfigure, ett_gsm_rlcmac);
  5988. break;
  5989. }
  5990. case MT_PACKET_TBF_RELEASE:
  5991. {
  5992. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_TBF_Release_t), tvb, &data->u.Packet_TBF_Release, ett_gsm_rlcmac);
  5993. break;
  5994. }
  5995. case MT_PACKET_UPLINK_ACK_NACK:
  5996. {
  5997. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Uplink_Ack_Nack_t), tvb, &data->u.Packet_Uplink_Ack_Nack, ett_gsm_rlcmac);
  5998. break;
  5999. }
  6000. case MT_PACKET_UPLINK_ASSIGNMENT:
  6001. {
  6002. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Uplink_Assignment_t), tvb, &data->u.Packet_Uplink_Assignment, ett_gsm_rlcmac);
  6003. break;
  6004. }
  6005. case MT_PACKET_HANDOVER_COMMAND:
  6006. {
  6007. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Handover_Command_t), tvb, &data->u.Packet_Handover_Command, ett_gsm_rlcmac);
  6008. break;
  6009. }
  6010. case MT_PACKET_PHYSICAL_INFORMATION:
  6011. {
  6012. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_PhysicalInformation_t), tvb, &data->u.Packet_Handover_Command, ett_gsm_rlcmac);
  6013. break;
  6014. }
  6015. case MT_PACKET_DOWNLINK_DUMMY_CONTROL_BLOCK:
  6016. {
  6017. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Downlink_Dummy_Control_Block_t), tvb, &data->u.Packet_Downlink_Dummy_Control_Block, ett_gsm_rlcmac);
  6018. break;
  6019. }
  6020. case MT_PACKET_SYSTEM_INFO_1:
  6021. {
  6022. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(PSI1_t), tvb, &data->u.PSI1, ett_gsm_rlcmac);
  6023. break;
  6024. }
  6025. case MT_PACKET_SYSTEM_INFO_2:
  6026. {
  6027. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(PSI2_t), tvb, &data->u.PSI2, ett_gsm_rlcmac);
  6028. break;
  6029. }
  6030. case MT_PACKET_SYSTEM_INFO_3:
  6031. {
  6032. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(PSI3_t), tvb, &data->u.PSI3, ett_gsm_rlcmac);
  6033. break;
  6034. }
  6035. case MT_PACKET_SYSTEM_INFO_5:
  6036. {
  6037. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(PSI5_t), tvb, &data->u.PSI5, ett_gsm_rlcmac);
  6038. break;
  6039. }
  6040. case MT_PACKET_SYSTEM_INFO_13:
  6041. {
  6042. /*ret =*/ csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(PSI13_t), tvb, &data->u.PSI13, ett_gsm_rlcmac);
  6043. break;
  6044. }
  6045. default:
  6046. /*ret = -1;*/
  6047. break;
  6048. }
  6049. }
  6050. static void
  6051. dissect_dl_gprs_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, RlcMacDownlink_t * data)
  6052. {
  6053. /* See RLC/MAC downlink control block structure in TS 44.060 / 10.3.1 */
  6054. proto_item *ti = NULL;
  6055. proto_tree *rlcmac_tree = NULL;
  6056. csnStream_t ar;
  6057. gint bit_offset = 0;
  6058. guint16 bit_length = tvb_length(tvb) * 8;
  6059. length_indicator_t li_array[7];
  6060. guint8 li_count = array_length(li_array);
  6061. guint8 payload_type = tvb_get_bits8(tvb, 0, 2);
  6062. guint8 rbsn = tvb_get_bits8(tvb, 8, 1);
  6063. guint8 fs = tvb_get_bits8(tvb, 14, 1);
  6064. guint8 ac = tvb_get_bits8(tvb, 15, 1);
  6065. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "GPRS DL");
  6066. if(payload_type == PAYLOAD_TYPE_DATA)
  6067. {
  6068. guint64 e;
  6069. col_add_str(pinfo->cinfo, COL_PROTOCOL, "GSM RLC/MAC");
  6070. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, bit_offset >> 3, -1,
  6071. "GPRS DL DATA (CS%d)",
  6072. data->block_format & 0x0F);
  6073. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  6074. csnStreamInit(&ar, 0, bit_length);
  6075. /* dissect the RLC header */
  6076. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(DL_Data_Block_GPRS_t), tvb, &data->u.DL_Data_Block_GPRS, ett_gsm_rlcmac);
  6077. bit_offset = ar.bit_offset;
  6078. /* build the array of data segment descriptors */
  6079. e = data->u.DL_Data_Block_GPRS.E;
  6080. bit_offset += 8 * construct_gprs_data_segment_li_array(tvb, rlcmac_tree, pinfo,
  6081. bit_offset / 8,
  6082. &li_count,
  6083. li_array,
  6084. &e);
  6085. if (e)
  6086. {
  6087. /* dissect the data segments */
  6088. /*bit_offset += 8 * */ dissect_gprs_data_segments(tvb, pinfo, rlcmac_tree, bit_offset / 8, bit_length / 8,
  6089. li_count,
  6090. li_array);
  6091. }
  6092. else
  6093. {
  6094. proto_tree_add_text(tree, tvb, bit_offset >> 3, 1, "Unexpected header extension, dissection abandoned");
  6095. }
  6096. return;
  6097. }
  6098. else if(payload_type == PAYLOAD_TYPE_RESERVED)
  6099. {
  6100. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "GSM RLC/MAC RESERVED MESSAGE TYPE");
  6101. /* Dissect the MAC header */
  6102. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, bit_offset >> 3, -1, "Payload Type: RESERVED (0), not implemented");
  6103. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  6104. proto_tree_add_bits_item(rlcmac_tree, hf_dl_payload_type, tvb, 0, 2, ENC_BIG_ENDIAN);
  6105. proto_tree_add_bits_item(rlcmac_tree, hf_rrbp, tvb, 2, 2, ENC_BIG_ENDIAN);
  6106. proto_tree_add_bits_item(rlcmac_tree, hf_s_p, tvb, 4, 1, ENC_BIG_ENDIAN);
  6107. proto_tree_add_bits_item(rlcmac_tree, hf_usf, tvb, 5, 3, ENC_BIG_ENDIAN);
  6108. return;
  6109. }
  6110. /* We can decode the message */
  6111. else if (data->block_format == RLCMAC_CS1)
  6112. {
  6113. /* First print the message type and create a tree item */
  6114. guint8 message_type_offset = 8;
  6115. if(payload_type == PAYLOAD_TYPE_CTRL_OPT_OCTET)
  6116. {
  6117. message_type_offset += 8;
  6118. if(ac == 1)
  6119. {
  6120. message_type_offset += 8;
  6121. }
  6122. if((rbsn == 1) && (fs == 0))
  6123. {
  6124. message_type_offset += 8;
  6125. }
  6126. }
  6127. data->u.MESSAGE_TYPE = tvb_get_bits8(tvb, message_type_offset, 6);
  6128. col_add_str(pinfo->cinfo, COL_PROTOCOL, "GSM RLC/MAC");
  6129. col_append_sep_fstr(pinfo->cinfo, COL_INFO, ":", "GPRS DL:%s", val_to_str_ext(data->u.MESSAGE_TYPE, &dl_rlc_message_type_vals_ext, "Unknown Messsage Type"));
  6130. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, message_type_offset >> 3, -1,
  6131. "GSM RLC/MAC: %s (%d) (Downlink)",
  6132. val_to_str_ext(data->u.MESSAGE_TYPE, &dl_rlc_message_type_vals_ext, "Unknown Messsage Type"),
  6133. data->u.MESSAGE_TYPE);
  6134. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  6135. /* Dissect the MAC header */
  6136. proto_tree_add_bits_item(rlcmac_tree, hf_dl_payload_type, tvb, 0, 2, ENC_BIG_ENDIAN);
  6137. proto_tree_add_bits_item(rlcmac_tree, hf_rrbp, tvb, 2, 2, ENC_BIG_ENDIAN);
  6138. proto_tree_add_bits_item(rlcmac_tree, hf_s_p, tvb, 4, 1, ENC_BIG_ENDIAN);
  6139. proto_tree_add_bits_item(rlcmac_tree, hf_usf, tvb, 5, 3, ENC_BIG_ENDIAN);
  6140. bit_offset += 8;
  6141. if(payload_type == PAYLOAD_TYPE_CTRL_OPT_OCTET)
  6142. {
  6143. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_rbsn, tvb, 8, 1, ENC_BIG_ENDIAN);
  6144. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_rti, tvb, 9, 5, ENC_BIG_ENDIAN);
  6145. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_fs, tvb, 14, 1, ENC_BIG_ENDIAN);
  6146. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_ac, tvb, 15, 1, ENC_BIG_ENDIAN);
  6147. bit_offset += 8;
  6148. if(ac == 1) /* Indicates presence of TFI optional octet*/
  6149. {
  6150. guint8 ctrl_d = tvb_get_bits8(tvb, 23, 1);
  6151. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_pr, tvb, 16, 2, ENC_BIG_ENDIAN);
  6152. proto_tree_add_bits_item(rlcmac_tree, (ctrl_d?hf_downlink_tfi:hf_uplink_tfi), tvb, 18, 5, ENC_BIG_ENDIAN);
  6153. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_d, tvb, 23, 1, ENC_BIG_ENDIAN);
  6154. bit_offset += 8;
  6155. }
  6156. if((rbsn == 1) && (fs == 0)) /* Indicates the presence of optional octet 2/3 */
  6157. {
  6158. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_rbsn_e, tvb, bit_offset, 3, ENC_BIG_ENDIAN);
  6159. bit_offset += 3;
  6160. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_fs_e, tvb, bit_offset++, 1, ENC_BIG_ENDIAN);
  6161. proto_tree_add_bits_item(rlcmac_tree, hf_dl_ctrl_spare, tvb, bit_offset, 4, ENC_BIG_ENDIAN);
  6162. bit_offset += 4;
  6163. }
  6164. }
  6165. dissect_dl_rlc_control_message(tvb, rlcmac_tree, data, bit_offset, bit_length);
  6166. }
  6167. else
  6168. {
  6169. proto_tree_add_text(rlcmac_tree,tvb, bit_offset >> 3, -1, "GPRS block with invalid coding scheme (%d) for RLC Control",
  6170. data->block_format);
  6171. }
  6172. }
  6173. static void
  6174. dissect_egprs_dl_header_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, RlcMacDownlink_t *data)
  6175. {
  6176. if (data->flags & GSM_RLC_MAC_EGPRS_FANR_FLAG)
  6177. {
  6178. proto_tree_add_text(tree, tvb, 0, -1, "GPRS FANR Header dissection not supported (yet)");
  6179. }
  6180. else
  6181. {
  6182. proto_item *ti = NULL;
  6183. proto_tree *rlcmac_tree = NULL;
  6184. csnStream_t ar;
  6185. guint16 bit_length = tvb_length(tvb) * 8;
  6186. col_add_str(pinfo->cinfo, COL_PROTOCOL, "GSM RLC/MAC");
  6187. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "EGPRS DL:HEADER");
  6188. /* Dissect the MAC header */
  6189. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, 0, -1,
  6190. "GSM RLC/MAC: EGPRS DL HEADER");
  6191. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  6192. ((RlcMacPrivateData_t *)(pinfo->private_data))->mcs = MCS_INVALID;
  6193. csnStreamInit(&ar, 0, bit_length);
  6194. switch(data->block_format)
  6195. {
  6196. case RLCMAC_HDR_TYPE_3:
  6197. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(DL_Data_Block_EGPRS_Header_Type3_t), tvb, &data->u.DL_Data_Block_EGPRS_Header, ett_gsm_rlcmac);
  6198. ((RlcMacPrivateData_t *)(pinfo->private_data))->mcs = egprs_Header_type3_coding_puncturing_scheme_to_mcs[data->u.DL_Data_Block_EGPRS_Header.CPS];
  6199. break;
  6200. case RLCMAC_HDR_TYPE_2:
  6201. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(DL_Data_Block_EGPRS_Header_Type2_t), tvb, &data->u.DL_Data_Block_EGPRS_Header, ett_gsm_rlcmac);
  6202. ((RlcMacPrivateData_t *)(pinfo->private_data))->mcs = egprs_Header_type2_coding_puncturing_scheme_to_mcs[data->u.DL_Data_Block_EGPRS_Header.CPS];
  6203. break;
  6204. case RLCMAC_HDR_TYPE_1:
  6205. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(DL_Data_Block_EGPRS_Header_Type1_t), tvb, &data->u.DL_Data_Block_EGPRS_Header, ett_gsm_rlcmac);
  6206. ((RlcMacPrivateData_t *)(pinfo->private_data))->mcs = egprs_Header_type1_coding_puncturing_scheme_to_mcs[data->u.DL_Data_Block_EGPRS_Header.CPS];
  6207. break;
  6208. default:
  6209. proto_tree_add_text(tree, tvb, 0, -1, "EGPRS Header Type not handled (yet)");
  6210. break;
  6211. }
  6212. ((RlcMacPrivateData_t *)(pinfo->private_data))->u.egprs_dl_header_info.bsn1 = data->u.DL_Data_Block_EGPRS_Header.BSN1;
  6213. ((RlcMacPrivateData_t *)(pinfo->private_data))->u.egprs_dl_header_info.bsn2 =
  6214. (data->u.DL_Data_Block_EGPRS_Header.BSN1 + data->u.DL_Data_Block_EGPRS_Header.BSN2_offset) % 2048;
  6215. }
  6216. }
  6217. static void
  6218. dissect_ul_pacch_access_burst(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, RlcMacUplink_t * data)
  6219. {
  6220. proto_item *ti = NULL;
  6221. proto_tree *rlcmac_tree = NULL;
  6222. csnStream_t ar;
  6223. guint16 bit_length = tvb_length(tvb) * 8;
  6224. col_add_str(pinfo->cinfo, COL_PROTOCOL, "GSM RLC/MAC");
  6225. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "PACCH ACCESS BURST");
  6226. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, 0, -1,
  6227. "GPRS UL PACCH ACCESS BURST");
  6228. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  6229. if ((bit_length > 8) && (tvb_get_bits16(tvb, 0, 9, ENC_BIG_ENDIAN) == 0x1F9))
  6230. {
  6231. csnStreamInit(&ar, 0, bit_length);
  6232. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(UL_Packet_Control_Ack_11_t), tvb, &data->u.UL_Packet_Control_Ack_11, ett_gsm_rlcmac);
  6233. }
  6234. else if ((bit_length > 8) && (tvb_get_bits8(tvb, 0, 6) == 0x37))
  6235. {
  6236. csnStreamInit(&ar, 0, bit_length);
  6237. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(UL_Packet_Control_Ack_TN_RRBP_11_t), tvb, &data->u.UL_Packet_Control_Ack_TN_RRBP_11, ett_gsm_rlcmac);
  6238. }
  6239. else if (tvb_get_bits8(tvb, 0, 6) == 0x1F)
  6240. {
  6241. csnStreamInit(&ar, 0, bit_length);
  6242. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(UL_Packet_Control_Ack_8_t), tvb, &data->u.UL_Packet_Control_Ack_8, ett_gsm_rlcmac);
  6243. }
  6244. else if (tvb_get_bits8(tvb, 0, 3) == 0x0)
  6245. {
  6246. csnStreamInit(&ar, 0, bit_length);
  6247. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(UL_Packet_Control_Ack_TN_RRBP_8_t), tvb, &data->u.UL_Packet_Control_Ack_TN_RRBP_8, ett_gsm_rlcmac);
  6248. }
  6249. else
  6250. {
  6251. proto_tree_add_text(tree, tvb, 0, -1,
  6252. "Unknown PACCH access burst");
  6253. call_dissector(data_handle, tvb, pinfo, tree);
  6254. }
  6255. }
  6256. static void
  6257. dissect_ul_gprs_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, RlcMacUplink_t * data)
  6258. {
  6259. proto_item *ti = NULL;
  6260. proto_tree *rlcmac_tree = NULL;
  6261. csnStream_t ar;
  6262. guint8 payload_type = tvb_get_bits8(tvb, 0, 2);
  6263. guint16 bit_length = tvb_length(tvb) * 8;
  6264. guint16 bit_offset = 0;
  6265. length_indicator_t li_array[10];
  6266. guint8 li_count = array_length(li_array);
  6267. col_add_str(pinfo->cinfo, COL_PROTOCOL, "GSM RLC/MAC");
  6268. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "GPRS UL");
  6269. if(payload_type == PAYLOAD_TYPE_DATA)
  6270. {
  6271. guint64 e;
  6272. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, bit_offset >> 3, -1,
  6273. "GPRS UL DATA (CS%d)",
  6274. data->block_format & 0x0F);
  6275. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  6276. data->u.UL_Data_Block_GPRS.TI = 0;
  6277. data->u.UL_Data_Block_GPRS.PI = 0;
  6278. csnStreamInit(&ar, 0, bit_length);
  6279. /* dissect the RLC header */
  6280. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(UL_Data_Block_GPRS_t), tvb, &data->u.UL_Data_Block_GPRS, ett_gsm_rlcmac);
  6281. bit_offset = ar.bit_offset;
  6282. /* build the array of data segment descriptors */
  6283. e = data->u.UL_Data_Block_GPRS.E;
  6284. bit_offset += 8 * construct_gprs_data_segment_li_array(tvb, rlcmac_tree, pinfo,
  6285. bit_offset / 8,
  6286. &li_count,
  6287. li_array,
  6288. &e);
  6289. /* the next fields are present according to earlier flags */
  6290. if(data->u.UL_Data_Block_GPRS.TI)
  6291. {
  6292. proto_tree_add_bits_item(rlcmac_tree, hf_tlli, tvb, bit_offset, 32, ENC_BIG_ENDIAN);
  6293. bit_offset += 32;
  6294. }
  6295. if(data->u.UL_Data_Block_GPRS.PI)
  6296. {
  6297. proto_tree_add_bits_item(rlcmac_tree, hf_pfi, tvb, bit_offset, 7, ENC_BIG_ENDIAN);
  6298. bit_offset += 7;
  6299. proto_tree_add_bits_ret_val(rlcmac_tree, hf_e, tvb, bit_offset, 1, &e, ENC_BIG_ENDIAN);
  6300. bit_offset ++;
  6301. }
  6302. if (e)
  6303. {
  6304. /* dissect the data segments */
  6305. /*bit_offset += 8 * */ dissect_gprs_data_segments(tvb, pinfo, rlcmac_tree, bit_offset / 8, bit_length / 8,
  6306. li_count,
  6307. li_array);
  6308. }
  6309. else
  6310. {
  6311. proto_tree_add_text(tree, tvb, bit_offset >> 3, 1, "Unexpected header extension, dissection abandoned");
  6312. }
  6313. }
  6314. else if(payload_type == PAYLOAD_TYPE_RESERVED)
  6315. {
  6316. proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, bit_offset >> 3, -1, "Payload Type: RESERVED (3)");
  6317. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "GSM RLC/MAC RESERVED MESSAGE TYPE");
  6318. }
  6319. else if (data->block_format == RLCMAC_CS1)
  6320. {
  6321. dissect_ul_rlc_control_message(tvb, pinfo, tree, data, bit_length);
  6322. }
  6323. else
  6324. {
  6325. proto_tree_add_text(rlcmac_tree,tvb, bit_offset >> 3, -1, "GPRS UL block with Coding Scheme CS%d and incompatible payload type",
  6326. data->block_format &0x0F);
  6327. }
  6328. }
  6329. static void
  6330. dissect_egprs_ul_header_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, RlcMacUplink_t *data)
  6331. {
  6332. if (data->flags & GSM_RLC_MAC_EGPRS_FANR_FLAG)
  6333. {
  6334. proto_tree_add_text(tree, tvb, 0, -1, "GPRS FANR Header dissection not supported (yet)");
  6335. }
  6336. else
  6337. {
  6338. proto_item *ti = NULL;
  6339. proto_tree *rlcmac_tree = NULL;
  6340. csnStream_t ar;
  6341. guint16 bit_offset = 0;
  6342. guint16 bit_length = tvb_length(tvb) * 8;
  6343. col_add_str(pinfo->cinfo, COL_PROTOCOL, "GSM RLC/MAC");
  6344. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "EGPRS UL:HEADER");
  6345. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, bit_offset >> 3, -1,
  6346. "GSM RLC/MAC: EGPRS UL HEADER");
  6347. rlcmac_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac);
  6348. data->u.UL_Data_Block_EGPRS_Header.PI = 0;
  6349. ((RlcMacPrivateData_t *)(pinfo->private_data))->mcs = MCS_INVALID;
  6350. csnStreamInit(&ar, 0, bit_length);
  6351. switch(data->block_format)
  6352. {
  6353. case RLCMAC_HDR_TYPE_3:
  6354. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(UL_Data_Block_EGPRS_Header_Type3_t), tvb, &data->u.UL_Data_Block_EGPRS_Header, ett_gsm_rlcmac);
  6355. ((RlcMacPrivateData_t *)(pinfo->private_data))->mcs = egprs_Header_type3_coding_puncturing_scheme_to_mcs[data->u.UL_Data_Block_EGPRS_Header.CPS];
  6356. break;
  6357. case RLCMAC_HDR_TYPE_2:
  6358. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(UL_Data_Block_EGPRS_Header_Type2_t), tvb, &data->u.UL_Data_Block_EGPRS_Header, ett_gsm_rlcmac);
  6359. ((RlcMacPrivateData_t *)(pinfo->private_data))->mcs = egprs_Header_type2_coding_puncturing_scheme_to_mcs[data->u.UL_Data_Block_EGPRS_Header.CPS];
  6360. break;
  6361. case RLCMAC_HDR_TYPE_1:
  6362. csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(UL_Data_Block_EGPRS_Header_Type1_t), tvb, &data->u.UL_Data_Block_EGPRS_Header, ett_gsm_rlcmac);
  6363. ((RlcMacPrivateData_t *)(pinfo->private_data))->mcs = egprs_Header_type1_coding_puncturing_scheme_to_mcs[data->u.UL_Data_Block_EGPRS_Header.CPS];
  6364. break;
  6365. default:
  6366. proto_tree_add_text(tree, tvb, 0, -1, "EGPRS Header Type not handled (yet)");
  6367. break;
  6368. }
  6369. ((RlcMacPrivateData_t *)(pinfo->private_data))->u.egprs_ul_header_info.pi = data->u.UL_Data_Block_EGPRS_Header.PI;
  6370. ((RlcMacPrivateData_t *)(pinfo->private_data))->u.egprs_ul_header_info.bsn1 = data->u.UL_Data_Block_EGPRS_Header.BSN1;
  6371. ((RlcMacPrivateData_t *)(pinfo->private_data))->u.egprs_ul_header_info.bsn2 =
  6372. (data->u.UL_Data_Block_EGPRS_Header.BSN1 + data->u.UL_Data_Block_EGPRS_Header.BSN2_offset) % 2048;
  6373. }
  6374. }
  6375. static void
  6376. dissect_egprs_ul_data_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, RlcMacUplink_t *data, egprs_ul_header_info_t *egprs_ul_header_info)
  6377. {
  6378. proto_item *ti = NULL;
  6379. proto_tree *data_tree = NULL;
  6380. guint8 offset = 0;
  6381. length_indicator_t li_array[20];
  6382. guint8 li_count = array_length(li_array);
  6383. guint64 e, tlli_i;
  6384. guint16 block_number;
  6385. block_number = (data->flags & GSM_RLC_MAC_EGPRS_BLOCK2)?egprs_ul_header_info->bsn2:egprs_ul_header_info->bsn1;
  6386. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "DATA BLOCK");
  6387. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, offset, -1,
  6388. "GSM RLC/MAC: EGPRS UL DATA BLOCK %d (BSN %d)",
  6389. (data->flags & GSM_RLC_MAC_EGPRS_BLOCK2)?2:1,
  6390. block_number);
  6391. data_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac_data);
  6392. /* we assume that the body of the data block is octet aligned,
  6393. but there are 6 unused bits in the first octet to
  6394. achieve alignment of the following octets */
  6395. /* the data block starts with 2 bit header */
  6396. proto_tree_add_bits_ret_val(data_tree, hf_ti, tvb, 6, 1, &tlli_i, ENC_BIG_ENDIAN);
  6397. proto_tree_add_bits_ret_val(data_tree, hf_e, tvb, 7, 1, &e, ENC_BIG_ENDIAN);
  6398. offset ++;
  6399. /* build the array of Length Indicators */
  6400. offset += construct_egprs_data_segment_li_array(tvb, data_tree, pinfo, offset,
  6401. &li_count,
  6402. li_array,
  6403. &e);
  6404. /* the next fields are present according to earlier flags */
  6405. if(tlli_i)
  6406. {
  6407. proto_tree_add_bits_item(data_tree, hf_tlli, tvb, offset * 8, 32, ENC_BIG_ENDIAN);
  6408. offset += 4;
  6409. }
  6410. if(egprs_ul_header_info->pi)
  6411. {
  6412. proto_tree_add_bits_item(data_tree, hf_pfi, tvb, offset * 8, 7, ENC_BIG_ENDIAN);
  6413. proto_tree_add_bits_ret_val(data_tree, hf_e, tvb, (offset * 8) + 7, 1, &e, ENC_BIG_ENDIAN);
  6414. offset ++;
  6415. }
  6416. if (e)
  6417. {
  6418. /* dissect the data segments */
  6419. dissect_egprs_data_segments(tvb, pinfo, data_tree, offset,
  6420. tvb_length(tvb), li_count, li_array);
  6421. }
  6422. else
  6423. {
  6424. proto_tree_add_text(tree, tvb, offset, 1, "Unexpected header extension, dissection abandoned");
  6425. }
  6426. }
  6427. static void
  6428. dissect_egprs_dl_data_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, RlcMacDownlink_t *data, egprs_dl_header_info_t *egprs_dl_header_info)
  6429. {
  6430. proto_item *ti = NULL;
  6431. proto_tree *data_tree = NULL;
  6432. guint16 offset = 0, block_number;
  6433. length_indicator_t li_array[20];
  6434. guint8 li_count = array_length(li_array);
  6435. guint64 fbi, e;
  6436. block_number = (data->flags & GSM_RLC_MAC_EGPRS_BLOCK2)?egprs_dl_header_info->bsn2:egprs_dl_header_info->bsn1;
  6437. col_append_sep_str(pinfo->cinfo, COL_INFO, ":", "DATA BLOCK");
  6438. ti = proto_tree_add_protocol_format(tree, proto_gsm_rlcmac, tvb, offset, -1,
  6439. "GSM RLC/MAC: EGPRS DL DATA BLOCK %d (BSN %d)",
  6440. (data->flags & GSM_RLC_MAC_EGPRS_BLOCK2)?2:1,
  6441. block_number);
  6442. data_tree = proto_item_add_subtree(ti, ett_gsm_rlcmac_data);
  6443. /* we assume that there are 6 null bits in the first octet of each data block,
  6444. to give octet alignment of the main body of the block.
  6445. This alignment should be guaranteed by the transport-protocol dissector that called this one */
  6446. /* the data block starts with 2 bit header */
  6447. proto_tree_add_bits_ret_val(data_tree, hf_fbi, tvb, 6, 1, &fbi, ENC_BIG_ENDIAN);
  6448. proto_tree_add_bits_ret_val(data_tree, hf_e, tvb, 7, 1, &e, ENC_BIG_ENDIAN);
  6449. offset ++;
  6450. /* build the array of data segment descriptors */
  6451. offset += construct_egprs_data_segment_li_array(tvb, data_tree, pinfo, 1,
  6452. &li_count,
  6453. li_array,
  6454. &e);
  6455. if (e)
  6456. {
  6457. /* dissect the data segments */
  6458. dissect_egprs_data_segments(tvb, pinfo, data_tree, offset,
  6459. tvb_length(tvb), li_count, li_array);
  6460. }
  6461. else
  6462. {
  6463. proto_tree_add_text(tree, tvb, offset, 1, "Unexpected header extension, dissection abandoned");
  6464. }
  6465. }
  6466. static void
  6467. dissect_gsm_rlcmac_downlink(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
  6468. {
  6469. RlcMacDownlink_t * data;
  6470. /* allocate a data structure and guess the coding scheme */
  6471. data = ep_new(RlcMacDownlink_t);
  6472. if ((pinfo->private_data != NULL) && (((RlcMacPrivateData_t *)(pinfo->private_data))->magic == GSM_RLC_MAC_MAGIC_NUMBER))
  6473. {
  6474. /* the transport protocol dissector has provided a data structure that contains (at least) the Coding Scheme */
  6475. data->block_format = ((RlcMacPrivateData_t *)pinfo->private_data)->block_format;
  6476. data->flags = ((RlcMacPrivateData_t *)(pinfo->private_data))->flags;
  6477. }
  6478. else
  6479. {
  6480. data->block_format = RLCMAC_CS1;
  6481. data->flags = 0;
  6482. }
  6483. switch(data->block_format)
  6484. {
  6485. case RLCMAC_CS1:
  6486. case RLCMAC_CS2:
  6487. case RLCMAC_CS3:
  6488. case RLCMAC_CS4:
  6489. dissect_dl_gprs_block(tvb, pinfo, tree, data);
  6490. break;
  6491. case RLCMAC_HDR_TYPE_1:
  6492. case RLCMAC_HDR_TYPE_2:
  6493. case RLCMAC_HDR_TYPE_3:
  6494. if (data->flags & (GSM_RLC_MAC_EGPRS_BLOCK1 | GSM_RLC_MAC_EGPRS_BLOCK2))
  6495. {
  6496. dissect_egprs_dl_data_block(tvb, pinfo, tree, data, &((RlcMacPrivateData_t *)(pinfo->private_data))->u.egprs_dl_header_info);
  6497. }
  6498. else
  6499. {
  6500. dissect_egprs_dl_header_block(tvb, pinfo, tree, data);
  6501. }
  6502. break;
  6503. default:
  6504. proto_tree_add_text(tree, tvb, 0, -1, "GSM RLCMAC unknown coding scheme (%d)", data->block_format);
  6505. break;
  6506. }
  6507. }
  6508. static void
  6509. dissect_gsm_rlcmac_uplink(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
  6510. {
  6511. RlcMacUplink_t *data;
  6512. /* allocate a data structure and set the coding scheme */
  6513. data = ep_new(RlcMacUplink_t);
  6514. if ((pinfo->private_data != NULL) && (((RlcMacPrivateData_t *)(pinfo->private_data))->magic == GSM_RLC_MAC_MAGIC_NUMBER))
  6515. {
  6516. /* the transport protocol dissector has provided a data structure that contains (at least) the Coding Scheme */
  6517. data->block_format = ((RlcMacPrivateData_t *)pinfo->private_data)->block_format;
  6518. data->flags = ((RlcMacPrivateData_t *)(pinfo->private_data))->flags;
  6519. }
  6520. else if (tvb_length(tvb) < 3)
  6521. {
  6522. /* assume that little packets are PACCH */
  6523. data->block_format = RLCMAC_PRACH;
  6524. data->flags = 0;
  6525. }
  6526. else
  6527. {
  6528. data->block_format = RLCMAC_CS1;
  6529. data->flags = 0;
  6530. }
  6531. switch(data->block_format)
  6532. {
  6533. case RLCMAC_PRACH:
  6534. dissect_ul_pacch_access_burst(tvb, pinfo, tree, data);
  6535. break;
  6536. case RLCMAC_CS1:
  6537. case RLCMAC_CS2:
  6538. case RLCMAC_CS3:
  6539. case RLCMAC_CS4:
  6540. dissect_ul_gprs_block(tvb, pinfo, tree, data);
  6541. break;
  6542. case RLCMAC_HDR_TYPE_1:
  6543. case RLCMAC_HDR_TYPE_2:
  6544. case RLCMAC_HDR_TYPE_3:
  6545. if (data->flags & (GSM_RLC_MAC_EGPRS_BLOCK1 | GSM_RLC_MAC_EGPRS_BLOCK2))
  6546. {
  6547. dissect_egprs_ul_data_block(tvb, pinfo, tree, data, &((RlcMacPrivateData_t *)(pinfo->private_data))->u.egprs_ul_header_info);
  6548. }
  6549. else
  6550. {
  6551. dissect_egprs_ul_header_block(tvb, pinfo, tree, data);
  6552. }
  6553. break;
  6554. default:
  6555. proto_tree_add_text(tree, tvb, 0, -1, "GSM RLCMAC unknown coding scheme (%d)", data->block_format);
  6556. break;
  6557. }
  6558. }
  6559. void
  6560. proto_register_gsm_rlcmac(void)
  6561. {
  6562. /* Setup protocol subtree array */
  6563. static gint *ett[] = {
  6564. &ett_gsm_rlcmac,
  6565. &ett_gsm_rlcmac_data,
  6566. &ett_data_segments
  6567. };
  6568. static hf_register_info hf[] = {
  6569. { &hf_page_mode,
  6570. { "PAGE_MODE", "gsm_rlcmac.page_mode",
  6571. FT_UINT8, BASE_DEC, VALS(page_mode_vals), 0x0,
  6572. NULL, HFILL
  6573. }
  6574. },
  6575. { &hf_bsn,
  6576. { "BSN", "gsm_rlcmac.bsn",
  6577. FT_UINT32, BASE_DEC, NULL, 0x0,
  6578. NULL, HFILL
  6579. }
  6580. },
  6581. { &hf_bsn2_offset,
  6582. { "BSN 2 offset", "gsm_rlcmac.bsn2_offset",
  6583. FT_UINT32, BASE_DEC, NULL, 0x0,
  6584. NULL, HFILL
  6585. }
  6586. },
  6587. { &hf_e,
  6588. { "Extension", "gsm_rlcmac.e",
  6589. FT_BOOLEAN, BASE_NONE, TFS(&e_vals), 0x0,
  6590. NULL, HFILL
  6591. }
  6592. },
  6593. { &hf_li,
  6594. { "Length Indicator", "gsm_rlcmac.li",
  6595. FT_UINT8, BASE_DEC, NULL, 0x0,
  6596. NULL, HFILL
  6597. }
  6598. },
  6599. { &hf_pi,
  6600. { "PI", "gsm_rlcmac.pi",
  6601. FT_BOOLEAN, BASE_NONE, TFS(&pi_vals), 0x0,
  6602. NULL, HFILL
  6603. }
  6604. },
  6605. { &hf_ti,
  6606. { "TI", "gsm_rlcmac.ti",
  6607. FT_BOOLEAN, BASE_NONE, TFS(&ti_vals), 0x0,
  6608. NULL, HFILL
  6609. }
  6610. },
  6611. { &hf_rsb,
  6612. { "RSB", "gsm_rlcmac.rsb",
  6613. FT_BOOLEAN, BASE_NONE, TFS(&rsb_vals), 0x0,
  6614. NULL, HFILL
  6615. }
  6616. },
  6617. { &hf_dl_spb,
  6618. { "SPB (DL)", "gsm_rlcmac.dl.spb",
  6619. FT_UINT8, BASE_DEC, VALS(dl_spb_vals), 0x0,
  6620. NULL, HFILL
  6621. }
  6622. },
  6623. { &hf_ul_spb,
  6624. { "SPB (UL)", "gsm_rlcmac.ul.spb",
  6625. FT_UINT8, BASE_DEC, VALS(ul_spb_vals), 0x0,
  6626. NULL, HFILL
  6627. }
  6628. },
  6629. { &hf_cps1,
  6630. { "CPS", "gsm_rlcmac.cps",
  6631. FT_UINT8, BASE_HEX|BASE_EXT_STRING, &egprs_Header_type1_coding_puncturing_scheme_vals_ext, 0x0,
  6632. NULL, HFILL
  6633. }
  6634. },
  6635. { &hf_cps2,
  6636. { "CPS", "gsm_rlcmac.cps",
  6637. FT_UINT8, BASE_HEX|BASE_EXT_STRING, &egprs_Header_type2_coding_puncturing_scheme_vals_ext, 0x0,
  6638. NULL, HFILL
  6639. }
  6640. },
  6641. { &hf_cps3,
  6642. { "CPS", "gsm_rlcmac.cps",
  6643. FT_UINT8, BASE_HEX|BASE_EXT_STRING, &egprs_Header_type3_coding_puncturing_scheme_vals_ext, 0x0,
  6644. NULL, HFILL
  6645. }
  6646. },
  6647. { &hf_me,
  6648. { "ME", "gsm_rlcmac.me",
  6649. FT_UINT8, BASE_DEC, VALS(me_vals), 0x0,
  6650. NULL, HFILL
  6651. }
  6652. },
  6653. { &hf_countdown_value,
  6654. { "CV",
  6655. "gsm_rlcmac.ul.cv",
  6656. FT_UINT8, BASE_DEC, NULL, 0x0,
  6657. NULL, HFILL
  6658. }
  6659. },
  6660. { &hf_ul_data_si,
  6661. { "SI",
  6662. "gsm_rlcmac.ul.data_si",
  6663. FT_BOOLEAN, BASE_NONE, TFS(&si_vals), 0x0,
  6664. NULL, HFILL
  6665. }
  6666. },
  6667. { &hf_rrbp,
  6668. { "RRBP",
  6669. "gsm_rlcmac.rrbp",
  6670. FT_UINT8, BASE_DEC, VALS(rrbp_vals), 0x0,
  6671. NULL, HFILL
  6672. }
  6673. },
  6674. { &hf_s_p,
  6675. { "S/P",
  6676. "gsm_rlcmac.s_p",
  6677. FT_BOOLEAN, BASE_NONE, TFS(&s_p_vals), 0x0,
  6678. NULL, HFILL
  6679. }
  6680. },
  6681. { &hf_es_p,
  6682. { "ES/P",
  6683. "gsm_rlcmac.es_p",
  6684. FT_UINT8, BASE_DEC, VALS(es_p_vals), 0x0,
  6685. NULL, HFILL
  6686. }
  6687. },
  6688. { &hf_fbi,
  6689. { "FBI",
  6690. "gsm_rlcmac.fbi",
  6691. FT_BOOLEAN, BASE_NONE, TFS(&fbi_vals), 0x0,
  6692. NULL, HFILL
  6693. }
  6694. },
  6695. { &hf_uplink_tfi,
  6696. { "UL TFI",
  6697. "gsm_rlcmac.ul.tfi",
  6698. FT_UINT8, BASE_DEC, NULL, 0x0,
  6699. NULL, HFILL
  6700. }
  6701. },
  6702. { &hf_downlink_tfi,
  6703. { "DL TFI",
  6704. "gsm_rlcmac.dl.tfi",
  6705. FT_UINT8, BASE_DEC, NULL, 0x0,
  6706. NULL, HFILL
  6707. }
  6708. },
  6709. { &hf_ul_data_spare,
  6710. { "UL SPARE",
  6711. "gsm_rlcmac.ul.data_spare",
  6712. FT_UINT8, BASE_DEC, NULL, 0x0,
  6713. NULL, HFILL
  6714. }
  6715. },
  6716. { &hf_pfi,
  6717. { "PFI",
  6718. "gsm_rlcmac.pfi",
  6719. FT_UINT8, BASE_DEC, NULL, 0x0,
  6720. NULL, HFILL
  6721. }
  6722. },
  6723. { &hf_usf,
  6724. { "USF",
  6725. "gsm_rlcmac.usf",
  6726. FT_UINT8, BASE_DEC, NULL, 0x0,
  6727. NULL, HFILL
  6728. }
  6729. },
  6730. { &hf_dl_payload_type,
  6731. { "Payload Type (DL)",
  6732. "gsm_rlcmac.dl_payload_type",
  6733. FT_UINT8, BASE_DEC, VALS(dl_payload_type_vals), 0x0,
  6734. NULL, HFILL
  6735. }
  6736. },
  6737. { &hf_ul_payload_type,
  6738. { "Payload Type (UL)",
  6739. "gsm_rlcmac.ul_payload_type",
  6740. FT_UINT8, BASE_DEC, VALS(ul_payload_type_vals), 0x0,
  6741. NULL, HFILL
  6742. }
  6743. },
  6744. { &hf_prach8_message_type_3,
  6745. { "Message Type (3 bit)",
  6746. "gsm_rlcmac.message_type_3",
  6747. FT_UINT8, BASE_DEC, VALS(ul_prach8_message_type3_vals), 0x0,
  6748. NULL, HFILL
  6749. }
  6750. },
  6751. { &hf_prach8_message_type_6,
  6752. { "Message Type (6 bit)",
  6753. "gsm_rlcmac.message_type_6",
  6754. FT_UINT8, BASE_DEC, VALS(ul_prach8_message_type6_vals), 0x0,
  6755. NULL, HFILL
  6756. }
  6757. },
  6758. { &hf_prach11_message_type_6,
  6759. { "Message Type (6 bit)",
  6760. "gsm_rlcmac.message_type_6",
  6761. FT_UINT8, BASE_DEC, VALS(ul_prach11_message_type6_vals), 0x0,
  6762. NULL, HFILL
  6763. }
  6764. },
  6765. { &hf_prach11_message_type_9,
  6766. { "Message Type (9 bit)",
  6767. "gsm_rlcmac.message_type_9",
  6768. FT_UINT8, BASE_DEC, VALS(ul_prach11_message_type9_vals), 0x0,
  6769. NULL, HFILL
  6770. }
  6771. },
  6772. { &hf_tlli,
  6773. { "TLLI",
  6774. "gsm_rlcmac.tlli",
  6775. FT_UINT32, BASE_DEC, NULL, 0x0,
  6776. NULL, HFILL
  6777. }
  6778. },
  6779. { &hf_dl_ctrl_rbsn,
  6780. { "RBSN",
  6781. "gsm_rlcmac.dl.rbsn",
  6782. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  6783. NULL, HFILL
  6784. }
  6785. },
  6786. { &hf_dl_ctrl_rti,
  6787. { "RTI",
  6788. "gsm_rlcmac.dl.rti",
  6789. FT_UINT8, BASE_DEC, NULL, 0x0,
  6790. NULL, HFILL
  6791. }
  6792. },
  6793. { &hf_dl_ctrl_fs,
  6794. { "FS",
  6795. "gsm_rlcmac.dl.fs",
  6796. FT_BOOLEAN, BASE_NONE, TFS(&fs_vals), 0x0,
  6797. NULL, HFILL
  6798. }
  6799. },
  6800. { &hf_dl_ctrl_ac,
  6801. { "AC",
  6802. "gsm_rlcmac.dl.ac",
  6803. FT_BOOLEAN, BASE_NONE, TFS(&ac_vals), 0x0,
  6804. NULL, HFILL
  6805. }
  6806. },
  6807. { &hf_dl_ctrl_pr,
  6808. { "PR",
  6809. "gsm_rlcmac.dl.pr",
  6810. FT_UINT8, BASE_DEC, VALS(power_reduction_vals), 0x0,
  6811. NULL, HFILL
  6812. }
  6813. },
  6814. { &hf_dl_ctrl_d,
  6815. { "D",
  6816. "gsm_rlcmac.dl.d",
  6817. FT_BOOLEAN,BASE_NONE, TFS(&ctrl_d_vals), 0x0,
  6818. NULL, HFILL
  6819. }
  6820. },
  6821. { &hf_dl_ctrl_rbsn_e,
  6822. { "RBSNe",
  6823. "gsm_rlcmac.dl.rbsn_e",
  6824. FT_UINT8, BASE_DEC, VALS(rbsn_e_vals), 0x0,
  6825. NULL, HFILL
  6826. }
  6827. },
  6828. { &hf_dl_ctrl_fs_e,
  6829. { "FSe",
  6830. "gsm_rlcmac.dl.fs_e",
  6831. FT_UINT8, BASE_DEC, NULL, 0x0,
  6832. NULL, HFILL
  6833. }
  6834. },
  6835. { &hf_dl_ctrl_spare,
  6836. { "DL CTRL SPARE",
  6837. "gsm_rlcmac.dl.ctrl_spare",
  6838. FT_UINT8, BASE_DEC, NULL, 0x0,
  6839. NULL, HFILL
  6840. }
  6841. },
  6842. { &hf_startingtime_n32,
  6843. { "N32", "gsm_rlcmac.dl.n32",
  6844. FT_UINT8, BASE_DEC, NULL, 0x0,
  6845. NULL, HFILL
  6846. }
  6847. },
  6848. { &hf_startingtime_n51,
  6849. { "N51", "gsm_rlcmac.dl.n51",
  6850. FT_UINT8, BASE_DEC, NULL, 0x0,
  6851. NULL, HFILL
  6852. }
  6853. },
  6854. { &hf_startingtime_n26,
  6855. { "N26", "gsm_rlcmac.dl.n26",
  6856. FT_UINT8, BASE_DEC, NULL, 0x0,
  6857. NULL, HFILL
  6858. }
  6859. },
  6860. /* < Global TFI IE > */
  6861. /* < Starting Frame Number Description IE > */
  6862. { &hf_starting_frame_number_k,
  6863. { "k", "gsm_rlcmac.dl.k",
  6864. FT_UINT8, BASE_DEC, NULL, 0x0,
  6865. NULL, HFILL
  6866. }
  6867. },
  6868. /* < Ack/Nack Description IE > */
  6869. { &hf_final_ack_indication,
  6870. { "FINAL_ACK_INDICATION", "gsm_rlcmac.dl.final_ack_indication",
  6871. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  6872. NULL, HFILL
  6873. }
  6874. },
  6875. { &hf_starting_sequence_number,
  6876. { "STARTING_SEQUENCE_NUMBER", "gsm_rlcmac.dl.starting_sequence_number",
  6877. FT_UINT8, BASE_DEC, NULL, 0x0,
  6878. NULL, HFILL
  6879. }
  6880. },
  6881. /* < Packet Timing Advance IE > */
  6882. { &hf_timing_advance_value,
  6883. { "TIMING_ADVANCE_VALUE", "gsm_rlcmac.dl.timing_advance_value",
  6884. FT_UINT8, BASE_DEC, NULL, 0x0,
  6885. NULL, HFILL
  6886. }
  6887. },
  6888. { &hf_timing_advance_index,
  6889. { "TIMING_ADVANCE_INDEX", "gsm_rlcmac.dl.timing_advance_index",
  6890. FT_UINT8, BASE_DEC, NULL, 0x0,
  6891. NULL, HFILL
  6892. }
  6893. },
  6894. { &hf_timing_advance_timeslot_number,
  6895. { "TIMING_ADVANCE_TIMESLOT_NUMBER", "gsm_rlcmac.dl.timing_advance_timeslot_number",
  6896. FT_UINT8, BASE_DEC, NULL, 0x0,
  6897. NULL, HFILL
  6898. }
  6899. },
  6900. /* < Power Control Parameters IE > */
  6901. { &hf_alpha,
  6902. { "ALPHA", "gsm_rlcmac.dl.alpha",
  6903. FT_UINT8, BASE_DEC, VALS(alpha_vals), 0x0,
  6904. NULL, HFILL
  6905. }
  6906. },
  6907. { &hf_t_avg_w,
  6908. { "T_AVG_W", "gsm_rlcmac.dl.t_avg_w",
  6909. FT_UINT8, BASE_DEC, NULL, 0x0,
  6910. NULL, HFILL
  6911. }
  6912. },
  6913. { &hf_t_avg_t,
  6914. { "T_AVG_T", "gsm_rlcmac.dl.t_avg_t",
  6915. FT_UINT8, BASE_DEC, NULL, 0x0,
  6916. NULL, HFILL
  6917. }
  6918. },
  6919. { &hf_pc_meas_chan,
  6920. { "PC_MEAS_CHAN", "gsm_rlcmac.dl.pc_meas_chan",
  6921. FT_BOOLEAN, BASE_NONE, TFS(&pc_meas_chan_vals), 0x0,
  6922. NULL, HFILL
  6923. }
  6924. },
  6925. { &hf_n_avg_i,
  6926. { "N_AVG_I", "gsm_rlcmac.dl.n_avg_i",
  6927. FT_UINT8, BASE_DEC, NULL, 0x0,
  6928. NULL, HFILL
  6929. }
  6930. },
  6931. /* < Global Power Control Parameters IE > */
  6932. { &hf_global_power_control_parameters_pb,
  6933. { "Pb", "gsm_rlcmac.dl.pb",
  6934. FT_UINT8, BASE_DEC, NULL, 0x0,
  6935. NULL, HFILL
  6936. }
  6937. },
  6938. { &hf_global_power_control_parameters_int_meas_channel_list_avail,
  6939. { "INT_MEAS_CHANNEL_LIST_AVAIL", "gsm_rlcmac.dl.int_meas_channel_list_avail",
  6940. FT_UINT8, BASE_DEC, NULL, 0x0,
  6941. NULL, HFILL
  6942. }
  6943. },
  6944. /* < Global Packet Timing Advance IE > */
  6945. /* < Channel Quality Report struct > */
  6946. { &hf_channel_quality_report_c_value,
  6947. { "C_VALUE", "gsm_rlcmac.dl.c_value",
  6948. FT_UINT8, BASE_DEC, NULL, 0x0,
  6949. NULL, HFILL
  6950. }
  6951. },
  6952. { &hf_channel_quality_report_rxqual,
  6953. { "RXQUAL", "gsm_rlcmac.dl.rxqual",
  6954. FT_UINT8, BASE_DEC, NULL, 0x0,
  6955. NULL, HFILL
  6956. }
  6957. },
  6958. { &hf_channel_quality_report_sign_var,
  6959. { "SIGN_VAR", "gsm_rlcmac.dl.sign_var",
  6960. FT_UINT8, BASE_DEC, NULL, 0x0,
  6961. NULL, HFILL
  6962. }
  6963. },
  6964. { &hf_channel_quality_report_slot0_i_level_tn,
  6965. { "Slot[0].I_LEVEL_TN", "gsm_rlcmac.dl.slot0_i_level_tn",
  6966. FT_UINT8, BASE_DEC, NULL, 0x0,
  6967. NULL, HFILL
  6968. }
  6969. },
  6970. { &hf_channel_quality_report_slot1_i_level_tn,
  6971. { "Slot[1].I_LEVEL_TN", "gsm_rlcmac.dl.slot1_i_level_tn",
  6972. FT_UINT8, BASE_DEC, NULL, 0x0,
  6973. NULL, HFILL
  6974. }
  6975. },
  6976. { &hf_channel_quality_report_slot2_i_level_tn,
  6977. { "Slot[2].I_LEVEL_TN", "gsm_rlcmac.dl.slot2_i_level_tn",
  6978. FT_UINT8, BASE_DEC, NULL, 0x0,
  6979. NULL, HFILL
  6980. }
  6981. },
  6982. { &hf_channel_quality_report_slot3_i_level_tn,
  6983. { "Slot[3].I_LEVEL_TN", "gsm_rlcmac.dl.slot3_i_level_tn",
  6984. FT_UINT8, BASE_DEC, NULL, 0x0,
  6985. NULL, HFILL
  6986. }
  6987. },
  6988. { &hf_channel_quality_report_slot4_i_level_tn,
  6989. { "Slot[4].I_LEVEL_TN", "gsm_rlcmac.dl.slot4_i_level_tn",
  6990. FT_UINT8, BASE_DEC, NULL, 0x0,
  6991. NULL, HFILL
  6992. }
  6993. },
  6994. { &hf_channel_quality_report_slot5_i_level_tn,
  6995. { "Slot[5].I_LEVEL_TN", "gsm_rlcmac.dl.slot5_i_level_tn",
  6996. FT_UINT8, BASE_DEC, NULL, 0x0,
  6997. NULL, HFILL
  6998. }
  6999. },
  7000. { &hf_channel_quality_report_slot6_i_level_tn,
  7001. { "Slot[6].I_LEVEL_TN", "gsm_rlcmac.dl.slot6_i_level_tn",
  7002. FT_UINT8, BASE_DEC, NULL, 0x0,
  7003. NULL, HFILL
  7004. }
  7005. },
  7006. { &hf_channel_quality_report_slot7_i_level_tn,
  7007. { "Slot[7].I_LEVEL_TN", "gsm_rlcmac.dl.slot7_i_level_tn",
  7008. FT_UINT8, BASE_DEC, NULL, 0x0,
  7009. NULL, HFILL
  7010. }
  7011. },
  7012. /* < EGPRS Ack/Nack Description > */
  7013. { &hf_egprs_acknack_beginning_of_window,
  7014. { "BEGINNING_OF_WINDOW", "gsm_rlcmac.dl.beginning_of_window",
  7015. FT_UINT8, BASE_DEC, NULL, 0x0,
  7016. NULL, HFILL
  7017. }
  7018. },
  7019. { &hf_egprs_acknack_end_of_window,
  7020. { "END_OF_WINDOW", "gsm_rlcmac.dl.end_of_window",
  7021. FT_UINT8, BASE_DEC, NULL, 0x0,
  7022. NULL, HFILL
  7023. }
  7024. },
  7025. { &hf_egprs_acknack_crbb_length,
  7026. { "CRBB_LENGTH", "gsm_rlcmac.dl.crbb_length",
  7027. FT_UINT8, BASE_DEC, NULL, 0x0,
  7028. NULL, HFILL
  7029. }
  7030. },
  7031. { &hf_egprs_acknack_crbb_starting_color_code,
  7032. { "CRBB_STARTING_COLOR_CODE", "gsm_rlcmac.dl.crbb_starting_color_code",
  7033. FT_UINT8, BASE_DEC, NULL, 0x0,
  7034. NULL, HFILL
  7035. }
  7036. },
  7037. /* <P1 Rest Octets> */
  7038. /* <P2 Rest Octets> */
  7039. { &hf_mobileallocationie_length,
  7040. { "Length", "gsm_rlcmac.dl.mobileallocationie_length",
  7041. FT_UINT8, BASE_DEC, NULL, 0x0,
  7042. NULL, HFILL
  7043. }
  7044. },
  7045. { &hf_single_rf_channel_spare,
  7046. { "spare", "gsm_rlcmac.dl.single_rf_channel_spare",
  7047. FT_UINT8, BASE_DEC, NULL, 0x0,
  7048. NULL, HFILL
  7049. }
  7050. },
  7051. { &hf_arfcn,
  7052. { "ARFCN", "gsm_rlcmac.dl.arfcn",
  7053. FT_UINT8, BASE_DEC, NULL, 0x0,
  7054. NULL, HFILL
  7055. }
  7056. },
  7057. { &hf_maio,
  7058. { "MAIO", "gsm_rlcmac.dl.maio",
  7059. FT_UINT8, BASE_DEC, NULL, 0x0,
  7060. NULL, HFILL
  7061. }
  7062. },
  7063. { &hf_hsn,
  7064. { "HSN", "gsm_rlcmac.dl.hsn",
  7065. FT_UINT8, BASE_DEC, NULL, 0x0,
  7066. NULL, HFILL
  7067. }
  7068. },
  7069. { &hf_channel_description_channel_type_and_tdma_offset,
  7070. { "Channel_type_and_TDMA_offset", "gsm_rlcmac.dl.channel_description_channel_type_and_tdma_offset",
  7071. FT_UINT8, BASE_DEC, NULL, 0x0,
  7072. NULL, HFILL
  7073. }
  7074. },
  7075. { &hf_channel_description_tn,
  7076. { "TN", "gsm_rlcmac.dl.channel_description_tn",
  7077. FT_UINT8, BASE_DEC, NULL, 0x0,
  7078. NULL, HFILL
  7079. }
  7080. },
  7081. { &hf_tsc,
  7082. { "TSC", "gsm_rlcmac.dl.tsc",
  7083. FT_UINT8, BASE_DEC, NULL, 0x0,
  7084. NULL, HFILL
  7085. }
  7086. },
  7087. { &hf_group_call_reference_value,
  7088. { "value", "gsm_rlcmac.dl.group_call_value",
  7089. FT_UINT8, BASE_DEC, NULL, 0x0,
  7090. NULL, HFILL
  7091. }
  7092. },
  7093. { &hf_group_call_reference_sf,
  7094. { "SF", "gsm_rlcmac.dl.group_call_sf",
  7095. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  7096. NULL, HFILL
  7097. }
  7098. },
  7099. { &hf_group_call_reference_af,
  7100. { "AF", "gsm_rlcmac.dl.group_call_af",
  7101. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  7102. NULL, HFILL
  7103. }
  7104. },
  7105. { &hf_group_call_reference_call_priority,
  7106. { "call_priority", "gsm_rlcmac.dl.group_call_reference_call_priority",
  7107. FT_UINT8, BASE_DEC, NULL, 0x0,
  7108. NULL, HFILL
  7109. }
  7110. },
  7111. { &hf_group_call_reference_ciphering_information,
  7112. { "Ciphering_information", "gsm_rlcmac.dl.group_call_reference_call_ciphering_information",
  7113. FT_UINT8, BASE_DEC, NULL, 0x0,
  7114. NULL, HFILL
  7115. }
  7116. },
  7117. { &hf_nln_pch,
  7118. { "NLN_PCH", "gsm_rlcmac.dl.nln_pch",
  7119. FT_UINT8, BASE_DEC, NULL, 0x0,
  7120. NULL, HFILL
  7121. }
  7122. },
  7123. { &hf_nln_status,
  7124. { "NLN_status", "gsm_rlcmac.dl.nln_status",
  7125. FT_UINT8, BASE_DEC, NULL, 0x0,
  7126. NULL, HFILL
  7127. }
  7128. },
  7129. { &hf_priority,
  7130. { "Priority", "gsm_rlcmac.dl.priority",
  7131. FT_UINT8, BASE_DEC, NULL, 0x0,
  7132. NULL, HFILL
  7133. }
  7134. },
  7135. { &hf_p1_rest_octets_packet_page_indication_1,
  7136. { "Packet_Page_Indication_1", "gsm_rlcmac.dl.p1_rest_octets_packet_page_indication_1",
  7137. FT_UINT8, BASE_DEC, NULL, 0x0,
  7138. NULL, HFILL
  7139. }
  7140. },
  7141. { &hf_p1_rest_octets_packet_page_indication_2,
  7142. { "Packet_Page_Indication_2", "gsm_rlcmac.dl.p1_rest_octets_packet_page_indication_2",
  7143. FT_UINT8, BASE_DEC, NULL, 0x0,
  7144. NULL, HFILL
  7145. }
  7146. },
  7147. { &hf_p2_rest_octets_cn3,
  7148. { "CN3", "gsm_rlcmac.dl.p2_rest_octets_cn3",
  7149. FT_UINT8, BASE_DEC, NULL, 0x0,
  7150. NULL, HFILL
  7151. }
  7152. },
  7153. { &hf_nln,
  7154. { "NLN", "gsm_rlcmac.dl.nln",
  7155. FT_UINT8, BASE_DEC, NULL, 0x0,
  7156. NULL, HFILL
  7157. }
  7158. },
  7159. { &hf_p2_rest_octets_packet_page_indication_3,
  7160. { "Packet_Page_Indication_3", "gsm_rlcmac.dl.p2_rest_octets_packet_page_indication_3",
  7161. FT_UINT8, BASE_DEC, NULL, 0x0,
  7162. NULL, HFILL
  7163. }
  7164. },
  7165. /* <IA Rest Octets> */
  7166. { &hf_usf_granularity,
  7167. { "USF_GRANULARITY", "gsm_rlcmac.dl.usf_granularity",
  7168. FT_UINT8, BASE_DEC, NULL, 0x0,
  7169. NULL, HFILL
  7170. }
  7171. },
  7172. { &hf_p0,
  7173. { "P0", "gsm_rlcmac.dl.p0",
  7174. FT_UINT8, BASE_DEC, NULL, 0x0,
  7175. NULL, HFILL
  7176. }
  7177. },
  7178. { &hf_pr_mode,
  7179. { "PR_MODE", "gsm_rlcmac.dl.pr_mode",
  7180. FT_UINT8, BASE_DEC, NULL, 0x0,
  7181. NULL, HFILL
  7182. }
  7183. },
  7184. { &hf_gamma,
  7185. { "GAMMA", "gsm_rlcmac.dl.gamma",
  7186. FT_UINT8, BASE_DEC, NULL, 0x0,
  7187. NULL, HFILL
  7188. }
  7189. },
  7190. { &hf_nr_of_radio_blocks_allocated,
  7191. { "NR_OF_RADIO_BLOCKS_ALLOCATED", "gsm_rlcmac.dl.nr_of_radio_blocks_allocated",
  7192. FT_UINT8, BASE_DEC, NULL, 0x0,
  7193. NULL, HFILL
  7194. }
  7195. },
  7196. { &hf_bts_pwr_ctrl_mode,
  7197. { "BTS_PWR_CTRL_MODE", "gsm_rlcmac.dl.bts_pwr_ctrl_mode",
  7198. FT_UINT8, BASE_DEC, NULL, 0x0,
  7199. NULL, HFILL
  7200. }
  7201. },
  7202. { &hf_polling,
  7203. { "POLLING", "gsm_rlcmac.dl.polling",
  7204. FT_UINT8, BASE_DEC, NULL, 0x0,
  7205. NULL, HFILL
  7206. }
  7207. },
  7208. { &hf_egprs_channel_coding_command,
  7209. { "EGPRS_CHANNEL_CODING_COMMAND", "gsm_rlcmac.dl.egprs_channel_coding_command",
  7210. FT_UINT8, BASE_DEC, VALS(egprs_modulation_channel_coding_scheme_vals), 0x0,
  7211. NULL, HFILL
  7212. }
  7213. },
  7214. { &hf_tlli_block_channel_coding,
  7215. { "TLLI_BLOCK_CHANNEL_CODING", "gsm_rlcmac.dl.tlli_block_channel_coding",
  7216. FT_UINT8, BASE_DEC, NULL, 0x0,
  7217. NULL, HFILL
  7218. }
  7219. },
  7220. { &hf_bep_period2,
  7221. { "BEP_PERIOD2", "gsm_rlcmac.dl.bep_period2",
  7222. FT_UINT8, BASE_DEC, NULL, 0x0,
  7223. NULL, HFILL
  7224. }
  7225. },
  7226. { &hf_resegment,
  7227. { "RESEGMENT", "gsm_rlcmac.dl.resegment",
  7228. FT_UINT8, BASE_DEC, NULL, 0x0,
  7229. NULL, HFILL
  7230. }
  7231. },
  7232. { &hf_egprs_windowsize,
  7233. { "EGPRS_WindowSize", "gsm_rlcmac.dl.egprs_windowsize",
  7234. FT_UINT8, BASE_DEC, NULL, 0x0,
  7235. NULL, HFILL
  7236. }
  7237. },
  7238. { &hf_extendedra,
  7239. { "ExtendedRA", "gsm_rlcmac.dl.extendedra",
  7240. FT_UINT8, BASE_DEC, NULL, 0x0,
  7241. NULL, HFILL
  7242. }
  7243. },
  7244. { &hf_ia_egprs_uniontype ,
  7245. { "UnionType", "gsm_rlcmac.dl.ia_egprs_00_uniontype",
  7246. FT_UINT8, BASE_DEC, NULL, 0x0,
  7247. NULL, HFILL
  7248. }
  7249. },
  7250. { &hf_ia_freqparamsbeforetime_length,
  7251. { "Length", "gsm_rlcmac.dl.ia_freqparamsbeforetime_length",
  7252. FT_UINT8, BASE_DEC, NULL, 0x0,
  7253. NULL, HFILL
  7254. }
  7255. },
  7256. { &hf_gprs_channel_coding_command,
  7257. { "CHANNEL_CODING_COMMAND", "gsm_rlcmac.dl.gprs_channel_coding_command",
  7258. FT_UINT8, BASE_DEC, NULL, 0x0,
  7259. NULL, HFILL
  7260. }
  7261. },
  7262. { &hf_link_quality_measurement_mode,
  7263. { "LINK_QUALITY_MEASUREMENT_MODE", "gsm_rlcmac.dl.link_quality_measurement_mode",
  7264. FT_UINT8, BASE_DEC, NULL, 0x0,
  7265. NULL, HFILL
  7266. }
  7267. },
  7268. { &hf_rlc_mode,
  7269. { "RLC_MODE", "gsm_rlcmac.dl.rlc_mode",
  7270. FT_BOOLEAN, BASE_NONE, TFS(&rlc_mode_vals), 0x0,
  7271. NULL, HFILL
  7272. }
  7273. },
  7274. { &hf_ta_valid,
  7275. { "TA_VALID", "gsm_rlcmac.dl.packet_downlink_immassignment_ta_valid",
  7276. FT_UINT8, BASE_DEC, NULL, 0x0,
  7277. NULL, HFILL
  7278. }
  7279. },
  7280. { &hf_tqi,
  7281. { "TQI", "gsm_rlcmac.dl.tqi",
  7282. FT_UINT8, BASE_DEC, NULL, 0x0,
  7283. NULL, HFILL
  7284. }
  7285. },
  7286. /* <Packet Polling Request> */
  7287. { &hf_dl_message_type,
  7288. { "MESSAGE_TYPE (DL)", "gsm_rlcmac.dl.message_type",
  7289. FT_UINT8, BASE_DEC|BASE_EXT_STRING, &dl_rlc_message_type_vals_ext, 0x0,
  7290. NULL, HFILL
  7291. }
  7292. },
  7293. /* < SI 13 Rest Octets > */
  7294. { &hf_gprs_cell_options_nmo,
  7295. { "NMO", "gsm_rlcmac.dl.gprs_cell_options_nmo",
  7296. FT_UINT8, BASE_DEC, VALS(gsm_rlcmac_nmo_vals), 0x0,
  7297. NULL, HFILL
  7298. }
  7299. },
  7300. { &hf_gprs_cell_options_t3168,
  7301. { "T3168", "gsm_rlcmac.dl.gprs_cell_options_t3168",
  7302. FT_UINT8, BASE_DEC, VALS(gsm_rlcmac_t3168_vals), 0x0,
  7303. NULL, HFILL
  7304. }
  7305. },
  7306. { &hf_gprs_cell_options_t3192,
  7307. { "T3192", "gsm_rlcmac.dl.gprs_cell_options_t3192",
  7308. FT_UINT8, BASE_DEC, VALS(gsm_rlcmac_t3192_vals), 0x0,
  7309. NULL, HFILL
  7310. }
  7311. },
  7312. { &hf_gprs_cell_options_drx_timer_max,
  7313. { "DRX_TIMER_MAX", "gsm_rlcmac.dl.gprs_cell_options_drx_timer_max",
  7314. FT_UINT8, BASE_DEC, NULL, 0x0,
  7315. NULL, HFILL
  7316. }
  7317. },
  7318. { &hf_gprs_cell_options_access_burst_type,
  7319. { "ACCESS_BURST_TYPE", "gsm_rlcmac.dl.gprs_cell_options_access_burst_type",
  7320. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  7321. NULL, HFILL
  7322. }
  7323. },
  7324. { &hf_ack_type,
  7325. { "CONTROL_ACK_TYPE", "gsm_rlcmac.dl.ack_type",
  7326. FT_BOOLEAN, BASE_NONE, TFS(&ack_type_vals), 0x0,
  7327. NULL, HFILL
  7328. }
  7329. },
  7330. { &hf_gprs_cell_options_bs_cv_max,
  7331. { "BS_CV_MAX", "gsm_rlcmac.dl.gprs_cell_options_bs_cv_max",
  7332. FT_UINT8, BASE_DEC, NULL, 0x0,
  7333. NULL, HFILL
  7334. }
  7335. },
  7336. { &hf_gprs_cell_options_pan_dec,
  7337. { "PAN_DEC", "gsm_rlcmac.dl.gprs_cell_options_pan_dec",
  7338. FT_UINT8, BASE_DEC, NULL, 0x0,
  7339. NULL, HFILL
  7340. }
  7341. },
  7342. { &hf_gprs_cell_options_pan_inc,
  7343. { "PAN_INC", "gsm_rlcmac.dl.gprs_cell_options_pan_inc",
  7344. FT_UINT8, BASE_DEC, NULL, 0x0,
  7345. NULL, HFILL
  7346. }
  7347. },
  7348. { &hf_gprs_cell_options_pan_max,
  7349. { "PAN_MAX", "gsm_rlcmac.dl.gprs_cell_options_pan_max",
  7350. FT_UINT8, BASE_DEC, NULL, 0x0,
  7351. NULL, HFILL
  7352. }
  7353. },
  7354. { &hf_rac,
  7355. { "RAC", "gsm_rlcmac.dl.rac",
  7356. FT_UINT8, BASE_DEC, NULL, 0x0,
  7357. NULL, HFILL
  7358. }
  7359. },
  7360. { &hf_pbcch_not_present_spgc_ccch_sup,
  7361. { "SPGC_CCCH_SUP", "gsm_rlcmac.dl.pbcch_not_present_spgc_ccch_sup",
  7362. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  7363. NULL, HFILL
  7364. }
  7365. },
  7366. { &hf_pbcch_not_present_priority_access_thr,
  7367. { "PRIORITY_ACCESS_THR", "gsm_rlcmac.dl.pbcch_not_present_priority_access_thr",
  7368. FT_UINT8, BASE_DEC, NULL, 0x0,
  7369. NULL, HFILL
  7370. }
  7371. },
  7372. { &hf_pbcch_not_present_network_control_order,
  7373. { "NETWORK_CONTROL_ORDER", "gsm_rlcmac.dl.pbcch_not_present_network_control_order",
  7374. FT_UINT8, BASE_DEC, NULL, 0x0,
  7375. NULL, HFILL
  7376. }
  7377. },
  7378. { &hf_pbcch_description_pb,
  7379. { "Pb", "gsm_rlcmac.dl.pbcch_description_pb",
  7380. FT_UINT8, BASE_DEC, NULL, 0x0,
  7381. NULL, HFILL
  7382. }
  7383. },
  7384. { &hf_pbcch_description_tn,
  7385. { "TN", "gsm_rlcmac.dl.pbcch_description_tn",
  7386. FT_UINT8, BASE_DEC, NULL, 0x0,
  7387. NULL, HFILL
  7388. }
  7389. },
  7390. { &hf_pbcch_present_psi1_repeat_period,
  7391. { "PSI1_REPEAT_PERIOD", "gsm_rlcmac.dl.pbcch_present_psi1_repeat_period",
  7392. FT_UINT8, BASE_DEC, VALS(gsm_rlcmac_val_plus_1_vals), 0x0,
  7393. NULL, HFILL
  7394. }
  7395. },
  7396. { &hf_bcch_change_mark,
  7397. { "BCCH_CHANGE_MARK", "gsm_rlcmac.dl.bcch_change_mark",
  7398. FT_UINT8, BASE_DEC, NULL, 0x0,
  7399. NULL, HFILL
  7400. }
  7401. },
  7402. { &hf_si_change_field,
  7403. { "SI_CHANGE_FIELD", "gsm_rlcmac.dl.si_change_field",
  7404. FT_UINT8, BASE_DEC, NULL, 0x0,
  7405. NULL, HFILL
  7406. }
  7407. },
  7408. { &hf_si13_change_mark,
  7409. { "SI13_CHANGE_MARK", "gsm_rlcmac.dl.si13_change_mark",
  7410. FT_UINT8, BASE_DEC, NULL, 0x0,
  7411. NULL, HFILL
  7412. }
  7413. },
  7414. { &hf_sgsnr,
  7415. { "SGSNR", "gsm_rlcmac.dl.sgsnr",
  7416. FT_UINT8, BASE_DEC, NULL, 0x0,
  7417. NULL, HFILL
  7418. }
  7419. },
  7420. { &hf_si_status_ind,
  7421. { "SI_STATUS_IND", "gsm_rlcmac.dl.si_status_ind",
  7422. FT_UINT8, BASE_DEC, NULL, 0x0,
  7423. NULL, HFILL
  7424. }
  7425. },
  7426. /* < Packet TBF Release message content > */
  7427. { &hf_packetbf_release_uplink_release,
  7428. { "UPLINK_RELEASE", "gsm_rlcmac.dl.packetbf_release_uplink_release",
  7429. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  7430. NULL, HFILL
  7431. }
  7432. },
  7433. { &hf_packetbf_release_downlink_release,
  7434. { "DOWNLINK_RELEASE", "gsm_rlcmac.dl.packetbf_release_downlink_release",
  7435. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  7436. NULL, HFILL
  7437. }
  7438. },
  7439. { &hf_packetbf_release_tbf_release_cause,
  7440. { "TBF_RELEASE_CAUSE", "gsm_rlcmac.dl.packetbf_release_tbf_release_cause",
  7441. FT_UINT8, BASE_DEC, NULL, 0x0,
  7442. NULL, HFILL
  7443. }
  7444. },
  7445. /* < Packet Control Acknowledgement message content > */
  7446. { &hf_packet_control_acknowledgement_additionsr6_ctrl_ack_extension,
  7447. { "CTRL_ACK_Extension", "gsm_rlcmac.ul.packet_control_ack_additionsr6_ctrl_ack_extension",
  7448. FT_UINT8, BASE_DEC, NULL, 0x0,
  7449. NULL, HFILL
  7450. }
  7451. },
  7452. { &hf_packet_control_acknowledgement_additionsr5_tn_rrbp,
  7453. { "TN_RRBP", "gsm_rlcmac.ul.packet_control_ack_additionsr5_tn_rrbp",
  7454. FT_UINT8, BASE_DEC, NULL, 0x0,
  7455. NULL, HFILL
  7456. }
  7457. },
  7458. { &hf_packet_control_acknowledgement_additionsr5_g_rnti_extension,
  7459. { "G_RNTI_Extension", "gsm_rlcmac.ul.packet_control_ack_additionsr5_g_rnti_extension",
  7460. FT_UINT8, BASE_DEC, NULL, 0x0,
  7461. NULL, HFILL
  7462. }
  7463. },
  7464. { &hf_ul_retry,
  7465. { "R", "gsm_rlcmac.ul.retry",
  7466. FT_BOOLEAN, BASE_NONE, TFS(&retry_vals), 0x0,
  7467. NULL, HFILL
  7468. }
  7469. },
  7470. { &hf_ul_message_type,
  7471. { "MESSAGE_TYPE (UL)", "gsm_rlcmac.ul.message_type",
  7472. FT_UINT8, BASE_DEC|BASE_EXT_STRING, &ul_rlc_message_type_vals_ext, 0x0,
  7473. NULL, HFILL
  7474. }
  7475. },
  7476. { &hf_packet_control_acknowledgement_ctrl_ack,
  7477. { "CTRL_ACK", "gsm_rlcmac.ul.packet_control_ack_ctrl_ack",
  7478. FT_UINT8, BASE_DEC, NULL, 0x0,
  7479. NULL, HFILL
  7480. }
  7481. },
  7482. /* < Packet Downlink Dummy Control Block message content > */
  7483. /* < Packet Uplink Dummy Control Block message content > */
  7484. { &hf_receive_n_pdu_number_nsapi,
  7485. { "nsapi", "gsm_rlcmac.dl.receive_n_pdu_number_nsapi",
  7486. FT_UINT8, BASE_DEC, NULL, 0x0,
  7487. NULL, HFILL
  7488. }
  7489. },
  7490. { &hf_receive_n_pdu_number_value,
  7491. { "value", "gsm_rlcmac.dl.receive_n_pdu_number_value",
  7492. FT_UINT8, BASE_DEC, NULL, 0x0,
  7493. NULL, HFILL
  7494. }
  7495. },
  7496. /* < MS Radio Access capability IE > */
  7497. { &hf_dtm_egprs_dtm_egprs_multislot_class,
  7498. { "DTM_EGPRS_multislot_class", "gsm_rlcmac.ul.dtm_egprs_multislot_class",
  7499. FT_UINT8, BASE_DEC, NULL, 0x0,
  7500. NULL, HFILL
  7501. }
  7502. },
  7503. { &hf_dtm_egprs_highmultislotclass_dtm_egprs_highmultislotclass,
  7504. { "DTM_EGPRS_HighMultislotClass", "gsm_rlcmac.ul.dtm_egprs_highmultislotclass",
  7505. FT_UINT8, BASE_DEC, NULL, 0x0,
  7506. NULL, HFILL
  7507. }
  7508. },
  7509. { &hf_multislot_capability_hscsd_multislot_class,
  7510. { "HSCSD_multislot_class", "gsm_rlcmac.ul.hscsd_multislot_class",
  7511. FT_UINT8, BASE_DEC, NULL, 0x0,
  7512. NULL, HFILL
  7513. }
  7514. },
  7515. { &hf_multislot_capability_gprs_multislot_class,
  7516. { "GPRS_multislot_class", "gsm_rlcmac.ul.gprs_multislot_class",
  7517. FT_UINT8, BASE_DEC, NULL, 0x0,
  7518. NULL, HFILL
  7519. }
  7520. },
  7521. { &hf_multislot_capability_gprs_extended_dynamic_allocation_capability,
  7522. { "GPRS_Extended_Dynamic_Allocation_Capability", "gsm_rlcmac.ul.gprs_extended_dynamic_allocation_capability",
  7523. FT_UINT8, BASE_DEC, NULL, 0x0,
  7524. NULL, HFILL
  7525. }
  7526. },
  7527. { &hf_multislot_capability_sms_value,
  7528. { "SMS_VALUE", "gsm_rlcmac.ul.sms_value",
  7529. FT_UINT8, BASE_DEC, NULL, 0x0,
  7530. NULL, HFILL
  7531. }
  7532. },
  7533. { &hf_multislot_capability_sm_value,
  7534. { "SM_VALUE", "gsm_rlcmac.ul.sm_value",
  7535. FT_UINT8, BASE_DEC, NULL, 0x0,
  7536. NULL, HFILL
  7537. }
  7538. },
  7539. { &hf_multislot_capability_ecsd_multislot_class,
  7540. { "ECSD_multislot_class", "gsm_rlcmac.ul.ecsd_multislot_class",
  7541. FT_UINT8, BASE_DEC, NULL, 0x0,
  7542. NULL, HFILL
  7543. }
  7544. },
  7545. { &hf_multislot_capability_egprs_multislot_class,
  7546. { "EGPRS_multislot_class", "gsm_rlcmac.ul.egprs_multislot_class",
  7547. FT_UINT8, BASE_DEC, NULL, 0x0,
  7548. NULL, HFILL
  7549. }
  7550. },
  7551. { &hf_multislot_capability_egprs_extended_dynamic_allocation_capability,
  7552. { "EGPRS_Extended_Dynamic_Allocation_Capability", "gsm_rlcmac.ul.egprs_extended_dynamic_allocation_capability",
  7553. FT_UINT8, BASE_DEC, NULL, 0x0,
  7554. NULL, HFILL
  7555. }
  7556. },
  7557. { &hf_multislot_capability_dtm_gprs_multislot_class,
  7558. { "DTM_GPRS_multislot_class", "gsm_rlcmac.ul.dtm_gprs_multislot_class",
  7559. FT_UINT8, BASE_DEC, NULL, 0x0,
  7560. NULL, HFILL
  7561. }
  7562. },
  7563. { &hf_multislot_capability_single_slot_dtm,
  7564. { "Single_Slot_DTM", "gsm_rlcmac.ul.single_slot_dtm",
  7565. FT_UINT8, BASE_DEC, NULL, 0x0,
  7566. NULL, HFILL
  7567. }
  7568. },
  7569. { &hf_content_rf_power_capability,
  7570. { "RF_Power_Capability", "gsm_rlcmac.ul.rf_power_capability",
  7571. FT_UINT8, BASE_DEC, NULL, 0x0,
  7572. NULL, HFILL
  7573. }
  7574. },
  7575. { &hf_content_a5_bits,
  7576. { "A5_bits", "gsm_rlcmac.ul.a5_bits",
  7577. FT_UINT8, BASE_DEC, NULL, 0x0,
  7578. NULL, HFILL
  7579. }
  7580. },
  7581. { &hf_content_es_ind,
  7582. { "ES_IND", "gsm_rlcmac.ul.es_ind",
  7583. FT_UINT8, BASE_DEC, NULL, 0x0,
  7584. NULL, HFILL
  7585. }
  7586. },
  7587. { &hf_content_ps,
  7588. { "PS", "gsm_rlcmac.ul.ps",
  7589. FT_UINT8, BASE_DEC, NULL, 0x0,
  7590. NULL, HFILL
  7591. }
  7592. },
  7593. { &hf_content_vgcs,
  7594. { "VGCS", "gsm_rlcmac.ul.vgcs",
  7595. FT_UINT8, BASE_DEC, NULL, 0x0,
  7596. NULL, HFILL
  7597. }
  7598. },
  7599. { &hf_content_vbs,
  7600. { "VBS", "gsm_rlcmac.ul.vbs",
  7601. FT_UINT8, BASE_DEC, NULL, 0x0,
  7602. NULL, HFILL
  7603. }
  7604. },
  7605. { &hf_content_eight_psk_power_capability,
  7606. { "Eight_PSK_Power_Capability", "gsm_rlcmac.ul.eight_psk_power_capability",
  7607. FT_UINT8, BASE_DEC, NULL, 0x0,
  7608. NULL, HFILL
  7609. }
  7610. },
  7611. { &hf_content_compact_interference_measurement_capability,
  7612. { "COMPACT_Interference_Measurement_Capability", "gsm_rlcmac.ul.compact_interference_measurement_capability",
  7613. FT_UINT8, BASE_DEC, NULL, 0x0,
  7614. NULL, HFILL
  7615. }
  7616. },
  7617. { &hf_content_revision_level_indicator,
  7618. { "Revision_Level_Indicator", "gsm_rlcmac.ul.revision_level_indicator",
  7619. FT_UINT8, BASE_DEC, NULL, 0x0,
  7620. NULL, HFILL
  7621. }
  7622. },
  7623. { &hf_content_umts_fdd_radio_access_technology_capability,
  7624. { "UMTS_FDD_Radio_Access_Technology_Capability", "gsm_rlcmac.ul.umts_fdd_radio_access_technology_capability",
  7625. FT_UINT8, BASE_DEC, NULL, 0x0,
  7626. NULL, HFILL
  7627. }
  7628. },
  7629. { &hf_content_umts_384_tdd_radio_access_technology_capability,
  7630. { "UMTS_384_TDD_Radio_Access_Technology_Capability", "gsm_rlcmac.ul.umts_384_tdd_radio_access_technology_capability",
  7631. FT_UINT8, BASE_DEC, NULL, 0x0,
  7632. NULL, HFILL
  7633. }
  7634. },
  7635. { &hf_content_cdma2000_radio_access_technology_capability,
  7636. { "CDMA2000_Radio_Access_Technology_Capability", "gsm_rlcmac.ul.cdma2000_radio_access_technology_capability",
  7637. FT_UINT8, BASE_DEC, NULL, 0x0,
  7638. NULL, HFILL
  7639. }
  7640. },
  7641. { &hf_content_umts_128_tdd_radio_access_technology_capability,
  7642. { "UMTS_128_TDD_Radio_Access_Technology_Capability", "gsm_rlcmac.ul.umts_128_tdd_radio_access_technology_capability",
  7643. FT_UINT8, BASE_DEC, NULL, 0x0,
  7644. NULL, HFILL
  7645. }
  7646. },
  7647. { &hf_content_geran_feature_package_1,
  7648. { "GERAN_Feature_Package_1", "gsm_rlcmac.ul.geran_feature_package_1",
  7649. FT_UINT8, BASE_DEC, NULL, 0x0,
  7650. NULL, HFILL
  7651. }
  7652. },
  7653. { &hf_content_extended_dtm_gprs_multislot_class,
  7654. { "Extended_DTM_GPRS_multislot_class", "gsm_rlcmac.ul.extended_dtm_gprs_multislot_class",
  7655. FT_UINT8, BASE_DEC, NULL, 0x0,
  7656. NULL, HFILL
  7657. }
  7658. },
  7659. { &hf_content_extended_dtm_egprs_multislot_class,
  7660. { "Extended_DTM_EGPRS_multislot_class", "gsm_rlcmac.ul.extended_dtm_egprs_multislot_class",
  7661. FT_UINT8, BASE_DEC, NULL, 0x0,
  7662. NULL, HFILL
  7663. }
  7664. },
  7665. { &hf_content_modulation_based_multislot_class_support,
  7666. { "Modulation_based_multislot_class_support", "gsm_rlcmac.ul.modulation_based_multislot_class_support",
  7667. FT_UINT8, BASE_DEC, NULL, 0x0,
  7668. NULL, HFILL
  7669. }
  7670. },
  7671. { &hf_content_highmultislotcapability,
  7672. { "HighMultislotCapability", "gsm_rlcmac.ul.highmultislotcapability",
  7673. FT_UINT8, BASE_DEC, NULL, 0x0,
  7674. NULL, HFILL
  7675. }
  7676. },
  7677. { &hf_content_geran_lu_modecapability,
  7678. { "GERAN_lu_ModeCapability", "gsm_rlcmac.ul.geran_lu_modecapability",
  7679. FT_UINT8, BASE_DEC, NULL, 0x0,
  7680. NULL, HFILL
  7681. }
  7682. },
  7683. { &hf_content_gmsk_multislotpowerprofile,
  7684. { "GMSK_MultislotPowerProfile", "gsm_rlcmac.ul.gmsk_multislotpowerprofile",
  7685. FT_UINT8, BASE_DEC, NULL, 0x0,
  7686. NULL, HFILL
  7687. }
  7688. },
  7689. { &hf_content_eightpsk_multislotprofile,
  7690. { "EightPSK_MultislotProfile", "gsm_rlcmac.ul.eightpsk_multislotprofile",
  7691. FT_UINT8, BASE_DEC, NULL, 0x0,
  7692. NULL, HFILL
  7693. }
  7694. },
  7695. { &hf_content_multipletbf_capability,
  7696. { "MultipleTBF_Capability", "gsm_rlcmac.ul.multipletbf_capability",
  7697. FT_UINT8, BASE_DEC, NULL, 0x0,
  7698. NULL, HFILL
  7699. }
  7700. },
  7701. { &hf_content_downlinkadvancedreceiverperformance,
  7702. { "DownlinkAdvancedReceiverPerformance", "gsm_rlcmac.ul.downlinkadvancedreceiverperformance",
  7703. FT_UINT8, BASE_DEC, NULL, 0x0,
  7704. NULL, HFILL
  7705. }
  7706. },
  7707. { &hf_content_extendedrlc_mac_controlmessagesegmentionscapability,
  7708. { "ExtendedRLC_MAC_ControlMessageSegmentionsCapability", "gsm_rlcmac.ul.extendedrlc_mac_controlmessagesegmentionscapability",
  7709. FT_UINT8, BASE_DEC, NULL, 0x0,
  7710. NULL, HFILL
  7711. }
  7712. },
  7713. { &hf_content_dtm_enhancementscapability,
  7714. { "DTM_EnhancementsCapability", "gsm_rlcmac.ul.dtm_enhancementscapability",
  7715. FT_UINT8, BASE_DEC, NULL, 0x0,
  7716. NULL, HFILL
  7717. }
  7718. },
  7719. { &hf_content_dtm_gprs_highmultislotclass,
  7720. { "DTM_GPRS_HighMultislotClass", "gsm_rlcmac.ul.dtm_gprs_highmultislotclass",
  7721. FT_UINT8, BASE_DEC, NULL, 0x0,
  7722. NULL, HFILL
  7723. }
  7724. },
  7725. { &hf_content_ps_handovercapability,
  7726. { "PS_HandoverCapability", "gsm_rlcmac.ul.ps_handovercapability",
  7727. FT_UINT8, BASE_DEC, NULL, 0x0,
  7728. NULL, HFILL
  7729. }
  7730. },
  7731. { &hf_additional_accessechnologies_struct_t_access_technology_type,
  7732. { "Access_Technology_Type", "gsm_rlcmac.ul.access_technology_type",
  7733. FT_UINT8, BASE_DEC, NULL, 0x0,
  7734. NULL, HFILL
  7735. }
  7736. },
  7737. { &hf_additional_accessechnologies_struct_t_gmsk_power_class,
  7738. { "GMSK_Power_class", "gsm_rlcmac.ul.gmsk_power_class",
  7739. FT_UINT8, BASE_DEC, NULL, 0x0,
  7740. NULL, HFILL
  7741. }
  7742. },
  7743. { &hf_additional_accessechnologies_struct_t_eight_psk_power_class,
  7744. { "Eight_PSK_Power_class", "gsm_rlcmac.ul.eight_psk_power_class",
  7745. FT_UINT8, BASE_DEC, NULL, 0x0,
  7746. NULL, HFILL
  7747. }
  7748. },
  7749. /**
  7750. { &hf_ms_radio_access_capability_iei,
  7751. { "IEI", "gsm_rlcmac.ul.iei",
  7752. FT_UINT8, BASE_DEC, NULL, 0x0,
  7753. NULL, HFILL
  7754. }
  7755. },
  7756. { &hf_ms_radio_access_capability_length,
  7757. { "Length", "gsm_rlcmac.ul.length",
  7758. FT_UINT8, BASE_DEC, NULL, 0x0,
  7759. NULL, HFILL
  7760. }
  7761. },
  7762. **/
  7763. /* < MS Classmark 3 IE > */
  7764. { &hf_arc_a5_bits,
  7765. { "A5_Bits", "gsm_rlcmac.ul.a5_bits",
  7766. FT_UINT8, BASE_DEC, NULL, 0x0,
  7767. NULL, HFILL
  7768. }
  7769. },
  7770. { &hf_arc_arc2_spare,
  7771. { "Arc2_Spare", "gsm_rlcmac.ul.arc2_spare",
  7772. FT_UINT8, BASE_DEC, NULL, 0x0,
  7773. NULL, HFILL
  7774. }
  7775. },
  7776. { &hf_arc_arc1,
  7777. { "Arc1", "gsm_rlcmac.ul.arc1",
  7778. FT_UINT8, BASE_DEC, NULL, 0x0,
  7779. NULL, HFILL
  7780. }
  7781. },
  7782. { &hf_multiband_a5_bits,
  7783. { "A5 Bits", "gsm_rlcmac.ul.multiband_a5_bits",
  7784. FT_UINT8, BASE_DEC, NULL, 0x0,
  7785. NULL, HFILL
  7786. }
  7787. },
  7788. { &hf_edge_rf_pwr_edge_rf_pwrcap1,
  7789. { "EDGE_RF_PwrCap1", "gsm_rlcmac.ul.edge_rf_pwrcap1",
  7790. FT_UINT8, BASE_DEC, NULL, 0x0,
  7791. NULL, HFILL
  7792. }
  7793. },
  7794. { &hf_edge_rf_pwr_edge_rf_pwrcap2,
  7795. { "EDGE_RF_PwrCap2", "gsm_rlcmac.ul.edge_rf_pwrcap2",
  7796. FT_UINT8, BASE_DEC, NULL, 0x0,
  7797. NULL, HFILL
  7798. }
  7799. },
  7800. { &hf_ms_class3_unpacked_spare1,
  7801. { "Spare1", "gsm_rlcmac.ul.ms_class3_unpacked_spare1",
  7802. FT_UINT8, BASE_DEC, NULL, 0x0,
  7803. NULL, HFILL
  7804. }
  7805. },
  7806. { &hf_ms_class3_unpacked_r_gsm_arc,
  7807. { "R_GSM_Arc", "gsm_rlcmac.ul.ms_class3_unpacked_r_gsm_arc",
  7808. FT_UINT8, BASE_DEC, NULL, 0x0,
  7809. NULL, HFILL
  7810. }
  7811. },
  7812. { &hf_ms_class3_unpacked_multislotclass,
  7813. { "MultiSlotClass", "gsm_rlcmac.ul.ms_class3_unpacked_multislotclass",
  7814. FT_UINT8, BASE_DEC, NULL, 0x0,
  7815. NULL, HFILL
  7816. }
  7817. },
  7818. { &hf_ms_class3_unpacked_ucs2,
  7819. { "UCS2", "gsm_rlcmac.ul.ms_class3_unpacked_ucs2",
  7820. FT_UINT8, BASE_DEC, NULL, 0x0,
  7821. NULL, HFILL
  7822. }
  7823. },
  7824. { &hf_ms_class3_unpacked_extendedmeasurementcapability,
  7825. { "ExtendedMeasurementCapability", "gsm_rlcmac.ul.ms_class3_unpacked_extendedmeasurementcapability",
  7826. FT_UINT8, BASE_DEC, NULL, 0x0,
  7827. NULL, HFILL
  7828. }
  7829. },
  7830. { &hf_ms_class3_unpacked_sms_value,
  7831. { "SMS_VALUE", "gsm_rlcmac.ul.ms_class3_unpacked_sms_value",
  7832. FT_UINT8, BASE_DEC, NULL, 0x0,
  7833. NULL, HFILL
  7834. }
  7835. },
  7836. { &hf_ms_class3_unpacked_sm_value,
  7837. { "SM_VALUE", "gsm_rlcmac.ul.ms_class3_unpacked_sm_value",
  7838. FT_UINT8, BASE_DEC, NULL, 0x0,
  7839. NULL, HFILL
  7840. }
  7841. },
  7842. { &hf_ms_class3_unpacked_ms_positioningmethod,
  7843. { "MS_PositioningMethod", "gsm_rlcmac.ul.ms_class3_unpacked_ms_positioningmethod",
  7844. FT_UINT8, BASE_DEC, NULL, 0x0,
  7845. NULL, HFILL
  7846. }
  7847. },
  7848. { &hf_ms_class3_unpacked_edge_multislotclass,
  7849. { "EDGE_MultiSlotClass", "gsm_rlcmac.ul.ms_class3_unpacked_edge_multislotclass",
  7850. FT_UINT8, BASE_DEC, NULL, 0x0,
  7851. NULL, HFILL
  7852. }
  7853. },
  7854. { &hf_ms_class3_unpacked_modulationcapability,
  7855. { "ModulationCapability", "gsm_rlcmac.ul.ms_class3_unpacked_modulationcapability",
  7856. FT_UINT8, BASE_DEC, NULL, 0x0,
  7857. NULL, HFILL
  7858. }
  7859. },
  7860. { &hf_ms_class3_unpacked_gsm400_bands,
  7861. { "GSM400_Bands", "gsm_rlcmac.ul.ms_class3_unpacked_gsm400_bands",
  7862. FT_UINT8, BASE_DEC, NULL, 0x0,
  7863. NULL, HFILL
  7864. }
  7865. },
  7866. { &hf_ms_class3_unpacked_gsm400_arc,
  7867. { "GSM400_Arc", "gsm_rlcmac.ul.ms_class3_unpacked_gsm400_arc",
  7868. FT_UINT8, BASE_DEC, NULL, 0x0,
  7869. NULL, HFILL
  7870. }
  7871. },
  7872. { &hf_ms_class3_unpacked_gsm850_arc,
  7873. { "GSM850_Arc", "gsm_rlcmac.ul.ms_class3_unpacked_gsm850_arc",
  7874. FT_UINT8, BASE_DEC, NULL, 0x0,
  7875. NULL, HFILL
  7876. }
  7877. },
  7878. { &hf_ms_class3_unpacked_pcs1900_arc,
  7879. { "PCS1900_Arc", "gsm_rlcmac.ul.ms_class3_unpacked_pcs1900_arc",
  7880. FT_UINT8, BASE_DEC, NULL, 0x0,
  7881. NULL, HFILL
  7882. }
  7883. },
  7884. { &hf_ms_class3_unpacked_umts_fdd_radio_access_technology_capability,
  7885. { "UMTS_FDD_Radio_Access_Technology_Capability", "gsm_rlcmac.ul.ms_class3_unpacked_umts_fdd_radio_access_technology_capability",
  7886. FT_UINT8, BASE_DEC, NULL, 0x0,
  7887. NULL, HFILL
  7888. }
  7889. },
  7890. { &hf_ms_class3_unpacked_umts_384_tdd_radio_access_technology_capability,
  7891. { "UMTS_384_TDD_Radio_Access_Technology_Capability", "gsm_rlcmac.ul.ms_class3_unpacked_umts_384_tdd_radio_access_technology_capability",
  7892. FT_UINT8, BASE_DEC, NULL, 0x0,
  7893. NULL, HFILL
  7894. }
  7895. },
  7896. { &hf_ms_class3_unpacked_cdma2000_radio_access_technology_capability,
  7897. { "CDMA2000_Radio_Access_Technology_Capability", "gsm_rlcmac.ul.ms_class3_unpacked_cdma2000_radio_access_technology_capability",
  7898. FT_UINT8, BASE_DEC, NULL, 0x0,
  7899. NULL, HFILL
  7900. }
  7901. },
  7902. { &hf_ms_class3_unpacked_dtm_gprs_multislot_class,
  7903. { "DTM_GPRS_multislot_class", "gsm_rlcmac.ul.ms_class3_unpacked_dtm_gprs_multislot_class",
  7904. FT_UINT8, BASE_DEC, NULL, 0x0,
  7905. NULL, HFILL
  7906. }
  7907. },
  7908. { &hf_ms_class3_unpacked_single_slot_dtm,
  7909. { "Single_Slot_DTM", "gsm_rlcmac.ul.ms_class3_unpacked_single_slot_dtm",
  7910. FT_UINT8, BASE_DEC, NULL, 0x0,
  7911. NULL, HFILL
  7912. }
  7913. },
  7914. { &hf_ms_class3_unpacked_gsm_band,
  7915. { "GSM_Band", "gsm_rlcmac.ul.ms_class3_unpacked_gsm_band",
  7916. FT_UINT8, BASE_DEC, NULL, 0x0,
  7917. NULL, HFILL
  7918. }
  7919. },
  7920. { &hf_ms_class3_unpacked_gsm_700_associated_radio_capability,
  7921. { "GSM_700_Associated_Radio_Capability", "gsm_rlcmac.ul.ms_class3_unpacked_gsm_700_associated_radio_capability",
  7922. FT_UINT8, BASE_DEC, NULL, 0x0,
  7923. NULL, HFILL
  7924. }
  7925. },
  7926. { &hf_ms_class3_unpacked_umts_128_tdd_radio_access_technology_capability,
  7927. { "UMTS_128_TDD_Radio_Access_Technology_Capability", "gsm_rlcmac.ul.ms_class3_unpacked_umts_128_tdd_radio_access_technology_capability",
  7928. FT_UINT8, BASE_DEC, NULL, 0x0,
  7929. NULL, HFILL
  7930. }
  7931. },
  7932. { &hf_ms_class3_unpacked_geran_feature_package_1,
  7933. { "GERAN_Feature_Package_1", "gsm_rlcmac.ul.ms_class3_unpacked_geran_feature_package_1",
  7934. FT_UINT8, BASE_DEC, NULL, 0x0,
  7935. NULL, HFILL
  7936. }
  7937. },
  7938. { &hf_ms_class3_unpacked_extended_dtm_gprs_multislot_class,
  7939. { "Extended_DTM_GPRS_multislot_class", "gsm_rlcmac.ul.ms_class3_unpacked_extended_dtm_gprs_multislot_class",
  7940. FT_UINT8, BASE_DEC, NULL, 0x0,
  7941. NULL, HFILL
  7942. }
  7943. },
  7944. { &hf_ms_class3_unpacked_extended_dtm_egprs_multislot_class,
  7945. { "Extended_DTM_EGPRS_multislot_class", "gsm_rlcmac.ul.ms_class3_unpacked_extended_dtm_egprs_multislot_class",
  7946. FT_UINT8, BASE_DEC, NULL, 0x0,
  7947. NULL, HFILL
  7948. }
  7949. },
  7950. { &hf_ms_class3_unpacked_highmultislotcapability,
  7951. { "HighMultislotCapability", "gsm_rlcmac.ul.ms_class3_unpacked_highmultislotcapability",
  7952. FT_UINT8, BASE_DEC, NULL, 0x0,
  7953. NULL, HFILL
  7954. }
  7955. },
  7956. { &hf_ms_class3_unpacked_geran_lu_modecapability,
  7957. { "GERAN_lu_ModeCapability", "gsm_rlcmac.ul.ms_class3_unpacked_geran_lu_modecapability",
  7958. FT_UINT8, BASE_DEC, NULL, 0x0,
  7959. NULL, HFILL
  7960. }
  7961. },
  7962. { &hf_ms_class3_unpacked_geran_featurepackage_2,
  7963. { "GERAN_FeaturePackage_2", "gsm_rlcmac.ul.ms_class3_unpacked_geran_featurepackage_2",
  7964. FT_UINT8, BASE_DEC, NULL, 0x0,
  7965. NULL, HFILL
  7966. }
  7967. },
  7968. { &hf_ms_class3_unpacked_gmsk_multislotpowerprofile,
  7969. { "GMSK_MultislotPowerProfile", "gsm_rlcmac.ul.ms_class3_unpacked_gmsk_multislotpowerprofile",
  7970. FT_UINT8, BASE_DEC, NULL, 0x0,
  7971. NULL, HFILL
  7972. }
  7973. },
  7974. { &hf_ms_class3_unpacked_eightpsk_multislotprofile,
  7975. { "EightPSK_MultislotProfile", "gsm_rlcmac.ul.ms_class3_unpacked_eightpsk_multislotprofile",
  7976. FT_UINT8, BASE_DEC, NULL, 0x0,
  7977. NULL, HFILL
  7978. }
  7979. },
  7980. { &hf_ms_class3_unpacked_tgsm_400_bandssupported,
  7981. { "TGSM_400_BandsSupported", "gsm_rlcmac.ul.ms_class3_unpacked_tgsm_400_bandssupported",
  7982. FT_UINT8, BASE_DEC, NULL, 0x0,
  7983. NULL, HFILL
  7984. }
  7985. },
  7986. { &hf_ms_class3_unpacked_tgsm_400_associatedradiocapability,
  7987. { "TGSM_400_AssociatedRadioCapability", "gsm_rlcmac.ul.ms_class3_unpacked_tgsm_400_associatedradiocapability",
  7988. FT_UINT8, BASE_DEC, NULL, 0x0,
  7989. NULL, HFILL
  7990. }
  7991. },
  7992. { &hf_ms_class3_unpacked_tgsm_900_associatedradiocapability,
  7993. { "TGSM_900_AssociatedRadioCapability", "gsm_rlcmac.ul.ms_class3_unpacked_tgsm_900_associatedradiocapability",
  7994. FT_UINT8, BASE_DEC, NULL, 0x0,
  7995. NULL, HFILL
  7996. }
  7997. },
  7998. { &hf_ms_class3_unpacked_downlinkadvancedreceiverperformance,
  7999. { "DownlinkAdvancedReceiverPerformance", "gsm_rlcmac.ul.ms_class3_unpacked_downlinkadvancedreceiverperformance",
  8000. FT_UINT8, BASE_DEC, NULL, 0x0,
  8001. NULL, HFILL
  8002. }
  8003. },
  8004. { &hf_ms_class3_unpacked_dtm_enhancementscapability,
  8005. { "DTM_EnhancementsCapability", "gsm_rlcmac.ul.ms_class3_unpacked_dtm_enhancementscapability",
  8006. FT_UINT8, BASE_DEC, NULL, 0x0,
  8007. NULL, HFILL
  8008. }
  8009. },
  8010. { &hf_ms_class3_unpacked_dtm_gprs_highmultislotclass,
  8011. { "DTM_GPRS_HighMultislotClass", "gsm_rlcmac.ul.ms_class3_unpacked_dtm_gprs_highmultislotclass",
  8012. FT_UINT8, BASE_DEC, NULL, 0x0,
  8013. NULL, HFILL
  8014. }
  8015. },
  8016. { &hf_ms_class3_unpacked_offsetrequired,
  8017. { "OffsetRequired", "gsm_rlcmac.ul.ms_class3_unpacked_offsetrequired",
  8018. FT_UINT8, BASE_DEC, NULL, 0x0,
  8019. NULL, HFILL
  8020. }
  8021. },
  8022. { &hf_ms_class3_unpacked_repeatedsacch_capability,
  8023. { "RepeatedSACCH_Capability", "gsm_rlcmac.ul.ms_class3_unpacked_repeatedsacch_capability",
  8024. FT_UINT8, BASE_DEC, NULL, 0x0,
  8025. NULL, HFILL
  8026. }
  8027. },
  8028. { &hf_ms_class3_unpacked_spare2,
  8029. { "Spare2", "gsm_rlcmac.ul.ms_class3_unpacked_spare2",
  8030. FT_UINT8, BASE_DEC, NULL, 0x0,
  8031. NULL, HFILL
  8032. }
  8033. },
  8034. { &hf_channel_request_description_peak_throughput_class,
  8035. { "PEAK_THROUGHPUT_CLASS", "gsm_rlcmac.ul.channel_request_description_peak_throughput_class",
  8036. FT_UINT8, BASE_DEC, NULL, 0x0,
  8037. NULL, HFILL
  8038. }
  8039. },
  8040. { &hf_channel_request_description_radio_priority,
  8041. { "RADIO_PRIORITY", "gsm_rlcmac.ul.channel_request_description_radio_priority",
  8042. FT_UINT8, BASE_DEC, NULL, 0x0,
  8043. NULL, HFILL
  8044. }
  8045. },
  8046. { &hf_channel_request_description_llc_pdu_type,
  8047. { "LLC_PDU_TYPE", "gsm_rlcmac.ul.channel_request_description_llc_pdu_type",
  8048. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  8049. NULL, HFILL
  8050. }
  8051. },
  8052. { &hf_channel_request_description_rlc_octet_count,
  8053. { "RLC_OCTET_COUNT", "gsm_rlcmac.ul.channel_request_description_rlc_octet_count",
  8054. FT_UINT8, BASE_DEC, NULL, 0x0,
  8055. NULL, HFILL
  8056. }
  8057. },
  8058. /* < Packet Resource Request message content > */
  8059. { &hf_bep_measurementreport_mean_bep_gmsk,
  8060. { "MEAN_BEP_GMSK", "gsm_rlcmac.ul.prr_mean_bep_gmsk",
  8061. FT_UINT8, BASE_DEC, NULL, 0x0,
  8062. NULL, HFILL
  8063. }
  8064. },
  8065. { &hf_bep_measurementreport_mean_bep_8psk,
  8066. { "MEAN_BEP_8PSK", "gsm_rlcmac.ul.prr_mean_bep_8psk",
  8067. FT_UINT8, BASE_DEC, NULL, 0x0,
  8068. NULL, HFILL
  8069. }
  8070. },
  8071. { &hf_interferencemeasurementreport_i_level,
  8072. { "I_LEVEL", "gsm_rlcmac.ul.prr_i_level",
  8073. FT_UINT8, BASE_DEC, NULL, 0x0,
  8074. NULL, HFILL
  8075. }
  8076. },
  8077. { &hf_egprs_bep_linkqualitymeasurements_mean_bep_gmsk,
  8078. { "MEAN_BEP_GMSK", "gsm_rlcmac.ul.prr_mean_bep_gmsk",
  8079. FT_UINT8, BASE_DEC, NULL, 0x0,
  8080. NULL, HFILL
  8081. }
  8082. },
  8083. { &hf_egprs_bep_linkqualitymeasurements_cv_bep_gmsk,
  8084. { "CV_BEP_GMSK", "gsm_rlcmac.ul.prr_cv_bep_gmsk",
  8085. FT_UINT8, BASE_DEC, NULL, 0x0,
  8086. NULL, HFILL
  8087. }
  8088. },
  8089. { &hf_egprs_bep_linkqualitymeasurements_mean_bep_8psk,
  8090. { "MEAN_BEP_8PSK", "gsm_rlcmac.ul.prr_mean_bep_8psk",
  8091. FT_UINT8, BASE_DEC, NULL, 0x0,
  8092. NULL, HFILL
  8093. }
  8094. },
  8095. { &hf_egprs_bep_linkqualitymeasurements_cv_bep_8psk,
  8096. { "CV_BEP_8PSK", "gsm_rlcmac.ul.prr_cv_bep_8psk",
  8097. FT_UINT8, BASE_DEC, NULL, 0x0,
  8098. NULL, HFILL
  8099. }
  8100. },
  8101. { &hf_prr_additionsr99_ms_rac_additionalinformationavailable,
  8102. { "MS_RAC_AdditionalInformationAvailable", "gsm_rlcmac.ul.prr_ms_rac_additionalinformationavailable",
  8103. FT_UINT8, BASE_DEC, NULL, 0x0,
  8104. NULL, HFILL
  8105. }
  8106. },
  8107. { &hf_prr_additionsr99_retransmissionofprr,
  8108. { "RetransmissionOfPRR", "gsm_rlcmac.ul.prr_retransmissionofprr",
  8109. FT_UINT8, BASE_DEC, NULL, 0x0,
  8110. NULL, HFILL
  8111. }
  8112. },
  8113. { &hf_ul_mac_header_spare,
  8114. { "spare", "gsm_rlcmac.ul.mac_spare",
  8115. FT_UINT8, BASE_DEC, NULL, 0x0,
  8116. NULL, HFILL
  8117. }
  8118. },
  8119. { &hf_packet_resource_request_access_type,
  8120. { "ACCESS_TYPE", "gsm_rlcmac.ul.prr_access_type",
  8121. FT_UINT8, BASE_DEC, NULL, 0x0,
  8122. NULL, HFILL
  8123. }
  8124. },
  8125. { &hf_packet_resource_request_change_mark,
  8126. { "CHANGE_MARK", "gsm_rlcmac.ul.prr_change_mark",
  8127. FT_UINT8, BASE_DEC, NULL, 0x0,
  8128. NULL, HFILL
  8129. }
  8130. },
  8131. { &hf_packet_resource_request_c_value,
  8132. { "C_VALUE", "gsm_rlcmac.ul.prr_c_value",
  8133. FT_UINT8, BASE_DEC, NULL, 0x0,
  8134. NULL, HFILL
  8135. }
  8136. },
  8137. { &hf_packet_resource_request_sign_var,
  8138. { "SIGN_VAR", "gsm_rlcmac.ul.prr_sign_var",
  8139. FT_UINT8, BASE_DEC, NULL, 0x0,
  8140. NULL, HFILL
  8141. }
  8142. },
  8143. /* < Packet Mobile TBF Status message content > */
  8144. { &hf_packet_mobile_tbf_status_tbf_cause,
  8145. { "TBF_CAUSE", "gsm_rlcmac.ul.pmts_tbf_cause",
  8146. FT_UINT8, BASE_DEC, NULL, 0x0,
  8147. NULL, HFILL
  8148. }
  8149. },
  8150. /* < Packet PSI Status message content > */
  8151. { &hf_psi_message_psix_change_mark,
  8152. { "PSIX_CHANGE_MARK", "gsm_rlcmac.ul.pps_psix_change_mark",
  8153. FT_UINT8, BASE_DEC, NULL, 0x0,
  8154. NULL, HFILL
  8155. }
  8156. },
  8157. { &hf_additional_msg_type,
  8158. { "ADDITIONAL_MSG_TYPE", "gsm_rlcmac.ul.additional_msg_type",
  8159. FT_UINT8, BASE_DEC, NULL, 0x0,
  8160. NULL, HFILL
  8161. }
  8162. },
  8163. { &hf_packet_psi_status_pbcch_change_mark,
  8164. { "PBCCH_CHANGE_MARK", "gsm_rlcmac.ul.pps_pbcch_change_mark",
  8165. FT_UINT8, BASE_DEC, NULL, 0x0,
  8166. NULL, HFILL
  8167. }
  8168. },
  8169. /* < Packet SI Status message content > */
  8170. { &hf_si_message_mess_rec,
  8171. { "MESS_REC", "gsm_rlcmac.ul.si_message_mess_rec",
  8172. FT_UINT8, BASE_DEC, NULL, 0x0,
  8173. NULL, HFILL
  8174. }
  8175. },
  8176. /* < Packet Downlink Ack/Nack message content > */
  8177. /* < EGPRS Packet Downlink Ack/Nack message content > */
  8178. { &hf_egprs_channelqualityreport_c_value,
  8179. { "C_VALUE", "gsm_rlcmac.ul.epdan_c_value",
  8180. FT_UINT8, BASE_DEC, NULL, 0x0,
  8181. NULL, HFILL
  8182. }
  8183. },
  8184. { &hf_egprs_pd_acknack_ms_out_of_memory,
  8185. { "MS_OUT_OF_MEMORY", "gsm_rlcmac.ul.epdan_ms_out_of_memory",
  8186. FT_UINT8, BASE_DEC, NULL, 0x0,
  8187. NULL, HFILL
  8188. }
  8189. },
  8190. { &hf_fddarget_cell_t_fdd_arfcn,
  8191. { "FDD_ARFCN", "gsm_rlcmac.ul.epdan_fdd_arfcn",
  8192. FT_UINT8, BASE_DEC, NULL, 0x0,
  8193. NULL, HFILL
  8194. }
  8195. },
  8196. { &hf_fddarget_cell_t_diversity,
  8197. { "DIVERSITY", "gsm_rlcmac.ul.epdan_diversity",
  8198. FT_UINT8, BASE_DEC, NULL, 0x0,
  8199. NULL, HFILL
  8200. }
  8201. },
  8202. { &hf_fddarget_cell_t_bandwith_fdd,
  8203. { "BANDWITH_FDD", "gsm_rlcmac.ul.epdan_bandwith_fdd",
  8204. FT_UINT8, BASE_DEC, NULL, 0x0,
  8205. NULL, HFILL
  8206. }
  8207. },
  8208. { &hf_fddarget_cell_t_scrambling_code,
  8209. { "SCRAMBLING_CODE", "gsm_rlcmac.ul.epdan_scrambling_code",
  8210. FT_UINT8, BASE_DEC, NULL, 0x0,
  8211. NULL, HFILL
  8212. }
  8213. },
  8214. { &hf_tddarget_cell_t_tdd_arfcn,
  8215. { "TDD-ARFCN", "gsm_rlcmac.ul.epdan_tdd_arfcn",
  8216. FT_UINT8, BASE_DEC, NULL, 0x0,
  8217. NULL, HFILL
  8218. }
  8219. },
  8220. { &hf_tddarget_cell_t_diversity,
  8221. { "Diversity TDD", "gsm_rlcmac.ul.epdan_diversity_tdd",
  8222. FT_UINT8, BASE_DEC, NULL, 0x0,
  8223. NULL, HFILL
  8224. }
  8225. },
  8226. { &hf_tddarget_cell_t_bandwith_tdd,
  8227. { "Bandwidth_TDD", "gsm_rlcmac.ul.epdan_bandwidth_tdd",
  8228. FT_UINT8, BASE_DEC, NULL, 0x0,
  8229. NULL, HFILL
  8230. }
  8231. },
  8232. { &hf_tddarget_cell_t_cell_parameter,
  8233. { "Cell Parameter", "gsm_rlcmac.ul.epdan_cell_param",
  8234. FT_UINT8, BASE_DEC, NULL, 0x0,
  8235. NULL, HFILL
  8236. }
  8237. },
  8238. { &hf_tddarget_cell_t_sync_case_tstd,
  8239. { "Sync Case TSTD", "gsm_rlcmac.ul.epdan_sync_case_tstd",
  8240. FT_UINT8, BASE_DEC, NULL, 0x0,
  8241. NULL, HFILL
  8242. }
  8243. },
  8244. /* < Packet Cell Change Failure message content > */
  8245. { &hf_packet_cell_change_failure_bsic,
  8246. { "BSIC", "gsm_rlcmac.ul.pccf_bsic",
  8247. FT_UINT8, BASE_DEC, NULL, 0x0,
  8248. NULL, HFILL
  8249. }
  8250. },
  8251. { &hf_packet_cell_change_failure_cause,
  8252. { "CAUSE", "gsm_rlcmac.ul.pccf_cause",
  8253. FT_UINT8, BASE_DEC, VALS(cell_change_failure_cause_vals), 0x0,
  8254. NULL, HFILL
  8255. }
  8256. },
  8257. { &hf_utran_csg_target_cell_ci,
  8258. { "UTRAN_CI", "gsm_rlcmac.ul.utran_csg_target_cell_ci",
  8259. FT_UINT32, BASE_DEC, NULL, 0x0,
  8260. NULL, HFILL
  8261. }
  8262. },
  8263. { &hf_eutran_csg_target_cell_ci,
  8264. { "EUTRAN_CI", "gsm_rlcmac.ul.eutran_csg_target_cell_ci",
  8265. FT_UINT32, BASE_DEC, NULL, 0x0,
  8266. NULL, HFILL
  8267. }
  8268. },
  8269. { &hf_eutran_csg_target_cell_tac,
  8270. { "Tracking Area Code", "gsm_rlcmac.ul.eutran_csg_target_cell_tac",
  8271. FT_UINT16, BASE_DEC, NULL, 0x0,
  8272. NULL, HFILL
  8273. }
  8274. },
  8275. /* < Packet Uplink Ack/Nack message content > */
  8276. { &hf_pu_acknack_gprs_additionsr99_tbf_est,
  8277. { "TBF_EST", "gsm_rlcmac.ul.puan_tbf_est",
  8278. FT_UINT8, BASE_DEC, NULL, 0x0,
  8279. NULL, HFILL
  8280. }
  8281. },
  8282. { &hf_pu_acknack_gprs_fixedallocationdummy,
  8283. { "FixedAllocationDummy", "gsm_rlcmac.ul.puan_fixedallocationdummy",
  8284. FT_UINT8, BASE_DEC, NULL, 0x0,
  8285. NULL, HFILL
  8286. }
  8287. },
  8288. { &hf_pu_acknack_egprs_00_pre_emptive_transmission,
  8289. { "PRE_EMPTIVE_TRANSMISSION", "gsm_rlcmac.ul.puan_pre_emptive_transmission",
  8290. FT_UINT8, BASE_DEC, NULL, 0x0,
  8291. NULL, HFILL
  8292. }
  8293. },
  8294. { &hf_pu_acknack_egprs_00_prr_retransmission_request,
  8295. { "PRR_RETRANSMISSION_REQUEST", "gsm_rlcmac.ul.puan_prr_retransmission_request",
  8296. FT_UINT8, BASE_DEC, NULL, 0x0,
  8297. NULL, HFILL
  8298. }
  8299. },
  8300. { &hf_pu_acknack_egprs_00_arac_retransmission_request,
  8301. { "ARAC_RETRANSMISSION_REQUEST", "gsm_rlcmac.ul.puan_arac_retransmission_request",
  8302. FT_UINT8, BASE_DEC, NULL, 0x0,
  8303. NULL, HFILL
  8304. }
  8305. },
  8306. { &hf_pu_acknack_egprs_00_tbf_est,
  8307. { "TBF_EST", "gsm_rlcmac.ul.puan_tbf_est",
  8308. FT_UINT8, BASE_DEC, NULL, 0x0,
  8309. NULL, HFILL
  8310. }
  8311. },
  8312. { &hf_packet_extended_timing_advance,
  8313. { "Packet_Extended_Timing_Advance", "gsm_rlcmac.ul.packet_extended_timing_advance",
  8314. FT_UINT8, BASE_DEC, NULL, 0x0,
  8315. NULL, HFILL
  8316. }
  8317. },
  8318. /* < Packet Uplink Assignment message content > */
  8319. { &hf_change_mark_change_mark_1,
  8320. { "CHANGE_MARK_1", "gsm_rlcmac.dl.pua_change_mark_1",
  8321. FT_UINT8, BASE_DEC, NULL, 0x0,
  8322. NULL, HFILL
  8323. }
  8324. },
  8325. { &hf_change_mark_change_mark_2,
  8326. { "CHANGE_MARK_2", "gsm_rlcmac.dl.pua_change_mark_2",
  8327. FT_UINT8, BASE_DEC, NULL, 0x0,
  8328. NULL, HFILL
  8329. }
  8330. },
  8331. { &hf_indirect_encoding_ma_number,
  8332. { "MA_NUMBER", "gsm_rlcmac.dl.pua_ma_number",
  8333. FT_UINT8, BASE_DEC, NULL, 0x0,
  8334. NULL, HFILL
  8335. }
  8336. },
  8337. { &hf_packet_request_reference_random_access_information,
  8338. { "RANDOM_ACCESS_INFORMATION", "gsm_rlcmac.dl.pua_random_access_information",
  8339. FT_UINT8, BASE_DEC, NULL, 0x0,
  8340. NULL, HFILL
  8341. }
  8342. },
  8343. { &hf_extended_dynamic_allocation,
  8344. { "Extended_Dynamic_Allocation", "gsm_rlcmac.dl.extended_dynamic_allocation",
  8345. FT_UINT8, BASE_DEC, NULL, 0x0,
  8346. NULL, HFILL
  8347. }
  8348. },
  8349. { &hf_rlc_data_blocks_granted,
  8350. { "RLC_DATA_BLOCKS_GRANTED", "gsm_rlcmac.dl.rlc_data_blocks_granted",
  8351. FT_UINT8, BASE_DEC, NULL, 0x0,
  8352. NULL, HFILL
  8353. }
  8354. },
  8355. { &hf_single_block_allocation_timeslot_number,
  8356. { "TIMESLOT_NUMBER", "gsm_rlcmac.dl.pua_timeslot_number",
  8357. FT_UINT8, BASE_DEC, NULL, 0x0,
  8358. NULL, HFILL
  8359. }
  8360. },
  8361. { &hf_dtm_single_block_allocation_timeslot_number,
  8362. { "TIMESLOT_NUMBER", "gsm_rlcmac.dl.pua_dtm_timeslot_number",
  8363. FT_UINT8, BASE_DEC, NULL, 0x0,
  8364. NULL, HFILL
  8365. }
  8366. },
  8367. { &hf_compact_reducedma_bitmaplength,
  8368. { "BitmapLength", "gsm_rlcmac.dl.pua_bitmaplength",
  8369. FT_UINT8, BASE_DEC, NULL, 0x0,
  8370. NULL, HFILL
  8371. }
  8372. },
  8373. { &hf_multiblock_allocation_timeslot_number,
  8374. { "TIMESLOT_NUMBER", "gsm_rlcmac.dl.pua_multiblock_timeslot_number",
  8375. FT_UINT8, BASE_DEC, NULL, 0x0,
  8376. NULL, HFILL
  8377. }
  8378. },
  8379. { &hf_pua_egprs_00_arac_retransmission_request,
  8380. { "ARAC_RETRANSMISSION_REQUEST", "gsm_rlcmac.dl.pua_egprs_00_arac_retransmission_request",
  8381. FT_UINT8, BASE_DEC, NULL, 0x0,
  8382. NULL, HFILL
  8383. }
  8384. },
  8385. /* < Packet Downlink Assignment message content > */
  8386. { &hf_measurement_mapping_struct_measurement_interval,
  8387. { "MEASUREMENT_INTERVAL", "gsm_rlcmac.dl.pda_measurement_interval",
  8388. FT_UINT8, BASE_DEC, NULL, 0x0,
  8389. NULL, HFILL
  8390. }
  8391. },
  8392. { &hf_measurement_mapping_struct_measurement_bitmap,
  8393. { "MEASUREMENT_BITMAP", "gsm_rlcmac.dl.pda_measurement_bitmap",
  8394. FT_UINT8, BASE_DEC, NULL, 0x0,
  8395. NULL, HFILL
  8396. }
  8397. },
  8398. { &hf_mac_mode,
  8399. { "MAC_MODE", "gsm_rlcmac.dl.mac_mode",
  8400. FT_UINT8, BASE_DEC, VALS(mac_mode_vals), 0x0,
  8401. NULL, HFILL
  8402. }
  8403. },
  8404. { &hf_control_ack,
  8405. { "CONTROL_ACK", "gsm_rlcmac.dl.control_ack",
  8406. FT_BOOLEAN, BASE_NONE, TFS(&control_ack_vals), 0x0,
  8407. NULL, HFILL
  8408. }
  8409. },
  8410. { &hf_dl_timeslot_allocation,
  8411. { "TIMESLOT_ALLOCATION", "gsm_rlcmac.dl.timeslot_allocation",
  8412. FT_UINT8, BASE_DEC, NULL, 0x0,
  8413. NULL, HFILL
  8414. }
  8415. },
  8416. { &hf_dtm_channel_request_description_dtm_pkt_est_cause,
  8417. { "DTM_Pkt_Est_Cause", "gsm_rlcmac.dl.pda_dtm_pkt_est_cause",
  8418. FT_UINT8, BASE_DEC, NULL, 0x0,
  8419. NULL, HFILL
  8420. }
  8421. },
  8422. /* < Packet Paging Request message content > */
  8423. { &hf_mobile_identity_length_of_mobile_identity_contents,
  8424. { "Length_of_Mobile_Identity_contents", "gsm_rlcmac.dl.ppr_length_of_mobile_identity_contents",
  8425. FT_UINT8, BASE_DEC, NULL, 0x0,
  8426. NULL, HFILL
  8427. }
  8428. },
  8429. { &hf_page_request_for_rr_conn_channel_needed,
  8430. { "CHANNEL_NEEDED", "gsm_rlcmac.dl.ppr_channel_needed",
  8431. FT_UINT8, BASE_DEC, NULL, 0x0,
  8432. NULL, HFILL
  8433. }
  8434. },
  8435. { &hf_page_request_for_rr_conn_emlpp_priority,
  8436. { "eMLPP_PRIORITY", "gsm_rlcmac.dl.ppr_emlpp_priority",
  8437. FT_UINT8, BASE_DEC, NULL, 0x0,
  8438. NULL, HFILL
  8439. }
  8440. },
  8441. { &hf_packet_pdch_release_timeslots_available,
  8442. { "TIMESLOTS_AVAILABLE", "gsm_rlcmac.dl.ppr_timeslots_available",
  8443. FT_UINT8, BASE_DEC, NULL, 0x0,
  8444. NULL, HFILL
  8445. }
  8446. },
  8447. /* < Packet Power Control/Timing Advance message content > */
  8448. /* < Packet Queueing Notification message content > */
  8449. /* < Packet Timeslot Reconfigure message content > */
  8450. /* < Packet PRACH Parameters message content > */
  8451. { &hf_prach_control_s,
  8452. { "S", "gsm_rlcmac.dl.prach_s",
  8453. FT_UINT8, BASE_DEC, NULL, 0x0,
  8454. NULL, HFILL
  8455. }
  8456. },
  8457. { &hf_prach_control_tx_int,
  8458. { "TX_INT", "gsm_rlcmac.dl.prach_tx_int",
  8459. FT_UINT8, BASE_DEC, NULL, 0x0,
  8460. NULL, HFILL
  8461. }
  8462. },
  8463. { &hf_hcs_priority_class,
  8464. { "PRIORITY_CLASS", "gsm_rlcmac.dl.hcs_priority_class",
  8465. FT_UINT8, BASE_DEC, NULL, 0x0,
  8466. NULL, HFILL
  8467. }
  8468. },
  8469. { &hf_hcs_hcs_thr,
  8470. { "HCS_THR", "gsm_rlcmac.dl.hcs_thr",
  8471. FT_UINT8, BASE_DEC, NULL, 0x0,
  8472. NULL, HFILL
  8473. }
  8474. },
  8475. { &hf_location_repeat_pbcch_location,
  8476. { "PBCCH_LOCATION", "gsm_rlcmac.dl.pbcch_location",
  8477. FT_UINT8, BASE_DEC, NULL, 0x0,
  8478. NULL, HFILL
  8479. }
  8480. },
  8481. { &hf_location_repeat_psi1_repeat_period,
  8482. { "PSI1_REPEAT_PERIOD", "gsm_rlcmac.dl.psi1_repeat_period",
  8483. FT_UINT8, BASE_DEC, VALS(gsm_rlcmac_val_plus_1_vals), 0x0,
  8484. NULL, HFILL
  8485. }
  8486. },
  8487. { &hf_si13_pbcch_location_si13_location,
  8488. { "SI13_LOCATION", "gsm_rlcmac.dl.si13_location",
  8489. FT_UINT8, BASE_DEC, NULL, 0x0,
  8490. NULL, HFILL
  8491. }
  8492. },
  8493. { &hf_cell_selection_bsic,
  8494. { "BSIC", "gsm_rlcmac.dl.cell_selection_bsic",
  8495. FT_UINT8, BASE_DEC, NULL, 0x0,
  8496. NULL, HFILL
  8497. }
  8498. },
  8499. { &hf_cell_bar_access_2,
  8500. { "CELL_BAR_ACCESS_2", "gsm_rlcmac.dl.cell_selection_cell_bar_access_2",
  8501. FT_UINT8, BASE_DEC, NULL, 0x0,
  8502. NULL, HFILL
  8503. }
  8504. },
  8505. { &hf_exc_acc,
  8506. { "EXC_ACC", "gsm_rlcmac.dl.exc_acc",
  8507. FT_UINT8, BASE_DEC, NULL, 0x0,
  8508. NULL, HFILL
  8509. }
  8510. },
  8511. { &hf_cell_selection_same_ra_as_serving_cell,
  8512. { "SAME_RA_AS_SERVING_CELL", "gsm_rlcmac.dl.cell_selection_same_ra_as_serving_cell",
  8513. FT_UINT8, BASE_DEC, NULL, 0x0,
  8514. NULL, HFILL
  8515. }
  8516. },
  8517. { &hf_cell_selection_gprs_rxlev_access_min,
  8518. { "GPRS_RXLEV_ACCESS_MIN", "gsm_rlcmac.dl.cell_selection_gprs_rxlev_access_min",
  8519. FT_UINT8, BASE_DEC, NULL, 0x0,
  8520. NULL, HFILL
  8521. }
  8522. },
  8523. { &hf_cell_selection_gprs_ms_txpwr_max_cch,
  8524. { "GPRS_MS_TXPWR_MAX_CCH", "gsm_rlcmac.dl.cell_selection_gprs_ms_txpwr_max_cch",
  8525. FT_UINT8, BASE_DEC, NULL, 0x0,
  8526. NULL, HFILL
  8527. }
  8528. },
  8529. { &hf_cell_selection_gprs_temporary_offset,
  8530. { "GPRS_TEMPORARY_OFFSET", "gsm_rlcmac.dl.cell_selection_gprs_temporary_offset",
  8531. FT_UINT8, BASE_DEC, NULL, 0x0,
  8532. NULL, HFILL
  8533. }
  8534. },
  8535. { &hf_cell_selection_gprs_penalty_time,
  8536. { "GPRS_PENALTY_TIME", "gsm_rlcmac.dl.cell_selection_gprs_penalty_time",
  8537. FT_UINT8, BASE_DEC, NULL, 0x0,
  8538. NULL, HFILL
  8539. }
  8540. },
  8541. { &hf_cell_selection_gprs_reselect_offset,
  8542. { "GPRS_RESELECT_OFFSET", "gsm_rlcmac.dl.cell_selection_gprs_reselect_offset",
  8543. FT_UINT8, BASE_DEC, NULL, 0x0,
  8544. NULL, HFILL
  8545. }
  8546. },
  8547. { &hf_neighbourcellparameters_start_frequency,
  8548. { "START_FREQUENCY", "gsm_rlcmac.dl.cell_selection_start_frequency",
  8549. FT_UINT8, BASE_DEC, NULL, 0x0,
  8550. NULL, HFILL
  8551. }
  8552. },
  8553. { &hf_neighbourcellparameters_nr_of_remaining_cells,
  8554. { "NR_OF_REMAINING_CELLS", "gsm_rlcmac.dl.cell_selection_nr_of_remaining_cells",
  8555. FT_UINT8, BASE_DEC, NULL, 0x0,
  8556. NULL, HFILL
  8557. }
  8558. },
  8559. { &hf_cell_selection_2_same_ra_as_serving_cell,
  8560. { "SAME_RA_AS_SERVING_CELL", "gsm_rlcmac.dl.cell_selection2_same_ra_as_serving_cell",
  8561. FT_UINT8, BASE_DEC, NULL, 0x0,
  8562. NULL, HFILL
  8563. }
  8564. },
  8565. { &hf_cell_selection_2_gprs_rxlev_access_min,
  8566. { "GPRS_RXLEV_ACCESS_MIN", "gsm_rlcmac.dl.cell_selection2_gprs_rxlev_access_min",
  8567. FT_UINT8, BASE_DEC, NULL, 0x0,
  8568. NULL, HFILL
  8569. }
  8570. },
  8571. { &hf_cell_selection_2_gprs_ms_txpwr_max_cch,
  8572. { "GPRS_MS_TXPWR_MAX_CCH", "gsm_rlcmac.dl.cell_selection2_gprs_ms_txpwr_max_cch",
  8573. FT_UINT8, BASE_DEC, NULL, 0x0,
  8574. NULL, HFILL
  8575. }
  8576. },
  8577. { &hf_cell_selection_2_gprs_temporary_offset,
  8578. { "GPRS_TEMPORARY_OFFSET", "gsm_rlcmac.dl.cell_selection2_gprs_temporary_offset",
  8579. FT_UINT8, BASE_DEC, NULL, 0x0,
  8580. NULL, HFILL
  8581. }
  8582. },
  8583. { &hf_cell_selection_2_gprs_penalty_time,
  8584. { "GPRS_PENALTY_TIME", "gsm_rlcmac.dl.cell_selection2_gprs_penalty_time",
  8585. FT_UINT8, BASE_DEC, NULL, 0x0,
  8586. NULL, HFILL
  8587. }
  8588. },
  8589. { &hf_cell_selection_2_gprs_reselect_offset,
  8590. { "GPRS_RESELECT_OFFSET", "gsm_rlcmac.dl.cell_selection2_gprs_reselect_offset",
  8591. FT_UINT8, BASE_DEC, NULL, 0x0,
  8592. NULL, HFILL
  8593. }
  8594. },
  8595. /* < Packet Access Reject message content > */
  8596. { &hf_reject_wait_indication,
  8597. { "WAIT_INDICATION", "gsm_rlcmac.dl.par_wait_indication",
  8598. FT_UINT8, BASE_DEC, NULL, 0x0,
  8599. NULL, HFILL
  8600. }
  8601. },
  8602. { &hf_reject_wait_indication_size,
  8603. { "WAIT_INDICATION_SIZE", "gsm_rlcmac.dl.par_wait_indication_size",
  8604. FT_UINT8, BASE_DEC, NULL, 0x0,
  8605. NULL, HFILL
  8606. }
  8607. },
  8608. /* < Packet Cell Change Order message content > */
  8609. { &hf_h_freqbsiccell_bsic,
  8610. { "BSIC", "gsm_rlcmac.dl.pcco_bsic",
  8611. FT_UINT8, BASE_DEC, NULL, 0x0,
  8612. NULL, HFILL
  8613. }
  8614. },
  8615. { &hf_cellselectionparamswithfreqdiff_bsic,
  8616. { "BSIC", "gsm_rlcmac.dl.pcco_bsic",
  8617. FT_UINT8, BASE_DEC, NULL, 0x0,
  8618. NULL, HFILL
  8619. }
  8620. },
  8621. { &hf_add_frequency_list_start_frequency,
  8622. { "START_FREQUENCY", "gsm_rlcmac.dl.add_frequency_list_start_frequency",
  8623. FT_UINT8, BASE_DEC, NULL, 0x0,
  8624. NULL, HFILL
  8625. }
  8626. },
  8627. { &hf_add_frequency_list_bsic,
  8628. { "BSIC", "gsm_rlcmac.dl.add_frequency_list_bsic",
  8629. FT_UINT8, BASE_DEC, NULL, 0x0,
  8630. NULL, HFILL
  8631. }
  8632. },
  8633. { &hf_add_frequency_list_nr_of_frequencies,
  8634. { "NR_OF_FREQUENCIES", "gsm_rlcmac.dl.add_frequency_list_nr_of_frequencies",
  8635. FT_UINT8, BASE_DEC, NULL, 0x0,
  8636. NULL, HFILL
  8637. }
  8638. },
  8639. { &hf_removed_freq_index_removed_freq_index,
  8640. { "REMOVED FREQUENCIES", "gsm_rlcmac.dl.removed_freq_index",
  8641. FT_UINT8, BASE_DEC, NULL, 0x0,
  8642. NULL, HFILL
  8643. }
  8644. },
  8645. { &hf_nc_measurement_parameters_network_control_order,
  8646. { "NETWORK_CONTROL_ORDER", "gsm_rlcmac.dl.nc_measurement_parameters_network_control_order",
  8647. FT_UINT8, BASE_DEC, NULL, 0x0,
  8648. NULL, HFILL
  8649. }
  8650. },
  8651. { &hf_nc_measurement_parameters_nc_non_drx_period,
  8652. { "NC_NON_DRX_PERIOD", "gsm_rlcmac.dl.nc_measurement_parameters_nc_non_drx_period",
  8653. FT_UINT8, BASE_DEC, NULL, 0x0,
  8654. NULL, HFILL
  8655. }
  8656. },
  8657. { &hf_nc_measurement_parameters_nc_reporting_period_i,
  8658. { "NC_REPORTING_PERIOD_I", "gsm_rlcmac.dl.nc_measurement_parameters_nc_reporting_period_i",
  8659. FT_UINT8, BASE_DEC, NULL, 0x0,
  8660. NULL, HFILL
  8661. }
  8662. },
  8663. { &hf_nc_measurement_parameters_nc_reporting_period_t,
  8664. { "NC_REPORTING_PERIOD_T", "gsm_rlcmac.dl.nc_measurement_parameters_nc_reporting_period_t",
  8665. FT_UINT8, BASE_DEC, NULL, 0x0,
  8666. NULL, HFILL
  8667. }
  8668. },
  8669. { &hf_nc_measurement_parameters_with_frequency_list_network_control_order,
  8670. { "NETWORK_CONTROL_ORDER", "gsm_rlcmac.dl.nc_measurement_parameters_network_control_order",
  8671. FT_UINT8, BASE_DEC, NULL, 0x0,
  8672. NULL, HFILL
  8673. }
  8674. },
  8675. { &hf_nc_measurement_parameters_with_frequency_list_nc_non_drx_period,
  8676. { "NC_NON_DRX_PERIOD", "gsm_rlcmac.dl.nc_measurement_parameters_nc_non_drx_period",
  8677. FT_UINT8, BASE_DEC, NULL, 0x0,
  8678. NULL, HFILL
  8679. }
  8680. },
  8681. { &hf_nc_measurement_parameters_with_frequency_list_nc_reporting_period_i,
  8682. { "NC_REPORTING_PERIOD_I", "gsm_rlcmac.dl.nc_measurement_parameters_nc_reporting_period_i",
  8683. FT_UINT8, BASE_DEC, NULL, 0x0,
  8684. NULL, HFILL
  8685. }
  8686. },
  8687. { &hf_nc_measurement_parameters_with_frequency_list_nc_reporting_period_t,
  8688. { "NC_REPORTING_PERIOD_T", "gsm_rlcmac.dl.nc_measurement_parameters_nc_reporting_period_t",
  8689. FT_UINT8, BASE_DEC, NULL, 0x0,
  8690. NULL, HFILL
  8691. }
  8692. },
  8693. /* < Packet Cell Change Order message contents > */
  8694. { &hf_ba_ind_ba_ind,
  8695. { "BA_IND", "gsm_rlcmac.dl.pcco_ba_ind",
  8696. FT_UINT8, BASE_DEC, NULL, 0x0,
  8697. NULL, HFILL
  8698. }
  8699. },
  8700. { &hf_ba_ind_ba_ind_3g,
  8701. { "BA_IND_3G", "gsm_rlcmac.dl.pcco_ba_ind_3g",
  8702. FT_UINT8, BASE_DEC, NULL, 0x0,
  8703. NULL, HFILL
  8704. }
  8705. },
  8706. { &hf_gprsreportpriority_number_cells,
  8707. { "NUMBER_CELLS", "gsm_rlcmac.dl.gprsreportpriority_number_cells",
  8708. FT_UINT8, BASE_DEC, NULL, 0x0,
  8709. NULL, HFILL
  8710. }
  8711. },
  8712. { &hf_offsetthreshold_reporting_offset,
  8713. { "REPORTING_OFFSET", "gsm_rlcmac.dl.offsetthreshold_reporting_offset",
  8714. FT_UINT8, BASE_DEC, NULL, 0x0,
  8715. NULL, HFILL
  8716. }
  8717. },
  8718. { &hf_offsetthreshold_reporting_threshold,
  8719. { "REPORTING_THRESHOLD", "gsm_rlcmac.dl.offsetthreshold_reporting_threshold",
  8720. FT_UINT8, BASE_DEC, NULL, 0x0,
  8721. NULL, HFILL
  8722. }
  8723. },
  8724. { &hf_gprsmeasurementparams_pmo_pcco_multi_band_reporting,
  8725. { "MULTI_BAND_REPORTING", "gsm_rlcmac.dl.gprsmeasurementparams_pmo_pcco_multi_band_reporting",
  8726. FT_UINT8, BASE_DEC, NULL, 0x0,
  8727. NULL, HFILL
  8728. }
  8729. },
  8730. { &hf_gprsmeasurementparams_pmo_pcco_serving_band_reporting,
  8731. { "SERVING_BAND_REPORTING", "gsm_rlcmac.dl.gprsmeasurementparams_pmo_pcco_serving_band_reporting",
  8732. FT_UINT8, BASE_DEC, NULL, 0x0,
  8733. NULL, HFILL
  8734. }
  8735. },
  8736. { &hf_gprsmeasurementparams_pmo_pcco_scale_ord,
  8737. { "SCALE_ORD", "gsm_rlcmac.dl.gprsmeasurementparams_pmo_pcco_scale_ord",
  8738. FT_UINT8, BASE_DEC, NULL, 0x0,
  8739. NULL, HFILL
  8740. }
  8741. },
  8742. { &hf_gprsmeasurementparams3g_qsearch_p,
  8743. { "Qsearch_p", "gsm_rlcmac.dl.gprsmeasurementparams3g_qsearch_p",
  8744. FT_UINT8, BASE_DEC, NULL, 0x0,
  8745. NULL, HFILL
  8746. }
  8747. },
  8748. { &hf_gprsmeasurementparams3g_searchprio3g,
  8749. { "SearchPrio3G", "gsm_rlcmac.dl.gprsmeasurementparams3g_searchprio3g",
  8750. FT_UINT8, BASE_DEC, NULL, 0x0,
  8751. NULL, HFILL
  8752. }
  8753. },
  8754. { &hf_gprsmeasurementparams3g_repquantfdd,
  8755. { "RepQuantFDD", "gsm_rlcmac.dl.gprsmeasurementparams3g_repquantfdd",
  8756. FT_UINT8, BASE_DEC, NULL, 0x0,
  8757. NULL, HFILL
  8758. }
  8759. },
  8760. { &hf_gprsmeasurementparams3g_multiratreportingfdd,
  8761. { "MultiratReportingFDD", "gsm_rlcmac.dl.gprsmeasurementparams3g_multiratreportingfdd",
  8762. FT_UINT8, BASE_DEC, NULL, 0x0,
  8763. NULL, HFILL
  8764. }
  8765. },
  8766. { &hf_gprsmeasurementparams3g_reportingoffsetfdd,
  8767. { "ReportingOffsetFDD", "gsm_rlcmac.dl.gprsmeasurementparams3g_reportingoffsetfdd",
  8768. FT_UINT8, BASE_DEC, NULL, 0x0,
  8769. NULL, HFILL
  8770. }
  8771. },
  8772. { &hf_gprsmeasurementparams3g_reportingthresholdfdd,
  8773. { "ReportingThresholdFDD", "gsm_rlcmac.dl.gprsmeasurementparams3g_reportingthresholdfdd",
  8774. FT_UINT8, BASE_DEC, NULL, 0x0,
  8775. NULL, HFILL
  8776. }
  8777. },
  8778. { &hf_gprsmeasurementparams3g_multiratreportingtdd,
  8779. { "MultiratReportingTDD", "gsm_rlcmac.dl.gprsmeasurementparams3g_multiratreportingtdd",
  8780. FT_UINT8, BASE_DEC, NULL, 0x0,
  8781. NULL, HFILL
  8782. }
  8783. },
  8784. { &hf_gprsmeasurementparams3g_reportingoffsettdd,
  8785. { "ReportingOffsetTDD", "gsm_rlcmac.dl.gprsmeasurementparams3g_reportingoffsettdd",
  8786. FT_UINT8, BASE_DEC, NULL, 0x0,
  8787. NULL, HFILL
  8788. }
  8789. },
  8790. { &hf_gprsmeasurementparams3g_reportingthresholdtdd,
  8791. { "ReportingThresholdTDD", "gsm_rlcmac.dl.gprsmeasurementparams3g_reportingthresholdtdd",
  8792. FT_UINT8, BASE_DEC, NULL, 0x0,
  8793. NULL, HFILL
  8794. }
  8795. },
  8796. { &hf_multiratparams3g_multiratreporting,
  8797. { "MultiratReporting", "gsm_rlcmac.dl.multiratparams3g_multiratreporting",
  8798. FT_UINT8, BASE_DEC, NULL, 0x0,
  8799. NULL, HFILL
  8800. }
  8801. },
  8802. { &hf_enh_gprsmeasurementparams3g_pmo_qsearch_p,
  8803. { "Qsearch_P", "gsm_rlcmac.dl.enh_gprsmeasurementparams3g_pmo_qsearch_p",
  8804. FT_UINT8, BASE_DEC, NULL, 0x0,
  8805. NULL, HFILL
  8806. }
  8807. },
  8808. { &hf_enh_gprsmeasurementparams3g_pmo_searchprio3g,
  8809. { "SearchPrio3G", "gsm_rlcmac.dl.enh_gprsmeasurementparams3g_pmo_searchprio3g",
  8810. FT_UINT8, BASE_DEC, NULL, 0x0,
  8811. NULL, HFILL
  8812. }
  8813. },
  8814. { &hf_enh_gprsmeasurementparams3g_pmo_repquantfdd,
  8815. { "RepQuantFDD", "gsm_rlcmac.dl.enh_gprsmeasurementparams3g_pmo_repquantfdd",
  8816. FT_UINT8, BASE_DEC, NULL, 0x0,
  8817. NULL, HFILL
  8818. }
  8819. },
  8820. { &hf_enh_gprsmeasurementparams3g_pmo_multiratreportingfdd,
  8821. { "MultiratReportingFDD", "gsm_rlcmac.dl.enh_gprsmeasurementparams3g_pmo_multiratreportingfdd",
  8822. FT_UINT8, BASE_DEC, NULL, 0x0,
  8823. NULL, HFILL
  8824. }
  8825. },
  8826. { &hf_enh_gprsmeasurementparams3g_pcco_qsearch_p,
  8827. { "Qsearch_P", "gsm_rlcmac.dl.enh_gprsmeasurementparams3g_pcco_qsearch_p",
  8828. FT_UINT8, BASE_DEC, NULL, 0x0,
  8829. NULL, HFILL
  8830. }
  8831. },
  8832. { &hf_enh_gprsmeasurementparams3g_pcco_searchprio3g,
  8833. { "SearchPrio3G", "gsm_rlcmac.dl.enh_gprsmeasurementparams3g_pcco_searchprio3g",
  8834. FT_UINT8, BASE_DEC, NULL, 0x0,
  8835. NULL, HFILL
  8836. }
  8837. },
  8838. { &hf_enh_gprsmeasurementparams3g_pcco_repquantfdd,
  8839. { "RepQuantFDD", "gsm_rlcmac.dl.enh_gprsmeasurementparams3g_pcco_repquantfdd",
  8840. FT_UINT8, BASE_DEC, NULL, 0x0,
  8841. NULL, HFILL
  8842. }
  8843. },
  8844. { &hf_enh_gprsmeasurementparams3g_pcco_multiratreportingfdd,
  8845. { "MultiratReportingFDD", "gsm_rlcmac.dl.enh_gprsmeasurementparams3g_pcco_multiratreportingfdd",
  8846. FT_UINT8, BASE_DEC, NULL, 0x0,
  8847. NULL, HFILL
  8848. }
  8849. },
  8850. { &hf_n2_removed_3gcell_index,
  8851. { "REMOVED_3GCELL_INDEX", "gsm_rlcmac.dl.removed_3gcell_index",
  8852. FT_UINT8, BASE_DEC, NULL, 0x0,
  8853. NULL, HFILL
  8854. }
  8855. },
  8856. { &hf_n2_cell_diff_length_3g,
  8857. { "CELL_DIFF_LENGTH_3G", "gsm_rlcmac.dl.cell_diff_length_3g",
  8858. FT_UINT8, BASE_DEC, NULL, 0x0,
  8859. NULL, HFILL
  8860. }
  8861. },
  8862. { &hf_cdma2000_description_complete_this,
  8863. { "Complete_This", "gsm_rlcmac.dl.complete_this",
  8864. FT_UINT8, BASE_DEC, NULL, 0x0,
  8865. NULL, HFILL
  8866. }
  8867. },
  8868. { &hf_utran_fdd_neighbourcells_zero,
  8869. { "ZERO", "gsm_rlcmac.dl.utran_fdd_neighbourcells_zero",
  8870. FT_UINT8, BASE_DEC, NULL, 0x0,
  8871. NULL, HFILL
  8872. }
  8873. },
  8874. { &hf_utran_fdd_neighbourcells_uarfcn,
  8875. { "UARFCN", "gsm_rlcmac.dl.utran_fdd_neighbourcells_uarfcn",
  8876. FT_UINT8, BASE_DEC, NULL, 0x0,
  8877. NULL, HFILL
  8878. }
  8879. },
  8880. { &hf_utran_fdd_neighbourcells_indic0,
  8881. { "Indic0", "gsm_rlcmac.dl.utran_fdd_neighbourcells_indic0",
  8882. FT_UINT8, BASE_DEC, NULL, 0x0,
  8883. NULL, HFILL
  8884. }
  8885. },
  8886. { &hf_utran_fdd_neighbourcells_nrofcells,
  8887. { "NrOfCells", "gsm_rlcmac.dl.utran_fdd_neighbourcells_nrofcells",
  8888. FT_UINT8, BASE_DEC, NULL, 0x0,
  8889. NULL, HFILL
  8890. }
  8891. },
  8892. { &hf_utran_fdd_description_bandwidth,
  8893. { "Bandwidth", "gsm_rlcmac.dl.utran_fdd_neighbourcells_bandwidth",
  8894. FT_UINT8, BASE_DEC, NULL, 0x0,
  8895. NULL, HFILL
  8896. }
  8897. },
  8898. { &hf_utran_tdd_neighbourcells_zero,
  8899. { "ZERO", "gsm_rlcmac.dl.utran_tdd_neighbourcells_zero",
  8900. FT_UINT8, BASE_DEC, NULL, 0x0,
  8901. NULL, HFILL
  8902. }
  8903. },
  8904. { &hf_utran_tdd_neighbourcells_uarfcn,
  8905. { "UARFCN", "gsm_rlcmac.dl.utran_tdd_neighbourcells_uarfcn",
  8906. FT_UINT8, BASE_DEC, NULL, 0x0,
  8907. NULL, HFILL
  8908. }
  8909. },
  8910. { &hf_utran_tdd_neighbourcells_indic0,
  8911. { "Indic0", "gsm_rlcmac.dl.utran_tdd_neighbourcells_indic0",
  8912. FT_UINT8, BASE_DEC, NULL, 0x0,
  8913. NULL, HFILL
  8914. }
  8915. },
  8916. { &hf_utran_tdd_neighbourcells_nrofcells,
  8917. { "NrOfCells", "gsm_rlcmac.dl.utran_tdd_neighbourcells_nrofcells",
  8918. FT_UINT8, BASE_DEC, NULL, 0x0,
  8919. NULL, HFILL
  8920. }
  8921. },
  8922. { &hf_utran_tdd_description_bandwidth,
  8923. { "Bandwidth", "gsm_rlcmac.dl.utran_tdd_description_bandwidth",
  8924. FT_UINT8, BASE_DEC, NULL, 0x0,
  8925. NULL, HFILL
  8926. }
  8927. },
  8928. { &hf_index_start_3g,
  8929. { "Index_Start_3G", "gsm_rlcmac.dl.index_start_3g",
  8930. FT_UINT8, BASE_DEC, NULL, 0x0,
  8931. NULL, HFILL
  8932. }
  8933. },
  8934. { &hf_absolute_index_start_emr,
  8935. { "Absolute_Index_Start_EMR", "gsm_rlcmac.dl.absolute_index_start_emr",
  8936. FT_UINT8, BASE_DEC, NULL, 0x0,
  8937. NULL, HFILL
  8938. }
  8939. },
  8940. { &hf_psi3_change_mark,
  8941. { "PSI3_CHANGE_MARK", "gsm_rlcmac.dl.psi3_change_mark",
  8942. FT_UINT8, BASE_DEC, NULL, 0x0,
  8943. NULL, HFILL
  8944. }
  8945. },
  8946. { &hf_enh_measurement_parameters_pmo_pmo_ind,
  8947. { "PMO_IND", "gsm_rlcmac.dl.enh_measurement_parameters_pmo_pmo_ind",
  8948. FT_UINT8, BASE_DEC, NULL, 0x0,
  8949. NULL, HFILL
  8950. }
  8951. },
  8952. { &hf_enh_measurement_parameters_pmo_report_type,
  8953. { "REPORT_TYPE", "gsm_rlcmac.dl.enh_measurement_parameters_pmo_report_type",
  8954. FT_UINT8, BASE_DEC, NULL, 0x0,
  8955. NULL, HFILL
  8956. }
  8957. },
  8958. { &hf_enh_measurement_parameters_pmo_reporting_rate,
  8959. { "REPORTING_RATE", "gsm_rlcmac.dl.enh_measurement_parameters_pmo_reporting_rate",
  8960. FT_UINT8, BASE_DEC, NULL, 0x0,
  8961. NULL, HFILL
  8962. }
  8963. },
  8964. { &hf_enh_measurement_parameters_pmo_invalid_bsic_reporting,
  8965. { "INVALID_BSIC_REPORTING", "gsm_rlcmac.dl.enh_measurement_parameters_pmo_invalid_bsic_reporting",
  8966. FT_UINT8, BASE_DEC, NULL, 0x0,
  8967. NULL, HFILL
  8968. }
  8969. },
  8970. { &hf_enh_measurement_parameters_pcco_pmo_ind,
  8971. { "PMO_IND", "gsm_rlcmac.dl.enh_measurement_parameters_pcco_pmo_ind",
  8972. FT_UINT8, BASE_DEC, NULL, 0x0,
  8973. NULL, HFILL
  8974. }
  8975. },
  8976. { &hf_enh_measurement_parameters_pcco_report_type,
  8977. { "REPORT_TYPE", "gsm_rlcmac.dl.enh_measurement_parameters_pcco_report_type",
  8978. FT_UINT8, BASE_DEC, NULL, 0x0,
  8979. NULL, HFILL
  8980. }
  8981. },
  8982. { &hf_enh_measurement_parameters_pcco_reporting_rate,
  8983. { "REPORTING_RATE", "gsm_rlcmac.dl.enh_measurement_parameters_pcco_reporting_rate",
  8984. FT_UINT8, BASE_DEC, NULL, 0x0,
  8985. NULL, HFILL
  8986. }
  8987. },
  8988. { &hf_enh_measurement_parameters_pcco_invalid_bsic_reporting,
  8989. { "INVALID_BSIC_REPORTING", "gsm_rlcmac.dl.enh_measurement_parameters_pcco_invalid_bsic_reporting",
  8990. FT_UINT8, BASE_DEC, NULL, 0x0,
  8991. NULL, HFILL
  8992. }
  8993. },
  8994. { &hf_ccn_support_description_number_cells,
  8995. { "NUMBER_CELLS", "gsm_rlcmac.dl.ccn_support_description_number_cells",
  8996. FT_UINT8, BASE_DEC, NULL, 0x0,
  8997. NULL, HFILL
  8998. }
  8999. },
  9000. { &hf_lu_modecellselectionparameters_cell_bar_qualify_3,
  9001. { "CELL_BAR_QUALIFY_3", "gsm_rlcmac.dl.lu_modecellselectionparameters_cell_bar_qualify_3",
  9002. FT_UINT8, BASE_DEC, NULL, 0x0,
  9003. NULL, HFILL
  9004. }
  9005. },
  9006. { &hf_lu_modeneighbourcellparams_nr_of_frequencies,
  9007. { "NR_OF_FREQUENCIES", "gsm_rlcmac.dl.lu_modecellselectionparameters_nr_of_frequencies",
  9008. FT_UINT8, BASE_DEC, NULL, 0x0,
  9009. NULL, HFILL
  9010. }
  9011. },
  9012. { &hf_lu_modeonlycellselection_cell_bar_qualify_3,
  9013. { "CELL_BAR_QUALIFY_3", "gsm_rlcmac.dl.lu_modeonlycellselection_cell_bar_qualify_3",
  9014. FT_UINT8, BASE_DEC, NULL, 0x0,
  9015. NULL, HFILL
  9016. }
  9017. },
  9018. { &hf_lu_modeonlycellselection_same_ra_as_serving_cell,
  9019. { "SAME_RA_AS_SERVING_CELL", "gsm_rlcmac.dl.lu_modeonlycellselection_same_ra_as_serving_cell",
  9020. FT_UINT8, BASE_DEC, NULL, 0x0,
  9021. NULL, HFILL
  9022. }
  9023. },
  9024. { &hf_lu_modeonlycellselection_gprs_rxlev_access_min,
  9025. { "GPRS_RXLEV_ACCESS_MIN", "gsm_rlcmac.dl.lu_modeonlycellselection_gprs_rxlev_access_min",
  9026. FT_UINT8, BASE_DEC, NULL, 0x0,
  9027. NULL, HFILL
  9028. }
  9029. },
  9030. { &hf_lu_modeonlycellselection_gprs_ms_txpwr_max_cch,
  9031. { "GPRS_MS_TXPWR_MAX_CCH", "gsm_rlcmac.dl.lu_modeonlycellselection_gprs_ms_txpwr_max_cch",
  9032. FT_UINT8, BASE_DEC, NULL, 0x0,
  9033. NULL, HFILL
  9034. }
  9035. },
  9036. { &hf_lu_modeonlycellselection_gprs_temporary_offset,
  9037. { "GPRS_TEMPORARY_OFFSET", "gsm_rlcmac.dl.lu_modeonlycellselection_gprs_temporary_offset",
  9038. FT_UINT8, BASE_DEC, NULL, 0x0,
  9039. NULL, HFILL
  9040. }
  9041. },
  9042. { &hf_lu_modeonlycellselection_gprs_penalty_time,
  9043. { "GPRS_PENALTY_TIME", "gsm_rlcmac.dl.lu_modeonlycellselection_gprs_penalty_time",
  9044. FT_UINT8, BASE_DEC, NULL, 0x0,
  9045. NULL, HFILL
  9046. }
  9047. },
  9048. { &hf_lu_modeonlycellselection_gprs_reselect_offset,
  9049. { "GPRS_RESELECT_OFFSET", "gsm_rlcmac.dl.lu_modeonlycellselection_gprs_reselect_offset",
  9050. FT_UINT8, BASE_DEC, NULL, 0x0,
  9051. NULL, HFILL
  9052. }
  9053. },
  9054. { &hf_lu_modeonlycellselectionparamswithfreqdiff_bsic,
  9055. { "BSIC", "gsm_rlcmac.dl.lu_modeonlycellselectionparamswithfreqdiff_bsic",
  9056. FT_UINT8, BASE_DEC, NULL, 0x0,
  9057. NULL, HFILL
  9058. }
  9059. },
  9060. { &hf_add_lu_modeonlyfrequencylist_start_frequency,
  9061. { "START_FREQUENCY", "gsm_rlcmac.dl.dd_lu_modeonlyfrequencylist_start_frequency",
  9062. FT_UINT8, BASE_DEC, NULL, 0x0,
  9063. NULL, HFILL
  9064. }
  9065. },
  9066. { &hf_add_lu_modeonlyfrequencylist_bsic,
  9067. { "BSIC", "gsm_rlcmac.dl.dd_lu_modeonlyfrequencylist_bsic",
  9068. FT_UINT8, BASE_DEC, NULL, 0x0,
  9069. NULL, HFILL
  9070. }
  9071. },
  9072. { &hf_add_lu_modeonlyfrequencylist_nr_of_frequencies,
  9073. { "NR_OF_FREQUENCIES", "gsm_rlcmac.dl.dd_lu_modeonlyfrequencylist_nr_of_frequencies",
  9074. FT_UINT8, BASE_DEC, NULL, 0x0,
  9075. NULL, HFILL
  9076. }
  9077. },
  9078. { &hf_add_lu_modeonlyfrequencylist_freq_diff_length,
  9079. { "FREQ_DIFF_LENGTH", "gsm_rlcmac.dl.dd_lu_modeonlyfrequencylist_freq_diff_length",
  9080. FT_UINT8, BASE_DEC, NULL, 0x0,
  9081. NULL, HFILL
  9082. }
  9083. },
  9084. { &hf_gprs_additionalmeasurementparams3g_fdd_reporting_threshold_2,
  9085. { "FDD_REPORTING_THRESHOLD_2", "gsm_rlcmac.dl.gprs_additionalmeasurementparams3g_fdd_reporting_threshold_2",
  9086. FT_UINT8, BASE_DEC, NULL, 0x0,
  9087. NULL, HFILL
  9088. }
  9089. },
  9090. { &hf_servingcellpriorityparametersdescription_geran_priority,
  9091. { "GERAN_PRIORITY", "gsm_rlcmac.dl.servingcellpriorityparametersdescription_geran_priority",
  9092. FT_UINT8, BASE_DEC, NULL, 0x0,
  9093. NULL, HFILL
  9094. }
  9095. },
  9096. { &hf_servingcellpriorityparametersdescription_thresh_priority_search,
  9097. { "THRESH_Priority_Search", "gsm_rlcmac.dl.servingcellpriorityparametersdescription_thresh_priority_search",
  9098. FT_UINT8, BASE_DEC, NULL, 0x0,
  9099. NULL, HFILL
  9100. }
  9101. },
  9102. { &hf_servingcellpriorityparametersdescription_thresh_gsm_low,
  9103. { "THRESH_GSM_low", "gsm_rlcmac.dl.servingcellpriorityparametersdescription_thresh_gsm_low",
  9104. FT_UINT8, BASE_DEC, NULL, 0x0,
  9105. NULL, HFILL
  9106. }
  9107. },
  9108. { &hf_servingcellpriorityparametersdescription_h_prio,
  9109. { "H_PRIO", "gsm_rlcmac.dl.servingcellpriorityparametersdescription_h_prio",
  9110. FT_UINT8, BASE_DEC, NULL, 0x0,
  9111. NULL, HFILL
  9112. }
  9113. },
  9114. { &hf_servingcellpriorityparametersdescription_t_reselection,
  9115. { "T_Reselection", "gsm_rlcmac.dl.servingcellpriorityparametersdescription_t_reselection",
  9116. FT_UINT8, BASE_DEC, NULL, 0x0,
  9117. NULL, HFILL
  9118. }
  9119. },
  9120. { &hf_repeatedutran_priorityparameters_utran_priority,
  9121. { "UTRAN_PRIORITY", "gsm_rlcmac.dl.repeatedutran_priorityparameters_utran_priority",
  9122. FT_UINT8, BASE_DEC, NULL, 0x0,
  9123. NULL, HFILL
  9124. }
  9125. },
  9126. { &hf_repeatedutran_priorityparameters_thresh_utran_high,
  9127. { "THRESH_UTRAN_high", "gsm_rlcmac.dl.repeatedutran_priorityparameters_thresh_utran_high",
  9128. FT_UINT8, BASE_DEC, NULL, 0x0,
  9129. NULL, HFILL
  9130. }
  9131. },
  9132. { &hf_repeatedutran_priorityparameters_thresh_utran_low,
  9133. { "THRESH_UTRAN_low", "gsm_rlcmac.dl.repeatedutran_priorityparameters_thresh_utran_low",
  9134. FT_UINT8, BASE_DEC, NULL, 0x0,
  9135. NULL, HFILL
  9136. }
  9137. },
  9138. { &hf_repeatedutran_priorityparameters_utran_qrxlevmin,
  9139. { "UTRAN_QRXLEVMIN", "gsm_rlcmac.dl.repeatedutran_priorityparameters_utran_qrxlevmin",
  9140. FT_UINT8, BASE_DEC, NULL, 0x0,
  9141. NULL, HFILL
  9142. }
  9143. },
  9144. { &hf_priorityparametersdescription3g_pmo_default_utran_priority,
  9145. { "DEFAULT_UTRAN_PRIORITY", "gsm_rlcmac.dl.priorityparametersdescription3g_pmo_default_utran_priority",
  9146. FT_UINT8, BASE_DEC, NULL, 0x0,
  9147. NULL, HFILL
  9148. }
  9149. },
  9150. { &hf_priorityparametersdescription3g_pmo_default_thresh_utran,
  9151. { "DEFAULT_THRESH_UTRAN", "gsm_rlcmac.dl.priorityparametersdescription3g_pmo_default_thresh_utran",
  9152. FT_UINT8, BASE_DEC, NULL, 0x0,
  9153. NULL, HFILL
  9154. }
  9155. },
  9156. { &hf_priorityparametersdescription3g_pmo_default_utran_qrxlevmin,
  9157. { "DEFAULT_UTRAN_QRXLEVMIN", "gsm_rlcmac.dl.priorityparametersdescription3g_pmo_default_utran_qrxlevmin",
  9158. FT_UINT8, BASE_DEC, NULL, 0x0,
  9159. NULL, HFILL
  9160. }
  9161. },
  9162. { &hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_threshold,
  9163. { "EUTRAN_FDD_REPORTING_THRESHOLD", "gsm_rlcmac.dl.eutran_fdd_reporting_threshold",
  9164. FT_UINT8, BASE_DEC, NULL, 0x0,
  9165. NULL, HFILL
  9166. }
  9167. },
  9168. { &hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_threshold_2,
  9169. { "EUTRAN_FDD_REPORTING_THRESHOLD_2", "gsm_rlcmac.dl.eutran_fdd_reporting_threshold_2",
  9170. FT_UINT8, BASE_DEC, NULL, 0x0,
  9171. NULL, HFILL
  9172. }
  9173. },
  9174. { &hf_eutran_reportinghreshold_offset_t_eutran_fdd_reporting_offset,
  9175. { "EUTRAN_FDD_REPORTING_OFFSET", "gsm_rlcmac.dl.eutran_fdd_reporting_offset",
  9176. FT_UINT8, BASE_DEC, NULL, 0x0,
  9177. NULL, HFILL
  9178. }
  9179. },
  9180. { &hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_threshold,
  9181. { "EUTRAN_TDD_REPORTING_THRESHOLD", "gsm_rlcmac.dl.eutran_tdd_reporting_threshold",
  9182. FT_UINT8, BASE_DEC, NULL, 0x0,
  9183. NULL, HFILL
  9184. }
  9185. },
  9186. { &hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_threshold_2,
  9187. { "EUTRAN_TDD_REPORTING_THRESHOLD_2", "gsm_rlcmac.dl.eutran_tdd_reporting_threshold_2",
  9188. FT_UINT8, BASE_DEC, NULL, 0x0,
  9189. NULL, HFILL
  9190. }
  9191. },
  9192. { &hf_eutran_reportinghreshold_offset_t_eutran_tdd_reporting_offset,
  9193. { "EUTRAN_TDD_REPORTING_OFFSET", "gsm_rlcmac.dl.eutran_tdd_reporting_offset",
  9194. FT_UINT8, BASE_DEC, NULL, 0x0,
  9195. NULL, HFILL
  9196. }
  9197. },
  9198. { &hf_gprs_eutran_measurementparametersdescription_qsearch_p_eutran,
  9199. { "Qsearch_P_EUTRAN", "gsm_rlcmac.dl.qsearch_p_eutran",
  9200. FT_UINT8, BASE_DEC, NULL, 0x0,
  9201. NULL, HFILL
  9202. }
  9203. },
  9204. { &hf_gprs_eutran_measurementparametersdescription_eutran_rep_quant,
  9205. { "EUTRAN_REP_QUANT", "gsm_rlcmac.dl.eutran_rep_quant",
  9206. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  9207. NULL, HFILL
  9208. }
  9209. },
  9210. { &hf_gprs_eutran_measurementparametersdescription_eutran_multirat_reporting,
  9211. { "EUTRAN_MULTIRAT_REPORTING", "gsm_rlcmac.dl.eutran_multirat_reporting",
  9212. FT_UINT8, BASE_DEC, NULL, 0x0,
  9213. NULL, HFILL
  9214. }
  9215. },
  9216. { &hf_repeatedeutran_cells_earfcn,
  9217. { "EARFCN", "gsm_rlcmac.dl.repeatedeutran_cells_earfcn",
  9218. FT_UINT8, BASE_DEC, NULL, 0x0,
  9219. NULL, HFILL
  9220. }
  9221. },
  9222. { &hf_repeatedeutran_cells_measurementbandwidth,
  9223. { "MeasurementBandwidth", "gsm_rlcmac.dl.repeatedeutran_cells_measurementbandwidth",
  9224. FT_UINT8, BASE_DEC, NULL, 0x0,
  9225. NULL, HFILL
  9226. }
  9227. },
  9228. { &hf_repeatedeutran_neighbourcells_eutran_priority,
  9229. { "EUTRAN_PRIORITY", "gsm_rlcmac.dl.repeatedeutran_neighbourcells_eutran_priority",
  9230. FT_UINT8, BASE_DEC, NULL, 0x0,
  9231. NULL, HFILL
  9232. }
  9233. },
  9234. { &hf_repeatedeutran_neighbourcells_thresh_eutran_high,
  9235. { "THRESH_EUTRAN_high", "gsm_rlcmac.dl.repeatedeutran_neighbourcells_thresh_eutran_high",
  9236. FT_UINT8, BASE_DEC, NULL, 0x0,
  9237. NULL, HFILL
  9238. }
  9239. },
  9240. { &hf_repeatedeutran_neighbourcells_thresh_eutran_low,
  9241. { "THRESH_EUTRAN_low", "gsm_rlcmac.dl.repeatedeutran_neighbourcells_thresh_eutran_low",
  9242. FT_UINT8, BASE_DEC, NULL, 0x0,
  9243. NULL, HFILL
  9244. }
  9245. },
  9246. { &hf_repeatedeutran_neighbourcells_eutran_qrxlevmin,
  9247. { "EUTRAN_QRXLEVMIN", "gsm_rlcmac.dl.repeatedeutran_neighbourcells_eutran_qrxlevmin",
  9248. FT_UINT8, BASE_DEC, NULL, 0x0,
  9249. NULL, HFILL
  9250. }
  9251. },
  9252. { &hf_pcid_pattern_pcid_pattern_length,
  9253. { "PCID_Pattern_length", "gsm_rlcmac.dl.pcid_pattern_pcid_pattern_length",
  9254. FT_UINT8, BASE_DEC, NULL, 0x0,
  9255. NULL, HFILL
  9256. }
  9257. },
  9258. { &hf_pcid_pattern_pcid_pattern_sense,
  9259. { "PCID_Pattern_sense", "gsm_rlcmac.dl.pcid_pattern_pcid_pattern_sense",
  9260. FT_UINT8, BASE_DEC, NULL, 0x0,
  9261. NULL, HFILL
  9262. }
  9263. },
  9264. { &hf_pcid_group_ie_pcid_bitmap_group,
  9265. { "PCID_BITMAP_GROUP", "gsm_rlcmac.dl.pcid_group_ie_pcid_bitmap_group",
  9266. FT_UINT8, BASE_DEC, NULL, 0x0,
  9267. NULL, HFILL
  9268. }
  9269. },
  9270. { &hf_eutran_frequency_index_eutran_frequency_index,
  9271. { "EUTRAN_FREQUENCY_INDEX", "gsm_rlcmac.dl.eutran_frequency_index_eutran_frequency_index",
  9272. FT_UINT8, BASE_DEC, NULL, 0x0,
  9273. NULL, HFILL
  9274. }
  9275. },
  9276. { &hf_psc_pattern_length,
  9277. { "PSC_pattern_length", "gsm_rlcmac.dl.psc_pattern_length",
  9278. FT_UINT8, BASE_DEC, NULL, 0x0,
  9279. NULL, HFILL
  9280. }
  9281. },
  9282. { &hf_psc_pattern_sense,
  9283. { "PSC_pattern_sense", "gsm_rlcmac.dl.psc_pattern_sense",
  9284. FT_UINT8, BASE_DEC, NULL, 0x0,
  9285. NULL, HFILL
  9286. }
  9287. },
  9288. { &hf_meas_ctrl_param_meas_ctrl_eutran,
  9289. { "Measurement_Control_E-UTRAN", "gsm_rlcmac.dl.meas_ctrl_param_eutran",
  9290. FT_UINT8, BASE_DEC, NULL, 0x0,
  9291. NULL, HFILL
  9292. }
  9293. },
  9294. { &hf_meas_ctrl_param_eutran_freq_idx,
  9295. { "EUTRAN_FREQUENCY_INDEX", "gsm_rlcmac.dl.meas_ctrl_param_eutran_freq_idx",
  9296. FT_UINT8, BASE_DEC, NULL, 0x0,
  9297. NULL, HFILL
  9298. }
  9299. },
  9300. { &hf_meas_ctrl_param_meas_ctrl_utran,
  9301. { "Measurement_Control_UTRAN", "gsm_rlcmac.dl.meas_ctrl_param_utran",
  9302. FT_UINT8, BASE_DEC, NULL, 0x0,
  9303. NULL, HFILL
  9304. }
  9305. },
  9306. { &hf_meas_ctrl_param_utran_freq_idx,
  9307. { "UTRAN_FREQUENCY_INDEX", "gsm_rlcmac.dl.meas_ctrl_param_utran_freq_idx",
  9308. FT_UINT8, BASE_DEC, NULL, 0x0,
  9309. NULL, HFILL
  9310. }
  9311. },
  9312. { &hf_rept_eutran_enh_cell_resel_param_eutran_qmin,
  9313. { "E-UTRAN_Qmin", "gsm_rlcmac.dl.enh_cell_resel_param_eutran_qmin",
  9314. FT_UINT8, BASE_DEC, NULL, 0x0,
  9315. NULL, HFILL
  9316. }
  9317. },
  9318. { &hf_rept_eutran_enh_cell_resel_param_thresh_eutran_high_q,
  9319. { "THRESH_E-UTRAN_high_Q", "gsm_rlcmac.dl.enh_cell_resel_param_eutran_high_q",
  9320. FT_UINT8, BASE_DEC, NULL, 0x0,
  9321. NULL, HFILL
  9322. }
  9323. },
  9324. { &hf_rept_eutran_enh_cell_resel_param_thresh_eutran_low_q,
  9325. { "THRESH_E-UTRAN_low_Q", "gsm_rlcmac.dl.enh_cell_resel_param_eutran_low_q",
  9326. FT_UINT8, BASE_DEC, NULL, 0x0,
  9327. NULL, HFILL
  9328. }
  9329. },
  9330. { &hf_rept_eutran_enh_cell_resel_param_thresh_eutran_qqualmin,
  9331. { "E-UTRAN_QQUALMIN", "gsm_rlcmac.dl.enh_cell_resel_param_eutran_qqualmin",
  9332. FT_UINT8, BASE_DEC, NULL, 0x0,
  9333. NULL, HFILL
  9334. }
  9335. },
  9336. { &hf_rept_eutran_enh_cell_resel_param_thresh_eutran_rsrpmin,
  9337. { "E-UTRAN_RSRPmin", "gsm_rlcmac.dl.enh_cell_resel_param_eutran_rsrpmin",
  9338. FT_UINT8, BASE_DEC, NULL, 0x0,
  9339. NULL, HFILL
  9340. }
  9341. },
  9342. { &hf_utran_csg_fdd_reporting_threshold,
  9343. { "UTRAN_CSG_FDD_REPORTING_THRESHOLD", "gsm_rlcmac.dl.utran_csg_fdd_reporting_threshold",
  9344. FT_UINT8, BASE_DEC, NULL, 0x0,
  9345. NULL, HFILL
  9346. }
  9347. },
  9348. { &hf_utran_csg_fdd_reporting_threshold2,
  9349. { "UTRAN_CSG_FDD_REPORTING_THRESHOLD_2", "gsm_rlcmac.dl.utran_csg_fdd_reporting_threshold2",
  9350. FT_UINT8, BASE_DEC, NULL, 0x0,
  9351. NULL, HFILL
  9352. }
  9353. },
  9354. { &hf_utran_csg_tdd_reporting_threshold,
  9355. { "UTRAN_CSG_TDD_REPORTING_THRESHOLD", "gsm_rlcmac.dl.utran_csg_tdd_reporting_threshold",
  9356. FT_UINT8, BASE_DEC, NULL, 0x0,
  9357. NULL, HFILL
  9358. }
  9359. },
  9360. { &hf_eutran_csg_fdd_reporting_threshold,
  9361. { "E-UTRAN_CSG_FDD_REPORTING_THRESHOLD", "gsm_rlcmac.dl.eutran_csg_fdd_reporting_threshold",
  9362. FT_UINT8, BASE_DEC, NULL, 0x0,
  9363. NULL, HFILL
  9364. }
  9365. },
  9366. { &hf_eutran_csg_fdd_reporting_threshold2,
  9367. { "E-UTRAN_CSG_FDD_REPORTING_THRESHOLD_2", "gsm_rlcmac.dl.eutran_csg_fdd_reporting_threshold2",
  9368. FT_UINT8, BASE_DEC, NULL, 0x0,
  9369. NULL, HFILL
  9370. }
  9371. },
  9372. { &hf_eutran_csg_tdd_reporting_threshold,
  9373. { "E-UTRAN_CSG_TDD_REPORTING_THRESHOLD", "gsm_rlcmac.dl.eutran_csg_tdd_reporting_threshold",
  9374. FT_UINT8, BASE_DEC, NULL, 0x0,
  9375. NULL, HFILL
  9376. }
  9377. },
  9378. { &hf_eutran_csg_tdd_reporting_threshold2,
  9379. { "E-UTRAN_CSG_TDD_REPORTING_THRESHOLD_2", "gsm_rlcmac.dl.eutran_csg_tdd_reporting_threshold2",
  9380. FT_UINT8, BASE_DEC, NULL, 0x0,
  9381. NULL, HFILL
  9382. }
  9383. },
  9384. { &hf_eutran_parametersdescription_pmo_eutran_ccn_active,
  9385. { "EUTRAN_CCN_ACTIVE", "gsm_rlcmac.dl.eutran_parametersdescription_pmo_eutran_ccn_active",
  9386. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  9387. NULL, HFILL
  9388. }
  9389. },
  9390. { &hf_pmo_additionsr8_ba_ind_3g,
  9391. { "BA_IND_3G", "gsm_rlcmac.dl.pmo_additionsr8_ba_ind_3g",
  9392. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  9393. NULL, HFILL
  9394. }
  9395. },
  9396. { &hf_pmo_additionsr8_pmo_ind,
  9397. { "PMO_IND", "gsm_rlcmac.dl.pmo_additionsr8_pmo_ind",
  9398. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  9399. NULL, HFILL
  9400. }
  9401. },
  9402. { &hf_pmo_additionsr7_reporting_offset_700,
  9403. { "REPORTING_OFFSET_700", "gsm_rlcmac.dl.pmo_additionsr7_reporting_offset_700",
  9404. FT_UINT8, BASE_DEC, NULL, 0x0,
  9405. NULL, HFILL
  9406. }
  9407. },
  9408. { &hf_pmo_additionsr7_reporting_threshold_700,
  9409. { "REPORTING_THRESHOLD_700", "gsm_rlcmac.dl.pmo_additionsr7_reporting_threshold_700",
  9410. FT_UINT8, BASE_DEC, NULL, 0x0,
  9411. NULL, HFILL
  9412. }
  9413. },
  9414. { &hf_pmo_additionsr7_reporting_offset_810,
  9415. { "REPORTING_OFFSET_810", "gsm_rlcmac.dl.pmo_additionsr7_reporting_offset_810",
  9416. FT_UINT8, BASE_DEC, NULL, 0x0,
  9417. NULL, HFILL
  9418. }
  9419. },
  9420. { &hf_pmo_additionsr7_reporting_threshold_810,
  9421. { "REPORTING_THRESHOLD_810", "gsm_rlcmac.dl.pmo_additionsr7_reporting_threshold_810",
  9422. FT_UINT8, BASE_DEC, NULL, 0x0,
  9423. NULL, HFILL
  9424. }
  9425. },
  9426. { &hf_pmo_additionsr6_ccn_active_3g,
  9427. { "CCN_ACTIVE_3G", "gsm_rlcmac.dl.pmo_additionsr6_ccn_active_3g",
  9428. FT_UINT8, BASE_DEC, NULL, 0x0,
  9429. NULL, HFILL
  9430. }
  9431. },
  9432. { &hf_pcco_additionsr6_ccn_active_3g,
  9433. { "CCN_ACTIVE_3G", "gsm_rlcmac.dl.pcco_additionsr6_ccn_active_3g",
  9434. FT_UINT8, BASE_DEC, NULL, 0x0,
  9435. NULL, HFILL
  9436. }
  9437. },
  9438. { &hf_pmo_additionsr5_grnti,
  9439. { "GRNTI", "gsm_rlcmac.dl.pmo_additionsr5_grnti",
  9440. FT_UINT8, BASE_DEC, NULL, 0x0,
  9441. NULL, HFILL
  9442. }
  9443. },
  9444. { &hf_pcco_additionsr5_grnti,
  9445. { "GRNTI", "gsm_rlcmac.dl.pcco_additionsr5_grnti",
  9446. FT_UINT8, BASE_DEC, NULL, 0x0,
  9447. NULL, HFILL
  9448. }
  9449. },
  9450. { &hf_pmo_additionsr4_ccn_active,
  9451. { "CCN_ACTIVE", "gsm_rlcmac.dl.pmo_additionsr4_ccn_active",
  9452. FT_UINT8, BASE_DEC, NULL, 0x0,
  9453. NULL, HFILL
  9454. }
  9455. },
  9456. { &hf_pcco_additionsr4_ccn_active,
  9457. { "CCN_ACTIVE", "gsm_rlcmac.dl.pcco_additionsr4_ccn_active",
  9458. FT_UINT8, BASE_DEC, NULL, 0x0,
  9459. NULL, HFILL
  9460. }
  9461. },
  9462. { &hf_pcco_additionsr4_container_id,
  9463. { "CONTAINER_ID", "gsm_rlcmac.dl.pcco_additionsr4_container_id",
  9464. FT_UINT8, BASE_DEC, NULL, 0x0,
  9465. NULL, HFILL
  9466. }
  9467. },
  9468. { &hf_lsa_id_info_element_lsa_id,
  9469. { "LSA_ID", "gsm_rlcmac.dl.lsa_id",
  9470. FT_UINT8, BASE_DEC, NULL, 0x0,
  9471. NULL, HFILL
  9472. }
  9473. },
  9474. { &hf_lsa_id_info_element_shortlsa_id,
  9475. { "ShortLSA_ID", "gsm_rlcmac.dl.lsa_shortlsa_id",
  9476. FT_UINT8, BASE_DEC, NULL, 0x0,
  9477. NULL, HFILL
  9478. }
  9479. },
  9480. { &hf_lsa_parameters_nr_of_freq_or_cells,
  9481. { "NR_OF_FREQ_OR_CELLS", "gsm_rlcmac.dl.lsa_nr_of_freq_or_cells",
  9482. FT_UINT8, BASE_DEC, NULL, 0x0,
  9483. NULL, HFILL
  9484. }
  9485. },
  9486. { &hf_target_cell_gsm_immediate_rel,
  9487. { "IMMEDIATE_REL", "gsm_rlcmac.dl.taget_cell_immediate_rel",
  9488. FT_UINT8, BASE_DEC, NULL, 0x0,
  9489. NULL, HFILL
  9490. }
  9491. },
  9492. { &hf_target_cell_gsm_bsic,
  9493. { "BSIC", "gsm_rlcmac.dl.taget_cell_gsm_bsic",
  9494. FT_UINT8, BASE_DEC, NULL, 0x0,
  9495. NULL, HFILL
  9496. }
  9497. },
  9498. { &hf_target_cell_3g_immediate_rel,
  9499. { "IMMEDIATE_REL", "gsm_rlcmac.dl.immediate_rel",
  9500. FT_UINT8, BASE_DEC, NULL, 0x0,
  9501. NULL, HFILL
  9502. }
  9503. },
  9504. { &hf_target_cell_eutran_earfcn,
  9505. { "EARFCN", "gsm_rlcmac.dl.pcco_target_cell_eutran_earfcn",
  9506. FT_UINT16, BASE_DEC, NULL, 0x0,
  9507. NULL, HFILL
  9508. }
  9509. },
  9510. { &hf_target_cell_eutran_measurement_bandwidth,
  9511. { "Measurement Bandwidth", "gsm_rlcmac.dl.pcco_target_cell_eutran_meas_bw",
  9512. FT_UINT8, BASE_DEC, NULL, 0x0,
  9513. NULL, HFILL
  9514. }
  9515. },
  9516. { &hf_target_cell_eutran_pl_cell_id,
  9517. { "Physical Layer Cell Identity", "gsm_rlcmac.dl.pcco_target_cell_eutran_cell_id",
  9518. FT_UINT16, BASE_DEC, NULL, 0x0,
  9519. NULL, HFILL
  9520. }
  9521. },
  9522. { &hf_idvd_default_utran_priority,
  9523. { "DEFAULT_UTRAN_PRIORITY", "gsm_rlcmac.dl.idvl_prio_dlft_geran_prio",
  9524. FT_UINT8, BASE_DEC, NULL, 0x0,
  9525. NULL, HFILL
  9526. }
  9527. },
  9528. { &hf_idvd_utran_priority,
  9529. { "UTRAN_PRIORITY", "gsm_rlcmac.dl.idvl_prio_geran_prio",
  9530. FT_UINT8, BASE_DEC, NULL, 0x0,
  9531. NULL, HFILL
  9532. }
  9533. },
  9534. { &hf_idvd_default_eutran_priority,
  9535. { "DEFAULT_E-UTRAN_PRIORITY", "gsm_rlcmac.dl.idvl_prio_dlft_eutran_prio",
  9536. FT_UINT8, BASE_DEC, NULL, 0x0,
  9537. NULL, HFILL
  9538. }
  9539. },
  9540. { &hf_idvd_eutran_priority,
  9541. { "E-UTRAN_PRIORITY", "gsm_rlcmac.dl.idvl_prio_eutran_prio",
  9542. FT_UINT8, BASE_DEC, NULL, 0x0,
  9543. NULL, HFILL
  9544. }
  9545. },
  9546. { &hf_idvd_prio_geran_priority,
  9547. { "GERAN_PRIORITY", "gsm_rlcmac.dl.idvl_prio_dlft_geran_prio",
  9548. FT_UINT8, BASE_DEC, NULL, 0x0,
  9549. NULL, HFILL
  9550. }
  9551. },
  9552. { &hf_idvd_prio_t3230_timeout_value,
  9553. { "T3230 timeout value", "gsm_rlcmac.dl.idvl_prio_t3230",
  9554. FT_UINT8, BASE_DEC, NULL, 0x0,
  9555. NULL, HFILL
  9556. }
  9557. },
  9558. { &hf_target_cell_g_rnti_ext,
  9559. { "G-RNTI extension", "gsm_rlcmac.dl.pcco_g_rnti_ext",
  9560. FT_UINT8, BASE_DEC, NULL, 0x0,
  9561. NULL, HFILL
  9562. }
  9563. },
  9564. /* < Packet (Enhanced) Measurement Report message contents > */
  9565. { &hf_ba_used_ba_used,
  9566. { "BA_USED", "gsm_rlcmac.ul.ba_used",
  9567. FT_UINT8, BASE_DEC, NULL, 0x0,
  9568. NULL, HFILL
  9569. }
  9570. },
  9571. { &hf_ba_used_ba_used_3g,
  9572. { "BA_USED_3G", "gsm_rlcmac.ul.ba_used_3g",
  9573. FT_UINT8, BASE_DEC, NULL, 0x0,
  9574. NULL, HFILL
  9575. }
  9576. },
  9577. { &hf_serving_cell_data_rxlev_serving_cell,
  9578. { "RXLEV_SERVING_CELL", "gsm_rlcmac.ul.rxlev_serving_cell",
  9579. FT_UINT8, BASE_DEC, NULL, 0x0,
  9580. NULL, HFILL
  9581. }
  9582. },
  9583. { &hf_nc_measurements_frequency_n,
  9584. { "FREQUENCY_N", "gsm_rlcmac.ul.frequency_n",
  9585. FT_UINT8, BASE_DEC, NULL, 0x0,
  9586. NULL, HFILL
  9587. }
  9588. },
  9589. { &hf_nc_measurements_bsic_n,
  9590. { "BSIC_N", "gsm_rlcmac.ul.bsic_n",
  9591. FT_UINT8, BASE_DEC, NULL, 0x0,
  9592. NULL, HFILL
  9593. }
  9594. },
  9595. { &hf_nc_measurements_rxlev_n,
  9596. { "RXLEV_N", "gsm_rlcmac.ul.rxlev_n",
  9597. FT_UINT8, BASE_DEC, NULL, 0x0,
  9598. NULL, HFILL
  9599. }
  9600. },
  9601. { &hf_repeatedinvalid_bsic_info_bcch_freq_n,
  9602. { "BCCH_FREQ_N", "gsm_rlcmac.ul.bcch_freq_n",
  9603. FT_UINT8, BASE_DEC, NULL, 0x0,
  9604. NULL, HFILL
  9605. }
  9606. },
  9607. { &hf_repeatedinvalid_bsic_info_bsic_n,
  9608. { "BSIC_N", "gsm_rlcmac.ul.bsic_n",
  9609. FT_UINT8, BASE_DEC, NULL, 0x0,
  9610. NULL, HFILL
  9611. }
  9612. },
  9613. { &hf_repeatedinvalid_bsic_info_rxlev_n,
  9614. { "RXLEV_N", "gsm_rlcmac.ul.rxlev_n",
  9615. FT_UINT8, BASE_DEC, NULL, 0x0,
  9616. NULL, HFILL
  9617. }
  9618. },
  9619. { &hf_reporting_quantity_instance_reporting_quantity,
  9620. { "REPORTING_QUANTITY", "gsm_rlcmac.ul.reporting_quantity",
  9621. FT_UINT8, BASE_DEC, NULL, 0x0,
  9622. NULL, HFILL
  9623. }
  9624. },
  9625. { &hf_nc_measurement_report_nc_mode,
  9626. { "NC_MODE", "gsm_rlcmac.ul.nc_mode",
  9627. FT_UINT8, BASE_DEC, NULL, 0x0,
  9628. NULL, HFILL
  9629. }
  9630. },
  9631. { &hf_nc_measurement_report_number_of_nc_measurements,
  9632. { "NUMBER_OF_NC_MEASUREMENTS", "gsm_rlcmac.ul.number_of_nc_measurements",
  9633. FT_UINT8, BASE_DEC, NULL, 0x0,
  9634. NULL, HFILL
  9635. }
  9636. },
  9637. { &hf_enh_nc_measurement_report_nc_mode,
  9638. { "NC_MODE", "gsm_rlcmac.ul.nc_mode",
  9639. FT_UINT8, BASE_DEC, NULL, 0x0,
  9640. NULL, HFILL
  9641. }
  9642. },
  9643. { &hf_enh_nc_measurement_report_pmo_used,
  9644. { "PMO_USED", "gsm_rlcmac.ul.pmo_used",
  9645. FT_UINT8, BASE_DEC, NULL, 0x0,
  9646. NULL, HFILL
  9647. }
  9648. },
  9649. { &hf_enh_nc_measurement_report_bsic_seen,
  9650. { "BSIC_Seen", "gsm_rlcmac.ul.bsic_seen",
  9651. FT_UINT8, BASE_DEC, NULL, 0x0,
  9652. NULL, HFILL
  9653. }
  9654. },
  9655. { &hf_enh_nc_measurement_report_scale,
  9656. { "SCALE", "gsm_rlcmac.ul.scale",
  9657. FT_UINT8, BASE_DEC, NULL, 0x0,
  9658. NULL, HFILL
  9659. }
  9660. },
  9661. { &hf_ext_measurement_report_ext_reporting_type,
  9662. { "EXT_REPORTING_TYPE", "gsm_rlcmac.ul.ext_reporting_type",
  9663. FT_UINT8, BASE_DEC, NULL, 0x0,
  9664. NULL, HFILL
  9665. }
  9666. },
  9667. { &hf_ext_measurement_report_slot0_i_level,
  9668. { "Slot[0].I_LEVEL", "gsm_rlcmac.ul.slot0_i_level",
  9669. FT_UINT8, BASE_DEC, NULL, 0x0,
  9670. NULL, HFILL
  9671. }
  9672. },
  9673. { &hf_ext_measurement_report_slot1_i_level,
  9674. { "Slot[1].I_LEVEL", "gsm_rlcmac.ul.slot1_i_level",
  9675. FT_UINT8, BASE_DEC, NULL, 0x0,
  9676. NULL, HFILL
  9677. }
  9678. },
  9679. { &hf_ext_measurement_report_slot2_i_level,
  9680. { "Slot[2].I_LEVEL", "gsm_rlcmac.ul.slot2_i_level",
  9681. FT_UINT8, BASE_DEC, NULL, 0x0,
  9682. NULL, HFILL
  9683. }
  9684. },
  9685. { &hf_ext_measurement_report_slot3_i_level,
  9686. { "Slot[3].I_LEVEL", "gsm_rlcmac.ul.slot3_i_level",
  9687. FT_UINT8, BASE_DEC, NULL, 0x0,
  9688. NULL, HFILL
  9689. }
  9690. },
  9691. { &hf_ext_measurement_report_slot4_i_level,
  9692. { "Slot[4].I_LEVEL", "gsm_rlcmac.ul.slot4_i_level",
  9693. FT_UINT8, BASE_DEC, NULL, 0x0,
  9694. NULL, HFILL
  9695. }
  9696. },
  9697. { &hf_ext_measurement_report_slot5_i_level,
  9698. { "Slot[5].I_LEVEL", "gsm_rlcmac.ul.slot5_i_level",
  9699. FT_UINT8, BASE_DEC, NULL, 0x0,
  9700. NULL, HFILL
  9701. }
  9702. },
  9703. { &hf_ext_measurement_report_slot6_i_level,
  9704. { "Slot[6].I_LEVEL", "gsm_rlcmac.ul.slot6_i_level",
  9705. FT_UINT8, BASE_DEC, NULL, 0x0,
  9706. NULL, HFILL
  9707. }
  9708. },
  9709. { &hf_ext_measurement_report_slot7_i_level,
  9710. { "Slot[7].I_LEVEL", "gsm_rlcmac.ul.slot7_i_level",
  9711. FT_UINT8, BASE_DEC, NULL, 0x0,
  9712. NULL, HFILL
  9713. }
  9714. },
  9715. { &hf_ext_measurement_report_number_of_ext_measurements,
  9716. { "NUMBER_OF_EXT_MEASUREMENTS", "gsm_rlcmac.ul.number_of_ext_measurements",
  9717. FT_UINT8, BASE_DEC, NULL, 0x0,
  9718. NULL, HFILL
  9719. }
  9720. },
  9721. { &hf_measurements_3g_cell_list_index_3g,
  9722. { "CELL_LIST_INDEX_3G", "gsm_rlcmac.ul.measurements_3g_cell_list_index_3g",
  9723. FT_UINT8, BASE_DEC, NULL, 0x0,
  9724. NULL, HFILL
  9725. }
  9726. },
  9727. { &hf_measurements_3g_reporting_quantity,
  9728. { "REPORTING_QUANTITY", "gsm_rlcmac.ul.measurements_3g_reporting_quantity",
  9729. FT_UINT8, BASE_DEC, NULL, 0x0,
  9730. NULL, HFILL
  9731. }
  9732. },
  9733. { &hf_pmr_additionsr99_pmo_used,
  9734. { "PMO_USED", "gsm_rlcmac.ul.pmr_additionsr99_pmo_used",
  9735. FT_UINT8, BASE_DEC, NULL, 0x0,
  9736. NULL, HFILL
  9737. }
  9738. },
  9739. { &hf_pmr_eutran_meas_rpt_freq_idx,
  9740. { "E-UTRAN_FREQUENCY_INDEX", "gsm_rlcmac.ul.pmr_eutran_meas_rpt_freq_idx",
  9741. FT_UINT8, BASE_DEC, NULL, 0x0,
  9742. NULL, HFILL
  9743. }
  9744. },
  9745. { &hf_pmr_eutran_meas_rpt_cell_id,
  9746. { "CELL IDENTITY", "gsm_rlcmac.ul.pmr_eutran_meas_rpt_cell_id",
  9747. FT_UINT16, BASE_DEC, NULL, 0x0,
  9748. NULL, HFILL
  9749. }
  9750. },
  9751. { &hf_pmr_eutran_meas_rpt_quantity,
  9752. { "REPORTING_QUANTITY", "gsm_rlcmac.ul.pmr_eutran_meas_rpt_quantity",
  9753. FT_UINT8, BASE_DEC, NULL, 0x0,
  9754. NULL, HFILL
  9755. }
  9756. },
  9757. { &hf_emr_servingcell_dtx_used,
  9758. { "DTX_USED", "gsm_rlcmac.ul.emr_servingcell_dtx_used",
  9759. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  9760. NULL, HFILL
  9761. }
  9762. },
  9763. { &hf_emr_servingcell_rxlev_val,
  9764. { "RXLEV_VAL", "gsm_rlcmac.ul.emr_servingcell_rxlev_val",
  9765. FT_UINT8, BASE_DEC, NULL, 0x0,
  9766. NULL, HFILL
  9767. }
  9768. },
  9769. { &hf_emr_servingcell_rx_qual_full,
  9770. { "RX_QUAL_FULL", "gsm_rlcmac.ul.emr_servingcell_rx_qual_full",
  9771. FT_UINT8, BASE_DEC, NULL, 0x0,
  9772. NULL, HFILL
  9773. }
  9774. },
  9775. { &hf_emr_servingcell_mean_bep,
  9776. { "MEAN_BEP", "gsm_rlcmac.ul.emr_mean_bep",
  9777. FT_UINT8, BASE_DEC, NULL, 0x0,
  9778. NULL, HFILL
  9779. }
  9780. },
  9781. { &hf_emr_servingcell_cv_bep,
  9782. { "CV_BEP", "gsm_rlcmac.ul.emr_cv_bep",
  9783. FT_UINT8, BASE_DEC, NULL, 0x0,
  9784. NULL, HFILL
  9785. }
  9786. },
  9787. { &hf_emr_servingcell_nbr_rcvd_blocks,
  9788. { "NBR_RCVD_BLOCKS", "gsm_rlcmac.ul.emr_nbr_rcvd_blocks",
  9789. FT_UINT8, BASE_DEC, NULL, 0x0,
  9790. NULL, HFILL
  9791. }
  9792. },
  9793. { &hf_enhancedmeasurementreport_rr_short_pd,
  9794. { "RR_Short_PD", "gsm_rlcmac.ul.emr_rr_short_pd",
  9795. FT_UINT8, BASE_DEC, NULL, 0x0,
  9796. NULL, HFILL
  9797. }
  9798. },
  9799. { &hf_enhancedmeasurementreport_message_type,
  9800. { "MESSAGE_TYPE", "gsm_rlcmac.ul.emr_message_type",
  9801. FT_UINT8, BASE_DEC, NULL, 0x0,
  9802. NULL, HFILL
  9803. }
  9804. },
  9805. { &hf_enhancedmeasurementreport_shortlayer2_header,
  9806. { "ShortLayer2_Header", "gsm_rlcmac.ul.emr_shortlayer2_header",
  9807. FT_UINT8, BASE_DEC, NULL, 0x0,
  9808. NULL, HFILL
  9809. }
  9810. },
  9811. { &hf_enhancedmeasurementreport_bsic_seen,
  9812. { "BSIC_Seen", "gsm_rlcmac.ul.emr_bsic_seen",
  9813. FT_UINT8, BASE_DEC, NULL, 0x0,
  9814. NULL, HFILL
  9815. }
  9816. },
  9817. { &hf_enhancedmeasurementreport_scale,
  9818. { "SCALE", "gsm_rlcmac.ul.emr_scale",
  9819. FT_UINT8, BASE_DEC, NULL, 0x0,
  9820. NULL, HFILL
  9821. }
  9822. },
  9823. { &hf_packet_measurement_report_psi5_change_mark,
  9824. { "PSI5_CHANGE_MARK", "gsm_rlcmac.ul.pmr_psi5_change_mark",
  9825. FT_UINT8, BASE_DEC, NULL, 0x0,
  9826. NULL, HFILL
  9827. }
  9828. },
  9829. /* < Packet Measurement Order message contents > */
  9830. { &hf_ext_frequency_list_start_frequency,
  9831. { "START_FREQUENCY", "gsm_rlcmac.dl.ext_frequency_list_start_frequency",
  9832. FT_UINT8, BASE_DEC, NULL, 0x0,
  9833. NULL, HFILL
  9834. }
  9835. },
  9836. { &hf_ext_frequency_list_nr_of_frequencies,
  9837. { "NR_OF_FREQUENCIES", "gsm_rlcmac.dl.ext_frequency_list_nr_of_frequencies",
  9838. FT_UINT8, BASE_DEC, NULL, 0x0,
  9839. NULL, HFILL
  9840. }
  9841. },
  9842. { &hf_ext_frequency_list_freq_diff_length,
  9843. { "FREQ_DIFF_LENGTH", "gsm_rlcmac.dl.ext_frequency_list_freq_diff_length",
  9844. FT_UINT8, BASE_DEC, NULL, 0x0,
  9845. NULL, HFILL
  9846. }
  9847. },
  9848. { &hf_packet_measurement_order_pmo_index,
  9849. { "PMO_INDEX", "gsm_rlcmac.dl.pmo_index",
  9850. FT_UINT8, BASE_DEC, NULL, 0x0,
  9851. NULL, HFILL
  9852. }
  9853. },
  9854. { &hf_packet_measurement_order_pmo_count,
  9855. { "PMO_COUNT", "gsm_rlcmac.dl.pmo_count",
  9856. FT_UINT8, BASE_DEC, NULL, 0x0,
  9857. NULL, HFILL
  9858. }
  9859. },
  9860. { &hf_ccn_measurement_report_rxlev_serving_cell,
  9861. { "RXLEV_SERVING_CELL", "gsm_rlcmac.dl.rxlev_serving_cell",
  9862. FT_UINT8, BASE_DEC, NULL, 0x0,
  9863. NULL, HFILL
  9864. }
  9865. },
  9866. { &hf_ccn_measurement_report_number_of_nc_measurements,
  9867. { "NUMBER_OF_NC_MEASUREMENTS", "gsm_rlcmac.dl.number_of_nc_measurements",
  9868. FT_UINT8, BASE_DEC, NULL, 0x0,
  9869. NULL, HFILL
  9870. }
  9871. },
  9872. { &hf_target_cell_gsm_notif_bsic,
  9873. { "BSIC", "gsm_rlcmac.dl.target_cell_gsm_notif_bsic",
  9874. FT_UINT8, BASE_DEC, NULL, 0x0,
  9875. NULL, HFILL
  9876. }
  9877. },
  9878. { &hf_fdd_target_cell_notif_fdd_arfcn,
  9879. { "FDD_ARFCN", "gsm_rlcmac.dl.fdd_target_cell_notif_fdd_arfcn",
  9880. FT_UINT8, BASE_DEC, NULL, 0x0,
  9881. NULL, HFILL
  9882. }
  9883. },
  9884. { &hf_fdd_target_cell_notif_bandwith_fdd,
  9885. { "BANDWITH_FDD", "gsm_rlcmac.dl.fdd_target_cell_notif_bandwith_fdd",
  9886. FT_UINT8, BASE_DEC, NULL, 0x0,
  9887. NULL, HFILL
  9888. }
  9889. },
  9890. { &hf_fdd_target_cell_notif_scrambling_code,
  9891. { "SCRAMBLING_CODE", "gsm_rlcmac.dl.fdd_target_cell_notif_scrambling_code",
  9892. FT_UINT8, BASE_DEC, NULL, 0x0,
  9893. NULL, HFILL
  9894. }
  9895. },
  9896. { &hf_target_cell_3g_notif_reporting_quantity,
  9897. { "REPORTING_QUANTITY", "gsm_rlcmac.dl.target_cell_3g_notif_reporting_quantity",
  9898. FT_UINT8, BASE_DEC, NULL, 0x0,
  9899. NULL, HFILL
  9900. }
  9901. },
  9902. { &hf_pccn_additionsr6_ba_used_3g,
  9903. { "BA_USED_3G", "gsm_rlcmac.dl.pccn_additionsr6_ba_used_3g",
  9904. FT_UINT8, BASE_DEC, NULL, 0x0,
  9905. NULL, HFILL
  9906. }
  9907. },
  9908. /* < Packet Cell Change Notification message contents > */
  9909. { &hf_packet_cell_change_notification_ba_ind,
  9910. { "BA_IND", "gsm_rlcmac.ul.pccn_ba_ind",
  9911. FT_UINT8, BASE_DEC, NULL, 0x0,
  9912. NULL, HFILL
  9913. }
  9914. },
  9915. { &hf_packet_cell_change_notification_pmo_used,
  9916. { "PMO_USED", "gsm_rlcmac.ul.pccn_pmo_used",
  9917. FT_UINT8, BASE_DEC, NULL, 0x0,
  9918. NULL, HFILL
  9919. }
  9920. },
  9921. { &hf_packet_cell_change_notification_pccn_sending,
  9922. { "PCCN_SENDING", "gsm_rlcmac.ul.pccn_pccn_sending",
  9923. FT_UINT8, BASE_DEC, NULL, 0x0,
  9924. NULL, HFILL
  9925. }
  9926. },
  9927. { &hf_packet_cell_change_notification_lte_reporting_quantity,
  9928. { "REPORTING_QUANTITY", "gsm_rlcmac.ul.pccn_lte_reporting_quantity",
  9929. FT_UINT8, BASE_DEC, NULL, 0x0,
  9930. NULL, HFILL
  9931. }
  9932. },
  9933. { &hf_eutran_ccn_meas_rpt_3g_ba_used,
  9934. { "3G_BA_USED", "gsm_rlcmac.ul.pccn_eutran_ccn_meas_rpt_3g_ba_used",
  9935. FT_UINT8, BASE_DEC, NULL, 0x0,
  9936. NULL, HFILL
  9937. }
  9938. },
  9939. { &hf_eutran_ccn_meas_rpt_freq_idx,
  9940. { "E-UTRAN_FREQUENCY_INDEX", "gsm_rlcmac.ul.pccn_eutran_ccn_meas_rpt_freq_idx",
  9941. FT_UINT8, BASE_DEC, NULL, 0x0,
  9942. NULL, HFILL
  9943. }
  9944. },
  9945. { &hf_eutran_ccn_meas_cell_id,
  9946. { "CELL IDENTITY", "gsm_rlcmac.ul.pccn_eutran_ccn_meas_rpt_cell_id",
  9947. FT_UINT32, BASE_DEC, NULL, 0x0,
  9948. NULL, HFILL
  9949. }
  9950. },
  9951. { &hf_eutran_ccn_meas_rpt_quantity,
  9952. { "REPORTING_QUANTITY", "gsm_rlcmac.ul.pccn_eutran_ccn_meas_rpt_rpt_quantity",
  9953. FT_UINT8, BASE_DEC, NULL, 0x0,
  9954. NULL, HFILL
  9955. }
  9956. },
  9957. { &hf_utran_csg_meas_rpt_cgi,
  9958. { "UTRAN_CGI", "gsm_rlcmac.ul.utran_csg_meas_rpt_cgi",
  9959. FT_UINT32, BASE_DEC, NULL, 0x0,
  9960. NULL, HFILL
  9961. }
  9962. },
  9963. { &hf_utran_csg_meas_rpt_csg_id,
  9964. { "CSG_ID", "gsm_rlcmac.ul.utran_csg_meas_rpt_csg_id",
  9965. FT_UINT32, BASE_DEC, NULL, 0x0,
  9966. NULL, HFILL
  9967. }
  9968. },
  9969. { &hf_utran_csg_meas_rpt_access_mode,
  9970. { "Access Mode", "gsm_rlcmac.ul.utran_csg_meas_rpt_access_mode",
  9971. FT_UINT8, BASE_DEC, NULL, 0x0,
  9972. NULL, HFILL
  9973. }
  9974. },
  9975. { &hf_utran_csg_meas_rpt_quantity,
  9976. { "REPORTING_QUANTITY", "gsm_rlcmac.ul.utran_csg_meas_rpt_quantity",
  9977. FT_UINT8, BASE_DEC, NULL, 0x0,
  9978. NULL, HFILL
  9979. }
  9980. },
  9981. { &hf_eutran_csg_meas_rpt_cgi,
  9982. { "EUTRAN_CGI", "gsm_rlcmac.ul.eutran_csg_meas_rpt_cgi",
  9983. FT_UINT32, BASE_DEC, NULL, 0x0,
  9984. NULL, HFILL
  9985. }
  9986. },
  9987. { &hf_eutran_csg_meas_rpt_ta,
  9988. { "Tracking Area Code", "gsm_rlcmac.ul.eutran_csg_meas_rpt_ta",
  9989. FT_UINT32, BASE_DEC, NULL, 0x0,
  9990. NULL, HFILL
  9991. }
  9992. },
  9993. { &hf_eutran_csg_meas_rpt_csg_id,
  9994. { "CSG_ID", "gsm_rlcmac.ul.eutran_csg_meas_rpt_csg_id",
  9995. FT_UINT32, BASE_DEC, NULL, 0x0,
  9996. NULL, HFILL
  9997. }
  9998. },
  9999. { &hf_eutran_csg_meas_rpt_access_mode,
  10000. { "Access Mode", "gsm_rlcmac.ul.eutran_csg_meas_rpt_access_mode",
  10001. FT_UINT8, BASE_DEC, NULL, 0x0,
  10002. NULL, HFILL
  10003. }
  10004. },
  10005. { &hf_eutran_csg_meas_rpt_quantity,
  10006. { "REPORTING_QUANTITY", "gsm_rlcmac.ul.eutran_csg_meas_rpt_quantity",
  10007. FT_UINT8, BASE_DEC, NULL, 0x0,
  10008. NULL, HFILL
  10009. }
  10010. },
  10011. /* < Packet Cell Change Continue message contents > */
  10012. { &hf_packet_cell_change_continue_arfcn,
  10013. { "ARFCN", "gsm_rlcmac.dl.pccc_arfcn",
  10014. FT_UINT8, BASE_DEC, NULL, 0x0,
  10015. NULL, HFILL
  10016. }
  10017. },
  10018. { &hf_packet_cell_change_continue_bsic,
  10019. { "BSIC", "gsm_rlcmac.dl.pccc_bsic",
  10020. FT_UINT8, BASE_DEC, NULL, 0x0,
  10021. NULL, HFILL
  10022. }
  10023. },
  10024. { &hf_packet_cell_change_continue_container_id,
  10025. { "CONTAINER_ID", "gsm_rlcmac.dl.pccc_container_id",
  10026. FT_UINT8, BASE_DEC, NULL, 0x0,
  10027. NULL, HFILL
  10028. }
  10029. },
  10030. /* < Packet Neighbour Cell Data message contents > */
  10031. { &hf_pncd_container_with_id_bsic,
  10032. { "BSIC", "gsm_rlcmac.dl.pncd_bsic",
  10033. FT_UINT8, BASE_DEC, NULL, 0x0,
  10034. NULL, HFILL
  10035. }
  10036. },
  10037. { &hf_packet_neighbour_cell_data_container_id,
  10038. { "CONTAINER_ID", "gsm_rlcmac.dl.pncd_container_id",
  10039. FT_UINT8, BASE_DEC, NULL, 0x0,
  10040. NULL, HFILL
  10041. }
  10042. },
  10043. { &hf_packet_neighbour_cell_data_spare,
  10044. { "spare", "gsm_rlcmac.dl.pncd_spare",
  10045. FT_UINT8, BASE_DEC, NULL, 0x0,
  10046. NULL, HFILL
  10047. }
  10048. },
  10049. { &hf_packet_neighbour_cell_data_container_index,
  10050. { "CONTAINER_INDEX", "gsm_rlcmac.dl.pncd_container_index",
  10051. FT_UINT8, BASE_DEC, NULL, 0x0,
  10052. NULL, HFILL
  10053. }
  10054. },
  10055. /* < Packet Serving Cell Data message contents > */
  10056. { &hf_packet_serving_cell_data_spare,
  10057. { "spare", "gsm_rlcmac.dl.pscd_spare",
  10058. FT_UINT8, BASE_DEC, NULL, 0x0,
  10059. NULL, HFILL
  10060. }
  10061. },
  10062. { &hf_packet_serving_cell_data_container_index,
  10063. { "CONTAINER_INDEX", "gsm_rlcmac.dl.pscd_container_index",
  10064. FT_UINT8, BASE_DEC, NULL, 0x0,
  10065. NULL, HFILL
  10066. }
  10067. },
  10068. { &hf_servingcelldata_rxlev_serving_cell,
  10069. { "RXLEV_SERVING_CELL", "gsm_rlcmac.dl.servingcelldata_rxlev_serving_cell",
  10070. FT_UINT8, BASE_DEC, NULL, 0x0,
  10071. NULL, HFILL
  10072. }
  10073. },
  10074. { &hf_repeated_invalid_bsic_info_bcch_freq_ncell,
  10075. { "BCCH_FREQ_NCELL", "gsm_rlcmac.dl.repeated_invalid_bsic_info_bcch_freq_ncell",
  10076. FT_UINT8, BASE_DEC, NULL, 0x0,
  10077. NULL, HFILL
  10078. }
  10079. },
  10080. { &hf_repeated_invalid_bsic_info_bsic,
  10081. { "BSIC", "gsm_rlcmac.dl.repeated_invalid_bsic_info_bsic",
  10082. FT_UINT8, BASE_DEC, NULL, 0x0,
  10083. NULL, HFILL
  10084. }
  10085. },
  10086. { &hf_repeated_invalid_bsic_info_rxlev_ncell,
  10087. { "RXLEV_NCELL", "gsm_rlcmac.dl.repeated_invalid_bsic_info_rxlev_ncell",
  10088. FT_UINT8, BASE_DEC, NULL, 0x0,
  10089. NULL, HFILL
  10090. }
  10091. },
  10092. { &hf_reporting_quantity_reporting_quantity,
  10093. { "REPORTING_QUANTITY", "gsm_rlcmac.dl.repeated_invalid_bsic_info_reporting_quantity",
  10094. FT_UINT8, BASE_DEC, NULL, 0x0,
  10095. NULL, HFILL
  10096. }
  10097. },
  10098. { &hf_nc_measurementreport_nc_mode,
  10099. { "NC_MODE", "gsm_rlcmac.dl.nc_measurementreport_nc_mode",
  10100. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  10101. NULL, HFILL
  10102. }
  10103. },
  10104. { &hf_nc_measurementreport_pmo_used,
  10105. { "PMO_USED", "gsm_rlcmac.dl.nc_measurementreport_pmo_used",
  10106. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  10107. NULL, HFILL
  10108. }
  10109. },
  10110. { &hf_nc_measurementreport_scale,
  10111. { "SCALE", "gsm_rlcmac.dl.nc_measurementreport_scale",
  10112. FT_BOOLEAN, BASE_NONE, NULL, 0x0,
  10113. NULL, HFILL
  10114. }
  10115. },
  10116. /* < Packet Handover Command message content > */
  10117. { &hf_globaltimeslotdescription_ms_timeslotallocation,
  10118. { "MS_TimeslotAllocation",