From Pascal Quantin:
[metze/wireshark/wip.git] / asn1 / lte-rrc / packet-lte-rrc-template.c
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 V10.4.0 Release 10) packet dissection
5  * Copyright 2008, Vincent Helfre
6  *
7  * $Id$
8  *
9  * Wireshark - Network traffic analyzer
10  * By Gerald Combs <gerald@wireshark.org>
11  * Copyright 1998 Gerald Combs
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software
25  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
26  *
27  */
28
29 #ifdef HAVE_CONFIG_H
30 # include "config.h"
31 #endif
32
33 #include <glib.h>
34 #include <epan/packet.h>
35 #include <epan/asn1.h>
36 #include <epan/expert.h>
37
38 #include "packet-ber.h"
39 #include "packet-per.h"
40 #include "packet-rrc.h"
41 #include "packet-gsm_a_common.h"
42 #include "packet-lpp.h"
43
44 #define PNAME  "LTE Radio Resource Control (RRC) protocol"
45 #define PSNAME "LTE RRC"
46 #define PFNAME "lte_rrc"
47
48 static dissector_handle_t nas_eps_handle = NULL;
49 static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
50 static dissector_handle_t rrc_sys_info_cont_handle = NULL;
51 static dissector_handle_t gsm_a_dtap_handle = NULL;
52 static dissector_handle_t gsm_rlcmac_dl_handle = NULL;
53 static guint32 lte_rrc_rat_type_value = -1;
54 static guint32 lte_rrc_ho_target_rat_type_value = -1;
55 static gint lte_rrc_si_or_psi_geran_val = -1;
56
57 /* Include constants */
58 #include "packet-lte-rrc-val.h"
59
60 /* Initialize the protocol and registered fields */
61 static int proto_lte_rrc = -1;
62
63 #include "packet-lte-rrc-hf.c"
64
65 static int hf_lte_rrc_eutra_cap_feat_group_ind_1 = -1;
66 static int hf_lte_rrc_eutra_cap_feat_group_ind_2 = -1;
67 static int hf_lte_rrc_eutra_cap_feat_group_ind_3 = -1;
68 static int hf_lte_rrc_eutra_cap_feat_group_ind_4 = -1;
69 static int hf_lte_rrc_eutra_cap_feat_group_ind_5 = -1;
70 static int hf_lte_rrc_eutra_cap_feat_group_ind_6 = -1;
71 static int hf_lte_rrc_eutra_cap_feat_group_ind_7 = -1;
72 static int hf_lte_rrc_eutra_cap_feat_group_ind_8 = -1;
73 static int hf_lte_rrc_eutra_cap_feat_group_ind_9 = -1;
74 static int hf_lte_rrc_eutra_cap_feat_group_ind_10 = -1;
75 static int hf_lte_rrc_eutra_cap_feat_group_ind_11 = -1;
76 static int hf_lte_rrc_eutra_cap_feat_group_ind_12 = -1;
77 static int hf_lte_rrc_eutra_cap_feat_group_ind_13 = -1;
78 static int hf_lte_rrc_eutra_cap_feat_group_ind_14 = -1;
79 static int hf_lte_rrc_eutra_cap_feat_group_ind_15 = -1;
80 static int hf_lte_rrc_eutra_cap_feat_group_ind_16 = -1;
81 static int hf_lte_rrc_eutra_cap_feat_group_ind_17 = -1;
82 static int hf_lte_rrc_eutra_cap_feat_group_ind_18 = -1;
83 static int hf_lte_rrc_eutra_cap_feat_group_ind_19 = -1;
84 static int hf_lte_rrc_eutra_cap_feat_group_ind_20 = -1;
85 static int hf_lte_rrc_eutra_cap_feat_group_ind_21 = -1;
86 static int hf_lte_rrc_eutra_cap_feat_group_ind_22 = -1;
87 static int hf_lte_rrc_eutra_cap_feat_group_ind_23 = -1;
88 static int hf_lte_rrc_eutra_cap_feat_group_ind_24 = -1;
89 static int hf_lte_rrc_eutra_cap_feat_group_ind_25 = -1;
90 static int hf_lte_rrc_eutra_cap_feat_group_ind_26 = -1;
91 static int hf_lte_rrc_eutra_cap_feat_group_ind_27 = -1;
92 static int hf_lte_rrc_eutra_cap_feat_group_ind_28 = -1;
93 static int hf_lte_rrc_eutra_cap_feat_group_ind_29 = -1;
94 static int hf_lte_rrc_eutra_cap_feat_group_ind_30 = -1;
95 static int hf_lte_rrc_eutra_cap_feat_group_ind_31 = -1;
96 static int hf_lte_rrc_eutra_cap_feat_group_ind_32 = -1;
97 static int hf_lte_rrc_eutra_cap_feat_group_ind_101 = -1;
98 static int hf_lte_rrc_eutra_cap_feat_group_ind_102 = -1;
99 static int hf_lte_rrc_eutra_cap_feat_group_ind_103 = -1;
100 static int hf_lte_rrc_eutra_cap_feat_group_ind_104 = -1;
101 static int hf_lte_rrc_eutra_cap_feat_group_ind_105 = -1;
102 static int hf_lte_rrc_eutra_cap_feat_group_ind_106 = -1;
103 static int hf_lte_rrc_eutra_cap_feat_group_ind_107 = -1;
104 static int hf_lte_rrc_eutra_cap_feat_group_ind_108 = -1;
105 static int hf_lte_rrc_eutra_cap_feat_group_ind_109 = -1;
106 static int hf_lte_rrc_eutra_cap_feat_group_ind_110 = -1;
107 static int hf_lte_rrc_eutra_cap_feat_group_ind_111 = -1;
108 static int hf_lte_rrc_eutra_cap_feat_group_ind_112 = -1;
109 static int hf_lte_rrc_eutra_cap_feat_group_ind_113 = -1;
110 static int hf_lte_rrc_eutra_cap_feat_group_ind_114 = -1;
111 static int hf_lte_rrc_eutra_cap_feat_group_ind_115 = -1;
112 static int hf_lte_rrc_eutra_cap_feat_group_ind_116 = -1;
113 static int hf_lte_rrc_eutra_cap_feat_group_ind_117 = -1;
114 static int hf_lte_rrc_eutra_cap_feat_group_ind_118 = -1;
115 static int hf_lte_rrc_eutra_cap_feat_group_ind_119 = -1;
116 static int hf_lte_rrc_eutra_cap_feat_group_ind_120 = -1;
117 static int hf_lte_rrc_eutra_cap_feat_group_ind_121 = -1;
118 static int hf_lte_rrc_eutra_cap_feat_group_ind_122 = -1;
119 static int hf_lte_rrc_eutra_cap_feat_group_ind_123 = -1;
120 static int hf_lte_rrc_eutra_cap_feat_group_ind_124 = -1;
121 static int hf_lte_rrc_eutra_cap_feat_group_ind_125 = -1;
122 static int hf_lte_rrc_eutra_cap_feat_group_ind_126 = -1;
123 static int hf_lte_rrc_eutra_cap_feat_group_ind_127 = -1;
124 static int hf_lte_rrc_eutra_cap_feat_group_ind_128 = -1;
125 static int hf_lte_rrc_eutra_cap_feat_group_ind_129 = -1;
126 static int hf_lte_rrc_eutra_cap_feat_group_ind_130 = -1;
127 static int hf_lte_rrc_eutra_cap_feat_group_ind_131 = -1;
128 static int hf_lte_rrc_eutra_cap_feat_group_ind_132 = -1;
129
130 /* Initialize the subtree pointers */
131 static int ett_lte_rrc = -1;
132
133 #include "packet-lte-rrc-ett.c"
134
135 static gint ett_lte_rrc_featureGroupIndicators = -1;
136 static gint ett_lte_rrc_featureGroupIndicatorsV1020 = -1;
137 static gint ett_lte_rrc_neighCellConfig = -1;
138 static gint ett_lte_rrc_absTimeInfo = -1;
139
140 /* Forward declarations */
141 static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
142 static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
143 int dissect_lte_rrc_UE_EUTRA_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
144
145 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_1_val = {
146   "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; PDSCH transmission mode 5; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 and 2-2 - Supported",
147   "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; PDSCH transmission mode 5; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 and 2-2 - Not supported"
148 };
149 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_2_val = {
150   "Simultaneous CQI and 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 and 2-1 - Supported",
151   "Simultaneous CQI and 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 and 2-1 - Not supported"
152 };
153 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_3_val = {
154   "5bit RLC UM SN; 7bit PDCP SN - Supported",
155   "5bit RLC UM SN; 7bit PDCP SN - Not supported"
156 };
157 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_4_val = {
158   "Short DRX cycle - Supported",
159   "Short DRX cycle - Not supported"
160 };
161 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_5_val = {
162   "Long DRX cycle; DRX command MAC control element - Supported",
163   "Long DRX cycle; DRX command MAC control element - Not supported"
164 };
165 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_6_val = {
166   "Prioritised bit rate - Supported",
167   "Prioritised bit rate - Not supported"
168 };
169 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_7_val = {
170   "RLC UM - Supported",
171   "RLC UM - Not supported"
172 };
173 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_8_val = {
174   "EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover - Supported",
175   "EUTRA RRC_CONNECTED to UTRA CELL_DCH PS handover - Not supported"
176 };
177 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_9_val = {
178   "EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover - Supported",
179   "EUTRA RRC_CONNECTED to GERAN GSM_Dedicated handover - Not Supported"
180 };
181 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_10_val = {
182   "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",
183   "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"
184 };
185 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_11_val = {
186   "EUTRA RRC_CONNECTED to CDMA2000 1xRTT CS Active handover - Supported",
187   "EUTRA RRC_CONNECTED to CDMA2000 1xRTT CS Active handover - Not supported"
188 };
189 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_12_val = {
190   "EUTRA RRC_CONNECTED to CDMA2000 HRPD Active handover - Supported",
191   "EUTRA RRC_CONNECTED to CDMA2000 HRPD Active handover - Not supported"
192 };
193 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_13_val = {
194   "Inter-frequency handover (within FDD or TDD) - Supported",
195   "Inter-frequency handover (within FDD or TDD) - Not supported"
196 };
197 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_14_val = {
198   "Measurement reporting event: Event A4 - Neighbour > threshold; Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 - Supported",
199   "Measurement reporting event: Event A4 - Neighbour > threshold; Measurement reporting event: Event A5 - Serving < threshold1 & Neighbour > threshold2 - Not supported"
200 };
201 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_15_val = {
202   "Measurement reporting event: Event B1 - Neighbour > threshold - Supported",
203   "Measurement reporting event: Event B1 - Neighbour > threshold - Not supported"
204 };
205 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_16_val = {
206   "non-ANR related periodical measurement reporting - Supported",
207   "non-ANR related periodical measurement reporting - Not supported"
208 };
209 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_17_val = {
210   "ANR related intra-frequency measurement reporting events - Supported",
211   "ANR related intra-frequency measurement reporting events - Not supported"
212 };
213 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_18_val = {
214   "ANR related inter-frequency measurement reporting events - Supported",
215   "ANR related inter-frequency measurement reporting events - Not supported"
216 };
217 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_19_val = {
218   "ANR related inter-RAT measurement reporting events - Supported",
219   "ANR related inter-RAT measurement reporting events - Not supported"
220 };
221 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_20_val = {
222   "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",
223   "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"
224 };
225 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_21_val = {
226   "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",
227   "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"
228 };
229 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_22_val = {
230   "UTRAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
231   "UTRAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
232 };
233 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_23_val = {
234   "GERAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
235   "GERAN measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
236 };
237 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_24_val = {
238   "1xRTT measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
239   "1xRTT measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
240 };
241 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_25_val = {
242   "Inter-frequency measurements and reporting in E-UTRA connected mode - Supported",
243   "Inter-frequency measurements and reporting in E-UTRA connected mode - Not supported"
244 };
245 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_26_val = {
246   "HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Supported",
247   "HRPD measurements, reporting and measurement reporting event B2 in E-UTRA connected mode - Not supported"
248 };
249 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_27_val = {
250   "EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover - Supported",
251   "EUTRA RRC_CONNECTED to UTRA CELL_DCH CS handover - Not supported"
252 };
253 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_28_val = {
254   "TTI bundling - Supported",
255   "TTI bundling - Not supported"
256 };
257 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_29_val = {
258   "Semi-Persistent Scheduling - Supported",
259   "Semi-Persistent Scheduling - Not supported"
260 };
261 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_30_val = {
262   "Handover between FDD and TDD - Supported",
263   "Handover between FDD and TDD - Not supported"
264 };
265 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_31_val = {
266   "Undefined - Supported",
267   "Undefined - Not supported"
268 };
269 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_32_val = {
270   "Undefined - Supported",
271   "Undefined - Not supported"
272 };
273 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_101_val = {
274   "DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling - Supported",
275   "DMRS with OCC (orthogonal cover code) and SGH (sequence group hopping) disabling - Not supported"
276 };
277 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_102_val = {
278   "Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) - Supported",
279   "Trigger type 1 SRS (aperiodic SRS) transmission (Up to X ports) - Not supported"
280 };
281 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_103_val = {
282   "PDSCH TM9 when up to 4 CSI reference signal ports are configured - Supported",
283   "PDSCH TM9 when up to 4 CSI reference signal ports are configured - Not supported"
284 };
285 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_104_val = {
286   "PDSCH TM9 for TDD when 8 CSI reference signal ports are configured - Supported",
287   "PDSCH TM9 for TDD when 8 CSI reference signal ports are configured - Not supported"
288 };
289 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_105_val = {
290   "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",
291   "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"
292 };
293 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_106_val = {
294   "PUCCH RM2-1 when PDSCH TM9 and 8 CSI reference signal ports are configured - Supported",
295   "PUCCH RM2-1 when PDSCH TM9 and 8 CSI reference signal ports are configured - Not supported"
296 };
297 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_107_val = {
298   "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",
299   "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"
300 };
301 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_108_val = {
302   "PUSCH RM2-2 when PDSCH TM9 and 8 CSI reference signal ports are configured - Supported",
303   "PUSCH RM2-2 when PDSCH TM9 and 8 CSI reference signal ports are configured - Not supported"
304 };
305 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_109_val = {
306   "PUCCH RM1-1 submode 1 - Supported",
307   "PUCCH RM1-1 submode 1 - Not supported"
308 };
309 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_110_val = {
310   "PUCCH RM1-1 submode 2 - Supported",
311   "PUCCH RM1-1 submode 2 - Not supported"
312 };
313 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_111_val = {
314   "Measurement reporting trigger Event A6 - Supported",
315   "Measurement reporting trigger Event A6 - Not supported"
316 };
317 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_112_val = {
318   "SCell addition within the Handover to EUTRA procedure - Supported",
319   "SCell addition within the Handover to EUTRA procedure - Not supported"
320 };
321 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_113_val = {
322   "Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells - Supported",
323   "Trigger type 0 SRS (periodic SRS) transmission on X Serving Cells - Not supported"
324 };
325 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_114_val = {
326   "Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report - Supported",
327   "Reporting of both UTRA CPICH RSCP and Ec/N0 in a Measurement Report - Not supported"
328 };
329 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_115_val = {
330   "Time domain ICIC RLM/RRM / ICIC RRM / ICIC CSI measurement sf restriction for the serving cell / neighbour cells - Supported",
331   "Time domain ICIC RLM/RRM / ICIC RRM / ICIC CSI measurement sf restriction for the serving cell / neighbour cells - Not supported"
332 };
333 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_116_val = {
334   "Relative transmit phase continuity for spatial multiplexing in UL - Supported",
335   "Relative transmit phase continuity for spatial multiplexing in UL - Not supported"
336 };
337 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_117_val = {
338   "Undefined - Supported",
339   "Undefined - Not supported"
340 };
341 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_118_val = {
342   "Undefined - Supported",
343   "Undefined - Not supported"
344 };
345 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_119_val = {
346   "Undefined - Supported",
347   "Undefined - Not supported"
348 };
349 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_120_val = {
350   "Undefined - Supported",
351   "Undefined - Not supported"
352 };
353 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_121_val = {
354   "Undefined - Supported",
355   "Undefined - Not supported"
356 };
357 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_122_val = {
358   "Undefined - Supported",
359   "Undefined - Not supported"
360 };
361 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_123_val = {
362   "Undefined - Supported",
363   "Undefined - Not supported"
364 };
365 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_124_val = {
366   "Undefined - Supported",
367   "Undefined - Not supported"
368 };
369 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_125_val = {
370   "Undefined - Supported",
371   "Undefined - Not supported"
372 };
373 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_126_val = {
374   "Undefined - Supported",
375   "Undefined - Not supported"
376 };
377 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_127_val = {
378   "Undefined - Supported",
379   "Undefined - Not supported"
380 };
381 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_128_val = {
382   "Undefined - Supported",
383   "Undefined - Not supported"
384 };
385 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_129_val = {
386   "Undefined - Supported",
387   "Undefined - Not supported"
388 };
389 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_130_val = {
390   "Undefined - Supported",
391   "Undefined - Not supported"
392 };
393 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_131_val = {
394   "Undefined - Supported",
395   "Undefined - Not supported"
396 };
397 static const true_false_string lte_rrc_eutra_cap_feat_group_ind_132_val = {
398   "Undefined - Supported",
399   "Undefined - Not supported"
400 };
401 #include "packet-lte-rrc-fn.c"
402
403 static void
404 dissect_lte_rrc_DL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
405 {
406         proto_item *ti;
407         proto_tree *lte_rrc_tree;
408
409         col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC DL_CCCH");
410         col_clear(pinfo->cinfo, COL_INFO);
411         if (tree) {
412
413                 ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
414                 lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
415                 dissect_DL_CCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
416         }
417 }
418
419 static void
420 dissect_lte_rrc_DL_DCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
421 {
422         proto_item *ti;
423         proto_tree *lte_rrc_tree;
424
425         col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC DL_DCCH");
426         col_clear(pinfo->cinfo, COL_INFO);
427         if (tree) {
428
429                 ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
430                 lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
431                 dissect_DL_DCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
432         }
433 }
434
435
436 static void
437 dissect_lte_rrc_UL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
438 {
439         proto_item *ti;
440         proto_tree *lte_rrc_tree;
441
442         col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC UL_CCCH");
443         col_clear(pinfo->cinfo, COL_INFO);
444         if (tree) {
445
446                 ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
447                 lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
448                 dissect_UL_CCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
449         }
450 }
451
452 static void
453 dissect_lte_rrc_UL_DCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
454 {
455         proto_item *ti;
456         proto_tree *lte_rrc_tree;
457
458         col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC UL_DCCH");
459         col_clear(pinfo->cinfo, COL_INFO);
460         if (tree) {
461
462                 ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
463                 lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
464                 dissect_UL_DCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
465         }
466 }
467
468 static void
469 dissect_lte_rrc_BCCH_BCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
470 {
471         proto_item *ti;
472         proto_tree *lte_rrc_tree;
473
474         col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC BCCH_BCH");
475         col_clear(pinfo->cinfo, COL_INFO);
476         if (tree) {
477
478                 ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
479                 lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
480                 dissect_BCCH_BCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
481         }
482 }
483
484 static void
485 dissect_lte_rrc_BCCH_DL_SCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
486 {
487         proto_item *ti;
488         proto_tree *lte_rrc_tree;
489
490         col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC DL_SCH");
491         col_clear(pinfo->cinfo, COL_INFO);
492         if (tree) {
493
494                 ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
495                 lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
496                 dissect_BCCH_DL_SCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
497         }
498 }
499
500 /*--- proto_register_rrc -------------------------------------------*/
501 void proto_register_lte_rrc(void) {
502
503   /* List of fields */
504   static hf_register_info hf[] = {
505
506 #include "packet-lte-rrc-hfarr.c"
507
508     { &hf_lte_rrc_eutra_cap_feat_group_ind_1,
509       { "Indicator 1", "lte-rrc.eutra_cap_feat_group_ind_1",
510         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_1_val), 0,
511         "EUTRA Feature Group Indicator 1", HFILL }},
512     { &hf_lte_rrc_eutra_cap_feat_group_ind_2,
513       { "Indicator 2", "lte-rrc.eutra_cap_feat_group_ind_2",
514         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_2_val), 0,
515         "EUTRA Feature Group Indicator 2", HFILL }},
516     { &hf_lte_rrc_eutra_cap_feat_group_ind_3,
517       { "Indicator 3", "lte-rrc.eutra_cap_feat_group_ind_3",
518         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_3_val), 0,
519         "EUTRA Feature Group Indicator 3", HFILL }},
520     { &hf_lte_rrc_eutra_cap_feat_group_ind_4,
521       { "Indicator 4", "lte-rrc.eutra_cap_feat_group_ind_4",
522         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_4_val), 0,
523         "EUTRA Feature Group Indicator 4", HFILL }},
524     { &hf_lte_rrc_eutra_cap_feat_group_ind_5,
525       { "Indicator 5", "lte-rrc.eutra_cap_feat_group_ind_5",
526         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_5_val), 0,
527         "EUTRA Feature Group Indicator 5", HFILL }},
528     { &hf_lte_rrc_eutra_cap_feat_group_ind_6,
529       { "Indicator 6", "lte-rrc.eutra_cap_feat_group_ind_6",
530         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_6_val), 0,
531         "EUTRA Feature Group Indicator 6", HFILL }},
532     { &hf_lte_rrc_eutra_cap_feat_group_ind_7,
533       { "Indicator 7", "lte-rrc.eutra_cap_feat_group_ind_7",
534         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_7_val), 0,
535         "EUTRA Feature Group Indicator 7", HFILL }},
536     { &hf_lte_rrc_eutra_cap_feat_group_ind_8,
537       { "Indicator 8", "lte-rrc.eutra_cap_feat_group_ind_8",
538         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_8_val), 0,
539         "EUTRA Feature Group Indicator 8", HFILL }},
540     { &hf_lte_rrc_eutra_cap_feat_group_ind_9,
541       { "Indicator 9", "lte-rrc.eutra_cap_feat_group_ind_9",
542         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_9_val), 0,
543         "EUTRA Feature Group Indicator 9", HFILL }},
544     { &hf_lte_rrc_eutra_cap_feat_group_ind_10,
545       { "Indicator 10", "lte-rrc.eutra_cap_feat_group_ind_10",
546         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_10_val), 0,
547         "EUTRA Feature Group Indicator 10", HFILL }},
548     { &hf_lte_rrc_eutra_cap_feat_group_ind_11,
549       { "Indicator 11", "lte-rrc.eutra_cap_feat_group_ind_11",
550         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_11_val), 0,
551         "EUTRA Feature Group Indicator 11", HFILL }},
552     { &hf_lte_rrc_eutra_cap_feat_group_ind_12,
553       { "Indicator 12", "lte-rrc.eutra_cap_feat_group_ind_12",
554         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_12_val), 0,
555         "EUTRA Feature Group Indicator 12", HFILL }},
556     { &hf_lte_rrc_eutra_cap_feat_group_ind_13,
557       { "Indicator 13", "lte-rrc.eutra_cap_feat_group_ind_13",
558         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_13_val), 0,
559         "EUTRA Feature Group Indicator", HFILL }},
560     { &hf_lte_rrc_eutra_cap_feat_group_ind_14,
561       { "Indicator 14", "lte-rrc.eutra_cap_feat_group_ind_14",
562         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_14_val), 0,
563         "EUTRA Feature Group Indicator 14", HFILL }},
564     { &hf_lte_rrc_eutra_cap_feat_group_ind_15,
565       { "Indicator 15", "lte-rrc.eutra_cap_feat_group_ind_15",
566         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_15_val), 0,
567         "EUTRA Feature Group Indicator 15", HFILL }},
568     { &hf_lte_rrc_eutra_cap_feat_group_ind_16,
569       { "Indicator 16", "lte-rrc.eutra_cap_feat_group_ind_16",
570         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_16_val), 0,
571         "EUTRA Feature Group Indicator 16", HFILL }},
572     { &hf_lte_rrc_eutra_cap_feat_group_ind_17,
573       { "Indicator 17", "lte-rrc.eutra_cap_feat_group_ind_17",
574         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_17_val), 0,
575         "EUTRA Feature Group Indicator 17", HFILL }},
576     { &hf_lte_rrc_eutra_cap_feat_group_ind_18,
577       { "Indicator 18", "lte-rrc.eutra_cap_feat_group_ind_18",
578         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_18_val), 0,
579         "EUTRA Feature Group Indicator 18", HFILL }},
580     { &hf_lte_rrc_eutra_cap_feat_group_ind_19,
581       { "Indicator 19", "lte-rrc.eutra_cap_feat_group_ind_19",
582         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_19_val), 0,
583         "EUTRA Feature Group Indicator 19", HFILL }},
584     { &hf_lte_rrc_eutra_cap_feat_group_ind_20,
585       { "Indicator 20", "lte-rrc.eutra_cap_feat_group_ind_20",
586         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_20_val), 0,
587         "EUTRA Feature Group Indicator 20", HFILL }},
588     { &hf_lte_rrc_eutra_cap_feat_group_ind_21,
589       { "Indicator 21", "lte-rrc.eutra_cap_feat_group_ind_21",
590         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_21_val), 0,
591         "EUTRA Feature Group Indicator 21", HFILL }},
592     { &hf_lte_rrc_eutra_cap_feat_group_ind_22,
593       { "Indicator 22", "lte-rrc.eutra_cap_feat_group_ind_22",
594         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_22_val), 0,
595         "EUTRA Feature Group Indicator 22", HFILL }},
596     { &hf_lte_rrc_eutra_cap_feat_group_ind_23,
597       { "Indicator 23", "lte-rrc.eutra_cap_feat_group_ind_23",
598         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_23_val), 0,
599         "EUTRA Feature Group Indicator 23", HFILL }},
600     { &hf_lte_rrc_eutra_cap_feat_group_ind_24,
601       { "Indicator 24", "lte-rrc.eutra_cap_feat_group_ind_24",
602         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_24_val), 0,
603         "EUTRA Feature Group Indicator 24", HFILL }},
604     { &hf_lte_rrc_eutra_cap_feat_group_ind_25,
605       { "Indicator 25", "lte-rrc.eutra_cap_feat_group_ind_25",
606         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_25_val), 0,
607         "EUTRA Feature Group Indicator 25", HFILL }},
608     { &hf_lte_rrc_eutra_cap_feat_group_ind_26,
609       { "Indicator 26", "lte-rrc.eutra_cap_feat_group_ind_26",
610         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_26_val), 0,
611         "EUTRA Feature Group Indicator 26", HFILL }},
612     { &hf_lte_rrc_eutra_cap_feat_group_ind_27,
613       { "Indicator 27", "lte-rrc.eutra_cap_feat_group_ind_27",
614         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_27_val), 0,
615         "EUTRA Feature Group Indicator 27", HFILL }},
616     { &hf_lte_rrc_eutra_cap_feat_group_ind_28,
617       { "Indicator 28", "lte-rrc.eutra_cap_feat_group_ind_28",
618         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_28_val), 0,
619         "EUTRA Feature Group Indicator 28", HFILL }},
620     { &hf_lte_rrc_eutra_cap_feat_group_ind_29,
621       { "Indicator 29", "lte-rrc.eutra_cap_feat_group_ind_29",
622         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_29_val), 0,
623         "EUTRA Feature Group Indicator 29", HFILL }},
624     { &hf_lte_rrc_eutra_cap_feat_group_ind_30,
625       { "Indicator 30", "lte-rrc.eutra_cap_feat_group_ind_30",
626         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_30_val), 0,
627         "EUTRA Feature Group Indicator 30", HFILL }},
628     { &hf_lte_rrc_eutra_cap_feat_group_ind_31,
629       { "Indicator 31", "lte-rrc.eutra_cap_feat_group_ind_31",
630         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_31_val), 0,
631         "EUTRA Feature Group Indicator 31", HFILL }},
632     { &hf_lte_rrc_eutra_cap_feat_group_ind_32,
633       { "Indicator 32", "lte-rrc.eutra_cap_feat_group_ind_32",
634         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_32_val), 0,
635         "EUTRA Feature Group Indicator 32", HFILL }},
636     { &hf_lte_rrc_eutra_cap_feat_group_ind_101,
637       { "Indicator 101", "lte-rrc.eutra_cap_feat_group_ind_101",
638         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_101_val), 0,
639         "EUTRA Feature Group Indicator 101", HFILL }},
640     { &hf_lte_rrc_eutra_cap_feat_group_ind_102,
641       { "Indicator 102", "lte-rrc.eutra_cap_feat_group_ind_102",
642         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_102_val), 0,
643         "EUTRA Feature Group Indicator 102", HFILL }},
644     { &hf_lte_rrc_eutra_cap_feat_group_ind_103,
645       { "Indicator 103", "lte-rrc.eutra_cap_feat_group_ind_103",
646         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_103_val), 0,
647         "EUTRA Feature Group Indicator 103", HFILL }},
648     { &hf_lte_rrc_eutra_cap_feat_group_ind_104,
649       { "Indicator 104", "lte-rrc.eutra_cap_feat_group_ind_104",
650         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_104_val), 0,
651         "EUTRA Feature Group Indicator 104", HFILL }},
652     { &hf_lte_rrc_eutra_cap_feat_group_ind_105,
653       { "Indicator 105", "lte-rrc.eutra_cap_feat_group_ind_105",
654         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_105_val), 0,
655         "EUTRA Feature Group Indicator 105", HFILL }},
656     { &hf_lte_rrc_eutra_cap_feat_group_ind_106,
657       { "Indicator 106", "lte-rrc.eutra_cap_feat_group_ind_106",
658         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_106_val), 0,
659         "EUTRA Feature Group Indicator 106", HFILL }},
660     { &hf_lte_rrc_eutra_cap_feat_group_ind_107,
661       { "Indicator 107", "lte-rrc.eutra_cap_feat_group_ind_107",
662         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_107_val), 0,
663         "EUTRA Feature Group Indicator 107", HFILL }},
664     { &hf_lte_rrc_eutra_cap_feat_group_ind_108,
665       { "Indicator 108", "lte-rrc.eutra_cap_feat_group_ind_108",
666         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_108_val), 0,
667         "EUTRA Feature Group Indicator 108", HFILL }},
668     { &hf_lte_rrc_eutra_cap_feat_group_ind_109,
669       { "Indicator 109", "lte-rrc.eutra_cap_feat_group_ind_109",
670         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_109_val), 0,
671         "EUTRA Feature Group Indicator 109", HFILL }},
672     { &hf_lte_rrc_eutra_cap_feat_group_ind_110,
673       { "Indicator 110", "lte-rrc.eutra_cap_feat_group_ind_110",
674         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_110_val), 0,
675         "EUTRA Feature Group Indicator 110", HFILL }},
676     { &hf_lte_rrc_eutra_cap_feat_group_ind_111,
677       { "Indicator 111", "lte-rrc.eutra_cap_feat_group_ind_111",
678         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_111_val), 0,
679         "EUTRA Feature Group Indicator 111", HFILL }},
680     { &hf_lte_rrc_eutra_cap_feat_group_ind_112,
681       { "Indicator 112", "lte-rrc.eutra_cap_feat_group_ind_112",
682         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_112_val), 0,
683         "EUTRA Feature Group Indicator 112", HFILL }},
684     { &hf_lte_rrc_eutra_cap_feat_group_ind_113,
685       { "Indicator 113", "lte-rrc.eutra_cap_feat_group_ind_113",
686         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_113_val), 0,
687         "EUTRA Feature Group Indicator 113", HFILL }},
688     { &hf_lte_rrc_eutra_cap_feat_group_ind_114,
689       { "Indicator 114", "lte-rrc.eutra_cap_feat_group_ind_114",
690         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_114_val), 0,
691         "EUTRA Feature Group Indicator 114", HFILL }},
692     { &hf_lte_rrc_eutra_cap_feat_group_ind_115,
693       { "Indicator 115", "lte-rrc.eutra_cap_feat_group_ind_115",
694         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_115_val), 0,
695         "EUTRA Feature Group Indicator 115", HFILL }},
696     { &hf_lte_rrc_eutra_cap_feat_group_ind_116,
697       { "Indicator 116", "lte-rrc.eutra_cap_feat_group_ind_116",
698         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_116_val), 0,
699         "EUTRA Feature Group Indicator 116", HFILL }},
700     { &hf_lte_rrc_eutra_cap_feat_group_ind_117,
701       { "Indicator 117", "lte-rrc.eutra_cap_feat_group_ind_117",
702         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_117_val), 0,
703         "EUTRA Feature Group Indicator 117", HFILL }},
704     { &hf_lte_rrc_eutra_cap_feat_group_ind_118,
705       { "Indicator 118", "lte-rrc.eutra_cap_feat_group_ind_118",
706         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_118_val), 0,
707         "EUTRA Feature Group Indicator 118", HFILL }},
708     { &hf_lte_rrc_eutra_cap_feat_group_ind_119,
709       { "Indicator 119", "lte-rrc.eutra_cap_feat_group_ind_119",
710         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_119_val), 0,
711         "EUTRA Feature Group Indicator 119", HFILL }},
712     { &hf_lte_rrc_eutra_cap_feat_group_ind_120,
713       { "Indicator 120", "lte-rrc.eutra_cap_feat_group_ind_120",
714         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_120_val), 0,
715         "EUTRA Feature Group Indicator 120", HFILL }},
716     { &hf_lte_rrc_eutra_cap_feat_group_ind_121,
717       { "Indicator 121", "lte-rrc.eutra_cap_feat_group_ind_121",
718         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_121_val), 0,
719         "EUTRA Feature Group Indicator 121", HFILL }},
720     { &hf_lte_rrc_eutra_cap_feat_group_ind_122,
721       { "Indicator 122", "lte-rrc.eutra_cap_feat_group_ind_122",
722         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_122_val), 0,
723         "EUTRA Feature Group Indicator 122", HFILL }},
724     { &hf_lte_rrc_eutra_cap_feat_group_ind_123,
725       { "Indicator 123", "lte-rrc.eutra_cap_feat_group_ind_123",
726         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_123_val), 0,
727         "EUTRA Feature Group Indicator 123", HFILL }},
728     { &hf_lte_rrc_eutra_cap_feat_group_ind_124,
729       { "Indicator 124", "lte-rrc.eutra_cap_feat_group_ind_124",
730         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_124_val), 0,
731         "EUTRA Feature Group Indicator 124", HFILL }},
732     { &hf_lte_rrc_eutra_cap_feat_group_ind_125,
733       { "Indicator 125", "lte-rrc.eutra_cap_feat_group_ind_125",
734         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_125_val), 0,
735         "EUTRA Feature Group Indicator 125", HFILL }},
736     { &hf_lte_rrc_eutra_cap_feat_group_ind_126,
737       { "Indicator 126", "lte-rrc.eutra_cap_feat_group_ind_126",
738         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_126_val), 0,
739         "EUTRA Feature Group Indicator 126", HFILL }},
740     { &hf_lte_rrc_eutra_cap_feat_group_ind_127,
741       { "Indicator 127", "lte-rrc.eutra_cap_feat_group_ind_127",
742         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_127_val), 0,
743         "EUTRA Feature Group Indicator 127", HFILL }},
744     { &hf_lte_rrc_eutra_cap_feat_group_ind_128,
745       { "Indicator 128", "lte-rrc.eutra_cap_feat_group_ind_128",
746         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_128_val), 0,
747         "EUTRA Feature Group Indicator 128", HFILL }},
748     { &hf_lte_rrc_eutra_cap_feat_group_ind_129,
749       { "Indicator 129", "lte-rrc.eutra_cap_feat_group_ind_129",
750         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_129_val), 0,
751         "EUTRA Feature Group Indicator 129", HFILL }},
752     { &hf_lte_rrc_eutra_cap_feat_group_ind_130,
753       { "Indicator 130", "lte-rrc.eutra_cap_feat_group_ind_130",
754         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_130_val), 0,
755         "EUTRA Feature Group Indicator 130", HFILL }},
756     { &hf_lte_rrc_eutra_cap_feat_group_ind_131,
757       { "Indicator 131", "lte-rrc.eutra_cap_feat_group_ind_131",
758         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_131_val), 0,
759         "EUTRA Feature Group Indicator 131", HFILL }},
760     { &hf_lte_rrc_eutra_cap_feat_group_ind_132,
761       { "Indicator 132", "lte-rrc.eutra_cap_feat_group_ind_132",
762         FT_BOOLEAN, BASE_NONE, TFS(&lte_rrc_eutra_cap_feat_group_ind_132_val), 0,
763         "EUTRA Feature Group Indicator 132", HFILL }},
764   };
765
766   /* List of subtrees */
767   static gint *ett[] = {
768     &ett_lte_rrc,
769 #include "packet-lte-rrc-ettarr.c"
770
771     &ett_lte_rrc_featureGroupIndicators,
772     &ett_lte_rrc_featureGroupIndicatorsV1020,
773     &ett_lte_rrc_neighCellConfig,
774     &ett_lte_rrc_absTimeInfo,
775   };
776
777
778   /* Register protocol */
779   proto_lte_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME);
780
781   /* These entry points will first create an lte_rrc root node */
782   register_dissector("lte_rrc.dl_ccch", dissect_lte_rrc_DL_CCCH, proto_lte_rrc);
783   register_dissector("lte_rrc.dl_dcch", dissect_lte_rrc_DL_DCCH, proto_lte_rrc);
784   register_dissector("lte_rrc.ul_ccch", dissect_lte_rrc_UL_CCCH, proto_lte_rrc);
785   register_dissector("lte_rrc.ul_dcch", dissect_lte_rrc_UL_DCCH, proto_lte_rrc);
786   register_dissector("lte_rrc.bcch_bch", dissect_lte_rrc_BCCH_BCH, proto_lte_rrc);
787   register_dissector("lte_rrc.bcch_dl_sch", dissect_lte_rrc_BCCH_DL_SCH, proto_lte_rrc);
788
789   /* Register fields and subtrees */
790   proto_register_field_array(proto_lte_rrc, hf, array_length(hf));
791   proto_register_subtree_array(ett, array_length(ett));
792
793   /* Register the dissectors defined in lte-rrc.conf */
794 #include "packet-lte-rrc-dis-reg.c"
795
796 }
797
798
799 /*--- proto_reg_handoff_rrc ---------------------------------------*/
800 void
801 proto_reg_handoff_lte_rrc(void)
802 {
803         static dissector_handle_t lte_rrc_dl_ccch_handle;
804
805         lte_rrc_dl_ccch_handle = find_dissector("lte_rrc.dl_ccch");
806         dissector_add_handle("udp.port", lte_rrc_dl_ccch_handle);
807         nas_eps_handle = find_dissector("nas-eps");
808         rrc_irat_ho_to_utran_cmd_handle = find_dissector("rrc.irat.ho_to_utran_cmd");
809         rrc_sys_info_cont_handle = find_dissector("rrc.sysinfo.cont");
810         gsm_a_dtap_handle = find_dissector("gsm_a_dtap");
811         gsm_rlcmac_dl_handle = find_dissector("gsm_rlcmac_dl");
812 }
813
814