1 /* packet-lte-rrc-template.c
2 * Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
3 * Radio Resource Control (RRC) protocol specification
4 * (3GPP TS 36.331 V18.3.0 Release 18) packet dissection
5 * Copyright 2008, Vincent Helfre
6 * Copyright 2009-2024, Pascal Quantin
8 * Wireshark - Network traffic analyzer
9 * By Gerald Combs <gerald@wireshark.org>
10 * Copyright 1998 Gerald Combs
12 * SPDX-License-Identifier: GPL-2.0-or-later
19 #include <epan/packet.h>
20 #include <epan/prefs.h>
21 #include <epan/to_str.h>
22 #include <epan/asn1.h>
23 #include <epan/expert.h>
24 #include <epan/reassemble.h>
25 #include <epan/exceptions.h>
26 #include <epan/show_exception.h>
27 #include <epan/proto_data.h>
29 #include <epan/unit_strings.h>
31 #include <wsutil/str_util.h>
32 #include <wsutil/epochs.h>
33 #include <wsutil/array.h>
35 #include "packet-per.h"
36 #include "packet-rrc.h"
37 #include "packet-gsm_a_common.h"
38 #include "packet-lpp.h"
39 #include "packet-gsm_map.h"
40 #include "packet-cell_broadcast.h"
41 #include "packet-mac-lte.h"
42 #include "packet-rlc-lte.h"
43 #include "packet-pdcp-lte.h"
44 #include "packet-nr-rrc.h"
45 #include "packet-lte-rrc.h"
47 #define PNAME "LTE Radio Resource Control (RRC) protocol"
48 #define PSNAME "LTE RRC"
49 #define PFNAME "lte_rrc"
51 void proto_register_lte_rrc(void);
52 void proto_reg_handoff_lte_rrc(void);
54 static dissector_handle_t nas_eps_handle
;
55 static dissector_handle_t nas_5gs_handle
;
56 static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle
;
57 static dissector_handle_t rrc_sys_info_cont_handle
;
58 static dissector_handle_t gsm_a_dtap_handle
;
59 static dissector_handle_t gsm_rlcmac_dl_handle
;
60 static dissector_handle_t nr_rrc_reconf_handle
;
61 static dissector_handle_t lte_rrc_conn_reconf_handle
;
62 static dissector_handle_t lte_rrc_dl_ccch_handle
;
64 static wmem_map_t
*lte_rrc_etws_cmas_dcs_hash
;
66 /* Keep track of where/how the System Info value has changed */
67 static wmem_map_t
*lte_rrc_system_info_value_changed_hash
;
68 static uint8_t system_info_value_current
;
69 static bool system_info_value_current_set
;
71 static wmem_map_t
*lte_rrc_dcch_segment_ueid_count_hash
;
72 static wmem_tree_t
*lte_rrc_dcch_segment_id_tree
;
74 static bool lte_rrc_nas_in_root_tree
;
75 static bool lte_rrc_reassemble_dcch_segments
;
77 extern int proto_mac_lte
;
78 extern int proto_rlc_lte
;
79 extern int proto_pdcp_lte
;
82 /* Include constants */
83 #include "packet-lte-rrc-val.h"
85 /* Initialize the protocol and registered fields */
86 static int proto_lte_rrc
;
88 #include "packet-lte-rrc-hf.c"
90 static int hf_lte_rrc_eutra_cap_feat_group_ind_1
;
91 static int hf_lte_rrc_eutra_cap_feat_group_ind_2
;
92 static int hf_lte_rrc_eutra_cap_feat_group_ind_3
;
93 static int hf_lte_rrc_eutra_cap_feat_group_ind_4
;
94 static int hf_lte_rrc_eutra_cap_feat_group_ind_5
;
95 static int hf_lte_rrc_eutra_cap_feat_group_ind_6
;
96 static int hf_lte_rrc_eutra_cap_feat_group_ind_7
;
97 static int hf_lte_rrc_eutra_cap_feat_group_ind_8
;
98 static int hf_lte_rrc_eutra_cap_feat_group_ind_9
;
99 static int hf_lte_rrc_eutra_cap_feat_group_ind_10
;
100 static int hf_lte_rrc_eutra_cap_feat_group_ind_11
;
101 static int hf_lte_rrc_eutra_cap_feat_group_ind_12
;
102 static int hf_lte_rrc_eutra_cap_feat_group_ind_13
;
103 static int hf_lte_rrc_eutra_cap_feat_group_ind_14
;
104 static int hf_lte_rrc_eutra_cap_feat_group_ind_15
;
105 static int hf_lte_rrc_eutra_cap_feat_group_ind_16
;
106 static int hf_lte_rrc_eutra_cap_feat_group_ind_17
;
107 static int hf_lte_rrc_eutra_cap_feat_group_ind_18
;
108 static int hf_lte_rrc_eutra_cap_feat_group_ind_19
;
109 static int hf_lte_rrc_eutra_cap_feat_group_ind_20
;
110 static int hf_lte_rrc_eutra_cap_feat_group_ind_21
;
111 static int hf_lte_rrc_eutra_cap_feat_group_ind_22
;
112 static int hf_lte_rrc_eutra_cap_feat_group_ind_23
;
113 static int hf_lte_rrc_eutra_cap_feat_group_ind_24
;
114 static int hf_lte_rrc_eutra_cap_feat_group_ind_25
;
115 static int hf_lte_rrc_eutra_cap_feat_group_ind_26
;
116 static int hf_lte_rrc_eutra_cap_feat_group_ind_27
;
117 static int hf_lte_rrc_eutra_cap_feat_group_ind_28
;
118 static int hf_lte_rrc_eutra_cap_feat_group_ind_29
;
119 static int hf_lte_rrc_eutra_cap_feat_group_ind_30
;
120 static int hf_lte_rrc_eutra_cap_feat_group_ind_31
;
121 static int hf_lte_rrc_eutra_cap_feat_group_ind_32
;
122 static int hf_lte_rrc_eutra_cap_feat_group_ind_33
;
123 static int hf_lte_rrc_eutra_cap_feat_group_ind_34
;
124 static int hf_lte_rrc_eutra_cap_feat_group_ind_35
;
125 static int hf_lte_rrc_eutra_cap_feat_group_ind_36
;
126 static int hf_lte_rrc_eutra_cap_feat_group_ind_37
;
127 static int hf_lte_rrc_eutra_cap_feat_group_ind_38
;
128 static int hf_lte_rrc_eutra_cap_feat_group_ind_39
;
129 static int hf_lte_rrc_eutra_cap_feat_group_ind_40
;
130 static int hf_lte_rrc_eutra_cap_feat_group_ind_41
;
131 static int hf_lte_rrc_eutra_cap_feat_group_ind_42
;
132 static int hf_lte_rrc_eutra_cap_feat_group_ind_43
;
133 static int hf_lte_rrc_eutra_cap_feat_group_ind_44
;
134 static int hf_lte_rrc_eutra_cap_feat_group_ind_45
;
135 static int hf_lte_rrc_eutra_cap_feat_group_ind_46
;
136 static int hf_lte_rrc_eutra_cap_feat_group_ind_47
;
137 static int hf_lte_rrc_eutra_cap_feat_group_ind_48
;
138 static int hf_lte_rrc_eutra_cap_feat_group_ind_49
;
139 static int hf_lte_rrc_eutra_cap_feat_group_ind_50
;
140 static int hf_lte_rrc_eutra_cap_feat_group_ind_51
;
141 static int hf_lte_rrc_eutra_cap_feat_group_ind_52
;
142 static int hf_lte_rrc_eutra_cap_feat_group_ind_53
;
143 static int hf_lte_rrc_eutra_cap_feat_group_ind_54
;
144 static int hf_lte_rrc_eutra_cap_feat_group_ind_55
;
145 static int hf_lte_rrc_eutra_cap_feat_group_ind_56
;
146 static int hf_lte_rrc_eutra_cap_feat_group_ind_57
;
147 static int hf_lte_rrc_eutra_cap_feat_group_ind_58
;
148 static int hf_lte_rrc_eutra_cap_feat_group_ind_59
;
149 static int hf_lte_rrc_eutra_cap_feat_group_ind_60
;
150 static int hf_lte_rrc_eutra_cap_feat_group_ind_61
;
151 static int hf_lte_rrc_eutra_cap_feat_group_ind_62
;
152 static int hf_lte_rrc_eutra_cap_feat_group_ind_63
;
153 static int hf_lte_rrc_eutra_cap_feat_group_ind_64
;
154 static int hf_lte_rrc_eutra_cap_feat_group_ind_101
;
155 static int hf_lte_rrc_eutra_cap_feat_group_ind_102
;
156 static int hf_lte_rrc_eutra_cap_feat_group_ind_103
;
157 static int hf_lte_rrc_eutra_cap_feat_group_ind_104
;
158 static int hf_lte_rrc_eutra_cap_feat_group_ind_105
;
159 static int hf_lte_rrc_eutra_cap_feat_group_ind_106
;
160 static int hf_lte_rrc_eutra_cap_feat_group_ind_107
;
161 static int hf_lte_rrc_eutra_cap_feat_group_ind_108
;
162 static int hf_lte_rrc_eutra_cap_feat_group_ind_109
;
163 static int hf_lte_rrc_eutra_cap_feat_group_ind_110
;
164 static int hf_lte_rrc_eutra_cap_feat_group_ind_111
;
165 static int hf_lte_rrc_eutra_cap_feat_group_ind_112
;
166 static int hf_lte_rrc_eutra_cap_feat_group_ind_113
;
167 static int hf_lte_rrc_eutra_cap_feat_group_ind_114
;
168 static int hf_lte_rrc_eutra_cap_feat_group_ind_115
;
169 static int hf_lte_rrc_eutra_cap_feat_group_ind_116
;
170 static int hf_lte_rrc_eutra_cap_feat_group_ind_117
;
171 static int hf_lte_rrc_eutra_cap_feat_group_ind_118
;
172 static int hf_lte_rrc_eutra_cap_feat_group_ind_119
;
173 static int hf_lte_rrc_eutra_cap_feat_group_ind_120
;
174 static int hf_lte_rrc_eutra_cap_feat_group_ind_121
;
175 static int hf_lte_rrc_eutra_cap_feat_group_ind_122
;
176 static int hf_lte_rrc_eutra_cap_feat_group_ind_123
;
177 static int hf_lte_rrc_eutra_cap_feat_group_ind_124
;
178 static int hf_lte_rrc_eutra_cap_feat_group_ind_125
;
179 static int hf_lte_rrc_eutra_cap_feat_group_ind_126
;
180 static int hf_lte_rrc_eutra_cap_feat_group_ind_127
;
181 static int hf_lte_rrc_eutra_cap_feat_group_ind_128
;
182 static int hf_lte_rrc_eutra_cap_feat_group_ind_129
;
183 static int hf_lte_rrc_eutra_cap_feat_group_ind_130
;
184 static int hf_lte_rrc_eutra_cap_feat_group_ind_131
;
185 static int hf_lte_rrc_eutra_cap_feat_group_ind_132
;
186 static int hf_lte_rrc_serialNumber_gs
;
187 static int hf_lte_rrc_serialNumber_msg_code
;
188 static int hf_lte_rrc_serialNumber_upd_nb
;
189 static int hf_lte_rrc_warningType_value
;
190 static int hf_lte_rrc_warningType_emergency_user_alert
;
191 static int hf_lte_rrc_warningType_popup
;
192 static int hf_lte_rrc_warningMessageSegment_nb_pages
;
193 static int hf_lte_rrc_warningMessageSegment_decoded_page
;
194 static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1
;
195 static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2
;
196 static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1
;
197 static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2
;
198 static int hf_lte_rrc_aperiodicCSI_Reporting_r13_bit1
;
199 static int hf_lte_rrc_aperiodicCSI_Reporting_r13_bit2
;
200 static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit1
;
201 static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit2
;
202 static int hf_lte_rrc_sr_config_periodicity
;
203 static int hf_lte_rrc_sr_config_subframe_offset
;
204 static int hf_lte_rrc_cdma_time
;
205 static int hf_lte_rrc_utc_time
;
206 static int hf_lte_rrc_local_time
;
207 static int hf_lte_rrc_absolute_time
;
208 static int hf_lte_rrc_transmissionModeList_r12_tm1
;
209 static int hf_lte_rrc_transmissionModeList_r12_tm2
;
210 static int hf_lte_rrc_transmissionModeList_r12_tm3
;
211 static int hf_lte_rrc_transmissionModeList_r12_tm4
;
212 static int hf_lte_rrc_transmissionModeList_r12_tm6
;
213 static int hf_lte_rrc_transmissionModeList_r12_tm8
;
214 static int hf_lte_rrc_transmissionModeList_r12_tm9
;
215 static int hf_lte_rrc_transmissionModeList_r12_tm10
;
216 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0
;
217 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1
;
218 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2
;
219 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3
;
220 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4
;
221 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5
;
222 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6
;
223 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7
;
224 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8
;
225 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9
;
226 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10
;
227 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11
;
228 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12
;
229 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13
;
230 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14
;
231 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15
;
232 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16
;
233 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17
;
234 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18
;
235 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19
;
236 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20
;
237 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21
;
238 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22
;
239 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23
;
240 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24
;
241 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25
;
242 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26
;
243 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27
;
244 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28
;
245 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29
;
246 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30
;
247 static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31
;
248 static int hf_lte_rrc_sib11_fragments
;
249 static int hf_lte_rrc_sib11_fragment
;
250 static int hf_lte_rrc_sib11_fragment_overlap
;
251 static int hf_lte_rrc_sib11_fragment_overlap_conflict
;
252 static int hf_lte_rrc_sib11_fragment_multiple_tails
;
253 static int hf_lte_rrc_sib11_fragment_too_long_fragment
;
254 static int hf_lte_rrc_sib11_fragment_error
;
255 static int hf_lte_rrc_sib11_fragment_count
;
256 static int hf_lte_rrc_sib11_reassembled_in
;
257 static int hf_lte_rrc_sib11_reassembled_length
;
258 static int hf_lte_rrc_sib11_reassembled_data
;
259 static int hf_lte_rrc_sib12_fragments
;
260 static int hf_lte_rrc_sib12_fragment
;
261 static int hf_lte_rrc_sib12_fragment_overlap
;
262 static int hf_lte_rrc_sib12_fragment_overlap_conflict
;
263 static int hf_lte_rrc_sib12_fragment_multiple_tails
;
264 static int hf_lte_rrc_sib12_fragment_too_long_fragment
;
265 static int hf_lte_rrc_sib12_fragment_error
;
266 static int hf_lte_rrc_sib12_fragment_count
;
267 static int hf_lte_rrc_sib12_reassembled_in
;
268 static int hf_lte_rrc_sib12_reassembled_length
;
269 static int hf_lte_rrc_sib12_reassembled_data
;
270 static int hf_lte_rrc_dcch_segment_fragments
;
271 static int hf_lte_rrc_dcch_segment_fragment
;
272 static int hf_lte_rrc_dcch_segment_fragment_overlap
;
273 static int hf_lte_rrc_dcch_segment_fragment_overlap_conflict
;
274 static int hf_lte_rrc_dcch_segment_fragment_multiple_tails
;
275 static int hf_lte_rrc_dcch_segment_fragment_too_long_fragment
;
276 static int hf_lte_rrc_dcch_segment_fragment_error
;
277 static int hf_lte_rrc_dcch_segment_fragment_count
;
278 static int hf_lte_rrc_dcch_segment_reassembled_in
;
279 static int hf_lte_rrc_dcch_segment_reassembled_length
;
280 static int hf_lte_rrc_dcch_segment_reassembled_data
;
281 static int hf_lte_rrc_measGapPatterns_r15_bit1
;
282 static int hf_lte_rrc_measGapPatterns_r15_bit2
;
283 static int hf_lte_rrc_measGapPatterns_r15_bit3
;
284 static int hf_lte_rrc_measGapPatterns_r15_bit4
;
285 static int hf_lte_rrc_measGapPatterns_r15_bit5
;
286 static int hf_lte_rrc_measGapPatterns_r15_bit6
;
287 static int hf_lte_rrc_measGapPatterns_r15_bit7
;
288 static int hf_lte_rrc_measGapPatterns_r15_bit8
;
290 /* Initialize the subtree pointers */
291 static int ett_lte_rrc
;
293 #include "packet-lte-rrc-ett.c"
295 static int ett_lte_rrc_featureGroupIndicators
;
296 static int ett_lte_rrc_featureGroupIndRel9Add
;
297 static int ett_lte_rrc_featureGroupIndRel10
;
298 static int ett_lte_rrc_absTimeInfo
;
299 static int ett_lte_rrc_nas_SecurityParam
;
300 static int ett_lte_rrc_targetRAT_MessageContainer
;
301 static int ett_lte_rrc_siPsiSibContainer
;
302 static int ett_lte_rrc_dedicatedInfoNAS
;
303 static int ett_lte_rrc_timeInfo
;
304 static int ett_lte_rrc_serialNumber
;
305 static int ett_lte_rrc_warningType
;
306 static int ett_lte_rrc_dataCodingScheme
;
307 static int ett_lte_rrc_warningMessageSegment
;
308 static int ett_lte_rrc_interBandTDD_CA_WithDifferentConfig
;
309 static int ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12
;
310 static int ett_lte_rrc_aperiodicCSI_Reporting_r13
;
311 static int ett_lte_rrc_codebook_HARQ_ACK_r13
;
312 static int ett_lte_rrc_sr_ConfigIndex
;
313 static int ett_lte_rrc_transmissionModeList_r12
;
314 static int ett_lte_rrc_modifiedMPR_Behavior_r10
;
315 static int ett_lte_rrc_sib11_fragment
;
316 static int ett_lte_rrc_sib11_fragments
;
317 static int ett_lte_rrc_sib12_fragment
;
318 static int ett_lte_rrc_sib12_fragments
;
319 static int ett_lte_rrc_dcch_segment_fragment
;
320 static int ett_lte_rrc_dcch_segment_fragments
;
321 static int ett_lte_rrc_nr_SecondaryCellGroupConfig_r15
;
322 static int ett_lte_rrc_nr_RadioBearerConfig_r15
;
323 static int ett_lte_rrc_nr_RadioBearerConfigS_r15
;
324 static int ett_lte_rrc_sl_ConfigDedicatedForNR_r16
;
325 static int ett_lte_rrc_nr_SecondaryCellGroupConfig
;
326 static int ett_lte_rrc_scg_ConfigResponseNR_r15
;
327 static int ett_lte_rrc_scg_ConfigResponseNR_r16
;
328 static int ett_lte_rrc_measResultSCG_r15
;
329 static int ett_lte_rrc_measResultSCG_r16
;
330 static int ett_lte_rrc_ul_DCCH_MessageNR_r15
;
331 static int ett_lte_rrc_ul_DCCH_MessageNR_r16
;
332 static int ett_lte_rrc_sourceRB_ConfigNR_r15
;
333 static int ett_lte_rrc_sourceRB_ConfigSN_NR_r15
;
334 static int ett_lte_rrc_sourceOtherConfigSN_NR_r15
;
335 static int ett_lte_rrc_sourceContextEN_DC_r15
;
336 static int ett_lte_rrc_requestedFreqBandsNR_MRDC_r15
;
337 static int ett_lte_rrc_measGapPatterns_r15
;
338 static int ett_lte_rrc_nas_Container_r15
;
339 static int ett_lte_rrc_sourceRB_ConfigIntra5GC_r15
;
340 static int ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540
;
341 static int ett_lte_rrc_requestedCapabilityCommon_r15
;
342 static int ett_lte_rrc_sidelinkUEInformationNR_r16
;
343 static int ett_lte_rrc_ueAssistanceInformationNR_r16
;
344 static int ett_lte_rrc_sl_ParameterNR_r16
;
345 static int ett_lte_rrc_v2x_BandParametersNR_r16
;
346 static int ett_lte_rrc_ueAssistanceInformationNR_SCG_r16
;
347 static int ett_lte_rrc_assistanceDataSIB_Element_r15
;
348 static int ett_lte_rrc_overheatingAssistanceForSCG_r16
;
349 static int ett_lte_rrc_overheatingAssistanceForSCG_FR2_2_r17
;
350 static int ett_lte_rrc_triggerConditionSN_r17
;
352 static expert_field ei_lte_rrc_number_pages_le15
;
353 static expert_field ei_lte_rrc_si_info_value_changed
;
354 static expert_field ei_lte_rrc_sibs_changing
;
355 static expert_field ei_lte_rrc_sibs_changing_edrx
;
356 static expert_field ei_lte_rrc_earthquake_warning_sys
;
357 static expert_field ei_lte_rrc_commercial_mobile_alert_sys
;
358 static expert_field ei_lte_rrc_unexpected_type_value
;
359 static expert_field ei_lte_rrc_unexpected_length_value
;
360 static expert_field ei_lte_rrc_too_many_group_a_rapids
;
361 static expert_field ei_lte_rrc_invalid_drx_config
;
363 static const unit_name_string units_sr_periods
= { " SR period", " SR periods" };
364 static const unit_name_string units_short_drx_cycles
= { " shortDRX-Cycle", " shortDRX-Cycles" };
366 static reassembly_table lte_rrc_sib11_reassembly_table
;
367 static reassembly_table lte_rrc_sib12_reassembly_table
;
368 static reassembly_table lte_rrc_dcch_segment_reassembly_table
;
370 static const fragment_items lte_rrc_sib11_frag_items
= {
371 &ett_lte_rrc_sib11_fragment
,
372 &ett_lte_rrc_sib11_fragments
,
373 &hf_lte_rrc_sib11_fragments
,
374 &hf_lte_rrc_sib11_fragment
,
375 &hf_lte_rrc_sib11_fragment_overlap
,
376 &hf_lte_rrc_sib11_fragment_overlap_conflict
,
377 &hf_lte_rrc_sib11_fragment_multiple_tails
,
378 &hf_lte_rrc_sib11_fragment_too_long_fragment
,
379 &hf_lte_rrc_sib11_fragment_error
,
380 &hf_lte_rrc_sib11_fragment_count
,
381 &hf_lte_rrc_sib11_reassembled_in
,
382 &hf_lte_rrc_sib11_reassembled_length
,
383 &hf_lte_rrc_sib11_reassembled_data
,
384 "SIB11 warning message segments"
387 static const fragment_items lte_rrc_sib12_frag_items
= {
388 &ett_lte_rrc_sib12_fragment
,
389 &ett_lte_rrc_sib12_fragments
,
390 &hf_lte_rrc_sib12_fragments
,
391 &hf_lte_rrc_sib12_fragment
,
392 &hf_lte_rrc_sib12_fragment_overlap
,
393 &hf_lte_rrc_sib12_fragment_overlap_conflict
,
394 &hf_lte_rrc_sib12_fragment_multiple_tails
,
395 &hf_lte_rrc_sib12_fragment_too_long_fragment
,
396 &hf_lte_rrc_sib12_fragment_error
,
397 &hf_lte_rrc_sib12_fragment_count
,
398 &hf_lte_rrc_sib12_reassembled_in
,
399 &hf_lte_rrc_sib12_reassembled_length
,
400 &hf_lte_rrc_sib12_reassembled_data
,
401 "SIB12 warning message segments"
404 static const fragment_items lte_rrc_dcch_segment_frag_items
= {
405 &ett_lte_rrc_dcch_segment_fragment
,
406 &ett_lte_rrc_dcch_segment_fragments
,
407 &hf_lte_rrc_dcch_segment_fragments
,
408 &hf_lte_rrc_dcch_segment_fragment
,
409 &hf_lte_rrc_dcch_segment_fragment_overlap
,
410 &hf_lte_rrc_dcch_segment_fragment_overlap_conflict
,
411 &hf_lte_rrc_dcch_segment_fragment_multiple_tails
,
412 &hf_lte_rrc_dcch_segment_fragment_too_long_fragment
,
413 &hf_lte_rrc_dcch_segment_fragment_error
,
414 &hf_lte_rrc_dcch_segment_fragment_count
,
415 &hf_lte_rrc_dcch_segment_reassembled_in
,
416 &hf_lte_rrc_dcch_segment_reassembled_length
,
417 &hf_lte_rrc_dcch_segment_reassembled_data
,
418 "DCCH message segments"
421 /* Forward declarations */
422 static int dissect_UECapabilityInformation_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
);
423 static int dissect_RRCConnectionReconfiguration_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
);
425 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_1_val
= {
426 "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 & 2-2 - Supported",
427 "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 & 2-2 - Not supported"
429 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_2_val
= {
430 "Simultaneous CQI & ACK/NACK on PUCCH (format 2a/2b); Absolute TPC command for PUSCH; Resource alloc type 1 for PDSCH; Periodic CQI/PMI/RI report on PUCCH: Mode 2-0 & 2-1 - Supported",
431 "Simultaneous CQI & ACK/NACK on PUCCH (format 2a/2b); Absolute TPC command for PUSCH; Resource alloc type 1 for PDSCH; Periodic CQI/PMI/RI report on PUCCH: Mode 2-0 & 2-1 - Not supported"
433 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_3_val
= {
434 "5bit RLC UM SN; 7bit PDCP SN - Supported",
435 "5bit RLC UM SN; 7bit PDCP SN - Not supported"
437 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_4_val
= {
438 "Short DRX cycle - Supported",
439 "Short DRX cycle - Not supported"
441 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_5_val
= {
442 "Long DRX cycle; DRX command MAC control element - Supported",
443 "Long DRX cycle; DRX command MAC control element - Not supported"
445 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_6_val
= {
446 "Prioritised bit rate - Supported",
447 "Prioritised bit rate - Not supported"
449 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_7_val
= {
450 "RLC UM - Supported",
451 "RLC UM - Not supported"
453 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_8_val
= {
454 "EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover - Supported",
455 "EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover - Not supported"
457 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_9_val
= {
458 "EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover - Supported",
459 "EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover - Not Supported"
461 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_10_val
= {
462 "EUTRA RRC_CONNECTED to GERAN (Packet_) Idle by Cell Change Order; EUTRA RRC_CONNECTED to GERAN (Packet_) Idle by Cell Change Order with NACC - Supported",
463 "EUTRA RRC_CONNECTED to GERAN (Packet_) Idle by Cell Change Order; EUTRA RRC_CONNECTED to GERAN (Packet_) Idle by Cell Change Order with NACC - Not supported"
465 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_11_val
= {
466 "EUTRA RRC_CONNECTED to CDMA2000 1xRTT CS Active handover - Supported",
467 "EUTRA RRC_CONNECTED to CDMA2000 1xRTT CS Active handover - Not supported"
469 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_12_val
= {
470 "EUTRA RRC_CONNECTED to CDMA2000 HRPD Active handover - Supported",
471 "EUTRA RRC_CONNECTED to CDMA2000 HRPD Active handover - Not supported"
473 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_13_val
= {
474 "Inter-frequency handover (within FDD or TDD) - Supported",
475 "Inter-frequency handover (within FDD or TDD) - Not supported"
477 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_14_val
= {
478 "Measurement reporting event: Event A4 - Neighbour > threshold; Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 - Supported",
479 "Measurement reporting event: Event A4 - Neighbour > threshold; Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 - Not supported"
481 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_15_val
= {
482 "Measurement reporting event: Event B1 - Neighbour > threshold - Supported",
483 "Measurement reporting event: Event B1 - Neighbour > threshold - Not supported"
485 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_16_val
= {
486 "non-ANR related periodical measurement reporting - Supported",
487 "non-ANR related periodical measurement reporting - Not supported"
489 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_17_val
= {
490 "ANR related intra-frequency measurement reporting events - Supported",
491 "ANR related intra-frequency measurement reporting events - Not supported"
493 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_18_val
= {
494 "ANR related inter-frequency measurement reporting events - Supported",
495 "ANR related inter-frequency measurement reporting events - Not supported"
497 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_19_val
= {
498 "ANR related inter-RAT measurement reporting events - Supported",
499 "ANR related inter-RAT measurement reporting events - Not supported"
501 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_20_val
= {
502 "SRB1 and SRB2 for DCCH + 8x AM DRB; SRB1 and SRB2 for DCCH + 5x AM DRB + 3x UM DRB (if indicator 7 is supported) - Supported",
503 "SRB1 and SRB2 for DCCH + 8x AM DRB; SRB1 and SRB2 for DCCH + 5x AM DRB + 3x UM DRB (if indicator 7 is supported) - Not supported"
505 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_21_val
= {
506 "Predefined intra- and inter-subframe frequency hopping for PUSCH with N_sb > 1; Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 - Supported",
507 "Predefined intra- and inter-subframe frequency hopping for PUSCH with N_sb > 1; Predefined inter-subframe frequency hopping for PUSCH with N_sb > 1 - Not supported"
509 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_22_val
= {
510 "UTRAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
511 "UTRAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
513 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_23_val
= {
514 "GERAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
515 "GERAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
517 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_24_val
= {
518 "1xRTT measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
519 "1xRTT measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
521 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_25_val
= {
522 "Inter-frequency measurements and reporting in E-UTRA connected mode - Supported",
523 "Inter-frequency measurements and reporting in E-UTRA connected mode - Not supported"
525 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_26_val
= {
526 "HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
527 "HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
529 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_27_val
= {
530 "EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover - Supported",
531 "EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover - Not supported"
533 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_28_val
= {
534 "TTI bundling - Supported",
535 "TTI bundling - Not supported"
537 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_29_val
= {
538 "Semi-Persistent Scheduling - Supported",
539 "Semi-Persistent Scheduling - Not supported"
541 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_30_val
= {
542 "Handover between FDD and TDD - Supported",
543 "Handover between FDD and TDD - Not supported"
545 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_31_val
= {
546 "Mechanisms defined for cells broadcasting multi band information - Supported",
547 "Mechanisms defined for cells broadcasting multi band information - Not supported"
549 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_32_val
= {
550 "Undefined - Supported",
551 "Undefined - Not supported"
553 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_33_val
= {
554 "Inter-RAT ANR features for UTRAN FDD - Supported",
555 "Inter-RAT ANR features for UTRAN FDD - Not supported"
557 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_34_val
= {
558 "Inter-RAT ANR features for GERAN - Supported",
559 "Inter-RAT ANR features for GERAN - Not supported"
561 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_35_val
= {
562 "Inter-RAT ANR features for 1xRTT - Supported",
563 "Inter-RAT ANR features for 1xRTT - Not supported"
565 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_36_val
= {
566 "Inter-RAT ANR features for HRPD - Supported",
567 "Inter-RAT ANR features for HRPD - Not supported"
569 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_37_val
= {
570 "Inter-RAT ANR features for UTRAN TDD - Supported",
571 "Inter-RAT ANR features for UTRAN TDD - Not supported"
573 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_38_val
= {
574 "EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover - Supported",
575 "EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH PS handover - Not supported"
577 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_39_val
= {
578 "UTRAN TDD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
579 "UTRAN TDD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
581 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_40_val
= {
582 "EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover - Supported",
583 "EUTRA RRC_CONNECTED to UTRA TDD CELL_DCH CS handover - Not supported"
585 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_41_val
= {
586 "Measurement reporting event: Event B1 - Neighbour > threshold for UTRAN FDD - Supported",
587 "Measurement reporting event: Event B1 - Neighbour > threshold for UTRAN FDD - Not supported"
589 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_42_val
= {
590 "DCI format 3a - Supported",
591 "DCI format 3a - Not supported"
593 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_43_val
= {
594 "Undefined - Supported",
595 "Undefined - Not supported"
597 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_44_val
= {
598 "Undefined - Supported",
599 "Undefined - Not supported"
601 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_45_val
= {
602 "Undefined - Supported",
603 "Undefined - Not supported"
605 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_46_val
= {
606 "Undefined - Supported",
607 "Undefined - Not supported"
609 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_47_val
= {
610 "Undefined - Supported",
611 "Undefined - Not supported"
613 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_48_val
= {
614 "Undefined - Supported",
615 "Undefined - Not supported"
617 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_49_val
= {
618 "Undefined - Supported",
619 "Undefined - Not supported"
621 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_50_val
= {
622 "Undefined - Supported",
623 "Undefined - Not supported"
625 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_51_val
= {
626 "Undefined - Supported",
627 "Undefined - Not supported"
629 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_52_val
= {
630 "Undefined - Supported",
631 "Undefined - Not supported"
633 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_53_val
= {
634 "Undefined - Supported",
635 "Undefined - Not supported"
637 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_54_val
= {
638 "Undefined - Supported",
639 "Undefined - Not supported"
641 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_55_val
= {
642 "Undefined - Supported",
643 "Undefined - Not supported"
645 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_56_val
= {
646 "Undefined - Supported",
647 "Undefined - Not supported"
649 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_57_val
= {
650 "Undefined - Supported",
651 "Undefined - Not supported"
653 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_58_val
= {
654 "Undefined - Supported",
655 "Undefined - Not supported"
657 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_59_val
= {
658 "Undefined - Supported",
659 "Undefined - Not supported"
661 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_60_val
= {
662 "Undefined - Supported",
663 "Undefined - Not supported"
665 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_61_val
= {
666 "Undefined - Supported",
667 "Undefined - Not supported"
669 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_62_val
= {
670 "Undefined - Supported",
671 "Undefined - Not supported"
673 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_63_val
= {
674 "Undefined - Supported",
675 "Undefined - Not supported"
677 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_64_val
= {
678 "Undefined - Supported",
679 "Undefined - Not supported"
681 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_101_val
= {
682 "DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling - Supported",
683 "DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling - Not supported"
685 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_102_val
= {
686 "Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) - Supported",
687 "Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) - Not supported"
689 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_103_val
= {
690 "PDSCH TM9 when up to 4 CSI reference signal ports are configured - Supported",
691 "PDSCH TM9 when up to 4 CSI reference signal ports are configured - Not supported"
693 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_104_val
= {
694 "PDSCH TM9 for TDD when 8 CSI reference signal ports are configured - Supported",
695 "PDSCH TM9 for TDD when 8 CSI reference signal ports are configured - Not supported"
697 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_105_val
= {
698 "PUCCH RM2-0 when PDSCH TM9 is configured and RM2-1 when PDSCH TM9 and up to 4 CSI reference signal ports are configured - Supported",
699 "PUCCH RM2-0 when PDSCH TM9 is configured and RM2-1 when PDSCH TM9 and up to 4 CSI reference signal ports are configured - Not supported"
701 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_106_val
= {
702 "PUCCH RM2-1 when PDSCH TM9 and 8 CSI reference signal ports are configured - Supported",
703 "PUCCH RM2-1 when PDSCH TM9 and 8 CSI reference signal ports are configured - Not supported"
705 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_107_val
= {
706 "PUSCH RM2-0 when PDSCH TM9 is configured and RM2-2 when PDSCH TM9 and up to 4 CSI reference signal ports are configured - Supported",
707 "PUSCH RM2-0 when PDSCH TM9 is configured and RM2-2 when PDSCH TM9 and up to 4 CSI reference signal ports are configured - Not supported"
709 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_108_val
= {
710 "PUSCH RM2-2 when PDSCH TM9 and 8 CSI reference signal ports are configured - Supported",
711 "PUSCH RM2-2 when PDSCH TM9 and 8 CSI reference signal ports are configured - Not supported"
713 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_109_val
= {
714 "PUCCH RM1-1 submode 1 - Supported",
715 "PUCCH RM1-1 submode 1 - Not supported"
717 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_110_val
= {
718 "PUCCH RM1-1 submode 2 - Supported",
719 "PUCCH RM1-1 submode 2 - Not supported"
721 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_111_val
= {
722 "Measurement reporting trigger Event A6 - Supported",
723 "Measurement reporting trigger Event A6 - Not supported"
725 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_112_val
= {
726 "SCell addition within the Handover to EUTRA procedure - Supported",
727 "SCell addition within the Handover to EUTRA procedure - Not supported"
729 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_113_val
= {
730 "Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells - Supported",
731 "Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells - Not supported"
733 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_114_val
= {
734 "Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report - Supported",
735 "Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report - Not supported"
737 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_115_val
= {
738 "Time domain ICIC RLM/RRM / ICIC RRM / ICIC CSI measurement sf restriction for the serving cell / neighbour cells - Supported",
739 "Time domain ICIC RLM/RRM / ICIC RRM / ICIC CSI measurement sf restriction for the serving cell / neighbour cells - Not supported"
741 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_116_val
= {
742 "Relative transmit phase continuity for spatial multiplexing in UL - Supported",
743 "Relative transmit phase continuity for spatial multiplexing in UL - Not supported"
745 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_117_val
= {
746 "Undefined - Supported",
747 "Undefined - Not supported"
749 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_118_val
= {
750 "Undefined - Supported",
751 "Undefined - Not supported"
753 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_119_val
= {
754 "Undefined - Supported",
755 "Undefined - Not supported"
757 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_120_val
= {
758 "Undefined - Supported",
759 "Undefined - Not supported"
761 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_121_val
= {
762 "Undefined - Supported",
763 "Undefined - Not supported"
765 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_122_val
= {
766 "Undefined - Supported",
767 "Undefined - Not supported"
769 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_123_val
= {
770 "Undefined - Supported",
771 "Undefined - Not supported"
773 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_124_val
= {
774 "Undefined - Supported",
775 "Undefined - Not supported"
777 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_125_val
= {
778 "Undefined - Supported",
779 "Undefined - Not supported"
781 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_126_val
= {
782 "Undefined - Supported",
783 "Undefined - Not supported"
785 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_127_val
= {
786 "Undefined - Supported",
787 "Undefined - Not supported"
789 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_128_val
= {
790 "Undefined - Supported",
791 "Undefined - Not supported"
793 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_129_val
= {
794 "Undefined - Supported",
795 "Undefined - Not supported"
797 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_130_val
= {
798 "Undefined - Supported",
799 "Undefined - Not supported"
801 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_131_val
= {
802 "Undefined - Supported",
803 "Undefined - Not supported"
805 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_132_val
= {
806 "Undefined - Supported",
807 "Undefined - Not supported"
810 static const value_string lte_rrc_schedulingInfoSIB1_BR_r13_vals
[] = {
811 { 0, "SystemInformationBlockType1-BR is not scheduled"},
812 { 1, "4 PDSCH repetitions - TBS 208 bits"},
813 { 2, "8 PDSCH repetitions - TBS 208 bits"},
814 { 3, "16 PDSCH repetitions - TBS 208 bits"},
815 { 4, "4 PDSCH repetitions - TBS 256 bits"},
816 { 5, "8 PDSCH repetitions - TBS 256 bits"},
817 { 6, "16 PDSCH repetitions - TBS 256 bits"},
818 { 7, "4 PDSCH repetitions - TBS 328 bits"},
819 { 8, "8 PDSCH repetitions - TBS 328 bits"},
820 { 9, "16 PDSCH repetitions - TBS 328 bits"},
821 { 10, "4 PDSCH repetitions - TBS 504 bits"},
822 { 11, "8 PDSCH repetitions - TBS 504 bits"},
823 { 12, "16 PDSCH repetitions - TBS 504 bits"},
824 { 13, "4 PDSCH repetitions - TBS 712 bits"},
825 { 14, "8 PDSCH repetitions - TBS 712 bits"},
826 { 15, "16 PDSCH repetitions - TBS 712 bits"},
827 { 16, "4 PDSCH repetitions - TBS 936 bits"},
828 { 17, "8 PDSCH repetitions - TBS 936 bits"},
829 { 18, "16 PDSCH repetitions - TBS 936 bits"},
832 static value_string_ext lte_rrc_schedulingInfoSIB1_BR_r13_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_schedulingInfoSIB1_BR_r13_vals
);
834 static const value_string lte_rrc_q_RxLevMin_vals
[] = {
886 static value_string_ext lte_rrc_q_RxLevMin_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_q_RxLevMin_vals
);
888 static const value_string lte_rrc_q_RxLevMinOffset_vals
[] = {
900 static const value_string lte_rrc_delta_RxLevMin_vals
[] = {
912 static const value_string lte_rrc_messageSize_r14_vals
[] =
915 { 1, "0 < size <= 10"},
916 { 2, "10 < size <= 12"},
917 { 3, "12 < size <= 14"},
918 { 4, "14 < size <= 17"},
919 { 5, "17 < size <= 19"},
920 { 6, "19 < size <= 22"},
921 { 7, "22 < size <= 26"},
922 { 8, "26 < size <= 31"},
923 { 9, "31 < size <= 36"},
924 { 10, "36 < size <= 42"},
925 { 11, "42 < size <= 49"},
926 { 12, "49 < size <= 57"},
927 { 13, "57 < size <= 67"},
928 { 14, "67 < size <= 78"},
929 { 15, "78 < size <= 91"},
930 { 16, "91 < size <= 107"},
931 { 17, "107 < size <= 125"},
932 { 18, "125 < size <= 146"},
933 { 19, "146 < size <= 171"},
934 { 20, "171 < size <= 200"},
935 { 21, "200 < size <= 234"},
936 { 22, "234 < size <= 274"},
937 { 23, "274 < size <= 321"},
938 { 24, "321 < size <= 376"},
939 { 25, "376 < size <= 440"},
940 { 26, "440 < size <= 515"},
941 { 27, "515 < size <= 603"},
942 { 28, "603 < size <= 706"},
943 { 29, "706 < size <= 826"},
944 { 30, "826 < size <= 967"},
945 { 31, "967 < size <= 1132"},
946 { 32, "1132 < size <= 1326"},
947 { 33, "1326 < size <= 1552"},
948 { 34, "1552 < size <= 1817"},
949 { 35, "1817 < size <= 2127"},
950 { 36, "2127 < size <= 2490"},
951 { 37, "2490 < size <= 2915"},
952 { 38, "2915 < size <= 3413"},
953 { 39, "3413 < size <= 3995"},
954 { 40, "3995 < size <= 4677"},
955 { 41, "4677 < size <= 5476"},
956 { 42, "5476 < size <= 6411"},
957 { 43, "6411 < size <= 7505"},
958 { 44, "7505 < size <= 8787"},
959 { 45, "8787 < size <= 10276"},
960 { 46, "10287 < size <= 12043"},
961 { 47, "12043 < size <= 14099"},
962 { 48, "14099 < size <= 16507"},
963 { 49, "16507 < size <= 19325"},
964 { 50, "19325 < size <= 22624"},
965 { 51, "22624 < size <= 26487"},
966 { 52, "26487 < size <= 31009"},
967 { 53, "31009 < size <= 36304"},
968 { 54, "36304 < size <= 42502"},
969 { 55, "42502 < size <= 49759"},
970 { 56, "49759 < size <= 58255"},
971 { 57, "58255 < size <= 68201"},
972 { 58, "68201 < size <= 79846"},
973 { 59, "79846 < size <= 93479"},
974 { 60, "93479 < size <= 109439"},
975 { 61, "109439 < size <= 128125"},
976 { 62, "128125 < size <= 150000"},
977 { 63, "size > 150000"},
980 static value_string_ext lte_rrc_messageSize_r14_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_messageSize_r14_vals
);
983 lte_rrc_timeConnFailure_r10_fmt(char *s
, uint32_t v
)
985 snprintf(s
, ITEM_LABEL_LENGTH
, "%ums (%u)", 100*v
, v
);
988 static const value_string lte_rrc_n_r12_vals
[] = {
989 { 0, "0 <= Nr < 256"},
990 { 1, "256 <= Nr < 768"},
991 { 2, "768 <= Nr < 1792"},
992 { 3, "1792 <= Nr < 3840"},
993 { 4, "3840 <= Nr < 7936"},
994 { 5, "7936 <= Nr < 16128"},
995 { 6, "16128 <= Nr < 32512"},
1001 lte_rrc_m_r12_fmt(char *s
, uint32_t v
)
1004 snprintf(s
, ITEM_LABEL_LENGTH
, "255 <= f(Nr) (255)");
1006 snprintf(s
, ITEM_LABEL_LENGTH
, "%u <= f(Nr) < %u (%u)", v
, v
+1, v
);
1010 static const value_string lte_rrc_BLER_Range_r12_vals
[] = {
1011 { 0, "BLER < 0.1%"},
1012 { 1, "0.1% <= BLER < 0.123%"},
1013 { 2, "0.123% <= BLER < 0.151%"},
1014 { 3, "0.151% <= BLER < 0.186%"},
1015 { 4, "0.186% <= BLER < 0.229%"},
1016 { 5, "0.229% <= BLER < 0.282%"},
1017 { 6, "0.282% <= BLER < 0.347%"},
1018 { 7, "0.347% <= BLER < 0.426%"},
1019 { 8, "0.426% <= BLER < 0.525%"},
1020 { 9, "0.525% <= BLER < 0.645%"},
1021 { 10, "0.645% <= BLER < 0.794%"},
1022 { 11, "0.794% <= BLER < 0.976%"},
1023 { 12, "0.976% <= BLER < 1.201%"},
1024 { 13, "1.201% <= BLER < 1.478%"},
1025 { 14, "1.478% <= BLER < 1.818%"},
1026 { 15, "1.818% <= BLER < 2.236%"},
1027 { 16, "2.236% <= BLER < 2.751%"},
1028 { 17, "2.751% <= BLER < 3.384%"},
1029 { 18, "3.384% <= BLER < 4.163%"},
1030 { 19, "4.163% <= BLER < 5.121%"},
1031 { 20, "5.121% <= BLER < 6.300%"},
1032 { 21, "6.300% <= BLER < 7.750%"},
1033 { 22, "7.750% <= BLER < 9.533%"},
1034 { 23, "9.533% <= BLER < 11.728%"},
1035 { 24, "11.728% <= BLER < 14.427%"},
1036 { 25, "14.427% <= BLER < 17.478%"},
1037 { 26, "17.478% <= BLER < 21.833%"},
1038 { 27, "21.833% <= BLER < 26.858%"},
1039 { 28, "26.858% <= BLER < 33.040%"},
1040 { 29, "33.040% <= BLER < 40.645%"},
1041 { 30, "40.645% <= BLER < 50%"},
1042 { 31, "50% <= BLER"},
1045 static value_string_ext lte_rrc_BLER_Range_r12_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_BLER_Range_r12_vals
);
1047 static const value_string lte_rrc_utra_q_RxLevMin_vals
[] = {
1098 static value_string_ext lte_rrc_utra_q_RxLevMin_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_utra_q_RxLevMin_vals
);
1100 static const value_string lte_rrc_geran_q_RxLevMin_vals
[] = {
1149 static value_string_ext lte_rrc_geran_q_RxLevMin_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_geran_q_RxLevMin_vals
);
1151 static const value_string lte_rrc_nomPDSCH_RS_EPRE_Offset_vals
[] = {
1163 static const value_string lte_rrc_deltaPreambleMsg3_vals
[] = {
1175 static const value_string lte_rrc_ReselectionThreshold_vals
[] = {
1210 static value_string_ext lte_rrc_ReselectionThreshold_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_ReselectionThreshold_vals
);
1212 static const value_string lte_rrc_ReselectionThreshold_NB_vals
[] = {
1247 static value_string_ext lte_rrc_ReselectionThreshold_NB_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_ReselectionThreshold_NB_vals
);
1249 static const value_string lte_rrc_Hysteresis_vals
[] = {
1283 static value_string_ext lte_rrc_Hysteresis_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_Hysteresis_vals
);
1285 static const value_string lte_rrc_s_Measure_vals
[] = {
1386 static value_string_ext lte_rrc_s_Measure_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_s_Measure_vals
);
1388 static const value_string lte_rrc_utra_EcN0_vals
[] = {
1389 { 0 , "CPICH Ec/Io < -24dB"},
1390 { 1 , "-24dB <= CPICH Ec/Io < -23.5dB"},
1391 { 2 , "-23.5dB <= CPICH Ec/Io < -23dB"},
1392 { 3 , "-23dB <= CPICH Ec/Io < -22.5dB"},
1393 { 4 , "-22.5dB <= CPICH Ec/Io < -22dB"},
1394 { 5 , "-22dB <= CPICH Ec/Io < -21.5dB"},
1395 { 6 , "-21.5dB <= CPICH Ec/Io < -21dB"},
1396 { 7 , "-21dB <= CPICH Ec/Io < -20.5dB"},
1397 { 8 , "-20.5dB <= CPICH Ec/Io < -20dB"},
1398 { 9 , "-20dB <= CPICH Ec/Io < -19.5dB"},
1399 { 10, "-19.5dB <= CPICH Ec/Io < -19dB"},
1400 { 11, "-19dB <= CPICH Ec/Io < -18.5dB"},
1401 { 12, "-18.5dB <= CPICH Ec/Io < -18dB"},
1402 { 13, "-18dB <= CPICH Ec/Io < -17.5dB"},
1403 { 14, "-17.5dB <= CPICH Ec/Io < -17dB"},
1404 { 15, "-17dB <= CPICH Ec/Io < -16.5dB"},
1405 { 16, "-16.5dB <= CPICH Ec/Io < -16dB"},
1406 { 17, "-16dB <= CPICH Ec/Io < -15.5dB"},
1407 { 18, "-15.5dB <= CPICH Ec/Io < -15dB"},
1408 { 19, "-15dB <= CPICH Ec/Io < -14.5dB"},
1409 { 20, "-14.5dB <= CPICH Ec/Io < -14dB"},
1410 { 21, "-14dB <= CPICH Ec/Io < -13.5dB"},
1411 { 22, "-13.5dB <= CPICH Ec/Io < -13dB"},
1412 { 23, "-13dB <= CPICH Ec/Io < -12.5dB"},
1413 { 24, "-12.5dB <= CPICH Ec/Io < -12dB"},
1414 { 25, "-12dB <= CPICH Ec/Io < -11.5dB"},
1415 { 26, "-11.5dB <= CPICH Ec/Io < -11dB"},
1416 { 27, "-11dB <= CPICH Ec/Io < -10.5dB"},
1417 { 28, "-10.5dB <= CPICH Ec/Io < -10dB"},
1418 { 29, "-10dB <= CPICH Ec/Io < -9.5dB"},
1419 { 30, "-9.5dB <= CPICH Ec/Io < -9dB"},
1420 { 31, "-9dB <= CPICH Ec/Io < -8.5dB"},
1421 { 32, "-8.5dB <= CPICH Ec/Io < -8dB"},
1422 { 33, "-8dB <= CPICH Ec/Io < -7.5dB"},
1423 { 34, "-7.5dB <= CPICH Ec/Io < -7dB"},
1424 { 35, "-7dB <= CPICH Ec/Io < -6.5dB"},
1425 { 36, "-6.5dB <= CPICH Ec/Io < -6dB"},
1426 { 37, "-6dB <= CPICH Ec/Io < -5.5dB"},
1427 { 38, "-5.5dB <= CPICH Ec/Io < -5dB"},
1428 { 39, "-5dB <= CPICH Ec/Io < -4.5dB"},
1429 { 40, "-4.5dB <= CPICH Ec/Io < -4dB"},
1430 { 41, "-4dB <= CPICH Ec/Io < -3.5dB"},
1431 { 42, "-3.5dB <= CPICH Ec/Io < -3dB"},
1432 { 43, "-3dB <= CPICH Ec/Io < -2.5dB"},
1433 { 44, "-2.5dB <= CPICH Ec/Io < -2dB"},
1434 { 45, "-2dB <= CPICH Ec/Io < -1.5dB"},
1435 { 46, "-1.5dB <= CPICH Ec/Io < -1dB"},
1436 { 47, "-1dB <= CPICH Ec/Io < -0.5dB"},
1437 { 48, "-0.5dB <= CPICH Ec/Io < 0dB"},
1438 { 49, "0dB <= CPICH Ec/Io"},
1441 static value_string_ext lte_rrc_utra_EcN0_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_utra_EcN0_vals
);
1443 static const value_string lte_rrc_utra_RSCP_vals
[] = {
1444 { -5, "RSCP < -120dBm"},
1445 { -4, "-120dBm <= RSCP < -119dBm"},
1446 { -3, "-119dBm <= RSCP < -118dBm"},
1447 { -2, "-118dBm <= RSCP < -117dBm"},
1448 { -1, "-117dBm <= RSCP < -116dBm"},
1449 { 0, "-116dBm <= RSCP < -115dBm"},
1450 { 1, "-115dBm <= RSCP < -114dBm"},
1451 { 2, "-114dBm <= RSCP < -113dBm"},
1452 { 3, "-113dBm <= RSCP < -112dBm"},
1453 { 4, "-112dBm <= RSCP < -111dBm"},
1454 { 5, "-111dBm <= RSCP < -110dBm"},
1455 { 6, "-110dBm <= RSCP < -109dBm"},
1456 { 7, "-109dBm <= RSCP < -108dBm"},
1457 { 8, "-108dBm <= RSCP < -107dBm"},
1458 { 9, "-107dBm <= RSCP < -106dBm"},
1459 { 10, "-106dBm <= RSCP < -105dBm"},
1460 { 11, "-105dBm <= RSCP < -104dBm"},
1461 { 12, "-104dBm <= RSCP < -103dBm"},
1462 { 13, "-103dBm <= RSCP < -102dBm"},
1463 { 14, "-102dBm <= RSCP < -101dBm"},
1464 { 15, "-101dBm <= RSCP < -100dBm"},
1465 { 16, "-100dBm <= RSCP < -99dBm"},
1466 { 17, "-99dBm <= RSCP < -98dBm"},
1467 { 18, "-98dBm <= RSCP < -97dBm"},
1468 { 19, "-97dBm <= RSCP < -96dBm"},
1469 { 20, "-96dBm <= RSCP < -95dBm"},
1470 { 21, "-95dBm <= RSCP < -94dBm"},
1471 { 22, "-94dBm <= RSCP < -93dBm"},
1472 { 23, "-93dBm <= RSCP < -92dBm"},
1473 { 24, "-92dBm <= RSCP < -91dBm"},
1474 { 25, "-91dBm <= RSCP < -90dBm"},
1475 { 26, "-90dBm <= RSCP < -89dBm"},
1476 { 27, "-89dBm <= RSCP < -88dBm"},
1477 { 28, "-88dBm <= RSCP < -87dBm"},
1478 { 29, "-87dBm <= RSCP < -86dBm"},
1479 { 30, "-86dBm <= RSCP < -85dBm"},
1480 { 31, "-85dBm <= RSCP < -84dBm"},
1481 { 32, "-84dBm <= RSCP < -83dBm"},
1482 { 33, "-83dBm <= RSCP < -82dBm"},
1483 { 34, "-82dBm <= RSCP < -81dBm"},
1484 { 35, "-81dBm <= RSCP < -80dBm"},
1485 { 36, "-80dBm <= RSCP < -79dBm"},
1486 { 37, "-79dBm <= RSCP < -78dBm"},
1487 { 38, "-78dBm <= RSCP < -77dBm"},
1488 { 39, "-77dBm <= RSCP < -76dBm"},
1489 { 40, "-76dBm <= RSCP < -75dBm"},
1490 { 41, "-75dBm <= RSCP < -74dBm"},
1491 { 42, "-74dBm <= RSCP < -73dBm"},
1492 { 43, "-73dBm <= RSCP < -72dBm"},
1493 { 44, "-72dBm <= RSCP < -71dBm"},
1494 { 45, "-71dBm <= RSCP < -70dBm"},
1495 { 46, "-70dBm <= RSCP < -69dBm"},
1496 { 47, "-69dBm <= RSCP < -68dBm"},
1497 { 48, "-68dBm <= RSCP < -67dBm"},
1498 { 49, "-67dBm <= RSCP < -66dBm"},
1499 { 50, "-66dBm <= RSCP < -65dBm"},
1500 { 51, "-65dBm <= RSCP < -64dBm"},
1501 { 52, "-64dBm <= RSCP < -63dBm"},
1502 { 53, "-63dBm <= RSCP < -62dBm"},
1503 { 54, "-62dBm <= RSCP < -61dBm"},
1504 { 55, "-61dBm <= RSCP < -60dBm"},
1505 { 56, "-60dBm <= RSCP < -59dBm"},
1506 { 57, "-59dBm <= RSCP < -58dBm"},
1507 { 58, "-58dBm <= RSCP < -57dBm"},
1508 { 59, "-57dBm <= RSCP < -56dBm"},
1509 { 60, "-56dBm <= RSCP < -55dBm"},
1510 { 61, "-55dBm <= RSCP < -54dBm"},
1511 { 62, "-54dBm <= RSCP < -53dBm"},
1512 { 63, "-53dBm <= RSCP < -52dBm"},
1513 { 64, "-52dBm <= RSCP < -51dBm"},
1514 { 65, "-51dBm <= RSCP < -50dBm"},
1515 { 66, "-50dBm <= RSCP < -49dBm"},
1516 { 67, "-49dBm <= RSCP < -48dBm"},
1517 { 68, "-48dBm <= RSCP < -47dBm"},
1518 { 69, "-47dBm <= RSCP < -46dBm"},
1519 { 70, "-46dBm <= RSCP < -45dBm"},
1520 { 71, "-45dBm <= RSCP < -44dBm"},
1521 { 72, "-44dBm <= RSCP < -43dBm"},
1522 { 73, "-43dBm <= RSCP < -42dBm"},
1523 { 74, "-42dBm <= RSCP < -41dBm"},
1524 { 75, "-41dBm <= RSCP < -40dBm"},
1525 { 76, "-40dBm <= RSCP < -39dBm"},
1526 { 77, "-39dBm <= RSCP < -38dBm"},
1527 { 78, "-38dBm <= RSCP < -37dBm"},
1528 { 79, "-37dBm <= RSCP < -36dBm"},
1529 { 80, "-36dBm <= RSCP < -35dBm"},
1530 { 81, "-35dBm <= RSCP < -34dBm"},
1531 { 82, "-34dBm <= RSCP < -33dBm"},
1532 { 83, "-33dBm <= RSCP < -32dBm"},
1533 { 84, "-32dBm <= RSCP < -31dBm"},
1534 { 85, "-31dBm <= RSCP < -30dBm"},
1535 { 86, "-30dBm <= RSCP < -29dBm"},
1536 { 87, "-29dBm <= RSCP < -28dBm"},
1537 { 88, "-28dBm <= RSCP < -27dBm"},
1538 { 89, "-27dBm <= RSCP < -26dBm"},
1539 { 90, "-26dBm <= RSCP < -25dBm"},
1540 { 91, "-25dBm <= RSCP"},
1543 static value_string_ext lte_rrc_utra_RSCP_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_utra_RSCP_vals
);
1545 static const value_string lte_rrc_a3_a6_c2_Offset_vals
[] = {
1609 static value_string_ext lte_rrc_a3_a6_c2_Offset_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_a3_a6_c2_Offset_vals
);
1611 static const value_string lte_rrc_threshold_RSRP_vals
[] = {
1712 static value_string_ext lte_rrc_threshold_RSRP_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_threshold_RSRP_vals
);
1714 static const value_string lte_rrc_threshold_RSRQ_vals
[] = {
1752 static value_string_ext lte_rrc_threshold_RSRQ_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_threshold_RSRQ_vals
);
1754 static const value_string lte_rrc_thresholdGERAN_vals
[] = {
1821 static value_string_ext lte_rrc_thresholdGERAN_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_thresholdGERAN_vals
);
1823 static const value_string lte_rrc_thresholdUTRA_EcN0_vals
[] = {
1876 static value_string_ext lte_rrc_thresholdUTRA_EcN0_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_thresholdUTRA_EcN0_vals
);
1878 static const value_string lte_rrc_thresholdUTRA_RSCP_vals
[] = {
1978 static value_string_ext lte_rrc_thresholdUTRA_RSCP_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_thresholdUTRA_RSCP_vals
);
1980 static const value_string lte_rrc_RSRP_Range_vals
[] = {
1981 { 0, "RSRP < -140dBm"},
1982 { 1, "-140dBm <= RSRP < -139dBm"},
1983 { 2, "-139dBm <= RSRP < -138dBm"},
1984 { 3, "-138dBm <= RSRP < -137dBm"},
1985 { 4, "-137dBm <= RSRP < -136dBm"},
1986 { 5, "-136dBm <= RSRP < -135dBm"},
1987 { 6, "-135dBm <= RSRP < -134dBm"},
1988 { 7, "-134dBm <= RSRP < -133dBm"},
1989 { 8, "-133dBm <= RSRP < -132dBm"},
1990 { 9, "-132dBm <= RSRP < -131dBm"},
1991 { 10, "-131dBm <= RSRP < -130dBm"},
1992 { 11, "-130dBm <= RSRP < -129dBm"},
1993 { 12, "-129dBm <= RSRP < -128dBm"},
1994 { 13, "-128dBm <= RSRP < -127dBm"},
1995 { 14, "-127dBm <= RSRP < -126dBm"},
1996 { 15, "-126dBm <= RSRP < -125dBm"},
1997 { 16, "-125dBm <= RSRP < -124dBm"},
1998 { 17, "-124dBm <= RSRP < -123dBm"},
1999 { 18, "-123dBm <= RSRP < -122dBm"},
2000 { 19, "-122dBm <= RSRP < -121dBm"},
2001 { 20, "-121dBm <= RSRP < -120dBm"},
2002 { 21, "-120dBm <= RSRP < -119dBm"},
2003 { 22, "-119dBm <= RSRP < -118dBm"},
2004 { 23, "-118dBm <= RSRP < -117dBm"},
2005 { 24, "-117dBm <= RSRP < -116dBm"},
2006 { 25, "-116dBm <= RSRP < -115dBm"},
2007 { 26, "-115dBm <= RSRP < -114dBm"},
2008 { 27, "-114dBm <= RSRP < -113dBm"},
2009 { 28, "-113dBm <= RSRP < -112dBm"},
2010 { 29, "-112dBm <= RSRP < -111dBm"},
2011 { 30, "-111dBm <= RSRP < -110dBm"},
2012 { 31, "-110dBm <= RSRP < -109dBm"},
2013 { 32, "-109dBm <= RSRP < -108dBm"},
2014 { 33, "-108dBm <= RSRP < -107dBm"},
2015 { 34, "-107dBm <= RSRP < -106dBm"},
2016 { 35, "-106dBm <= RSRP < -105dBm"},
2017 { 36, "-105dBm <= RSRP < -104dBm"},
2018 { 37, "-104dBm <= RSRP < -103dBm"},
2019 { 38, "-103dBm <= RSRP < -102dBm"},
2020 { 39, "-102dBm <= RSRP < -101dBm"},
2021 { 40, "-101dBm <= RSRP < -100dBm"},
2022 { 41, "-100dBm <= RSRP < -99dBm"},
2023 { 42, "-99dBm <= RSRP < -98dBm"},
2024 { 43, "-98dBm <= RSRP < -97dBm"},
2025 { 44, "-97dBm <= RSRP < -96dBm"},
2026 { 45, "-96dBm <= RSRP < -95dBm"},
2027 { 46, "-95dBm <= RSRP < -94dBm"},
2028 { 47, "-94dBm <= RSRP < -93dBm"},
2029 { 48, "-93dBm <= RSRP < -92dBm"},
2030 { 49, "-92dBm <= RSRP < -91dBm"},
2031 { 50, "-91dBm <= RSRP < -90dBm"},
2032 { 51, "-90dBm <= RSRP < -89dBm"},
2033 { 52, "-89dBm <= RSRP < -88dBm"},
2034 { 53, "-88dBm <= RSRP < -87dBm"},
2035 { 54, "-87dBm <= RSRP < -86dBm"},
2036 { 55, "-86dBm <= RSRP < -85dBm"},
2037 { 56, "-85dBm <= RSRP < -84dBm"},
2038 { 57, "-84dBm <= RSRP < -83dBm"},
2039 { 58, "-83dBm <= RSRP < -82dBm"},
2040 { 59, "-82dBm <= RSRP < -81dBm"},
2041 { 60, "-81dBm <= RSRP < -80dBm"},
2042 { 61, "-80dBm <= RSRP < -79dBm"},
2043 { 62, "-79dBm <= RSRP < -78dBm"},
2044 { 63, "-78dBm <= RSRP < -77dBm"},
2045 { 64, "-77dBm <= RSRP < -76dBm"},
2046 { 65, "-76dBm <= RSRP < -75dBm"},
2047 { 66, "-75dBm <= RSRP < -74dBm"},
2048 { 67, "-74dBm <= RSRP < -73dBm"},
2049 { 68, "-73dBm <= RSRP < -72dBm"},
2050 { 69, "-72dBm <= RSRP < -71dBm"},
2051 { 70, "-71dBm <= RSRP < -70dBm"},
2052 { 71, "-70dBm <= RSRP < -69dBm"},
2053 { 72, "-69dBm <= RSRP < -68dBm"},
2054 { 73, "-68dBm <= RSRP < -67dBm"},
2055 { 74, "-67dBm <= RSRP < -66dBm"},
2056 { 75, "-66dBm <= RSRP < -65dBm"},
2057 { 76, "-65dBm <= RSRP < -64dBm"},
2058 { 77, "-64dBm <= RSRP < -63dBm"},
2059 { 78, "-63dBm <= RSRP < -62dBm"},
2060 { 79, "-62dBm <= RSRP < -61dBm"},
2061 { 80, "-61dBm <= RSRP < -60dBm"},
2062 { 81, "-60dBm <= RSRP < -59dBm"},
2063 { 82, "-59dBm <= RSRP < -58dBm"},
2064 { 83, "-58dBm <= RSRP < -57dBm"},
2065 { 84, "-57dBm <= RSRP < -56dBm"},
2066 { 85, "-56dBm <= RSRP < -55dBm"},
2067 { 86, "-55dBm <= RSRP < -54dBm"},
2068 { 87, "-54dBm <= RSRP < -53dBm"},
2069 { 88, "-53dBm <= RSRP < -52dBm"},
2070 { 89, "-52dBm <= RSRP < -51dBm"},
2071 { 90, "-51dBm <= RSRP < -50dBm"},
2072 { 91, "-50dBm <= RSRP < -49dBm"},
2073 { 92, "-49dBm <= RSRP < -48dBm"},
2074 { 93, "-48dBm <= RSRP < -47dBm"},
2075 { 94, "-47dBm <= RSRP < -46dBm"},
2076 { 95, "-46dBm <= RSRP < -45dBm"},
2077 { 96, "-45dBm <= RSRP < -44dBm"},
2078 { 97, "-44dBm <= RSRP"},
2081 static value_string_ext lte_rrc_RSRP_Range_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_RSRP_Range_vals
);
2083 static const value_string lte_rrc_RSRP_Range_v1360_vals
[] = {
2084 { -17, "RSRP < -156dBm"},
2085 { -16, "-156dBm <= RSRP < -155dBm"},
2086 { -15, "-155dBm <= RSRP < -154dBm"},
2087 { -14, "-154dBm <= RSRP < -153dBm"},
2088 { -13, "-153dBm <= RSRP < -152dBm"},
2089 { -12, "-152dBm <= RSRP < -151dBm"},
2090 { -11, "-151dBm <= RSRP < -150dBm"},
2091 { -10, "-150dBm <= RSRP < -149dBm"},
2092 { -9, "-149dBm <= RSRP < -148dBm"},
2093 { -8, "-148dBm <= RSRP < -147dBm"},
2094 { -7, "-147dBm <= RSRP < -146dBm"},
2095 { -6, "-146dBm <= RSRP < -145dBm"},
2096 { -5, "-145dBm <= RSRP < -144dBm"},
2097 { -4, "-144dBm <= RSRP < -143dBm"},
2098 { -3, "-143dBm <= RSRP < -142dBm"},
2099 { -2, "-142dBm <= RSRP < -141dBm"},
2100 { -1, "-141dBm <= RSRP < -140dBm"},
2103 static value_string_ext lte_rrc_RSRP_Range_v1360_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_RSRP_Range_v1360_vals
);
2105 static const value_string lte_rrc_RSRP_RangeSL_vals
[] = {
2123 static const value_string lte_rrc_RSRP_RangeSL2_vals
[] = {
2136 static const value_string lte_rrc_RSRP_RangeSL3_vals
[] = {
2153 static const value_string lte_rrc_RSRP_RangeSL4_vals
[] = {
2206 static value_string_ext lte_rrc_RSRP_RangeSL4_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_RSRP_RangeSL4_vals
);
2209 lte_rrc_RSRP_RangeNR_r15_fmt(char *s
, uint32_t v
)
2212 snprintf(s
, ITEM_LABEL_LENGTH
, "SS-RSRP < -156dBm (0)");
2213 } else if (v
== 126) {
2214 snprintf(s
, ITEM_LABEL_LENGTH
, "-31dBm <= SS-RSRP (126)");
2215 } else if (v
== 127) {
2216 snprintf(s
, ITEM_LABEL_LENGTH
, "Infinity (127)");
2218 snprintf(s
, ITEM_LABEL_LENGTH
, "%ddBm <= SS-RSRP < %ddBm (%u)", -157+v
, -156+v
, v
);
2222 static const value_string lte_rrc_RSRQ_Range_vals
[] = {
2223 {-34, "RSRQ < -36dB"},
2224 {-33, "-36dB <= RSRQ < -35.5dB"},
2225 {-32, "-35.5dB <= RSRQ < -35dB"},
2226 {-31, "-35dB <= RSRQ < -34.5dB"},
2227 {-30, "-34.5dB <= RSRQ < -34dB"},
2228 {-29, "-34dB <= RSRQ < -33.5dB"},
2229 {-28, "-33.5dB <= RSRQ < -33dB"},
2230 {-27, "-33dB <= RSRQ < -32.5dB"},
2231 {-26, "-32.5dB <= RSRQ < -32dB"},
2232 {-25, "-32dB <= RSRQ < -31.5dB"},
2233 {-24, "-31.5dB <= RSRQ < -31dB"},
2234 {-23, "-31dB <= RSRQ < -30.5dB"},
2235 {-22, "-30.5dB <= RSRQ < -30dB"},
2236 {-21, "-30dB <= RSRQ < -29.5dB"},
2237 {-20, "-29.5dB <= RSRQ < -29dB"},
2238 {-19, "-29dB <= RSRQ < -28.5dB"},
2239 {-18, "-28.5dB <= RSRQ < -28dB"},
2240 {-17, "-28dB <= RSRQ < -27.5dB"},
2241 {-16, "-27.5dB <= RSRQ < -27dB"},
2242 {-15, "-27dB <= RSRQ < -26.5dB"},
2243 {-14, "-26.5dB <= RSRQ < -26dB"},
2244 {-13, "-26dB <= RSRQ < -25.5dB"},
2245 {-12, "-25.5dB <= RSRQ < -25dB"},
2246 {-11, "-25dB <= RSRQ < -24.5dB"},
2247 {-10, "-24.5dB <= RSRQ < -24dB"},
2248 { -9, "-24dB <= RSRQ < -23.5dB"},
2249 { -8, "-23.5dB <= RSRQ < -23dB"},
2250 { -7, "-23dB <= RSRQ < -22.5dB"},
2251 { -6, "-22.5dB <= RSRQ < -22dB"},
2252 { -5, "-22dB <= RSRQ < -21.5dB"},
2253 { -4, "-21.5dB <= RSRQ < -21dB"},
2254 { -3, "-21dB <= RSRQ < -20.5dB"},
2255 { -2, "-20.5dB <= RSRQ < -20dB"},
2256 { -1, "-20dB <= RSRQ < -19.5dB"},
2257 { 0, "RSRQ < -19.5dB"},
2258 { 1, "-19.5dB <= RSRQ < -19dB"},
2259 { 2, "-19dB <= RSRQ < -18.5dB"},
2260 { 3, "-18.5dB <= RSRQ < -18dB"},
2261 { 4, "-18dB <= RSRQ < -17.5dB"},
2262 { 5, "-17.5dB <= RSRQ < -17dB"},
2263 { 6, "-17dB <= RSRQ < -16.5dB"},
2264 { 7, "-16.5dB <= RSRQ < -16dB"},
2265 { 8, "-16dB <= RSRQ < -15.5dB"},
2266 { 9, "-15.5dB <= RSRQ < -15dB"},
2267 { 10, "-15dB <= RSRQ < -14.5dB"},
2268 { 11, "-14.5dB <= RSRQ < -14dB"},
2269 { 12, "-14dB <= RSRQ < -13.5dB"},
2270 { 13, "-13.5dB <= RSRQ < -13dB"},
2271 { 14, "-13dB <= RSRQ < -12.5dB"},
2272 { 15, "-12.5dB <= RSRQ < -12dB"},
2273 { 16, "-12dB <= RSRQ < -11.5dB"},
2274 { 17, "-11.5dB <= RSRQ < -11dB"},
2275 { 18, "-11dB <= RSRQ < -10.5dB"},
2276 { 19, "-10.5dB <= RSRQ < -10dB"},
2277 { 20, "-10dB <= RSRQ < -9.5dB"},
2278 { 21, "-9.5dB <= RSRQ < -9dB"},
2279 { 22, "-9dB <= RSRQ < -8.5dB"},
2280 { 23, "-8.5dB <= RSRQ < -8dB"},
2281 { 24, "-8dB <= RSRQ < -7.5dB"},
2282 { 25, "-7.5dB <= RSRQ < -7dB"},
2283 { 26, "-7dB <= RSRQ < -6.5dB"},
2284 { 27, "-6.5dB <= RSRQ < -6dB"},
2285 { 28, "-6dB <= RSRQ < -5.5dB"},
2286 { 29, "-5.5dB <= RSRQ < -5dB"},
2287 { 30, "-5dB <= RSRQ < -4.5dB"},
2288 { 31, "-4.5dB <= RSRQ < -4dB"},
2289 { 32, "-4dB <= RSRQ < -3.5dB"},
2290 { 33, "-3.5dB <= RSRQ < -3dB"},
2291 { 34, "-3dB <= RSRQ"},
2292 { 35, "-3dB <= RSRQ < -2.5dB"},
2293 { 36, "-2.5dB <= RSRQ < -2dB"},
2294 { 37, "-2dB <= RSRQ < -1.5dB"},
2295 { 38, "-1.5dB <= RSRQ < -1dB"},
2296 { 39, "-1dB <= RSRQ < -0.5dB"},
2297 { 40, "-0.5dB <= RSRQ < 0dB"},
2298 { 41, "0dB <= RSRQ < 0.5dB"},
2299 { 42, "0.5dB <= RSRQ < 1dB"},
2300 { 43, "1dB <= RSRQ < 1.5dB"},
2301 { 44, "1.5dB <= RSRQ < 2dB"},
2302 { 45, "2dB <= RSRQ < 2.5dB"},
2303 { 46, "2.5dB <= RSRQ"},
2306 static value_string_ext lte_rrc_RSRQ_Range_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_RSRQ_Range_vals
);
2309 lte_rrc_RSRQ_RangeNR_r15_fmt(char *s
, uint32_t v
)
2312 snprintf(s
, ITEM_LABEL_LENGTH
, "SS-RSRQ < -43dB (0)");
2313 } else if (v
== 127) {
2314 snprintf(s
, ITEM_LABEL_LENGTH
, "20dB < SS-RSRQ (127)");
2316 snprintf(s
, ITEM_LABEL_LENGTH
, "%.1fdB <= SS-RSRQ < %.1fdB (%u)", (((float)v
-1)/2)-43, ((float)v
/2)-43, v
);
2320 static const value_string lte_rrc_MBSFN_RSRQ_Range_vals
[] = {
2321 { 0, "RSRQ < -23dB"},
2322 { 1, "-23dB <= RSRQ < -22.5dB"},
2323 { 2, "-22.5dB <= RSRQ < -22dB"},
2324 { 3, "-22dB <= RSRQ < -21.5dB"},
2325 { 4, "-21.5dB <= RSRQ < -21dB"},
2326 { 5, "-21dB <= RSRQ < -20.5dB"},
2327 { 6, "-20.5dB <= RSRQ < -20dB"},
2328 { 7, "-20dB <= RSRQ < -19.5dB"},
2329 { 8, "-19.5dB <= RSRQ < -19dB"},
2330 { 9, "-19dB <= RSRQ < -18.5dB"},
2331 { 10, "-18.5dB <= RSRQ < -18dB"},
2332 { 11, "-18dB <= RSRQ < -17.5dB"},
2333 { 12, "-17.5dB <= RSRQ < -17dB"},
2334 { 13, "-17dB <= RSRQ < -16.5dB"},
2335 { 14, "-16.5dB <= RSRQ < -16dB"},
2336 { 15, "-16dB <= RSRQ < -15.5dB"},
2337 { 16, "-15.5dB <= RSRQ < -15dB"},
2338 { 17, "-15dB <= RSRQ < -14.5dB"},
2339 { 18, "-14.5dB <= RSRQ < -14dB"},
2340 { 19, "-14dB <= RSRQ < -13.5dB"},
2341 { 20, "-13.5dB <= RSRQ < -13dB"},
2342 { 21, "-13dB <= RSRQ < -12.5dB"},
2343 { 22, "-12.5dB <= RSRQ < -12dB"},
2344 { 23, "-12dB <= RSRQ < -11.5dB"},
2345 { 24, "-11.5dB <= RSRQ < -11dB"},
2346 { 25, "-11dB <= RSRQ < -10.5dB"},
2347 { 26, "-10.5dB <= RSRQ < -10dB"},
2348 { 27, "-10dB <= RSRQ < -9.5dB"},
2349 { 28, "-9.5dB <= RSRQ < -9dB"},
2350 { 29, "-9dB <= RSRQ < -8.5dB"},
2351 { 30, "-8.5dB <= RSRQ < -8dB"},
2352 { 31, "-8dB <= RSRQ"},
2355 static value_string_ext lte_rrc_MBSFN_RSRQ_Range_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_MBSFN_RSRQ_Range_vals
);
2358 lte_rrc_availableAdmissionCapacityWLAN_fmt(char *s
, uint32_t v
)
2360 snprintf(s
, ITEM_LABEL_LENGTH
, "%uus/s (%u)", 32*v
, v
);
2364 lte_rrc_ue_RxTxTimeDiffResult_fmt(char *s
, uint32_t v
)
2367 snprintf(s
, ITEM_LABEL_LENGTH
, "T < 2Ts (0)");
2368 } else if (v
< 2048) {
2369 snprintf(s
, ITEM_LABEL_LENGTH
, "%uTs <= T < %uTs (%u)", v
*2, (v
+1)*2, v
);
2370 } else if (v
< 4095) {
2371 snprintf(s
, ITEM_LABEL_LENGTH
, "%uTs <= T < %uTs (%u)", (v
*8)-12288, ((v
+1)*8)-12288, v
);
2373 snprintf(s
, ITEM_LABEL_LENGTH
, "20472Ts <= T (4095)");
2377 static const true_false_string lte_rrc_duration_val
= {
2382 static const value_string lte_rrc_eab_category_vals
[] = {
2383 { 0, "a - all UEs" },
2384 { 1, "b - UEs not in their HPLMN/EHPLMN" },
2385 { 2, "c - UEs not in the most preferred PLMN of the country where they are roaming in EF OPLMNwACT list, nor in their HPLMN/EHPLMN" },
2389 static const value_string lte_rrc_daylightSavingTime_vals
[] = {
2390 { 0, "No adjustment for Daylight Saving Time"},
2391 { 1, "+1 hour adjustment for Daylight Saving Time"},
2392 { 2, "+2 hours adjustment for Daylight Saving Time"},
2397 static const value_string lte_rrc_neighCellConfig_vals
[] = {
2398 { 0, "Not all neighbour cells have the same MBSFN subframe allocation as serving cell"},
2399 { 1, "No MBSFN subframes are present in all neighbour cells"},
2400 { 2, "The MBSFN subframe allocations of all neighbour cells are identical to or subsets of that in the serving cell"},
2401 { 3, "Different UL/DL allocation in neighbouring cells for TDD compared to the serving cell"},
2405 static const value_string lte_rrc_messageIdentifier_vals
[] = {
2406 { 0x03e8, "LCS CBS Message Identifier for E-OTD Assistance Data message"},
2407 { 0x03e9, "LCS CBS Message Identifier for DGPS Correction Data message"},
2408 { 0x03ea, "LCS CBS Message Identifier for GPS Ephemeris and Clock Correction Data message"},
2409 { 0x03eb, "LCS CBS Message Identifier for GPS Almanac and Other Data message"},
2410 { 0x1100, "ETWS Identifier for earthquake warning message"},
2411 { 0x1101, "ETWS Identifier for tsunami warning message"},
2412 { 0x1102, "ETWS Identifier for earthquake and tsunami combined warning message"},
2413 { 0x1103, "ETWS Identifier for test message"},
2414 { 0x1104, "ETWS Identifier for messages related to other emergency types"},
2415 { 0x1105, "ETWS Identifier for future extension"},
2416 { 0x1106, "ETWS Identifier for future extension"},
2417 { 0x1107, "ETWS Identifier for future extension"},
2418 { 0x1112, "CMAS Identifier for CMAS Presidential Level Alerts"},
2419 { 0x1113, "CMAS Identifier for CMAS Extreme Alerts with Severity of Extreme, Urgency of Immediate, and Certainty of Observed"},
2420 { 0x1114, "CMAS Identifier for CMAS Extreme Alerts with Severity of Extreme, Urgency of Immediate, and Certainty of Likely"},
2421 { 0x1115, "CMAS Identifier for CMAS Severe Alerts with Severity of Extreme, Urgency of Expected, and Certainty of Observed"},
2422 { 0x1116, "CMAS Identifier for CMAS Severe Alerts with Severity of Extreme, Urgency of Expected, and Certainty of Likely"},
2423 { 0x1117, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Immediate, and Certainty of Observed"},
2424 { 0x1118, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Immediate, and Certainty of Likely"},
2425 { 0x1119, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Expected, and Certainty of Observed"},
2426 { 0x111a, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Expected, and Certainty of Likely"},
2427 { 0x111b, "CMAS Identifier for Child Abduction Emergency (or Amber Alert)"},
2428 { 0x111c, "CMAS Identifier for the Required Monthly Test"},
2429 { 0x111d, "CMAS Identifier for CMAS Exercise"},
2430 { 0x111e, "CMAS Identifier for operator defined use"},
2431 { 0x111f, "CMAS Identifier for CMAS Presidential Level Alerts for additional languages"},
2432 { 0x1120, "CMAS Identifier for CMAS Extreme Alerts with Severity of Extreme, Urgency of Immediate, and Certainty of Observed for additional languages"},
2433 { 0x1121, "CMAS Identifier for CMAS Extreme Alerts with Severity of Extreme, Urgency of Immediate, and Certainty of Likely for additional languages"},
2434 { 0x1122, "CMAS Identifier for CMAS Severe Alerts with Severity of Extreme, Urgency of Expected, and Certainty of Observed for additional languages"},
2435 { 0x1123, "CMAS Identifier for CMAS Severe Alerts with Severity of Extreme, Urgency of Expected, and Certainty of Likely for additional languages"},
2436 { 0x1124, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Immediate, and Certainty of Observed for additional languages"},
2437 { 0x1125, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Immediate, and Certainty of Likely for additional languages"},
2438 { 0x1126, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Expected, and Certainty of Observed for additional languages"},
2439 { 0x1127, "CMAS Identifier for CMAS Severe Alerts with Severity of Severe, Urgency of Expected, and Certainty of Likely for additional languages"},
2440 { 0x1128, "CMAS Identifier for Child Abduction Emergency (or Amber Alert) for additional languages"},
2441 { 0x1129, "CMAS Identifier for the Required Monthly Test for additional languages"},
2442 { 0x112a, "CMAS Identifier for CMAS Exercise for additional languages"},
2443 { 0x112b, "CMAS Identifier for operator defined use for additional languages"},
2444 { 0x112c, "CMAS CBS Message Identifier for CMAS Public Safety Alerts"},
2445 { 0x112d, "CMAS CBS Message Identifier for CMAS Public Safety Alerts for additional languages"},
2446 { 0x112e, "CMAS CBS Message Identifier for CMAS State/Local WEA Test"},
2447 { 0x112f, "CMAS CBS Message Identifier for CMAS State/Local WEA Test for additional languages"},
2448 { 0x1130, "CMAS CBS Message Identifier for geo-fencing trigger messages"},
2449 { 0x1131, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality"},
2450 { 0x1132, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when an earthquake occurs"},
2451 { 0x1133, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a volcanic eruption occurs"},
2452 { 0x1134, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is water (e.g. flood, typhoon, hurricane or tsunami) occurs"},
2453 { 0x1135, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is fire (e.g. forest fire or building fire) occurs"},
2454 { 0x1136, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is pressure (e.g. landslide or avalanche) occurs"},
2455 { 0x1137, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is wind (e.g. tornado or gale) occurs"},
2456 { 0x1138, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is dust (e.g. yellow dust or sandstorm) occurs"},
2457 { 0x1139, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is chemical hazard (e.g. radiation leak or toxic substance leak) occurs"},
2458 { 0x113a, "Non-ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when an epidemic occurs"},
2459 { 0x113b, "Non-ETWS CBS Message Identifier for test message dedicated to UEs with no user interface and with ePWS functionality"},
2460 { 0x113c, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality"},
2461 { 0x113d, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when an earthquake occurs"},
2462 { 0x113e, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a volcanic eruption occurs"},
2463 { 0x113f, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is water (e.g. flood, typhoon, hurricane or tsunami) occurs"},
2464 { 0x1140, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is fire (e.g. forest fire or building fire) occurs"},
2465 { 0x1141, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is pressure (e.g. landslide or avalanche) occurs"},
2466 { 0x1142, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is wind (e.g. tornado or gale) occurs"},
2467 { 0x1143, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is dust (e.g. yellow dust or sandstorm) occurs"},
2468 { 0x1144, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when a disaster whose characteristic is chemical hazard (e.g. radiation leak or toxic substance leak) occurs"},
2469 { 0x1145, "ETWS CBS Message Identifier for warning message dedicated to UEs with no user interface and with ePWS functionality when an epidemic occurs"},
2470 { 0x1146, "ETWS CBS Message Identifier for test message dedicated to UEs with no user interface and with ePWS functionality"},
2471 { 0x1900, "EU-Info Message Identifier for the local language"},
2474 value_string_ext lte_rrc_messageIdentifier_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_messageIdentifier_vals
);
2476 static const value_string lte_rrc_serialNumber_gs_vals
[] = {
2477 { 0, "Display mode immediate, cell wide"},
2478 { 1, "Display mode normal, PLMN wide"},
2479 { 2, "Display mode normal, tracking area wide"},
2480 { 3, "Display mode normal, cell wide"},
2484 static const value_string lte_rrc_warningType_vals
[] = {
2487 { 2, "Earthquake and Tsunami"},
2493 static const true_false_string lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1_val
= {
2494 "SCell DL subframes are a subset or superset of PCell by SIB1 configuration - Supported",
2495 "SCell DL subframes are a subset or superset of PCell by SIB1 configuration - Not supported",
2498 static const true_false_string lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2_val
= {
2499 "SCell DL subframes are neither superset nor subset of PCell by SIB1 configuration - Supported",
2500 "SCell DL subframes are neither superset nor subset of PCell by SIB1 configuration - Not supported",
2503 static const true_false_string lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1_val
= {
2504 "TDD PCell - Supported",
2505 "TDD PCell - Not supported"
2508 static const true_false_string lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2_val
= {
2509 "FDD PCell - Supported",
2510 "FDD PCell - Not supported"
2513 static const true_false_string hf_lte_rrc_aperiodicCSI_Reporting_r13_bit1_val
= {
2514 "Aperiodic CSI reporting with 3 bits of the CSI request field size - Supported",
2515 "Aperiodic CSI reporting with 3 bits of the CSI request field size - Not supported"
2518 static const true_false_string hf_lte_rrc_aperiodicCSI_Reporting_r13_bit2_val
= {
2519 "Aperiodic CSI reporting mode 1-0 and mode 1-1 - Supported",
2520 "Aperiodic CSI reporting mode 1-0 and mode 1-1 - Not supported"
2523 static const true_false_string hf_lte_rrc_codebook_HARQ_ACK_r13_bit1_val
= {
2524 "DAI-based codebook size determination - Supported",
2525 "DAI-based codebook size determination - Not supported"
2528 static const true_false_string hf_lte_rrc_codebook_HARQ_ACK_r13_bit2_val
= {
2529 "Number of configured CCs based codebook size determination - Supported",
2530 "Number of configured CCs based codebook size determination - Not supported"
2533 static const true_false_string lte_rrc_transmissionModeList_r12_val
= {
2534 "NeighCellsInfo applies",
2535 "NeighCellsInfo does not apply"
2538 static const value_string lte_rrc_excessDelay_r13_vals
[] = {
2539 { 0, "ratio < 0.079%"},
2540 { 1, "0.079% < ratio < 0.100%"},
2541 { 2, "0.100% < ratio < 0.126%"},
2542 { 3, "0.126% < ratio < 0.158%"},
2543 { 4, "0.158% < ratio < 0.199%"},
2544 { 5, "0.199% < ratio < 0.251%"},
2545 { 6, "0.251% < ratio < 0.316%"},
2546 { 7, "0.316% < ratio < 0.398%"},
2547 { 8, "0.398% < ratio < 0.501%"},
2548 { 9, "0.501% < ratio < 0.631%"},
2549 { 10, "0.631% < ratio < 0.794%"},
2550 { 11, "0.794% < ratio < 1.000%"},
2551 { 12, "1.000% < ratio < 1.259%"},
2552 { 13, "1.259% < ratio < 1.585%"},
2553 { 14, "1.585% < ratio < 1.995%"},
2554 { 15, "1.995% < ratio < 2.511%"},
2555 { 16, "2.511% < ratio < 3.161%"},
2556 { 17, "3.161% < ratio < 3.980%"},
2557 { 18, "3.980% < ratio < 5.011%"},
2558 { 19, "5.011% < ratio < 6.309%"},
2559 { 20, "6.309% < ratio < 7.943%"},
2560 { 21, "7.943% < ratio < 10.00%"},
2561 { 22, "10.00% < ratio < 12.589%"},
2562 { 23, "12.589% < ratio < 15.849%"},
2563 { 24, "15.849% < ratio < 19.953%"},
2564 { 25, "19.953% < ratio < 25.119%"},
2565 { 26, "25.119% < ratio < 31.623%"},
2566 { 27, "31.623% < ratio < 39.811%"},
2567 { 28, "39.811% < ratio < 50.119%"},
2568 { 29, "50.119% < ratio < 63.096%"},
2569 { 30, "63.096% < ratio < 79.433%"},
2570 { 31, "79.433% < ratio < 100%"},
2573 static value_string_ext lte_rrc_excessDelay_r13_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_excessDelay_r13_vals
);
2576 lte_rrc_averageDelay_r16_fmt(char *s
, uint32_t v
)
2578 snprintf(s
, ITEM_LABEL_LENGTH
, "%.1fms (%u)", (float)v
/10, v
);
2582 lte_rrc_subframeBoundaryOffsetResult_r13_fmt(char *s
, uint32_t v
)
2585 snprintf(s
, ITEM_LABEL_LENGTH
, "abs(deltaZ) < 700Ts (0)");
2586 } else if (v
== 63) {
2587 snprintf(s
, ITEM_LABEL_LENGTH
, "1320Ts < abs(deltaZ) (63)");
2589 snprintf(s
, ITEM_LABEL_LENGTH
, "%uTs < abs(deltaZ) <= %uTs (%u)", 700+(v
-1)*10, 700+v
*10, v
);
2594 lte_rrc_RS_SINR_Range_r13_fmt(char *s
, uint32_t v
)
2597 snprintf(s
, ITEM_LABEL_LENGTH
, "RS-SINR < -23dB (0)");
2598 } else if (v
== 127) {
2599 snprintf(s
, ITEM_LABEL_LENGTH
, "40dB <= RS-SINR (127)");
2601 snprintf(s
, ITEM_LABEL_LENGTH
, "%.1fdB <= RS-SINR < %.1fdB (%u)", (((float)v
-1)/2)-23, ((float)v
/2)-23, v
);
2606 lte_rrc_RS_SINR_RangeNR_r15_fmt(char *s
, uint32_t v
)
2609 snprintf(s
, ITEM_LABEL_LENGTH
, "SS-SINR < -23dB (0)");
2610 } else if (v
== 127) {
2611 snprintf(s
, ITEM_LABEL_LENGTH
, "40dB < SS-SINR (127)");
2613 snprintf(s
, ITEM_LABEL_LENGTH
, "%.1fdB <= SS-SINR < %.1fdB (%u)", (((float)v
-1)/2)-23, ((float)v
/2)-23, v
);
2618 lte_rrc_RSSI_Range_r13_fmt(char *s
, uint32_t v
)
2621 snprintf(s
, ITEM_LABEL_LENGTH
, "RSSI < -100dBm (0)");
2622 } else if (v
== 76) {
2623 snprintf(s
, ITEM_LABEL_LENGTH
, "-25dBm <= RSSI (76)");
2625 snprintf(s
, ITEM_LABEL_LENGTH
, "%ddBm <= RSSI < %ddBm (%u)", -100+(v
-1), -100+v
, v
);
2630 lte_rrc_scptm_FreqOffset_r14_fmt(char *s
, uint32_t v
)
2632 snprintf(s
, ITEM_LABEL_LENGTH
, "%udB (%u)", 2*v
, v
);
2636 lte_rrc_offsetDFN_r14_fmt(char *s
, uint32_t v
)
2639 snprintf(s
, ITEM_LABEL_LENGTH
, "0ms (0)");
2640 } else if (v
< 1000) {
2641 snprintf(s
, ITEM_LABEL_LENGTH
, "%.3fms (%u)", ((float)v
)/1000, v
);
2643 snprintf(s
, ITEM_LABEL_LENGTH
, "1ms (1000)");
2648 lte_rrc_thresholdWLAN_RSSI_fmt(char *s
, uint32_t v
)
2650 snprintf(s
, ITEM_LABEL_LENGTH
, "%ddBm (%u)", -128+v
, v
);
2654 lte_rrc_cr_Limit_r14_fmt(char *s
, uint32_t v
)
2657 snprintf(s
, ITEM_LABEL_LENGTH
, "0 (0)");
2658 } else if (v
< 10000) {
2659 snprintf(s
, ITEM_LABEL_LENGTH
, "%.4f (%u)", ((float)v
)/10000, v
);
2661 snprintf(s
, ITEM_LABEL_LENGTH
, "1 (10000)");
2666 lte_rrc_SL_CBR_r14_fmt(char *s
, uint32_t v
)
2669 snprintf(s
, ITEM_LABEL_LENGTH
, "0 (0)");
2670 } else if (v
< 100) {
2671 snprintf(s
, ITEM_LABEL_LENGTH
, "%.2f (%u)", ((float)v
)/100, v
);
2673 snprintf(s
, ITEM_LABEL_LENGTH
, "1 (100)");
2678 lte_rrc_threshS_RSSI_CBR_r14_fmt(char *s
, uint32_t v
)
2680 snprintf(s
, ITEM_LABEL_LENGTH
, "%ddBm (%u)", -112+(2*v
), v
);
2683 static const value_string lte_rrc_schedulingInfoSIB1_NB_r13_vals
[] = {
2684 { 0, "4 NPDSCH repetitions - TBS 208 bits"},
2685 { 1, "8 NPDSCH repetitions - TBS 208 bits"},
2686 { 2, "16 NPDSCH repetitions - TBS 208 bits"},
2687 { 3, "4 NPDSCH repetitions - TBS 328 bits"},
2688 { 4, "8 NPDSCH repetitions - TBS 328 bits"},
2689 { 5, "16 NPDSCH repetitions - TBS 328 bits"},
2690 { 6, "4 NPDSCH repetitions - TBS 440 bits"},
2691 { 7, "8 NPDSCH repetitions - TBS 440 bits"},
2692 { 8, "16 NPDSCH repetitions - TBS 440 bits"},
2693 { 9, "4 NPDSCH repetitions - TBS 680 bits"},
2694 { 10, "8 NPDSCH repetitions - TBS 680 bits"},
2695 { 11, "16 NPDSCH repetitions - TBS 680 bits"},
2698 static value_string_ext lte_rrc_schedulingInfoSIB1_NB_r13_vals_ext
= VALUE_STRING_EXT_INIT(lte_rrc_schedulingInfoSIB1_NB_r13_vals
);
2701 lte_rrc_NRSRP_Range_NB_r14_fmt(char *s
, uint32_t v
)
2704 snprintf(s
, ITEM_LABEL_LENGTH
, "NRSRP < -156dBm (0)");
2705 } else if (v
< 113) {
2706 snprintf(s
, ITEM_LABEL_LENGTH
, "%ddBm <= NRSRP < %ddBm (%u)", v
-157, v
-156, v
);
2708 snprintf(s
, ITEM_LABEL_LENGTH
, "-44dBm <= NRSRP (97)");
2713 lte_rrc_NRSRQ_Range_NB_r14_fmt(char *s
, uint32_t v
)
2715 int32_t rsrq
= (uint32_t)v
;
2717 snprintf(s
, ITEM_LABEL_LENGTH
, "NRSRQ < -34dB (-30)");
2718 } else if (rsrq
< 0) {
2719 snprintf(s
, ITEM_LABEL_LENGTH
, "%.1fdB <= NRSRQ < %.1fdB (%d)", (((float)rsrq
-1)/2)-19, ((float)rsrq
/2)-19, rsrq
);
2720 } else if (rsrq
== 0) {
2721 snprintf(s
, ITEM_LABEL_LENGTH
, "NRSRQ < -19.5dB (0)");
2722 } else if (rsrq
< 34) {
2723 snprintf(s
, ITEM_LABEL_LENGTH
, "%.1fdB <= NRSRQ < %.1fdB (%d)", (((float)rsrq
-1)/2)-19.5, ((float)rsrq
/2)-19.5, rsrq
);
2724 } else if (rsrq
== 34) {
2725 snprintf(s
, ITEM_LABEL_LENGTH
, "-3 <= NRSRQ (34)");
2726 } else if (rsrq
< 46) {
2727 snprintf(s
, ITEM_LABEL_LENGTH
, "%.1fdB <= NRSRQ < %.1fdB (%d)", (((float)rsrq
-1)/2)-20, ((float)rsrq
/2)-20, rsrq
);
2729 snprintf(s
, ITEM_LABEL_LENGTH
, "2.5dB <= NRSRQ (46)");
2734 lte_rrc_mbms_MaxBW_r14_fmt(char *s
, uint32_t v
)
2736 snprintf(s
, ITEM_LABEL_LENGTH
, "%u MHz (%u)", 40*v
, v
);
2740 lte_rrc_dl_1024QAM_TotalWeightedLayers_r15_fmt(char *s
, uint32_t v
)
2742 snprintf(s
, ITEM_LABEL_LENGTH
, "%u (%u)", 10+(2*v
), v
);
2746 lte_rrc_call_dissector(dissector_handle_t handle
, tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
)
2749 call_dissector(handle
, tvb
, pinfo
, tree
);
2751 CATCH_BOUNDS_ERRORS
{
2752 show_exception(tvb
, pinfo
, tree
, EXCEPT_CODE
, GET_MESSAGE
);
2757 /*****************************************************************************/
2758 /* Packet private data */
2759 /* For this dissector, all access to actx->private_data should be made */
2760 /* through this API, which ensures that they will not overwrite each other!! */
2761 /*****************************************************************************/
2763 typedef struct meas_capabilities_item_band_mappings_t
{
2764 uint16_t number_of_bands_set
;
2765 uint16_t number_of_interfreq_serving_read
;
2766 uint16_t number_of_interfreq_target_read
;
2767 uint16_t band_by_item
[256];
2768 } meas_capabilities_item_band_mappings_t
;
2771 /**********************************************************/
2772 /* Struct to store all current uses of packet private data */
2773 typedef struct lte_rrc_private_data_t
2776 uint8_t target_rat_type
;
2777 uint8_t si_or_psi_geran
;
2778 uint8_t ra_preambles
;
2779 uint16_t message_identifier
;
2780 uint8_t warning_message_segment_type
;
2781 uint8_t warning_message_segment_number
;
2782 drb_mapping_t drb_mapping
;
2783 drx_config_t drx_config
;
2784 pdcp_lte_security_info_t pdcp_security
;
2785 meas_capabilities_item_band_mappings_t meas_capabilities_item_band_mappings
;
2786 simult_pucch_pusch_cell_type cell_type
;
2787 bool bcch_dl_sch_msg
;
2788 lpp_pos_sib_type_t pos_sib_type
;
2789 uint8_t dcch_segment_number
;
2790 tvbuff_t
*dcch_segment
;
2791 bool dcch_segment_last
;
2792 } lte_rrc_private_data_t
;
2794 /* Helper function to get or create a struct that will be actx->private_data */
2795 static lte_rrc_private_data_t
* lte_rrc_get_private_data(asn1_ctx_t
*actx
)
2797 if (actx
->private_data
!= NULL
) {
2798 return (lte_rrc_private_data_t
*)actx
->private_data
;
2801 lte_rrc_private_data_t
* new_struct
=
2802 wmem_new0(actx
->pinfo
->pool
, lte_rrc_private_data_t
);
2803 actx
->private_data
= new_struct
;
2809 /* DRX config data */
2810 static drx_config_t
* private_data_get_drx_config(asn1_ctx_t
*actx
)
2812 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2813 return &private_data
->drx_config
;
2816 /* DRB mapping info */
2817 static drb_mapping_t
* private_data_get_drb_mapping(asn1_ctx_t
*actx
)
2819 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2820 return &private_data
->drb_mapping
;
2825 static uint8_t private_data_get_rat_type(asn1_ctx_t
*actx
)
2827 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2828 return private_data
->rat_type
;
2831 static void private_data_set_rat_type(asn1_ctx_t
*actx
, uint8_t rat_type
)
2833 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2834 private_data
->rat_type
= rat_type
;
2838 /* Target RAT type */
2839 static uint8_t private_data_get_rat_target_type(asn1_ctx_t
*actx
)
2841 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2842 return private_data
->target_rat_type
;
2845 static void private_data_set_rat_target_type(asn1_ctx_t
*actx
, uint8_t target_rat_type
)
2847 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2848 private_data
->target_rat_type
= target_rat_type
;
2852 /* si_or_psi_geran */
2853 static uint8_t private_data_get_si_or_psi_geran(asn1_ctx_t
*actx
)
2855 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2856 return private_data
->si_or_psi_geran
;
2859 static void private_data_set_si_or_psi_geran(asn1_ctx_t
*actx
, uint8_t si_or_psi_geran
)
2861 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2862 private_data
->si_or_psi_geran
= si_or_psi_geran
;
2866 /* Message identifier */
2867 static uint16_t private_data_get_message_identifier(asn1_ctx_t
*actx
)
2869 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2870 return private_data
->message_identifier
;
2873 static void private_data_set_message_identifier(asn1_ctx_t
*actx
, uint16_t message_identifier
)
2875 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2876 private_data
->message_identifier
= message_identifier
;
2880 /* Warning message segment type */
2881 static uint16_t private_data_get_warning_message_segment_type(asn1_ctx_t
*actx
)
2883 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2884 return private_data
->warning_message_segment_type
;
2887 static void private_data_set_warning_message_segment_type(asn1_ctx_t
*actx
, uint8_t segment_type
)
2889 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2890 private_data
->warning_message_segment_type
= segment_type
;
2894 /* Warning message segment number */
2895 static uint16_t private_data_get_warning_message_segment_number(asn1_ctx_t
*actx
)
2897 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2898 return private_data
->warning_message_segment_number
;
2901 static void private_data_set_warning_message_segment_number(asn1_ctx_t
*actx
, uint8_t segment_number
)
2903 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2904 private_data
->warning_message_segment_number
= segment_number
;
2908 /* Number of RA-preambles */
2909 static uint8_t private_data_get_ra_preambles(asn1_ctx_t
*actx
)
2911 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2912 return private_data
->ra_preambles
;
2915 static void private_data_set_ra_preambles(asn1_ctx_t
*actx
, uint8_t ra_preambles
)
2917 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2918 private_data
->ra_preambles
= ra_preambles
;
2922 /* PDCP Security info */
2923 static pdcp_lte_security_info_t
* private_data_pdcp_security_algorithms(asn1_ctx_t
*actx
)
2925 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2926 return &private_data
->pdcp_security
;
2930 /* Measurement UE capabilities item -> band mappings */
2931 static meas_capabilities_item_band_mappings_t
* private_data_meas_capabilities_item_band_mappings(asn1_ctx_t
*actx
)
2933 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2934 return &private_data
->meas_capabilities_item_band_mappings
;
2937 static void set_freq_band_indicator(uint32_t value
, asn1_ctx_t
*actx
)
2939 /* Store band mapping for this item in the next position */
2940 meas_capabilities_item_band_mappings_t
*mappings
= private_data_meas_capabilities_item_band_mappings(actx
);
2941 if (mappings
->number_of_bands_set
< 256) {
2942 mappings
->band_by_item
[mappings
->number_of_bands_set
++] = (uint16_t)value
;
2946 static void remove_last_freq_band_indicator(asn1_ctx_t
*actx
)
2948 meas_capabilities_item_band_mappings_t
*mappings
= private_data_meas_capabilities_item_band_mappings(actx
);
2949 if ((mappings
->number_of_bands_set
> 0) && (mappings
->number_of_bands_set
< 256)) {
2950 mappings
->number_of_bands_set
--;
2954 /* Cell type for simultaneousPUCCH-PUSCH-r10 */
2955 static simult_pucch_pusch_cell_type
private_data_get_simult_pucch_pusch_cell_type(asn1_ctx_t
*actx
)
2957 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2958 return private_data
->cell_type
;
2961 static void private_data_set_simult_pucch_pusch_cell_type(asn1_ctx_t
*actx
, simult_pucch_pusch_cell_type cell_type
)
2963 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2964 private_data
->cell_type
= cell_type
;
2967 /* Is top message a BCCH DL-SCH BR/MBMS */
2968 static bool private_data_get_bcch_dl_sch_msg(asn1_ctx_t
*actx
)
2970 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2971 return private_data
->bcch_dl_sch_msg
;
2974 static void private_data_set_bcch_dl_sch_msg(asn1_ctx_t
*actx
, bool is_bcch_dl_sch
)
2976 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2977 private_data
->bcch_dl_sch_msg
= is_bcch_dl_sch
;
2980 static lpp_pos_sib_type_t
private_data_get_pos_sib_type(asn1_ctx_t
*actx
)
2982 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2983 return private_data
->pos_sib_type
;
2986 static void private_data_set_pos_sib_type(asn1_ctx_t
*actx
, lpp_pos_sib_type_t pos_sib_type
)
2988 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2989 private_data
->pos_sib_type
= pos_sib_type
;
2992 static uint8_t private_data_get_dcch_segment_number(asn1_ctx_t
*actx
)
2994 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
2995 return private_data
->dcch_segment_number
;
2998 static void private_data_set_dcch_segment_number(asn1_ctx_t
*actx
, uint8_t dcch_segment_number
)
3000 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
3001 private_data
->dcch_segment_number
= dcch_segment_number
;
3004 static tvbuff_t
*private_data_get_dcch_segment(asn1_ctx_t
*actx
)
3006 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
3007 return private_data
->dcch_segment
;
3010 static void private_data_set_dcch_segment(asn1_ctx_t
*actx
, tvbuff_t
*dcch_segment
)
3012 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
3013 private_data
->dcch_segment
= dcch_segment
;
3016 static bool private_data_get_dcch_segment_last(asn1_ctx_t
*actx
)
3018 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
3019 return private_data
->dcch_segment_last
;
3022 static void private_data_set_dcch_segment_last(asn1_ctx_t
*actx
, bool dcch_segment_last
)
3024 lte_rrc_private_data_t
*private_data
= (lte_rrc_private_data_t
*)lte_rrc_get_private_data(actx
);
3025 private_data
->dcch_segment_last
= dcch_segment_last
;
3028 /*****************************************************************************/
3032 lte_rrc_localTimeOffset_fmt(char *s
, uint32_t v
)
3034 int32_t time_offset
= (int32_t) v
;
3036 snprintf(s
, ITEM_LABEL_LENGTH
, "UTC time %c %dhr %dmin (%d)",
3037 (time_offset
< 0) ? '-':'+', abs(time_offset
) >> 2,
3038 (abs(time_offset
) & 0x03) * 15, time_offset
);
3042 dissect_lte_rrc_warningMessageSegment(tvbuff_t
*warning_msg_seg_tvb
, proto_tree
*tree
, packet_info
*pinfo
, uint8_t dataCodingScheme
)
3045 uint8_t nb_of_pages
, length
, *str
;
3047 tvbuff_t
*cb_data_page_tvb
, *cb_data_tvb
;
3050 nb_of_pages
= tvb_get_uint8(warning_msg_seg_tvb
, 0);
3051 ti
= proto_tree_add_uint(tree
, hf_lte_rrc_warningMessageSegment_nb_pages
, warning_msg_seg_tvb
, 0, 1, nb_of_pages
);
3052 if (nb_of_pages
> 15) {
3053 expert_add_info_format(pinfo
, ti
, &ei_lte_rrc_number_pages_le15
,
3054 "Number of pages should be <=15 (found %u)", nb_of_pages
);
3057 for (i
= 0, offset
= 1; i
< nb_of_pages
; i
++) {
3058 length
= tvb_get_uint8(warning_msg_seg_tvb
, offset
+82);
3059 cb_data_page_tvb
= tvb_new_subset_length(warning_msg_seg_tvb
, offset
, length
);
3060 cb_data_tvb
= dissect_cbs_data(dataCodingScheme
, cb_data_page_tvb
, tree
, pinfo
, 0);
3062 str
= tvb_get_string_enc(pinfo
->pool
, cb_data_tvb
, 0, tvb_reported_length(cb_data_tvb
), ENC_UTF_8
|ENC_NA
);
3063 proto_tree_add_string_format(tree
, hf_lte_rrc_warningMessageSegment_decoded_page
, warning_msg_seg_tvb
, offset
, 83,
3064 str
, "Decoded Page %u: %s", i
+1, str
);
3071 dissect_lte_rrc_featureGroupIndicators(tvbuff_t
*featureGroupIndicators_tvb
, asn1_ctx_t
*actx
)
3073 proto_tree
*subtree
;
3075 subtree
= proto_item_add_subtree(actx
->created_item
, ett_lte_rrc_featureGroupIndicators
);
3076 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_1
, featureGroupIndicators_tvb
, 0, 1, ENC_BIG_ENDIAN
);
3077 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_2
, featureGroupIndicators_tvb
, 1, 1, ENC_BIG_ENDIAN
);
3078 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_3
, featureGroupIndicators_tvb
, 2, 1, ENC_BIG_ENDIAN
);
3079 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_4
, featureGroupIndicators_tvb
, 3, 1, ENC_BIG_ENDIAN
);
3080 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_5
, featureGroupIndicators_tvb
, 4, 1, ENC_BIG_ENDIAN
);
3081 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_6
, featureGroupIndicators_tvb
, 5, 1, ENC_BIG_ENDIAN
);
3082 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_7
, featureGroupIndicators_tvb
, 6, 1, ENC_BIG_ENDIAN
);
3083 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_8
, featureGroupIndicators_tvb
, 7, 1, ENC_BIG_ENDIAN
);
3084 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_9
, featureGroupIndicators_tvb
, 8, 1, ENC_BIG_ENDIAN
);
3085 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_10
, featureGroupIndicators_tvb
, 9, 1, ENC_BIG_ENDIAN
);
3086 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_11
, featureGroupIndicators_tvb
, 10, 1, ENC_BIG_ENDIAN
);
3087 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_12
, featureGroupIndicators_tvb
, 11, 1, ENC_BIG_ENDIAN
);
3088 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_13
, featureGroupIndicators_tvb
, 12, 1, ENC_BIG_ENDIAN
);
3089 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_14
, featureGroupIndicators_tvb
, 13, 1, ENC_BIG_ENDIAN
);
3090 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_15
, featureGroupIndicators_tvb
, 14, 1, ENC_BIG_ENDIAN
);
3091 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_16
, featureGroupIndicators_tvb
, 15, 1, ENC_BIG_ENDIAN
);
3092 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_17
, featureGroupIndicators_tvb
, 16, 1, ENC_BIG_ENDIAN
);
3093 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_18
, featureGroupIndicators_tvb
, 17, 1, ENC_BIG_ENDIAN
);
3094 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_19
, featureGroupIndicators_tvb
, 18, 1, ENC_BIG_ENDIAN
);
3095 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_20
, featureGroupIndicators_tvb
, 19, 1, ENC_BIG_ENDIAN
);
3096 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_21
, featureGroupIndicators_tvb
, 20, 1, ENC_BIG_ENDIAN
);
3097 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_22
, featureGroupIndicators_tvb
, 21, 1, ENC_BIG_ENDIAN
);
3098 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_23
, featureGroupIndicators_tvb
, 22, 1, ENC_BIG_ENDIAN
);
3099 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_24
, featureGroupIndicators_tvb
, 23, 1, ENC_BIG_ENDIAN
);
3100 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_25
, featureGroupIndicators_tvb
, 24, 1, ENC_BIG_ENDIAN
);
3101 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_26
, featureGroupIndicators_tvb
, 25, 1, ENC_BIG_ENDIAN
);
3102 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_27
, featureGroupIndicators_tvb
, 26, 1, ENC_BIG_ENDIAN
);
3103 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_28
, featureGroupIndicators_tvb
, 27, 1, ENC_BIG_ENDIAN
);
3104 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_29
, featureGroupIndicators_tvb
, 28, 1, ENC_BIG_ENDIAN
);
3105 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_30
, featureGroupIndicators_tvb
, 29, 1, ENC_BIG_ENDIAN
);
3106 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_31
, featureGroupIndicators_tvb
, 30, 1, ENC_BIG_ENDIAN
);
3107 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_32
, featureGroupIndicators_tvb
, 31, 1, ENC_BIG_ENDIAN
);
3111 dissect_lte_rrc_featureGroupIndRel10(tvbuff_t
*featureGroupIndRel10_tvb
, asn1_ctx_t
*actx
)
3113 proto_tree
*subtree
;
3115 subtree
= proto_item_add_subtree(actx
->created_item
, ett_lte_rrc_featureGroupIndRel10
);
3116 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_101
, featureGroupIndRel10_tvb
, 0, 1, ENC_BIG_ENDIAN
);
3117 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_102
, featureGroupIndRel10_tvb
, 1, 1, ENC_BIG_ENDIAN
);
3118 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_103
, featureGroupIndRel10_tvb
, 2, 1, ENC_BIG_ENDIAN
);
3119 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_104
, featureGroupIndRel10_tvb
, 3, 1, ENC_BIG_ENDIAN
);
3120 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_105
, featureGroupIndRel10_tvb
, 4, 1, ENC_BIG_ENDIAN
);
3121 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_106
, featureGroupIndRel10_tvb
, 5, 1, ENC_BIG_ENDIAN
);
3122 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_107
, featureGroupIndRel10_tvb
, 6, 1, ENC_BIG_ENDIAN
);
3123 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_108
, featureGroupIndRel10_tvb
, 7, 1, ENC_BIG_ENDIAN
);
3124 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_109
, featureGroupIndRel10_tvb
, 8, 1, ENC_BIG_ENDIAN
);
3125 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_110
, featureGroupIndRel10_tvb
, 9, 1, ENC_BIG_ENDIAN
);
3126 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_111
, featureGroupIndRel10_tvb
, 10, 1, ENC_BIG_ENDIAN
);
3127 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_112
, featureGroupIndRel10_tvb
, 11, 1, ENC_BIG_ENDIAN
);
3128 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_113
, featureGroupIndRel10_tvb
, 12, 1, ENC_BIG_ENDIAN
);
3129 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_114
, featureGroupIndRel10_tvb
, 13, 1, ENC_BIG_ENDIAN
);
3130 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_115
, featureGroupIndRel10_tvb
, 14, 1, ENC_BIG_ENDIAN
);
3131 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_116
, featureGroupIndRel10_tvb
, 15, 1, ENC_BIG_ENDIAN
);
3132 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_117
, featureGroupIndRel10_tvb
, 16, 1, ENC_BIG_ENDIAN
);
3133 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_118
, featureGroupIndRel10_tvb
, 17, 1, ENC_BIG_ENDIAN
);
3134 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_119
, featureGroupIndRel10_tvb
, 18, 1, ENC_BIG_ENDIAN
);
3135 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_120
, featureGroupIndRel10_tvb
, 19, 1, ENC_BIG_ENDIAN
);
3136 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_121
, featureGroupIndRel10_tvb
, 20, 1, ENC_BIG_ENDIAN
);
3137 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_122
, featureGroupIndRel10_tvb
, 21, 1, ENC_BIG_ENDIAN
);
3138 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_123
, featureGroupIndRel10_tvb
, 22, 1, ENC_BIG_ENDIAN
);
3139 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_124
, featureGroupIndRel10_tvb
, 23, 1, ENC_BIG_ENDIAN
);
3140 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_125
, featureGroupIndRel10_tvb
, 24, 1, ENC_BIG_ENDIAN
);
3141 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_126
, featureGroupIndRel10_tvb
, 25, 1, ENC_BIG_ENDIAN
);
3142 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_127
, featureGroupIndRel10_tvb
, 26, 1, ENC_BIG_ENDIAN
);
3143 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_128
, featureGroupIndRel10_tvb
, 27, 1, ENC_BIG_ENDIAN
);
3144 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_129
, featureGroupIndRel10_tvb
, 28, 1, ENC_BIG_ENDIAN
);
3145 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_130
, featureGroupIndRel10_tvb
, 29, 1, ENC_BIG_ENDIAN
);
3146 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_131
, featureGroupIndRel10_tvb
, 30, 1, ENC_BIG_ENDIAN
);
3147 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_132
, featureGroupIndRel10_tvb
, 31, 1, ENC_BIG_ENDIAN
);
3151 dissect_lte_rrc_featureGroupIndRel9Add(tvbuff_t
*featureGroupIndRel9Add_tvb
, asn1_ctx_t
*actx
)
3153 proto_tree
*subtree
;
3155 subtree
= proto_item_add_subtree(actx
->created_item
, ett_lte_rrc_featureGroupIndRel9Add
);
3156 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_33
, featureGroupIndRel9Add_tvb
, 0, 1, ENC_BIG_ENDIAN
);
3157 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_34
, featureGroupIndRel9Add_tvb
, 1, 1, ENC_BIG_ENDIAN
);
3158 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_35
, featureGroupIndRel9Add_tvb
, 2, 1, ENC_BIG_ENDIAN
);
3159 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_36
, featureGroupIndRel9Add_tvb
, 3, 1, ENC_BIG_ENDIAN
);
3160 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_37
, featureGroupIndRel9Add_tvb
, 4, 1, ENC_BIG_ENDIAN
);
3161 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_38
, featureGroupIndRel9Add_tvb
, 5, 1, ENC_BIG_ENDIAN
);
3162 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_39
, featureGroupIndRel9Add_tvb
, 6, 1, ENC_BIG_ENDIAN
);
3163 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_40
, featureGroupIndRel9Add_tvb
, 7, 1, ENC_BIG_ENDIAN
);
3164 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_41
, featureGroupIndRel9Add_tvb
, 8, 1, ENC_BIG_ENDIAN
);
3165 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_42
, featureGroupIndRel9Add_tvb
, 9, 1, ENC_BIG_ENDIAN
);
3166 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_43
, featureGroupIndRel9Add_tvb
, 10, 1, ENC_BIG_ENDIAN
);
3167 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_44
, featureGroupIndRel9Add_tvb
, 11, 1, ENC_BIG_ENDIAN
);
3168 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_45
, featureGroupIndRel9Add_tvb
, 12, 1, ENC_BIG_ENDIAN
);
3169 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_46
, featureGroupIndRel9Add_tvb
, 13, 1, ENC_BIG_ENDIAN
);
3170 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_47
, featureGroupIndRel9Add_tvb
, 14, 1, ENC_BIG_ENDIAN
);
3171 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_48
, featureGroupIndRel9Add_tvb
, 15, 1, ENC_BIG_ENDIAN
);
3172 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_49
, featureGroupIndRel9Add_tvb
, 16, 1, ENC_BIG_ENDIAN
);
3173 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_50
, featureGroupIndRel9Add_tvb
, 17, 1, ENC_BIG_ENDIAN
);
3174 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_51
, featureGroupIndRel9Add_tvb
, 18, 1, ENC_BIG_ENDIAN
);
3175 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_52
, featureGroupIndRel9Add_tvb
, 19, 1, ENC_BIG_ENDIAN
);
3176 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_53
, featureGroupIndRel9Add_tvb
, 20, 1, ENC_BIG_ENDIAN
);
3177 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_54
, featureGroupIndRel9Add_tvb
, 21, 1, ENC_BIG_ENDIAN
);
3178 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_55
, featureGroupIndRel9Add_tvb
, 22, 1, ENC_BIG_ENDIAN
);
3179 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_56
, featureGroupIndRel9Add_tvb
, 23, 1, ENC_BIG_ENDIAN
);
3180 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_57
, featureGroupIndRel9Add_tvb
, 24, 1, ENC_BIG_ENDIAN
);
3181 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_58
, featureGroupIndRel9Add_tvb
, 25, 1, ENC_BIG_ENDIAN
);
3182 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_59
, featureGroupIndRel9Add_tvb
, 26, 1, ENC_BIG_ENDIAN
);
3183 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_60
, featureGroupIndRel9Add_tvb
, 27, 1, ENC_BIG_ENDIAN
);
3184 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_61
, featureGroupIndRel9Add_tvb
, 28, 1, ENC_BIG_ENDIAN
);
3185 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_62
, featureGroupIndRel9Add_tvb
, 29, 1, ENC_BIG_ENDIAN
);
3186 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_63
, featureGroupIndRel9Add_tvb
, 30, 1, ENC_BIG_ENDIAN
);
3187 proto_tree_add_bits_item(subtree
, hf_lte_rrc_eutra_cap_feat_group_ind_64
, featureGroupIndRel9Add_tvb
, 31, 1, ENC_BIG_ENDIAN
);
3190 /* Functions to get enum values out of indices parsed */
3191 /* If entry not found, return last element of array */
3192 static uint32_t drx_lookup_onDurationTimer(uint32_t idx
)
3194 static const uint32_t vals
[] = {1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200};
3196 return vals
[MIN(idx
, array_length(vals
) - 1)];
3199 static uint32_t drx_lookup_inactivityTimer(uint32_t idx
)
3201 static const uint32_t vals
[] = {
3202 1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200,300,500,750,1280,1920,2560,0
3205 return vals
[MIN(idx
, array_length(vals
) - 1)];
3208 static uint32_t drx_lookup_retransmissionTimer(uint32_t idx
)
3210 static const uint32_t vals
[] = {1,2,4,6,8,16,24,33};
3212 return vals
[MIN(idx
, array_length(vals
) - 1)];
3215 static uint32_t drx_lookup_longCycle(uint32_t idx
)
3217 static const uint32_t vals
[] = {
3218 10,20,32,40,64,80,128,160,256,320,512,640,1024,1280,2048,2560
3221 return vals
[MIN(idx
, array_length(vals
) - 1)];
3224 static uint32_t drx_lookup_longCycle_v1130(uint32_t idx
)
3226 static const uint32_t vals
[] = {
3230 return vals
[MIN(idx
, array_length(vals
) - 1)];
3234 static uint32_t drx_lookup_shortCycle(uint32_t idx
)
3236 static const uint32_t vals
[] = {
3237 2,5,8,10,16,20,32,40,64,80,128,160,256,320,512,640
3240 return vals
[MIN(idx
, array_length(vals
) - 1)];
3243 static void drx_check_config_sane(drx_config_t
*config
, asn1_ctx_t
*actx
)
3245 /* OnDuration must be shorter than long cycle */
3246 if (config
->onDurationTimer
>= config
->longCycle
) {
3247 expert_add_info_format(actx
->pinfo
, actx
->created_item
, &ei_lte_rrc_invalid_drx_config
,
3248 "OnDurationTimer (%u) should be less than long cycle (%u)",
3249 config
->onDurationTimer
, config
->longCycle
);
3252 if (config
->shortCycleConfigured
) {
3253 /* Short cycle must be < long, and be a multiple of it */
3254 if (config
->shortCycle
>= config
->longCycle
) {
3255 expert_add_info_format(actx
->pinfo
, actx
->created_item
, &ei_lte_rrc_invalid_drx_config
,
3256 "Short DRX cycle (%u) must be shorter than long cycle (%u)",
3257 config
->shortCycle
, config
->longCycle
);
3259 /* Long cycle needs to be an exact multiple of the short cycle */
3260 else if (config
->shortCycle
&& ((config
->longCycle
% config
->shortCycle
) != 0)) {
3261 expert_add_info_format(actx
->pinfo
, actx
->created_item
, &ei_lte_rrc_invalid_drx_config
,
3262 "Short DRX cycle (%u) must divide the long cycle (%u) exactly",
3263 config
->shortCycle
, config
->longCycle
);
3266 /* OnDuration shouldn't be longer than the short cycle */
3267 if (config
->onDurationTimer
>= config
->shortCycle
) {
3268 expert_add_info_format(actx
->pinfo
, actx
->created_item
, &ei_lte_rrc_invalid_drx_config
,
3269 "OnDurationTimer (%u) should not be longer than the short cycle (%u)",
3270 config
->onDurationTimer
, config
->shortCycle
);
3272 /* TODO: check that (onDuration+(shortCycle*shortCycleTimer)) < longCycle ? */
3273 /* TODO: check that (shortCycle*shortCycleTimer) < longCycle ? */
3277 /* Break sr-configIndex down into periodicity and offset. From 36.231, 10.1 */
3278 static void sr_lookup_configindex(uint32_t config_index
, uint16_t *periodicity
, uint16_t *offset
)
3280 if (config_index
< 5) {
3282 *offset
= config_index
;
3283 } else if (config_index
< 15) {
3285 *offset
= config_index
- 5;
3287 else if (config_index
< 35) {
3289 *offset
= config_index
- 15;
3291 else if (config_index
< 75) {
3293 *offset
= config_index
- 35;
3295 else if (config_index
< 155) {
3297 *offset
= config_index
- 75;
3299 else if (config_index
< 157) {
3301 *offset
= config_index
- 155;
3309 #include "packet-lte-rrc-fn.c"
3312 dissect_lte_rrc_DL_CCCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3315 proto_tree
*lte_rrc_tree
;
3317 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC DL_CCCH");
3318 col_clear(pinfo
->cinfo
, COL_INFO
);
3320 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3321 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3322 dissect_DL_CCCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3323 return tvb_captured_length(tvb
);
3327 dissect_lte_rrc_DL_DCCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3330 proto_tree
*lte_rrc_tree
;
3332 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC DL_DCCH");
3333 col_clear(pinfo
->cinfo
, COL_INFO
);
3335 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3336 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3337 dissect_lte_rrc_DL_DCCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3338 return tvb_captured_length(tvb
);
3342 dissect_lte_rrc_UL_CCCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3345 proto_tree
*lte_rrc_tree
;
3347 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC UL_CCCH");
3348 col_clear(pinfo
->cinfo
, COL_INFO
);
3350 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3351 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3352 dissect_UL_CCCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3353 return tvb_captured_length(tvb
);
3357 dissect_lte_rrc_UL_DCCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3360 proto_tree
*lte_rrc_tree
;
3362 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC UL_DCCH");
3363 col_clear(pinfo
->cinfo
, COL_INFO
);
3365 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3366 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3367 dissect_lte_rrc_UL_DCCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3368 return tvb_captured_length(tvb
);
3372 dissect_lte_rrc_BCCH_BCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3375 proto_tree
*lte_rrc_tree
;
3377 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC BCCH_BCH");
3378 col_clear(pinfo
->cinfo
, COL_INFO
);
3380 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3381 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3382 dissect_BCCH_BCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3383 return tvb_captured_length(tvb
);
3387 dissect_lte_rrc_BCCH_DL_SCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3390 proto_tree
*lte_rrc_tree
;
3392 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC DL_SCH");
3393 col_clear(pinfo
->cinfo
, COL_INFO
);
3395 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3396 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3397 dissect_BCCH_DL_SCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3398 return tvb_captured_length(tvb
);
3402 dissect_lte_rrc_BCCH_DL_SCH_BR(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3405 proto_tree
*lte_rrc_tree
;
3407 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC DL_SCH_BR");
3408 col_clear(pinfo
->cinfo
, COL_INFO
);
3410 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3411 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3412 dissect_BCCH_DL_SCH_Message_BR_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3413 return tvb_captured_length(tvb
);
3417 dissect_lte_rrc_PCCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3420 proto_tree
*lte_rrc_tree
;
3422 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC PCCH");
3423 col_clear(pinfo
->cinfo
, COL_INFO
);
3425 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3426 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3427 dissect_PCCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3428 return tvb_captured_length(tvb
);
3432 dissect_lte_rrc_MCCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3435 proto_tree
*lte_rrc_tree
;
3437 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC MCCH");
3438 col_clear(pinfo
->cinfo
, COL_INFO
);
3440 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3441 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3442 dissect_MCCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3443 return tvb_captured_length(tvb
);
3447 dissect_lte_rrc_Handover_Preparation_Info(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3450 proto_tree
*lte_rrc_tree
;
3452 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE_HO_Prep_Info");
3453 col_clear(pinfo
->cinfo
, COL_INFO
);
3455 /* Don't want elements inside message updating Info column, so set now and
3456 freeze during dissection of PDU */
3457 col_set_str(pinfo
->cinfo
, COL_INFO
, "HandoverPreparationInformation");
3458 col_set_writable(pinfo
->cinfo
, COL_INFO
, false);
3460 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3461 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3462 dissect_lte_rrc_HandoverPreparationInformation_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3464 col_set_writable(pinfo
->cinfo
, COL_INFO
, true);
3465 return tvb_captured_length(tvb
);
3469 dissect_lte_rrc_SBCCH_SL_BCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3472 proto_tree
*lte_rrc_tree
;
3474 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC SBCCH_SL_BCH");
3475 col_clear(pinfo
->cinfo
, COL_INFO
);
3477 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3478 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3479 dissect_SBCCH_SL_BCH_Message_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3480 return tvb_captured_length(tvb
);
3484 dissect_lte_rrc_SBCCH_SL_BCH_V2X(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3487 proto_tree
*lte_rrc_tree
;
3489 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC SBCCH_SL_BCH_V2X");
3490 col_clear(pinfo
->cinfo
, COL_INFO
);
3492 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3493 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3494 dissect_SBCCH_SL_BCH_Message_V2X_r14_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3495 return tvb_captured_length(tvb
);
3499 dissect_lte_rrc_SC_MCCH(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3502 proto_tree
*lte_rrc_tree
;
3504 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC SC MCCH");
3505 col_clear(pinfo
->cinfo
, COL_INFO
);
3507 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3508 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3509 dissect_SC_MCCH_Message_r13_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3510 return tvb_captured_length(tvb
);
3514 dissect_lte_rrc_DL_CCCH_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3517 proto_tree
*lte_rrc_tree
;
3519 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC DL_CCCH_NB");
3520 col_clear(pinfo
->cinfo
, COL_INFO
);
3522 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3523 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3524 dissect_DL_CCCH_Message_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3525 return tvb_captured_length(tvb
);
3529 dissect_lte_rrc_DL_DCCH_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3532 proto_tree
*lte_rrc_tree
;
3534 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC DL_DCCH_NB");
3535 col_clear(pinfo
->cinfo
, COL_INFO
);
3537 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3538 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3539 dissect_DL_DCCH_Message_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3540 return tvb_captured_length(tvb
);
3544 dissect_lte_rrc_UL_CCCH_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3547 proto_tree
*lte_rrc_tree
;
3549 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC UL_CCCH_NB");
3550 col_clear(pinfo
->cinfo
, COL_INFO
);
3552 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3553 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3554 dissect_UL_CCCH_Message_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3555 return tvb_captured_length(tvb
);
3559 dissect_lte_rrc_UL_DCCH_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3562 proto_tree
*lte_rrc_tree
;
3564 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC UL_DCCH_NB");
3565 col_clear(pinfo
->cinfo
, COL_INFO
);
3567 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3568 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3569 dissect_UL_DCCH_Message_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3570 return tvb_captured_length(tvb
);
3574 dissect_lte_rrc_BCCH_BCH_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3577 proto_tree
*lte_rrc_tree
;
3579 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC BCCH_BCH_NB");
3580 col_clear(pinfo
->cinfo
, COL_INFO
);
3582 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3583 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3584 dissect_BCCH_BCH_Message_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3585 return tvb_captured_length(tvb
);
3589 dissect_lte_rrc_BCCH_BCH_TDD_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3592 proto_tree
*lte_rrc_tree
;
3594 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC BCCH_BCH_TDD_NB");
3595 col_clear(pinfo
->cinfo
, COL_INFO
);
3597 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3598 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3599 dissect_BCCH_BCH_Message_TDD_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3600 return tvb_captured_length(tvb
);
3604 dissect_lte_rrc_BCCH_DL_SCH_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3607 proto_tree
*lte_rrc_tree
;
3609 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC DL_SCH_NB");
3610 col_clear(pinfo
->cinfo
, COL_INFO
);
3612 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3613 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3614 dissect_BCCH_DL_SCH_Message_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3615 return tvb_captured_length(tvb
);
3619 dissect_lte_rrc_PCCH_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3622 proto_tree
*lte_rrc_tree
;
3624 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC PCCH_NB");
3625 col_clear(pinfo
->cinfo
, COL_INFO
);
3627 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3628 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3629 dissect_PCCH_Message_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3630 return tvb_captured_length(tvb
);
3634 dissect_lte_rrc_SC_MCCH_NB(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3637 proto_tree
*lte_rrc_tree
;
3639 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC SC MCCH_NB");
3640 col_clear(pinfo
->cinfo
, COL_INFO
);
3642 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3643 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3644 dissect_SC_MCCH_Message_NB_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3645 return tvb_captured_length(tvb
);
3649 dissect_lte_rrc_BCCH_BCH_MBMS(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3652 proto_tree
*lte_rrc_tree
;
3654 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC BCCH_BCH_MBMS");
3655 col_clear(pinfo
->cinfo
, COL_INFO
);
3657 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3658 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3659 dissect_BCCH_BCH_Message_MBMS_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3660 return tvb_captured_length(tvb
);
3664 dissect_lte_rrc_BCCH_DL_SCH_MBMS(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
3667 proto_tree
*lte_rrc_tree
;
3669 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC DL_SCH_MBMS");
3670 col_clear(pinfo
->cinfo
, COL_INFO
);
3672 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3673 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3674 dissect_BCCH_DL_SCH_Message_MBMS_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3675 return tvb_captured_length(tvb
);
3679 dissect_lte_rrc_ue_eutra_capability_msg(tvbuff_t
* tvb
, packet_info
* pinfo
, proto_tree
* tree
, void* data _U_
)
3682 proto_tree
* lte_rrc_tree
;
3684 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC UE EUTRA Capability");
3685 col_clear(pinfo
->cinfo
, COL_INFO
);
3687 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3688 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3689 dissect_lte_rrc_UE_EUTRA_Capability_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3690 return tvb_captured_length(tvb
);
3694 dissect_lte_rrc_ueradioaccesscapabilityinformation_msg(tvbuff_t
* tvb
, packet_info
* pinfo
, proto_tree
* tree
, void* data _U_
)
3697 proto_tree
* lte_rrc_tree
;
3699 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC UERadioAccessCapabilityInformation");
3700 col_clear(pinfo
->cinfo
, COL_INFO
);
3702 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3703 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3704 dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3705 return tvb_captured_length(tvb
);
3709 dissect_lte_rrc_dissect_SystemInformationBlockType1_v890_IEs(tvbuff_t
* tvb
, packet_info
* pinfo
, proto_tree
* tree
, void* data _U_
)
3712 proto_tree
* lte_rrc_tree
;
3714 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "LTE RRC SystemInformationBlockType1-v890-IEs");
3715 col_set_str(pinfo
->cinfo
, COL_INFO
, "LTE RRC SystemInformationBlockType1-v890-IEs");
3717 ti
= proto_tree_add_item(tree
, proto_lte_rrc
, tvb
, 0, -1, ENC_NA
);
3718 lte_rrc_tree
= proto_item_add_subtree(ti
, ett_lte_rrc
);
3719 dissect_SystemInformationBlockType1_v890_IEs_PDU(tvb
, pinfo
, lte_rrc_tree
, NULL
);
3720 return tvb_captured_length(tvb
);
3725 /*--- proto_register_rrc -------------------------------------------*/
3726 void proto_register_lte_rrc(void) {
3728 /* List of fields */
3729 static hf_register_info hf
[] = {
3731 #include "packet-lte-rrc-hfarr.c"
3733 { &hf_lte_rrc_eutra_cap_feat_group_ind_1
,
3734 { "Indicator 1", "lte-rrc.eutra_cap_feat_group_ind_1",
3735 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_1_val
), 0,
3736 "EUTRA Feature Group Indicator 1", HFILL
}},
3737 { &hf_lte_rrc_eutra_cap_feat_group_ind_2
,
3738 { "Indicator 2", "lte-rrc.eutra_cap_feat_group_ind_2",
3739 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_2_val
), 0,
3740 "EUTRA Feature Group Indicator 2", HFILL
}},
3741 { &hf_lte_rrc_eutra_cap_feat_group_ind_3
,
3742 { "Indicator 3", "lte-rrc.eutra_cap_feat_group_ind_3",
3743 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_3_val
), 0,
3744 "EUTRA Feature Group Indicator 3", HFILL
}},
3745 { &hf_lte_rrc_eutra_cap_feat_group_ind_4
,
3746 { "Indicator 4", "lte-rrc.eutra_cap_feat_group_ind_4",
3747 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_4_val
), 0,
3748 "EUTRA Feature Group Indicator 4", HFILL
}},
3749 { &hf_lte_rrc_eutra_cap_feat_group_ind_5
,
3750 { "Indicator 5", "lte-rrc.eutra_cap_feat_group_ind_5",
3751 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_5_val
), 0,
3752 "EUTRA Feature Group Indicator 5", HFILL
}},
3753 { &hf_lte_rrc_eutra_cap_feat_group_ind_6
,
3754 { "Indicator 6", "lte-rrc.eutra_cap_feat_group_ind_6",
3755 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_6_val
), 0,
3756 "EUTRA Feature Group Indicator 6", HFILL
}},
3757 { &hf_lte_rrc_eutra_cap_feat_group_ind_7
,
3758 { "Indicator 7", "lte-rrc.eutra_cap_feat_group_ind_7",
3759 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_7_val
), 0,
3760 "EUTRA Feature Group Indicator 7", HFILL
}},
3761 { &hf_lte_rrc_eutra_cap_feat_group_ind_8
,
3762 { "Indicator 8", "lte-rrc.eutra_cap_feat_group_ind_8",
3763 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_8_val
), 0,
3764 "EUTRA Feature Group Indicator 8", HFILL
}},
3765 { &hf_lte_rrc_eutra_cap_feat_group_ind_9
,
3766 { "Indicator 9", "lte-rrc.eutra_cap_feat_group_ind_9",
3767 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_9_val
), 0,
3768 "EUTRA Feature Group Indicator 9", HFILL
}},
3769 { &hf_lte_rrc_eutra_cap_feat_group_ind_10
,
3770 { "Indicator 10", "lte-rrc.eutra_cap_feat_group_ind_10",
3771 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_10_val
), 0,
3772 "EUTRA Feature Group Indicator 10", HFILL
}},
3773 { &hf_lte_rrc_eutra_cap_feat_group_ind_11
,
3774 { "Indicator 11", "lte-rrc.eutra_cap_feat_group_ind_11",
3775 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_11_val
), 0,
3776 "EUTRA Feature Group Indicator 11", HFILL
}},
3777 { &hf_lte_rrc_eutra_cap_feat_group_ind_12
,
3778 { "Indicator 12", "lte-rrc.eutra_cap_feat_group_ind_12",
3779 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_12_val
), 0,
3780 "EUTRA Feature Group Indicator 12", HFILL
}},
3781 { &hf_lte_rrc_eutra_cap_feat_group_ind_13
,
3782 { "Indicator 13", "lte-rrc.eutra_cap_feat_group_ind_13",
3783 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_13_val
), 0,
3784 "EUTRA Feature Group Indicator", HFILL
}},
3785 { &hf_lte_rrc_eutra_cap_feat_group_ind_14
,
3786 { "Indicator 14", "lte-rrc.eutra_cap_feat_group_ind_14",
3787 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_14_val
), 0,
3788 "EUTRA Feature Group Indicator 14", HFILL
}},
3789 { &hf_lte_rrc_eutra_cap_feat_group_ind_15
,
3790 { "Indicator 15", "lte-rrc.eutra_cap_feat_group_ind_15",
3791 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_15_val
), 0,
3792 "EUTRA Feature Group Indicator 15", HFILL
}},
3793 { &hf_lte_rrc_eutra_cap_feat_group_ind_16
,
3794 { "Indicator 16", "lte-rrc.eutra_cap_feat_group_ind_16",
3795 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_16_val
), 0,
3796 "EUTRA Feature Group Indicator 16", HFILL
}},
3797 { &hf_lte_rrc_eutra_cap_feat_group_ind_17
,
3798 { "Indicator 17", "lte-rrc.eutra_cap_feat_group_ind_17",
3799 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_17_val
), 0,
3800 "EUTRA Feature Group Indicator 17", HFILL
}},
3801 { &hf_lte_rrc_eutra_cap_feat_group_ind_18
,
3802 { "Indicator 18", "lte-rrc.eutra_cap_feat_group_ind_18",
3803 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_18_val
), 0,
3804 "EUTRA Feature Group Indicator 18", HFILL
}},
3805 { &hf_lte_rrc_eutra_cap_feat_group_ind_19
,
3806 { "Indicator 19", "lte-rrc.eutra_cap_feat_group_ind_19",
3807 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_19_val
), 0,
3808 "EUTRA Feature Group Indicator 19", HFILL
}},
3809 { &hf_lte_rrc_eutra_cap_feat_group_ind_20
,
3810 { "Indicator 20", "lte-rrc.eutra_cap_feat_group_ind_20",
3811 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_20_val
), 0,
3812 "EUTRA Feature Group Indicator 20", HFILL
}},
3813 { &hf_lte_rrc_eutra_cap_feat_group_ind_21
,
3814 { "Indicator 21", "lte-rrc.eutra_cap_feat_group_ind_21",
3815 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_21_val
), 0,
3816 "EUTRA Feature Group Indicator 21", HFILL
}},
3817 { &hf_lte_rrc_eutra_cap_feat_group_ind_22
,
3818 { "Indicator 22", "lte-rrc.eutra_cap_feat_group_ind_22",
3819 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_22_val
), 0,
3820 "EUTRA Feature Group Indicator 22", HFILL
}},
3821 { &hf_lte_rrc_eutra_cap_feat_group_ind_23
,
3822 { "Indicator 23", "lte-rrc.eutra_cap_feat_group_ind_23",
3823 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_23_val
), 0,
3824 "EUTRA Feature Group Indicator 23", HFILL
}},
3825 { &hf_lte_rrc_eutra_cap_feat_group_ind_24
,
3826 { "Indicator 24", "lte-rrc.eutra_cap_feat_group_ind_24",
3827 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_24_val
), 0,
3828 "EUTRA Feature Group Indicator 24", HFILL
}},
3829 { &hf_lte_rrc_eutra_cap_feat_group_ind_25
,
3830 { "Indicator 25", "lte-rrc.eutra_cap_feat_group_ind_25",
3831 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_25_val
), 0,
3832 "EUTRA Feature Group Indicator 25", HFILL
}},
3833 { &hf_lte_rrc_eutra_cap_feat_group_ind_26
,
3834 { "Indicator 26", "lte-rrc.eutra_cap_feat_group_ind_26",
3835 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_26_val
), 0,
3836 "EUTRA Feature Group Indicator 26", HFILL
}},
3837 { &hf_lte_rrc_eutra_cap_feat_group_ind_27
,
3838 { "Indicator 27", "lte-rrc.eutra_cap_feat_group_ind_27",
3839 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_27_val
), 0,
3840 "EUTRA Feature Group Indicator 27", HFILL
}},
3841 { &hf_lte_rrc_eutra_cap_feat_group_ind_28
,
3842 { "Indicator 28", "lte-rrc.eutra_cap_feat_group_ind_28",
3843 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_28_val
), 0,
3844 "EUTRA Feature Group Indicator 28", HFILL
}},
3845 { &hf_lte_rrc_eutra_cap_feat_group_ind_29
,
3846 { "Indicator 29", "lte-rrc.eutra_cap_feat_group_ind_29",
3847 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_29_val
), 0,
3848 "EUTRA Feature Group Indicator 29", HFILL
}},
3849 { &hf_lte_rrc_eutra_cap_feat_group_ind_30
,
3850 { "Indicator 30", "lte-rrc.eutra_cap_feat_group_ind_30",
3851 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_30_val
), 0,
3852 "EUTRA Feature Group Indicator 30", HFILL
}},
3853 { &hf_lte_rrc_eutra_cap_feat_group_ind_31
,
3854 { "Indicator 31", "lte-rrc.eutra_cap_feat_group_ind_31",
3855 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_31_val
), 0,
3856 "EUTRA Feature Group Indicator 31", HFILL
}},
3857 { &hf_lte_rrc_eutra_cap_feat_group_ind_32
,
3858 { "Indicator 32", "lte-rrc.eutra_cap_feat_group_ind_32",
3859 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_32_val
), 0,
3860 "EUTRA Feature Group Indicator 32", HFILL
}},
3861 { &hf_lte_rrc_eutra_cap_feat_group_ind_33
,
3862 { "Indicator 33", "lte-rrc.eutra_cap_feat_group_ind_33",
3863 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_33_val
), 0,
3864 "EUTRA Feature Group Indicator 33", HFILL
}},
3865 { &hf_lte_rrc_eutra_cap_feat_group_ind_34
,
3866 { "Indicator 34", "lte-rrc.eutra_cap_feat_group_ind_34",
3867 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_34_val
), 0,
3868 "EUTRA Feature Group Indicator 34", HFILL
}},
3869 { &hf_lte_rrc_eutra_cap_feat_group_ind_35
,
3870 { "Indicator 35", "lte-rrc.eutra_cap_feat_group_ind_35",
3871 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_35_val
), 0,
3872 "EUTRA Feature Group Indicator 35", HFILL
}},
3873 { &hf_lte_rrc_eutra_cap_feat_group_ind_36
,
3874 { "Indicator 36", "lte-rrc.eutra_cap_feat_group_ind_36",
3875 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_36_val
), 0,
3876 "EUTRA Feature Group Indicator 36", HFILL
}},
3877 { &hf_lte_rrc_eutra_cap_feat_group_ind_37
,
3878 { "Indicator 37", "lte-rrc.eutra_cap_feat_group_ind_37",
3879 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_37_val
), 0,
3880 "EUTRA Feature Group Indicator 37", HFILL
}},
3881 { &hf_lte_rrc_eutra_cap_feat_group_ind_38
,
3882 { "Indicator 38", "lte-rrc.eutra_cap_feat_group_ind_38",
3883 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_38_val
), 0,
3884 "EUTRA Feature Group Indicator 38", HFILL
}},
3885 { &hf_lte_rrc_eutra_cap_feat_group_ind_39
,
3886 { "Indicator 39", "lte-rrc.eutra_cap_feat_group_ind_39",
3887 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_39_val
), 0,
3888 "EUTRA Feature Group Indicator 39", HFILL
}},
3889 { &hf_lte_rrc_eutra_cap_feat_group_ind_40
,
3890 { "Indicator 40", "lte-rrc.eutra_cap_feat_group_ind_40",
3891 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_40_val
), 0,
3892 "EUTRA Feature Group Indicator 40", HFILL
}},
3893 { &hf_lte_rrc_eutra_cap_feat_group_ind_41
,
3894 { "Indicator 41", "lte-rrc.eutra_cap_feat_group_ind_41",
3895 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_41_val
), 0,
3896 "EUTRA Feature Group Indicator 41", HFILL
}},
3897 { &hf_lte_rrc_eutra_cap_feat_group_ind_42
,
3898 { "Indicator 42", "lte-rrc.eutra_cap_feat_group_ind_42",
3899 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_42_val
), 0,
3900 "EUTRA Feature Group Indicator 42", HFILL
}},
3901 { &hf_lte_rrc_eutra_cap_feat_group_ind_43
,
3902 { "Indicator 43", "lte-rrc.eutra_cap_feat_group_ind_43",
3903 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_43_val
), 0,
3904 "EUTRA Feature Group Indicator 43", HFILL
}},
3905 { &hf_lte_rrc_eutra_cap_feat_group_ind_44
,
3906 { "Indicator 44", "lte-rrc.eutra_cap_feat_group_ind_44",
3907 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_44_val
), 0,
3908 "EUTRA Feature Group Indicator 44", HFILL
}},
3909 { &hf_lte_rrc_eutra_cap_feat_group_ind_45
,
3910 { "Indicator 45", "lte-rrc.eutra_cap_feat_group_ind_45",
3911 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_45_val
), 0,
3912 "EUTRA Feature Group Indicator 45", HFILL
}},
3913 { &hf_lte_rrc_eutra_cap_feat_group_ind_46
,
3914 { "Indicator 46", "lte-rrc.eutra_cap_feat_group_ind_46",
3915 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_46_val
), 0,
3916 "EUTRA Feature Group Indicator 46", HFILL
}},
3917 { &hf_lte_rrc_eutra_cap_feat_group_ind_47
,
3918 { "Indicator 47", "lte-rrc.eutra_cap_feat_group_ind_47",
3919 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_47_val
), 0,
3920 "EUTRA Feature Group Indicator 47", HFILL
}},
3921 { &hf_lte_rrc_eutra_cap_feat_group_ind_48
,
3922 { "Indicator 48", "lte-rrc.eutra_cap_feat_group_ind_48",
3923 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_48_val
), 0,
3924 "EUTRA Feature Group Indicator 48", HFILL
}},
3925 { &hf_lte_rrc_eutra_cap_feat_group_ind_49
,
3926 { "Indicator 49", "lte-rrc.eutra_cap_feat_group_ind_49",
3927 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_49_val
), 0,
3928 "EUTRA Feature Group Indicator 49", HFILL
}},
3929 { &hf_lte_rrc_eutra_cap_feat_group_ind_50
,
3930 { "Indicator 50", "lte-rrc.eutra_cap_feat_group_ind_50",
3931 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_50_val
), 0,
3932 "EUTRA Feature Group Indicator 50", HFILL
}},
3933 { &hf_lte_rrc_eutra_cap_feat_group_ind_51
,
3934 { "Indicator 51", "lte-rrc.eutra_cap_feat_group_ind_51",
3935 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_51_val
), 0,
3936 "EUTRA Feature Group Indicator 51", HFILL
}},
3937 { &hf_lte_rrc_eutra_cap_feat_group_ind_52
,
3938 { "Indicator 52", "lte-rrc.eutra_cap_feat_group_ind_52",
3939 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_52_val
), 0,
3940 "EUTRA Feature Group Indicator 52", HFILL
}},
3941 { &hf_lte_rrc_eutra_cap_feat_group_ind_53
,
3942 { "Indicator 53", "lte-rrc.eutra_cap_feat_group_ind_53",
3943 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_53_val
), 0,
3944 "EUTRA Feature Group Indicator 53", HFILL
}},
3945 { &hf_lte_rrc_eutra_cap_feat_group_ind_54
,
3946 { "Indicator 54", "lte-rrc.eutra_cap_feat_group_ind_54",
3947 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_54_val
), 0,
3948 "EUTRA Feature Group Indicator 54", HFILL
}},
3949 { &hf_lte_rrc_eutra_cap_feat_group_ind_55
,
3950 { "Indicator 55", "lte-rrc.eutra_cap_feat_group_ind_55",
3951 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_55_val
), 0,
3952 "EUTRA Feature Group Indicator 55", HFILL
}},
3953 { &hf_lte_rrc_eutra_cap_feat_group_ind_56
,
3954 { "Indicator 56", "lte-rrc.eutra_cap_feat_group_ind_56",
3955 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_56_val
), 0,
3956 "EUTRA Feature Group Indicator 56", HFILL
}},
3957 { &hf_lte_rrc_eutra_cap_feat_group_ind_57
,
3958 { "Indicator 57", "lte-rrc.eutra_cap_feat_group_ind_57",
3959 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_57_val
), 0,
3960 "EUTRA Feature Group Indicator 57", HFILL
}},
3961 { &hf_lte_rrc_eutra_cap_feat_group_ind_58
,
3962 { "Indicator 58", "lte-rrc.eutra_cap_feat_group_ind_58",
3963 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_58_val
), 0,
3964 "EUTRA Feature Group Indicator 58", HFILL
}},
3965 { &hf_lte_rrc_eutra_cap_feat_group_ind_59
,
3966 { "Indicator 59", "lte-rrc.eutra_cap_feat_group_ind_59",
3967 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_59_val
), 0,
3968 "EUTRA Feature Group Indicator 59", HFILL
}},
3969 { &hf_lte_rrc_eutra_cap_feat_group_ind_60
,
3970 { "Indicator 60", "lte-rrc.eutra_cap_feat_group_ind_60",
3971 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_60_val
), 0,
3972 "EUTRA Feature Group Indicator 60", HFILL
}},
3973 { &hf_lte_rrc_eutra_cap_feat_group_ind_61
,
3974 { "Indicator 61", "lte-rrc.eutra_cap_feat_group_ind_61",
3975 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_61_val
), 0,
3976 "EUTRA Feature Group Indicator 61", HFILL
}},
3977 { &hf_lte_rrc_eutra_cap_feat_group_ind_62
,
3978 { "Indicator 62", "lte-rrc.eutra_cap_feat_group_ind_62",
3979 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_62_val
), 0,
3980 "EUTRA Feature Group Indicator 62", HFILL
}},
3981 { &hf_lte_rrc_eutra_cap_feat_group_ind_63
,
3982 { "Indicator 63", "lte-rrc.eutra_cap_feat_group_ind_63",
3983 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_63_val
), 0,
3984 "EUTRA Feature Group Indicator 63", HFILL
}},
3985 { &hf_lte_rrc_eutra_cap_feat_group_ind_64
,
3986 { "Indicator 64", "lte-rrc.eutra_cap_feat_group_ind_64",
3987 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_64_val
), 0,
3988 "EUTRA Feature Group Indicator 64", HFILL
}},
3989 { &hf_lte_rrc_eutra_cap_feat_group_ind_101
,
3990 { "Indicator 101", "lte-rrc.eutra_cap_feat_group_ind_101",
3991 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_101_val
), 0,
3992 "EUTRA Feature Group Indicator 101", HFILL
}},
3993 { &hf_lte_rrc_eutra_cap_feat_group_ind_102
,
3994 { "Indicator 102", "lte-rrc.eutra_cap_feat_group_ind_102",
3995 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_102_val
), 0,
3996 "EUTRA Feature Group Indicator 102", HFILL
}},
3997 { &hf_lte_rrc_eutra_cap_feat_group_ind_103
,
3998 { "Indicator 103", "lte-rrc.eutra_cap_feat_group_ind_103",
3999 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_103_val
), 0,
4000 "EUTRA Feature Group Indicator 103", HFILL
}},
4001 { &hf_lte_rrc_eutra_cap_feat_group_ind_104
,
4002 { "Indicator 104", "lte-rrc.eutra_cap_feat_group_ind_104",
4003 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_104_val
), 0,
4004 "EUTRA Feature Group Indicator 104", HFILL
}},
4005 { &hf_lte_rrc_eutra_cap_feat_group_ind_105
,
4006 { "Indicator 105", "lte-rrc.eutra_cap_feat_group_ind_105",
4007 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_105_val
), 0,
4008 "EUTRA Feature Group Indicator 105", HFILL
}},
4009 { &hf_lte_rrc_eutra_cap_feat_group_ind_106
,
4010 { "Indicator 106", "lte-rrc.eutra_cap_feat_group_ind_106",
4011 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_106_val
), 0,
4012 "EUTRA Feature Group Indicator 106", HFILL
}},
4013 { &hf_lte_rrc_eutra_cap_feat_group_ind_107
,
4014 { "Indicator 107", "lte-rrc.eutra_cap_feat_group_ind_107",
4015 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_107_val
), 0,
4016 "EUTRA Feature Group Indicator 107", HFILL
}},
4017 { &hf_lte_rrc_eutra_cap_feat_group_ind_108
,
4018 { "Indicator 108", "lte-rrc.eutra_cap_feat_group_ind_108",
4019 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_108_val
), 0,
4020 "EUTRA Feature Group Indicator 108", HFILL
}},
4021 { &hf_lte_rrc_eutra_cap_feat_group_ind_109
,
4022 { "Indicator 109", "lte-rrc.eutra_cap_feat_group_ind_109",
4023 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_109_val
), 0,
4024 "EUTRA Feature Group Indicator 109", HFILL
}},
4025 { &hf_lte_rrc_eutra_cap_feat_group_ind_110
,
4026 { "Indicator 110", "lte-rrc.eutra_cap_feat_group_ind_110",
4027 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_110_val
), 0,
4028 "EUTRA Feature Group Indicator 110", HFILL
}},
4029 { &hf_lte_rrc_eutra_cap_feat_group_ind_111
,
4030 { "Indicator 111", "lte-rrc.eutra_cap_feat_group_ind_111",
4031 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_111_val
), 0,
4032 "EUTRA Feature Group Indicator 111", HFILL
}},
4033 { &hf_lte_rrc_eutra_cap_feat_group_ind_112
,
4034 { "Indicator 112", "lte-rrc.eutra_cap_feat_group_ind_112",
4035 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_112_val
), 0,
4036 "EUTRA Feature Group Indicator 112", HFILL
}},
4037 { &hf_lte_rrc_eutra_cap_feat_group_ind_113
,
4038 { "Indicator 113", "lte-rrc.eutra_cap_feat_group_ind_113",
4039 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_113_val
), 0,
4040 "EUTRA Feature Group Indicator 113", HFILL
}},
4041 { &hf_lte_rrc_eutra_cap_feat_group_ind_114
,
4042 { "Indicator 114", "lte-rrc.eutra_cap_feat_group_ind_114",
4043 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_114_val
), 0,
4044 "EUTRA Feature Group Indicator 114", HFILL
}},
4045 { &hf_lte_rrc_eutra_cap_feat_group_ind_115
,
4046 { "Indicator 115", "lte-rrc.eutra_cap_feat_group_ind_115",
4047 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_115_val
), 0,
4048 "EUTRA Feature Group Indicator 115", HFILL
}},
4049 { &hf_lte_rrc_eutra_cap_feat_group_ind_116
,
4050 { "Indicator 116", "lte-rrc.eutra_cap_feat_group_ind_116",
4051 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_116_val
), 0,
4052 "EUTRA Feature Group Indicator 116", HFILL
}},
4053 { &hf_lte_rrc_eutra_cap_feat_group_ind_117
,
4054 { "Indicator 117", "lte-rrc.eutra_cap_feat_group_ind_117",
4055 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_117_val
), 0,
4056 "EUTRA Feature Group Indicator 117", HFILL
}},
4057 { &hf_lte_rrc_eutra_cap_feat_group_ind_118
,
4058 { "Indicator 118", "lte-rrc.eutra_cap_feat_group_ind_118",
4059 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_118_val
), 0,
4060 "EUTRA Feature Group Indicator 118", HFILL
}},
4061 { &hf_lte_rrc_eutra_cap_feat_group_ind_119
,
4062 { "Indicator 119", "lte-rrc.eutra_cap_feat_group_ind_119",
4063 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_119_val
), 0,
4064 "EUTRA Feature Group Indicator 119", HFILL
}},
4065 { &hf_lte_rrc_eutra_cap_feat_group_ind_120
,
4066 { "Indicator 120", "lte-rrc.eutra_cap_feat_group_ind_120",
4067 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_120_val
), 0,
4068 "EUTRA Feature Group Indicator 120", HFILL
}},
4069 { &hf_lte_rrc_eutra_cap_feat_group_ind_121
,
4070 { "Indicator 121", "lte-rrc.eutra_cap_feat_group_ind_121",
4071 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_121_val
), 0,
4072 "EUTRA Feature Group Indicator 121", HFILL
}},
4073 { &hf_lte_rrc_eutra_cap_feat_group_ind_122
,
4074 { "Indicator 122", "lte-rrc.eutra_cap_feat_group_ind_122",
4075 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_122_val
), 0,
4076 "EUTRA Feature Group Indicator 122", HFILL
}},
4077 { &hf_lte_rrc_eutra_cap_feat_group_ind_123
,
4078 { "Indicator 123", "lte-rrc.eutra_cap_feat_group_ind_123",
4079 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_123_val
), 0,
4080 "EUTRA Feature Group Indicator 123", HFILL
}},
4081 { &hf_lte_rrc_eutra_cap_feat_group_ind_124
,
4082 { "Indicator 124", "lte-rrc.eutra_cap_feat_group_ind_124",
4083 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_124_val
), 0,
4084 "EUTRA Feature Group Indicator 124", HFILL
}},
4085 { &hf_lte_rrc_eutra_cap_feat_group_ind_125
,
4086 { "Indicator 125", "lte-rrc.eutra_cap_feat_group_ind_125",
4087 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_125_val
), 0,
4088 "EUTRA Feature Group Indicator 125", HFILL
}},
4089 { &hf_lte_rrc_eutra_cap_feat_group_ind_126
,
4090 { "Indicator 126", "lte-rrc.eutra_cap_feat_group_ind_126",
4091 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_126_val
), 0,
4092 "EUTRA Feature Group Indicator 126", HFILL
}},
4093 { &hf_lte_rrc_eutra_cap_feat_group_ind_127
,
4094 { "Indicator 127", "lte-rrc.eutra_cap_feat_group_ind_127",
4095 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_127_val
), 0,
4096 "EUTRA Feature Group Indicator 127", HFILL
}},
4097 { &hf_lte_rrc_eutra_cap_feat_group_ind_128
,
4098 { "Indicator 128", "lte-rrc.eutra_cap_feat_group_ind_128",
4099 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_128_val
), 0,
4100 "EUTRA Feature Group Indicator 128", HFILL
}},
4101 { &hf_lte_rrc_eutra_cap_feat_group_ind_129
,
4102 { "Indicator 129", "lte-rrc.eutra_cap_feat_group_ind_129",
4103 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_129_val
), 0,
4104 "EUTRA Feature Group Indicator 129", HFILL
}},
4105 { &hf_lte_rrc_eutra_cap_feat_group_ind_130
,
4106 { "Indicator 130", "lte-rrc.eutra_cap_feat_group_ind_130",
4107 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_130_val
), 0,
4108 "EUTRA Feature Group Indicator 130", HFILL
}},
4109 { &hf_lte_rrc_eutra_cap_feat_group_ind_131
,
4110 { "Indicator 131", "lte-rrc.eutra_cap_feat_group_ind_131",
4111 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_131_val
), 0,
4112 "EUTRA Feature Group Indicator 131", HFILL
}},
4113 { &hf_lte_rrc_eutra_cap_feat_group_ind_132
,
4114 { "Indicator 132", "lte-rrc.eutra_cap_feat_group_ind_132",
4115 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_eutra_cap_feat_group_ind_132_val
), 0,
4116 "EUTRA Feature Group Indicator 132", HFILL
}},
4117 { &hf_lte_rrc_serialNumber_gs
,
4118 { "Geographical Scope", "lte-rrc.serialNumber.gs",
4119 FT_UINT16
, BASE_DEC
, VALS(lte_rrc_serialNumber_gs_vals
), 0xc000,
4121 { &hf_lte_rrc_serialNumber_msg_code
,
4122 { "Message Code", "lte-rrc.serialNumber.msg_code",
4123 FT_UINT16
, BASE_DEC
, NULL
, 0x3ff0,
4125 { &hf_lte_rrc_serialNumber_upd_nb
,
4126 { "Update Number", "lte-rrc.serialNumber.upd_nb",
4127 FT_UINT16
, BASE_DEC
, NULL
, 0x000f,
4129 { &hf_lte_rrc_warningType_value
,
4130 { "Warning Type Value", "lte-rrc.warningType.value",
4131 FT_UINT16
, BASE_DEC
, VALS(lte_rrc_warningType_vals
), 0xfe00,
4133 { &hf_lte_rrc_warningType_emergency_user_alert
,
4134 { "Emergency User Alert", "lte-rrc.warningType.emergency_user_alert",
4135 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0100,
4137 { &hf_lte_rrc_warningType_popup
,
4138 { "Popup", "lte-rrc.warningType.popup",
4139 FT_BOOLEAN
, 16, TFS(&tfs_yes_no
), 0x0080,
4141 { &hf_lte_rrc_warningMessageSegment_nb_pages
,
4142 { "Number of Pages", "lte-rrc.warningMessageSegment.nb_pages",
4143 FT_UINT8
, BASE_DEC
, NULL
, 0,
4145 { &hf_lte_rrc_warningMessageSegment_decoded_page
,
4146 { "Decoded Page", "lte-rrc.warningMessageSegment.decoded_page",
4147 FT_STRING
, BASE_NONE
, NULL
, 0,
4149 { &hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1
,
4150 { "Bit 1", "lte-rrc.interBandTDD_CA_WithDifferentConfig.bit1",
4151 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_interBandTDD_CA_WithDifferentConfig_bit1_val
), 0,
4153 { &hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2
,
4154 { "Bit 2", "lte-rrc.interBandTDD_CA_WithDifferentConfig.bit2",
4155 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_interBandTDD_CA_WithDifferentConfig_bit2_val
), 0,
4157 { &hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1
,
4158 { "Bit 1", "lte-rrc.tdd_FDD_CA_PCellDuplex_r12.bit1",
4159 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1_val
), 0,
4161 { &hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2
,
4162 { "Bit 2", "lte-rrc.tdd_FDD_CA_PCellDuplex_r12.bit2",
4163 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2_val
), 0,
4165 { &hf_lte_rrc_aperiodicCSI_Reporting_r13_bit1
,
4166 { "Bit 1", "lte-rrc.aperiodicCSI_Reporting_r13.bit1",
4167 FT_BOOLEAN
, BASE_NONE
, TFS(&hf_lte_rrc_aperiodicCSI_Reporting_r13_bit1_val
), 0,
4169 { &hf_lte_rrc_aperiodicCSI_Reporting_r13_bit2
,
4170 { "Bit 2", "lte-rrc.aperiodicCSI_Reporting_r13.bit2",
4171 FT_BOOLEAN
, BASE_NONE
, TFS(&hf_lte_rrc_aperiodicCSI_Reporting_r13_bit2_val
), 0,
4173 { &hf_lte_rrc_codebook_HARQ_ACK_r13_bit1
,
4174 { "Bit 1", "lte-rrc.codebook_HARQ_ACK_r13.bit1",
4175 FT_BOOLEAN
, BASE_NONE
, TFS(&hf_lte_rrc_codebook_HARQ_ACK_r13_bit1_val
), 0,
4177 { &hf_lte_rrc_codebook_HARQ_ACK_r13_bit2
,
4178 { "Bit 2", "lte-rrc.codebook_HARQ_ACK_r13.bit2",
4179 FT_BOOLEAN
, BASE_NONE
, TFS(&hf_lte_rrc_codebook_HARQ_ACK_r13_bit2_val
), 0,
4181 { &hf_lte_rrc_sr_config_periodicity
,
4182 { "Periodicity", "lte-rrc.sr_Periodicity",
4183 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4185 { &hf_lte_rrc_sr_config_subframe_offset
,
4186 { "Subframe Offset", "lte-rrc.sr_SubframeOffset",
4187 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4189 { &hf_lte_rrc_cdma_time
,
4190 { "CDMA time", "lte-rrc.cdma_time",
4191 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_UTC
, NULL
, 0x0,
4193 { &hf_lte_rrc_utc_time
,
4194 { "UTC time", "lte-rrc.utc_time",
4195 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_UTC
, NULL
, 0x0,
4197 { &hf_lte_rrc_local_time
,
4198 { "Local time", "lte-rrc.local_time",
4199 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0,
4201 { &hf_lte_rrc_absolute_time
,
4202 { "Absolute time", "lte-rrc.absolute_time",
4203 FT_STRING
, BASE_NONE
, NULL
, 0x0,
4205 { &hf_lte_rrc_transmissionModeList_r12_tm1
,
4206 { "TM1", "lte-rrc.transmissionModeList_r12.tm1",
4207 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_transmissionModeList_r12_val
), 0,
4209 { &hf_lte_rrc_transmissionModeList_r12_tm2
,
4210 { "TM2", "lte-rrc.transmissionModeList_r12.tm2",
4211 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_transmissionModeList_r12_val
), 0,
4213 { &hf_lte_rrc_transmissionModeList_r12_tm3
,
4214 { "TM3", "lte-rrc.transmissionModeList_r12.tm3",
4215 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_transmissionModeList_r12_val
), 0,
4217 { &hf_lte_rrc_transmissionModeList_r12_tm4
,
4218 { "TM4", "lte-rrc.transmissionModeList_r12.tm4",
4219 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_transmissionModeList_r12_val
), 0,
4221 { &hf_lte_rrc_transmissionModeList_r12_tm6
,
4222 { "TM6", "lte-rrc.transmissionModeList_r12.tm6",
4223 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_transmissionModeList_r12_val
), 0,
4225 { &hf_lte_rrc_transmissionModeList_r12_tm8
,
4226 { "TM8", "lte-rrc.transmissionModeList_r12.tm8",
4227 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_transmissionModeList_r12_val
), 0,
4229 { &hf_lte_rrc_transmissionModeList_r12_tm9
,
4230 { "TM9", "lte-rrc.transmissionModeList_r12.tm9",
4231 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_transmissionModeList_r12_val
), 0,
4233 { &hf_lte_rrc_transmissionModeList_r12_tm10
,
4234 { "TM10", "lte-rrc.transmissionModeList_r12.tm10",
4235 FT_BOOLEAN
, BASE_NONE
, TFS(<e_rrc_transmissionModeList_r12_val
), 0,
4237 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0
,
4238 { "MPR/A-MPR behavior 0", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_0",
4239 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4241 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1
,
4242 { "MPR/A-MPR behavior 1", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_1",
4243 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4245 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2
,
4246 { "MPR/A-MPR behavior 2", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_2",
4247 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4249 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3
,
4250 { "MPR/A-MPR behavior 3", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_3",
4251 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4253 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4
,
4254 { "MPR/A-MPR behavior 4", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_4",
4255 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4257 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5
,
4258 { "MPR/A-MPR behavior 5", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_5",
4259 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4261 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6
,
4262 { "MPR/A-MPR behavior 6", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_6",
4263 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4265 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7
,
4266 { "MPR/A-MPR behavior 7", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_7",
4267 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4269 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8
,
4270 { "MPR/A-MPR behavior 8", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_8",
4271 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4273 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9
,
4274 { "MPR/A-MPR behavior 9", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_9",
4275 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4277 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10
,
4278 { "MPR/A-MPR behavior 10", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_10",
4279 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4281 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11
,
4282 { "MPR/A-MPR behavior 11", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_11",
4283 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4285 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12
,
4286 { "MPR/A-MPR behavior 12", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_12",
4287 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4289 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13
,
4290 { "MPR/A-MPR behavior 13", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_13",
4291 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4293 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14
,
4294 { "MPR/A-MPR behavior 14", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_14",
4295 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4297 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15
,
4298 { "MPR/A-MPR behavior 15", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_15",
4299 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4301 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16
,
4302 { "MPR/A-MPR behavior 16", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_16",
4303 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4305 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17
,
4306 { "MPR/A-MPR behavior 17", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_17",
4307 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4309 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18
,
4310 { "MPR/A-MPR behavior 18", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_18",
4311 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4313 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19
,
4314 { "MPR/A-MPR behavior 19", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_19",
4315 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4317 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20
,
4318 { "MPR/A-MPR behavior 20", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_20",
4319 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4321 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21
,
4322 { "MPR/A-MPR behavior 21", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_21",
4323 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4325 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22
,
4326 { "MPR/A-MPR behavior 22", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_22",
4327 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4329 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23
,
4330 { "MPR/A-MPR behavior 23", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_23",
4331 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4333 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24
,
4334 { "MPR/A-MPR behavior 24", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_24",
4335 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4337 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25
,
4338 { "MPR/A-MPR behavior 25", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_25",
4339 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4341 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26
,
4342 { "MPR/A-MPR behavior 26", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_26",
4343 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4345 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27
,
4346 { "MPR/A-MPR behavior 27", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_27",
4347 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4349 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28
,
4350 { "MPR/A-MPR behavior 28", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_28",
4351 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4353 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29
,
4354 { "MPR/A-MPR behavior 29", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_29",
4355 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4357 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30
,
4358 { "MPR/A-MPR behavior 30", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_30",
4359 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4361 { &hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31
,
4362 { "MPR/A-MPR behavior 31", "lte-rrc.modifiedMPR_Behavior_r10.mpr_ampr_31",
4363 FT_BOOLEAN
, BASE_NONE
, TFS(&tfs_supported_not_supported
), 0,
4365 { &hf_lte_rrc_sib11_fragments
,
4366 { "Fragments", "lte-rrc.warningMessageSegment.fragments",
4367 FT_NONE
, BASE_NONE
, NULL
, 0,
4369 { &hf_lte_rrc_sib11_fragment
,
4370 { "Fragment", "lte-rrc.warningMessageSegment.fragment",
4371 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4373 { &hf_lte_rrc_sib11_fragment_overlap
,
4374 { "Fragment Overlap", "lte-rrc.warningMessageSegment.fragment_overlap",
4375 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4377 { &hf_lte_rrc_sib11_fragment_overlap_conflict
,
4378 { "Fragment Overlap Conflict", "lte-rrc.warningMessageSegment.fragment_overlap_conflict",
4379 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4381 { &hf_lte_rrc_sib11_fragment_multiple_tails
,
4382 { "Fragment Multiple Tails", "lte-rrc.warningMessageSegment.fragment_multiple_tails",
4383 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4385 { &hf_lte_rrc_sib11_fragment_too_long_fragment
,
4386 { "Too Long Fragment", "lte-rrc.warningMessageSegment.fragment_too_long_fragment",
4387 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4389 { &hf_lte_rrc_sib11_fragment_error
,
4390 { "Fragment Error", "lte-rrc.warningMessageSegment.fragment_error",
4391 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4393 { &hf_lte_rrc_sib11_fragment_count
,
4394 { "Fragment Count", "lte-rrc.warningMessageSegment.fragment_count",
4395 FT_UINT32
, BASE_DEC
, NULL
, 0,
4397 { &hf_lte_rrc_sib11_reassembled_in
,
4398 { "Reassembled In", "lte-rrc.warningMessageSegment.reassembled_in",
4399 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4401 { &hf_lte_rrc_sib11_reassembled_length
,
4402 { "Reassembled Length", "lte-rrc.warningMessageSegment.reassembled_length",
4403 FT_UINT32
, BASE_DEC
, NULL
, 0,
4405 { &hf_lte_rrc_sib11_reassembled_data
,
4406 { "Reassembled Data", "lte-rrc.warningMessageSegment.reassembled_data",
4407 FT_BYTES
, BASE_NONE
, NULL
, 0,
4409 { &hf_lte_rrc_sib12_fragments
,
4410 { "Fragments", "lte-rrc.warningMessageSegment_r9.fragments",
4411 FT_NONE
, BASE_NONE
, NULL
, 0,
4413 { &hf_lte_rrc_sib12_fragment
,
4414 { "Fragment", "lte-rrc.warningMessageSegment_r9.fragment",
4415 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4417 { &hf_lte_rrc_sib12_fragment_overlap
,
4418 { "Fragment Overlap", "lte-rrc.warningMessageSegment_r9.fragment_overlap",
4419 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4421 { &hf_lte_rrc_sib12_fragment_overlap_conflict
,
4422 { "Fragment Overlap Conflict", "lte-rrc.warningMessageSegment_r9.fragment_overlap_conflict",
4423 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4425 { &hf_lte_rrc_sib12_fragment_multiple_tails
,
4426 { "Fragment Multiple Tails", "lte-rrc.warningMessageSegment_r9.fragment_multiple_tails",
4427 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4429 { &hf_lte_rrc_sib12_fragment_too_long_fragment
,
4430 { "Too Long Fragment", "lte-rrc.warningMessageSegment_r9.fragment_too_long_fragment",
4431 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4433 { &hf_lte_rrc_sib12_fragment_error
,
4434 { "Fragment Error", "lte-rrc.warningMessageSegment_r9.fragment_error",
4435 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4437 { &hf_lte_rrc_sib12_fragment_count
,
4438 { "Fragment Count", "lte-rrc.warningMessageSegment_r9.fragment_count",
4439 FT_UINT32
, BASE_DEC
, NULL
, 0,
4441 { &hf_lte_rrc_sib12_reassembled_in
,
4442 { "Reassembled In", "lte-rrc.warningMessageSegment_r9.reassembled_in",
4443 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4445 { &hf_lte_rrc_sib12_reassembled_length
,
4446 { "Reassembled Length", "lte-rrc.warningMessageSegment_r9.reassembled_length",
4447 FT_UINT32
, BASE_DEC
, NULL
, 0,
4449 { &hf_lte_rrc_sib12_reassembled_data
,
4450 { "Reassembled Data", "lte-rrc.warningMessageSegment_r9.reassembled_data",
4451 FT_BYTES
, BASE_NONE
, NULL
, 0,
4453 { &hf_lte_rrc_dcch_segment_fragments
,
4454 { "Fragments", "lte-rrc.dedicatedMessageSegment_r16.fragments",
4455 FT_NONE
, BASE_NONE
, NULL
, 0,
4457 { &hf_lte_rrc_dcch_segment_fragment
,
4458 { "Fragment", "lte-rrc.dedicatedMessageSegment_r16.fragment",
4459 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4461 { &hf_lte_rrc_dcch_segment_fragment_overlap
,
4462 { "Fragment Overlap", "lte-rrc.dedicatedMessageSegment_r16.fragment_overlap",
4463 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4465 { &hf_lte_rrc_dcch_segment_fragment_overlap_conflict
,
4466 { "Fragment Overlap Conflict", "lte-rrc.dedicatedMessageSegment_r16.fragment_overlap_conflict",
4467 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4469 { &hf_lte_rrc_dcch_segment_fragment_multiple_tails
,
4470 { "Fragment Multiple Tails", "lte-rrc.dedicatedMessageSegment_r16.fragment_multiple_tails",
4471 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4473 { &hf_lte_rrc_dcch_segment_fragment_too_long_fragment
,
4474 { "Too Long Fragment", "lte-rrc.dedicatedMessageSegment_r16.fragment_too_long_fragment",
4475 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
4477 { &hf_lte_rrc_dcch_segment_fragment_error
,
4478 { "Fragment Error", "lte-rrc.dedicatedMessageSegment_r16.fragment_error",
4479 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4481 { &hf_lte_rrc_dcch_segment_fragment_count
,
4482 { "Fragment Count", "lte-rrc.dedicatedMessageSegment_r16.fragment_count",
4483 FT_UINT32
, BASE_DEC
, NULL
, 0,
4485 { &hf_lte_rrc_dcch_segment_reassembled_in
,
4486 { "Reassembled In", "lte-rrc.dedicatedMessageSegment_r16.reassembled_in",
4487 FT_FRAMENUM
, BASE_NONE
, NULL
, 0,
4489 { &hf_lte_rrc_dcch_segment_reassembled_length
,
4490 { "Reassembled Length", "lte-rrc.dedicatedMessageSegment_r16.reassembled_length",
4491 FT_UINT32
, BASE_DEC
, NULL
, 0,
4493 { &hf_lte_rrc_dcch_segment_reassembled_data
,
4494 { "Reassembled Data", "lte-rrc.dedicatedMessageSegment_r16.reassembled_data",
4495 FT_BYTES
, BASE_NONE
, NULL
, 0,
4497 { &hf_lte_rrc_measGapPatterns_r15_bit1
,
4498 { "Gap Pattern 4", "lte-rrc.measGapPatterns_r15.bit1",
4499 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x80,
4501 { &hf_lte_rrc_measGapPatterns_r15_bit2
,
4502 { "Gap Pattern 5", "lte-rrc.measGapPatterns_r15.bit2",
4503 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x40,
4505 { &hf_lte_rrc_measGapPatterns_r15_bit3
,
4506 { "Gap Pattern 6", "lte-rrc.measGapPatterns_r15.bit3",
4507 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x20,
4509 { &hf_lte_rrc_measGapPatterns_r15_bit4
,
4510 { "Gap Pattern 7", "lte-rrc.measGapPatterns_r15.bit4",
4511 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x10,
4513 { &hf_lte_rrc_measGapPatterns_r15_bit5
,
4514 { "Gap Pattern 8", "lte-rrc.measGapPatterns_r15.bit5",
4515 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x08,
4517 { &hf_lte_rrc_measGapPatterns_r15_bit6
,
4518 { "Gap Pattern 9", "lte-rrc.measGapPatterns_r15.bit6",
4519 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x04,
4521 { &hf_lte_rrc_measGapPatterns_r15_bit7
,
4522 { "Gap Pattern 10", "lte-rrc.measGapPatterns_r15.bit7",
4523 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x02,
4525 { &hf_lte_rrc_measGapPatterns_r15_bit8
,
4526 { "Gap Pattern 11", "lte-rrc.measGapPatterns_r15.bit8",
4527 FT_BOOLEAN
, 8, TFS(&tfs_supported_not_supported
), 0x01,
4531 /* List of subtrees */
4532 static int *ett
[] = {
4534 #include "packet-lte-rrc-ettarr.c"
4536 &ett_lte_rrc_featureGroupIndicators
,
4537 &ett_lte_rrc_featureGroupIndRel9Add
,
4538 &ett_lte_rrc_featureGroupIndRel10
,
4539 &ett_lte_rrc_absTimeInfo
,
4540 &ett_lte_rrc_nas_SecurityParam
,
4541 &ett_lte_rrc_targetRAT_MessageContainer
,
4542 &ett_lte_rrc_siPsiSibContainer
,
4543 &ett_lte_rrc_dedicatedInfoNAS
,
4544 &ett_lte_rrc_timeInfo
,
4545 &ett_lte_rrc_serialNumber
,
4546 &ett_lte_rrc_warningType
,
4547 &ett_lte_rrc_dataCodingScheme
,
4548 &ett_lte_rrc_warningMessageSegment
,
4549 &ett_lte_rrc_interBandTDD_CA_WithDifferentConfig
,
4550 &ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12
,
4551 &ett_lte_rrc_aperiodicCSI_Reporting_r13
,
4552 &ett_lte_rrc_codebook_HARQ_ACK_r13
,
4553 &ett_lte_rrc_sr_ConfigIndex
,
4554 &ett_lte_rrc_transmissionModeList_r12
,
4555 &ett_lte_rrc_modifiedMPR_Behavior_r10
,
4556 &ett_lte_rrc_sib11_fragment
,
4557 &ett_lte_rrc_sib11_fragments
,
4558 &ett_lte_rrc_sib12_fragment
,
4559 &ett_lte_rrc_sib12_fragments
,
4560 &ett_lte_rrc_dcch_segment_fragment
,
4561 &ett_lte_rrc_dcch_segment_fragments
,
4562 &ett_lte_rrc_nr_SecondaryCellGroupConfig_r15
,
4563 &ett_lte_rrc_nr_RadioBearerConfig_r15
,
4564 &ett_lte_rrc_nr_RadioBearerConfigS_r15
,
4565 &ett_lte_rrc_sl_ConfigDedicatedForNR_r16
,
4566 &ett_lte_rrc_nr_SecondaryCellGroupConfig
,
4567 &ett_lte_rrc_scg_ConfigResponseNR_r15
,
4568 &ett_lte_rrc_scg_ConfigResponseNR_r16
,
4569 &ett_lte_rrc_measResultSCG_r15
,
4570 &ett_lte_rrc_measResultSCG_r16
,
4571 &ett_lte_rrc_ul_DCCH_MessageNR_r15
,
4572 &ett_lte_rrc_ul_DCCH_MessageNR_r16
,
4573 &ett_lte_rrc_sourceRB_ConfigNR_r15
,
4574 &ett_lte_rrc_sourceRB_ConfigSN_NR_r15
,
4575 &ett_lte_rrc_sourceOtherConfigSN_NR_r15
,
4576 &ett_lte_rrc_sourceContextEN_DC_r15
,
4577 &ett_lte_rrc_requestedFreqBandsNR_MRDC_r15
,
4578 &ett_lte_rrc_measGapPatterns_r15
,
4579 &ett_lte_rrc_nas_Container_r15
,
4580 &ett_lte_rrc_sourceRB_ConfigIntra5GC_r15
,
4581 &ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540
,
4582 &ett_lte_rrc_requestedCapabilityCommon_r15
,
4583 &ett_lte_rrc_sidelinkUEInformationNR_r16
,
4584 &ett_lte_rrc_ueAssistanceInformationNR_r16
,
4585 &ett_lte_rrc_sl_ParameterNR_r16
,
4586 &ett_lte_rrc_v2x_BandParametersNR_r16
,
4587 &ett_lte_rrc_ueAssistanceInformationNR_SCG_r16
,
4588 &ett_lte_rrc_assistanceDataSIB_Element_r15
,
4589 &ett_lte_rrc_overheatingAssistanceForSCG_r16
,
4590 &ett_lte_rrc_overheatingAssistanceForSCG_FR2_2_r17
,
4591 &ett_lte_rrc_triggerConditionSN_r17
4594 static ei_register_info ei
[] = {
4595 { &ei_lte_rrc_number_pages_le15
, { "lte_rrc.number_pages_le15", PI_MALFORMED
, PI_ERROR
, "Number of pages should be <=15", EXPFILL
}},
4596 { &ei_lte_rrc_si_info_value_changed
, { "lte_rrc.si_info_value_changed", PI_SEQUENCE
, PI_WARN
, "SI Info Value changed", EXPFILL
}},
4597 { &ei_lte_rrc_sibs_changing
, { "lte_rrc.sibs_changing", PI_SEQUENCE
, PI_WARN
, "SIBs changing in next BCCH modification period - signalled in Paging message", EXPFILL
}},
4598 { &ei_lte_rrc_sibs_changing_edrx
, { "lte_rrc.sibs_changing_edrx", PI_SEQUENCE
, PI_WARN
, "SIBs changing in next BCCH modification period for UEs in eDRX mode - signalled in Paging message", EXPFILL
}},
4599 { &ei_lte_rrc_earthquake_warning_sys
, { "lte_rrc.earthquake_warning_sys", PI_SEQUENCE
, PI_WARN
, "Earthquake and Tsunami Warning System Indication!", EXPFILL
}},
4600 { &ei_lte_rrc_commercial_mobile_alert_sys
, { "lte_rrc.commercial_mobile_alert_sys", PI_SEQUENCE
, PI_WARN
, "Commercial Mobile Alert System Indication!", EXPFILL
}},
4601 { &ei_lte_rrc_unexpected_type_value
, { "lte_rrc.unexpected_type_value", PI_MALFORMED
, PI_ERROR
, "Unexpected type value", EXPFILL
}},
4602 { &ei_lte_rrc_unexpected_length_value
, { "lte_rrc.unexpected_length_value", PI_MALFORMED
, PI_ERROR
, "Unexpected type length", EXPFILL
}},
4603 { &ei_lte_rrc_too_many_group_a_rapids
, { "lte_rrc.too_many_groupa_rapids", PI_MALFORMED
, PI_ERROR
, "Too many group A RAPIDs", EXPFILL
}},
4604 { &ei_lte_rrc_invalid_drx_config
, { "lte_rrc.invalid_drx_config", PI_MALFORMED
, PI_ERROR
, "Invalid dedicated DRX config detected", EXPFILL
}},
4607 expert_module_t
* expert_lte_rrc
;
4608 module_t
*lte_rrc_module
;
4610 /* Register protocol */
4611 proto_lte_rrc
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
4613 /* These entry points will first create an lte_rrc root node */
4614 lte_rrc_dl_ccch_handle
= register_dissector("lte_rrc.dl_ccch", dissect_lte_rrc_DL_CCCH
, proto_lte_rrc
);
4615 register_dissector("lte_rrc.dl_dcch", dissect_lte_rrc_DL_DCCH
, proto_lte_rrc
);
4616 register_dissector("lte_rrc.ul_ccch", dissect_lte_rrc_UL_CCCH
, proto_lte_rrc
);
4617 register_dissector("lte_rrc.ul_dcch", dissect_lte_rrc_UL_DCCH
, proto_lte_rrc
);
4618 register_dissector("lte_rrc.bcch_bch", dissect_lte_rrc_BCCH_BCH
, proto_lte_rrc
);
4619 register_dissector("lte_rrc.bcch_dl_sch", dissect_lte_rrc_BCCH_DL_SCH
, proto_lte_rrc
);
4620 register_dissector("lte_rrc.bcch_dl_sch_br", dissect_lte_rrc_BCCH_DL_SCH_BR
, proto_lte_rrc
);
4621 register_dissector("lte_rrc.pcch", dissect_lte_rrc_PCCH
, proto_lte_rrc
);
4622 register_dissector("lte_rrc.mcch", dissect_lte_rrc_MCCH
, proto_lte_rrc
);
4623 register_dissector("lte_rrc.handover_prep_info", dissect_lte_rrc_Handover_Preparation_Info
, proto_lte_rrc
);
4624 register_dissector("lte_rrc.sbcch_sl_bch", dissect_lte_rrc_SBCCH_SL_BCH
, proto_lte_rrc
);
4625 register_dissector("lte_rrc.sbcch_sl_bch.v2x", dissect_lte_rrc_SBCCH_SL_BCH_V2X
, proto_lte_rrc
);
4626 register_dissector("lte_rrc.sc_mcch", dissect_lte_rrc_SC_MCCH
, proto_lte_rrc
);
4627 register_dissector("lte_rrc.dl_ccch.nb", dissect_lte_rrc_DL_CCCH_NB
, proto_lte_rrc
);
4628 register_dissector("lte_rrc.dl_dcch.nb", dissect_lte_rrc_DL_DCCH_NB
, proto_lte_rrc
);
4629 register_dissector("lte_rrc.ul_ccch.nb", dissect_lte_rrc_UL_CCCH_NB
, proto_lte_rrc
);
4630 register_dissector("lte_rrc.ul_dcch.nb", dissect_lte_rrc_UL_DCCH_NB
, proto_lte_rrc
);
4631 register_dissector("lte_rrc.bcch_bch.nb", dissect_lte_rrc_BCCH_BCH_NB
, proto_lte_rrc
);
4632 register_dissector("lte_rrc.bcch_bch.nb.tdd", dissect_lte_rrc_BCCH_BCH_TDD_NB
, proto_lte_rrc
);
4633 register_dissector("lte_rrc.bcch_dl_sch.nb", dissect_lte_rrc_BCCH_DL_SCH_NB
, proto_lte_rrc
);
4634 register_dissector("lte_rrc.pcch.nb", dissect_lte_rrc_PCCH_NB
, proto_lte_rrc
);
4635 register_dissector("lte_rrc.sc_mcch.nb", dissect_lte_rrc_SC_MCCH_NB
, proto_lte_rrc
);
4636 register_dissector("lte_rrc.bcch_bch.mbms", dissect_lte_rrc_BCCH_BCH_MBMS
, proto_lte_rrc
);
4637 register_dissector("lte_rrc.bcch_dl_sch.mbms", dissect_lte_rrc_BCCH_DL_SCH_MBMS
, proto_lte_rrc
);
4638 register_dissector("lte-rrc.ue_eutra_cap.msg", dissect_lte_rrc_ue_eutra_capability_msg
, proto_lte_rrc
);
4639 register_dissector("lte-rrc.ue_radio_access_cap_info.msg", dissect_lte_rrc_ueradioaccesscapabilityinformation_msg
, proto_lte_rrc
);
4640 register_dissector("lte-rrc.systeminformationblocktype1_v890_ies", dissect_lte_rrc_dissect_SystemInformationBlockType1_v890_IEs
, proto_lte_rrc
);
4642 /* Register fields and subtrees */
4643 proto_register_field_array(proto_lte_rrc
, hf
, array_length(hf
));
4644 proto_register_subtree_array(ett
, array_length(ett
));
4645 expert_lte_rrc
= expert_register_protocol(proto_lte_rrc
);
4646 expert_register_field_array(expert_lte_rrc
, ei
, array_length(ei
));
4648 /* Register the dissectors defined in lte-rrc.conf */
4649 #include "packet-lte-rrc-dis-reg.c"
4651 lte_rrc_etws_cmas_dcs_hash
= wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash
, g_direct_equal
);
4652 lte_rrc_system_info_value_changed_hash
= wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash
, g_direct_equal
);
4653 lte_rrc_dcch_segment_ueid_count_hash
= wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash
, g_direct_equal
);
4654 lte_rrc_dcch_segment_id_tree
= wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
4656 reassembly_table_register(<e_rrc_sib11_reassembly_table
,
4657 &addresses_reassembly_table_functions
);
4658 reassembly_table_register(<e_rrc_sib12_reassembly_table
,
4659 &addresses_reassembly_table_functions
);
4660 reassembly_table_register(<e_rrc_dcch_segment_reassembly_table
,
4661 &addresses_reassembly_table_functions
);
4663 /* Register configuration preferences */
4664 lte_rrc_module
= prefs_register_protocol(proto_lte_rrc
, NULL
);
4665 prefs_register_bool_preference(lte_rrc_module
, "nas_in_root_tree",
4666 "Show NAS PDU in root packet details",
4667 "Whether the NAS PDU should be shown in the root packet details tree",
4668 <e_rrc_nas_in_root_tree
);
4669 prefs_register_bool_preference(lte_rrc_module
, "reassemble_dcch_segments",
4670 "Try to reassemble DCCH segmented messages",
4671 "Whether the LTE RRC dissector should attempt to reassemble DCCH segmented messages",
4672 <e_rrc_reassemble_dcch_segments
);
4676 /*--- proto_reg_handoff_rrc ---------------------------------------*/
4678 proto_reg_handoff_lte_rrc(void)
4680 dissector_add_for_decode_as_with_preference("udp.port", lte_rrc_dl_ccch_handle
);
4681 nas_eps_handle
= find_dissector("nas-eps");
4682 nas_5gs_handle
= find_dissector("nas-5gs");
4683 rrc_irat_ho_to_utran_cmd_handle
= find_dissector("rrc.irat.ho_to_utran_cmd");
4684 rrc_sys_info_cont_handle
= find_dissector("rrc.sysinfo.cont");
4685 gsm_a_dtap_handle
= find_dissector("gsm_a_dtap");
4686 gsm_rlcmac_dl_handle
= find_dissector("gsm_rlcmac_dl");
4687 nr_rrc_reconf_handle
= find_dissector("nr-rrc.rrc_reconf");
4688 lte_rrc_conn_reconf_handle
= find_dissector("lte-rrc.rrc_conn_reconf");