1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -p m3ap -c ./m3ap.cnf -s ./packet-m3ap-template -D . -O ../../epan/dissectors M3AP-CommonDataTypes.asn M3AP-Constants.asn M3AP-Containers.asn M3AP-IEs.asn M3AP-PDU-Contents.asn M3AP-PDU-Descriptions.asn */
6 /* Input file: packet-m3ap-template.c */
8 #line 1 "../../asn1/m3ap/packet-m3ap-template.c"
10 * Routines for M3 Application Protocol packet dissection
14 * Wireshark - Network traffic analyzer
15 * By Gerald Combs <gerald@wireshark.org>
16 * Copyright 1998 Gerald Combs
18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License
20 * as published by the Free Software Foundation; either version 2
21 * of the License, or (at your option) any later version.
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
28 * You should have received a copy of the GNU General Public License
29 * along with this program; if not, write to the Free Software
30 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
32 * Reference: 3GPP TS 36.444 v11.0.0
38 #include <epan/packet.h>
40 #include <epan/strutil.h>
41 #include <epan/asn1.h>
42 #include <epan/sctpppids.h>
44 #include "packet-ber.h"
45 #include "packet-per.h"
46 #include "packet-e212.h"
47 #include "packet-gtpv2.h"
48 #include "packet-ntp.h"
50 #define PNAME "M3 Application Protocol"
54 void proto_register_m3ap(void);
55 void proto_reg_handoff_m3ap(void);
57 /* M3AP uses port 36444 as recommended by IANA. */
58 #define M3AP_PORT 36444
59 static dissector_handle_t m3ap_handle
=NULL
;
62 /*--- Included file: packet-m3ap-val.h ---*/
63 #line 1 "../../asn1/m3ap/packet-m3ap-val.h"
64 #define maxPrivateIEs 65535
65 #define maxProtocolExtensions 65535
66 #define maxProtocolIEs 65535
67 #define maxnoofMBMSServiceAreaIdentitiesPerMCE 65536
68 #define maxnooferrors 256
69 #define maxNrOfIndividualM3ConnectionsToReset 256
71 typedef enum _ProcedureCode_enum
{
72 id_mBMSsessionStart
= 0,
73 id_mBMSsessionStop
= 1,
74 id_errorIndication
= 2,
75 id_privateMessage
= 3,
77 id_mBMSsessionUpdate
= 5,
78 id_mCEConfigurationUpdate
= 6,
82 typedef enum _ProtocolIE_ID_enum
{
83 id_MME_MBMS_M3AP_ID
= 0,
84 id_MCE_MBMS_M3AP_ID
= 1,
86 id_MBMS_Session_ID
= 3,
87 id_MBMS_E_RAB_QoS_Parameters
= 4,
88 id_MBMS_Session_Duration
= 5,
89 id_MBMS_Service_Area
= 6,
90 id_TNL_Information
= 7,
91 id_CriticalityDiagnostics
= 8,
93 id_MBMS_Service_Area_List
= 10,
94 id_MBMS_Service_Area_List_Item
= 11,
97 id_MBMS_Service_associatedLogicalM3_ConnectionItem
= 14,
98 id_MBMS_Service_associatedLogicalM3_ConnectionListResAck
= 15,
99 id_MinimumTimeToMBMSDataTransfer
= 16,
100 id_AllocationAndRetentionPriority
= 17,
101 id_Global_MCE_ID
= 18,
103 id_MBMSServiceAreaList
= 20,
104 id_Time_ofMBMS_DataTransfer
= 21,
105 id_Time_ofMBMS_DataStop
= 22
106 } ProtocolIE_ID_enum
;
108 /*--- End of included file: packet-m3ap-val.h ---*/
109 #line 54 "../../asn1/m3ap/packet-m3ap-template.c"
111 /* Initialize the protocol and registered fields */
112 static int proto_m3ap
= -1;
114 static int hf_m3ap_Absolute_Time_ofMBMS_Data_value
= -1;
115 static int hf_m3ap_IPAddress
= -1;
118 /*--- Included file: packet-m3ap-hf.c ---*/
119 #line 1 "../../asn1/m3ap/packet-m3ap-hf.c"
120 static int hf_m3ap_Absolute_Time_ofMBMS_Data_PDU
= -1; /* Absolute_Time_ofMBMS_Data */
121 static int hf_m3ap_AllocationAndRetentionPriority_PDU
= -1; /* AllocationAndRetentionPriority */
122 static int hf_m3ap_Cause_PDU
= -1; /* Cause */
123 static int hf_m3ap_CriticalityDiagnostics_PDU
= -1; /* CriticalityDiagnostics */
124 static int hf_m3ap_Global_MCE_ID_PDU
= -1; /* Global_MCE_ID */
125 static int hf_m3ap_MBMS_E_RAB_QoS_Parameters_PDU
= -1; /* MBMS_E_RAB_QoS_Parameters */
126 static int hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem_PDU
= -1; /* MBMS_Service_associatedLogicalM3_ConnectionItem */
127 static int hf_m3ap_MBMS_Service_Area_PDU
= -1; /* MBMS_Service_Area */
128 static int hf_m3ap_MBMS_Session_Duration_PDU
= -1; /* MBMS_Session_Duration */
129 static int hf_m3ap_MBMS_Session_ID_PDU
= -1; /* MBMS_Session_ID */
130 static int hf_m3ap_MCE_MBMS_M3AP_ID_PDU
= -1; /* MCE_MBMS_M3AP_ID */
131 static int hf_m3ap_MCEname_PDU
= -1; /* MCEname */
132 static int hf_m3ap_MinimumTimeToMBMSDataTransfer_PDU
= -1; /* MinimumTimeToMBMSDataTransfer */
133 static int hf_m3ap_MME_MBMS_M3AP_ID_PDU
= -1; /* MME_MBMS_M3AP_ID */
134 static int hf_m3ap_TimeToWait_PDU
= -1; /* TimeToWait */
135 static int hf_m3ap_TMGI_PDU
= -1; /* TMGI */
136 static int hf_m3ap_TNL_Information_PDU
= -1; /* TNL_Information */
137 static int hf_m3ap_MBMSSessionStartRequest_PDU
= -1; /* MBMSSessionStartRequest */
138 static int hf_m3ap_MBMSSessionStartResponse_PDU
= -1; /* MBMSSessionStartResponse */
139 static int hf_m3ap_MBMSSessionStartFailure_PDU
= -1; /* MBMSSessionStartFailure */
140 static int hf_m3ap_MBMSSessionStopRequest_PDU
= -1; /* MBMSSessionStopRequest */
141 static int hf_m3ap_MBMSSessionStopResponse_PDU
= -1; /* MBMSSessionStopResponse */
142 static int hf_m3ap_MBMSSessionUpdateRequest_PDU
= -1; /* MBMSSessionUpdateRequest */
143 static int hf_m3ap_MBMSSessionUpdateResponse_PDU
= -1; /* MBMSSessionUpdateResponse */
144 static int hf_m3ap_MBMSSessionUpdateFailure_PDU
= -1; /* MBMSSessionUpdateFailure */
145 static int hf_m3ap_ErrorIndication_PDU
= -1; /* ErrorIndication */
146 static int hf_m3ap_Reset_PDU
= -1; /* Reset */
147 static int hf_m3ap_ResetType_PDU
= -1; /* ResetType */
148 static int hf_m3ap_ResetAcknowledge_PDU
= -1; /* ResetAcknowledge */
149 static int hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck_PDU
= -1; /* MBMS_Service_associatedLogicalM3_ConnectionListResAck */
150 static int hf_m3ap_PrivateMessage_PDU
= -1; /* PrivateMessage */
151 static int hf_m3ap_M3SetupRequest_PDU
= -1; /* M3SetupRequest */
152 static int hf_m3ap_MBMSServiceAreaListItem_PDU
= -1; /* MBMSServiceAreaListItem */
153 static int hf_m3ap_M3SetupResponse_PDU
= -1; /* M3SetupResponse */
154 static int hf_m3ap_M3SetupFailure_PDU
= -1; /* M3SetupFailure */
155 static int hf_m3ap_MCEConfigurationUpdate_PDU
= -1; /* MCEConfigurationUpdate */
156 static int hf_m3ap_MCEConfigurationUpdateAcknowledge_PDU
= -1; /* MCEConfigurationUpdateAcknowledge */
157 static int hf_m3ap_MCEConfigurationUpdateFailure_PDU
= -1; /* MCEConfigurationUpdateFailure */
158 static int hf_m3ap_M3AP_PDU_PDU
= -1; /* M3AP_PDU */
159 static int hf_m3ap_local
= -1; /* INTEGER_0_maxPrivateIEs */
160 static int hf_m3ap_global
= -1; /* OBJECT_IDENTIFIER */
161 static int hf_m3ap_ProtocolIE_Container_item
= -1; /* ProtocolIE_Field */
162 static int hf_m3ap_id
= -1; /* ProtocolIE_ID */
163 static int hf_m3ap_criticality
= -1; /* Criticality */
164 static int hf_m3ap_ie_field_value
= -1; /* T_ie_field_value */
165 static int hf_m3ap_ProtocolIE_ContainerList_item
= -1; /* ProtocolIE_Container */
166 static int hf_m3ap_ProtocolExtensionContainer_item
= -1; /* ProtocolExtensionField */
167 static int hf_m3ap_ext_id
= -1; /* ProtocolIE_ID */
168 static int hf_m3ap_extensionValue
= -1; /* T_extensionValue */
169 static int hf_m3ap_PrivateIE_Container_item
= -1; /* PrivateIE_Field */
170 static int hf_m3ap_private_id
= -1; /* PrivateIE_ID */
171 static int hf_m3ap_private_value
= -1; /* T_private_value */
172 static int hf_m3ap_priorityLevel
= -1; /* PriorityLevel */
173 static int hf_m3ap_pre_emptionCapability
= -1; /* Pre_emptionCapability */
174 static int hf_m3ap_pre_emptionVulnerability
= -1; /* Pre_emptionVulnerability */
175 static int hf_m3ap_iE_Extensions
= -1; /* ProtocolExtensionContainer */
176 static int hf_m3ap_radioNetwork
= -1; /* CauseRadioNetwork */
177 static int hf_m3ap_transport
= -1; /* CauseTransport */
178 static int hf_m3ap_nAS
= -1; /* CauseNAS */
179 static int hf_m3ap_protocol
= -1; /* CauseProtocol */
180 static int hf_m3ap_misc
= -1; /* CauseMisc */
181 static int hf_m3ap_procedureCode
= -1; /* ProcedureCode */
182 static int hf_m3ap_triggeringMessage
= -1; /* TriggeringMessage */
183 static int hf_m3ap_procedureCriticality
= -1; /* Criticality */
184 static int hf_m3ap_iEsCriticalityDiagnostics
= -1; /* CriticalityDiagnostics_IE_List */
185 static int hf_m3ap_CriticalityDiagnostics_IE_List_item
= -1; /* CriticalityDiagnostics_IE_List_item */
186 static int hf_m3ap_iECriticality
= -1; /* Criticality */
187 static int hf_m3ap_iE_ID
= -1; /* ProtocolIE_ID */
188 static int hf_m3ap_typeOfError
= -1; /* TypeOfError */
189 static int hf_m3ap_pLMN_Identity
= -1; /* PLMN_Identity */
190 static int hf_m3ap_mCE_ID
= -1; /* MCE_ID */
191 static int hf_m3ap_extendedMCE_ID
= -1; /* ExtendedMCE_ID */
192 static int hf_m3ap_mBMS_E_RAB_MaximumBitrateDL
= -1; /* BitRate */
193 static int hf_m3ap_mBMS_E_RAB_GuaranteedBitrateDL
= -1; /* BitRate */
194 static int hf_m3ap_qCI
= -1; /* QCI */
195 static int hf_m3ap_gbrQosInformation
= -1; /* GBR_QosInformation */
196 static int hf_m3ap_mME_MBMS_M3AP_ID
= -1; /* MME_MBMS_M3AP_ID */
197 static int hf_m3ap_mCE_MBMS_M3AP_ID
= -1; /* MCE_MBMS_M3AP_ID */
198 static int hf_m3ap_pLMNidentity
= -1; /* PLMN_Identity */
199 static int hf_m3ap_serviceID
= -1; /* OCTET_STRING_SIZE_3 */
200 static int hf_m3ap_iPMCAddress
= -1; /* IPAddress */
201 static int hf_m3ap_iPSourceAddress
= -1; /* IPAddress */
202 static int hf_m3ap_gTP_DLTEID
= -1; /* GTP_TEID */
203 static int hf_m3ap_protocolIEs
= -1; /* ProtocolIE_Container */
204 static int hf_m3ap_m3_Interface
= -1; /* ResetAll */
205 static int hf_m3ap_partOfM3_Interface
= -1; /* MBMS_Service_associatedLogicalM3_ConnectionListRes */
206 static int hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes_item
= -1; /* ProtocolIE_Single_Container */
207 static int hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck_item
= -1; /* ProtocolIE_Single_Container */
208 static int hf_m3ap_privateIEs
= -1; /* PrivateIE_Container */
209 static int hf_m3ap_MBMSServiceAreaListItem_item
= -1; /* MBMSServiceArea1 */
210 static int hf_m3ap_initiatingMessage
= -1; /* InitiatingMessage */
211 static int hf_m3ap_successfulOutcome
= -1; /* SuccessfulOutcome */
212 static int hf_m3ap_unsuccessfulOutcome
= -1; /* UnsuccessfulOutcome */
213 static int hf_m3ap_initiatingMessagevalue
= -1; /* InitiatingMessage_value */
214 static int hf_m3ap_successfulOutcome_value
= -1; /* SuccessfulOutcome_value */
215 static int hf_m3ap_unsuccessfulOutcome_value
= -1; /* UnsuccessfulOutcome_value */
217 /*--- End of included file: packet-m3ap-hf.c ---*/
218 #line 62 "../../asn1/m3ap/packet-m3ap-template.c"
220 /* Initialize the subtree pointers */
221 static int ett_m3ap
= -1;
224 /*--- Included file: packet-m3ap-ett.c ---*/
225 #line 1 "../../asn1/m3ap/packet-m3ap-ett.c"
226 static gint ett_m3ap_PrivateIE_ID
= -1;
227 static gint ett_m3ap_ProtocolIE_Container
= -1;
228 static gint ett_m3ap_ProtocolIE_Field
= -1;
229 static gint ett_m3ap_ProtocolIE_ContainerList
= -1;
230 static gint ett_m3ap_ProtocolExtensionContainer
= -1;
231 static gint ett_m3ap_ProtocolExtensionField
= -1;
232 static gint ett_m3ap_PrivateIE_Container
= -1;
233 static gint ett_m3ap_PrivateIE_Field
= -1;
234 static gint ett_m3ap_AllocationAndRetentionPriority
= -1;
235 static gint ett_m3ap_Cause
= -1;
236 static gint ett_m3ap_CriticalityDiagnostics
= -1;
237 static gint ett_m3ap_CriticalityDiagnostics_IE_List
= -1;
238 static gint ett_m3ap_CriticalityDiagnostics_IE_List_item
= -1;
239 static gint ett_m3ap_Global_MCE_ID
= -1;
240 static gint ett_m3ap_GBR_QosInformation
= -1;
241 static gint ett_m3ap_MBMS_E_RAB_QoS_Parameters
= -1;
242 static gint ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem
= -1;
243 static gint ett_m3ap_TMGI
= -1;
244 static gint ett_m3ap_TNL_Information
= -1;
245 static gint ett_m3ap_MBMSSessionStartRequest
= -1;
246 static gint ett_m3ap_MBMSSessionStartResponse
= -1;
247 static gint ett_m3ap_MBMSSessionStartFailure
= -1;
248 static gint ett_m3ap_MBMSSessionStopRequest
= -1;
249 static gint ett_m3ap_MBMSSessionStopResponse
= -1;
250 static gint ett_m3ap_MBMSSessionUpdateRequest
= -1;
251 static gint ett_m3ap_MBMSSessionUpdateResponse
= -1;
252 static gint ett_m3ap_MBMSSessionUpdateFailure
= -1;
253 static gint ett_m3ap_ErrorIndication
= -1;
254 static gint ett_m3ap_Reset
= -1;
255 static gint ett_m3ap_ResetType
= -1;
256 static gint ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes
= -1;
257 static gint ett_m3ap_ResetAcknowledge
= -1;
258 static gint ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck
= -1;
259 static gint ett_m3ap_PrivateMessage
= -1;
260 static gint ett_m3ap_M3SetupRequest
= -1;
261 static gint ett_m3ap_MBMSServiceAreaListItem
= -1;
262 static gint ett_m3ap_M3SetupResponse
= -1;
263 static gint ett_m3ap_M3SetupFailure
= -1;
264 static gint ett_m3ap_MCEConfigurationUpdate
= -1;
265 static gint ett_m3ap_MCEConfigurationUpdateAcknowledge
= -1;
266 static gint ett_m3ap_MCEConfigurationUpdateFailure
= -1;
267 static gint ett_m3ap_M3AP_PDU
= -1;
268 static gint ett_m3ap_InitiatingMessage
= -1;
269 static gint ett_m3ap_SuccessfulOutcome
= -1;
270 static gint ett_m3ap_UnsuccessfulOutcome
= -1;
272 /*--- End of included file: packet-m3ap-ett.c ---*/
273 #line 67 "../../asn1/m3ap/packet-m3ap-template.c"
281 /* Global variables */
282 static guint32 ProcedureCode
;
283 static guint32 ProtocolIE_ID
;
284 static guint32 ProtocolExtensionID
;
285 static int global_m3ap_port
= M3AP_PORT
;
286 static guint32 message_type
;
288 /* Dissector tables */
289 static dissector_table_t m3ap_ies_dissector_table
;
290 static dissector_table_t m3ap_extension_dissector_table
;
291 static dissector_table_t m3ap_proc_imsg_dissector_table
;
292 static dissector_table_t m3ap_proc_sout_dissector_table
;
293 static dissector_table_t m3ap_proc_uout_dissector_table
;
295 static int dissect_ProtocolIEFieldValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
296 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
297 static int dissect_InitiatingMessageValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
298 static int dissect_SuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
299 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *);
302 /*--- Included file: packet-m3ap-fn.c ---*/
303 #line 1 "../../asn1/m3ap/packet-m3ap-fn.c"
305 static const value_string m3ap_Criticality_vals
[] = {
314 dissect_m3ap_Criticality(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
315 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
316 3, NULL
, FALSE
, 0, NULL
);
324 dissect_m3ap_INTEGER_0_maxPrivateIEs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
325 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
326 0U, maxPrivateIEs
, NULL
, FALSE
);
334 dissect_m3ap_OBJECT_IDENTIFIER(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
335 offset
= dissect_per_object_identifier(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
341 static const value_string m3ap_PrivateIE_ID_vals
[] = {
347 static const per_choice_t PrivateIE_ID_choice
[] = {
348 { 0, &hf_m3ap_local
, ASN1_NO_EXTENSIONS
, dissect_m3ap_INTEGER_0_maxPrivateIEs
},
349 { 1, &hf_m3ap_global
, ASN1_NO_EXTENSIONS
, dissect_m3ap_OBJECT_IDENTIFIER
},
354 dissect_m3ap_PrivateIE_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
355 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
356 ett_m3ap_PrivateIE_ID
, PrivateIE_ID_choice
,
363 static const value_string m3ap_ProcedureCode_vals
[] = {
364 { id_mBMSsessionStart
, "id-mBMSsessionStart" },
365 { id_mBMSsessionStop
, "id-mBMSsessionStop" },
366 { id_errorIndication
, "id-errorIndication" },
367 { id_privateMessage
, "id-privateMessage" },
368 { id_Reset
, "id-Reset" },
369 { id_mBMSsessionUpdate
, "id-mBMSsessionUpdate" },
370 { id_mCEConfigurationUpdate
, "id-mCEConfigurationUpdate" },
371 { id_m3Setup
, "id-m3Setup" },
375 static value_string_ext m3ap_ProcedureCode_vals_ext
= VALUE_STRING_EXT_INIT(m3ap_ProcedureCode_vals
);
379 dissect_m3ap_ProcedureCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
380 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
381 0U, 255U, &ProcedureCode
, FALSE
);
383 #line 66 "../../asn1/m3ap/m3ap.cnf"
384 col_add_fstr(actx
->pinfo
->cinfo
, COL_INFO
, "%s",
385 val_to_str_ext(ProcedureCode
, &m3ap_ProcedureCode_vals_ext
,
392 static const value_string m3ap_ProtocolIE_ID_vals
[] = {
393 { id_MME_MBMS_M3AP_ID
, "id-MME-MBMS-M3AP-ID" },
394 { id_MCE_MBMS_M3AP_ID
, "id-MCE-MBMS-M3AP-ID" },
395 { id_TMGI
, "id-TMGI" },
396 { id_MBMS_Session_ID
, "id-MBMS-Session-ID" },
397 { id_MBMS_E_RAB_QoS_Parameters
, "id-MBMS-E-RAB-QoS-Parameters" },
398 { id_MBMS_Session_Duration
, "id-MBMS-Session-Duration" },
399 { id_MBMS_Service_Area
, "id-MBMS-Service-Area" },
400 { id_TNL_Information
, "id-TNL-Information" },
401 { id_CriticalityDiagnostics
, "id-CriticalityDiagnostics" },
402 { id_Cause
, "id-Cause" },
403 { id_MBMS_Service_Area_List
, "id-MBMS-Service-Area-List" },
404 { id_MBMS_Service_Area_List_Item
, "id-MBMS-Service-Area-List-Item" },
405 { id_TimeToWait
, "id-TimeToWait" },
406 { id_ResetType
, "id-ResetType" },
407 { id_MBMS_Service_associatedLogicalM3_ConnectionItem
, "id-MBMS-Service-associatedLogicalM3-ConnectionItem" },
408 { id_MBMS_Service_associatedLogicalM3_ConnectionListResAck
, "id-MBMS-Service-associatedLogicalM3-ConnectionListResAck" },
409 { id_MinimumTimeToMBMSDataTransfer
, "id-MinimumTimeToMBMSDataTransfer" },
410 { id_AllocationAndRetentionPriority
, "id-AllocationAndRetentionPriority" },
411 { id_Global_MCE_ID
, "id-Global-MCE-ID" },
412 { id_MCEname
, "id-MCEname" },
413 { id_MBMSServiceAreaList
, "id-MBMSServiceAreaList" },
414 { id_Time_ofMBMS_DataTransfer
, "id-Time-ofMBMS-DataTransfer" },
415 { id_Time_ofMBMS_DataStop
, "id-Time-ofMBMS-DataStop" },
419 static value_string_ext m3ap_ProtocolIE_ID_vals_ext
= VALUE_STRING_EXT_INIT(m3ap_ProtocolIE_ID_vals
);
423 dissect_m3ap_ProtocolIE_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
424 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
425 0U, maxProtocolIEs
, &ProtocolIE_ID
, FALSE
);
427 #line 51 "../../asn1/m3ap/m3ap.cnf"
429 proto_item_append_text(proto_item_get_parent_nth(actx
->created_item
, 2), ": %s", val_to_str_ext(ProtocolIE_ID
, &m3ap_ProtocolIE_ID_vals_ext
, "unknown (%d)"));
436 static const value_string m3ap_TriggeringMessage_vals
[] = {
437 { 0, "initiating-message" },
438 { 1, "successful-outcome" },
439 { 2, "unsuccessful-outcome" },
445 dissect_m3ap_TriggeringMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
446 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
447 3, NULL
, FALSE
, 0, NULL
);
455 dissect_m3ap_T_ie_field_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
456 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_ProtocolIEFieldValue
);
462 static const per_sequence_t ProtocolIE_Field_sequence
[] = {
463 { &hf_m3ap_id
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_ID
},
464 { &hf_m3ap_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Criticality
},
465 { &hf_m3ap_ie_field_value
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_T_ie_field_value
},
470 dissect_m3ap_ProtocolIE_Field(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
471 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
472 ett_m3ap_ProtocolIE_Field
, ProtocolIE_Field_sequence
);
478 static const per_sequence_t ProtocolIE_Container_sequence_of
[1] = {
479 { &hf_m3ap_ProtocolIE_Container_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Field
},
483 dissect_m3ap_ProtocolIE_Container(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
484 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
485 ett_m3ap_ProtocolIE_Container
, ProtocolIE_Container_sequence_of
,
486 0, maxProtocolIEs
, FALSE
);
494 dissect_m3ap_ProtocolIE_Single_Container(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
495 offset
= dissect_m3ap_ProtocolIE_Field(tvb
, offset
, actx
, tree
, hf_index
);
501 static const per_sequence_t ProtocolIE_ContainerList_sequence_of
[1] = {
502 { &hf_m3ap_ProtocolIE_ContainerList_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
506 dissect_m3ap_ProtocolIE_ContainerList(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
507 #line 91 "../../asn1/m3ap/m3ap.cnf"
508 static const asn1_par_def_t ProtocolIE_ContainerList_pars
[] = {
509 { "lowerBound", ASN1_PAR_INTEGER
},
510 { "upperBound", ASN1_PAR_INTEGER
},
511 { NULL
, (asn1_par_type
)0 }
513 asn1_stack_frame_check(actx
, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars
);
515 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
516 ett_m3ap_ProtocolIE_ContainerList
, ProtocolIE_ContainerList_sequence_of
,
517 asn1_param_get_integer(actx
,"lowerBound"), asn1_param_get_integer(actx
,"upperBound"), FALSE
);
525 dissect_m3ap_T_extensionValue(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
526 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_ProtocolExtensionFieldExtensionValue
);
532 static const per_sequence_t ProtocolExtensionField_sequence
[] = {
533 { &hf_m3ap_ext_id
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_ID
},
534 { &hf_m3ap_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Criticality
},
535 { &hf_m3ap_extensionValue
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_T_extensionValue
},
540 dissect_m3ap_ProtocolExtensionField(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
541 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
542 ett_m3ap_ProtocolExtensionField
, ProtocolExtensionField_sequence
);
548 static const per_sequence_t ProtocolExtensionContainer_sequence_of
[1] = {
549 { &hf_m3ap_ProtocolExtensionContainer_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolExtensionField
},
553 dissect_m3ap_ProtocolExtensionContainer(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
554 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
555 ett_m3ap_ProtocolExtensionContainer
, ProtocolExtensionContainer_sequence_of
,
556 1, maxProtocolExtensions
, FALSE
);
564 dissect_m3ap_T_private_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
565 offset
= dissect_per_open_type(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
571 static const per_sequence_t PrivateIE_Field_sequence
[] = {
572 { &hf_m3ap_private_id
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_PrivateIE_ID
},
573 { &hf_m3ap_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Criticality
},
574 { &hf_m3ap_private_value
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_T_private_value
},
579 dissect_m3ap_PrivateIE_Field(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
580 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
581 ett_m3ap_PrivateIE_Field
, PrivateIE_Field_sequence
);
587 static const per_sequence_t PrivateIE_Container_sequence_of
[1] = {
588 { &hf_m3ap_PrivateIE_Container_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_PrivateIE_Field
},
592 dissect_m3ap_PrivateIE_Container(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
593 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
594 ett_m3ap_PrivateIE_Container
, PrivateIE_Container_sequence_of
,
595 1, maxPrivateIEs
, FALSE
);
603 dissect_m3ap_Absolute_Time_ofMBMS_Data(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
604 #line 146 "../../asn1/m3ap/m3ap.cnf"
605 tvbuff_t
*parameter_tvb
=NULL
;
606 const gchar
*time_str
;
609 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
610 64, 64, FALSE
, ¶meter_tvb
);
616 tvb_len
= tvb_length(parameter_tvb
);
618 time_str
= tvb_ntp_fmt_ts(parameter_tvb
, 0);
619 proto_tree_add_string(tree
, hf_m3ap_Absolute_Time_ofMBMS_Data_value
, parameter_tvb
, 0, tvb_len
, time_str
);
626 static const value_string m3ap_PriorityLevel_vals
[] = {
630 { 15, "no-priority" },
636 dissect_m3ap_PriorityLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
637 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
638 0U, 15U, NULL
, FALSE
);
644 static const value_string m3ap_Pre_emptionCapability_vals
[] = {
645 { 0, "shall-not-trigger-pre-emption" },
646 { 1, "may-trigger-pre-emption" },
652 dissect_m3ap_Pre_emptionCapability(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
653 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
654 2, NULL
, FALSE
, 0, NULL
);
660 static const value_string m3ap_Pre_emptionVulnerability_vals
[] = {
661 { 0, "not-pre-emptable" },
662 { 1, "pre-emptable" },
668 dissect_m3ap_Pre_emptionVulnerability(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
669 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
670 2, NULL
, FALSE
, 0, NULL
);
676 static const per_sequence_t AllocationAndRetentionPriority_sequence
[] = {
677 { &hf_m3ap_priorityLevel
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_PriorityLevel
},
678 { &hf_m3ap_pre_emptionCapability
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Pre_emptionCapability
},
679 { &hf_m3ap_pre_emptionVulnerability
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Pre_emptionVulnerability
},
680 { &hf_m3ap_iE_Extensions
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
685 dissect_m3ap_AllocationAndRetentionPriority(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
686 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
687 ett_m3ap_AllocationAndRetentionPriority
, AllocationAndRetentionPriority_sequence
);
695 dissect_m3ap_BitRate(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
696 offset
= dissect_per_constrained_integer_64b(tvb
, offset
, actx
, tree
, hf_index
,
697 0U, G_GINT64_CONSTANT(10000000000U), NULL
, FALSE
);
703 static const value_string m3ap_CauseRadioNetwork_vals
[] = {
704 { 0, "unknown-or-already-allocated-MME-MBMS-M3AP-ID" },
705 { 1, "unknown-or-already-allocated-MCE-MBMS-M3AP-ID" },
706 { 2, "unknown-or-inconsistent-pair-of-MBMS-M3AP-IDs" },
707 { 3, "radio-resources-not-available" },
708 { 4, "invalid-QoS-combination" },
709 { 5, "interaction-with-other-procedure" },
710 { 6, "not-supported-QCI-value" },
711 { 7, "unspecified" },
717 dissect_m3ap_CauseRadioNetwork(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
718 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
719 8, NULL
, TRUE
, 0, NULL
);
725 static const value_string m3ap_CauseTransport_vals
[] = {
726 { 0, "transport-resource-unavailable" },
727 { 1, "unspecified" },
733 dissect_m3ap_CauseTransport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
734 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
735 2, NULL
, TRUE
, 0, NULL
);
741 static const value_string m3ap_CauseNAS_vals
[] = {
742 { 0, "unspecified" },
748 dissect_m3ap_CauseNAS(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
749 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
750 1, NULL
, TRUE
, 0, NULL
);
756 static const value_string m3ap_CauseProtocol_vals
[] = {
757 { 0, "transfer-syntax-error" },
758 { 1, "abstract-syntax-error-reject" },
759 { 2, "abstract-syntax-error-ignore-and-notify" },
760 { 3, "message-not-compatible-with-receiver-state" },
761 { 4, "semantic-error" },
762 { 5, "abstract-syntax-error-falsely-constructed-message" },
763 { 6, "unspecified" },
769 dissect_m3ap_CauseProtocol(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
770 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
771 7, NULL
, TRUE
, 0, NULL
);
777 static const value_string m3ap_CauseMisc_vals
[] = {
778 { 0, "control-processing-overload" },
779 { 1, "not-enough-user-plane-processing-resources" },
780 { 2, "hardware-failure" },
781 { 3, "om-intervention" },
782 { 4, "unspecified" },
788 dissect_m3ap_CauseMisc(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
789 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
790 5, NULL
, TRUE
, 0, NULL
);
796 static const value_string m3ap_Cause_vals
[] = {
797 { 0, "radioNetwork" },
805 static const per_choice_t Cause_choice
[] = {
806 { 0, &hf_m3ap_radioNetwork
, ASN1_EXTENSION_ROOT
, dissect_m3ap_CauseRadioNetwork
},
807 { 1, &hf_m3ap_transport
, ASN1_EXTENSION_ROOT
, dissect_m3ap_CauseTransport
},
808 { 2, &hf_m3ap_nAS
, ASN1_EXTENSION_ROOT
, dissect_m3ap_CauseNAS
},
809 { 3, &hf_m3ap_protocol
, ASN1_EXTENSION_ROOT
, dissect_m3ap_CauseProtocol
},
810 { 4, &hf_m3ap_misc
, ASN1_EXTENSION_ROOT
, dissect_m3ap_CauseMisc
},
815 dissect_m3ap_Cause(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
816 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
817 ett_m3ap_Cause
, Cause_choice
,
824 static const value_string m3ap_TypeOfError_vals
[] = {
825 { 0, "not-understood" },
832 dissect_m3ap_TypeOfError(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
833 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
834 2, NULL
, TRUE
, 0, NULL
);
840 static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence
[] = {
841 { &hf_m3ap_iECriticality
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Criticality
},
842 { &hf_m3ap_iE_ID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_ID
},
843 { &hf_m3ap_typeOfError
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_TypeOfError
},
844 { &hf_m3ap_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
849 dissect_m3ap_CriticalityDiagnostics_IE_List_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
850 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
851 ett_m3ap_CriticalityDiagnostics_IE_List_item
, CriticalityDiagnostics_IE_List_item_sequence
);
857 static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of
[1] = {
858 { &hf_m3ap_CriticalityDiagnostics_IE_List_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_CriticalityDiagnostics_IE_List_item
},
862 dissect_m3ap_CriticalityDiagnostics_IE_List(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
863 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
864 ett_m3ap_CriticalityDiagnostics_IE_List
, CriticalityDiagnostics_IE_List_sequence_of
,
865 1, maxnooferrors
, FALSE
);
871 static const per_sequence_t CriticalityDiagnostics_sequence
[] = {
872 { &hf_m3ap_procedureCode
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ProcedureCode
},
873 { &hf_m3ap_triggeringMessage
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_TriggeringMessage
},
874 { &hf_m3ap_procedureCriticality
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_Criticality
},
875 { &hf_m3ap_iEsCriticalityDiagnostics
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_CriticalityDiagnostics_IE_List
},
876 { &hf_m3ap_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
881 dissect_m3ap_CriticalityDiagnostics(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
882 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
883 ett_m3ap_CriticalityDiagnostics
, CriticalityDiagnostics_sequence
);
891 dissect_m3ap_ExtendedMCE_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
892 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
901 dissect_m3ap_PLMN_Identity(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
902 #line 122 "../../asn1/m3ap/m3ap.cnf"
903 tvbuff_t
*parameter_tvb
=NULL
;
905 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
906 3, 3, FALSE
, ¶meter_tvb
);
910 dissect_e212_mcc_mnc(parameter_tvb
, actx
->pinfo
, tree
, 0, FALSE
);
919 dissect_m3ap_MCE_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
920 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
927 static const per_sequence_t Global_MCE_ID_sequence
[] = {
928 { &hf_m3ap_pLMN_Identity
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_PLMN_Identity
},
929 { &hf_m3ap_mCE_ID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_MCE_ID
},
930 { &hf_m3ap_extendedMCE_ID
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ExtendedMCE_ID
},
931 { &hf_m3ap_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
936 dissect_m3ap_Global_MCE_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
937 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
938 ett_m3ap_Global_MCE_ID
, Global_MCE_ID_sequence
);
944 static const per_sequence_t GBR_QosInformation_sequence
[] = {
945 { &hf_m3ap_mBMS_E_RAB_MaximumBitrateDL
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_BitRate
},
946 { &hf_m3ap_mBMS_E_RAB_GuaranteedBitrateDL
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_BitRate
},
947 { &hf_m3ap_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
952 dissect_m3ap_GBR_QosInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
953 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
954 ett_m3ap_GBR_QosInformation
, GBR_QosInformation_sequence
);
962 dissect_m3ap_GTP_TEID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
963 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
972 dissect_m3ap_IPAddress(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
973 #line 133 "../../asn1/m3ap/m3ap.cnf"
974 tvbuff_t
*parameter_tvb
=NULL
;
977 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
978 4, 16, TRUE
, ¶meter_tvb
);
984 tvb_len
= tvb_length(parameter_tvb
);
985 proto_tree_add_item(tree
, hf_m3ap_IPAddress
, parameter_tvb
, 0, tvb_len
, ENC_BIG_ENDIAN
);
994 dissect_m3ap_QCI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
995 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
996 0U, 255U, NULL
, FALSE
);
1002 static const per_sequence_t MBMS_E_RAB_QoS_Parameters_sequence
[] = {
1003 { &hf_m3ap_qCI
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_QCI
},
1004 { &hf_m3ap_gbrQosInformation
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_GBR_QosInformation
},
1005 { &hf_m3ap_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
1006 { NULL
, 0, 0, NULL
}
1010 dissect_m3ap_MBMS_E_RAB_QoS_Parameters(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1011 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1012 ett_m3ap_MBMS_E_RAB_QoS_Parameters
, MBMS_E_RAB_QoS_Parameters_sequence
);
1020 dissect_m3ap_MME_MBMS_M3AP_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1021 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1022 0U, 65535U, NULL
, FALSE
);
1030 dissect_m3ap_MCE_MBMS_M3AP_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1031 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1032 0U, 65535U, NULL
, FALSE
);
1038 static const per_sequence_t MBMS_Service_associatedLogicalM3_ConnectionItem_sequence
[] = {
1039 { &hf_m3ap_mME_MBMS_M3AP_ID
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_MME_MBMS_M3AP_ID
},
1040 { &hf_m3ap_mCE_MBMS_M3AP_ID
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_MCE_MBMS_M3AP_ID
},
1041 { &hf_m3ap_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
1042 { NULL
, 0, 0, NULL
}
1046 dissect_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1047 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1048 ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem
, MBMS_Service_associatedLogicalM3_ConnectionItem_sequence
);
1056 dissect_m3ap_MBMSServiceArea1(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1057 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1066 dissect_m3ap_MBMS_Service_Area(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1067 #line 162 "../../asn1/m3ap/m3ap.cnf"
1068 tvbuff_t
*parameter_tvb
=NULL
;
1071 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1072 NO_BOUND
, NO_BOUND
, FALSE
, ¶meter_tvb
);
1078 tvb_len
= tvb_length(parameter_tvb
);
1080 dissect_gtpv2_mbms_service_area(parameter_tvb
, actx
->pinfo
, tree
, actx
->created_item
, tvb_len
, 0, 0);
1089 dissect_m3ap_MBMS_Session_Duration(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1090 #line 176 "../../asn1/m3ap/m3ap.cnf"
1091 tvbuff_t
*parameter_tvb
=NULL
;
1094 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1095 3, 3, FALSE
, ¶meter_tvb
);
1100 tvb_len
= tvb_length(parameter_tvb
);
1102 proto_item_append_text(actx
->created_item
, " ");
1103 dissect_gtpv2_mbms_session_duration(parameter_tvb
, actx
->pinfo
, tree
, actx
->created_item
, tvb_len
, 0, 0);
1112 dissect_m3ap_MBMS_Session_ID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1113 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1122 dissect_m3ap_MCEname(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1123 offset
= dissect_per_PrintableString(tvb
, offset
, actx
, tree
, hf_index
,
1132 dissect_m3ap_MinimumTimeToMBMSDataTransfer(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1133 #line 192 "../../asn1/m3ap/m3ap.cnf"
1134 tvbuff_t
*parameter_tvb
=NULL
;
1137 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1138 1, 1, FALSE
, ¶meter_tvb
);
1144 tvb_len
= tvb_length(parameter_tvb
);
1145 dissect_gtpv2_mbms_time_to_data_xfer(parameter_tvb
, actx
->pinfo
, tree
, actx
->created_item
, tvb_len
, 0, 0);
1152 static const value_string m3ap_TimeToWait_vals
[] = {
1164 dissect_m3ap_TimeToWait(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1165 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1166 6, NULL
, TRUE
, 0, NULL
);
1174 dissect_m3ap_OCTET_STRING_SIZE_3(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1175 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1182 static const per_sequence_t TMGI_sequence
[] = {
1183 { &hf_m3ap_pLMNidentity
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_PLMN_Identity
},
1184 { &hf_m3ap_serviceID
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_OCTET_STRING_SIZE_3
},
1185 { &hf_m3ap_iE_Extensions
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
1186 { NULL
, 0, 0, NULL
}
1190 dissect_m3ap_TMGI(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1191 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1192 ett_m3ap_TMGI
, TMGI_sequence
);
1198 static const per_sequence_t TNL_Information_sequence
[] = {
1199 { &hf_m3ap_iPMCAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_IPAddress
},
1200 { &hf_m3ap_iPSourceAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_IPAddress
},
1201 { &hf_m3ap_gTP_DLTEID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_GTP_TEID
},
1202 { &hf_m3ap_iE_Extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_m3ap_ProtocolExtensionContainer
},
1203 { NULL
, 0, 0, NULL
}
1207 dissect_m3ap_TNL_Information(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1208 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1209 ett_m3ap_TNL_Information
, TNL_Information_sequence
);
1215 static const per_sequence_t MBMSSessionStartRequest_sequence
[] = {
1216 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1217 { NULL
, 0, 0, NULL
}
1221 dissect_m3ap_MBMSSessionStartRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1222 #line 206 "../../asn1/m3ap/m3ap.cnf"
1223 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MBMS Session Start Request ");
1225 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1226 ett_m3ap_MBMSSessionStartRequest
, MBMSSessionStartRequest_sequence
);
1232 static const per_sequence_t MBMSSessionStartResponse_sequence
[] = {
1233 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1234 { NULL
, 0, 0, NULL
}
1238 dissect_m3ap_MBMSSessionStartResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1239 #line 208 "../../asn1/m3ap/m3ap.cnf"
1240 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MBMS Session Start Response ");
1242 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1243 ett_m3ap_MBMSSessionStartResponse
, MBMSSessionStartResponse_sequence
);
1249 static const per_sequence_t MBMSSessionStartFailure_sequence
[] = {
1250 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1251 { NULL
, 0, 0, NULL
}
1255 dissect_m3ap_MBMSSessionStartFailure(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1256 #line 210 "../../asn1/m3ap/m3ap.cnf"
1257 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MBMS Session Start Failure ");
1259 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1260 ett_m3ap_MBMSSessionStartFailure
, MBMSSessionStartFailure_sequence
);
1266 static const per_sequence_t MBMSSessionStopRequest_sequence
[] = {
1267 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1268 { NULL
, 0, 0, NULL
}
1272 dissect_m3ap_MBMSSessionStopRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1273 #line 212 "../../asn1/m3ap/m3ap.cnf"
1274 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MBMS Session Stop Request ");
1276 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1277 ett_m3ap_MBMSSessionStopRequest
, MBMSSessionStopRequest_sequence
);
1283 static const per_sequence_t MBMSSessionStopResponse_sequence
[] = {
1284 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1285 { NULL
, 0, 0, NULL
}
1289 dissect_m3ap_MBMSSessionStopResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1290 #line 214 "../../asn1/m3ap/m3ap.cnf"
1291 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MBMS Session Stop Response ");
1293 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1294 ett_m3ap_MBMSSessionStopResponse
, MBMSSessionStopResponse_sequence
);
1300 static const per_sequence_t MBMSSessionUpdateRequest_sequence
[] = {
1301 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1302 { NULL
, 0, 0, NULL
}
1306 dissect_m3ap_MBMSSessionUpdateRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1307 #line 216 "../../asn1/m3ap/m3ap.cnf"
1308 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MBMS Session Update Request ");
1310 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1311 ett_m3ap_MBMSSessionUpdateRequest
, MBMSSessionUpdateRequest_sequence
);
1317 static const per_sequence_t MBMSSessionUpdateResponse_sequence
[] = {
1318 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1319 { NULL
, 0, 0, NULL
}
1323 dissect_m3ap_MBMSSessionUpdateResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1324 #line 218 "../../asn1/m3ap/m3ap.cnf"
1325 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MBMS Session Update Response ");
1327 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1328 ett_m3ap_MBMSSessionUpdateResponse
, MBMSSessionUpdateResponse_sequence
);
1334 static const per_sequence_t MBMSSessionUpdateFailure_sequence
[] = {
1335 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1336 { NULL
, 0, 0, NULL
}
1340 dissect_m3ap_MBMSSessionUpdateFailure(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1341 #line 220 "../../asn1/m3ap/m3ap.cnf"
1342 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MBMS Session Update Failure ");
1344 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1345 ett_m3ap_MBMSSessionUpdateFailure
, MBMSSessionUpdateFailure_sequence
);
1351 static const per_sequence_t ErrorIndication_sequence
[] = {
1352 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1353 { NULL
, 0, 0, NULL
}
1357 dissect_m3ap_ErrorIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1358 #line 222 "../../asn1/m3ap/m3ap.cnf"
1359 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"Error Indication ");
1361 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1362 ett_m3ap_ErrorIndication
, ErrorIndication_sequence
);
1368 static const per_sequence_t Reset_sequence
[] = {
1369 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1370 { NULL
, 0, 0, NULL
}
1374 dissect_m3ap_Reset(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1375 #line 224 "../../asn1/m3ap/m3ap.cnf"
1376 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"Reset ");
1378 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1379 ett_m3ap_Reset
, Reset_sequence
);
1385 static const value_string m3ap_ResetAll_vals
[] = {
1392 dissect_m3ap_ResetAll(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1393 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1394 1, NULL
, TRUE
, 0, NULL
);
1400 static const per_sequence_t MBMS_Service_associatedLogicalM3_ConnectionListRes_sequence_of
[1] = {
1401 { &hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Single_Container
},
1405 dissect_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1406 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1407 ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes
, MBMS_Service_associatedLogicalM3_ConnectionListRes_sequence_of
,
1408 1, maxNrOfIndividualM3ConnectionsToReset
, FALSE
);
1414 static const value_string m3ap_ResetType_vals
[] = {
1415 { 0, "m3-Interface" },
1416 { 1, "partOfM3-Interface" },
1420 static const per_choice_t ResetType_choice
[] = {
1421 { 0, &hf_m3ap_m3_Interface
, ASN1_EXTENSION_ROOT
, dissect_m3ap_ResetAll
},
1422 { 1, &hf_m3ap_partOfM3_Interface
, ASN1_EXTENSION_ROOT
, dissect_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes
},
1423 { 0, NULL
, 0, NULL
}
1427 dissect_m3ap_ResetType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1428 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1429 ett_m3ap_ResetType
, ResetType_choice
,
1436 static const per_sequence_t ResetAcknowledge_sequence
[] = {
1437 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1438 { NULL
, 0, 0, NULL
}
1442 dissect_m3ap_ResetAcknowledge(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1443 #line 226 "../../asn1/m3ap/m3ap.cnf"
1444 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"Reset Acknowledge ");
1446 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1447 ett_m3ap_ResetAcknowledge
, ResetAcknowledge_sequence
);
1453 static const per_sequence_t MBMS_Service_associatedLogicalM3_ConnectionListResAck_sequence_of
[1] = {
1454 { &hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Single_Container
},
1458 dissect_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1459 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1460 ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck
, MBMS_Service_associatedLogicalM3_ConnectionListResAck_sequence_of
,
1461 1, maxNrOfIndividualM3ConnectionsToReset
, FALSE
);
1467 static const per_sequence_t PrivateMessage_sequence
[] = {
1468 { &hf_m3ap_privateIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_PrivateIE_Container
},
1469 { NULL
, 0, 0, NULL
}
1473 dissect_m3ap_PrivateMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1474 #line 228 "../../asn1/m3ap/m3ap.cnf"
1475 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"Private Message ");
1477 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1478 ett_m3ap_PrivateMessage
, PrivateMessage_sequence
);
1484 static const per_sequence_t M3SetupRequest_sequence
[] = {
1485 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1486 { NULL
, 0, 0, NULL
}
1490 dissect_m3ap_M3SetupRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1491 #line 236 "../../asn1/m3ap/m3ap.cnf"
1492 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"M3 Setup Request ");
1494 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1495 ett_m3ap_M3SetupRequest
, M3SetupRequest_sequence
);
1501 static const per_sequence_t MBMSServiceAreaListItem_sequence_of
[1] = {
1502 { &hf_m3ap_MBMSServiceAreaListItem_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_MBMSServiceArea1
},
1506 dissect_m3ap_MBMSServiceAreaListItem(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1507 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1508 ett_m3ap_MBMSServiceAreaListItem
, MBMSServiceAreaListItem_sequence_of
,
1509 1, maxnoofMBMSServiceAreaIdentitiesPerMCE
, FALSE
);
1515 static const per_sequence_t M3SetupResponse_sequence
[] = {
1516 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1517 { NULL
, 0, 0, NULL
}
1521 dissect_m3ap_M3SetupResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1522 #line 238 "../../asn1/m3ap/m3ap.cnf"
1523 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"M3 Setup Response ");
1525 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1526 ett_m3ap_M3SetupResponse
, M3SetupResponse_sequence
);
1532 static const per_sequence_t M3SetupFailure_sequence
[] = {
1533 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1534 { NULL
, 0, 0, NULL
}
1538 dissect_m3ap_M3SetupFailure(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1539 #line 240 "../../asn1/m3ap/m3ap.cnf"
1540 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"M3 Setup Failure ");
1544 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1545 ett_m3ap_M3SetupFailure
, M3SetupFailure_sequence
);
1551 static const per_sequence_t MCEConfigurationUpdate_sequence
[] = {
1552 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1553 { NULL
, 0, 0, NULL
}
1557 dissect_m3ap_MCEConfigurationUpdate(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1558 #line 230 "../../asn1/m3ap/m3ap.cnf"
1559 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MCE Configuration Update ");
1561 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1562 ett_m3ap_MCEConfigurationUpdate
, MCEConfigurationUpdate_sequence
);
1568 static const per_sequence_t MCEConfigurationUpdateAcknowledge_sequence
[] = {
1569 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1570 { NULL
, 0, 0, NULL
}
1574 dissect_m3ap_MCEConfigurationUpdateAcknowledge(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1575 #line 232 "../../asn1/m3ap/m3ap.cnf"
1576 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MCE Configuration Update Acknowledge ");
1578 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1579 ett_m3ap_MCEConfigurationUpdateAcknowledge
, MCEConfigurationUpdateAcknowledge_sequence
);
1585 static const per_sequence_t MCEConfigurationUpdateFailure_sequence
[] = {
1586 { &hf_m3ap_protocolIEs
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProtocolIE_Container
},
1587 { NULL
, 0, 0, NULL
}
1591 dissect_m3ap_MCEConfigurationUpdateFailure(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1592 #line 234 "../../asn1/m3ap/m3ap.cnf"
1593 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
,"MCE Configuration Update Failure ");
1595 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1596 ett_m3ap_MCEConfigurationUpdateFailure
, MCEConfigurationUpdateFailure_sequence
);
1604 dissect_m3ap_InitiatingMessage_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1605 #line 73 "../../asn1/m3ap/m3ap.cnf"
1606 message_type
= INITIATING_MESSAGE
;
1608 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_InitiatingMessageValue
);
1614 static const per_sequence_t InitiatingMessage_sequence
[] = {
1615 { &hf_m3ap_procedureCode
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProcedureCode
},
1616 { &hf_m3ap_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Criticality
},
1617 { &hf_m3ap_initiatingMessagevalue
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_InitiatingMessage_value
},
1618 { NULL
, 0, 0, NULL
}
1622 dissect_m3ap_InitiatingMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1623 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1624 ett_m3ap_InitiatingMessage
, InitiatingMessage_sequence
);
1632 dissect_m3ap_SuccessfulOutcome_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1633 #line 76 "../../asn1/m3ap/m3ap.cnf"
1634 message_type
= SUCCESSFUL_OUTCOME
;
1636 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_SuccessfulOutcomeValue
);
1642 static const per_sequence_t SuccessfulOutcome_sequence
[] = {
1643 { &hf_m3ap_procedureCode
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProcedureCode
},
1644 { &hf_m3ap_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Criticality
},
1645 { &hf_m3ap_successfulOutcome_value
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_SuccessfulOutcome_value
},
1646 { NULL
, 0, 0, NULL
}
1650 dissect_m3ap_SuccessfulOutcome(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1651 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1652 ett_m3ap_SuccessfulOutcome
, SuccessfulOutcome_sequence
);
1660 dissect_m3ap_UnsuccessfulOutcome_value(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1661 #line 79 "../../asn1/m3ap/m3ap.cnf"
1662 message_type
= UNSUCCESSFUL_OUTCOME
;
1667 offset
= dissect_per_open_type_pdu_new(tvb
, offset
, actx
, tree
, hf_index
, dissect_UnsuccessfulOutcomeValue
);
1673 static const per_sequence_t UnsuccessfulOutcome_sequence
[] = {
1674 { &hf_m3ap_procedureCode
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_ProcedureCode
},
1675 { &hf_m3ap_criticality
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_Criticality
},
1676 { &hf_m3ap_unsuccessfulOutcome_value
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_m3ap_UnsuccessfulOutcome_value
},
1677 { NULL
, 0, 0, NULL
}
1681 dissect_m3ap_UnsuccessfulOutcome(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1682 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1683 ett_m3ap_UnsuccessfulOutcome
, UnsuccessfulOutcome_sequence
);
1689 static const value_string m3ap_M3AP_PDU_vals
[] = {
1690 { 0, "initiatingMessage" },
1691 { 1, "successfulOutcome" },
1692 { 2, "unsuccessfulOutcome" },
1696 static const per_choice_t M3AP_PDU_choice
[] = {
1697 { 0, &hf_m3ap_initiatingMessage
, ASN1_EXTENSION_ROOT
, dissect_m3ap_InitiatingMessage
},
1698 { 1, &hf_m3ap_successfulOutcome
, ASN1_EXTENSION_ROOT
, dissect_m3ap_SuccessfulOutcome
},
1699 { 2, &hf_m3ap_unsuccessfulOutcome
, ASN1_EXTENSION_ROOT
, dissect_m3ap_UnsuccessfulOutcome
},
1700 { 0, NULL
, 0, NULL
}
1704 dissect_m3ap_M3AP_PDU(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1705 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1706 ett_m3ap_M3AP_PDU
, M3AP_PDU_choice
,
1714 static int dissect_Absolute_Time_ofMBMS_Data_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1716 asn1_ctx_t asn1_ctx
;
1717 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1718 offset
= dissect_m3ap_Absolute_Time_ofMBMS_Data(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_Absolute_Time_ofMBMS_Data_PDU
);
1719 offset
+= 7; offset
>>= 3;
1722 static int dissect_AllocationAndRetentionPriority_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1724 asn1_ctx_t asn1_ctx
;
1725 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1726 offset
= dissect_m3ap_AllocationAndRetentionPriority(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_AllocationAndRetentionPriority_PDU
);
1727 offset
+= 7; offset
>>= 3;
1730 static int dissect_Cause_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1732 asn1_ctx_t asn1_ctx
;
1733 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1734 offset
= dissect_m3ap_Cause(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_Cause_PDU
);
1735 offset
+= 7; offset
>>= 3;
1738 static int dissect_CriticalityDiagnostics_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1740 asn1_ctx_t asn1_ctx
;
1741 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1742 offset
= dissect_m3ap_CriticalityDiagnostics(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_CriticalityDiagnostics_PDU
);
1743 offset
+= 7; offset
>>= 3;
1746 static int dissect_Global_MCE_ID_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1748 asn1_ctx_t asn1_ctx
;
1749 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1750 offset
= dissect_m3ap_Global_MCE_ID(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_Global_MCE_ID_PDU
);
1751 offset
+= 7; offset
>>= 3;
1754 static int dissect_MBMS_E_RAB_QoS_Parameters_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1756 asn1_ctx_t asn1_ctx
;
1757 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1758 offset
= dissect_m3ap_MBMS_E_RAB_QoS_Parameters(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMS_E_RAB_QoS_Parameters_PDU
);
1759 offset
+= 7; offset
>>= 3;
1762 static int dissect_MBMS_Service_associatedLogicalM3_ConnectionItem_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1764 asn1_ctx_t asn1_ctx
;
1765 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1766 offset
= dissect_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem_PDU
);
1767 offset
+= 7; offset
>>= 3;
1770 static int dissect_MBMS_Service_Area_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1772 asn1_ctx_t asn1_ctx
;
1773 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1774 offset
= dissect_m3ap_MBMS_Service_Area(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMS_Service_Area_PDU
);
1775 offset
+= 7; offset
>>= 3;
1778 static int dissect_MBMS_Session_Duration_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1780 asn1_ctx_t asn1_ctx
;
1781 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1782 offset
= dissect_m3ap_MBMS_Session_Duration(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMS_Session_Duration_PDU
);
1783 offset
+= 7; offset
>>= 3;
1786 static int dissect_MBMS_Session_ID_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1788 asn1_ctx_t asn1_ctx
;
1789 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1790 offset
= dissect_m3ap_MBMS_Session_ID(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMS_Session_ID_PDU
);
1791 offset
+= 7; offset
>>= 3;
1794 static int dissect_MCE_MBMS_M3AP_ID_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1796 asn1_ctx_t asn1_ctx
;
1797 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1798 offset
= dissect_m3ap_MCE_MBMS_M3AP_ID(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MCE_MBMS_M3AP_ID_PDU
);
1799 offset
+= 7; offset
>>= 3;
1802 static int dissect_MCEname_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1804 asn1_ctx_t asn1_ctx
;
1805 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1806 offset
= dissect_m3ap_MCEname(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MCEname_PDU
);
1807 offset
+= 7; offset
>>= 3;
1810 static int dissect_MinimumTimeToMBMSDataTransfer_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1812 asn1_ctx_t asn1_ctx
;
1813 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1814 offset
= dissect_m3ap_MinimumTimeToMBMSDataTransfer(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MinimumTimeToMBMSDataTransfer_PDU
);
1815 offset
+= 7; offset
>>= 3;
1818 static int dissect_MME_MBMS_M3AP_ID_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1820 asn1_ctx_t asn1_ctx
;
1821 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1822 offset
= dissect_m3ap_MME_MBMS_M3AP_ID(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MME_MBMS_M3AP_ID_PDU
);
1823 offset
+= 7; offset
>>= 3;
1826 static int dissect_TimeToWait_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1828 asn1_ctx_t asn1_ctx
;
1829 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1830 offset
= dissect_m3ap_TimeToWait(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_TimeToWait_PDU
);
1831 offset
+= 7; offset
>>= 3;
1834 static int dissect_TMGI_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1836 asn1_ctx_t asn1_ctx
;
1837 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1838 offset
= dissect_m3ap_TMGI(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_TMGI_PDU
);
1839 offset
+= 7; offset
>>= 3;
1842 static int dissect_TNL_Information_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1844 asn1_ctx_t asn1_ctx
;
1845 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1846 offset
= dissect_m3ap_TNL_Information(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_TNL_Information_PDU
);
1847 offset
+= 7; offset
>>= 3;
1850 static int dissect_MBMSSessionStartRequest_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1852 asn1_ctx_t asn1_ctx
;
1853 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1854 offset
= dissect_m3ap_MBMSSessionStartRequest(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSSessionStartRequest_PDU
);
1855 offset
+= 7; offset
>>= 3;
1858 static int dissect_MBMSSessionStartResponse_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1860 asn1_ctx_t asn1_ctx
;
1861 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1862 offset
= dissect_m3ap_MBMSSessionStartResponse(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSSessionStartResponse_PDU
);
1863 offset
+= 7; offset
>>= 3;
1866 static int dissect_MBMSSessionStartFailure_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1868 asn1_ctx_t asn1_ctx
;
1869 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1870 offset
= dissect_m3ap_MBMSSessionStartFailure(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSSessionStartFailure_PDU
);
1871 offset
+= 7; offset
>>= 3;
1874 static int dissect_MBMSSessionStopRequest_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1876 asn1_ctx_t asn1_ctx
;
1877 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1878 offset
= dissect_m3ap_MBMSSessionStopRequest(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSSessionStopRequest_PDU
);
1879 offset
+= 7; offset
>>= 3;
1882 static int dissect_MBMSSessionStopResponse_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1884 asn1_ctx_t asn1_ctx
;
1885 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1886 offset
= dissect_m3ap_MBMSSessionStopResponse(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSSessionStopResponse_PDU
);
1887 offset
+= 7; offset
>>= 3;
1890 static int dissect_MBMSSessionUpdateRequest_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1892 asn1_ctx_t asn1_ctx
;
1893 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1894 offset
= dissect_m3ap_MBMSSessionUpdateRequest(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSSessionUpdateRequest_PDU
);
1895 offset
+= 7; offset
>>= 3;
1898 static int dissect_MBMSSessionUpdateResponse_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1900 asn1_ctx_t asn1_ctx
;
1901 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1902 offset
= dissect_m3ap_MBMSSessionUpdateResponse(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSSessionUpdateResponse_PDU
);
1903 offset
+= 7; offset
>>= 3;
1906 static int dissect_MBMSSessionUpdateFailure_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1908 asn1_ctx_t asn1_ctx
;
1909 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1910 offset
= dissect_m3ap_MBMSSessionUpdateFailure(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSSessionUpdateFailure_PDU
);
1911 offset
+= 7; offset
>>= 3;
1914 static int dissect_ErrorIndication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1916 asn1_ctx_t asn1_ctx
;
1917 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1918 offset
= dissect_m3ap_ErrorIndication(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_ErrorIndication_PDU
);
1919 offset
+= 7; offset
>>= 3;
1922 static int dissect_Reset_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1924 asn1_ctx_t asn1_ctx
;
1925 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1926 offset
= dissect_m3ap_Reset(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_Reset_PDU
);
1927 offset
+= 7; offset
>>= 3;
1930 static int dissect_ResetType_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1932 asn1_ctx_t asn1_ctx
;
1933 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1934 offset
= dissect_m3ap_ResetType(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_ResetType_PDU
);
1935 offset
+= 7; offset
>>= 3;
1938 static int dissect_ResetAcknowledge_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1940 asn1_ctx_t asn1_ctx
;
1941 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1942 offset
= dissect_m3ap_ResetAcknowledge(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_ResetAcknowledge_PDU
);
1943 offset
+= 7; offset
>>= 3;
1946 static int dissect_MBMS_Service_associatedLogicalM3_ConnectionListResAck_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1948 asn1_ctx_t asn1_ctx
;
1949 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1950 offset
= dissect_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck_PDU
);
1951 offset
+= 7; offset
>>= 3;
1954 static int dissect_PrivateMessage_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1956 asn1_ctx_t asn1_ctx
;
1957 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1958 offset
= dissect_m3ap_PrivateMessage(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_PrivateMessage_PDU
);
1959 offset
+= 7; offset
>>= 3;
1962 static int dissect_M3SetupRequest_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1964 asn1_ctx_t asn1_ctx
;
1965 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1966 offset
= dissect_m3ap_M3SetupRequest(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_M3SetupRequest_PDU
);
1967 offset
+= 7; offset
>>= 3;
1970 static int dissect_MBMSServiceAreaListItem_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1972 asn1_ctx_t asn1_ctx
;
1973 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1974 offset
= dissect_m3ap_MBMSServiceAreaListItem(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MBMSServiceAreaListItem_PDU
);
1975 offset
+= 7; offset
>>= 3;
1978 static int dissect_M3SetupResponse_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1980 asn1_ctx_t asn1_ctx
;
1981 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1982 offset
= dissect_m3ap_M3SetupResponse(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_M3SetupResponse_PDU
);
1983 offset
+= 7; offset
>>= 3;
1986 static int dissect_M3SetupFailure_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1988 asn1_ctx_t asn1_ctx
;
1989 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1990 offset
= dissect_m3ap_M3SetupFailure(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_M3SetupFailure_PDU
);
1991 offset
+= 7; offset
>>= 3;
1994 static int dissect_MCEConfigurationUpdate_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1996 asn1_ctx_t asn1_ctx
;
1997 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
1998 offset
= dissect_m3ap_MCEConfigurationUpdate(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MCEConfigurationUpdate_PDU
);
1999 offset
+= 7; offset
>>= 3;
2002 static int dissect_MCEConfigurationUpdateAcknowledge_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2004 asn1_ctx_t asn1_ctx
;
2005 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
2006 offset
= dissect_m3ap_MCEConfigurationUpdateAcknowledge(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MCEConfigurationUpdateAcknowledge_PDU
);
2007 offset
+= 7; offset
>>= 3;
2010 static int dissect_MCEConfigurationUpdateFailure_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2012 asn1_ctx_t asn1_ctx
;
2013 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
2014 offset
= dissect_m3ap_MCEConfigurationUpdateFailure(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_MCEConfigurationUpdateFailure_PDU
);
2015 offset
+= 7; offset
>>= 3;
2018 static int dissect_M3AP_PDU_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2020 asn1_ctx_t asn1_ctx
;
2021 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
2022 offset
= dissect_m3ap_M3AP_PDU(tvb
, offset
, &asn1_ctx
, tree
, hf_m3ap_M3AP_PDU_PDU
);
2023 offset
+= 7; offset
>>= 3;
2028 /*--- End of included file: packet-m3ap-fn.c ---*/
2029 #line 95 "../../asn1/m3ap/packet-m3ap-template.c"
2031 static int dissect_ProtocolIEFieldValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2033 return (dissector_try_uint(m3ap_ies_dissector_table
, ProtocolIE_ID
, tvb
, pinfo
, tree
)) ? tvb_length(tvb
) : 0;
2036 static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2038 return (dissector_try_uint(m3ap_extension_dissector_table
, ProtocolIE_ID
, tvb
, pinfo
, tree
)) ? tvb_length(tvb
) : 0;
2041 static int dissect_InitiatingMessageValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2043 return (dissector_try_uint(m3ap_proc_imsg_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
)) ? tvb_length(tvb
) : 0;
2046 static int dissect_SuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2048 return (dissector_try_uint(m3ap_proc_sout_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
)) ? tvb_length(tvb
) : 0;
2051 static int dissect_UnsuccessfulOutcomeValue(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2053 return (dissector_try_uint(m3ap_proc_uout_dissector_table
, ProcedureCode
, tvb
, pinfo
, tree
)) ? tvb_length(tvb
) : 0;
2058 dissect_m3ap(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
)
2060 proto_item
*m3ap_item
= NULL
;
2061 proto_tree
*m3ap_tree
= NULL
;
2063 /* make entry in the Protocol column on summary display */
2064 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, PNAME
);
2066 /* create the m3ap protocol tree */
2068 m3ap_item
= proto_tree_add_item(tree
, proto_m3ap
, tvb
, 0, -1, ENC_NA
);
2069 m3ap_tree
= proto_item_add_subtree(m3ap_item
, ett_m3ap
);
2071 dissect_M3AP_PDU_PDU(tvb
, pinfo
, m3ap_tree
, NULL
);
2074 /*--- proto_register_m3ap -------------------------------------------*/
2075 void proto_register_m3ap(void) {
2077 /* List of fields */
2078 static hf_register_info hf
[] = {
2079 { &hf_m3ap_Absolute_Time_ofMBMS_Data_value
,
2080 { "Absolute-Time-ofMBMS-Data-value", "m3ap.Absolute_Time_ofMBMS_Data_value",
2081 FT_STRING
, BASE_NONE
, NULL
, 0,
2084 { &hf_m3ap_IPAddress
,
2085 { "IPAddress", "m3ap.IPAddress",
2086 FT_IPv6
, BASE_NONE
, NULL
, 0,
2091 /*--- Included file: packet-m3ap-hfarr.c ---*/
2092 #line 1 "../../asn1/m3ap/packet-m3ap-hfarr.c"
2093 { &hf_m3ap_Absolute_Time_ofMBMS_Data_PDU
,
2094 { "Absolute-Time-ofMBMS-Data", "m3ap.Absolute_Time_ofMBMS_Data",
2095 FT_BYTES
, BASE_NONE
, NULL
, 0,
2097 { &hf_m3ap_AllocationAndRetentionPriority_PDU
,
2098 { "AllocationAndRetentionPriority", "m3ap.AllocationAndRetentionPriority_element",
2099 FT_NONE
, BASE_NONE
, NULL
, 0,
2101 { &hf_m3ap_Cause_PDU
,
2102 { "Cause", "m3ap.Cause",
2103 FT_UINT32
, BASE_DEC
, VALS(m3ap_Cause_vals
), 0,
2105 { &hf_m3ap_CriticalityDiagnostics_PDU
,
2106 { "CriticalityDiagnostics", "m3ap.CriticalityDiagnostics_element",
2107 FT_NONE
, BASE_NONE
, NULL
, 0,
2109 { &hf_m3ap_Global_MCE_ID_PDU
,
2110 { "Global-MCE-ID", "m3ap.Global_MCE_ID_element",
2111 FT_NONE
, BASE_NONE
, NULL
, 0,
2113 { &hf_m3ap_MBMS_E_RAB_QoS_Parameters_PDU
,
2114 { "MBMS-E-RAB-QoS-Parameters", "m3ap.MBMS_E_RAB_QoS_Parameters_element",
2115 FT_NONE
, BASE_NONE
, NULL
, 0,
2117 { &hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem_PDU
,
2118 { "MBMS-Service-associatedLogicalM3-ConnectionItem", "m3ap.MBMS_Service_associatedLogicalM3_ConnectionItem_element",
2119 FT_NONE
, BASE_NONE
, NULL
, 0,
2121 { &hf_m3ap_MBMS_Service_Area_PDU
,
2122 { "MBMS-Service-Area", "m3ap.MBMS_Service_Area",
2123 FT_BYTES
, BASE_NONE
, NULL
, 0,
2125 { &hf_m3ap_MBMS_Session_Duration_PDU
,
2126 { "MBMS-Session-Duration", "m3ap.MBMS_Session_Duration",
2127 FT_BYTES
, BASE_NONE
, NULL
, 0,
2129 { &hf_m3ap_MBMS_Session_ID_PDU
,
2130 { "MBMS-Session-ID", "m3ap.MBMS_Session_ID",
2131 FT_BYTES
, BASE_NONE
, NULL
, 0,
2133 { &hf_m3ap_MCE_MBMS_M3AP_ID_PDU
,
2134 { "MCE-MBMS-M3AP-ID", "m3ap.MCE_MBMS_M3AP_ID",
2135 FT_UINT32
, BASE_DEC
, NULL
, 0,
2137 { &hf_m3ap_MCEname_PDU
,
2138 { "MCEname", "m3ap.MCEname",
2139 FT_STRING
, BASE_NONE
, NULL
, 0,
2141 { &hf_m3ap_MinimumTimeToMBMSDataTransfer_PDU
,
2142 { "MinimumTimeToMBMSDataTransfer", "m3ap.MinimumTimeToMBMSDataTransfer",
2143 FT_BYTES
, BASE_NONE
, NULL
, 0,
2145 { &hf_m3ap_MME_MBMS_M3AP_ID_PDU
,
2146 { "MME-MBMS-M3AP-ID", "m3ap.MME_MBMS_M3AP_ID",
2147 FT_UINT32
, BASE_DEC
, NULL
, 0,
2149 { &hf_m3ap_TimeToWait_PDU
,
2150 { "TimeToWait", "m3ap.TimeToWait",
2151 FT_UINT32
, BASE_DEC
, VALS(m3ap_TimeToWait_vals
), 0,
2153 { &hf_m3ap_TMGI_PDU
,
2154 { "TMGI", "m3ap.TMGI_element",
2155 FT_NONE
, BASE_NONE
, NULL
, 0,
2157 { &hf_m3ap_TNL_Information_PDU
,
2158 { "TNL-Information", "m3ap.TNL_Information_element",
2159 FT_NONE
, BASE_NONE
, NULL
, 0,
2161 { &hf_m3ap_MBMSSessionStartRequest_PDU
,
2162 { "MBMSSessionStartRequest", "m3ap.MBMSSessionStartRequest_element",
2163 FT_NONE
, BASE_NONE
, NULL
, 0,
2165 { &hf_m3ap_MBMSSessionStartResponse_PDU
,
2166 { "MBMSSessionStartResponse", "m3ap.MBMSSessionStartResponse_element",
2167 FT_NONE
, BASE_NONE
, NULL
, 0,
2169 { &hf_m3ap_MBMSSessionStartFailure_PDU
,
2170 { "MBMSSessionStartFailure", "m3ap.MBMSSessionStartFailure_element",
2171 FT_NONE
, BASE_NONE
, NULL
, 0,
2173 { &hf_m3ap_MBMSSessionStopRequest_PDU
,
2174 { "MBMSSessionStopRequest", "m3ap.MBMSSessionStopRequest_element",
2175 FT_NONE
, BASE_NONE
, NULL
, 0,
2177 { &hf_m3ap_MBMSSessionStopResponse_PDU
,
2178 { "MBMSSessionStopResponse", "m3ap.MBMSSessionStopResponse_element",
2179 FT_NONE
, BASE_NONE
, NULL
, 0,
2181 { &hf_m3ap_MBMSSessionUpdateRequest_PDU
,
2182 { "MBMSSessionUpdateRequest", "m3ap.MBMSSessionUpdateRequest_element",
2183 FT_NONE
, BASE_NONE
, NULL
, 0,
2185 { &hf_m3ap_MBMSSessionUpdateResponse_PDU
,
2186 { "MBMSSessionUpdateResponse", "m3ap.MBMSSessionUpdateResponse_element",
2187 FT_NONE
, BASE_NONE
, NULL
, 0,
2189 { &hf_m3ap_MBMSSessionUpdateFailure_PDU
,
2190 { "MBMSSessionUpdateFailure", "m3ap.MBMSSessionUpdateFailure_element",
2191 FT_NONE
, BASE_NONE
, NULL
, 0,
2193 { &hf_m3ap_ErrorIndication_PDU
,
2194 { "ErrorIndication", "m3ap.ErrorIndication_element",
2195 FT_NONE
, BASE_NONE
, NULL
, 0,
2197 { &hf_m3ap_Reset_PDU
,
2198 { "Reset", "m3ap.Reset_element",
2199 FT_NONE
, BASE_NONE
, NULL
, 0,
2201 { &hf_m3ap_ResetType_PDU
,
2202 { "ResetType", "m3ap.ResetType",
2203 FT_UINT32
, BASE_DEC
, VALS(m3ap_ResetType_vals
), 0,
2205 { &hf_m3ap_ResetAcknowledge_PDU
,
2206 { "ResetAcknowledge", "m3ap.ResetAcknowledge_element",
2207 FT_NONE
, BASE_NONE
, NULL
, 0,
2209 { &hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck_PDU
,
2210 { "MBMS-Service-associatedLogicalM3-ConnectionListResAck", "m3ap.MBMS_Service_associatedLogicalM3_ConnectionListResAck",
2211 FT_UINT32
, BASE_DEC
, NULL
, 0,
2213 { &hf_m3ap_PrivateMessage_PDU
,
2214 { "PrivateMessage", "m3ap.PrivateMessage_element",
2215 FT_NONE
, BASE_NONE
, NULL
, 0,
2217 { &hf_m3ap_M3SetupRequest_PDU
,
2218 { "M3SetupRequest", "m3ap.M3SetupRequest_element",
2219 FT_NONE
, BASE_NONE
, NULL
, 0,
2221 { &hf_m3ap_MBMSServiceAreaListItem_PDU
,
2222 { "MBMSServiceAreaListItem", "m3ap.MBMSServiceAreaListItem",
2223 FT_UINT32
, BASE_DEC
, NULL
, 0,
2225 { &hf_m3ap_M3SetupResponse_PDU
,
2226 { "M3SetupResponse", "m3ap.M3SetupResponse_element",
2227 FT_NONE
, BASE_NONE
, NULL
, 0,
2229 { &hf_m3ap_M3SetupFailure_PDU
,
2230 { "M3SetupFailure", "m3ap.M3SetupFailure_element",
2231 FT_NONE
, BASE_NONE
, NULL
, 0,
2233 { &hf_m3ap_MCEConfigurationUpdate_PDU
,
2234 { "MCEConfigurationUpdate", "m3ap.MCEConfigurationUpdate_element",
2235 FT_NONE
, BASE_NONE
, NULL
, 0,
2237 { &hf_m3ap_MCEConfigurationUpdateAcknowledge_PDU
,
2238 { "MCEConfigurationUpdateAcknowledge", "m3ap.MCEConfigurationUpdateAcknowledge_element",
2239 FT_NONE
, BASE_NONE
, NULL
, 0,
2241 { &hf_m3ap_MCEConfigurationUpdateFailure_PDU
,
2242 { "MCEConfigurationUpdateFailure", "m3ap.MCEConfigurationUpdateFailure_element",
2243 FT_NONE
, BASE_NONE
, NULL
, 0,
2245 { &hf_m3ap_M3AP_PDU_PDU
,
2246 { "M3AP-PDU", "m3ap.M3AP_PDU",
2247 FT_UINT32
, BASE_DEC
, VALS(m3ap_M3AP_PDU_vals
), 0,
2250 { "local", "m3ap.local",
2251 FT_UINT32
, BASE_DEC
, NULL
, 0,
2252 "INTEGER_0_maxPrivateIEs", HFILL
}},
2254 { "global", "m3ap.global",
2255 FT_OID
, BASE_NONE
, NULL
, 0,
2256 "OBJECT_IDENTIFIER", HFILL
}},
2257 { &hf_m3ap_ProtocolIE_Container_item
,
2258 { "ProtocolIE-Field", "m3ap.ProtocolIE_Field_element",
2259 FT_NONE
, BASE_NONE
, NULL
, 0,
2263 FT_UINT32
, BASE_DEC
|BASE_EXT_STRING
, &m3ap_ProtocolIE_ID_vals_ext
, 0,
2264 "ProtocolIE_ID", HFILL
}},
2265 { &hf_m3ap_criticality
,
2266 { "criticality", "m3ap.criticality",
2267 FT_UINT32
, BASE_DEC
, VALS(m3ap_Criticality_vals
), 0,
2269 { &hf_m3ap_ie_field_value
,
2270 { "value", "m3ap.value_element",
2271 FT_NONE
, BASE_NONE
, NULL
, 0,
2272 "T_ie_field_value", HFILL
}},
2273 { &hf_m3ap_ProtocolIE_ContainerList_item
,
2274 { "ProtocolIE-Container", "m3ap.ProtocolIE_Container",
2275 FT_UINT32
, BASE_DEC
, NULL
, 0,
2277 { &hf_m3ap_ProtocolExtensionContainer_item
,
2278 { "ProtocolExtensionField", "m3ap.ProtocolExtensionField_element",
2279 FT_NONE
, BASE_NONE
, NULL
, 0,
2283 FT_UINT32
, BASE_DEC
|BASE_EXT_STRING
, &m3ap_ProtocolIE_ID_vals_ext
, 0,
2284 "ProtocolIE_ID", HFILL
}},
2285 { &hf_m3ap_extensionValue
,
2286 { "extensionValue", "m3ap.extensionValue_element",
2287 FT_NONE
, BASE_NONE
, NULL
, 0,
2289 { &hf_m3ap_PrivateIE_Container_item
,
2290 { "PrivateIE-Field", "m3ap.PrivateIE_Field_element",
2291 FT_NONE
, BASE_NONE
, NULL
, 0,
2293 { &hf_m3ap_private_id
,
2295 FT_UINT32
, BASE_DEC
, VALS(m3ap_PrivateIE_ID_vals
), 0,
2296 "PrivateIE_ID", HFILL
}},
2297 { &hf_m3ap_private_value
,
2298 { "value", "m3ap.value_element",
2299 FT_NONE
, BASE_NONE
, NULL
, 0,
2300 "T_private_value", HFILL
}},
2301 { &hf_m3ap_priorityLevel
,
2302 { "priorityLevel", "m3ap.priorityLevel",
2303 FT_UINT32
, BASE_DEC
, VALS(m3ap_PriorityLevel_vals
), 0,
2305 { &hf_m3ap_pre_emptionCapability
,
2306 { "pre-emptionCapability", "m3ap.pre_emptionCapability",
2307 FT_UINT32
, BASE_DEC
, VALS(m3ap_Pre_emptionCapability_vals
), 0,
2309 { &hf_m3ap_pre_emptionVulnerability
,
2310 { "pre-emptionVulnerability", "m3ap.pre_emptionVulnerability",
2311 FT_UINT32
, BASE_DEC
, VALS(m3ap_Pre_emptionVulnerability_vals
), 0,
2313 { &hf_m3ap_iE_Extensions
,
2314 { "iE-Extensions", "m3ap.iE_Extensions",
2315 FT_UINT32
, BASE_DEC
, NULL
, 0,
2316 "ProtocolExtensionContainer", HFILL
}},
2317 { &hf_m3ap_radioNetwork
,
2318 { "radioNetwork", "m3ap.radioNetwork",
2319 FT_UINT32
, BASE_DEC
, VALS(m3ap_CauseRadioNetwork_vals
), 0,
2320 "CauseRadioNetwork", HFILL
}},
2321 { &hf_m3ap_transport
,
2322 { "transport", "m3ap.transport",
2323 FT_UINT32
, BASE_DEC
, VALS(m3ap_CauseTransport_vals
), 0,
2324 "CauseTransport", HFILL
}},
2326 { "nAS", "m3ap.nAS",
2327 FT_UINT32
, BASE_DEC
, VALS(m3ap_CauseNAS_vals
), 0,
2328 "CauseNAS", HFILL
}},
2329 { &hf_m3ap_protocol
,
2330 { "protocol", "m3ap.protocol",
2331 FT_UINT32
, BASE_DEC
, VALS(m3ap_CauseProtocol_vals
), 0,
2332 "CauseProtocol", HFILL
}},
2334 { "misc", "m3ap.misc",
2335 FT_UINT32
, BASE_DEC
, VALS(m3ap_CauseMisc_vals
), 0,
2336 "CauseMisc", HFILL
}},
2337 { &hf_m3ap_procedureCode
,
2338 { "procedureCode", "m3ap.procedureCode",
2339 FT_UINT32
, BASE_DEC
|BASE_EXT_STRING
, &m3ap_ProcedureCode_vals_ext
, 0,
2341 { &hf_m3ap_triggeringMessage
,
2342 { "triggeringMessage", "m3ap.triggeringMessage",
2343 FT_UINT32
, BASE_DEC
, VALS(m3ap_TriggeringMessage_vals
), 0,
2345 { &hf_m3ap_procedureCriticality
,
2346 { "procedureCriticality", "m3ap.procedureCriticality",
2347 FT_UINT32
, BASE_DEC
, VALS(m3ap_Criticality_vals
), 0,
2348 "Criticality", HFILL
}},
2349 { &hf_m3ap_iEsCriticalityDiagnostics
,
2350 { "iEsCriticalityDiagnostics", "m3ap.iEsCriticalityDiagnostics",
2351 FT_UINT32
, BASE_DEC
, NULL
, 0,
2352 "CriticalityDiagnostics_IE_List", HFILL
}},
2353 { &hf_m3ap_CriticalityDiagnostics_IE_List_item
,
2354 { "CriticalityDiagnostics-IE-List item", "m3ap.CriticalityDiagnostics_IE_List_item_element",
2355 FT_NONE
, BASE_NONE
, NULL
, 0,
2357 { &hf_m3ap_iECriticality
,
2358 { "iECriticality", "m3ap.iECriticality",
2359 FT_UINT32
, BASE_DEC
, VALS(m3ap_Criticality_vals
), 0,
2360 "Criticality", HFILL
}},
2362 { "iE-ID", "m3ap.iE_ID",
2363 FT_UINT32
, BASE_DEC
|BASE_EXT_STRING
, &m3ap_ProtocolIE_ID_vals_ext
, 0,
2364 "ProtocolIE_ID", HFILL
}},
2365 { &hf_m3ap_typeOfError
,
2366 { "typeOfError", "m3ap.typeOfError",
2367 FT_UINT32
, BASE_DEC
, VALS(m3ap_TypeOfError_vals
), 0,
2369 { &hf_m3ap_pLMN_Identity
,
2370 { "pLMN-Identity", "m3ap.pLMN_Identity",
2371 FT_BYTES
, BASE_NONE
, NULL
, 0,
2374 { "mCE-ID", "m3ap.mCE_ID",
2375 FT_BYTES
, BASE_NONE
, NULL
, 0,
2377 { &hf_m3ap_extendedMCE_ID
,
2378 { "extendedMCE-ID", "m3ap.extendedMCE_ID",
2379 FT_BYTES
, BASE_NONE
, NULL
, 0,
2381 { &hf_m3ap_mBMS_E_RAB_MaximumBitrateDL
,
2382 { "mBMS-E-RAB-MaximumBitrateDL", "m3ap.mBMS_E_RAB_MaximumBitrateDL",
2383 FT_UINT64
, BASE_DEC
, NULL
, 0,
2384 "BitRate", HFILL
}},
2385 { &hf_m3ap_mBMS_E_RAB_GuaranteedBitrateDL
,
2386 { "mBMS-E-RAB-GuaranteedBitrateDL", "m3ap.mBMS_E_RAB_GuaranteedBitrateDL",
2387 FT_UINT64
, BASE_DEC
, NULL
, 0,
2388 "BitRate", HFILL
}},
2390 { "qCI", "m3ap.qCI",
2391 FT_UINT32
, BASE_DEC
, NULL
, 0,
2393 { &hf_m3ap_gbrQosInformation
,
2394 { "gbrQosInformation", "m3ap.gbrQosInformation_element",
2395 FT_NONE
, BASE_NONE
, NULL
, 0,
2396 "GBR_QosInformation", HFILL
}},
2397 { &hf_m3ap_mME_MBMS_M3AP_ID
,
2398 { "mME-MBMS-M3AP-ID", "m3ap.mME_MBMS_M3AP_ID",
2399 FT_UINT32
, BASE_DEC
, NULL
, 0,
2401 { &hf_m3ap_mCE_MBMS_M3AP_ID
,
2402 { "mCE-MBMS-M3AP-ID", "m3ap.mCE_MBMS_M3AP_ID",
2403 FT_UINT32
, BASE_DEC
, NULL
, 0,
2405 { &hf_m3ap_pLMNidentity
,
2406 { "pLMNidentity", "m3ap.pLMNidentity",
2407 FT_BYTES
, BASE_NONE
, NULL
, 0,
2408 "PLMN_Identity", HFILL
}},
2409 { &hf_m3ap_serviceID
,
2410 { "serviceID", "m3ap.serviceID",
2411 FT_BYTES
, BASE_NONE
, NULL
, 0,
2412 "OCTET_STRING_SIZE_3", HFILL
}},
2413 { &hf_m3ap_iPMCAddress
,
2414 { "iPMCAddress", "m3ap.iPMCAddress",
2415 FT_BYTES
, BASE_NONE
, NULL
, 0,
2416 "IPAddress", HFILL
}},
2417 { &hf_m3ap_iPSourceAddress
,
2418 { "iPSourceAddress", "m3ap.iPSourceAddress",
2419 FT_BYTES
, BASE_NONE
, NULL
, 0,
2420 "IPAddress", HFILL
}},
2421 { &hf_m3ap_gTP_DLTEID
,
2422 { "gTP-DLTEID", "m3ap.gTP_DLTEID",
2423 FT_BYTES
, BASE_NONE
, NULL
, 0,
2424 "GTP_TEID", HFILL
}},
2425 { &hf_m3ap_protocolIEs
,
2426 { "protocolIEs", "m3ap.protocolIEs",
2427 FT_UINT32
, BASE_DEC
, NULL
, 0,
2428 "ProtocolIE_Container", HFILL
}},
2429 { &hf_m3ap_m3_Interface
,
2430 { "m3-Interface", "m3ap.m3_Interface",
2431 FT_UINT32
, BASE_DEC
, VALS(m3ap_ResetAll_vals
), 0,
2432 "ResetAll", HFILL
}},
2433 { &hf_m3ap_partOfM3_Interface
,
2434 { "partOfM3-Interface", "m3ap.partOfM3_Interface",
2435 FT_UINT32
, BASE_DEC
, NULL
, 0,
2436 "MBMS_Service_associatedLogicalM3_ConnectionListRes", HFILL
}},
2437 { &hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes_item
,
2438 { "ProtocolIE-Single-Container", "m3ap.ProtocolIE_Single_Container_element",
2439 FT_NONE
, BASE_NONE
, NULL
, 0,
2441 { &hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck_item
,
2442 { "ProtocolIE-Single-Container", "m3ap.ProtocolIE_Single_Container_element",
2443 FT_NONE
, BASE_NONE
, NULL
, 0,
2445 { &hf_m3ap_privateIEs
,
2446 { "privateIEs", "m3ap.privateIEs",
2447 FT_UINT32
, BASE_DEC
, NULL
, 0,
2448 "PrivateIE_Container", HFILL
}},
2449 { &hf_m3ap_MBMSServiceAreaListItem_item
,
2450 { "MBMSServiceArea1", "m3ap.MBMSServiceArea1",
2451 FT_BYTES
, BASE_NONE
, NULL
, 0,
2453 { &hf_m3ap_initiatingMessage
,
2454 { "initiatingMessage", "m3ap.initiatingMessage_element",
2455 FT_NONE
, BASE_NONE
, NULL
, 0,
2457 { &hf_m3ap_successfulOutcome
,
2458 { "successfulOutcome", "m3ap.successfulOutcome_element",
2459 FT_NONE
, BASE_NONE
, NULL
, 0,
2461 { &hf_m3ap_unsuccessfulOutcome
,
2462 { "unsuccessfulOutcome", "m3ap.unsuccessfulOutcome_element",
2463 FT_NONE
, BASE_NONE
, NULL
, 0,
2465 { &hf_m3ap_initiatingMessagevalue
,
2466 { "value", "m3ap.value_element",
2467 FT_NONE
, BASE_NONE
, NULL
, 0,
2468 "InitiatingMessage_value", HFILL
}},
2469 { &hf_m3ap_successfulOutcome_value
,
2470 { "value", "m3ap.value_element",
2471 FT_NONE
, BASE_NONE
, NULL
, 0,
2472 "SuccessfulOutcome_value", HFILL
}},
2473 { &hf_m3ap_unsuccessfulOutcome_value
,
2474 { "value", "m3ap.value_element",
2475 FT_NONE
, BASE_NONE
, NULL
, 0,
2476 "UnsuccessfulOutcome_value", HFILL
}},
2478 /*--- End of included file: packet-m3ap-hfarr.c ---*/
2479 #line 156 "../../asn1/m3ap/packet-m3ap-template.c"
2482 /* List of subtrees */
2483 static gint
*ett
[] = {
2486 /*--- Included file: packet-m3ap-ettarr.c ---*/
2487 #line 1 "../../asn1/m3ap/packet-m3ap-ettarr.c"
2488 &ett_m3ap_PrivateIE_ID
,
2489 &ett_m3ap_ProtocolIE_Container
,
2490 &ett_m3ap_ProtocolIE_Field
,
2491 &ett_m3ap_ProtocolIE_ContainerList
,
2492 &ett_m3ap_ProtocolExtensionContainer
,
2493 &ett_m3ap_ProtocolExtensionField
,
2494 &ett_m3ap_PrivateIE_Container
,
2495 &ett_m3ap_PrivateIE_Field
,
2496 &ett_m3ap_AllocationAndRetentionPriority
,
2498 &ett_m3ap_CriticalityDiagnostics
,
2499 &ett_m3ap_CriticalityDiagnostics_IE_List
,
2500 &ett_m3ap_CriticalityDiagnostics_IE_List_item
,
2501 &ett_m3ap_Global_MCE_ID
,
2502 &ett_m3ap_GBR_QosInformation
,
2503 &ett_m3ap_MBMS_E_RAB_QoS_Parameters
,
2504 &ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem
,
2506 &ett_m3ap_TNL_Information
,
2507 &ett_m3ap_MBMSSessionStartRequest
,
2508 &ett_m3ap_MBMSSessionStartResponse
,
2509 &ett_m3ap_MBMSSessionStartFailure
,
2510 &ett_m3ap_MBMSSessionStopRequest
,
2511 &ett_m3ap_MBMSSessionStopResponse
,
2512 &ett_m3ap_MBMSSessionUpdateRequest
,
2513 &ett_m3ap_MBMSSessionUpdateResponse
,
2514 &ett_m3ap_MBMSSessionUpdateFailure
,
2515 &ett_m3ap_ErrorIndication
,
2517 &ett_m3ap_ResetType
,
2518 &ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes
,
2519 &ett_m3ap_ResetAcknowledge
,
2520 &ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck
,
2521 &ett_m3ap_PrivateMessage
,
2522 &ett_m3ap_M3SetupRequest
,
2523 &ett_m3ap_MBMSServiceAreaListItem
,
2524 &ett_m3ap_M3SetupResponse
,
2525 &ett_m3ap_M3SetupFailure
,
2526 &ett_m3ap_MCEConfigurationUpdate
,
2527 &ett_m3ap_MCEConfigurationUpdateAcknowledge
,
2528 &ett_m3ap_MCEConfigurationUpdateFailure
,
2530 &ett_m3ap_InitiatingMessage
,
2531 &ett_m3ap_SuccessfulOutcome
,
2532 &ett_m3ap_UnsuccessfulOutcome
,
2534 /*--- End of included file: packet-m3ap-ettarr.c ---*/
2535 #line 162 "../../asn1/m3ap/packet-m3ap-template.c"
2539 /* Register protocol */
2540 proto_m3ap
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
2541 /* Register fields and subtrees */
2542 proto_register_field_array(proto_m3ap
, hf
, array_length(hf
));
2543 proto_register_subtree_array(ett
, array_length(ett
));
2545 /* Register dissector tables */
2546 m3ap_ies_dissector_table
= register_dissector_table("m3ap.ies", "M3AP-PROTOCOL-IES", FT_UINT32
, BASE_DEC
);
2547 m3ap_extension_dissector_table
= register_dissector_table("m3ap.extension", "M3AP-PROTOCOL-EXTENSION", FT_UINT32
, BASE_DEC
);
2548 m3ap_proc_imsg_dissector_table
= register_dissector_table("m3ap.proc.imsg", "M3AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32
, BASE_DEC
);
2549 m3ap_proc_sout_dissector_table
= register_dissector_table("m3ap.proc.sout", "M3AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32
, BASE_DEC
);
2550 m3ap_proc_uout_dissector_table
= register_dissector_table("m3ap.proc.uout", "M3AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32
, BASE_DEC
);
2554 /*--- proto_reg_handoff_m3ap ---------------------------------------*/
2556 proto_reg_handoff_m3ap(void)
2558 static gboolean inited
= FALSE
;
2559 static guint SctpPort
;
2562 m3ap_handle
= create_dissector_handle(dissect_m3ap
, proto_m3ap
);
2563 dissector_add_uint("sctp.ppi", PROTO_3GPP_M3AP_PROTOCOL_ID
, m3ap_handle
);
2566 /*--- Included file: packet-m3ap-dis-tab.c ---*/
2567 #line 1 "../../asn1/m3ap/packet-m3ap-dis-tab.c"
2568 dissector_add_uint("m3ap.ies", id_MME_MBMS_M3AP_ID
, new_create_dissector_handle(dissect_MME_MBMS_M3AP_ID_PDU
, proto_m3ap
));
2569 dissector_add_uint("m3ap.ies", id_MCE_MBMS_M3AP_ID
, new_create_dissector_handle(dissect_MCE_MBMS_M3AP_ID_PDU
, proto_m3ap
));
2570 dissector_add_uint("m3ap.ies", id_TMGI
, new_create_dissector_handle(dissect_TMGI_PDU
, proto_m3ap
));
2571 dissector_add_uint("m3ap.ies", id_MBMS_Session_ID
, new_create_dissector_handle(dissect_MBMS_Session_ID_PDU
, proto_m3ap
));
2572 dissector_add_uint("m3ap.ies", id_MBMS_E_RAB_QoS_Parameters
, new_create_dissector_handle(dissect_MBMS_E_RAB_QoS_Parameters_PDU
, proto_m3ap
));
2573 dissector_add_uint("m3ap.ies", id_MBMS_Session_Duration
, new_create_dissector_handle(dissect_MBMS_Session_Duration_PDU
, proto_m3ap
));
2574 dissector_add_uint("m3ap.ies", id_MBMS_Service_Area
, new_create_dissector_handle(dissect_MBMS_Service_Area_PDU
, proto_m3ap
));
2575 dissector_add_uint("m3ap.ies", id_TNL_Information
, new_create_dissector_handle(dissect_TNL_Information_PDU
, proto_m3ap
));
2576 dissector_add_uint("m3ap.ies", id_CriticalityDiagnostics
, new_create_dissector_handle(dissect_CriticalityDiagnostics_PDU
, proto_m3ap
));
2577 dissector_add_uint("m3ap.ies", id_Cause
, new_create_dissector_handle(dissect_Cause_PDU
, proto_m3ap
));
2578 dissector_add_uint("m3ap.ies", id_TimeToWait
, new_create_dissector_handle(dissect_TimeToWait_PDU
, proto_m3ap
));
2579 dissector_add_uint("m3ap.ies", id_ResetType
, new_create_dissector_handle(dissect_ResetType_PDU
, proto_m3ap
));
2580 dissector_add_uint("m3ap.ies", id_MBMS_Service_associatedLogicalM3_ConnectionItem
, new_create_dissector_handle(dissect_MBMS_Service_associatedLogicalM3_ConnectionItem_PDU
, proto_m3ap
));
2581 dissector_add_uint("m3ap.ies", id_MBMS_Service_associatedLogicalM3_ConnectionListResAck
, new_create_dissector_handle(dissect_MBMS_Service_associatedLogicalM3_ConnectionListResAck_PDU
, proto_m3ap
));
2582 dissector_add_uint("m3ap.ies", id_MinimumTimeToMBMSDataTransfer
, new_create_dissector_handle(dissect_MinimumTimeToMBMSDataTransfer_PDU
, proto_m3ap
));
2583 dissector_add_uint("m3ap.ies", id_AllocationAndRetentionPriority
, new_create_dissector_handle(dissect_AllocationAndRetentionPriority_PDU
, proto_m3ap
));
2584 dissector_add_uint("m3ap.ies", id_Global_MCE_ID
, new_create_dissector_handle(dissect_Global_MCE_ID_PDU
, proto_m3ap
));
2585 dissector_add_uint("m3ap.ies", id_MCEname
, new_create_dissector_handle(dissect_MCEname_PDU
, proto_m3ap
));
2586 dissector_add_uint("m3ap.ies", id_MBMSServiceAreaList
, new_create_dissector_handle(dissect_MBMSServiceAreaListItem_PDU
, proto_m3ap
));
2587 dissector_add_uint("m3ap.ies", id_Time_ofMBMS_DataTransfer
, new_create_dissector_handle(dissect_Absolute_Time_ofMBMS_Data_PDU
, proto_m3ap
));
2588 dissector_add_uint("m3ap.ies", id_Time_ofMBMS_DataStop
, new_create_dissector_handle(dissect_Absolute_Time_ofMBMS_Data_PDU
, proto_m3ap
));
2589 dissector_add_uint("m3ap.proc.imsg", id_mBMSsessionStart
, new_create_dissector_handle(dissect_MBMSSessionStartRequest_PDU
, proto_m3ap
));
2590 dissector_add_uint("m3ap.proc.sout", id_mBMSsessionStart
, new_create_dissector_handle(dissect_MBMSSessionStartResponse_PDU
, proto_m3ap
));
2591 dissector_add_uint("m3ap.proc.uout", id_mBMSsessionStart
, new_create_dissector_handle(dissect_MBMSSessionStartFailure_PDU
, proto_m3ap
));
2592 dissector_add_uint("m3ap.proc.imsg", id_mBMSsessionStop
, new_create_dissector_handle(dissect_MBMSSessionStopRequest_PDU
, proto_m3ap
));
2593 dissector_add_uint("m3ap.proc.sout", id_mBMSsessionStop
, new_create_dissector_handle(dissect_MBMSSessionStopResponse_PDU
, proto_m3ap
));
2594 dissector_add_uint("m3ap.proc.imsg", id_mBMSsessionUpdate
, new_create_dissector_handle(dissect_MBMSSessionUpdateRequest_PDU
, proto_m3ap
));
2595 dissector_add_uint("m3ap.proc.sout", id_mBMSsessionUpdate
, new_create_dissector_handle(dissect_MBMSSessionUpdateResponse_PDU
, proto_m3ap
));
2596 dissector_add_uint("m3ap.proc.uout", id_mBMSsessionUpdate
, new_create_dissector_handle(dissect_MBMSSessionUpdateFailure_PDU
, proto_m3ap
));
2597 dissector_add_uint("m3ap.proc.imsg", id_errorIndication
, new_create_dissector_handle(dissect_ErrorIndication_PDU
, proto_m3ap
));
2598 dissector_add_uint("m3ap.proc.imsg", id_Reset
, new_create_dissector_handle(dissect_Reset_PDU
, proto_m3ap
));
2599 dissector_add_uint("m3ap.proc.sout", id_Reset
, new_create_dissector_handle(dissect_ResetAcknowledge_PDU
, proto_m3ap
));
2600 dissector_add_uint("m3ap.proc.imsg", id_privateMessage
, new_create_dissector_handle(dissect_PrivateMessage_PDU
, proto_m3ap
));
2601 dissector_add_uint("m3ap.proc.imsg", id_mCEConfigurationUpdate
, new_create_dissector_handle(dissect_MCEConfigurationUpdate_PDU
, proto_m3ap
));
2602 dissector_add_uint("m3ap.proc.sout", id_mCEConfigurationUpdate
, new_create_dissector_handle(dissect_MCEConfigurationUpdateAcknowledge_PDU
, proto_m3ap
));
2603 dissector_add_uint("m3ap.proc.uout", id_mCEConfigurationUpdate
, new_create_dissector_handle(dissect_MCEConfigurationUpdateFailure_PDU
, proto_m3ap
));
2604 dissector_add_uint("m3ap.proc.imsg", id_m3Setup
, new_create_dissector_handle(dissect_M3SetupRequest_PDU
, proto_m3ap
));
2605 dissector_add_uint("m3ap.proc.sout", id_m3Setup
, new_create_dissector_handle(dissect_M3SetupResponse_PDU
, proto_m3ap
));
2606 dissector_add_uint("m3ap.proc.uout", id_m3Setup
, new_create_dissector_handle(dissect_M3SetupFailure_PDU
, proto_m3ap
));
2609 /*--- End of included file: packet-m3ap-dis-tab.c ---*/
2610 #line 192 "../../asn1/m3ap/packet-m3ap-template.c"
2611 dissector_add_uint("m3ap.extension", 17, new_create_dissector_handle(dissect_AllocationAndRetentionPriority_PDU
, proto_m3ap
));
2614 if (SctpPort
!= 0) {
2615 dissector_delete_uint("sctp.port", SctpPort
, m3ap_handle
);
2619 SctpPort
= global_m3ap_port
;
2620 if (SctpPort
!= 0) {
2621 dissector_add_uint("sctp.port", SctpPort
, m3ap_handle
);