Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-gsm_map.c
blob6583d217fa75b2ba504f32ae06508fe44a5ae0ff
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-gsm_map.c */
4 /* asn2wrs.py -b -q -L -c ./gsm_map.cnf -s ./packet-gsm_map-template -D . -O ../.. ../ros/Remote-Operations-Information-Objects.asn MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn MAP-ExtensionDataTypes.asn MAP-CommonDataTypes.asn MAP-SS-DataTypes.asn MAP-ER-DataTypes.asn MAP-SM-DataTypes.asn MAP-OM-DataTypes.asn MAP-MS-DataTypes.asn MAP-CH-DataTypes.asn MAP-LCS-DataTypes.asn MAP-GR-DataTypes.asn MAP-DialogueInformation.asn MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn MAP-Errors.asn MAP-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn Ericsson.asn Nokia.asn */
6 /* XXX see bug 1852:
8 * packet-gsm_map.c: There are 1174 display filter fields registered. Most are
9 * prefixed appropriately as "gsm_map", but many others are prefixed as
10 * "gsm_old", or even "gad", "gsm_ss", or with no prefix at all. I don't know
11 * if the ones with "gsm_old" are simply obsolete display filter fields or if
12 * they should be prefixed as "gsm_map.old." or what. Similar uncertainties
13 * for the others. Someone more knowledgeable than I am with respect to this
14 * dissector should provide a patch for it.
17 /* packet-gsm_map-template.c
18 * Routines for GSM MobileApplication packet dissection
19 * including GSM SS.
20 * Copyright 2004 - 2010 , Anders Broman <anders.broman [AT] ericsson.com>
21 * Based on the dissector by:
22 * Felix Fei <felix.fei [AT] utstar.com>
23 * and Michael Lum <mlum [AT] telostech.com>
25 * Wireshark - Network traffic analyzer
26 * By Gerald Combs <gerald@wireshark.org>
27 * Copyright 1998 Gerald Combs
29 * SPDX-License-Identifier: GPL-2.0-or-later
30 * References GSM MAP:
31 * ETSI TS 129 002
32 * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7)
33 * Updated to ETSI TS 129 002 V8.4.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8)
34 * References GSM SS
35 * References: 3GPP TS 24.080
38 #include "config.h"
40 #include <stdlib.h>
42 #include <epan/packet.h>
43 #include <epan/prefs.h>
44 #include <epan/stat_tap_ui.h>
45 #include <epan/tap.h>
46 #include <epan/oids.h>
47 #include <epan/expert.h>
48 #include <epan/proto_data.h>
49 #include <epan/conversation.h>
50 #include <wsutil/strtoi.h>
51 #include <epan/tfs.h>
52 #include <wsutil/array.h>
54 #include <epan/asn1.h>
55 #include "packet-ber.h"
56 #include "packet-per.h"
57 #include "packet-q931.h"
58 #include "packet-gsm_map.h"
59 #include "packet-gsm_a_common.h"
60 #include "packet-tcap.h"
61 #include "packet-e164.h"
62 #include "packet-e212.h"
63 #include "packet-smpp.h"
64 #include "packet-gsm_sms.h"
65 #include "packet-ranap.h"
66 #include "packet-isup.h"
68 #define PNAME "GSM Mobile Application"
69 #define PSNAME "GSM_MAP"
70 #define PFNAME "gsm_map"
72 void proto_register_gsm_map(void);
73 void proto_reg_handoff_gsm_map(void);
75 /* Initialize the protocol and registered fields */
76 static int proto_gsm_map;
77 static int proto_gsm_map_dialogue;
78 static int proto_gsm_map_ms;
80 static int hf_gsm_map_old_Component_PDU;
81 static int hf_gsm_map_getPassword;
82 static int hf_gsm_map_currentPassword;
83 static int hf_gsm_map_extension;
84 static int hf_gsm_map_nature_of_number;
85 static int hf_gsm_map_number_plan;
86 static int hf_gsm_map_address_digits;
87 static int hf_gsm_map_TBCD_digits;
88 static int hf_gsm_map_Ss_Status_unused;
89 static int hf_gsm_map_Ss_Status_q_bit;
90 static int hf_gsm_map_Ss_Status_p_bit;
91 static int hf_gsm_map_Ss_Status_r_bit;
92 static int hf_gsm_map_Ss_Status_a_bit;
93 static int hf_gsm_map_notification_to_forwarding_party;
94 static int hf_gsm_map_redirecting_presentation;
95 static int hf_gsm_map_notification_to_calling_party;
96 static int hf_gsm_map_forwarding_reason;
97 static int hf_gsm_map_pdp_type_org;
98 static int hf_gsm_map_etsi_pdp_type_number;
99 static int hf_gsm_map_ietf_pdp_type_number;
100 static int hf_gsm_map_ext_qos_subscribed_pri;
102 static int hf_gsm_map_qos_traffic_cls;
103 static int hf_gsm_map_qos_del_order;
104 static int hf_gsm_map_qos_del_of_err_sdu;
105 static int hf_gsm_map_qos_ber;
106 static int hf_gsm_map_qos_sdu_err_rat;
107 static int hf_gsm_map_qos_traff_hdl_pri;
108 static int hf_gsm_map_qos_max_sdu;
109 static int hf_gsm_map_max_brate_ulink;
110 static int hf_gsm_map_max_brate_dlink;
111 static int hf_gsm_map_qos_transfer_delay;
112 static int hf_gsm_map_guaranteed_max_brate_ulink;
113 static int hf_gsm_map_guaranteed_max_brate_dlink;
114 static int hf_gsm_map_GSNAddress_IPv4;
115 static int hf_gsm_map_GSNAddress_IPv6;
116 static int hf_gsm_map_ranap_service_Handover;
117 static int hf_gsm_map_IntegrityProtectionInformation;
118 static int hf_gsm_map_EncryptionInformation;
119 static int hf_gsm_map_ss_SS_UserData;
120 static int hf_gsm_map_cbs_coding_grp;
121 static int hf_gsm_map_cbs_coding_grp0_lang;
122 static int hf_gsm_map_cbs_coding_grp1_lang;
123 static int hf_gsm_map_cbs_coding_grp2_lang;
124 static int hf_gsm_map_cbs_coding_grp3_lang;
125 static int hf_gsm_map_cbs_coding_grp4_7_comp;
126 static int hf_gsm_map_cbs_coding_grp4_7_class_ind;
127 static int hf_gsm_map_cbs_coding_grp4_7_char_set;
128 static int hf_gsm_map_cbs_coding_grp4_7_class;
129 static int hf_gsm_map_cbs_coding_grp15_mess_code;
130 static int hf_gsm_map_cbs_coding_grp15_class;
131 static int hf_gsm_map_ie_tag;
132 static int hf_gsm_map_len;
133 static int hf_gsm_map_disc_par;
134 static int hf_gsm_map_dlci;
135 static int hf_gsm_apn_str;
136 static int hf_gsm_map_ericsson_locationInformation_rat;
137 static int hf_gsm_map_ericsson_locationInformation_lac;
138 static int hf_gsm_map_ericsson_locationInformation_ci;
139 static int hf_gsm_map_ericsson_locationInformation_sac;
140 static int hf_gsm_map_ussd_string;
141 static int hf_gsm_map_spare_bits;
142 static int hf_gsm_map_qos_signalling_ind;
143 static int hf_gsm_map_qos_source_stat_desc;
144 static int hf_gsm_map_qos_max_bitrate_upl_ext;
145 static int hf_gsm_map_qos_max_bitrate_downl_ext;
146 static int hf_gsm_map_qos_guar_bitrate_upl_ext;
147 static int hf_gsm_map_qos_guar_bitrate_downl_ext;
149 static int hf_gsm_map_qos_max_bitrate_upl_ext2;
150 static int hf_gsm_map_qos_max_bitrate_downl_ext2;
151 static int hf_gsm_map_qos_guar_bitrate_upl_ext2;
152 static int hf_gsm_map_qos_guar_bitrate_downl_ext2;
154 static int hf_gsm_map_earp_pci;
155 static int hf_gsm_map_earp_pl;
156 static int hf_gsm_map_earp_pvi;
159 /* --- Module MAP-ExtensionDataTypes --- --- --- */
161 static int hf_gsm_map_privateExtensionList; /* PrivateExtensionList */
162 static int hf_gsm_map_pcs_Extensions; /* PCS_Extensions */
163 static int hf_gsm_map_slr_Arg_PCS_Extensions; /* SLR_Arg_PCS_Extensions */
164 static int hf_gsm_map_PrivateExtensionList_item; /* PrivateExtension */
165 static int hf_gsm_map_extId; /* T_extId */
166 static int hf_gsm_map_extType; /* T_extType */
167 static int hf_gsm_map_na_ESRK_Request; /* NULL */
169 /* --- Module MAP-CommonDataTypes --- --- --- */
171 static int hf_gsm_map_gsm_map_ISDN_AddressString_PDU; /* ISDN_AddressString */
172 static int hf_gsm_map_protocolId; /* ProtocolId */
173 static int hf_gsm_map_signalInfo; /* SignalInfo */
174 static int hf_gsm_map_extensionContainer; /* ExtensionContainer */
175 static int hf_gsm_map_ext_ProtocolId; /* Ext_ProtocolId */
176 static int hf_gsm_map_accessNetworkProtocolId; /* AccessNetworkProtocolId */
177 static int hf_gsm_map_signalInfo_01; /* LongSignalInfo */
178 static int hf_gsm_map_imsi; /* IMSI */
179 static int hf_gsm_map_imsi_WithLMSI; /* IMSI_WithLMSI */
180 static int hf_gsm_map_lmsi; /* LMSI */
181 static int hf_gsm_map_tmsi; /* TMSI */
182 static int hf_gsm_map_HLR_List_item; /* HLR_Id */
183 static int hf_gsm_map_naea_PreferredCIC; /* NAEA_CIC */
184 static int hf_gsm_map_msisdn; /* ISDN_AddressString */
185 static int hf_gsm_map_externalAddress; /* ISDN_AddressString */
186 static int hf_gsm_map_diameter_Name; /* DiameterIdentity */
187 static int hf_gsm_map_diameter_Realm; /* DiameterIdentity */
188 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength; /* CellGlobalIdOrServiceAreaIdFixedLength */
189 static int hf_gsm_map_laiFixedLength; /* LAIFixedLength */
190 static int hf_gsm_map_bearerService; /* BearerServiceCode */
191 static int hf_gsm_map_teleservice; /* TeleserviceCode */
192 static int hf_gsm_map_ext_BearerService; /* Ext_BearerServiceCode */
193 static int hf_gsm_map_ext_Teleservice; /* Ext_TeleserviceCode */
194 static int hf_gsm_map_maximumentitledPriority; /* EMLPP_Priority */
195 static int hf_gsm_map_defaultPriority; /* EMLPP_Priority */
196 static int hf_gsm_map_ss_Code; /* SS_Code */
197 static int hf_gsm_map_ss_Status; /* Ext_SS_Status */
198 static int hf_gsm_map_nbrSB; /* MaxMC_Bearers */
199 static int hf_gsm_map_nbrUser; /* MC_Bearers */
201 /* --- Module MAP-SS-DataTypes --- --- --- */
203 static int hf_gsm_map_ss_ss_Code; /* SS_Code */
204 static int hf_gsm_map_ss_basicService; /* BasicServiceCode */
205 static int hf_gsm_map_ss_forwardedToNumber; /* AddressString */
206 static int hf_gsm_map_ss_forwardedToSubaddress; /* ISDN_SubaddressString */
207 static int hf_gsm_map_ss_noReplyConditionTime; /* NoReplyConditionTime */
208 static int hf_gsm_map_ss_defaultPriority; /* EMLPP_Priority */
209 static int hf_gsm_map_ss_nbrUser; /* MC_Bearers */
210 static int hf_gsm_map_ss_longFTN_Supported; /* NULL */
211 static int hf_gsm_map_ss_forwardingInfo; /* ForwardingInfo */
212 static int hf_gsm_map_ss_callBarringInfo; /* CallBarringInfo */
213 static int hf_gsm_map_ss_ss_Data; /* SS_Data */
214 static int hf_gsm_map_ss_forwardingFeatureList; /* ForwardingFeatureList */
215 static int hf_gsm_map_ss_ForwardingFeatureList_item; /* ForwardingFeature */
216 static int hf_gsm_map_ss_ss_Status; /* SS_Status */
217 static int hf_gsm_map_ss_forwardedToNumber_01; /* ISDN_AddressString */
218 static int hf_gsm_map_ss_forwardingOptions; /* ForwardingOptions */
219 static int hf_gsm_map_ss_longForwardedToNumber; /* FTN_AddressString */
220 static int hf_gsm_map_ss_callBarringFeatureList; /* CallBarringFeatureList */
221 static int hf_gsm_map_ss_CallBarringFeatureList_item; /* CallBarringFeature */
222 static int hf_gsm_map_ss_ss_SubscriptionOption; /* SS_SubscriptionOption */
223 static int hf_gsm_map_ss_basicServiceGroupList; /* BasicServiceGroupList */
224 static int hf_gsm_map_ss_cliRestrictionOption; /* CliRestrictionOption */
225 static int hf_gsm_map_ss_overrideCategory; /* OverrideCategory */
226 static int hf_gsm_map_ss_maximumEntitledPriority; /* EMLPP_Priority */
227 static int hf_gsm_map_ss_ccbs_FeatureList; /* CCBS_FeatureList */
228 static int hf_gsm_map_ss_nbrSB; /* MaxMC_Bearers */
229 static int hf_gsm_map_ss_nbrSN; /* MC_Bearers */
230 static int hf_gsm_map_ss_CCBS_FeatureList_item; /* CCBS_Feature */
231 static int hf_gsm_map_ss_ccbs_Index; /* CCBS_Index */
232 static int hf_gsm_map_ss_b_subscriberNumber; /* ISDN_AddressString */
233 static int hf_gsm_map_ss_b_subscriberSubaddress; /* ISDN_SubaddressString */
234 static int hf_gsm_map_ss_basicServiceGroup; /* BasicServiceCode */
235 static int hf_gsm_map_ss_genericServiceInfo; /* GenericServiceInfo */
236 static int hf_gsm_map_ss_ussd_DataCodingScheme; /* USSD_DataCodingScheme */
237 static int hf_gsm_map_ss_ussd_String; /* USSD_String */
238 static int hf_gsm_map_ss_alertingPattern; /* AlertingPattern */
239 static int hf_gsm_map_ss_msisdn; /* ISDN_AddressString */
240 static int hf_gsm_map_ss_SS_List_item; /* SS_Code */
241 static int hf_gsm_map_ss_BasicServiceGroupList_item; /* BasicServiceCode */
242 static int hf_gsm_map_ss_imsi; /* IMSI */
243 static int hf_gsm_map_ss_ss_Event; /* SS_Code */
244 static int hf_gsm_map_ss_ss_EventSpecification; /* SS_EventSpecification */
245 static int hf_gsm_map_ss_extensionContainer; /* ExtensionContainer */
246 static int hf_gsm_map_ss_ccbs_RequestState; /* CCBS_RequestState */
247 static int hf_gsm_map_ss_SS_EventSpecification_item; /* AddressString */
248 static int hf_gsm_map_ss_ccbs_Data; /* CCBS_Data */
249 static int hf_gsm_map_ss_ccbs_Feature; /* CCBS_Feature */
250 static int hf_gsm_map_ss_translatedB_Number; /* ISDN_AddressString */
251 static int hf_gsm_map_ss_serviceIndicator; /* ServiceIndicator */
252 static int hf_gsm_map_ss_callInfo; /* ExternalSignalInfo */
253 static int hf_gsm_map_ss_networkSignalInfo; /* ExternalSignalInfo */
254 /* named bits */
255 static int hf_gsm_map_ss_ServiceIndicator_clir_invoked;
256 static int hf_gsm_map_ss_ServiceIndicator_camel_invoked;
258 /* --- Module MAP-ER-DataTypes --- --- --- */
260 static int hf_gsm_map_er_roamingNotAllowedCause; /* RoamingNotAllowedCause */
261 static int hf_gsm_map_er_extensionContainer; /* ExtensionContainer */
262 static int hf_gsm_map_er_additionalRoamingNotAllowedCause; /* AdditionalRoamingNotAllowedCause */
263 static int hf_gsm_map_er_callBarringCause; /* CallBarringCause */
264 static int hf_gsm_map_er_extensibleCallBarredParam; /* ExtensibleCallBarredParam */
265 static int hf_gsm_map_er_unauthorisedMessageOriginator; /* NULL */
266 static int hf_gsm_map_er_anonymousCallRejection; /* NULL */
267 static int hf_gsm_map_er_cug_RejectCause; /* CUG_RejectCause */
268 static int hf_gsm_map_er_ss_Code; /* SS_Code */
269 static int hf_gsm_map_er_basicService; /* BasicServiceCode */
270 static int hf_gsm_map_er_ss_Status; /* SS_Status */
271 static int hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause; /* SM_EnumeratedDeliveryFailureCause */
272 static int hf_gsm_map_er_diagnosticInfo; /* SignalInfo */
273 static int hf_gsm_map_er_absentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */
274 static int hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */
275 static int hf_gsm_map_er_imsi; /* IMSI */
276 static int hf_gsm_map_er_requestedRetransmissionTime; /* Time */
277 static int hf_gsm_map_er_userIdentifierAlert; /* IMSI */
278 static int hf_gsm_map_er_networkResource; /* NetworkResource */
279 static int hf_gsm_map_er_extensibleSystemFailureParam; /* ExtensibleSystemFailureParam */
280 static int hf_gsm_map_er_additionalNetworkResource; /* AdditionalNetworkResource */
281 static int hf_gsm_map_er_failureCauseParam; /* FailureCauseParam */
282 static int hf_gsm_map_er_unexpectedSubscriber; /* NULL */
283 static int hf_gsm_map_er_shapeOfLocationEstimateNotSupported; /* NULL */
284 static int hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode; /* NULL */
285 static int hf_gsm_map_er_unknownSubscriberDiagnostic; /* UnknownSubscriberDiagnostic */
286 static int hf_gsm_map_er_absentSubscriberReason; /* AbsentSubscriberReason */
287 static int hf_gsm_map_er_ccbs_Possible; /* NULL */
288 static int hf_gsm_map_er_ccbs_Busy; /* NULL */
289 static int hf_gsm_map_er_gprsConnectionSuspended; /* NULL */
290 static int hf_gsm_map_er_unauthorizedLCSClient_Diagnostic; /* UnauthorizedLCSClient_Diagnostic */
291 static int hf_gsm_map_er_positionMethodFailure_Diagnostic; /* PositionMethodFailure_Diagnostic */
293 /* --- Module MAP-SM-DataTypes --- --- --- */
295 static int hf_gsm_map_sm_msisdn; /* ISDN_AddressString */
296 static int hf_gsm_map_sm_sm_RP_PRI; /* BOOLEAN */
297 static int hf_gsm_map_sm_serviceCentreAddress; /* AddressString */
298 static int hf_gsm_map_sm_extensionContainer; /* ExtensionContainer */
299 static int hf_gsm_map_sm_gprsSupportIndicator; /* NULL */
300 static int hf_gsm_map_sm_sm_RP_MTI; /* SM_RP_MTI */
301 static int hf_gsm_map_sm_sm_RP_SMEA; /* SM_RP_SMEA */
302 static int hf_gsm_map_sm_sm_deliveryNotIntended; /* SM_DeliveryNotIntended */
303 static int hf_gsm_map_sm_ip_sm_gwGuidanceIndicator; /* NULL */
304 static int hf_gsm_map_sm_imsi; /* IMSI */
305 static int hf_gsm_map_sm_t4_Trigger_Indicator; /* NULL */
306 static int hf_gsm_map_sm_singleAttemptDelivery; /* NULL */
307 static int hf_gsm_map_sm_correlationID; /* CorrelationID */
308 static int hf_gsm_map_sm_smsf_supportIndicator; /* NULL */
309 static int hf_gsm_map_sm_locationInfoWithLMSI; /* LocationInfoWithLMSI */
310 static int hf_gsm_map_sm_ip_sm_gwGuidance; /* IP_SM_GW_Guidance */
311 static int hf_gsm_map_sm_minimumDeliveryTimeValue; /* SM_DeliveryTimerValue */
312 static int hf_gsm_map_sm_recommendedDeliveryTimeValue; /* SM_DeliveryTimerValue */
313 static int hf_gsm_map_sm_networkNode_Number; /* ISDN_AddressString */
314 static int hf_gsm_map_sm_lmsi; /* LMSI */
315 static int hf_gsm_map_sm_gprsNodeIndicator; /* NULL */
316 static int hf_gsm_map_sm_additional_Number; /* Additional_Number */
317 static int hf_gsm_map_sm_networkNodeDiameterAddress; /* NetworkNodeDiameterAddress */
318 static int hf_gsm_map_sm_additionalNetworkNodeDiameterAddress; /* NetworkNodeDiameterAddress */
319 static int hf_gsm_map_sm_thirdNumber; /* Additional_Number */
320 static int hf_gsm_map_sm_thirdNetworkNodeDiameterAddress; /* NetworkNodeDiameterAddress */
321 static int hf_gsm_map_sm_imsNodeIndicator; /* NULL */
322 static int hf_gsm_map_sm_smsf_3gpp_Number; /* ISDN_AddressString */
323 static int hf_gsm_map_sm_smsf_3gpp_DiameterAddress; /* NetworkNodeDiameterAddress */
324 static int hf_gsm_map_sm_smsf_non_3gpp_Number; /* ISDN_AddressString */
325 static int hf_gsm_map_sm_smsf_non_3gpp_DiameterAddress; /* NetworkNodeDiameterAddress */
326 static int hf_gsm_map_sm_smsf_3gpp_address_indicator; /* NULL */
327 static int hf_gsm_map_sm_smsf_non_3gpp_address_indicator; /* NULL */
328 static int hf_gsm_map_sm_msc_Number; /* ISDN_AddressString */
329 static int hf_gsm_map_sm_sgsn_Number; /* ISDN_AddressString */
330 static int hf_gsm_map_sm_sm_RP_DA; /* SM_RP_DA */
331 static int hf_gsm_map_sm_sm_RP_OA; /* SM_RP_OA */
332 static int hf_gsm_map_sm_sm_RP_UI; /* SignalInfo */
333 static int hf_gsm_map_sm_sm_DeliveryOutcome; /* SM_DeliveryOutcome */
334 static int hf_gsm_map_sm_moreMessagesToSend; /* NULL */
335 static int hf_gsm_map_sm_smDeliveryTimer; /* SM_DeliveryTimerValue */
336 static int hf_gsm_map_sm_smDeliveryStartTime; /* Time */
337 static int hf_gsm_map_sm_smsOverIP_OnlyIndicator; /* NULL */
338 static int hf_gsm_map_sm_maximumRetransmissionTime; /* Time */
339 static int hf_gsm_map_sm_smsGmscAddress; /* ISDN_AddressString */
340 static int hf_gsm_map_sm_smsGmscDiameterAddress; /* NetworkNodeDiameterAddress */
341 static int hf_gsm_map_sm_hlr_id; /* HLR_Id */
342 static int hf_gsm_map_sm_sip_uri_A; /* SIP_URI */
343 static int hf_gsm_map_sm_sip_uri_B; /* SIP_URI */
344 static int hf_gsm_map_sm_imsi_01; /* T_imsi */
345 static int hf_gsm_map_sm_lmsi_01; /* T_lmsi */
346 static int hf_gsm_map_sm_serviceCentreAddressDA; /* T_serviceCentreAddressDA */
347 static int hf_gsm_map_sm_noSM_RP_DA; /* T_noSM_RP_DA */
348 static int hf_gsm_map_sm_msisdn_01; /* T_msisdn */
349 static int hf_gsm_map_sm_serviceCentreAddressOA; /* T_serviceCentreAddressOA */
350 static int hf_gsm_map_sm_noSM_RP_OA; /* T_noSM_RP_OA */
351 static int hf_gsm_map_sm_absentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */
352 static int hf_gsm_map_sm_deliveryOutcomeIndicator; /* NULL */
353 static int hf_gsm_map_sm_additionalSM_DeliveryOutcome; /* SM_DeliveryOutcome */
354 static int hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */
355 static int hf_gsm_map_sm_ip_sm_gw_Indicator; /* NULL */
356 static int hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome; /* SM_DeliveryOutcome */
357 static int hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */
358 static int hf_gsm_map_sm_smsf_3gpp_deliveryOutcomeIndicator; /* NULL */
359 static int hf_gsm_map_sm_smsf_3gpp_deliveryOutcome; /* SM_DeliveryOutcome */
360 static int hf_gsm_map_sm_smsf_3gpp_absentSubscriberDiagSM; /* AbsentSubscriberDiagnosticSM */
361 static int hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcomeIndicator; /* NULL */
362 static int hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcome; /* SM_DeliveryOutcome */
363 static int hf_gsm_map_sm_smsf_non_3gpp_absentSubscriberDiagSM; /* AbsentSubscriberDiagnosticSM */
364 static int hf_gsm_map_sm_storedMSISDN; /* ISDN_AddressString */
365 static int hf_gsm_map_sm_maximumUeAvailabilityTime; /* Time */
366 static int hf_gsm_map_sm_smsGmscAlertEvent; /* SmsGmsc_Alert_Event */
367 static int hf_gsm_map_sm_newSGSNNumber; /* ISDN_AddressString */
368 static int hf_gsm_map_sm_newSGSNDiameterAddress; /* NetworkNodeDiameterAddress */
369 static int hf_gsm_map_sm_newMMENumber; /* ISDN_AddressString */
370 static int hf_gsm_map_sm_newMMEDiameterAddress; /* NetworkNodeDiameterAddress */
371 static int hf_gsm_map_sm_newMSCNumber; /* ISDN_AddressString */
372 static int hf_gsm_map_sm_mw_Status; /* MW_Status */
373 static int hf_gsm_map_sm_smsf3gppAbsentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */
374 static int hf_gsm_map_sm_smsfNon3gppAbsentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */
375 static int hf_gsm_map_sm_alertReason; /* AlertReason */
376 static int hf_gsm_map_sm_alertReasonIndicator; /* NULL */
377 static int hf_gsm_map_sm_additionalAlertReasonIndicator; /* NULL */
378 static int hf_gsm_map_sm_asciCallReference; /* ASCI_CallReference */
379 static int hf_gsm_map_sm_dispatcherList; /* DispatcherList */
380 static int hf_gsm_map_sm_ongoingCall; /* NULL */
381 static int hf_gsm_map_sm_additionalDispatcherList; /* AdditionalDispatcherList */
382 static int hf_gsm_map_sm_DispatcherList_item; /* ISDN_AddressString */
383 static int hf_gsm_map_sm_AdditionalDispatcherList_item; /* ISDN_AddressString */
384 /* named bits */
385 static int hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded;
386 static int hf_gsm_map_sm_MW_Status_mnrf_Set;
387 static int hf_gsm_map_sm_MW_Status_mcef_Set;
388 static int hf_gsm_map_sm_MW_Status_mnrg_Set;
389 static int hf_gsm_map_sm_MW_Status_mnr5g_Set;
390 static int hf_gsm_map_sm_MW_Status_mnr5gn3g_Set;
392 /* --- Module MAP-OM-DataTypes --- --- --- */
394 static int hf_gsm_map_om_imsi; /* IMSI */
395 static int hf_gsm_map_om_traceReference; /* TraceReference */
396 static int hf_gsm_map_om_traceType; /* TraceType */
397 static int hf_gsm_map_om_omc_Id; /* AddressString */
398 static int hf_gsm_map_om_extensionContainer; /* ExtensionContainer */
399 static int hf_gsm_map_om_traceReference2; /* TraceReference2 */
400 static int hf_gsm_map_om_traceDepthList; /* TraceDepthList */
401 static int hf_gsm_map_om_traceNE_TypeList; /* TraceNE_TypeList */
402 static int hf_gsm_map_om_traceInterfaceList; /* TraceInterfaceList */
403 static int hf_gsm_map_om_traceEventList; /* TraceEventList */
404 static int hf_gsm_map_om_traceCollectionEntity; /* GSN_Address */
405 static int hf_gsm_map_om_mdt_Configuration; /* MDT_Configuration */
406 static int hf_gsm_map_om_jobType; /* JobType */
407 static int hf_gsm_map_om_areaScope; /* AreaScope */
408 static int hf_gsm_map_om_listOfMeasurements; /* ListOfMeasurements */
409 static int hf_gsm_map_om_reportingTrigger; /* ReportingTrigger */
410 static int hf_gsm_map_om_reportInterval; /* ReportInterval */
411 static int hf_gsm_map_om_reportAmount; /* ReportAmount */
412 static int hf_gsm_map_om_eventThresholdRSRP; /* EventThresholdRSRP */
413 static int hf_gsm_map_om_eventThresholdRSRQ; /* EventThresholdRSRQ */
414 static int hf_gsm_map_om_loggingInterval; /* LoggingInterval */
415 static int hf_gsm_map_om_loggingDuration; /* LoggingDuration */
416 static int hf_gsm_map_om_measurementPeriodUMTS; /* PeriodUMTS */
417 static int hf_gsm_map_om_measurementPeriodLTE; /* PeriodLTE */
418 static int hf_gsm_map_om_collectionPeriodRRM_UMTS; /* PeriodUMTS */
419 static int hf_gsm_map_om_collectionPeriodRRM_LTE; /* PeriodLTE */
420 static int hf_gsm_map_om_positioningMethod; /* PositioningMethod */
421 static int hf_gsm_map_om_measurementQuantity; /* MeasurementQuantity */
422 static int hf_gsm_map_om_eventThreshold1F; /* EventThreshold1F */
423 static int hf_gsm_map_om_eventThreshold1I; /* EventThreshold1I */
424 static int hf_gsm_map_om_mdt_Allowed_PLMN_List; /* MDT_Allowed_PLMNId_List */
425 static int hf_gsm_map_om_MDT_Allowed_PLMNId_List_item; /* PLMN_Id */
426 static int hf_gsm_map_om_cgi_List; /* CGI_List */
427 static int hf_gsm_map_om_e_utran_cgi_List; /* E_UTRAN_CGI_List */
428 static int hf_gsm_map_om_routingAreaId_List; /* RoutingAreaId_List */
429 static int hf_gsm_map_om_locationAreaId_List; /* LocationAreaId_List */
430 static int hf_gsm_map_om_trackingAreaId_List; /* TrackingAreaId_List */
431 static int hf_gsm_map_om_CGI_List_item; /* GlobalCellId */
432 static int hf_gsm_map_om_E_UTRAN_CGI_List_item; /* E_UTRAN_CGI */
433 static int hf_gsm_map_om_RoutingAreaId_List_item; /* RAIdentity */
434 static int hf_gsm_map_om_LocationAreaId_List_item; /* LAIFixedLength */
435 static int hf_gsm_map_om_TrackingAreaId_List_item; /* TA_Id */
436 static int hf_gsm_map_om_msc_s_TraceDepth; /* TraceDepth */
437 static int hf_gsm_map_om_mgw_TraceDepth; /* TraceDepth */
438 static int hf_gsm_map_om_sgsn_TraceDepth; /* TraceDepth */
439 static int hf_gsm_map_om_ggsn_TraceDepth; /* TraceDepth */
440 static int hf_gsm_map_om_rnc_TraceDepth; /* TraceDepth */
441 static int hf_gsm_map_om_bmsc_TraceDepth; /* TraceDepth */
442 static int hf_gsm_map_om_mme_TraceDepth; /* TraceDepth */
443 static int hf_gsm_map_om_sgw_TraceDepth; /* TraceDepth */
444 static int hf_gsm_map_om_pgw_TraceDepth; /* TraceDepth */
445 static int hf_gsm_map_om_eNB_TraceDepth; /* TraceDepth */
446 static int hf_gsm_map_om_msc_s_TraceDepthExtension; /* TraceDepthExtension */
447 static int hf_gsm_map_om_mgw_TraceDepthExtension; /* TraceDepthExtension */
448 static int hf_gsm_map_om_sgsn_TraceDepthExtension; /* TraceDepthExtension */
449 static int hf_gsm_map_om_ggsn_TraceDepthExtension; /* TraceDepthExtension */
450 static int hf_gsm_map_om_rnc_TraceDepthExtension; /* TraceDepthExtension */
451 static int hf_gsm_map_om_bmsc_TraceDepthExtension; /* TraceDepthExtension */
452 static int hf_gsm_map_om_mme_TraceDepthExtension; /* TraceDepthExtension */
453 static int hf_gsm_map_om_sgw_TraceDepthExtension; /* TraceDepthExtension */
454 static int hf_gsm_map_om_pgw_TraceDepthExtension; /* TraceDepthExtension */
455 static int hf_gsm_map_om_eNB_TraceDepthExtension; /* TraceDepthExtension */
456 static int hf_gsm_map_om_msc_s_List; /* MSC_S_InterfaceList */
457 static int hf_gsm_map_om_mgw_List; /* MGW_InterfaceList */
458 static int hf_gsm_map_om_sgsn_List; /* SGSN_InterfaceList */
459 static int hf_gsm_map_om_ggsn_List; /* GGSN_InterfaceList */
460 static int hf_gsm_map_om_rnc_List; /* RNC_InterfaceList */
461 static int hf_gsm_map_om_bmsc_List; /* BMSC_InterfaceList */
462 static int hf_gsm_map_om_mme_List; /* MME_InterfaceList */
463 static int hf_gsm_map_om_sgw_List; /* SGW_InterfaceList */
464 static int hf_gsm_map_om_pgw_List; /* PGW_InterfaceList */
465 static int hf_gsm_map_om_eNB_List; /* ENB_InterfaceList */
466 static int hf_gsm_map_om_msc_s_List_01; /* MSC_S_EventList */
467 static int hf_gsm_map_om_mgw_List_01; /* MGW_EventList */
468 static int hf_gsm_map_om_sgsn_List_01; /* SGSN_EventList */
469 static int hf_gsm_map_om_ggsn_List_01; /* GGSN_EventList */
470 static int hf_gsm_map_om_bmsc_List_01; /* BMSC_EventList */
471 static int hf_gsm_map_om_mme_List_01; /* MME_EventList */
472 static int hf_gsm_map_om_sgw_List_01; /* SGW_EventList */
473 static int hf_gsm_map_om_pgw_List_01; /* PGW_EventList */
474 static int hf_gsm_map_om_traceRecordingSessionReference; /* TraceRecordingSessionReference */
475 static int hf_gsm_map_om_rnc_InterfaceList; /* RNC_InterfaceList */
476 static int hf_gsm_map_om_msc_s_InterfaceList; /* MSC_S_InterfaceList */
477 static int hf_gsm_map_om_msc_s_EventList; /* MSC_S_EventList */
478 static int hf_gsm_map_om_mgw_InterfaceList; /* MGW_InterfaceList */
479 static int hf_gsm_map_om_mgw_EventList; /* MGW_EventList */
480 static int hf_gsm_map_om_traceSupportIndicator; /* NULL */
481 /* named bits */
482 static int hf_gsm_map_om_TraceNE_TypeList_msc_s;
483 static int hf_gsm_map_om_TraceNE_TypeList_mgw;
484 static int hf_gsm_map_om_TraceNE_TypeList_sgsn;
485 static int hf_gsm_map_om_TraceNE_TypeList_ggsn;
486 static int hf_gsm_map_om_TraceNE_TypeList_rnc;
487 static int hf_gsm_map_om_TraceNE_TypeList_bm_sc;
488 static int hf_gsm_map_om_TraceNE_TypeList_mme;
489 static int hf_gsm_map_om_TraceNE_TypeList_sgw;
490 static int hf_gsm_map_om_TraceNE_TypeList_pgw;
491 static int hf_gsm_map_om_TraceNE_TypeList_eNB;
492 static int hf_gsm_map_om_MSC_S_InterfaceList_a;
493 static int hf_gsm_map_om_MSC_S_InterfaceList_iu;
494 static int hf_gsm_map_om_MSC_S_InterfaceList_mc;
495 static int hf_gsm_map_om_MSC_S_InterfaceList_map_g;
496 static int hf_gsm_map_om_MSC_S_InterfaceList_map_b;
497 static int hf_gsm_map_om_MSC_S_InterfaceList_map_e;
498 static int hf_gsm_map_om_MSC_S_InterfaceList_map_f;
499 static int hf_gsm_map_om_MSC_S_InterfaceList_cap;
500 static int hf_gsm_map_om_MSC_S_InterfaceList_map_d;
501 static int hf_gsm_map_om_MSC_S_InterfaceList_map_c;
502 static int hf_gsm_map_om_MGW_InterfaceList_mc;
503 static int hf_gsm_map_om_MGW_InterfaceList_nb_up;
504 static int hf_gsm_map_om_MGW_InterfaceList_iu_up;
505 static int hf_gsm_map_om_SGSN_InterfaceList_gb;
506 static int hf_gsm_map_om_SGSN_InterfaceList_iu;
507 static int hf_gsm_map_om_SGSN_InterfaceList_gn;
508 static int hf_gsm_map_om_SGSN_InterfaceList_map_gr;
509 static int hf_gsm_map_om_SGSN_InterfaceList_map_gd;
510 static int hf_gsm_map_om_SGSN_InterfaceList_map_gf;
511 static int hf_gsm_map_om_SGSN_InterfaceList_gs;
512 static int hf_gsm_map_om_SGSN_InterfaceList_ge;
513 static int hf_gsm_map_om_SGSN_InterfaceList_s3;
514 static int hf_gsm_map_om_SGSN_InterfaceList_s4;
515 static int hf_gsm_map_om_SGSN_InterfaceList_s6d;
516 static int hf_gsm_map_om_GGSN_InterfaceList_gn;
517 static int hf_gsm_map_om_GGSN_InterfaceList_gi;
518 static int hf_gsm_map_om_GGSN_InterfaceList_gmb;
519 static int hf_gsm_map_om_RNC_InterfaceList_iu;
520 static int hf_gsm_map_om_RNC_InterfaceList_iur;
521 static int hf_gsm_map_om_RNC_InterfaceList_iub;
522 static int hf_gsm_map_om_RNC_InterfaceList_uu;
523 static int hf_gsm_map_om_BMSC_InterfaceList_gmb;
524 static int hf_gsm_map_om_MME_InterfaceList_s1_mme;
525 static int hf_gsm_map_om_MME_InterfaceList_s3;
526 static int hf_gsm_map_om_MME_InterfaceList_s6a;
527 static int hf_gsm_map_om_MME_InterfaceList_s10;
528 static int hf_gsm_map_om_MME_InterfaceList_s11;
529 static int hf_gsm_map_om_SGW_InterfaceList_s4;
530 static int hf_gsm_map_om_SGW_InterfaceList_s5;
531 static int hf_gsm_map_om_SGW_InterfaceList_s8b;
532 static int hf_gsm_map_om_SGW_InterfaceList_s11;
533 static int hf_gsm_map_om_SGW_InterfaceList_gxc;
534 static int hf_gsm_map_om_PGW_InterfaceList_s2a;
535 static int hf_gsm_map_om_PGW_InterfaceList_s2b;
536 static int hf_gsm_map_om_PGW_InterfaceList_s2c;
537 static int hf_gsm_map_om_PGW_InterfaceList_s5;
538 static int hf_gsm_map_om_PGW_InterfaceList_s6b;
539 static int hf_gsm_map_om_PGW_InterfaceList_gx;
540 static int hf_gsm_map_om_PGW_InterfaceList_s8b;
541 static int hf_gsm_map_om_PGW_InterfaceList_sgi;
542 static int hf_gsm_map_om_ENB_InterfaceList_s1_mme;
543 static int hf_gsm_map_om_ENB_InterfaceList_x2;
544 static int hf_gsm_map_om_ENB_InterfaceList_uu;
545 static int hf_gsm_map_om_MSC_S_EventList_mo_mtCall;
546 static int hf_gsm_map_om_MSC_S_EventList_mo_mt_sms;
547 static int hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach;
548 static int hf_gsm_map_om_MSC_S_EventList_handovers;
549 static int hf_gsm_map_om_MSC_S_EventList_ss;
550 static int hf_gsm_map_om_MGW_EventList_context;
551 static int hf_gsm_map_om_SGSN_EventList_pdpContext;
552 static int hf_gsm_map_om_SGSN_EventList_mo_mt_sms;
553 static int hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach;
554 static int hf_gsm_map_om_SGSN_EventList_mbmsContext;
555 static int hf_gsm_map_om_GGSN_EventList_pdpContext;
556 static int hf_gsm_map_om_GGSN_EventList_mbmsContext;
557 static int hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation;
558 static int hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest;
559 static int hf_gsm_map_om_MME_EventList_serviceRequestts;
560 static int hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach;
561 static int hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection;
562 static int hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion;
563 static int hf_gsm_map_om_MME_EventList_handover;
564 static int hf_gsm_map_om_SGW_EventList_pdn_connectionCreation;
565 static int hf_gsm_map_om_SGW_EventList_pdn_connectionTermination;
566 static int hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion;
567 static int hf_gsm_map_om_PGW_EventList_pdn_connectionCreation;
568 static int hf_gsm_map_om_PGW_EventList_pdn_connectionTermination;
569 static int hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion;
571 /* --- Module MAP-MS-DataTypes --- --- --- */
573 static int hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoArg_PDU; /* SendAuthenticationInfoArg */
574 static int hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoRes_PDU; /* SendAuthenticationInfoRes */
575 static int hf_gsm_map_ms_imsi; /* IMSI */
576 static int hf_gsm_map_ms_msc_Number; /* ISDN_AddressString */
577 static int hf_gsm_map_ms_vlr_Number; /* ISDN_AddressString */
578 static int hf_gsm_map_ms_lmsi; /* LMSI */
579 static int hf_gsm_map_ms_extensionContainer; /* ExtensionContainer */
580 static int hf_gsm_map_ms_vlr_Capability; /* VLR_Capability */
581 static int hf_gsm_map_ms_informPreviousNetworkEntity; /* NULL */
582 static int hf_gsm_map_ms_cs_LCS_NotSupportedByUE; /* NULL */
583 static int hf_gsm_map_ms_v_gmlc_Address; /* GSN_Address */
584 static int hf_gsm_map_ms_add_info; /* ADD_Info */
585 static int hf_gsm_map_ms_pagingArea; /* PagingArea */
586 static int hf_gsm_map_ms_skipSubscriberDataUpdate; /* NULL */
587 static int hf_gsm_map_ms_restorationIndicator; /* NULL */
588 static int hf_gsm_map_ms_eplmn_List; /* EPLMN_List */
589 static int hf_gsm_map_ms_mme_DiameterAddress; /* NetworkNodeDiameterAddress */
590 static int hf_gsm_map_ms_supportedCamelPhases; /* SupportedCamelPhases */
591 static int hf_gsm_map_ms_solsaSupportIndicator; /* NULL */
592 static int hf_gsm_map_ms_istSupportIndicator; /* IST_SupportIndicator */
593 static int hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity; /* SuperChargerInfo */
594 static int hf_gsm_map_ms_longFTN_Supported; /* NULL */
595 static int hf_gsm_map_ms_supportedLCS_CapabilitySets; /* SupportedLCS_CapabilitySets */
596 static int hf_gsm_map_ms_offeredCamel4CSIs; /* OfferedCamel4CSIs */
597 static int hf_gsm_map_ms_supportedRAT_TypesIndicator; /* SupportedRAT_Types */
598 static int hf_gsm_map_ms_longGroupID_Supported; /* NULL */
599 static int hf_gsm_map_ms_mtRoamingForwardingSupported; /* NULL */
600 static int hf_gsm_map_ms_msisdn_lessOperation_Supported; /* NULL */
601 static int hf_gsm_map_ms_reset_ids_Supported; /* NULL */
602 static int hf_gsm_map_ms_sendSubscriberData; /* NULL */
603 static int hf_gsm_map_ms_subscriberDataStored; /* AgeIndicator */
604 static int hf_gsm_map_ms_hlr_Number; /* ISDN_AddressString */
605 static int hf_gsm_map_ms_add_Capability; /* NULL */
606 static int hf_gsm_map_ms_pagingArea_Capability; /* NULL */
607 static int hf_gsm_map_ms_imeisv; /* IMEI */
608 static int hf_gsm_map_ms_PagingArea_item; /* LocationArea */
609 static int hf_gsm_map_ms_laiFixedLength; /* LAIFixedLength */
610 static int hf_gsm_map_ms_lac; /* LAC */
611 static int hf_gsm_map_ms_identity; /* Identity */
612 static int hf_gsm_map_ms_cancellationType; /* CancellationType */
613 static int hf_gsm_map_ms_typeOfUpdate; /* TypeOfUpdate */
614 static int hf_gsm_map_ms_mtrf_SupportedAndAuthorized; /* NULL */
615 static int hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized; /* NULL */
616 static int hf_gsm_map_ms_newMSC_Number; /* ISDN_AddressString */
617 static int hf_gsm_map_ms_newVLR_Number; /* ISDN_AddressString */
618 static int hf_gsm_map_ms_new_lmsi; /* LMSI */
619 static int hf_gsm_map_ms_reattach_Required; /* NULL */
620 static int hf_gsm_map_ms_sgsn_Number; /* ISDN_AddressString */
621 static int hf_gsm_map_ms_locationInformation; /* LocationInformation */
622 static int hf_gsm_map_ms_locationInformationGPRS; /* LocationInformationGPRS */
623 static int hf_gsm_map_ms_locationInformationEPS; /* LocationInformationEPS */
624 static int hf_gsm_map_ms_freezeTMSI; /* NULL */
625 static int hf_gsm_map_ms_freezeP_TMSI; /* NULL */
626 static int hf_gsm_map_ms_freezeM_TMSI; /* NULL */
627 static int hf_gsm_map_ms_tmsi; /* TMSI */
628 static int hf_gsm_map_ms_numberOfRequestedVectors; /* NumberOfRequestedVectors */
629 static int hf_gsm_map_ms_segmentationProhibited; /* NULL */
630 static int hf_gsm_map_ms_previous_LAI; /* LAIFixedLength */
631 static int hf_gsm_map_ms_hopCounter; /* HopCounter */
632 static int hf_gsm_map_ms_authenticationSetList; /* AuthenticationSetList */
633 static int hf_gsm_map_ms_currentSecurityContext; /* CurrentSecurityContext */
634 static int hf_gsm_map_ms_lastUsedLtePLMN_Id; /* PLMN_Id */
635 static int hf_gsm_map_ms_mtCallPendingFlag; /* NULL */
636 static int hf_gsm_map_ms_tripletList; /* TripletList */
637 static int hf_gsm_map_ms_quintupletList; /* QuintupletList */
638 static int hf_gsm_map_ms_TripletList_item; /* AuthenticationTriplet */
639 static int hf_gsm_map_ms_QuintupletList_item; /* AuthenticationQuintuplet */
640 static int hf_gsm_map_ms_rand; /* RAND */
641 static int hf_gsm_map_ms_sres; /* SRES */
642 static int hf_gsm_map_ms_kc; /* Kc */
643 static int hf_gsm_map_ms_xres; /* XRES */
644 static int hf_gsm_map_ms_ck; /* CK */
645 static int hf_gsm_map_ms_ik; /* IK */
646 static int hf_gsm_map_ms_autn; /* AUTN */
647 static int hf_gsm_map_ms_gsm_SecurityContextData; /* GSM_SecurityContextData */
648 static int hf_gsm_map_ms_umts_SecurityContextData; /* UMTS_SecurityContextData */
649 static int hf_gsm_map_ms_cksn; /* Cksn */
650 static int hf_gsm_map_ms_ksi; /* KSI */
651 static int hf_gsm_map_ms_failureCause; /* FailureCause */
652 static int hf_gsm_map_ms_re_attempt; /* BOOLEAN */
653 static int hf_gsm_map_ms_accessType; /* AccessType */
654 static int hf_gsm_map_ms_sgsn_Address; /* GSN_Address */
655 static int hf_gsm_map_ms_sgsn_Capability; /* SGSN_Capability */
656 static int hf_gsm_map_ms_ps_LCS_NotSupportedByUE; /* NULL */
657 static int hf_gsm_map_ms_eps_info; /* EPS_Info */
658 static int hf_gsm_map_ms_servingNodeTypeIndicator; /* NULL */
659 static int hf_gsm_map_ms_usedRAT_Type; /* Used_RAT_Type */
660 static int hf_gsm_map_ms_gprsSubscriptionDataNotNeeded; /* NULL */
661 static int hf_gsm_map_ms_nodeTypeIndicator; /* NULL */
662 static int hf_gsm_map_ms_areaRestricted; /* NULL */
663 static int hf_gsm_map_ms_ue_reachableIndicator; /* NULL */
664 static int hf_gsm_map_ms_epsSubscriptionDataNotNeeded; /* NULL */
665 static int hf_gsm_map_ms_ue_srvcc_Capability; /* UE_SRVCC_Capability */
666 static int hf_gsm_map_ms_mmeNumberforMTSMS; /* ISDN_AddressString */
667 static int hf_gsm_map_ms_smsRegisterRequest; /* SMSRegisterRequest */
668 static int hf_gsm_map_ms_sms_Only; /* NULL */
669 static int hf_gsm_map_ms_removalofMMERegistrationforSMS; /* NULL */
670 static int hf_gsm_map_ms_sgsn_Name; /* DiameterIdentity */
671 static int hf_gsm_map_ms_sgsn_Realm; /* DiameterIdentity */
672 static int hf_gsm_map_ms_lgd_supportIndicator; /* NULL */
673 static int hf_gsm_map_ms_adjacentPLMN_List; /* AdjacentPLMN_List */
674 static int hf_gsm_map_ms_pdn_gw_update; /* PDN_GW_Update */
675 static int hf_gsm_map_ms_isr_Information; /* ISR_Information */
676 static int hf_gsm_map_ms_apn; /* APN */
677 static int hf_gsm_map_ms_pdn_gw_Identity; /* PDN_GW_Identity */
678 static int hf_gsm_map_ms_contextId; /* ContextId */
679 static int hf_gsm_map_ms_gprsEnhancementsSupportIndicator; /* NULL */
680 static int hf_gsm_map_ms_smsCallBarringSupportIndicator; /* NULL */
681 static int hf_gsm_map_ms_supportedFeatures; /* SupportedFeatures */
682 static int hf_gsm_map_ms_t_adsDataRetrieval; /* NULL */
683 static int hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions; /* BOOLEAN */
684 static int hf_gsm_map_ms_cancellationTypeInitialAttach; /* NULL */
685 static int hf_gsm_map_ms_updateofHomogeneousSupportOfIMSVoiceOverPSSessions; /* NULL */
686 static int hf_gsm_map_ms_ext_SupportedFeatures; /* Ext_SupportedFeatures */
687 static int hf_gsm_map_ms_sgsn_mmeSeparationSupported; /* NULL */
688 static int hf_gsm_map_ms_mmeRegisteredforSMS; /* NULL */
689 static int hf_gsm_map_ms_EPLMN_List_item; /* PLMN_Id */
690 static int hf_gsm_map_ms_AdjacentPLMN_List_item; /* PLMN_Id */
691 static int hf_gsm_map_ms_an_APDU; /* AccessNetworkSignalInfo */
692 static int hf_gsm_map_ms_integrityProtectionInfo; /* IntegrityProtectionInformation */
693 static int hf_gsm_map_ms_encryptionInfo; /* EncryptionInformation */
694 static int hf_gsm_map_ms_keyStatus; /* KeyStatus */
695 static int hf_gsm_map_ms_allowedGSM_Algorithms; /* AllowedGSM_Algorithms */
696 static int hf_gsm_map_ms_allowedUMTS_Algorithms; /* AllowedUMTS_Algorithms */
697 static int hf_gsm_map_ms_radioResourceInformation; /* RadioResourceInformation */
698 static int hf_gsm_map_ms_radioResourceList; /* RadioResourceList */
699 static int hf_gsm_map_ms_bssmap_ServiceHandover; /* BSSMAP_ServiceHandover */
700 static int hf_gsm_map_ms_ranap_ServiceHandover; /* RANAP_ServiceHandover */
701 static int hf_gsm_map_ms_bssmap_ServiceHandoverList; /* BSSMAP_ServiceHandoverList */
702 static int hf_gsm_map_ms_currentlyUsedCodec; /* Codec */
703 static int hf_gsm_map_ms_iuSupportedCodecsList; /* SupportedCodecsList */
704 static int hf_gsm_map_ms_rab_ConfigurationIndicator; /* NULL */
705 static int hf_gsm_map_ms_iuSelectedCodec; /* Codec */
706 static int hf_gsm_map_ms_alternativeChannelType; /* RadioResourceInformation */
707 static int hf_gsm_map_ms_tracePropagationList; /* TracePropagationList */
708 static int hf_gsm_map_ms_aoipSupportedCodecsListAnchor; /* AoIPCodecsList */
709 static int hf_gsm_map_ms_aoipSelectedCodecTarget; /* AoIPCodec */
710 static int hf_gsm_map_ms_uesbi_Iu; /* UESBI_Iu */
711 static int hf_gsm_map_ms_integrityProtectionAlgorithms; /* PermittedIntegrityProtectionAlgorithms */
712 static int hf_gsm_map_ms_encryptionAlgorithms; /* PermittedEncryptionAlgorithms */
713 static int hf_gsm_map_ms_targetCellId; /* GlobalCellId */
714 static int hf_gsm_map_ms_ho_NumberNotRequired; /* NULL */
715 static int hf_gsm_map_ms_targetRNCId; /* RNCId */
716 static int hf_gsm_map_ms_multipleBearerRequested; /* NULL */
717 static int hf_gsm_map_ms_rab_Id; /* RAB_Id */
718 static int hf_gsm_map_ms_asciCallReference; /* ASCI_CallReference */
719 static int hf_gsm_map_ms_geran_classmark; /* GERAN_Classmark */
720 static int hf_gsm_map_ms_iuCurrentlyUsedCodec; /* Codec */
721 static int hf_gsm_map_ms_regionalSubscriptionData; /* ZoneCodeList */
722 static int hf_gsm_map_ms_lclsGlobalCallReference; /* LCLS_GlobalCallReference */
723 static int hf_gsm_map_ms_lcls_Negotiation; /* LCLS_Negotiation */
724 static int hf_gsm_map_ms_lcls_Configuration_Preference; /* LCLS_ConfigurationPreference */
725 static int hf_gsm_map_ms_csg_SubscriptionDataList; /* CSG_SubscriptionDataList */
726 static int hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item; /* BSSMAP_ServiceHandoverInfo */
727 static int hf_gsm_map_ms_RadioResourceList_item; /* RadioResource */
728 static int hf_gsm_map_ms_handoverNumber; /* ISDN_AddressString */
729 static int hf_gsm_map_ms_relocationNumberList; /* RelocationNumberList */
730 static int hf_gsm_map_ms_multicallBearerInfo; /* MulticallBearerInfo */
731 static int hf_gsm_map_ms_multipleBearerNotSupported; /* NULL */
732 static int hf_gsm_map_ms_selectedUMTS_Algorithms; /* SelectedUMTS_Algorithms */
733 static int hf_gsm_map_ms_chosenRadioResourceInformation; /* ChosenRadioResourceInformation */
734 static int hf_gsm_map_ms_iuAvailableCodecsList; /* CodecList */
735 static int hf_gsm_map_ms_aoipAvailableCodecsListMap; /* AoIPCodecsList */
736 static int hf_gsm_map_ms_integrityProtectionAlgorithm; /* ChosenIntegrityProtectionAlgorithm */
737 static int hf_gsm_map_ms_encryptionAlgorithm; /* ChosenEncryptionAlgorithm */
738 static int hf_gsm_map_ms_chosenChannelInfo; /* ChosenChannelInfo */
739 static int hf_gsm_map_ms_chosenSpeechVersion; /* ChosenSpeechVersion */
740 static int hf_gsm_map_ms_targetMSC_Number; /* ISDN_AddressString */
741 static int hf_gsm_map_ms_selectedRab_Id; /* RAB_Id */
742 static int hf_gsm_map_ms_selectedGSM_Algorithm; /* SelectedGSM_Algorithm */
743 static int hf_gsm_map_ms_iUSelectedCodec; /* Codec */
744 static int hf_gsm_map_ms_codec1; /* AoIPCodec */
745 static int hf_gsm_map_ms_codec2; /* AoIPCodec */
746 static int hf_gsm_map_ms_codec3; /* AoIPCodec */
747 static int hf_gsm_map_ms_codec4; /* AoIPCodec */
748 static int hf_gsm_map_ms_codec5; /* AoIPCodec */
749 static int hf_gsm_map_ms_codec6; /* AoIPCodec */
750 static int hf_gsm_map_ms_codec7; /* AoIPCodec */
751 static int hf_gsm_map_ms_codec8; /* AoIPCodec */
752 static int hf_gsm_map_ms_utranCodecList; /* CodecList */
753 static int hf_gsm_map_ms_geranCodecList; /* CodecList */
754 static int hf_gsm_map_ms_codec1_01; /* Codec */
755 static int hf_gsm_map_ms_codec2_01; /* Codec */
756 static int hf_gsm_map_ms_codec3_01; /* Codec */
757 static int hf_gsm_map_ms_codec4_01; /* Codec */
758 static int hf_gsm_map_ms_codec5_01; /* Codec */
759 static int hf_gsm_map_ms_codec6_01; /* Codec */
760 static int hf_gsm_map_ms_codec7_01; /* Codec */
761 static int hf_gsm_map_ms_codec8_01; /* Codec */
762 static int hf_gsm_map_ms_RelocationNumberList_item; /* RelocationNumber */
763 static int hf_gsm_map_ms_immediateResponsePreferred; /* NULL */
764 static int hf_gsm_map_ms_re_synchronisationInfo; /* Re_synchronisationInfo */
765 static int hf_gsm_map_ms_requestingNodeType; /* RequestingNodeType */
766 static int hf_gsm_map_ms_requestingPLMN_Id; /* PLMN_Id */
767 static int hf_gsm_map_ms_numberOfRequestedAdditional_Vectors; /* NumberOfRequestedVectors */
768 static int hf_gsm_map_ms_additionalVectorsAreForEPS; /* NULL */
769 static int hf_gsm_map_ms_ueUsageTypeRequestIndication; /* NULL */
770 static int hf_gsm_map_ms_auts; /* AUTS */
771 static int hf_gsm_map_ms_eps_AuthenticationSetList; /* EPS_AuthenticationSetList */
772 static int hf_gsm_map_ms_ueUsageType; /* UE_UsageType */
773 static int hf_gsm_map_ms_EPS_AuthenticationSetList_item; /* EPC_AV */
774 static int hf_gsm_map_ms_kasme; /* KASME */
775 static int hf_gsm_map_ms_imei; /* IMEI */
776 static int hf_gsm_map_ms_requestedEquipmentInfo; /* RequestedEquipmentInfo */
777 static int hf_gsm_map_ms_equipmentStatus; /* EquipmentStatus */
778 static int hf_gsm_map_ms_bmuef; /* UESBI_Iu */
779 static int hf_gsm_map_ms_uesbi_IuA; /* UESBI_IuA */
780 static int hf_gsm_map_ms_uesbi_IuB; /* UESBI_IuB */
781 static int hf_gsm_map_ms_EDRX_Cycle_Length_List_item; /* EDRX_Cycle_Length */
782 static int hf_gsm_map_ms_rat_Type; /* Used_RAT_Type */
783 static int hf_gsm_map_ms_eDRX_Cycle_Length_Value; /* EDRX_Cycle_Length_Value */
784 static int hf_gsm_map_ms_Reset_Id_List_item; /* Reset_Id */
785 static int hf_gsm_map_ms_IMSI_GroupIdList_item; /* IMSI_GroupId */
786 static int hf_gsm_map_ms_group_Service_Id; /* Group_Service_ID */
787 static int hf_gsm_map_ms_plmnId; /* PLMN_Id */
788 static int hf_gsm_map_ms_local_Group_ID; /* Local_GroupID */
789 static int hf_gsm_map_ms_CSG_SubscriptionDataList_item; /* CSG_SubscriptionData */
790 static int hf_gsm_map_ms_csg_Id; /* CSG_Id */
791 static int hf_gsm_map_ms_expirationDate; /* Time */
792 static int hf_gsm_map_ms_lipa_AllowedAPNList; /* LIPA_AllowedAPNList */
793 static int hf_gsm_map_ms_plmn_Id; /* PLMN_Id */
794 static int hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item; /* CSG_SubscriptionData */
795 static int hf_gsm_map_ms_LIPA_AllowedAPNList_item; /* APN */
796 static int hf_gsm_map_ms_apn_oi_Replacement; /* APN_OI_Replacement */
797 static int hf_gsm_map_ms_rfsp_id; /* RFSP_ID */
798 static int hf_gsm_map_ms_ambr; /* AMBR */
799 static int hf_gsm_map_ms_apn_ConfigurationProfile; /* APN_ConfigurationProfile */
800 static int hf_gsm_map_ms_stn_sr; /* ISDN_AddressString */
801 static int hf_gsm_map_ms_mps_CSPriority; /* NULL */
802 static int hf_gsm_map_ms_mps_EPSPriority; /* NULL */
803 static int hf_gsm_map_ms_subscribed_vsrvcc; /* NULL */
804 static int hf_gsm_map_ms_defaultContext; /* ContextId */
805 static int hf_gsm_map_ms_completeDataListIncluded; /* NULL */
806 static int hf_gsm_map_ms_epsDataList; /* EPS_DataList */
807 static int hf_gsm_map_ms_additionalDefaultContext; /* ContextId */
808 static int hf_gsm_map_ms_EPS_DataList_item; /* APN_Configuration */
809 static int hf_gsm_map_ms_pdn_Type; /* PDN_Type */
810 static int hf_gsm_map_ms_servedPartyIP_IPv4_Address; /* PDP_Address */
811 static int hf_gsm_map_ms_eps_qos_Subscribed; /* EPS_QoS_Subscribed */
812 static int hf_gsm_map_ms_pdn_gw_AllocationType; /* PDN_GW_AllocationType */
813 static int hf_gsm_map_ms_vplmnAddressAllowed; /* NULL */
814 static int hf_gsm_map_ms_chargingCharacteristics; /* ChargingCharacteristics */
815 static int hf_gsm_map_ms_specificAPNInfoList; /* SpecificAPNInfoList */
816 static int hf_gsm_map_ms_servedPartyIP_IPv6_Address; /* PDP_Address */
817 static int hf_gsm_map_ms_sipto_Permission; /* SIPTO_Permission */
818 static int hf_gsm_map_ms_lipa_Permission; /* LIPA_Permission */
819 static int hf_gsm_map_ms_restoration_Priority; /* Restoration_Priority */
820 static int hf_gsm_map_ms_sipto_local_network_Permission; /* SIPTO_Local_Network_Permission */
821 static int hf_gsm_map_ms_wlan_offloadability; /* WLAN_Offloadability */
822 static int hf_gsm_map_ms_non_IP_PDN_Type_Indicator; /* NULL */
823 static int hf_gsm_map_ms_nIDD_Mechanism; /* NIDD_Mechanism */
824 static int hf_gsm_map_ms_sCEF_ID; /* FQDN */
825 static int hf_gsm_map_ms_pdn_ConnectionContinuity; /* PDN_ConnectionContinuity */
826 static int hf_gsm_map_ms_qos_Class_Identifier; /* QoS_Class_Identifier */
827 static int hf_gsm_map_ms_allocation_Retention_Priority; /* Allocation_Retention_Priority */
828 static int hf_gsm_map_ms_max_RequestedBandwidth_UL; /* Bandwidth */
829 static int hf_gsm_map_ms_max_RequestedBandwidth_DL; /* Bandwidth */
830 static int hf_gsm_map_ms_extended_Max_RequestedBandwidth_UL; /* BandwidthExt */
831 static int hf_gsm_map_ms_extended_Max_RequestedBandwidth_DL; /* BandwidthExt */
832 static int hf_gsm_map_ms_SpecificAPNInfoList_item; /* SpecificAPNInfo */
833 static int hf_gsm_map_ms_priority_level; /* INTEGER */
834 static int hf_gsm_map_ms_pre_emption_capability; /* BOOLEAN */
835 static int hf_gsm_map_ms_pre_emption_vulnerability; /* BOOLEAN */
836 static int hf_gsm_map_ms_pdn_gw_ipv4_Address; /* PDP_Address */
837 static int hf_gsm_map_ms_pdn_gw_ipv6_Address; /* PDP_Address */
838 static int hf_gsm_map_ms_pdn_gw_name; /* FQDN */
839 static int hf_gsm_map_ms_wlan_offloadability_EUTRAN; /* WLAN_Offloadability_Indication */
840 static int hf_gsm_map_ms_wlan_offloadability_UTRAN; /* WLAN_Offloadability_Indication */
841 static int hf_gsm_map_ms_AdjacentAccessRestrictionDataList_item; /* AdjacentAccessRestrictionData */
842 static int hf_gsm_map_ms_accessRestrictionData; /* AccessRestrictionData */
843 static int hf_gsm_map_ms_ext_AccessRestrictionData; /* Ext_AccessRestrictionData */
844 static int hf_gsm_map_ms_gmlc_List; /* GMLC_List */
845 static int hf_gsm_map_ms_lcs_PrivacyExceptionList; /* LCS_PrivacyExceptionList */
846 static int hf_gsm_map_ms_molr_List; /* MOLR_List */
847 static int hf_gsm_map_ms_add_lcs_PrivacyExceptionList; /* LCS_PrivacyExceptionList */
848 static int hf_gsm_map_ms_GMLC_List_item; /* ISDN_AddressString */
849 static int hf_gsm_map_ms_GPRSDataList_item; /* PDP_Context */
850 static int hf_gsm_map_ms_pdp_ContextId; /* ContextId */
851 static int hf_gsm_map_ms_pdp_Type; /* PDP_Type */
852 static int hf_gsm_map_ms_pdp_Address; /* PDP_Address */
853 static int hf_gsm_map_ms_qos_Subscribed; /* QoS_Subscribed */
854 static int hf_gsm_map_ms_ext_QoS_Subscribed; /* Ext_QoS_Subscribed */
855 static int hf_gsm_map_ms_pdp_ChargingCharacteristics; /* ChargingCharacteristics */
856 static int hf_gsm_map_ms_ext2_QoS_Subscribed; /* Ext2_QoS_Subscribed */
857 static int hf_gsm_map_ms_ext3_QoS_Subscribed; /* Ext3_QoS_Subscribed */
858 static int hf_gsm_map_ms_ext4_QoS_Subscribed; /* Ext4_QoS_Subscribed */
859 static int hf_gsm_map_ms_ext_pdp_Type; /* Ext_PDP_Type */
860 static int hf_gsm_map_ms_ext_pdp_Address; /* PDP_Address */
861 static int hf_gsm_map_ms_gprsDataList; /* GPRSDataList */
862 static int hf_gsm_map_ms_gprs_CSI; /* GPRS_CSI */
863 static int hf_gsm_map_ms_mo_sms_CSI; /* SMS_CSI */
864 static int hf_gsm_map_ms_mt_sms_CSI; /* SMS_CSI */
865 static int hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList; /* MT_smsCAMELTDP_CriteriaList */
866 static int hf_gsm_map_ms_mg_csi; /* MG_CSI */
867 static int hf_gsm_map_ms_gprs_CamelTDPDataList; /* GPRS_CamelTDPDataList */
868 static int hf_gsm_map_ms_camelCapabilityHandling; /* CamelCapabilityHandling */
869 static int hf_gsm_map_ms_notificationToCSE; /* NULL */
870 static int hf_gsm_map_ms_csi_Active; /* NULL */
871 static int hf_gsm_map_ms_GPRS_CamelTDPDataList_item; /* GPRS_CamelTDPData */
872 static int hf_gsm_map_ms_gprs_TriggerDetectionPoint; /* GPRS_TriggerDetectionPoint */
873 static int hf_gsm_map_ms_serviceKey; /* ServiceKey */
874 static int hf_gsm_map_ms_gsmSCF_Address; /* ISDN_AddressString */
875 static int hf_gsm_map_ms_defaultSessionHandling; /* DefaultGPRS_Handling */
876 static int hf_gsm_map_ms_LSADataList_item; /* LSAData */
877 static int hf_gsm_map_ms_lsaIdentity; /* LSAIdentity */
878 static int hf_gsm_map_ms_lsaAttributes; /* LSAAttributes */
879 static int hf_gsm_map_ms_lsaActiveModeIndicator; /* NULL */
880 static int hf_gsm_map_ms_lsaOnlyAccessIndicator; /* LSAOnlyAccessIndicator */
881 static int hf_gsm_map_ms_lsaDataList; /* LSADataList */
882 static int hf_gsm_map_ms_msisdn; /* ISDN_AddressString */
883 static int hf_gsm_map_ms_category; /* Category */
884 static int hf_gsm_map_ms_subscriberStatus; /* SubscriberStatus */
885 static int hf_gsm_map_ms_bearerServiceList; /* BearerServiceList */
886 static int hf_gsm_map_ms_teleserviceList; /* TeleserviceList */
887 static int hf_gsm_map_ms_provisionedSS; /* Ext_SS_InfoList */
888 static int hf_gsm_map_ms_odb_Data; /* ODB_Data */
889 static int hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature; /* NULL */
890 static int hf_gsm_map_ms_vbsSubscriptionData; /* VBSDataList */
891 static int hf_gsm_map_ms_vgcsSubscriptionData; /* VGCSDataList */
892 static int hf_gsm_map_ms_vlrCamelSubscriptionInfo; /* VlrCamelSubscriptionInfo */
893 static int hf_gsm_map_ms_BearerServiceList_item; /* Ext_BearerServiceCode */
894 static int hf_gsm_map_ms_TeleserviceList_item; /* Ext_TeleserviceCode */
895 static int hf_gsm_map_ms_odb_GeneralData; /* ODB_GeneralData */
896 static int hf_gsm_map_ms_odb_HPLMN_Data; /* ODB_HPLMN_Data */
897 static int hf_gsm_map_ms_Ext_SS_InfoList_item; /* Ext_SS_Info */
898 static int hf_gsm_map_ms_forwardingInfo; /* Ext_ForwInfo */
899 static int hf_gsm_map_ms_callBarringInfo; /* Ext_CallBarInfo */
900 static int hf_gsm_map_ms_cug_Info; /* CUG_Info */
901 static int hf_gsm_map_ms_ss_Data; /* Ext_SS_Data */
902 static int hf_gsm_map_ms_emlpp_Info; /* EMLPP_Info */
903 static int hf_gsm_map_ms_ss_Code; /* SS_Code */
904 static int hf_gsm_map_ms_forwardingFeatureList; /* Ext_ForwFeatureList */
905 static int hf_gsm_map_ms_Ext_ForwFeatureList_item; /* Ext_ForwFeature */
906 static int hf_gsm_map_ms_basicService; /* Ext_BasicServiceCode */
907 static int hf_gsm_map_ms_ss_Status; /* Ext_SS_Status */
908 static int hf_gsm_map_ms_forwardedToNumber; /* ISDN_AddressString */
909 static int hf_gsm_map_ms_forwardedToSubaddress; /* ISDN_SubaddressString */
910 static int hf_gsm_map_ms_forwardingOptions; /* T_forwardingOptions */
911 static int hf_gsm_map_ms_noReplyConditionTime; /* Ext_NoRepCondTime */
912 static int hf_gsm_map_ms_longForwardedToNumber; /* FTN_AddressString */
913 static int hf_gsm_map_ms_callBarringFeatureList; /* Ext_CallBarFeatureList */
914 static int hf_gsm_map_ms_Ext_CallBarFeatureList_item; /* Ext_CallBarringFeature */
915 static int hf_gsm_map_ms_cug_SubscriptionList; /* CUG_SubscriptionList */
916 static int hf_gsm_map_ms_cug_FeatureList; /* CUG_FeatureList */
917 static int hf_gsm_map_ms_CUG_SubscriptionList_item; /* CUG_Subscription */
918 static int hf_gsm_map_ms_cug_Index; /* CUG_Index */
919 static int hf_gsm_map_ms_cug_Interlock; /* CUG_Interlock */
920 static int hf_gsm_map_ms_intraCUG_Options; /* IntraCUG_Options */
921 static int hf_gsm_map_ms_basicServiceGroupList; /* Ext_BasicServiceGroupList */
922 static int hf_gsm_map_ms_CUG_FeatureList_item; /* CUG_Feature */
923 static int hf_gsm_map_ms_Ext_BasicServiceGroupList_item; /* Ext_BasicServiceCode */
924 static int hf_gsm_map_ms_preferentialCUG_Indicator; /* CUG_Index */
925 static int hf_gsm_map_ms_interCUG_Restrictions; /* InterCUG_Restrictions */
926 static int hf_gsm_map_ms_ss_SubscriptionOption; /* SS_SubscriptionOption */
927 static int hf_gsm_map_ms_LCS_PrivacyExceptionList_item; /* LCS_PrivacyClass */
928 static int hf_gsm_map_ms_notificationToMSUser; /* NotificationToMSUser */
929 static int hf_gsm_map_ms_externalClientList; /* ExternalClientList */
930 static int hf_gsm_map_ms_plmnClientList; /* PLMNClientList */
931 static int hf_gsm_map_ms_ext_externalClientList; /* Ext_ExternalClientList */
932 static int hf_gsm_map_ms_serviceTypeList; /* ServiceTypeList */
933 static int hf_gsm_map_ms_ExternalClientList_item; /* ExternalClient */
934 static int hf_gsm_map_ms_PLMNClientList_item; /* LCSClientInternalID */
935 static int hf_gsm_map_ms_Ext_ExternalClientList_item; /* ExternalClient */
936 static int hf_gsm_map_ms_clientIdentity; /* LCSClientExternalID */
937 static int hf_gsm_map_ms_gmlc_Restriction; /* GMLC_Restriction */
938 static int hf_gsm_map_ms_ServiceTypeList_item; /* ServiceType */
939 static int hf_gsm_map_ms_serviceTypeIdentity; /* LCSServiceTypeID */
940 static int hf_gsm_map_ms_MOLR_List_item; /* MOLR_Class */
941 static int hf_gsm_map_ms_ZoneCodeList_item; /* ZoneCode */
942 static int hf_gsm_map_ms_ss_List; /* SS_List */
943 static int hf_gsm_map_ms_regionalSubscriptionResponse; /* RegionalSubscriptionResponse */
944 static int hf_gsm_map_ms_basicServiceList; /* BasicServiceList */
945 static int hf_gsm_map_ms_regionalSubscriptionIdentifier; /* ZoneCode */
946 static int hf_gsm_map_ms_vbsGroupIndication; /* NULL */
947 static int hf_gsm_map_ms_vgcsGroupIndication; /* NULL */
948 static int hf_gsm_map_ms_camelSubscriptionInfoWithdraw; /* NULL */
949 static int hf_gsm_map_ms_gprsSubscriptionDataWithdraw; /* GPRSSubscriptionDataWithdraw */
950 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature; /* NULL */
951 static int hf_gsm_map_ms_lsaInformationWithdraw; /* LSAInformationWithdraw */
952 static int hf_gsm_map_ms_gmlc_ListWithdraw; /* NULL */
953 static int hf_gsm_map_ms_istInformationWithdraw; /* NULL */
954 static int hf_gsm_map_ms_specificCSI_Withdraw; /* SpecificCSI_Withdraw */
955 static int hf_gsm_map_ms_chargingCharacteristicsWithdraw; /* NULL */
956 static int hf_gsm_map_ms_stn_srWithdraw; /* NULL */
957 static int hf_gsm_map_ms_epsSubscriptionDataWithdraw; /* EPS_SubscriptionDataWithdraw */
958 static int hf_gsm_map_ms_apn_oi_replacementWithdraw; /* NULL */
959 static int hf_gsm_map_ms_csg_SubscriptionDeleted; /* NULL */
960 static int hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw; /* NULL */
961 static int hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw; /* NULL */
962 static int hf_gsm_map_ms_subscribed_vsrvccWithdraw; /* NULL */
963 static int hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted; /* NULL */
964 static int hf_gsm_map_ms_additionalMSISDN_Withdraw; /* NULL */
965 static int hf_gsm_map_ms_cs_to_ps_SRVCC_Withdraw; /* NULL */
966 static int hf_gsm_map_ms_imsiGroupIdList_Withdraw; /* NULL */
967 static int hf_gsm_map_ms_userPlaneIntegrityProtectionWithdraw; /* NULL */
968 static int hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count_Withdraw; /* NULL */
969 static int hf_gsm_map_ms_ue_UsageTypeWithdraw; /* NULL */
970 static int hf_gsm_map_ms_reset_idsWithdraw; /* NULL */
971 static int hf_gsm_map_ms_iab_OperationWithdraw; /* NULL */
972 static int hf_gsm_map_ms_allGPRSData; /* NULL */
973 static int hf_gsm_map_ms_contextIdList; /* ContextIdList */
974 static int hf_gsm_map_ms_allEPS_Data; /* NULL */
975 static int hf_gsm_map_ms_ContextIdList_item; /* ContextId */
976 static int hf_gsm_map_ms_allLSAData; /* NULL */
977 static int hf_gsm_map_ms_lsaIdentityList; /* LSAIdentityList */
978 static int hf_gsm_map_ms_LSAIdentityList_item; /* LSAIdentity */
979 static int hf_gsm_map_ms_BasicServiceList_item; /* Ext_BasicServiceCode */
980 static int hf_gsm_map_ms_o_CSI; /* O_CSI */
981 static int hf_gsm_map_ms_ss_CSI; /* SS_CSI */
982 static int hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList; /* O_BcsmCamelTDPCriteriaList */
983 static int hf_gsm_map_ms_tif_CSI; /* NULL */
984 static int hf_gsm_map_ms_m_CSI; /* M_CSI */
985 static int hf_gsm_map_ms_vt_CSI; /* T_CSI */
986 static int hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList; /* T_BCSM_CAMEL_TDP_CriteriaList */
987 static int hf_gsm_map_ms_d_CSI; /* D_CSI */
988 static int hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item; /* MT_smsCAMELTDP_Criteria */
989 static int hf_gsm_map_ms_sms_TriggerDetectionPoint; /* SMS_TriggerDetectionPoint */
990 static int hf_gsm_map_ms_tpdu_TypeCriterion; /* TPDU_TypeCriterion */
991 static int hf_gsm_map_ms_TPDU_TypeCriterion_item; /* MT_SMS_TPDU_Type */
992 static int hf_gsm_map_ms_dp_AnalysedInfoCriteriaList; /* DP_AnalysedInfoCriteriaList */
993 static int hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item; /* DP_AnalysedInfoCriterium */
994 static int hf_gsm_map_ms_dialledNumber; /* ISDN_AddressString */
995 static int hf_gsm_map_ms_defaultCallHandling; /* DefaultCallHandling */
996 static int hf_gsm_map_ms_ss_CamelData; /* SS_CamelData */
997 static int hf_gsm_map_ms_ss_EventList; /* SS_EventList */
998 static int hf_gsm_map_ms_SS_EventList_item; /* SS_Code */
999 static int hf_gsm_map_ms_o_BcsmCamelTDPDataList; /* O_BcsmCamelTDPDataList */
1000 static int hf_gsm_map_ms_csiActive; /* NULL */
1001 static int hf_gsm_map_ms_O_BcsmCamelTDPDataList_item; /* O_BcsmCamelTDPData */
1002 static int hf_gsm_map_ms_o_BcsmTriggerDetectionPoint; /* O_BcsmTriggerDetectionPoint */
1003 static int hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item; /* O_BcsmCamelTDP_Criteria */
1004 static int hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item; /* T_BCSM_CAMEL_TDP_Criteria */
1005 static int hf_gsm_map_ms_destinationNumberCriteria; /* DestinationNumberCriteria */
1006 static int hf_gsm_map_ms_basicServiceCriteria; /* BasicServiceCriteria */
1007 static int hf_gsm_map_ms_callTypeCriteria; /* CallTypeCriteria */
1008 static int hf_gsm_map_ms_o_CauseValueCriteria; /* O_CauseValueCriteria */
1009 static int hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint; /* T_BcsmTriggerDetectionPoint */
1010 static int hf_gsm_map_ms_t_CauseValueCriteria; /* T_CauseValueCriteria */
1011 static int hf_gsm_map_ms_matchType; /* MatchType */
1012 static int hf_gsm_map_ms_destinationNumberList; /* DestinationNumberList */
1013 static int hf_gsm_map_ms_destinationNumberLengthList; /* DestinationNumberLengthList */
1014 static int hf_gsm_map_ms_DestinationNumberList_item; /* ISDN_AddressString */
1015 static int hf_gsm_map_ms_DestinationNumberLengthList_item; /* INTEGER_1_maxNumOfISDN_AddressDigits */
1016 static int hf_gsm_map_ms_BasicServiceCriteria_item; /* Ext_BasicServiceCode */
1017 static int hf_gsm_map_ms_O_CauseValueCriteria_item; /* CauseValue */
1018 static int hf_gsm_map_ms_T_CauseValueCriteria_item; /* CauseValue */
1019 static int hf_gsm_map_ms_sms_CAMEL_TDP_DataList; /* SMS_CAMEL_TDP_DataList */
1020 static int hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item; /* SMS_CAMEL_TDP_Data */
1021 static int hf_gsm_map_ms_defaultSMS_Handling; /* DefaultSMS_Handling */
1022 static int hf_gsm_map_ms_mobilityTriggers; /* MobilityTriggers */
1023 static int hf_gsm_map_ms_MobilityTriggers_item; /* MM_Code */
1024 static int hf_gsm_map_ms_t_BcsmCamelTDPDataList; /* T_BcsmCamelTDPDataList */
1025 static int hf_gsm_map_ms_T_BcsmCamelTDPDataList_item; /* T_BcsmCamelTDPData */
1026 static int hf_gsm_map_ms_t_BcsmTriggerDetectionPoint; /* T_BcsmTriggerDetectionPoint */
1027 static int hf_gsm_map_ms_ggsn_Address; /* GSN_Address */
1028 static int hf_gsm_map_ms_ggsn_Number; /* ISDN_AddressString */
1029 static int hf_gsm_map_ms_mobileNotReachableReason; /* AbsentSubscriberDiagnosticSM */
1030 static int hf_gsm_map_ms_sendingNodenumber; /* SendingNode_Number */
1031 static int hf_gsm_map_ms_hlr_List; /* HLR_List */
1032 static int hf_gsm_map_ms_reset_Id_List; /* Reset_Id_List */
1033 static int hf_gsm_map_ms_subscriptionData; /* InsertSubscriberDataArg */
1034 static int hf_gsm_map_ms_subscriptionDataDeletion; /* DeleteSubscriberDataArg */
1035 static int hf_gsm_map_ms_css_Number; /* ISDN_AddressString */
1036 static int hf_gsm_map_ms_msNotReachable; /* NULL */
1037 static int hf_gsm_map_ms_VBSDataList_item; /* VoiceBroadcastData */
1038 static int hf_gsm_map_ms_VGCSDataList_item; /* VoiceGroupCallData */
1039 static int hf_gsm_map_ms_groupId; /* GroupId */
1040 static int hf_gsm_map_ms_additionalSubscriptions; /* AdditionalSubscriptions */
1041 static int hf_gsm_map_ms_additionalInfo; /* AdditionalInfo */
1042 static int hf_gsm_map_ms_longGroupId; /* Long_GroupId */
1043 static int hf_gsm_map_ms_groupid; /* GroupId */
1044 static int hf_gsm_map_ms_broadcastInitEntitlement; /* NULL */
1045 static int hf_gsm_map_ms_requestedInfo; /* RequestedInfo */
1046 static int hf_gsm_map_ms_callPriority; /* EMLPP_Priority */
1047 static int hf_gsm_map_ms_subscriberInfo; /* SubscriberInfo */
1048 static int hf_gsm_map_ms_subscriberState; /* SubscriberState */
1049 static int hf_gsm_map_ms_ps_SubscriberState; /* PS_SubscriberState */
1050 static int hf_gsm_map_ms_ms_Classmark2; /* MS_Classmark2 */
1051 static int hf_gsm_map_ms_gprs_MS_Class; /* GPRSMSClass */
1052 static int hf_gsm_map_ms_mnpInfoRes; /* MNPInfoRes */
1053 static int hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication; /* IMS_VoiceOverPS_SessionsInd */
1054 static int hf_gsm_map_ms_lastUE_ActivityTime; /* Time */
1055 static int hf_gsm_map_ms_lastRAT_Type; /* Used_RAT_Type */
1056 static int hf_gsm_map_ms_eps_SubscriberState; /* PS_SubscriberState */
1057 static int hf_gsm_map_ms_timeZone; /* TimeZone */
1058 static int hf_gsm_map_ms_daylightSavingTime; /* DaylightSavingTime */
1059 static int hf_gsm_map_ms_locationInformation5GS; /* LocationInformation5GS */
1060 static int hf_gsm_map_ms_routeingNumber; /* RouteingNumber */
1061 static int hf_gsm_map_ms_numberPortabilityStatus; /* NumberPortabilityStatus */
1062 static int hf_gsm_map_ms_mSNetworkCapability; /* MSNetworkCapability */
1063 static int hf_gsm_map_ms_mSRadioAccessCapability; /* MSRadioAccessCapability */
1064 static int hf_gsm_map_ms_locationInformation_01; /* NULL */
1065 static int hf_gsm_map_ms_subscriberState_01; /* NULL */
1066 static int hf_gsm_map_ms_currentLocation; /* NULL */
1067 static int hf_gsm_map_ms_requestedDomain; /* DomainType */
1068 static int hf_gsm_map_ms_imei_01; /* NULL */
1069 static int hf_gsm_map_ms_ms_classmark; /* NULL */
1070 static int hf_gsm_map_ms_mnpRequestedInfo; /* NULL */
1071 static int hf_gsm_map_ms_locationInformationEPS_Supported; /* NULL */
1072 static int hf_gsm_map_ms_t_adsData; /* NULL */
1073 static int hf_gsm_map_ms_requestedNodes; /* RequestedNodes */
1074 static int hf_gsm_map_ms_servingNodeIndication; /* NULL */
1075 static int hf_gsm_map_ms_localTimeZoneRequest; /* NULL */
1076 static int hf_gsm_map_ms_ageOfLocationInformation; /* AgeOfLocationInformation */
1077 static int hf_gsm_map_ms_geographicalInformation; /* GeographicalInformation */
1078 static int hf_gsm_map_ms_vlr_number; /* ISDN_AddressString */
1079 static int hf_gsm_map_ms_locationNumber; /* LocationNumber */
1080 static int hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI; /* CellGlobalIdOrServiceAreaIdOrLAI */
1081 static int hf_gsm_map_ms_selectedLSA_Id; /* LSAIdentity */
1082 static int hf_gsm_map_ms_geodeticInformation; /* GeodeticInformation */
1083 static int hf_gsm_map_ms_currentLocationRetrieved; /* NULL */
1084 static int hf_gsm_map_ms_sai_Present; /* NULL */
1085 static int hf_gsm_map_ms_userCSGInformation; /* UserCSGInformation */
1086 static int hf_gsm_map_ms_e_utranCellGlobalIdentity; /* E_UTRAN_CGI */
1087 static int hf_gsm_map_ms_trackingAreaIdentity; /* TA_Id */
1088 static int hf_gsm_map_ms_mme_Name; /* DiameterIdentity */
1089 static int hf_gsm_map_ms_routeingAreaIdentity; /* RAIdentity */
1090 static int hf_gsm_map_ms_selectedLSAIdentity; /* LSAIdentity */
1091 static int hf_gsm_map_ms_nrCellGlobalIdentity; /* NR_CGI */
1092 static int hf_gsm_map_ms_amf_address; /* FQDN */
1093 static int hf_gsm_map_ms_vplmnId; /* PLMN_Id */
1094 static int hf_gsm_map_ms_localtimeZone; /* TimeZone */
1095 static int hf_gsm_map_ms_nrTrackingAreaIdentity; /* NR_TA_Id */
1096 static int hf_gsm_map_ms_accessMode; /* OCTET_STRING_SIZE_1 */
1097 static int hf_gsm_map_ms_cmi; /* OCTET_STRING_SIZE_1 */
1098 static int hf_gsm_map_ms_assumedIdle; /* NULL */
1099 static int hf_gsm_map_ms_camelBusy; /* NULL */
1100 static int hf_gsm_map_ms_netDetNotReachable; /* NotReachableReason */
1101 static int hf_gsm_map_ms_notProvidedFromVLR; /* NULL */
1102 static int hf_gsm_map_ms_notProvidedFromSGSNorMME; /* NULL */
1103 static int hf_gsm_map_ms_ps_Detached; /* NULL */
1104 static int hf_gsm_map_ms_ps_AttachedNotReachableForPaging; /* NULL */
1105 static int hf_gsm_map_ms_ps_AttachedReachableForPaging; /* NULL */
1106 static int hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging; /* PDP_ContextInfoList */
1107 static int hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging; /* PDP_ContextInfoList */
1108 static int hf_gsm_map_ms_PDP_ContextInfoList_item; /* PDP_ContextInfo */
1109 static int hf_gsm_map_ms_pdp_ContextIdentifier; /* ContextId */
1110 static int hf_gsm_map_ms_pdp_ContextActive; /* NULL */
1111 static int hf_gsm_map_ms_apn_Subscribed; /* APN */
1112 static int hf_gsm_map_ms_apn_InUse; /* APN */
1113 static int hf_gsm_map_ms_nsapi; /* NSAPI */
1114 static int hf_gsm_map_ms_transactionId; /* TransactionId */
1115 static int hf_gsm_map_ms_teid_ForGnAndGp; /* TEID */
1116 static int hf_gsm_map_ms_teid_ForIu; /* TEID */
1117 static int hf_gsm_map_ms_qos_Subscribed_01; /* Ext_QoS_Subscribed */
1118 static int hf_gsm_map_ms_qos_Requested; /* Ext_QoS_Subscribed */
1119 static int hf_gsm_map_ms_qos_Negotiated; /* Ext_QoS_Subscribed */
1120 static int hf_gsm_map_ms_chargingId; /* GPRSChargingID */
1121 static int hf_gsm_map_ms_rnc_Address; /* GSN_Address */
1122 static int hf_gsm_map_ms_qos2_Subscribed; /* Ext2_QoS_Subscribed */
1123 static int hf_gsm_map_ms_qos2_Requested; /* Ext2_QoS_Subscribed */
1124 static int hf_gsm_map_ms_qos2_Negotiated; /* Ext2_QoS_Subscribed */
1125 static int hf_gsm_map_ms_qos3_Subscribed; /* Ext3_QoS_Subscribed */
1126 static int hf_gsm_map_ms_qos3_Requested; /* Ext3_QoS_Subscribed */
1127 static int hf_gsm_map_ms_qos3_Negotiated; /* Ext3_QoS_Subscribed */
1128 static int hf_gsm_map_ms_qos4_Subscribed; /* Ext4_QoS_Subscribed */
1129 static int hf_gsm_map_ms_qos4_Requested; /* Ext4_QoS_Subscribed */
1130 static int hf_gsm_map_ms_qos4_Negotiated; /* Ext4_QoS_Subscribed */
1131 static int hf_gsm_map_ms_subscriberIdentity; /* SubscriberIdentity */
1132 static int hf_gsm_map_ms_requestedSubscriptionInfo; /* RequestedSubscriptionInfo */
1133 static int hf_gsm_map_ms_callForwardingData; /* CallForwardingData */
1134 static int hf_gsm_map_ms_callBarringData; /* CallBarringData */
1135 static int hf_gsm_map_ms_odb_Info; /* ODB_Info */
1136 static int hf_gsm_map_ms_camel_SubscriptionInfo; /* CAMEL_SubscriptionInfo */
1137 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases; /* SupportedCamelPhases */
1138 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases; /* SupportedCamelPhases */
1139 static int hf_gsm_map_ms_offeredCamel4CSIsInVLR; /* OfferedCamel4CSIs */
1140 static int hf_gsm_map_ms_offeredCamel4CSIsInSGSN; /* OfferedCamel4CSIs */
1141 static int hf_gsm_map_ms_msisdn_BS_List; /* MSISDN_BS_List */
1142 static int hf_gsm_map_ms_cw_Data; /* CallWaitingData */
1143 static int hf_gsm_map_ms_ch_Data; /* CallHoldData */
1144 static int hf_gsm_map_ms_clip_Data; /* ClipData */
1145 static int hf_gsm_map_ms_clir_Data; /* ClirData */
1146 static int hf_gsm_map_ms_ect_data; /* EctData */
1147 static int hf_gsm_map_ms_cwFeatureList; /* Ext_CwFeatureList */
1148 static int hf_gsm_map_ms_Ext_CwFeatureList_item; /* Ext_CwFeature */
1149 static int hf_gsm_map_ms_overrideCategory; /* OverrideCategory */
1150 static int hf_gsm_map_ms_cliRestrictionOption; /* CliRestrictionOption */
1151 static int hf_gsm_map_ms_requestedSS_Info; /* SS_ForBS_Code */
1152 static int hf_gsm_map_ms_odb; /* NULL */
1153 static int hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo; /* RequestedCAMEL_SubscriptionInfo */
1154 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01; /* NULL */
1155 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01; /* NULL */
1156 static int hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo; /* AdditionalRequestedCAMEL_SubscriptionInfo */
1157 static int hf_gsm_map_ms_msisdn_BS_List_01; /* NULL */
1158 static int hf_gsm_map_ms_csg_SubscriptionDataRequested; /* NULL */
1159 static int hf_gsm_map_ms_cw_Info; /* NULL */
1160 static int hf_gsm_map_ms_clip_Info; /* NULL */
1161 static int hf_gsm_map_ms_clir_Info; /* NULL */
1162 static int hf_gsm_map_ms_hold_Info; /* NULL */
1163 static int hf_gsm_map_ms_ect_Info; /* NULL */
1164 static int hf_gsm_map_ms_MSISDN_BS_List_item; /* MSISDN_BS */
1165 static int hf_gsm_map_ms_password; /* Password */
1166 static int hf_gsm_map_ms_wrongPasswordAttemptsCounter; /* WrongPasswordAttemptsCounter */
1167 static int hf_gsm_map_ms_t_CSI; /* T_CSI */
1168 static int hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList; /* T_BCSM_CAMEL_TDP_CriteriaList */
1169 static int hf_gsm_map_ms_tif_CSI_NotificationToCSE; /* NULL */
1170 static int hf_gsm_map_ms_specificCSIDeletedList; /* SpecificCSI_Withdraw */
1171 static int hf_gsm_map_ms_o_IM_CSI; /* O_CSI */
1172 static int hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList; /* O_BcsmCamelTDPCriteriaList */
1173 static int hf_gsm_map_ms_d_IM_CSI; /* D_CSI */
1174 static int hf_gsm_map_ms_vt_IM_CSI; /* T_CSI */
1175 static int hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList; /* T_BCSM_CAMEL_TDP_CriteriaList */
1176 static int hf_gsm_map_ms_modificationRequestFor_CF_Info; /* ModificationRequestFor_CF_Info */
1177 static int hf_gsm_map_ms_modificationRequestFor_CB_Info; /* ModificationRequestFor_CB_Info */
1178 static int hf_gsm_map_ms_modificationRequestFor_CSI; /* ModificationRequestFor_CSI */
1179 static int hf_gsm_map_ms_modificationRequestFor_ODB_data; /* ModificationRequestFor_ODB_data */
1180 static int hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data; /* ModificationRequestFor_IP_SM_GW_Data */
1181 static int hf_gsm_map_ms_activationRequestForUE_reachability; /* RequestedServingNode */
1182 static int hf_gsm_map_ms_modificationRequestFor_CSG; /* ModificationRequestFor_CSG */
1183 static int hf_gsm_map_ms_modificationRequestFor_CW_Data; /* ModificationRequestFor_CW_Info */
1184 static int hf_gsm_map_ms_modificationRequestFor_CLIP_Data; /* ModificationRequestFor_CLIP_Info */
1185 static int hf_gsm_map_ms_modificationRequestFor_CLIR_Data; /* ModificationRequestFor_CLIR_Info */
1186 static int hf_gsm_map_ms_modificationRequestFor_HOLD_Data; /* ModificationRequestFor_CH_Info */
1187 static int hf_gsm_map_ms_modificationRequestFor_ECT_Data; /* ModificationRequestFor_ECT_Info */
1188 static int hf_gsm_map_ms_modifyNotificationToCSE; /* ModificationInstruction */
1189 static int hf_gsm_map_ms_ss_InfoFor_CSE; /* Ext_SS_InfoFor_CSE */
1190 static int hf_gsm_map_ms_serviceCentreAddress; /* AddressString */
1191 static int hf_gsm_map_ms_forwardedToNumber_01; /* AddressString */
1192 static int hf_gsm_map_ms_odb_data; /* ODB_Data */
1193 static int hf_gsm_map_ms_requestedCamel_SubscriptionInfo; /* RequestedCAMEL_SubscriptionInfo */
1194 static int hf_gsm_map_ms_modifyCSI_State; /* ModificationInstruction */
1195 static int hf_gsm_map_ms_modifyRegistrationStatus; /* ModificationInstruction */
1196 static int hf_gsm_map_ms_ip_sm_gw_DiameterAddress; /* NetworkNodeDiameterAddress */
1197 static int hf_gsm_map_ms_forwardingInfoFor_CSE; /* Ext_ForwardingInfoFor_CSE */
1198 static int hf_gsm_map_ms_callBarringInfoFor_CSE; /* Ext_CallBarringInfoFor_CSE */
1199 static int hf_gsm_map_ms_allInformationSent; /* NULL */
1200 static int hf_gsm_map_ms_ue_reachable; /* ServingNode */
1201 static int hf_gsm_map_ms_eventMet; /* MM_Code */
1202 static int hf_gsm_map_ms_supportedCAMELPhases; /* SupportedCamelPhases */
1203 static int hf_gsm_map_ms_offeredCamel4Functionalities; /* OfferedCamel4Functionalities */
1204 static int hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator; /* NULL */
1205 static int hf_gsm_map_ms_naea_PreferredCI; /* NAEA_PreferredCI */
1206 static int hf_gsm_map_ms_gprsSubscriptionData; /* GPRSSubscriptionData */
1207 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature; /* NULL */
1208 static int hf_gsm_map_ms_networkAccessMode; /* NetworkAccessMode */
1209 static int hf_gsm_map_ms_lsaInformation; /* LSAInformation */
1210 static int hf_gsm_map_ms_lmu_Indicator; /* NULL */
1211 static int hf_gsm_map_ms_lcsInformation; /* LCSInformation */
1212 static int hf_gsm_map_ms_istAlertTimer; /* IST_AlertTimerValue */
1213 static int hf_gsm_map_ms_superChargerSupportedInHLR; /* AgeIndicator */
1214 static int hf_gsm_map_ms_mc_SS_Info; /* MC_SS_Info */
1215 static int hf_gsm_map_ms_cs_AllocationRetentionPriority; /* CS_AllocationRetentionPriority */
1216 static int hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo; /* SGSN_CAMEL_SubscriptionInfo */
1217 static int hf_gsm_map_ms_ics_Indicator; /* BOOLEAN */
1218 static int hf_gsm_map_ms_eps_SubscriptionData; /* EPS_SubscriptionData */
1219 static int hf_gsm_map_ms_ue_ReachabilityRequestIndicator; /* NULL */
1220 static int hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer; /* SubscribedPeriodicRAUTAUtimer */
1221 static int hf_gsm_map_ms_vplmnLIPAAllowed; /* NULL */
1222 static int hf_gsm_map_ms_mdtUserConsent; /* BOOLEAN */
1223 static int hf_gsm_map_ms_subscribedPeriodicLAUtimer; /* SubscribedPeriodicLAUtimer */
1224 static int hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList; /* VPLMN_CSG_SubscriptionDataList */
1225 static int hf_gsm_map_ms_additionalMSISDN; /* ISDN_AddressString */
1226 static int hf_gsm_map_ms_psAndSMS_OnlyServiceProvision; /* NULL */
1227 static int hf_gsm_map_ms_smsInSGSNAllowed; /* NULL */
1228 static int hf_gsm_map_ms_cs_to_ps_SRVCC_Allowed_Indicator; /* NULL */
1229 static int hf_gsm_map_ms_pcscf_Restoration_Request; /* NULL */
1230 static int hf_gsm_map_ms_adjacentAccessRestrictionDataList; /* AdjacentAccessRestrictionDataList */
1231 static int hf_gsm_map_ms_imsi_Group_Id_List; /* IMSI_GroupIdList */
1232 static int hf_gsm_map_ms_userPlaneIntegrityProtectionIndicator; /* NULL */
1233 static int hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count; /* DL_Buffering_Suggested_Packet_Count */
1234 static int hf_gsm_map_ms_eDRX_Cycle_Length_List; /* EDRX_Cycle_Length_List */
1235 static int hf_gsm_map_ms_iab_Operation_Allowed_Indicator; /* NULL */
1236 /* named bits */
1237 static int hf_gsm_map_ms_SupportedRAT_Types_utran;
1238 static int hf_gsm_map_ms_SupportedRAT_Types_geran;
1239 static int hf_gsm_map_ms_SupportedRAT_Types_gan;
1240 static int hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution;
1241 static int hf_gsm_map_ms_SupportedRAT_Types_e_utran;
1242 static int hf_gsm_map_ms_SupportedRAT_Types_nb_iot;
1243 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1;
1244 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2;
1245 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3;
1246 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4;
1247 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5;
1248 static int hf_gsm_map_ms_ISR_Information_updateLocation;
1249 static int hf_gsm_map_ms_ISR_Information_cancelSGSN;
1250 static int hf_gsm_map_ms_ISR_Information_initialAttachIndicator;
1251 static int hf_gsm_map_ms_SupportedFeatures_odb_all_apn;
1252 static int hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN;
1253 static int hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN;
1254 static int hf_gsm_map_ms_SupportedFeatures_odb_all_og;
1255 static int hf_gsm_map_ms_SupportedFeatures_odb_all_international_og;
1256 static int hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country;
1257 static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og;
1258 static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country;
1259 static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country;
1260 static int hf_gsm_map_ms_SupportedFeatures_regSub;
1261 static int hf_gsm_map_ms_SupportedFeatures_trace;
1262 static int hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep;
1263 static int hf_gsm_map_ms_SupportedFeatures_lcs_universal;
1264 static int hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated;
1265 static int hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated;
1266 static int hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator;
1267 static int hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType;
1268 static int hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS;
1269 static int hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation;
1270 static int hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation;
1271 static int hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty;
1272 static int hf_gsm_map_ms_SupportedFeatures_sm_mo_pp;
1273 static int hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls;
1274 static int hf_gsm_map_ms_SupportedFeatures_baoc;
1275 static int hf_gsm_map_ms_SupportedFeatures_boic;
1276 static int hf_gsm_map_ms_SupportedFeatures_boicExHC;
1277 static int hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval;
1278 static int hf_gsm_map_ms_SupportedFeatures_additionalMsisdn;
1279 static int hf_gsm_map_ms_SupportedFeatures_smsInMME;
1280 static int hf_gsm_map_ms_SupportedFeatures_smsInSGSN;
1281 static int hf_gsm_map_ms_SupportedFeatures_ue_Reachability_Notification;
1282 static int hf_gsm_map_ms_SupportedFeatures_state_Location_Information_Retrieval;
1283 static int hf_gsm_map_ms_SupportedFeatures_partialPurge;
1284 static int hf_gsm_map_ms_SupportedFeatures_gddInSGSN;
1285 static int hf_gsm_map_ms_SupportedFeatures_sgsnCAMELCapability;
1286 static int hf_gsm_map_ms_SupportedFeatures_pcscf_Restoration;
1287 static int hf_gsm_map_ms_SupportedFeatures_dedicatedCoreNetworks;
1288 static int hf_gsm_map_ms_SupportedFeatures_non_IP_PDN_Type_APNs;
1289 static int hf_gsm_map_ms_SupportedFeatures_non_IP_PDP_Type_APNs;
1290 static int hf_gsm_map_ms_SupportedFeatures_nrAsSecondaryRAT;
1291 static int hf_gsm_map_ms_Ext_SupportedFeatures_unlicensedSpectrumAsSecondaryRAT;
1292 static int hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit;
1293 static int hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit;
1294 static int hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator;
1295 static int hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator;
1296 static int hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator;
1297 static int hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator;
1298 static int hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus;
1299 static int hf_gsm_map_ms_RequestedEquipmentInfo_bmuef;
1300 static int hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed;
1301 static int hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed;
1302 static int hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed;
1303 static int hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed;
1304 static int hf_gsm_map_ms_AccessRestrictionData_wb_e_utranNotAllowed;
1305 static int hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed;
1306 static int hf_gsm_map_ms_AccessRestrictionData_nb_iotNotAllowed;
1307 static int hf_gsm_map_ms_AccessRestrictionData_enhancedCoverageNotAllowed;
1308 static int hf_gsm_map_ms_Ext_AccessRestrictionData_nrAsSecondaryRATNotAllowed;
1309 static int hf_gsm_map_ms_Ext_AccessRestrictionData_unlicensedSpectrumAsSecondaryRATNotAllowed;
1310 static int hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred;
1311 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred;
1312 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred;
1313 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred;
1314 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred;
1315 static int hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred;
1316 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred;
1317 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred;
1318 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred;
1319 static int hf_gsm_map_ms_ODB_GeneralData_allECT_Barred;
1320 static int hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred;
1321 static int hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred;
1322 static int hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred;
1323 static int hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred;
1324 static int hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred;
1325 static int hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred;
1326 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred;
1327 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred;
1328 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred;
1329 static int hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred;
1330 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred;
1331 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred;
1332 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred;
1333 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred;
1334 static int hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred;
1335 static int hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred;
1336 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred;
1337 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred;
1338 static int hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred;
1339 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1;
1340 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2;
1341 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3;
1342 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4;
1343 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi;
1344 static int hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi;
1345 static int hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi;
1346 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi;
1347 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi;
1348 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi;
1349 static int hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi;
1350 static int hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi;
1351 static int hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi;
1352 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi;
1353 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi;
1354 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI;
1355 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI;
1356 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI;
1357 static int hf_gsm_map_ms_SupportedCamelPhases_phase1;
1358 static int hf_gsm_map_ms_SupportedCamelPhases_phase2;
1359 static int hf_gsm_map_ms_SupportedCamelPhases_phase3;
1360 static int hf_gsm_map_ms_SupportedCamelPhases_phase4;
1361 static int hf_gsm_map_ms_OfferedCamel4CSIs_o_csi;
1362 static int hf_gsm_map_ms_OfferedCamel4CSIs_d_csi;
1363 static int hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi;
1364 static int hf_gsm_map_ms_OfferedCamel4CSIs_t_csi;
1365 static int hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi;
1366 static int hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi;
1367 static int hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements;
1368 static int hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt;
1369 static int hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg;
1370 static int hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg;
1371 static int hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg;
1372 static int hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased;
1373 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument;
1374 static int hf_gsm_map_ms_OfferedCamel4Functionalities_playTone;
1375 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall;
1376 static int hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator;
1377 static int hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP;
1378 static int hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting;
1379 static int hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP;
1380 static int hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions;
1381 static int hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements;
1382 static int hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements;
1383 static int hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices;
1384 static int hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices;
1385 static int hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP;
1386 static int hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP;
1387 static int hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation;
1388 static int hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest;
1389 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest;
1390 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset;
1391 static int hf_gsm_map_ms_RequestedNodes_mme;
1392 static int hf_gsm_map_ms_RequestedNodes_sgsn;
1393 static int hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn;
1394 static int hf_gsm_map_ms_ServingNode_mme;
1395 static int hf_gsm_map_ms_ServingNode_sgsn;
1397 /* --- Module MAP-CH-DataTypes --- --- --- */
1399 static int hf_gsm_map_ch_cug_Interlock; /* CUG_Interlock */
1400 static int hf_gsm_map_ch_cug_OutgoingAccess; /* NULL */
1401 static int hf_gsm_map_ch_extensionContainer; /* ExtensionContainer */
1402 static int hf_gsm_map_ch_msisdn; /* ISDN_AddressString */
1403 static int hf_gsm_map_ch_cug_CheckInfo; /* CUG_CheckInfo */
1404 static int hf_gsm_map_ch_numberOfForwarding; /* NumberOfForwarding */
1405 static int hf_gsm_map_ch_interrogationType; /* InterrogationType */
1406 static int hf_gsm_map_ch_or_Interrogation; /* NULL */
1407 static int hf_gsm_map_ch_or_Capability; /* OR_Phase */
1408 static int hf_gsm_map_ch_gmsc_OrGsmSCF_Address; /* ISDN_AddressString */
1409 static int hf_gsm_map_ch_callReferenceNumber; /* CallReferenceNumber */
1410 static int hf_gsm_map_ch_forwardingReason; /* ForwardingReason */
1411 static int hf_gsm_map_ch_basicServiceGroup; /* Ext_BasicServiceCode */
1412 static int hf_gsm_map_ch_networkSignalInfo; /* ExternalSignalInfo */
1413 static int hf_gsm_map_ch_camelInfo; /* CamelInfo */
1414 static int hf_gsm_map_ch_suppressionOfAnnouncement; /* SuppressionOfAnnouncement */
1415 static int hf_gsm_map_ch_alertingPattern; /* AlertingPattern */
1416 static int hf_gsm_map_ch_ccbs_Call; /* NULL */
1417 static int hf_gsm_map_ch_supportedCCBS_Phase; /* SupportedCCBS_Phase */
1418 static int hf_gsm_map_ch_additionalSignalInfo; /* Ext_ExternalSignalInfo */
1419 static int hf_gsm_map_ch_istSupportIndicator; /* IST_SupportIndicator */
1420 static int hf_gsm_map_ch_pre_pagingSupported; /* NULL */
1421 static int hf_gsm_map_ch_callDiversionTreatmentIndicator; /* CallDiversionTreatmentIndicator */
1422 static int hf_gsm_map_ch_longFTN_Supported; /* NULL */
1423 static int hf_gsm_map_ch_suppress_VT_CSI; /* NULL */
1424 static int hf_gsm_map_ch_suppressIncomingCallBarring; /* NULL */
1425 static int hf_gsm_map_ch_gsmSCF_InitiatedCall; /* NULL */
1426 static int hf_gsm_map_ch_basicServiceGroup2; /* Ext_BasicServiceCode */
1427 static int hf_gsm_map_ch_networkSignalInfo2; /* ExternalSignalInfo */
1428 static int hf_gsm_map_ch_suppressMTSS; /* SuppressMTSS */
1429 static int hf_gsm_map_ch_mtRoamingRetrySupported; /* NULL */
1430 static int hf_gsm_map_ch_callPriority; /* EMLPP_Priority */
1431 static int hf_gsm_map_ch_imsi; /* IMSI */
1432 static int hf_gsm_map_ch_extendedRoutingInfo; /* ExtendedRoutingInfo */
1433 static int hf_gsm_map_ch_cugSubscriptionFlag; /* NULL */
1434 static int hf_gsm_map_ch_subscriberInfo; /* SubscriberInfo */
1435 static int hf_gsm_map_ch_ss_List; /* SS_List */
1436 static int hf_gsm_map_ch_basicService; /* Ext_BasicServiceCode */
1437 static int hf_gsm_map_ch_forwardingInterrogationRequired; /* NULL */
1438 static int hf_gsm_map_ch_vmsc_Address; /* ISDN_AddressString */
1439 static int hf_gsm_map_ch_naea_PreferredCI; /* NAEA_PreferredCI */
1440 static int hf_gsm_map_ch_ccbs_Indicators; /* CCBS_Indicators */
1441 static int hf_gsm_map_ch_numberPortabilityStatus; /* NumberPortabilityStatus */
1442 static int hf_gsm_map_ch_istAlertTimer; /* IST_AlertTimerValue */
1443 static int hf_gsm_map_ch_supportedCamelPhasesInVMSC; /* SupportedCamelPhases */
1444 static int hf_gsm_map_ch_offeredCamel4CSIsInVMSC; /* OfferedCamel4CSIs */
1445 static int hf_gsm_map_ch_routingInfo2; /* RoutingInfo */
1446 static int hf_gsm_map_ch_ss_List2; /* SS_List */
1447 static int hf_gsm_map_ch_basicService2; /* Ext_BasicServiceCode */
1448 static int hf_gsm_map_ch_allowedServices; /* AllowedServices */
1449 static int hf_gsm_map_ch_unavailabilityCause; /* UnavailabilityCause */
1450 static int hf_gsm_map_ch_releaseResourcesSupported; /* NULL */
1451 static int hf_gsm_map_ch_gsm_BearerCapability; /* ExternalSignalInfo */
1452 static int hf_gsm_map_ch_ccbs_Possible; /* NULL */
1453 static int hf_gsm_map_ch_keepCCBS_CallIndicator; /* NULL */
1454 static int hf_gsm_map_ch_roamingNumber; /* ISDN_AddressString */
1455 static int hf_gsm_map_ch_forwardingData; /* ForwardingData */
1456 static int hf_gsm_map_ch_forwardedToNumber; /* ISDN_AddressString */
1457 static int hf_gsm_map_ch_forwardedToSubaddress; /* ISDN_SubaddressString */
1458 static int hf_gsm_map_ch_forwardingOptions; /* ForwardingOptions */
1459 static int hf_gsm_map_ch_longForwardedToNumber; /* FTN_AddressString */
1460 static int hf_gsm_map_ch_msc_Number; /* ISDN_AddressString */
1461 static int hf_gsm_map_ch_lmsi; /* LMSI */
1462 static int hf_gsm_map_ch_gmsc_Address; /* ISDN_AddressString */
1463 static int hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode; /* SupportedCamelPhases */
1464 static int hf_gsm_map_ch_orNotSupportedInGMSC; /* NULL */
1465 static int hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode; /* OfferedCamel4CSIs */
1466 static int hf_gsm_map_ch_pagingArea; /* PagingArea */
1467 static int hf_gsm_map_ch_mtrf_Indicator; /* NULL */
1468 static int hf_gsm_map_ch_oldMSC_Number; /* ISDN_AddressString */
1469 static int hf_gsm_map_ch_lastUsedLtePLMN_Id; /* PLMN_Id */
1470 static int hf_gsm_map_ch_o_CSI; /* O_CSI */
1471 static int hf_gsm_map_ch_uu_Data; /* UU_Data */
1472 static int hf_gsm_map_ch_allInformationSent; /* NULL */
1473 static int hf_gsm_map_ch_d_csi; /* D_CSI */
1474 static int hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList; /* O_BcsmCamelTDPCriteriaList */
1475 static int hf_gsm_map_ch_mtRoamingRetry; /* NULL */
1476 static int hf_gsm_map_ch_uuIndicator; /* UUIndicator */
1477 static int hf_gsm_map_ch_uui; /* UUI */
1478 static int hf_gsm_map_ch_uusCFInteraction; /* NULL */
1479 static int hf_gsm_map_ch_supportedCamelPhases; /* SupportedCamelPhases */
1480 static int hf_gsm_map_ch_suppress_T_CSI; /* NULL */
1481 static int hf_gsm_map_ch_offeredCamel4CSIs; /* OfferedCamel4CSIs */
1482 static int hf_gsm_map_ch_routingInfo; /* RoutingInfo */
1483 static int hf_gsm_map_ch_camelRoutingInfo; /* CamelRoutingInfo */
1484 static int hf_gsm_map_ch_gmscCamelSubscriptionInfo; /* GmscCamelSubscriptionInfo */
1485 static int hf_gsm_map_ch_t_CSI; /* T_CSI */
1486 static int hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList; /* O_BcsmCamelTDPCriteriaList */
1487 static int hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList; /* T_BCSM_CAMEL_TDP_CriteriaList */
1488 static int hf_gsm_map_ch_ccbs_Monitoring; /* ReportingState */
1489 static int hf_gsm_map_ch_ccbs_SubscriberStatus; /* CCBS_SubscriberStatus */
1490 static int hf_gsm_map_ch_eventReportData; /* EventReportData */
1491 static int hf_gsm_map_ch_callReportdata; /* CallReportData */
1492 static int hf_gsm_map_ch_monitoringMode; /* MonitoringMode */
1493 static int hf_gsm_map_ch_callOutcome; /* CallOutcome */
1494 static int hf_gsm_map_ch_callInfo; /* ExternalSignalInfo */
1495 static int hf_gsm_map_ch_ccbs_Feature; /* CCBS_Feature */
1496 static int hf_gsm_map_ch_translatedB_Number; /* ISDN_AddressString */
1497 static int hf_gsm_map_ch_replaceB_Number; /* NULL */
1498 static int hf_gsm_map_ch_ruf_Outcome; /* RUF_Outcome */
1499 static int hf_gsm_map_ch_istInformationWithdraw; /* NULL */
1500 static int hf_gsm_map_ch_callTerminationIndicator; /* CallTerminationIndicator */
1501 static int hf_gsm_map_ch_msrn; /* ISDN_AddressString */
1502 /* named bits */
1503 static int hf_gsm_map_ch_SuppressMTSS_suppressCUG;
1504 static int hf_gsm_map_ch_SuppressMTSS_suppressCCBS;
1505 static int hf_gsm_map_ch_AllowedServices_firstServiceAllowed;
1506 static int hf_gsm_map_ch_AllowedServices_secondServiceAllowed;
1508 /* --- Module MAP-LCS-DataTypes --- --- --- */
1510 static int hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU; /* LCS_ClientID */
1511 static int hf_gsm_map_lcs_mlcNumber; /* ISDN_AddressString */
1512 static int hf_gsm_map_lcs_targetMS; /* SubscriberIdentity */
1513 static int hf_gsm_map_lcs_extensionContainer; /* ExtensionContainer */
1514 static int hf_gsm_map_lcs_lcsLocationInfo; /* LCSLocationInfo */
1515 static int hf_gsm_map_lcs_v_gmlc_Address; /* GSN_Address */
1516 static int hf_gsm_map_lcs_h_gmlc_Address; /* GSN_Address */
1517 static int hf_gsm_map_lcs_ppr_Address; /* GSN_Address */
1518 static int hf_gsm_map_lcs_additional_v_gmlc_Address; /* GSN_Address */
1519 static int hf_gsm_map_lcs_networkNode_Number; /* ISDN_AddressString */
1520 static int hf_gsm_map_lcs_lmsi; /* LMSI */
1521 static int hf_gsm_map_lcs_gprsNodeIndicator; /* NULL */
1522 static int hf_gsm_map_lcs_additional_Number; /* Additional_Number */
1523 static int hf_gsm_map_lcs_supportedLCS_CapabilitySets; /* SupportedLCS_CapabilitySets */
1524 static int hf_gsm_map_lcs_additional_LCS_CapabilitySets; /* SupportedLCS_CapabilitySets */
1525 static int hf_gsm_map_lcs_mme_Name; /* DiameterIdentity */
1526 static int hf_gsm_map_lcs_aaa_Server_Name; /* DiameterIdentity */
1527 static int hf_gsm_map_lcs_sgsn_Name; /* DiameterIdentity */
1528 static int hf_gsm_map_lcs_sgsn_Realm; /* DiameterIdentity */
1529 static int hf_gsm_map_lcs_locationType; /* LocationType */
1530 static int hf_gsm_map_lcs_mlc_Number; /* ISDN_AddressString */
1531 static int hf_gsm_map_lcs_lcs_ClientID; /* LCS_ClientID */
1532 static int hf_gsm_map_lcs_privacyOverride; /* NULL */
1533 static int hf_gsm_map_lcs_imsi; /* IMSI */
1534 static int hf_gsm_map_lcs_msisdn; /* ISDN_AddressString */
1535 static int hf_gsm_map_lcs_imei; /* IMEI */
1536 static int hf_gsm_map_lcs_lcs_Priority; /* LCS_Priority */
1537 static int hf_gsm_map_lcs_lcs_QoS; /* LCS_QoS */
1538 static int hf_gsm_map_lcs_supportedGADShapes; /* SupportedGADShapes */
1539 static int hf_gsm_map_lcs_lcs_ReferenceNumber; /* LCS_ReferenceNumber */
1540 static int hf_gsm_map_lcs_lcsServiceTypeID; /* LCSServiceTypeID */
1541 static int hf_gsm_map_lcs_lcsCodeword; /* LCSCodeword */
1542 static int hf_gsm_map_lcs_lcs_PrivacyCheck; /* LCS_PrivacyCheck */
1543 static int hf_gsm_map_lcs_areaEventInfo; /* AreaEventInfo */
1544 static int hf_gsm_map_lcs_mo_lrShortCircuitIndicator; /* NULL */
1545 static int hf_gsm_map_lcs_periodicLDRInfo; /* PeriodicLDRInfo */
1546 static int hf_gsm_map_lcs_reportingPLMNList; /* ReportingPLMNList */
1547 static int hf_gsm_map_lcs_locationEstimateType; /* LocationEstimateType */
1548 static int hf_gsm_map_lcs_deferredLocationEventType; /* DeferredLocationEventType */
1549 static int hf_gsm_map_lcs_lcsClientType; /* LCSClientType */
1550 static int hf_gsm_map_lcs_lcsClientExternalID; /* LCSClientExternalID */
1551 static int hf_gsm_map_lcs_lcsClientDialedByMS; /* AddressString */
1552 static int hf_gsm_map_lcs_lcsClientInternalID; /* LCSClientInternalID */
1553 static int hf_gsm_map_lcs_lcsClientName; /* LCSClientName */
1554 static int hf_gsm_map_lcs_lcsAPN; /* APN */
1555 static int hf_gsm_map_lcs_lcsRequestorID; /* LCSRequestorID */
1556 static int hf_gsm_map_lcs_dataCodingScheme; /* USSD_DataCodingScheme */
1557 static int hf_gsm_map_lcs_nameString; /* NameString */
1558 static int hf_gsm_map_lcs_lcs_FormatIndicator; /* LCS_FormatIndicator */
1559 static int hf_gsm_map_lcs_requestorIDString; /* RequestorIDString */
1560 static int hf_gsm_map_lcs_horizontal_accuracy; /* Horizontal_Accuracy */
1561 static int hf_gsm_map_lcs_verticalCoordinateRequest; /* NULL */
1562 static int hf_gsm_map_lcs_vertical_accuracy; /* Vertical_Accuracy */
1563 static int hf_gsm_map_lcs_responseTime; /* ResponseTime */
1564 static int hf_gsm_map_lcs_velocityRequest; /* NULL */
1565 static int hf_gsm_map_lcs_lcs_qos_class; /* LCS_QoS_Class */
1566 static int hf_gsm_map_lcs_responseTimeCategory; /* ResponseTimeCategory */
1567 static int hf_gsm_map_lcs_lcsCodewordString; /* LCSCodewordString */
1568 static int hf_gsm_map_lcs_callSessionUnrelated; /* PrivacyCheckRelatedAction */
1569 static int hf_gsm_map_lcs_callSessionRelated; /* PrivacyCheckRelatedAction */
1570 static int hf_gsm_map_lcs_areaDefinition; /* AreaDefinition */
1571 static int hf_gsm_map_lcs_occurrenceInfo; /* OccurrenceInfo */
1572 static int hf_gsm_map_lcs_intervalTime; /* IntervalTime */
1573 static int hf_gsm_map_lcs_areaList; /* AreaList */
1574 static int hf_gsm_map_lcs_AreaList_item; /* Area */
1575 static int hf_gsm_map_lcs_areaType; /* AreaType */
1576 static int hf_gsm_map_lcs_areaIdentification; /* AreaIdentification */
1577 static int hf_gsm_map_lcs_reportingAmount; /* ReportingAmount */
1578 static int hf_gsm_map_lcs_reportingInterval; /* ReportingInterval */
1579 static int hf_gsm_map_lcs_reportingOptionMilliseconds; /* ReportingOptionMilliseconds */
1580 static int hf_gsm_map_lcs_reportingAmountMilliseconds; /* ReportingAmountMilliseconds */
1581 static int hf_gsm_map_lcs_reportingIntervalMilliseconds; /* ReportingIntervalMilliseconds */
1582 static int hf_gsm_map_lcs_plmn_ListPrioritized; /* NULL */
1583 static int hf_gsm_map_lcs_plmn_List; /* PLMNList */
1584 static int hf_gsm_map_lcs_PLMNList_item; /* ReportingPLMN */
1585 static int hf_gsm_map_lcs_plmn_Id; /* PLMN_Id */
1586 static int hf_gsm_map_lcs_ran_Technology; /* RAN_Technology */
1587 static int hf_gsm_map_lcs_ran_PeriodicLocationSupport; /* NULL */
1588 static int hf_gsm_map_lcs_locationEstimate; /* Ext_GeographicalInformation */
1589 static int hf_gsm_map_lcs_ageOfLocationEstimate; /* AgeOfLocationInformation */
1590 static int hf_gsm_map_lcs_add_LocationEstimate; /* Add_GeographicalInformation */
1591 static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator; /* NULL */
1592 static int hf_gsm_map_lcs_geranPositioningData; /* PositioningDataInformation */
1593 static int hf_gsm_map_lcs_utranPositioningData; /* UtranPositioningDataInfo */
1594 static int hf_gsm_map_lcs_cellIdOrSai; /* CellGlobalIdOrServiceAreaIdOrLAI */
1595 static int hf_gsm_map_lcs_sai_Present; /* NULL */
1596 static int hf_gsm_map_lcs_accuracyFulfilmentIndicator; /* AccuracyFulfilmentIndicator */
1597 static int hf_gsm_map_lcs_velocityEstimate; /* VelocityEstimate */
1598 static int hf_gsm_map_lcs_geranGANSSpositioningData; /* GeranGANSSpositioningData */
1599 static int hf_gsm_map_lcs_utranGANSSpositioningData; /* UtranGANSSpositioningData */
1600 static int hf_gsm_map_lcs_targetServingNodeForHandover; /* ServingNodeAddress */
1601 static int hf_gsm_map_lcs_utranAdditionalPositioningData; /* UtranAdditionalPositioningData */
1602 static int hf_gsm_map_lcs_utranBaroPressureMeas; /* UtranBaroPressureMeas */
1603 static int hf_gsm_map_lcs_utranCivicAddress; /* UtranCivicAddress */
1604 static int hf_gsm_map_lcs_lcs_Event; /* LCS_Event */
1605 static int hf_gsm_map_lcs_na_ESRD; /* ISDN_AddressString */
1606 static int hf_gsm_map_lcs_na_ESRK; /* ISDN_AddressString */
1607 static int hf_gsm_map_lcs_slr_ArgExtensionContainer; /* SLR_ArgExtensionContainer */
1608 static int hf_gsm_map_lcs_deferredmt_lrData; /* Deferredmt_lrData */
1609 static int hf_gsm_map_lcs_pseudonymIndicator; /* NULL */
1610 static int hf_gsm_map_lcs_sequenceNumber; /* SequenceNumber */
1611 static int hf_gsm_map_lcs_terminationCause; /* TerminationCause */
1612 static int hf_gsm_map_lcs_msc_Number; /* ISDN_AddressString */
1613 static int hf_gsm_map_lcs_sgsn_Number; /* ISDN_AddressString */
1614 static int hf_gsm_map_lcs_mme_Number; /* DiameterIdentity */
1615 /* named bits */
1616 static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable;
1617 static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea;
1618 static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea;
1619 static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea;
1620 static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR;
1621 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint;
1622 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle;
1623 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse;
1624 static int hf_gsm_map_lcs_SupportedGADShapes_polygon;
1625 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude;
1626 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid;
1627 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc;
1629 /* --- Module MAP-GR-DataTypes --- --- --- */
1631 static int hf_gsm_map_gr_teleservice; /* Ext_TeleserviceCode */
1632 static int hf_gsm_map_gr_asciCallReference; /* ASCI_CallReference */
1633 static int hf_gsm_map_gr_codec_Info; /* CODEC_Info */
1634 static int hf_gsm_map_gr_cipheringAlgorithm; /* CipheringAlgorithm */
1635 static int hf_gsm_map_gr_groupKeyNumber_Vk_Id; /* GroupKeyNumber */
1636 static int hf_gsm_map_gr_groupKey; /* Kc */
1637 static int hf_gsm_map_gr_priority; /* EMLPP_Priority */
1638 static int hf_gsm_map_gr_uplinkFree; /* NULL */
1639 static int hf_gsm_map_gr_extensionContainer; /* ExtensionContainer */
1640 static int hf_gsm_map_gr_vstk; /* VSTK */
1641 static int hf_gsm_map_gr_vstk_rand; /* VSTK_RAND */
1642 static int hf_gsm_map_gr_talkerChannelParameter; /* NULL */
1643 static int hf_gsm_map_gr_uplinkReplyIndicator; /* NULL */
1644 static int hf_gsm_map_gr_groupCallNumber; /* ISDN_AddressString */
1645 static int hf_gsm_map_gr_imsi; /* IMSI */
1646 static int hf_gsm_map_gr_talkerPriority; /* TalkerPriority */
1647 static int hf_gsm_map_gr_additionalInfo; /* AdditionalInfo */
1648 static int hf_gsm_map_gr_uplinkRequestAck; /* NULL */
1649 static int hf_gsm_map_gr_uplinkReleaseIndication; /* NULL */
1650 static int hf_gsm_map_gr_uplinkRejectCommand; /* NULL */
1651 static int hf_gsm_map_gr_uplinkSeizedCommand; /* NULL */
1652 static int hf_gsm_map_gr_uplinkReleaseCommand; /* NULL */
1653 static int hf_gsm_map_gr_stateAttributes; /* StateAttributes */
1654 static int hf_gsm_map_gr_emergencyModeResetCommandFlag; /* NULL */
1655 static int hf_gsm_map_gr_sm_RP_UI; /* SignalInfo */
1656 static int hf_gsm_map_gr_an_APDU; /* AccessNetworkSignalInfo */
1657 static int hf_gsm_map_gr_uplinkRequest; /* NULL */
1658 static int hf_gsm_map_gr_releaseGroupCall; /* NULL */
1659 static int hf_gsm_map_gr_downlinkAttached; /* NULL */
1660 static int hf_gsm_map_gr_uplinkAttached; /* NULL */
1661 static int hf_gsm_map_gr_dualCommunication; /* NULL */
1662 static int hf_gsm_map_gr_callOriginator; /* NULL */
1663 static int hf_gsm_map_gr_requestedInfo; /* RequestedInfo */
1664 static int hf_gsm_map_gr_groupId; /* Long_GroupId */
1665 static int hf_gsm_map_gr_cellId; /* GlobalCellId */
1666 static int hf_gsm_map_gr_tmsi; /* TMSI */
1667 static int hf_gsm_map_gr_cksn; /* Cksn */
1668 static int hf_gsm_map_gr_anchorMSC_Address; /* ISDN_AddressString */
1669 static int hf_gsm_map_gr_additionalSubscriptions; /* AdditionalSubscriptions */
1670 static int hf_gsm_map_gr_kc; /* Kc */
1672 /* --- Module MAP-DialogueInformation --- --- --- */
1674 static int hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU; /* MAP_DialoguePDU */
1675 static int hf_gsm_map_dialogue_map_open; /* MAP_OpenInfo */
1676 static int hf_gsm_map_dialogue_map_accept; /* MAP_AcceptInfo */
1677 static int hf_gsm_map_dialogue_map_close; /* MAP_CloseInfo */
1678 static int hf_gsm_map_dialogue_map_refuse; /* MAP_RefuseInfo */
1679 static int hf_gsm_map_dialogue_map_userAbort; /* MAP_UserAbortInfo */
1680 static int hf_gsm_map_dialogue_map_providerAbort; /* MAP_ProviderAbortInfo */
1681 static int hf_gsm_map_dialogue_destinationReference; /* AddressString */
1682 static int hf_gsm_map_dialogue_originationReference; /* AddressString */
1683 static int hf_gsm_map_dialogue_extensionContainer; /* ExtensionContainer */
1684 static int hf_gsm_map_dialogue_reason; /* Reason */
1685 static int hf_gsm_map_dialogue_alternativeApplicationContext; /* OBJECT_IDENTIFIER */
1686 static int hf_gsm_map_dialogue_map_UserAbortChoice; /* MAP_UserAbortChoice */
1687 static int hf_gsm_map_dialogue_userSpecificReason; /* NULL */
1688 static int hf_gsm_map_dialogue_userResourceLimitation; /* NULL */
1689 static int hf_gsm_map_dialogue_resourceUnavailable; /* ResourceUnavailableReason */
1690 static int hf_gsm_map_dialogue_applicationProcedureCancellation; /* ProcedureCancellationReason */
1691 static int hf_gsm_map_dialogue_map_ProviderAbortReason; /* MAP_ProviderAbortReason */
1693 /* --- Module DummyMAP --- --- --- */
1695 static int hf_gsm_old_invoke; /* Invoke */
1696 static int hf_gsm_old_returnResultLast; /* ReturnResult */
1697 static int hf_gsm_old_returnError; /* ReturnError */
1698 static int hf_gsm_old_reject; /* Reject */
1699 static int hf_gsm_old_returnResultNotLast; /* ReturnResult */
1700 static int hf_gsm_old_invokeID; /* InvokeIdType */
1701 static int hf_gsm_old_linkedID; /* InvokeIdType */
1702 static int hf_gsm_old_opCode; /* MAP_OPERATION */
1703 static int hf_gsm_old_invokeparameter; /* InvokeParameter */
1704 static int hf_gsm_old_resultretres; /* T_resultretres */
1705 static int hf_gsm_old_returnparameter; /* ReturnResultParameter */
1706 static int hf_gsm_old_errorCode; /* MAP_ERROR */
1707 static int hf_gsm_old_parameter; /* ReturnErrorParameter */
1708 static int hf_gsm_old_invokeIDRej; /* T_invokeIDRej */
1709 static int hf_gsm_old_derivable; /* InvokeIdType */
1710 static int hf_gsm_old_not_derivable; /* NULL */
1711 static int hf_gsm_old_problem; /* T_problem */
1712 static int hf_gsm_old_generalProblem; /* GeneralProblem */
1713 static int hf_gsm_old_invokeProblem; /* InvokeProblem */
1714 static int hf_gsm_old_returnResultProblem; /* ReturnResultProblem */
1715 static int hf_gsm_old_returnErrorProblem; /* ReturnErrorProblem */
1716 static int hf_gsm_old_localValue; /* OperationLocalvalue */
1717 static int hf_gsm_old_globalValue; /* OBJECT_IDENTIFIER */
1718 static int hf_gsm_old_localValue_01; /* LocalErrorcode */
1719 static int hf_gsm_old_protocolId; /* ProtocolId */
1720 static int hf_gsm_old_signalInfo; /* SignalInfo */
1721 static int hf_gsm_old_extensionContainer; /* ExtensionContainer */
1722 static int hf_gsm_old_gsm_BearerCapability; /* ExternalSignalInfo */
1723 static int hf_gsm_old_isdn_BearerCapability; /* ExternalSignalInfo */
1724 static int hf_gsm_old_call_Direction; /* CallDirection */
1725 static int hf_gsm_old_b_Subscriber_Address; /* ISDN_AddressString */
1726 static int hf_gsm_old_chosenChannel; /* ExternalSignalInfo */
1727 static int hf_gsm_old_lowerLayerCompatibility; /* ExternalSignalInfo */
1728 static int hf_gsm_old_highLayerCompatibility; /* ExternalSignalInfo */
1729 static int hf_gsm_old_sIWFSNumber; /* ISDN_AddressString */
1730 static int hf_gsm_old_imsi; /* IMSI */
1731 static int hf_gsm_old_vlr_Number; /* ISDN_AddressString */
1732 static int hf_gsm_old_targetCellId; /* GlobalCellId */
1733 static int hf_gsm_old_ho_NumberNotRequired; /* NULL */
1734 static int hf_gsm_old_bss_APDU; /* Bss_APDU */
1735 static int hf_gsm_old_handoverNumber; /* ISDN_AddressString */
1736 static int hf_gsm_old_SendAuthenticationInfoResOld_item; /* SendAuthenticationInfoResOld_item */
1737 static int hf_gsm_old_rand; /* RAND */
1738 static int hf_gsm_old_sres; /* SRES */
1739 static int hf_gsm_old_kc; /* Kc */
1740 static int hf_gsm_old_tripletList; /* TripletListold */
1741 static int hf_gsm_old_TripletListold_item; /* AuthenticationTriplet_v2 */
1742 static int hf_gsm_old_channelType; /* ExternalSignalInfo */
1743 static int hf_gsm_old_securityHeader; /* SecurityHeader */
1744 static int hf_gsm_old_protectedPayload; /* ProtectedPayload */
1745 static int hf_gsm_old_securityParametersIndex; /* SecurityParametersIndex */
1746 static int hf_gsm_old_originalComponentIdentifier; /* OriginalComponentIdentifier */
1747 static int hf_gsm_old_initialisationVector; /* InitialisationVector */
1748 static int hf_gsm_old_operationCode; /* OperationCode */
1749 static int hf_gsm_old_errorCode_01; /* ErrorCode */
1750 static int hf_gsm_old_userInfo; /* NULL */
1751 static int hf_gsm_old_localValue_02; /* INTEGER */
1752 static int hf_gsm_old_msisdn; /* ISDN_AddressString */
1753 static int hf_gsm_old_category; /* Category */
1754 static int hf_gsm_old_basicService; /* BasicServiceCode */
1755 static int hf_gsm_old_operatorSS_Code; /* T_operatorSS_Code */
1756 static int hf_gsm_old_operatorSS_Code_item; /* OCTET_STRING_SIZE_1 */
1757 static int hf_gsm_old_sm_RP_DA; /* SM_RP_DAold */
1758 static int hf_gsm_old_sm_RP_OA; /* SM_RP_OAold */
1759 static int hf_gsm_old_sm_RP_UI; /* SignalInfo */
1760 static int hf_gsm_old_moreMessagesToSend; /* NULL */
1761 static int hf_gsm_old_imsi_01; /* T_imsi */
1762 static int hf_gsm_old_lmsi; /* T_lmsi */
1763 static int hf_gsm_old_serviceCentreAddressDA; /* T_serviceCentreAddressDA */
1764 static int hf_gsm_old_noSM_RP_DA; /* T_noSM_RP_DA */
1765 static int hf_gsm_old_msisdn_01; /* T_msisdn */
1766 static int hf_gsm_old_serviceCentreAddressOA; /* T_serviceCentreAddressOA */
1767 static int hf_gsm_old_noSM_RP_OA; /* T_noSM_RP_OA */
1768 static int hf_gsm_old_cug_CheckInfo; /* CUG_CheckInfo */
1769 static int hf_gsm_old_numberOfForwarding; /* NumberOfForwarding */
1770 static int hf_gsm_old_networkSignalInfo; /* ExternalSignalInfo */
1771 static int hf_gsm_old_routingInfo; /* RoutingInfo */
1772 static int hf_gsm_old_originatingEntityNumber; /* ISDN_AddressString */
1773 static int hf_gsm_old_msisdn_02; /* AddressString */
1774 static int hf_gsm_old_sm_RP_PRI; /* BOOLEAN */
1775 static int hf_gsm_old_serviceCentreAddress; /* AddressString */
1776 static int hf_gsm_old_cug_Interlock; /* CUG_Interlock */
1777 static int hf_gsm_old_teleserviceCode; /* TeleserviceCode */
1778 static int hf_gsm_old_locationInfoWithLMSI; /* LocationInfoWithLMSIv2 */
1779 static int hf_gsm_old_mwd_Set; /* BOOLEAN */
1780 static int hf_gsm_old_locationInfo; /* LocationInfo */
1781 static int hf_gsm_old_lmsi_01; /* LMSI */
1782 static int hf_gsm_old_roamingNumber; /* ISDN_AddressString */
1783 static int hf_gsm_old_msc_Number; /* ISDN_AddressString */
1784 static int hf_gsm_old_subscriberId; /* SubscriberId */
1785 static int hf_gsm_old_requestParameterList; /* RequestParameterList */
1786 static int hf_gsm_old_RequestParameterList_item; /* RequestParameter */
1787 static int hf_gsm_old_authenticationSet; /* AuthenticationSetListOld */
1788 static int hf_gsm_old_subscriberData; /* SubscriberData */
1789 static int hf_gsm_old_ki; /* Ki */
1790 static int hf_gsm_old_tripletList_01; /* TripletList */
1791 static int hf_gsm_old_quintupletList; /* QuintupletList */
1792 static int hf_gsm_old_SentParameterList_item; /* SentParameter */
1793 static int hf_gsm_old_networkResource; /* NetworkResource */
1794 static int hf_gsm_old_hlr_Number; /* ISDN_AddressString */
1795 static int hf_gsm_old_hlr_List; /* HLR_List */
1797 /* --- Module SS-DataTypes --- --- --- */
1799 static int hf_gsm_ss_ss_Code; /* SS_Code */
1800 static int hf_gsm_ss_ss_Status; /* SS_Status */
1801 static int hf_gsm_ss_ss_Notification; /* SS_Notification */
1802 static int hf_gsm_ss_callIsWaiting_Indicator; /* NULL */
1803 static int hf_gsm_ss_callOnHold_Indicator; /* CallOnHold_Indicator */
1804 static int hf_gsm_ss_mpty_Indicator; /* NULL */
1805 static int hf_gsm_ss_cug_Index; /* CUG_Index */
1806 static int hf_gsm_ss_clirSuppressionRejected; /* NULL */
1807 static int hf_gsm_ss_ect_Indicator; /* ECT_Indicator */
1808 static int hf_gsm_ss_nameIndicator; /* NameIndicator */
1809 static int hf_gsm_ss_ccbs_Feature; /* CCBS_Feature */
1810 static int hf_gsm_ss_alertingPattern; /* AlertingPattern */
1811 static int hf_gsm_ss_multicall_Indicator; /* Multicall_Indicator */
1812 static int hf_gsm_ss_chargingInformation; /* ChargingInformation */
1813 static int hf_gsm_ss_e1; /* E1 */
1814 static int hf_gsm_ss_e2; /* E2 */
1815 static int hf_gsm_ss_e3; /* E3 */
1816 static int hf_gsm_ss_e4; /* E4 */
1817 static int hf_gsm_ss_e5; /* E5 */
1818 static int hf_gsm_ss_e6; /* E6 */
1819 static int hf_gsm_ss_e7; /* E7 */
1820 static int hf_gsm_ss_suppressPrefCUG; /* NULL */
1821 static int hf_gsm_ss_suppressOA; /* NULL */
1822 static int hf_gsm_ss_ect_CallState; /* ECT_CallState */
1823 static int hf_gsm_ss_rdn; /* RDN */
1824 static int hf_gsm_ss_callingName; /* Name */
1825 static int hf_gsm_ss_namePresentationAllowed; /* NameSet */
1826 static int hf_gsm_ss_presentationRestricted; /* NULL */
1827 static int hf_gsm_ss_nameUnavailable; /* NULL */
1828 static int hf_gsm_ss_namePresentationRestricted; /* NameSet */
1829 static int hf_gsm_ss_dataCodingScheme; /* USSD_DataCodingScheme */
1830 static int hf_gsm_ss_lengthInCharacters; /* INTEGER */
1831 static int hf_gsm_ss_nameString; /* USSD_String */
1832 static int hf_gsm_ss_presentationAllowedAddress; /* RemotePartyNumber */
1833 static int hf_gsm_ss_numberNotAvailableDueToInterworking; /* NULL */
1834 static int hf_gsm_ss_presentationRestrictedAddress; /* RemotePartyNumber */
1835 static int hf_gsm_ss_partyNumber; /* ISDN_AddressString */
1836 static int hf_gsm_ss_partyNumberSubaddress; /* ISDN_SubaddressString */
1837 static int hf_gsm_ss_deflectedToNumber; /* AddressString */
1838 static int hf_gsm_ss_deflectedToSubaddress; /* ISDN_SubaddressString */
1839 static int hf_gsm_ss_uUS_Service; /* UUS_Service */
1840 static int hf_gsm_ss_uUS_Required; /* BOOLEAN */
1841 static int hf_gsm_ss_notificationType; /* NotificationToMSUser */
1842 static int hf_gsm_ss_locationType; /* LocationType */
1843 static int hf_gsm_ss_lcsClientExternalID; /* LCSClientExternalID */
1844 static int hf_gsm_ss_lcsClientName; /* LCSClientName */
1845 static int hf_gsm_ss_lcsRequestorID; /* LCSRequestorID */
1846 static int hf_gsm_ss_lcsCodeword; /* LCSCodeword */
1847 static int hf_gsm_ss_lcsServiceTypeID; /* LCSServiceTypeID */
1848 static int hf_gsm_ss_deferredLocationExt; /* DeferredLocationExt */
1849 static int hf_gsm_ss_rangingSlExt; /* RangingSlExt */
1850 static int hf_gsm_ss_verificationResponse; /* VerificationResponse */
1851 static int hf_gsm_ss_locationPrivacyIndication; /* LCS_LocationPrivacyIndication */
1852 static int hf_gsm_ss_validTimePeriod; /* LCS_ValidTimePeriod */
1853 static int hf_gsm_ss_molr_Type; /* MOLR_Type */
1854 static int hf_gsm_ss_locationMethod; /* LocationMethod */
1855 static int hf_gsm_ss_lcs_QoS; /* LCS_QoS */
1856 static int hf_gsm_ss_mlc_Number; /* ISDN_AddressString */
1857 static int hf_gsm_ss_gpsAssistanceData; /* GPSAssistanceData */
1858 static int hf_gsm_ss_supportedGADShapes; /* SupportedGADShapes */
1859 static int hf_gsm_ss_ageOfLocationInfo; /* AgeOfLocationInformation */
1860 static int hf_gsm_ss_pseudonymIndicator; /* NULL */
1861 static int hf_gsm_ss_h_gmlc_address; /* GSN_Address */
1862 static int hf_gsm_ss_locationEstimate; /* Ext_GeographicalInformation */
1863 static int hf_gsm_ss_velocityEstimate; /* VelocityEstimate */
1864 static int hf_gsm_ss_referenceNumber; /* LCS_ReferenceNumber */
1865 static int hf_gsm_ss_periodicLDRInfo; /* PeriodicLDRInfo */
1866 static int hf_gsm_ss_locationUpdateRequest; /* NULL */
1867 static int hf_gsm_ss_sequenceNumber; /* SequenceNumber */
1868 static int hf_gsm_ss_terminationCause; /* TerminationCause */
1869 static int hf_gsm_ss_mo_lrShortCircuit; /* NULL */
1870 static int hf_gsm_ss_ganssAssistanceData; /* GANSSAssistanceData */
1871 static int hf_gsm_ss_multiplePositioningProtocolPDUs; /* MultiplePositioningProtocolPDUs */
1872 static int hf_gsm_ss_locationInfo; /* LocationInfo */
1873 static int hf_gsm_ss_scheduledLocTime; /* DateTime */
1874 static int hf_gsm_ss_MultiplePositioningProtocolPDUs_item; /* PositioningProtocolPDU */
1875 static int hf_gsm_ss_decipheringKeys; /* DecipheringKeys */
1876 static int hf_gsm_ss_add_LocationEstimate; /* Add_GeographicalInformation */
1877 static int hf_gsm_ss_reportingPLMNList; /* ReportingPLMNList */
1878 static int hf_gsm_ss_timestampOfLocationEstimate; /* DateTime */
1879 static int hf_gsm_ss_deferredLocationEventType; /* DeferredLocationEventType */
1880 static int hf_gsm_ss_areaEventInfo; /* AreaEventInfo */
1881 static int hf_gsm_ss_slmolr_Type; /* SLMOLR_Type */
1882 static int hf_gsm_ss_calculationAssistIndicator; /* BOOLEAN */
1883 static int hf_gsm_ss_preferredRangingResult; /* PreferredRangingResult */
1884 static int hf_gsm_ss_relatedUEInfo; /* RelatedUEInfo */
1885 static int hf_gsm_ss_absoluteLocationIndicator; /* BOOLEAN */
1886 static int hf_gsm_ss_absoluteVelocityIndicator; /* BOOLEAN */
1887 static int hf_gsm_ss_relativeLocationIndicator; /* BOOLEAN */
1888 static int hf_gsm_ss_rangeDirection; /* BOOLEAN */
1889 static int hf_gsm_ss_relativeVelocityIndicator; /* BOOLEAN */
1890 static int hf_gsm_ss_RelatedUEInfo_item; /* RangingUEInfo */
1891 static int hf_gsm_ss_applicationLayerID; /* OCTET_STRING */
1892 static int hf_gsm_ss_rangingRole; /* RangingRole */
1893 static int hf_gsm_ss_absoluteLocation; /* Ext_GeographicalInformation */
1894 static int hf_gsm_ss_absoluteVelocity; /* VelocityEstimate */
1895 static int hf_gsm_ss_relativeResult; /* RelativeResult */
1896 static int hf_gsm_ss_ueOnlyRSLPosAllowed; /* Duration */
1897 static int hf_gsm_ss_timestamp; /* DateTime */
1898 static int hf_gsm_ss_RelativeResult_item; /* SingleRelativeResult */
1899 static int hf_gsm_ss_relativeLocation; /* RelativeLocationCoordinates */
1900 static int hf_gsm_ss_rangeDirection_01; /* RangeDirection */
1901 static int hf_gsm_ss_relativeVelocity; /* VelocityEstimate */
1902 static int hf_gsm_ss_relative2D_LocationWithUncertaintyEllipse; /* Relative2D_LocationWithUncertaintyEllipse */
1903 static int hf_gsm_ss_relative3D_LocationWithUncertaintyEllipsoid; /* Relative3D_LocationWithUncertaintyEllipsoid */
1904 static int hf_gsm_ss_xCoordinates; /* RangeXYCoordinates */
1905 static int hf_gsm_ss_yCoordinates; /* RangeXYCoordinates */
1906 static int hf_gsm_ss_uncertaintySemiMajor; /* Uncertainty */
1907 static int hf_gsm_ss_uncertaintySemiMinor; /* Uncertainty */
1908 static int hf_gsm_ss_orientationMajorAxis; /* OrientationMajorAxis */
1909 static int hf_gsm_ss_confidence; /* Confidence */
1910 static int hf_gsm_ss_zCoordinates; /* RangeZCoordinates */
1911 static int hf_gsm_ss_uncertaintyAltitude; /* Uncertainty */
1912 static int hf_gsm_ss_range; /* Range */
1913 static int hf_gsm_ss_azimuth; /* Azimuth */
1914 static int hf_gsm_ss_elevation; /* Elevation */
1915 static int hf_gsm_ss_rangeResult; /* RangeResult */
1916 static int hf_gsm_ss_uncertainty; /* Uncertainty */
1917 static int hf_gsm_ss_azimuthResult; /* AzimuthResult */
1918 static int hf_gsm_ss_elevationResult; /* ElevationResult */
1919 static int hf_gsm_ss_qoS; /* LCS_QoS */
1920 static int hf_gsm_ss_periodicLocation; /* PeriodicLocation */
1921 static int hf_gsm_ss_areaEventReporting; /* AreaEventReporting */
1922 static int hf_gsm_ss_motionEventReporting; /* MotionEventReporting */
1923 static int hf_gsm_ss_referenceNumberExt; /* LCS_ReferenceNumberExt */
1924 static int hf_gsm_ss_h_gmlc_callBackUri; /* UTF8String */
1925 static int hf_gsm_ss_deferredRoutingIdentifier; /* OCTET_STRING */
1926 static int hf_gsm_ss_reportingAccessTypes; /* ReportingAccessTypes */
1927 static int hf_gsm_ss_controlPlane_CIoT_5GS_Optimisation; /* ControlPlane_CIoT_5GS_Optimisation */
1928 static int hf_gsm_ss_eventReportAllowedArea; /* AreaList */
1929 static int hf_gsm_ss_reportingInd; /* ReportingInd */
1930 static int hf_gsm_ss_mappedQoS; /* LCS_QoS */
1931 static int hf_gsm_ss_userPlaneReportAFAddr; /* LCS_UserPlaneReportAFAddr */
1932 static int hf_gsm_ss_cumulativeReportCriteria; /* LCS_CumulativeReportCriteria */
1933 static int hf_gsm_ss_areaList; /* AreaList */
1934 static int hf_gsm_ss_occurrenceInfo; /* OccurrenceInfo */
1935 static int hf_gsm_ss_intervalTime; /* IntervalTime */
1936 static int hf_gsm_ss_maximumInterval; /* MaximumInterval */
1937 static int hf_gsm_ss_samplingInterval; /* SamplingInterval */
1938 static int hf_gsm_ss_duration; /* Duration */
1939 static int hf_gsm_ss_AreaList_item; /* Area */
1940 static int hf_gsm_ss_areaType; /* AreaType */
1941 static int hf_gsm_ss_areaIdentification; /* AreaIdentification */
1942 static int hf_gsm_ss_areaIdentificationExt; /* AreaIdentificationExt */
1943 static int hf_gsm_ss_linearDistance; /* LinearDistance */
1944 static int hf_gsm_ss_eventType; /* EventType */
1945 static int hf_gsm_ss_userPlaneEventReportStat; /* LCS_UserPlaneEventReportStat */
1946 static int hf_gsm_ss_maximumDuration; /* MaximumDuration */
1947 static int hf_gsm_ss_maximumConsecutiveEventReports; /* MaximumConsecutiveEventReports */
1948 static int hf_gsm_ss_af_Ipv4_Addrs; /* Ipv4Addrs */
1949 static int hf_gsm_ss_af_Ipv6_Addrs; /* Ipv6Addrs */
1950 static int hf_gsm_ss_af_Fqdn; /* FQDN */
1951 static int hf_gsm_ss_Ipv4Addrs_item; /* Ipv4Addr */
1952 static int hf_gsm_ss_Ipv6Addrs_item; /* Ipv6Addr */
1953 static int hf_gsm_ss_timerCriteria; /* LCS_CumulativeReportTimerCriteria */
1954 static int hf_gsm_ss_counterCriteria; /* LCS_CumulativeReportCounterCriteria */
1955 static int hf_gsm_ss_eventReportExpectedArea; /* Ext_GeographicalInformation */
1956 static int hf_gsm_ss_areaUsageInd; /* ReportingInd */
1957 static int hf_gsm_ss_startTime; /* DateTime */
1958 static int hf_gsm_ss_endTime; /* DateTime */
1959 static int hf_gsm_ss_associationType; /* LCS_AssociationType */
1960 static int hf_gsm_ss_positioningCapabilities; /* OCTET_STRING */
1961 static int hf_gsm_ss_locationOfPru; /* Ext_GeographicalInformation */
1962 static int hf_gsm_ss_stateOfPru; /* LCS_StateOfPru */
1963 static int hf_gsm_ss_periodicUpdateTimer; /* LCS_PeriodicUpdateTimer */
1964 static int hf_gsm_ss_updateTrigger; /* LCS_PruUpdateTrigger */
1965 static int hf_gsm_ss_ackIndication; /* BOOLEAN */
1966 static int hf_gsm_ss_newLmfRoutingId; /* OCTET_STRING */
1967 static int hf_gsm_ss_slmtlr_Type; /* SLMTLR_Type */
1968 static int hf_gsm_ss_locatedUEselect; /* LocatedUEselect */
1969 static int hf_gsm_ss_coordinateID; /* CoordinateID */
1970 static int hf_gsm_ss_rangingSLPPList; /* RangingSLPPList */
1971 static int hf_gsm_ss_RangingSLPPList_item; /* RangingSLPPInfo */
1972 static int hf_gsm_ss_sLPPMsg; /* SlPosProtocolPDU */
1973 static int hf_gsm_ss_relatedUE; /* OCTET_STRING */
1974 static int hf_gsm_ss_ueBased; /* UEBased */
1975 /* named bits */
1976 static int hf_gsm_ss_DeferredLocationExt_motionEvent;
1977 static int hf_gsm_ss_RangingSlExt_rangingIndication;
1978 static int hf_gsm_ss_LocationInfo_locationEstimate;
1979 static int hf_gsm_ss_ReportingAccessTypes_nR;
1980 static int hf_gsm_ss_ReportingAccessTypes_eUTRAConnectedTo5GC;
1981 static int hf_gsm_ss_ReportingAccessTypes_non3GPPConnectedTo5GC;
1982 static int hf_gsm_ss_ReportingAccessTypes_eUTRAConnectedToEPC;
1983 static int hf_gsm_ss_ReportingAccessTypes_nR_LEO;
1984 static int hf_gsm_ss_ReportingAccessTypes_nR_MEO;
1985 static int hf_gsm_ss_ReportingAccessTypes_nR_GEO;
1986 static int hf_gsm_ss_ReportingAccessTypes_nR_OTHER_SAT;
1987 static int hf_gsm_ss_LCS_PruUpdateTrigger_taiChange;
1988 static int hf_gsm_ss_LCS_PruUpdateTrigger_servingAmfChange;
1989 static int hf_gsm_ss_LCS_PruUpdateTrigger_pruStateChange;
1991 /* --- Module EricssonMAP --- --- --- */
1993 static int hf_gsm_map_ericsson_imei; /* IMEI */
1994 static int hf_gsm_map_ericsson_requestedEquipmentInfo; /* RequestedEquipmentInfo */
1995 static int hf_gsm_map_ericsson_imsi; /* IMSI */
1996 static int hf_gsm_map_ericsson_locationInformation; /* T_locationInformation */
1997 static int hf_gsm_map_ericsson_extensionContainer; /* ExtensionContainer */
1998 static int hf_gsm_map_ericsson_isdArgType; /* IsdArgType */
1999 static int hf_gsm_map_ericsson_isdResType; /* IsdResType */
2000 static int hf_gsm_map_ericsson_dsdArgType; /* DsdArgType */
2001 static int hf_gsm_map_ericsson_sriArgType; /* SRIArgType */
2002 static int hf_gsm_map_ericsson_sriResType; /* SRIResType */
2003 static int hf_gsm_map_ericsson_prnArgType; /* PrnArgType */
2004 static int hf_gsm_map_ericsson_ulArgType; /* UlArgType */
2005 static int hf_gsm_map_ericsson_rdArgType; /* RdArgType */
2006 static int hf_gsm_map_ericsson_saiArgType; /* SaiArgType */
2007 static int hf_gsm_map_ericsson_saiResType; /* SaiResType */
2008 static int hf_gsm_map_ericsson_atiArgType; /* AtiArgType */
2009 static int hf_gsm_map_ericsson_atiResType; /* AtiResType */
2010 static int hf_gsm_map_ericsson_extAtiArgType; /* ExtAtiArgType */
2011 static int hf_gsm_map_ericsson_IsdArgType_item; /* IsdArgData */
2012 static int hf_gsm_map_ericsson_privateFeatureCode; /* PrivateFeatureCode */
2013 static int hf_gsm_map_ericsson_privateFeatureData; /* PrivateFeatureData */
2014 static int hf_gsm_map_ericsson_subscriptionTypeInfo; /* SubscriptionTypeInfo */
2015 static int hf_gsm_map_ericsson_oickInfo; /* OickInfo */
2016 static int hf_gsm_map_ericsson_ss_Status; /* Ext_SS_Status */
2017 static int hf_gsm_map_ericsson_inCategoryKey; /* INCategoryKey */
2018 static int hf_gsm_map_ericsson_subscriptionType; /* SubscriptionType */
2019 static int hf_gsm_map_ericsson_IsdResType_item; /* IsdResData */
2020 static int hf_gsm_map_ericsson_supportedPrivateFeature; /* PrivateFeatureCode */
2021 static int hf_gsm_map_ericsson_DsdArgType_item; /* DsdArgData */
2022 static int hf_gsm_map_ericsson_privateFeatureWithdraw; /* PrivateFeatureCode */
2023 static int hf_gsm_map_ericsson_SRIArgType_item; /* SriArgData */
2024 static int hf_gsm_map_ericsson_extraNetworkInfo; /* ExtraSignalInfo */
2025 static int hf_gsm_map_ericsson_SRIResType_item; /* SriResData */
2026 static int hf_gsm_map_ericsson_PrnArgType_item; /* PrnArgData */
2027 static int hf_gsm_map_ericsson_UlArgType_item; /* UlArgData */
2028 static int hf_gsm_map_ericsson_privateFeatureUlArgData; /* PrivateFeatureUlArgData */
2029 static int hf_gsm_map_ericsson_adc; /* IMEI */
2030 static int hf_gsm_map_ericsson_protocolId; /* ExtraProtocolId */
2031 static int hf_gsm_map_ericsson_signalInfo; /* SignalInfo */
2032 static int hf_gsm_map_ericsson_msisdn; /* NULL */
2033 static int hf_gsm_map_ericsson_noAuthenVectorsRequested; /* NULL */
2034 static int hf_gsm_map_ericsson_msIsdn; /* ISDN_AddressString */
2035 static int hf_gsm_map_ericsson_requestedInfoType; /* RequestedInfoType */
2036 static int hf_gsm_map_ericsson_toBeDecided; /* NULL */
2037 static int hf_gsm_map_ericsson_toBeDecidedOne; /* NULL */
2038 static int hf_gsm_map_ericsson_sgsnNumber; /* NULL */
2039 static int hf_gsm_map_ericsson_ExtAtiArgType_item; /* AtiArgData */
2041 /* --- Module NokiaMAP-Extensions --- --- --- */
2043 static int hf_NokiaMAP_Extensions_alsLineIndicator; /* NULL */
2044 static int hf_NokiaMAP_Extensions_routingCategory; /* RoutingCategory */
2045 static int hf_NokiaMAP_Extensions_serviceList; /* MAPserviceList */
2046 static int hf_NokiaMAP_Extensions_serv_info_list; /* ServiceListWithInfo */
2047 static int hf_NokiaMAP_Extensions_extRoutingCategory; /* ExtRoutingCategory */
2048 static int hf_NokiaMAP_Extensions_ownMSISDN; /* ISDN_AddressString */
2049 static int hf_NokiaMAP_Extensions_mwd_Set; /* NULL */
2050 static int hf_NokiaMAP_Extensions_ChargingAreaList_item; /* ChargingArea */
2051 static int hf_NokiaMAP_Extensions_chargingAreaList; /* ChargingAreaList */
2052 static int hf_NokiaMAP_Extensions_inTriggerKey; /* InTriggerKey */
2053 static int hf_NokiaMAP_Extensions_pnpIndex; /* PnpIndex */
2054 static int hf_NokiaMAP_Extensions_callRedirectionIndex; /* CallRedirectionIndex */
2055 static int hf_NokiaMAP_Extensions_regionalChargingData; /* RegionalChargingData */
2056 static int hf_NokiaMAP_Extensions_callForwardingOverride; /* NULL */
2057 static int hf_NokiaMAP_Extensions_in_Capability; /* NULL */
2058 static int hf_NokiaMAP_Extensions_callingCategory; /* CallingCategory */
2059 static int hf_NokiaMAP_Extensions_internalServiceIndicator; /* InternalServiceIndicator */
2060 static int hf_NokiaMAP_Extensions_srbtSupportIndicator; /* NULL */
2061 static int hf_NokiaMAP_Extensions_gmscSupportIndicator; /* NULL */
2062 static int hf_NokiaMAP_Extensions_protocolId; /* ExtraProtocolId */
2063 static int hf_NokiaMAP_Extensions_signalInfo; /* SignalInfo */
2064 static int hf_NokiaMAP_Extensions_cug_Interlock; /* CUG_Interlock */
2065 static int hf_NokiaMAP_Extensions_cug_OutgoingAccess; /* BOOLEAN */
2066 static int hf_NokiaMAP_Extensions_cug_CallInfo; /* CUG_CallInfo */
2067 static int hf_NokiaMAP_Extensions_vlrNumber; /* ISDN_AddressString */
2068 static int hf_NokiaMAP_Extensions_activeSs; /* ActiveSS_List */
2069 static int hf_NokiaMAP_Extensions_traceReference; /* TraceReference */
2070 static int hf_NokiaMAP_Extensions_traceType; /* TraceType */
2071 static int hf_NokiaMAP_Extensions_omc_Id; /* AddressString */
2072 static int hf_NokiaMAP_Extensions_hotBilling; /* BOOLEAN */
2073 static int hf_NokiaMAP_Extensions_cfoIsDone; /* BOOLEAN */
2074 static int hf_NokiaMAP_Extensions_cfInCug; /* BOOLEAN */
2075 static int hf_NokiaMAP_Extensions_basicService; /* BasicServiceCode */
2076 static int hf_NokiaMAP_Extensions_category; /* Category */
2077 static int hf_NokiaMAP_Extensions_nokia_CUG; /* Nokia_CUG_Data */
2078 static int hf_NokiaMAP_Extensions_noBarrings; /* NULL */
2079 static int hf_NokiaMAP_Extensions_odb_Data; /* ODB_Data */
2080 static int hf_NokiaMAP_Extensions_fraudData; /* FraudData */
2081 static int hf_NokiaMAP_Extensions_leaId; /* LeaId */
2082 static int hf_NokiaMAP_Extensions_olcmInfoTable; /* OlcmInfoTable */
2083 static int hf_NokiaMAP_Extensions_commonMSISDN; /* ISDN_AddressString */
2084 static int hf_NokiaMAP_Extensions_rgData; /* RgData */
2085 static int hf_NokiaMAP_Extensions_olcmTraceReference; /* OlcmTraceReference */
2086 static int hf_NokiaMAP_Extensions_noAnswerTimer; /* NoAnswerTimer */
2087 static int hf_NokiaMAP_Extensions_memberList; /* MemberList */
2088 static int hf_NokiaMAP_Extensions_alertingMethod; /* AlertingMethod */
2089 static int hf_NokiaMAP_Extensions_userType; /* UserType */
2090 static int hf_NokiaMAP_Extensions_divertedToNbr; /* ISDN_AddressString */
2091 static int hf_NokiaMAP_Extensions_memberOfSuppression; /* NULL */
2092 static int hf_NokiaMAP_Extensions_ringbacktone; /* NULL */
2093 static int hf_NokiaMAP_Extensions_MemberList_item; /* ISDN_AddressString */
2094 static int hf_NokiaMAP_Extensions_termination; /* OCTET_STRING_SIZE_1 */
2095 static int hf_NokiaMAP_Extensions_OlcmInfoTable_item; /* OlcmInfo */
2096 static int hf_NokiaMAP_Extensions_olcmActive; /* NULL */
2097 static int hf_NokiaMAP_Extensions_moc; /* FraudData */
2098 static int hf_NokiaMAP_Extensions_cf; /* FraudData */
2099 static int hf_NokiaMAP_Extensions_ct; /* FraudData */
2100 static int hf_NokiaMAP_Extensions_time; /* TimeLimit */
2101 static int hf_NokiaMAP_Extensions_timeAction; /* ActionType */
2102 static int hf_NokiaMAP_Extensions_maxCount; /* FraudMaxCount */
2103 static int hf_NokiaMAP_Extensions_maxCountAction; /* ActionType */
2104 static int hf_NokiaMAP_Extensions_serviceCode; /* MAPserviceCode */
2105 static int hf_NokiaMAP_Extensions_versionInfo; /* VersionInfo */
2106 static int hf_NokiaMAP_Extensions_in_key; /* INKey */
2107 static int hf_NokiaMAP_Extensions_fraudInfo; /* FraudInfo */
2108 static int hf_NokiaMAP_Extensions_ServiceListWithInfo_item; /* ServiceWithInfo */
2109 static int hf_NokiaMAP_Extensions_mobile_IN_key; /* MKey */
2110 static int hf_NokiaMAP_Extensions_sms_IN_key; /* SMSKey */
2111 static int hf_NokiaMAP_Extensions_mKeyVer; /* MKeyVer */
2112 static int hf_NokiaMAP_Extensions_mmScfAddress; /* ISDN_AddressString */
2113 static int hf_NokiaMAP_Extensions_mmTdpName; /* MmTdpName */
2114 static int hf_NokiaMAP_Extensions_serviceKey; /* ServiceKey */
2115 static int hf_NokiaMAP_Extensions_locupType; /* LocupType */
2116 static int hf_NokiaMAP_Extensions_mmSCPAddress; /* ISDN_AddressString */
2117 static int hf_NokiaMAP_Extensions_smsTdpName; /* SmsTdpName */
2118 static int hf_NokiaMAP_Extensions_mmsFlag; /* NULL */
2119 static int hf_NokiaMAP_Extensions_map_Opt; /* MapOptFields */
2120 static int hf_NokiaMAP_Extensions_codec_List; /* CodecListExt */
2121 static int hf_NokiaMAP_Extensions_selected_Codec; /* SelectedCodec */
2122 static int hf_NokiaMAP_Extensions_uma_access; /* NULL */
2123 static int hf_NokiaMAP_Extensions_uma_ip_address; /* OCTET_STRING_SIZE_5_17 */
2124 static int hf_NokiaMAP_Extensions_uma_ip_port_nb; /* IPPortNb */
2125 static int hf_NokiaMAP_Extensions_CodecListExt_item; /* CodecExt */
2126 static int hf_NokiaMAP_Extensions_codec; /* CodecExt */
2127 static int hf_NokiaMAP_Extensions_modes; /* Modes */
2128 static int hf_NokiaMAP_Extensions_imsi; /* IMSI */
2129 static int hf_NokiaMAP_Extensions_cfuSMSCounter; /* CfuSMSCounter */
2130 static int hf_NokiaMAP_Extensions_cfusmcfo; /* NULL */
2131 static int hf_NokiaMAP_Extensions_memberInterrogate; /* NULL */
2132 static int hf_NokiaMAP_Extensions_locationAreaCode; /* LocationAreaCode */
2133 static int hf_NokiaMAP_Extensions_cellId; /* CellGlobalIdOrServiceAreaIdFixedLength */
2134 static int hf_NokiaMAP_Extensions_lai; /* LAIFixedLength */
2135 static int hf_NokiaMAP_Extensions_sendImmResp; /* NULL */
2136 static int hf_NokiaMAP_Extensions_rejectCause; /* OCTET_STRING_SIZE_1 */
2137 static int hf_NokiaMAP_Extensions_senderMSISDN; /* ISDN_AddressString */
2138 static int hf_NokiaMAP_Extensions_access; /* Access */
2139 static int hf_NokiaMAP_Extensions_version; /* Version */
2140 static int hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item; /* Access */
2141 /* named bits */
2142 static int hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed;
2144 /* Initialize the subtree pointers */
2145 static int ett_gsm_map;
2146 static int ett_gsm_map_InvokeId;
2147 static int ett_gsm_map_InvokePDU;
2148 static int ett_gsm_map_ReturnResultPDU;
2149 static int ett_gsm_map_ReturnErrorPDU;
2150 static int ett_gsm_map_ReturnResult_result;
2151 static int ett_gsm_map_ReturnError_result;
2152 static int ett_gsm_map_GSMMAPPDU;
2153 static int ett_gsm_map_ext_qos_subscribed;
2154 static int ett_gsm_map_pdptypenumber;
2155 static int ett_gsm_map_RAIdentity;
2156 static int ett_gsm_map_LAIFixedLength;
2157 static int ett_gsm_map_isdn_address_string;
2158 static int ett_gsm_map_geo_desc;
2159 static int ett_gsm_map_LongSignalInfo;
2160 static int ett_gsm_map_RadioResourceInformation;
2161 static int ett_gsm_map_MSNetworkCapability;
2162 static int ett_gsm_map_MSRadioAccessCapability;
2163 static int ett_gsm_map_externalsignalinfo;
2164 static int ett_gsm_map_cbs_data_coding;
2165 static int ett_gsm_map_GlobalCellId;
2166 static int ett_gsm_map_GeographicalInformation;
2167 static int ett_gsm_map_apn_str;
2168 static int ett_gsm_map_LocationNumber;
2169 static int ett_gsm_map_ericsson_locationInformation;
2170 static int ett_gsm_map_extension_data;
2171 static int ett_gsm_map_tbcd_digits;
2172 static int ett_gsm_map_ussd_string;
2173 static int ett_gsm_map_ext2_qos_subscribed;
2174 static int ett_gsm_map_ext3_qos_subscribed;
2175 static int ett_gsm_map_e_utranCellGlobalIdentity;
2176 static int ett_gsm_map_TA_id;
2177 static int ett_gsm_map_GeodeticInformation;
2180 /* --- Module MAP-ExtensionDataTypes --- --- --- */
2182 static int ett_gsm_map_ExtensionContainer;
2183 static int ett_gsm_map_SLR_ArgExtensionContainer;
2184 static int ett_gsm_map_PrivateExtensionList;
2185 static int ett_gsm_map_PrivateExtension;
2186 static int ett_gsm_map_PCS_Extensions;
2187 static int ett_gsm_map_SLR_Arg_PCS_Extensions;
2189 /* --- Module MAP-CommonDataTypes --- --- --- */
2191 static int ett_gsm_map_ExternalSignalInfo;
2192 static int ett_gsm_map_Ext_ExternalSignalInfo;
2193 static int ett_gsm_map_AccessNetworkSignalInfo;
2194 static int ett_gsm_map_Identity;
2195 static int ett_gsm_map_IMSI_WithLMSI;
2196 static int ett_gsm_map_SubscriberId;
2197 static int ett_gsm_map_HLR_List;
2198 static int ett_gsm_map_NAEA_PreferredCI;
2199 static int ett_gsm_map_SubscriberIdentity;
2200 static int ett_gsm_map_LCSClientExternalID;
2201 static int ett_gsm_map_NetworkNodeDiameterAddress;
2202 static int ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI;
2203 static int ett_gsm_map_BasicServiceCode;
2204 static int ett_gsm_map_Ext_BasicServiceCode;
2205 static int ett_gsm_map_EMLPP_Info;
2206 static int ett_gsm_map_MC_SS_Info;
2208 /* --- Module MAP-SS-DataTypes --- --- --- */
2210 static int ett_gsm_map_ss_RegisterSS_Arg;
2211 static int ett_gsm_map_ss_SS_Info;
2212 static int ett_gsm_map_ss_ForwardingInfo;
2213 static int ett_gsm_map_ss_ForwardingFeatureList;
2214 static int ett_gsm_map_ss_ForwardingFeature;
2215 static int ett_gsm_map_ss_CallBarringInfo;
2216 static int ett_gsm_map_ss_CallBarringFeatureList;
2217 static int ett_gsm_map_ss_CallBarringFeature;
2218 static int ett_gsm_map_ss_SS_Data;
2219 static int ett_gsm_map_ss_SS_SubscriptionOption;
2220 static int ett_gsm_map_ss_SS_ForBS_Code;
2221 static int ett_gsm_map_ss_GenericServiceInfo;
2222 static int ett_gsm_map_ss_CCBS_FeatureList;
2223 static int ett_gsm_map_ss_CCBS_Feature;
2224 static int ett_gsm_map_ss_InterrogateSS_Res;
2225 static int ett_gsm_map_ss_USSD_Arg;
2226 static int ett_gsm_map_ss_USSD_Res;
2227 static int ett_gsm_map_ss_SS_List;
2228 static int ett_gsm_map_ss_BasicServiceGroupList;
2229 static int ett_gsm_map_ss_SS_InvocationNotificationArg;
2230 static int ett_gsm_map_ss_SS_InvocationNotificationRes;
2231 static int ett_gsm_map_ss_SS_EventSpecification;
2232 static int ett_gsm_map_ss_RegisterCC_EntryArg;
2233 static int ett_gsm_map_ss_CCBS_Data;
2234 static int ett_gsm_map_ss_ServiceIndicator;
2235 static int ett_gsm_map_ss_RegisterCC_EntryRes;
2236 static int ett_gsm_map_ss_EraseCC_EntryArg;
2237 static int ett_gsm_map_ss_EraseCC_EntryRes;
2239 /* --- Module MAP-ER-DataTypes --- --- --- */
2241 static int ett_gsm_map_er_RoamingNotAllowedParam;
2242 static int ett_gsm_map_er_CallBarredParam;
2243 static int ett_gsm_map_er_ExtensibleCallBarredParam;
2244 static int ett_gsm_map_er_CUG_RejectParam;
2245 static int ett_gsm_map_er_SS_IncompatibilityCause;
2246 static int ett_gsm_map_er_SM_DeliveryFailureCause;
2247 static int ett_gsm_map_er_AbsentSubscriberSM_Param;
2248 static int ett_gsm_map_er_SystemFailureParam;
2249 static int ett_gsm_map_er_ExtensibleSystemFailureParam;
2250 static int ett_gsm_map_er_DataMissingParam;
2251 static int ett_gsm_map_er_UnexpectedDataParam;
2252 static int ett_gsm_map_er_FacilityNotSupParam;
2253 static int ett_gsm_map_er_OR_NotAllowedParam;
2254 static int ett_gsm_map_er_UnknownSubscriberParam;
2255 static int ett_gsm_map_er_NumberChangedParam;
2256 static int ett_gsm_map_er_UnidentifiedSubParam;
2257 static int ett_gsm_map_er_IllegalSubscriberParam;
2258 static int ett_gsm_map_er_IllegalEquipmentParam;
2259 static int ett_gsm_map_er_BearerServNotProvParam;
2260 static int ett_gsm_map_er_TeleservNotProvParam;
2261 static int ett_gsm_map_er_TracingBufferFullParam;
2262 static int ett_gsm_map_er_NoRoamingNbParam;
2263 static int ett_gsm_map_er_AbsentSubscriberParam;
2264 static int ett_gsm_map_er_BusySubscriberParam;
2265 static int ett_gsm_map_er_NoSubscriberReplyParam;
2266 static int ett_gsm_map_er_ForwardingViolationParam;
2267 static int ett_gsm_map_er_ForwardingFailedParam;
2268 static int ett_gsm_map_er_ATI_NotAllowedParam;
2269 static int ett_gsm_map_er_ATSI_NotAllowedParam;
2270 static int ett_gsm_map_er_ATM_NotAllowedParam;
2271 static int ett_gsm_map_er_IllegalSS_OperationParam;
2272 static int ett_gsm_map_er_SS_NotAvailableParam;
2273 static int ett_gsm_map_er_SS_SubscriptionViolationParam;
2274 static int ett_gsm_map_er_InformationNotAvailableParam;
2275 static int ett_gsm_map_er_SubBusyForMT_SMS_Param;
2276 static int ett_gsm_map_er_MessageWaitListFullParam;
2277 static int ett_gsm_map_er_ResourceLimitationParam;
2278 static int ett_gsm_map_er_NoGroupCallNbParam;
2279 static int ett_gsm_map_er_IncompatibleTerminalParam;
2280 static int ett_gsm_map_er_ShortTermDenialParam;
2281 static int ett_gsm_map_er_LongTermDenialParam;
2282 static int ett_gsm_map_er_UnauthorizedRequestingNetwork_Param;
2283 static int ett_gsm_map_er_UnauthorizedLCSClient_Param;
2284 static int ett_gsm_map_er_PositionMethodFailure_Param;
2285 static int ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param;
2286 static int ett_gsm_map_er_MM_EventNotSupported_Param;
2287 static int ett_gsm_map_er_TargetCellOutsideGCA_Param;
2288 static int ett_gsm_map_er_OngoingGroupCallParam;
2290 /* --- Module MAP-SM-DataTypes --- --- --- */
2292 static int ett_gsm_map_sm_RoutingInfoForSM_Arg;
2293 static int ett_gsm_map_sm_RoutingInfoForSM_Res;
2294 static int ett_gsm_map_sm_IP_SM_GW_Guidance;
2295 static int ett_gsm_map_sm_LocationInfoWithLMSI;
2296 static int ett_gsm_map_sm_Additional_Number;
2297 static int ett_gsm_map_sm_MO_ForwardSM_Arg;
2298 static int ett_gsm_map_sm_MO_ForwardSM_Res;
2299 static int ett_gsm_map_sm_MT_ForwardSM_Arg;
2300 static int ett_gsm_map_sm_CorrelationID;
2301 static int ett_gsm_map_sm_MT_ForwardSM_Res;
2302 static int ett_gsm_map_sm_SM_RP_DA;
2303 static int ett_gsm_map_sm_SM_RP_OA;
2304 static int ett_gsm_map_sm_ReportSM_DeliveryStatusArg;
2305 static int ett_gsm_map_sm_ReportSM_DeliveryStatusRes;
2306 static int ett_gsm_map_sm_AlertServiceCentreArg;
2307 static int ett_gsm_map_sm_InformServiceCentreArg;
2308 static int ett_gsm_map_sm_MW_Status;
2309 static int ett_gsm_map_sm_ReadyForSM_Arg;
2310 static int ett_gsm_map_sm_ReadyForSM_Res;
2311 static int ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg;
2312 static int ett_gsm_map_sm_MT_ForwardSM_VGCS_Res;
2313 static int ett_gsm_map_sm_DispatcherList;
2314 static int ett_gsm_map_sm_AdditionalDispatcherList;
2316 /* --- Module MAP-OM-DataTypes --- --- --- */
2318 static int ett_gsm_map_om_ActivateTraceModeArg;
2319 static int ett_gsm_map_om_MDT_Configuration;
2320 static int ett_gsm_map_om_MDT_Allowed_PLMNId_List;
2321 static int ett_gsm_map_om_AreaScope;
2322 static int ett_gsm_map_om_CGI_List;
2323 static int ett_gsm_map_om_E_UTRAN_CGI_List;
2324 static int ett_gsm_map_om_RoutingAreaId_List;
2325 static int ett_gsm_map_om_LocationAreaId_List;
2326 static int ett_gsm_map_om_TrackingAreaId_List;
2327 static int ett_gsm_map_om_TraceDepthList;
2328 static int ett_gsm_map_om_TraceNE_TypeList;
2329 static int ett_gsm_map_om_TraceInterfaceList;
2330 static int ett_gsm_map_om_MSC_S_InterfaceList;
2331 static int ett_gsm_map_om_MGW_InterfaceList;
2332 static int ett_gsm_map_om_SGSN_InterfaceList;
2333 static int ett_gsm_map_om_GGSN_InterfaceList;
2334 static int ett_gsm_map_om_RNC_InterfaceList;
2335 static int ett_gsm_map_om_BMSC_InterfaceList;
2336 static int ett_gsm_map_om_MME_InterfaceList;
2337 static int ett_gsm_map_om_SGW_InterfaceList;
2338 static int ett_gsm_map_om_PGW_InterfaceList;
2339 static int ett_gsm_map_om_ENB_InterfaceList;
2340 static int ett_gsm_map_om_TraceEventList;
2341 static int ett_gsm_map_om_MSC_S_EventList;
2342 static int ett_gsm_map_om_MGW_EventList;
2343 static int ett_gsm_map_om_SGSN_EventList;
2344 static int ett_gsm_map_om_GGSN_EventList;
2345 static int ett_gsm_map_om_BMSC_EventList;
2346 static int ett_gsm_map_om_MME_EventList;
2347 static int ett_gsm_map_om_SGW_EventList;
2348 static int ett_gsm_map_om_PGW_EventList;
2349 static int ett_gsm_map_om_TracePropagationList;
2350 static int ett_gsm_map_om_ActivateTraceModeRes;
2351 static int ett_gsm_map_om_DeactivateTraceModeArg;
2352 static int ett_gsm_map_om_DeactivateTraceModeRes;
2354 /* --- Module MAP-MS-DataTypes --- --- --- */
2356 static int ett_gsm_map_ms_UpdateLocationArg;
2357 static int ett_gsm_map_ms_VLR_Capability;
2358 static int ett_gsm_map_ms_SupportedRAT_Types;
2359 static int ett_gsm_map_ms_SuperChargerInfo;
2360 static int ett_gsm_map_ms_SupportedLCS_CapabilitySets;
2361 static int ett_gsm_map_ms_UpdateLocationRes;
2362 static int ett_gsm_map_ms_ADD_Info;
2363 static int ett_gsm_map_ms_PagingArea;
2364 static int ett_gsm_map_ms_LocationArea;
2365 static int ett_gsm_map_ms_CancelLocationArg_U;
2366 static int ett_gsm_map_ms_CancelLocationRes;
2367 static int ett_gsm_map_ms_PurgeMS_Arg_U;
2368 static int ett_gsm_map_ms_PurgeMS_Res;
2369 static int ett_gsm_map_ms_SendIdentificationArg;
2370 static int ett_gsm_map_ms_SendIdentificationRes_U;
2371 static int ett_gsm_map_ms_AuthenticationSetList;
2372 static int ett_gsm_map_ms_TripletList;
2373 static int ett_gsm_map_ms_QuintupletList;
2374 static int ett_gsm_map_ms_AuthenticationTriplet;
2375 static int ett_gsm_map_ms_AuthenticationQuintuplet;
2376 static int ett_gsm_map_ms_CurrentSecurityContext;
2377 static int ett_gsm_map_ms_GSM_SecurityContextData;
2378 static int ett_gsm_map_ms_UMTS_SecurityContextData;
2379 static int ett_gsm_map_ms_AuthenticationFailureReportArg;
2380 static int ett_gsm_map_ms_AuthenticationFailureReportRes;
2381 static int ett_gsm_map_ms_UpdateGprsLocationArg;
2382 static int ett_gsm_map_ms_EPS_Info;
2383 static int ett_gsm_map_ms_PDN_GW_Update;
2384 static int ett_gsm_map_ms_ISR_Information;
2385 static int ett_gsm_map_ms_SGSN_Capability;
2386 static int ett_gsm_map_ms_SupportedFeatures;
2387 static int ett_gsm_map_ms_Ext_SupportedFeatures;
2388 static int ett_gsm_map_ms_UpdateGprsLocationRes;
2389 static int ett_gsm_map_ms_EPLMN_List;
2390 static int ett_gsm_map_ms_AdjacentPLMN_List;
2391 static int ett_gsm_map_ms_ForwardAccessSignalling_Arg_U;
2392 static int ett_gsm_map_ms_AllowedUMTS_Algorithms;
2393 static int ett_gsm_map_ms_PrepareHO_Arg_U;
2394 static int ett_gsm_map_ms_LCLS_Negotiation;
2395 static int ett_gsm_map_ms_LCLS_ConfigurationPreference;
2396 static int ett_gsm_map_ms_BSSMAP_ServiceHandoverList;
2397 static int ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo;
2398 static int ett_gsm_map_ms_RadioResourceList;
2399 static int ett_gsm_map_ms_RadioResource;
2400 static int ett_gsm_map_ms_PrepareHO_Res_U;
2401 static int ett_gsm_map_ms_SelectedUMTS_Algorithms;
2402 static int ett_gsm_map_ms_ChosenRadioResourceInformation;
2403 static int ett_gsm_map_ms_PrepareSubsequentHO_Arg_U;
2404 static int ett_gsm_map_ms_PrepareSubsequentHO_Res_U;
2405 static int ett_gsm_map_ms_ProcessAccessSignalling_Arg_U;
2406 static int ett_gsm_map_ms_AoIPCodecsList;
2407 static int ett_gsm_map_ms_SupportedCodecsList;
2408 static int ett_gsm_map_ms_CodecList;
2409 static int ett_gsm_map_ms_SendEndSignal_Arg_U;
2410 static int ett_gsm_map_ms_SendEndSignal_Res;
2411 static int ett_gsm_map_ms_RelocationNumberList;
2412 static int ett_gsm_map_ms_RelocationNumber;
2413 static int ett_gsm_map_ms_SendAuthenticationInfoArg;
2414 static int ett_gsm_map_ms_Re_synchronisationInfo;
2415 static int ett_gsm_map_ms_SendAuthenticationInfoRes_U;
2416 static int ett_gsm_map_ms_EPS_AuthenticationSetList;
2417 static int ett_gsm_map_ms_EPC_AV;
2418 static int ett_gsm_map_ms_CheckIMEI_Arg;
2419 static int ett_gsm_map_ms_CheckIMEI_Res;
2420 static int ett_gsm_map_ms_RequestedEquipmentInfo;
2421 static int ett_gsm_map_ms_UESBI_Iu;
2422 static int ett_gsm_map_ms_InsertSubscriberDataArg;
2423 static int ett_gsm_map_ms_EDRX_Cycle_Length_List;
2424 static int ett_gsm_map_ms_EDRX_Cycle_Length;
2425 static int ett_gsm_map_ms_Reset_Id_List;
2426 static int ett_gsm_map_ms_IMSI_GroupIdList;
2427 static int ett_gsm_map_ms_IMSI_GroupId;
2428 static int ett_gsm_map_ms_CSG_SubscriptionDataList;
2429 static int ett_gsm_map_ms_CSG_SubscriptionData;
2430 static int ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList;
2431 static int ett_gsm_map_ms_LIPA_AllowedAPNList;
2432 static int ett_gsm_map_ms_EPS_SubscriptionData;
2433 static int ett_gsm_map_ms_APN_ConfigurationProfile;
2434 static int ett_gsm_map_ms_EPS_DataList;
2435 static int ett_gsm_map_ms_APN_Configuration;
2436 static int ett_gsm_map_ms_EPS_QoS_Subscribed;
2437 static int ett_gsm_map_ms_AMBR;
2438 static int ett_gsm_map_ms_SpecificAPNInfoList;
2439 static int ett_gsm_map_ms_SpecificAPNInfo;
2440 static int ett_gsm_map_ms_Allocation_Retention_Priority;
2441 static int ett_gsm_map_ms_PDN_GW_Identity;
2442 static int ett_gsm_map_ms_WLAN_Offloadability;
2443 static int ett_gsm_map_ms_AccessRestrictionData;
2444 static int ett_gsm_map_ms_Ext_AccessRestrictionData;
2445 static int ett_gsm_map_ms_AdjacentAccessRestrictionDataList;
2446 static int ett_gsm_map_ms_AdjacentAccessRestrictionData;
2447 static int ett_gsm_map_ms_LCSInformation;
2448 static int ett_gsm_map_ms_GMLC_List;
2449 static int ett_gsm_map_ms_GPRSDataList;
2450 static int ett_gsm_map_ms_PDP_Context;
2451 static int ett_gsm_map_ms_GPRSSubscriptionData;
2452 static int ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo;
2453 static int ett_gsm_map_ms_GPRS_CSI;
2454 static int ett_gsm_map_ms_GPRS_CamelTDPDataList;
2455 static int ett_gsm_map_ms_GPRS_CamelTDPData;
2456 static int ett_gsm_map_ms_LSADataList;
2457 static int ett_gsm_map_ms_LSAData;
2458 static int ett_gsm_map_ms_LSAInformation;
2459 static int ett_gsm_map_ms_SubscriberData;
2460 static int ett_gsm_map_ms_BearerServiceList;
2461 static int ett_gsm_map_ms_TeleserviceList;
2462 static int ett_gsm_map_ms_ODB_Data;
2463 static int ett_gsm_map_ms_ODB_GeneralData;
2464 static int ett_gsm_map_ms_ODB_HPLMN_Data;
2465 static int ett_gsm_map_ms_Ext_SS_InfoList;
2466 static int ett_gsm_map_ms_Ext_SS_Info;
2467 static int ett_gsm_map_ms_Ext_ForwInfo;
2468 static int ett_gsm_map_ms_Ext_ForwFeatureList;
2469 static int ett_gsm_map_ms_Ext_ForwFeature;
2470 static int ett_gsm_map_ms_Ext_CallBarInfo;
2471 static int ett_gsm_map_ms_Ext_CallBarFeatureList;
2472 static int ett_gsm_map_ms_Ext_CallBarringFeature;
2473 static int ett_gsm_map_ms_CUG_Info;
2474 static int ett_gsm_map_ms_CUG_SubscriptionList;
2475 static int ett_gsm_map_ms_CUG_Subscription;
2476 static int ett_gsm_map_ms_CUG_FeatureList;
2477 static int ett_gsm_map_ms_Ext_BasicServiceGroupList;
2478 static int ett_gsm_map_ms_CUG_Feature;
2479 static int ett_gsm_map_ms_Ext_SS_Data;
2480 static int ett_gsm_map_ms_LCS_PrivacyExceptionList;
2481 static int ett_gsm_map_ms_LCS_PrivacyClass;
2482 static int ett_gsm_map_ms_ExternalClientList;
2483 static int ett_gsm_map_ms_PLMNClientList;
2484 static int ett_gsm_map_ms_Ext_ExternalClientList;
2485 static int ett_gsm_map_ms_ExternalClient;
2486 static int ett_gsm_map_ms_ServiceTypeList;
2487 static int ett_gsm_map_ms_ServiceType;
2488 static int ett_gsm_map_ms_MOLR_List;
2489 static int ett_gsm_map_ms_MOLR_Class;
2490 static int ett_gsm_map_ms_ZoneCodeList;
2491 static int ett_gsm_map_ms_InsertSubscriberDataRes;
2492 static int ett_gsm_map_ms_DeleteSubscriberDataArg;
2493 static int ett_gsm_map_ms_SpecificCSI_Withdraw;
2494 static int ett_gsm_map_ms_GPRSSubscriptionDataWithdraw;
2495 static int ett_gsm_map_ms_EPS_SubscriptionDataWithdraw;
2496 static int ett_gsm_map_ms_ContextIdList;
2497 static int ett_gsm_map_ms_LSAInformationWithdraw;
2498 static int ett_gsm_map_ms_LSAIdentityList;
2499 static int ett_gsm_map_ms_BasicServiceList;
2500 static int ett_gsm_map_ms_DeleteSubscriberDataRes;
2501 static int ett_gsm_map_ms_VlrCamelSubscriptionInfo;
2502 static int ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList;
2503 static int ett_gsm_map_ms_MT_smsCAMELTDP_Criteria;
2504 static int ett_gsm_map_ms_TPDU_TypeCriterion;
2505 static int ett_gsm_map_ms_D_CSI;
2506 static int ett_gsm_map_ms_DP_AnalysedInfoCriteriaList;
2507 static int ett_gsm_map_ms_DP_AnalysedInfoCriterium;
2508 static int ett_gsm_map_ms_SS_CSI;
2509 static int ett_gsm_map_ms_SS_CamelData;
2510 static int ett_gsm_map_ms_SS_EventList;
2511 static int ett_gsm_map_ms_O_CSI;
2512 static int ett_gsm_map_ms_O_BcsmCamelTDPDataList;
2513 static int ett_gsm_map_ms_O_BcsmCamelTDPData;
2514 static int ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList;
2515 static int ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList;
2516 static int ett_gsm_map_ms_O_BcsmCamelTDP_Criteria;
2517 static int ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria;
2518 static int ett_gsm_map_ms_DestinationNumberCriteria;
2519 static int ett_gsm_map_ms_DestinationNumberList;
2520 static int ett_gsm_map_ms_DestinationNumberLengthList;
2521 static int ett_gsm_map_ms_BasicServiceCriteria;
2522 static int ett_gsm_map_ms_O_CauseValueCriteria;
2523 static int ett_gsm_map_ms_T_CauseValueCriteria;
2524 static int ett_gsm_map_ms_SupportedCamelPhases;
2525 static int ett_gsm_map_ms_OfferedCamel4CSIs;
2526 static int ett_gsm_map_ms_OfferedCamel4Functionalities;
2527 static int ett_gsm_map_ms_SMS_CSI;
2528 static int ett_gsm_map_ms_SMS_CAMEL_TDP_DataList;
2529 static int ett_gsm_map_ms_SMS_CAMEL_TDP_Data;
2530 static int ett_gsm_map_ms_M_CSI;
2531 static int ett_gsm_map_ms_MG_CSI;
2532 static int ett_gsm_map_ms_MobilityTriggers;
2533 static int ett_gsm_map_ms_T_CSI;
2534 static int ett_gsm_map_ms_T_BcsmCamelTDPDataList;
2535 static int ett_gsm_map_ms_T_BcsmCamelTDPData;
2536 static int ett_gsm_map_ms_SendRoutingInfoForGprsArg;
2537 static int ett_gsm_map_ms_SendRoutingInfoForGprsRes;
2538 static int ett_gsm_map_ms_FailureReportArg;
2539 static int ett_gsm_map_ms_FailureReportRes;
2540 static int ett_gsm_map_ms_NoteMsPresentForGprsArg;
2541 static int ett_gsm_map_ms_NoteMsPresentForGprsRes;
2542 static int ett_gsm_map_ms_ResetArg;
2543 static int ett_gsm_map_ms_SendingNode_Number;
2544 static int ett_gsm_map_ms_RestoreDataArg;
2545 static int ett_gsm_map_ms_RestoreDataRes;
2546 static int ett_gsm_map_ms_VBSDataList;
2547 static int ett_gsm_map_ms_VGCSDataList;
2548 static int ett_gsm_map_ms_VoiceGroupCallData;
2549 static int ett_gsm_map_ms_AdditionalSubscriptions;
2550 static int ett_gsm_map_ms_VoiceBroadcastData;
2551 static int ett_gsm_map_ms_ProvideSubscriberInfoArg;
2552 static int ett_gsm_map_ms_ProvideSubscriberInfoRes;
2553 static int ett_gsm_map_ms_SubscriberInfo;
2554 static int ett_gsm_map_ms_MNPInfoRes;
2555 static int ett_gsm_map_ms_GPRSMSClass;
2556 static int ett_gsm_map_ms_RequestedInfo;
2557 static int ett_gsm_map_ms_RequestedNodes;
2558 static int ett_gsm_map_ms_LocationInformation;
2559 static int ett_gsm_map_ms_LocationInformationEPS;
2560 static int ett_gsm_map_ms_LocationInformationGPRS;
2561 static int ett_gsm_map_ms_LocationInformation5GS;
2562 static int ett_gsm_map_ms_UserCSGInformation;
2563 static int ett_gsm_map_ms_SubscriberState;
2564 static int ett_gsm_map_ms_PS_SubscriberState;
2565 static int ett_gsm_map_ms_PDP_ContextInfoList;
2566 static int ett_gsm_map_ms_PDP_ContextInfo;
2567 static int ett_gsm_map_ms_AnyTimeInterrogationArg;
2568 static int ett_gsm_map_ms_AnyTimeInterrogationRes;
2569 static int ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg;
2570 static int ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes;
2571 static int ett_gsm_map_ms_CallWaitingData;
2572 static int ett_gsm_map_ms_Ext_CwFeatureList;
2573 static int ett_gsm_map_ms_Ext_CwFeature;
2574 static int ett_gsm_map_ms_ClipData;
2575 static int ett_gsm_map_ms_ClirData;
2576 static int ett_gsm_map_ms_CallHoldData;
2577 static int ett_gsm_map_ms_EctData;
2578 static int ett_gsm_map_ms_RequestedSubscriptionInfo;
2579 static int ett_gsm_map_ms_MSISDN_BS_List;
2580 static int ett_gsm_map_ms_MSISDN_BS;
2581 static int ett_gsm_map_ms_CallForwardingData;
2582 static int ett_gsm_map_ms_CallBarringData;
2583 static int ett_gsm_map_ms_ODB_Info;
2584 static int ett_gsm_map_ms_CAMEL_SubscriptionInfo;
2585 static int ett_gsm_map_ms_AnyTimeModificationArg;
2586 static int ett_gsm_map_ms_ModificationRequestFor_CW_Info;
2587 static int ett_gsm_map_ms_ModificationRequestFor_CH_Info;
2588 static int ett_gsm_map_ms_ModificationRequestFor_ECT_Info;
2589 static int ett_gsm_map_ms_ModificationRequestFor_CLIR_Info;
2590 static int ett_gsm_map_ms_ModificationRequestFor_CLIP_Info;
2591 static int ett_gsm_map_ms_ModificationRequestFor_CSG;
2592 static int ett_gsm_map_ms_RequestedServingNode;
2593 static int ett_gsm_map_ms_ServingNode;
2594 static int ett_gsm_map_ms_AnyTimeModificationRes;
2595 static int ett_gsm_map_ms_ModificationRequestFor_CF_Info;
2596 static int ett_gsm_map_ms_ModificationRequestFor_CB_Info;
2597 static int ett_gsm_map_ms_ModificationRequestFor_ODB_data;
2598 static int ett_gsm_map_ms_ModificationRequestFor_CSI;
2599 static int ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data;
2600 static int ett_gsm_map_ms_NoteSubscriberDataModifiedArg;
2601 static int ett_gsm_map_ms_NoteSubscriberDataModifiedRes;
2602 static int ett_gsm_map_ms_NoteMM_EventArg;
2603 static int ett_gsm_map_ms_NoteMM_EventRes;
2604 static int ett_gsm_map_ms_Ext_SS_InfoFor_CSE;
2605 static int ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE;
2606 static int ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE;
2607 static int ett_gsm_map_ms_UpdateVcsgLocationArg;
2608 static int ett_gsm_map_ms_UpdateVcsgLocationRes;
2609 static int ett_gsm_map_ms_CancelVcsgLocationArg;
2610 static int ett_gsm_map_ms_CancelVcsgLocationRes;
2612 /* --- Module MAP-CH-DataTypes --- --- --- */
2614 static int ett_gsm_map_ch_CUG_CheckInfo;
2615 static int ett_gsm_map_ch_SendRoutingInfoArg;
2616 static int ett_gsm_map_ch_SuppressMTSS;
2617 static int ett_gsm_map_ch_SendRoutingInfoRes_U;
2618 static int ett_gsm_map_ch_AllowedServices;
2619 static int ett_gsm_map_ch_CCBS_Indicators;
2620 static int ett_gsm_map_ch_RoutingInfo;
2621 static int ett_gsm_map_ch_ForwardingData;
2622 static int ett_gsm_map_ch_ProvideRoamingNumberArg;
2623 static int ett_gsm_map_ch_ProvideRoamingNumberRes;
2624 static int ett_gsm_map_ch_ResumeCallHandlingArg;
2625 static int ett_gsm_map_ch_UU_Data;
2626 static int ett_gsm_map_ch_ResumeCallHandlingRes;
2627 static int ett_gsm_map_ch_CamelInfo;
2628 static int ett_gsm_map_ch_ExtendedRoutingInfo;
2629 static int ett_gsm_map_ch_CamelRoutingInfo;
2630 static int ett_gsm_map_ch_GmscCamelSubscriptionInfo;
2631 static int ett_gsm_map_ch_SetReportingStateArg;
2632 static int ett_gsm_map_ch_SetReportingStateRes;
2633 static int ett_gsm_map_ch_StatusReportArg;
2634 static int ett_gsm_map_ch_EventReportData;
2635 static int ett_gsm_map_ch_CallReportData;
2636 static int ett_gsm_map_ch_StatusReportRes;
2637 static int ett_gsm_map_ch_RemoteUserFreeArg;
2638 static int ett_gsm_map_ch_RemoteUserFreeRes;
2639 static int ett_gsm_map_ch_IST_AlertArg;
2640 static int ett_gsm_map_ch_IST_AlertRes;
2641 static int ett_gsm_map_ch_IST_CommandArg;
2642 static int ett_gsm_map_ch_IST_CommandRes;
2643 static int ett_gsm_map_ch_ReleaseResourcesArg;
2644 static int ett_gsm_map_ch_ReleaseResourcesRes;
2646 /* --- Module MAP-LCS-DataTypes --- --- --- */
2648 static int ett_gsm_map_lcs_RoutingInfoForLCS_Arg;
2649 static int ett_gsm_map_lcs_RoutingInfoForLCS_Res;
2650 static int ett_gsm_map_lcs_LCSLocationInfo;
2651 static int ett_gsm_map_lcs_ProvideSubscriberLocation_Arg;
2652 static int ett_gsm_map_lcs_LocationType;
2653 static int ett_gsm_map_lcs_DeferredLocationEventType;
2654 static int ett_gsm_map_lcs_LCS_ClientID;
2655 static int ett_gsm_map_lcs_LCSClientName;
2656 static int ett_gsm_map_lcs_LCSRequestorID;
2657 static int ett_gsm_map_lcs_LCS_QoS;
2658 static int ett_gsm_map_lcs_ResponseTime;
2659 static int ett_gsm_map_lcs_SupportedGADShapes;
2660 static int ett_gsm_map_lcs_LCSCodeword;
2661 static int ett_gsm_map_lcs_LCS_PrivacyCheck;
2662 static int ett_gsm_map_lcs_AreaEventInfo;
2663 static int ett_gsm_map_lcs_AreaDefinition;
2664 static int ett_gsm_map_lcs_AreaList;
2665 static int ett_gsm_map_lcs_Area;
2666 static int ett_gsm_map_lcs_PeriodicLDRInfo;
2667 static int ett_gsm_map_lcs_ReportingOptionMilliseconds;
2668 static int ett_gsm_map_lcs_ReportingPLMNList;
2669 static int ett_gsm_map_lcs_PLMNList;
2670 static int ett_gsm_map_lcs_ReportingPLMN;
2671 static int ett_gsm_map_lcs_ProvideSubscriberLocation_Res;
2672 static int ett_gsm_map_lcs_SubscriberLocationReport_Arg;
2673 static int ett_gsm_map_lcs_Deferredmt_lrData;
2674 static int ett_gsm_map_lcs_ServingNodeAddress;
2675 static int ett_gsm_map_lcs_SubscriberLocationReport_Res;
2677 /* --- Module MAP-GR-DataTypes --- --- --- */
2679 static int ett_gsm_map_gr_PrepareGroupCallArg;
2680 static int ett_gsm_map_gr_PrepareGroupCallRes;
2681 static int ett_gsm_map_gr_SendGroupCallEndSignalArg;
2682 static int ett_gsm_map_gr_SendGroupCallEndSignalRes;
2683 static int ett_gsm_map_gr_ForwardGroupCallSignallingArg;
2684 static int ett_gsm_map_gr_ProcessGroupCallSignallingArg;
2685 static int ett_gsm_map_gr_StateAttributes;
2686 static int ett_gsm_map_gr_SendGroupCallInfoArg;
2687 static int ett_gsm_map_gr_SendGroupCallInfoRes;
2689 /* --- Module MAP-DialogueInformation --- --- --- */
2691 static int ett_gsm_map_dialogue_MAP_DialoguePDU;
2692 static int ett_gsm_map_dialogue_MAP_OpenInfo;
2693 static int ett_gsm_map_dialogue_MAP_AcceptInfo;
2694 static int ett_gsm_map_dialogue_MAP_CloseInfo;
2695 static int ett_gsm_map_dialogue_MAP_RefuseInfo;
2696 static int ett_gsm_map_dialogue_MAP_UserAbortInfo;
2697 static int ett_gsm_map_dialogue_MAP_UserAbortChoice;
2698 static int ett_gsm_map_dialogue_MAP_ProviderAbortInfo;
2700 /* --- Module MAP-LocationServiceOperations --- --- --- */
2703 /* --- Module MAP-Group-Call-Operations --- --- --- */
2706 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
2709 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
2712 /* --- Module MAP-CallHandlingOperations --- --- --- */
2715 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
2718 /* --- Module MAP-MobileServiceOperations --- --- --- */
2721 /* --- Module MAP-Errors --- --- --- */
2724 /* --- Module MAP-Protocol --- --- --- */
2727 /* --- Module DummyMAP --- --- --- */
2729 static int ett_gsm_old_Component;
2730 static int ett_gsm_old_Invoke;
2731 static int ett_gsm_old_ReturnResult;
2732 static int ett_gsm_old_T_resultretres;
2733 static int ett_gsm_old_ReturnError;
2734 static int ett_gsm_old_Reject;
2735 static int ett_gsm_old_T_invokeIDRej;
2736 static int ett_gsm_old_T_problem;
2737 static int ett_gsm_old_MAP_OPERATION;
2738 static int ett_gsm_old_MAP_ERROR;
2739 static int ett_gsm_old_Bss_APDU;
2740 static int ett_gsm_old_ProvideSIWFSNumberArg;
2741 static int ett_gsm_old_ProvideSIWFSNumberRes;
2742 static int ett_gsm_old_PurgeMSArgV2;
2743 static int ett_gsm_old_PrepareHO_ArgOld;
2744 static int ett_gsm_old_PrepareHO_ResOld;
2745 static int ett_gsm_old_SendAuthenticationInfoResOld;
2746 static int ett_gsm_old_SendAuthenticationInfoResOld_item;
2747 static int ett_gsm_old_SendIdentificationResV2;
2748 static int ett_gsm_old_TripletListold;
2749 static int ett_gsm_old_AuthenticationTriplet_v2;
2750 static int ett_gsm_old_SIWFSSignallingModifyArg;
2751 static int ett_gsm_old_SIWFSSignallingModifyRes;
2752 static int ett_gsm_old_SecureTransportArg;
2753 static int ett_gsm_old_SecureTransportErrorParam;
2754 static int ett_gsm_old_SecureTransportRes;
2755 static int ett_gsm_old_SecurityHeader;
2756 static int ett_gsm_old_OriginalComponentIdentifier;
2757 static int ett_gsm_old_OperationCode;
2758 static int ett_gsm_old_ErrorCode;
2759 static int ett_gsm_old_PlmnContainer_U;
2760 static int ett_gsm_old_T_operatorSS_Code;
2761 static int ett_gsm_old_ForwardSM_Arg;
2762 static int ett_gsm_old_SM_RP_DAold;
2763 static int ett_gsm_old_SM_RP_OAold;
2764 static int ett_gsm_old_SendRoutingInfoArgV2;
2765 static int ett_gsm_old_SendRoutingInfoResV2;
2766 static int ett_gsm_old_BeginSubscriberActivityArg;
2767 static int ett_gsm_old_RoutingInfoForSM_ArgV1;
2768 static int ett_gsm_old_RoutingInfoForSM_ResV2;
2769 static int ett_gsm_old_LocationInfoWithLMSIv2;
2770 static int ett_gsm_old_LocationInfo;
2771 static int ett_gsm_old_SendParametersArg;
2772 static int ett_gsm_old_RequestParameterList;
2773 static int ett_gsm_old_SentParameter;
2774 static int ett_gsm_old_AuthenticationSetListOld;
2775 static int ett_gsm_old_SentParameterList;
2776 static int ett_gsm_old_ResetArgV1;
2778 /* --- Module SS-DataTypes --- --- --- */
2780 static int ett_gsm_ss_NotifySS_Arg;
2781 static int ett_gsm_ss_ForwardChargeAdviceArg;
2782 static int ett_gsm_ss_ChargingInformation;
2783 static int ett_gsm_ss_ForwardCUG_InfoArg;
2784 static int ett_gsm_ss_ECT_Indicator;
2785 static int ett_gsm_ss_NameIndicator;
2786 static int ett_gsm_ss_Name;
2787 static int ett_gsm_ss_NameSet;
2788 static int ett_gsm_ss_RDN;
2789 static int ett_gsm_ss_RemotePartyNumber;
2790 static int ett_gsm_ss_AccessRegisterCCEntryArg;
2791 static int ett_gsm_ss_CallDeflectionArg;
2792 static int ett_gsm_ss_UserUserServiceArg;
2793 static int ett_gsm_ss_LocationNotificationArg;
2794 static int ett_gsm_ss_DeferredLocationExt;
2795 static int ett_gsm_ss_RangingSlExt;
2796 static int ett_gsm_ss_LocationNotificationRes;
2797 static int ett_gsm_ss_LCS_MOLRArg;
2798 static int ett_gsm_ss_MultiplePositioningProtocolPDUs;
2799 static int ett_gsm_ss_LCS_MOLRRes;
2800 static int ett_gsm_ss_LCS_AreaEventRequestArg;
2801 static int ett_gsm_ss_LCS_SLMOLRArg;
2802 static int ett_gsm_ss_PreferredRangingResult;
2803 static int ett_gsm_ss_RelatedUEInfo;
2804 static int ett_gsm_ss_RangingUEInfo;
2805 static int ett_gsm_ss_LCS_SLMOLRRes;
2806 static int ett_gsm_ss_RelativeResult;
2807 static int ett_gsm_ss_SingleRelativeResult;
2808 static int ett_gsm_ss_RelativeLocationCoordinates;
2809 static int ett_gsm_ss_Relative2D_LocationWithUncertaintyEllipse;
2810 static int ett_gsm_ss_Relative3D_LocationWithUncertaintyEllipsoid;
2811 static int ett_gsm_ss_RangeDirection;
2812 static int ett_gsm_ss_Range;
2813 static int ett_gsm_ss_Azimuth;
2814 static int ett_gsm_ss_Elevation;
2815 static int ett_gsm_ss_LCS_AreaEventReportArg;
2816 static int ett_gsm_ss_LCS_AreaEventCancellationArg;
2817 static int ett_gsm_ss_LCS_PeriodicLocationRequestArg;
2818 static int ett_gsm_ss_LCS_PeriodicLocationRequestRes;
2819 static int ett_gsm_ss_LCS_LocationUpdateArg;
2820 static int ett_gsm_ss_LCS_LocationUpdateRes;
2821 static int ett_gsm_ss_LCS_PeriodicLocationCancellationArg;
2822 static int ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg;
2823 static int ett_gsm_ss_PeriodicLocation;
2824 static int ett_gsm_ss_AreaEventReporting;
2825 static int ett_gsm_ss_AreaList;
2826 static int ett_gsm_ss_Area;
2827 static int ett_gsm_ss_LocationInfo;
2828 static int ett_gsm_ss_MotionEventReporting;
2829 static int ett_gsm_ss_ReportingAccessTypes;
2830 static int ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes;
2831 static int ett_gsm_ss_LCS_EventReportArg;
2832 static int ett_gsm_ss_ControlPlane_CIoT_5GS_Optimisation;
2833 static int ett_gsm_ss_LCS_UserPlaneReportAFAddr;
2834 static int ett_gsm_ss_Ipv4Addrs;
2835 static int ett_gsm_ss_Ipv6Addrs;
2836 static int ett_gsm_ss_LCS_CumulativeReportCriteria;
2837 static int ett_gsm_ss_LCS_EventReportRes;
2838 static int ett_gsm_ss_LCS_CancelDeferredLocationArg;
2839 static int ett_gsm_ss_LCS_LocationPrivacySettingArg;
2840 static int ett_gsm_ss_LCS_ValidTimePeriod;
2841 static int ett_gsm_ss_LCS_PruAssociationArg;
2842 static int ett_gsm_ss_LCS_PruAssociationRes;
2843 static int ett_gsm_ss_LCS_PruUpdateTrigger;
2844 static int ett_gsm_ss_LCS_PruDisassociationArg;
2845 static int ett_gsm_ss_LCS_SLMTLRArg;
2846 static int ett_gsm_ss_LCS_SLMTLRRes;
2847 static int ett_gsm_ss_RangingSLPPList;
2848 static int ett_gsm_ss_RangingSLPPInfo;
2849 static int ett_gsm_ss_LCS_DLRSPPTransportArg;
2850 static int ett_gsm_ss_LCS_DLRSPPTransportRes;
2851 static int ett_gsm_ss_LCS_ULRSPPTransportArg;
2852 static int ett_gsm_ss_LCS_ULRSPPTransportRes;
2854 /* --- Module SS-Operations --- --- --- */
2857 /* --- Module EricssonMAP --- --- --- */
2859 static int ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg;
2860 static int ett_gsm_map_ericsson_ExtensionType;
2861 static int ett_gsm_map_ericsson_IsdArgType;
2862 static int ett_gsm_map_ericsson_IsdArgData;
2863 static int ett_gsm_map_ericsson_PrivateFeatureData;
2864 static int ett_gsm_map_ericsson_OickInfo;
2865 static int ett_gsm_map_ericsson_SubscriptionTypeInfo;
2866 static int ett_gsm_map_ericsson_IsdResType;
2867 static int ett_gsm_map_ericsson_IsdResData;
2868 static int ett_gsm_map_ericsson_DsdArgType;
2869 static int ett_gsm_map_ericsson_DsdArgData;
2870 static int ett_gsm_map_ericsson_SRIArgType;
2871 static int ett_gsm_map_ericsson_SriArgData;
2872 static int ett_gsm_map_ericsson_SRIResType;
2873 static int ett_gsm_map_ericsson_SriResData;
2874 static int ett_gsm_map_ericsson_PrnArgType;
2875 static int ett_gsm_map_ericsson_PrnArgData;
2876 static int ett_gsm_map_ericsson_UlArgType;
2877 static int ett_gsm_map_ericsson_UlArgData;
2878 static int ett_gsm_map_ericsson_PrivateFeatureUlArgData;
2879 static int ett_gsm_map_ericsson_ExtraSignalInfo_U;
2880 static int ett_gsm_map_ericsson_SaiArgType;
2881 static int ett_gsm_map_ericsson_SaiResType;
2882 static int ett_gsm_map_ericsson_AtiArgType;
2883 static int ett_gsm_map_ericsson_AtiResType;
2884 static int ett_gsm_map_ericsson_RdArgType;
2885 static int ett_gsm_map_ericsson_RequestedInfoType;
2886 static int ett_gsm_map_ericsson_ExtAtiArgType;
2887 static int ett_gsm_map_ericsson_AtiArgData;
2889 /* --- Module NokiaMAP-Extensions --- --- --- */
2891 static int ett_NokiaMAP_Extensions_IsdArgExt_U;
2892 static int ett_NokiaMAP_Extensions_DsdArgExt_U;
2893 static int ett_NokiaMAP_Extensions_UlResExt_U;
2894 static int ett_NokiaMAP_Extensions_ChargingAreaList;
2895 static int ett_NokiaMAP_Extensions_RegionalChargingData;
2896 static int ett_NokiaMAP_Extensions_SS_DataExtension_U;
2897 static int ett_NokiaMAP_Extensions_SriExtension_U;
2898 static int ett_NokiaMAP_Extensions_ExtraSignalInfo_U;
2899 static int ett_NokiaMAP_Extensions_Nokia_CUG_Data;
2900 static int ett_NokiaMAP_Extensions_SriResExtension_U;
2901 static int ett_NokiaMAP_Extensions_RgData;
2902 static int ett_NokiaMAP_Extensions_MemberList;
2903 static int ett_NokiaMAP_Extensions_CanLocArgExt_U;
2904 static int ett_NokiaMAP_Extensions_ATMargExt_U;
2905 static int ett_NokiaMAP_Extensions_OlcmInfoTable;
2906 static int ett_NokiaMAP_Extensions_OlcmInfo;
2907 static int ett_NokiaMAP_Extensions_ATMresExt_U;
2908 static int ett_NokiaMAP_Extensions_DTMargExt_U;
2909 static int ett_NokiaMAP_Extensions_FraudInfo;
2910 static int ett_NokiaMAP_Extensions_FraudData;
2911 static int ett_NokiaMAP_Extensions_ServiceWithInfo;
2912 static int ett_NokiaMAP_Extensions_ServiceListWithInfo;
2913 static int ett_NokiaMAP_Extensions_INKey;
2914 static int ett_NokiaMAP_Extensions_MKey;
2915 static int ett_NokiaMAP_Extensions_SMSKey;
2916 static int ett_NokiaMAP_Extensions_HO_Ext_U;
2917 static int ett_NokiaMAP_Extensions_CodecListExt;
2918 static int ett_NokiaMAP_Extensions_SelectedCodec;
2919 static int ett_NokiaMAP_Extensions_AbsentSubscriberExt_U;
2920 static int ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U;
2921 static int ett_NokiaMAP_Extensions_RoutingCategoryExt_U;
2922 static int ett_NokiaMAP_Extensions_SriForSMArgExt_U;
2923 static int ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U;
2924 static int ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U;
2925 static int ett_NokiaMAP_Extensions_UdlArgExt_U;
2926 static int ett_NokiaMAP_Extensions_RoamNotAllowedExt_U;
2927 static int ett_NokiaMAP_Extensions_AnyTimeModArgExt_U;
2928 static int ett_NokiaMAP_Extensions_AccessTypeExt;
2929 static int ett_NokiaMAP_Extensions_AccessSubscriptionListExt;
2930 static int ett_NokiaMAP_Extensions_AllowedServiceData;
2932 static expert_field ei_gsm_map_unknown_sequence3;
2933 static expert_field ei_gsm_map_unknown_sequence;
2934 static expert_field ei_gsm_map_unknown_parameter;
2935 static expert_field ei_gsm_map_unknown_invokeData;
2936 static expert_field ei_gsm_map_undecoded;
2938 static dissector_handle_t gsm_sms_handle; /* SMS TPDU */
2939 static dissector_handle_t ranap_handle;
2940 static dissector_handle_t dtap_handle;
2941 static dissector_handle_t map_handle;
2942 static dissector_handle_t bssap_handle;
2943 static dissector_table_t map_prop_arg_opcode_table; /* proprietary operation codes */
2944 static dissector_table_t map_prop_res_opcode_table; /* proprietary operation codes */
2945 static dissector_table_t map_prop_err_opcode_table; /* proprietary operation codes */
2946 /* Preference settings default */
2947 #define MAX_SSN 254
2948 static range_t *global_ssn_range;
2949 static bool pref_context_version_from_trace = true;
2950 static int pref_application_context_version = 3;
2951 static bool pref_ericsson_proprietary_ext;
2953 /* Global variables */
2954 static uint32_t opcode=0;
2955 static uint32_t errorCode;
2956 static int application_context_version;
2957 static unsigned ProtocolId;
2958 static unsigned AccessNetworkProtocolId;
2959 static int gsm_map_tap;
2960 static uint8_t gsmmap_pdu_type;
2961 static uint8_t gsm_map_pdu_size;
2963 #define SMS_ENCODING_NOT_SET 0
2964 #define SMS_ENCODING_7BIT 1
2965 #define SMS_ENCODING_8BIT 2
2966 #define SMS_ENCODING_UCS2 3
2967 #define SMS_ENCODING_7BIT_LANG 4
2968 #define SMS_ENCODING_UCS2_LANG 5
2970 static uint8_t sms_encoding;
2972 /* Forward declarations */
2973 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2974 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2975 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2976 const char* gsm_map_opr_code(uint32_t val, proto_item *item);
2978 typedef struct {
2979 struct tcap_private_t * tcap_private;
2980 sccp_msg_info_t *sccp_msg_info;
2981 tvbuff_t *signal_info_tvb;
2982 } gsm_map_private_info_t;
2984 typedef struct {
2985 wmem_tree_t *packets;
2986 } gsm_map_conv_info_t;
2988 static gsm_map_packet_info_t *gsm_map_get_packet_info(asn1_ctx_t *actx, bool store_conv_info)
2990 gsm_map_packet_info_t *gsm_map_pi = (gsm_map_packet_info_t*)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_gsm_map, 0);
2991 if (!gsm_map_pi) {
2992 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
2993 gsm_map_pi = wmem_new0(wmem_file_scope(), gsm_map_packet_info_t);
2994 p_add_proto_data(wmem_file_scope(), actx->pinfo, proto_gsm_map, 0, gsm_map_pi);
2995 if (gsm_map_priv && gsm_map_priv->tcap_private) {
2996 gsm_map_pi->tcap_src_tid = gsm_map_priv->tcap_private->src_tid;
2997 if (store_conv_info) {
2998 conversation_t *conversation;
2999 gsm_map_conv_info_t *gsm_map_info;
3000 wmem_tree_key_t key[3];
3001 conversation = find_or_create_conversation(actx->pinfo);
3002 gsm_map_info = (gsm_map_conv_info_t *)conversation_get_proto_data(conversation, proto_gsm_map);
3003 if (!gsm_map_info) {
3004 gsm_map_info = wmem_new(wmem_file_scope(), gsm_map_conv_info_t);
3005 gsm_map_info->packets = wmem_tree_new(wmem_file_scope());
3006 conversation_add_proto_data(conversation, proto_gsm_map, gsm_map_info);
3008 key[0].length = 1;
3009 key[0].key = &gsm_map_priv->tcap_private->src_tid;
3010 key[1].length = 1;
3011 key[1].key = &actx->pinfo->num;
3012 key[2].length = 0;
3013 key[2].key = NULL;
3014 wmem_tree_insert32_array(gsm_map_info->packets, key, (void *)gsm_map_pi);
3018 return gsm_map_pi;
3021 static gsm_map_packet_info_t *gsm_map_get_matching_tcap_info(asn1_ctx_t *actx)
3023 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
3024 if (gsm_map_priv && gsm_map_priv->tcap_private) {
3025 conversation_t *conversation;
3026 gsm_map_conv_info_t *gsm_map_info;
3027 wmem_tree_key_t key[3];
3028 gsm_map_packet_info_t *gsm_map_pi;
3029 conversation = find_or_create_conversation(actx->pinfo);
3030 gsm_map_info = (gsm_map_conv_info_t *)conversation_get_proto_data(conversation, proto_gsm_map);
3031 if (!gsm_map_info) {
3032 gsm_map_info = wmem_new(wmem_file_scope(), gsm_map_conv_info_t);
3033 gsm_map_info->packets = wmem_tree_new(wmem_file_scope());
3034 conversation_add_proto_data(conversation, proto_gsm_map, gsm_map_info);
3036 key[0].length = 1;
3037 key[0].key = &gsm_map_priv->tcap_private->src_tid;
3038 key[1].length = 1;
3039 key[1].key = &actx->pinfo->num;
3040 key[2].length = 0;
3041 key[2].key = NULL;
3042 gsm_map_pi = (gsm_map_packet_info_t*)wmem_tree_lookup32_array_le(gsm_map_info->packets, key);
3043 if (gsm_map_pi && gsm_map_pi->tcap_src_tid == gsm_map_priv->tcap_private->src_tid)
3044 return gsm_map_pi;
3046 return NULL;
3049 /* Value strings */
3051 const value_string gsm_map_PDP_Type_Organisation_vals[] = {
3052 { 0, "ETSI" },
3053 { 1, "IETF" },
3054 { 0, NULL }
3057 const value_string gsm_map_ietf_defined_pdp_vals[] = {
3058 { 0x21, "IPv4 Address" },
3059 { 0x57, "IPv6 Address" },
3060 { 0, NULL }
3063 const value_string gsm_map_etsi_defined_pdp_vals[] = {
3064 { 1, "PPP" },
3065 { 0, NULL }
3068 static const value_string gsm_map_tag_vals[] = {
3069 { 0x4, "Bearer Capability" },
3070 { 0, NULL }
3073 static const value_string gsm_map_disc_par_vals[] = {
3074 { 0, "Not Transparent" },
3075 { 1, "Transparent" },
3076 { 0, NULL }
3079 static const value_string gsm_map_ericsson_locationInformation_rat_vals[] = {
3080 { 0x0, "GSM" },
3081 { 0x1, "UMTS" },
3082 { 0x2, "LTE" },
3083 { 0xf, "No information" },
3084 { 0, NULL }
3088 /* returns value in kb/s */
3089 static unsigned
3090 gsm_map_calc_bitrate(uint8_t value){
3092 uint8_t granularity;
3093 unsigned returnvalue;
3095 if (value == 0xff)
3096 return 0;
3098 granularity = value >> 6;
3099 returnvalue = value & 0x7f;
3100 switch (granularity){
3101 case 0:
3102 break;
3103 case 1:
3104 returnvalue = ((returnvalue - 0x40) << 3)+64;
3105 break;
3106 case 2:
3107 returnvalue = (returnvalue << 6)+576;
3108 break;
3109 case 3:
3110 returnvalue = (returnvalue << 6)+576;
3111 break;
3113 return returnvalue;
3117 static void
3118 dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
3119 int offset = 0;
3120 proto_tree *subtree;
3121 uint8_t octet;
3122 uint16_t value;
3124 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
3125 /* OCTET 1:
3126 Allocation/Retention Priority (This octet encodes each priority level defined in
3127 23.107 as the binary value of the priority level, declaration in 29.060)
3128 Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
3129 6-13.
3131 /* Allocation/Retention Priority */
3132 proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
3133 offset++;
3135 /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
3137 /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
3138 proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, ENC_BIG_ENDIAN);
3139 /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
3140 proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, ENC_BIG_ENDIAN);
3141 /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
3142 proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, ENC_BIG_ENDIAN);
3143 offset++;
3145 /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
3146 octet = tvb_get_uint8(tvb,offset);
3147 switch (octet){
3148 case 0:
3149 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, octet, "Reserved");
3150 break;
3151 case 0x93:
3152 value = 1502;
3153 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
3154 break;
3155 case 0x98:
3156 value = 1510;
3157 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
3158 break;
3159 case 0x99:
3160 value = 1532;
3161 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
3162 break;
3163 default:
3164 if (octet<0x97){
3165 value = octet * 10;
3166 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
3167 }else{
3168 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, octet, "0x%x not defined in TS 24.008", octet);
3171 offset++;
3173 /* Maximum bit rate for uplink, octet 8 */
3174 octet = tvb_get_uint8(tvb,offset);
3175 if (octet == 0 ){
3176 proto_tree_add_uint_format_value(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, octet, "Reserved" );
3177 }else{
3178 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
3180 offset++;
3181 /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
3182 octet = tvb_get_uint8(tvb,offset);
3183 if (octet == 0 ){
3184 proto_tree_add_uint_format_value(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, octet, "Reserved" );
3185 }else{
3186 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
3188 offset++;
3189 /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */
3190 proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, ENC_BIG_ENDIAN);
3191 /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
3192 proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, ENC_BIG_ENDIAN);
3193 offset++;
3195 /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
3196 proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, ENC_BIG_ENDIAN);
3197 /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
3198 proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
3199 offset++;
3201 /* Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
3202 Coding is identical to that of Maximum bit rate for uplink.
3204 octet = tvb_get_uint8(tvb,offset);
3205 if (octet == 0 ){
3206 proto_tree_add_uint_format_value(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, octet, "Subscribed guaranteed bit rate for uplink/reserved");
3207 }else{
3208 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
3210 offset++;
3212 /* Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
3213 Coding is identical to that of Maximum bit rate for uplink.
3215 octet = tvb_get_uint8(tvb,offset);
3216 if (octet == 0 ){
3217 proto_tree_add_uint_format_value(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, octet, "Subscribed guaranteed bit rate for downlink/reserved");
3218 }else{
3219 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
3225 Ext2-QoS-Subscribed ::= OCTET STRING (SIZE (1..3))
3226 -- Octets 1-3 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 14-16.
3227 -- If Quality of Service information is structured with 14 octet length, then
3228 -- Octet 1 is coded according to 3GPP TS 24.008 [35] Quality of Service Octet 14.
3232 static const true_false_string gsm_map_qos_signalling_ind_value = {
3233 "Optimised for signalling traffic",
3234 "Not optimised for signalling traffic"
3236 #if 0
3237 /* Helper function returning the main bitrates in kbps */
3238 static uint32_t
3239 qos_calc_bitrate(uint8_t oct)
3241 if (oct <= 0x3f)
3242 return oct;
3243 if (oct <= 0x7f)
3244 return 64 + (oct - 0x40) * 8;
3246 return 576 + (oct - 0x80) * 64;
3248 #endif
3249 /* Helper function returning the extended bitrates in kbps */
3250 static uint32_t
3251 qos_calc_ext_bitrate(uint8_t oct)
3253 if (oct <= 0x4a)
3254 return 8600 + oct * 100;
3255 if (oct <= 0xba)
3256 return 16000 + (oct - 0x4a) * 1000;
3258 return 128000 + (oct - 0xba) * 2000;
3260 #if 0
3261 static uint32_t
3262 qos_calc_ext2_bitrate(uint8_t oct)
3264 if (oct <= 0x3d)
3265 return (256 + oct * 4);
3266 if (oct <= 0xa1)
3267 return (500 + (oct - 0x3d) * 10);
3268 if (oct <= 0xf6)
3269 return (1500 + (oct - 0xa1) * 100);
3271 return 10000;
3273 #endif
3274 static void
3275 dissect_gsm_map_ext2_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) {
3277 int offset = 0;
3278 proto_tree *subtree;
3279 const char *str;
3280 uint8_t oct, tmp_oct;
3281 uint32_t temp32;
3282 int length = tvb_reported_length(tvb);
3284 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext2_qos_subscribed);
3286 /* Ocet 14 */
3287 oct = tvb_get_uint8(tvb, offset);
3288 proto_tree_add_bits_item(subtree, hf_gsm_map_spare_bits, tvb, (offset << 3), 3, ENC_BIG_ENDIAN);
3289 proto_tree_add_item(subtree, hf_gsm_map_qos_signalling_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
3291 tmp_oct = oct & 7;
3292 if (tmp_oct == 0x01)
3293 str = "speech";
3294 else
3295 str = "unknown";
3297 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_source_stat_desc, tvb,
3298 offset, 1, oct, "%s (%u)", str, tmp_oct);
3300 offset += 1;
3301 if (length == offset) {
3302 return;
3305 /* Octet 15 */
3306 oct = tvb_get_uint8(tvb, offset);
3308 if (oct == 0x00)
3309 str = "Use the value indicated by the Maximum bit rate for downlink";
3310 else
3312 temp32 = qos_calc_ext_bitrate(oct);
3313 if (temp32 % 1000 == 0)
3314 str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000);
3315 else
3316 str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32);
3318 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_bitrate_downl_ext, tvb,
3319 offset, 1, oct, "%s (%u)", str, oct);
3321 offset += 1;
3322 if (length == offset) {
3323 return;
3326 /* Octet 16 */
3327 oct = tvb_get_uint8(tvb, offset);
3329 if (oct == 0x00)
3330 str = "Use the value indicated by the Guaranteed bit rate for downlink";
3331 else
3333 temp32 = qos_calc_ext_bitrate(oct);
3334 if (temp32 % 1000 == 0)
3335 str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000);
3336 else
3337 str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32);
3339 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_guar_bitrate_downl_ext, tvb,
3340 offset, 1, oct, "%s (%u)", str, oct);
3345 Ext3-QoS-Subscribed ::= OCTET STRING (SIZE (1..2))
3346 -- Octets 1-2 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 17-18.
3349 static void
3350 dissect_gsm_map_ext3_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) {
3352 int offset = 0;
3353 proto_tree *subtree;
3354 const char *str;
3355 uint8_t oct;
3356 uint32_t temp32;
3357 int length = tvb_reported_length(tvb);
3359 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext3_qos_subscribed);
3361 /* Maximum bit rate for uplink (extended) Octet 17 */
3362 oct = tvb_get_uint8(tvb, offset);
3364 if (oct == 0x00)
3365 str = "Use the value indicated by the Maximum bit rate for uplink";
3366 else
3368 temp32 = qos_calc_ext_bitrate(oct);
3369 if (temp32 % 1000 == 0)
3370 str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000);
3371 else
3372 str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32);
3374 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_bitrate_upl_ext, tvb,
3375 offset, 1, oct, "%s (%u)", str, oct);
3377 offset += 1;
3378 if (length == offset) {
3379 return;
3382 /* Guaranteed bit rate for uplink (extended) Octet 18 */
3383 oct = tvb_get_uint8(tvb, offset);
3385 if (oct == 0x00)
3386 str = "Use the value indicated by the Guaranteed bit rate for uplink";
3387 else
3389 temp32 = qos_calc_ext_bitrate(oct);
3390 if (temp32 % 1000 == 0)
3391 str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000);
3392 else
3393 str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32);
3395 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_guar_bitrate_upl_ext, tvb,
3396 offset, 1, oct, "%s (%u)", str, oct);
3398 return;
3401 static void
3402 dissect_gsm_map_ext4_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) {
3403 int offset = 0;
3404 proto_tree *subtree;
3406 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext3_qos_subscribed);
3408 proto_tree_add_item(subtree, hf_gsm_map_earp_pvi, tvb, offset, 1, ENC_BIG_ENDIAN);
3409 proto_tree_add_item(subtree, hf_gsm_map_earp_pl, tvb, offset, 1, ENC_BIG_ENDIAN);
3410 proto_tree_add_item(subtree, hf_gsm_map_earp_pci, tvb, offset, 1, ENC_BIG_ENDIAN);
3413 #define ELLIPSOID_POINT 0
3414 #define ELLIPSOID_POINT_WITH_UNCERT_CIRC 1
3415 #define ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE 3
3416 #define POLYGON 5
3417 #define ELLIPSOID_POINT_WITH_ALT 8
3418 #define ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID 9
3419 #define ELLIPSOID_ARC 10
3421 4 3 2 1
3422 0 0 0 0 Ellipsoid Point
3423 0 0 0 1 Ellipsoid point with uncertainty Circle
3424 0 0 1 1 Ellipsoid point with uncertainty Ellipse
3425 0 1 0 1 Polygon
3426 1 0 0 0 Ellipsoid point with altitude
3427 1 0 0 1 Ellipsoid point with altitude and uncertainty Ellipsoid
3428 1 0 1 0 Ellipsoid Arc
3429 other values reserved for future use
3432 /* TS 23 032 Table 2a: Coding of Type of Shape */
3433 #if 0
3434 static const value_string type_of_shape_vals[] = {
3435 { ELLIPSOID_POINT, "Ellipsoid Point"},
3436 { ELLIPSOID_POINT_WITH_UNCERT_CIRC, "Ellipsoid point with uncertainty Circle"},
3437 { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE, "Ellipsoid point with uncertainty Ellipse"},
3438 { POLYGON, "Polygon"},
3439 { ELLIPSOID_POINT_WITH_ALT, "Ellipsoid point with altitude"},
3440 { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID, "Ellipsoid point with altitude and uncertainty Ellipsoid"},
3441 { ELLIPSOID_ARC, "Ellipsoid Arc"},
3442 { 0, NULL }
3445 /* 3GPP TS 23.032 7.3.1 */
3446 static const value_string sign_of_latitude_vals[] = {
3447 { 0, "North"},
3448 { 1, "South"},
3449 { 0, NULL }
3452 static const value_string dir_of_alt_vals[] = {
3453 { 0, "Altitude expresses height"},
3454 { 1, "Altitude expresses depth"},
3455 { 0, NULL }
3457 #endif
3459 static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = {
3460 { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" },
3461 { 1, "Coding Group 1" },
3462 { 2, "Coding Group 2" },
3463 { 3, "Coding Group 3" },
3464 { 4, "General Data Coding indication" },
3465 { 5, "General Data Coding indication" },
3466 { 6, "General Data Coding indication" },
3467 { 7, "General Data Coding indication" },
3468 { 8, "Reserved" },
3469 { 9, "Message with User Data Header (UDH) structure" },
3470 { 10,"Reserved" },
3471 { 11,"Reserved" },
3472 { 12,"Reserved" },
3473 { 13,"Reserved" },
3474 { 14,"Defined by the WAP Forum" },
3475 { 15,"Data coding / message handling" },
3476 { 0, NULL}
3478 static value_string_ext gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_data_coding_scheme_coding_grp_vals);
3480 /* Coding group 0
3481 * Bits 3..0 indicate the language:
3483 static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = {
3484 { 0, "German"},
3485 { 1, "English"},
3486 { 2, "Italian"},
3487 { 3, "French"},
3488 { 4, "Spanish"},
3489 { 5, "Dutch"},
3490 { 6, "Swedish"},
3491 { 7, "Danish"},
3492 { 8, "Portuguese"},
3493 { 9, "Finnish"},
3494 { 10, "Norwegian"},
3495 { 11, "Greek"},
3496 { 12, "Turkish"},
3497 { 13, "Hungarian"},
3498 { 14, "Polish"},
3499 { 15, "Language unspecified"},
3500 { 0, NULL }
3502 static value_string_ext gsm_map_cbs_coding_grp0_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp0_lang_vals);
3504 static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = {
3505 { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
3506 { 1, "UCS2; message preceded by language indication"},
3507 { 2, "Reserved"},
3508 { 3, "Reserved"},
3509 { 4, "Reserved"},
3510 { 5, "Reserved"},
3511 { 6, "Reserved"},
3512 { 7, "Reserved"},
3513 { 8, "Reserved"},
3514 { 9, "Reserved"},
3515 { 10, "Reserved"},
3516 { 11, "Reserved"},
3517 { 12, "Reserved"},
3518 { 13, "Reserved"},
3519 { 14, "Reserved"},
3520 { 15, "Reserved"},
3521 { 0, NULL }
3523 static value_string_ext gsm_map_cbs_coding_grp1_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp1_lang_vals);
3525 static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = {
3526 { 0, "Czech"},
3527 { 1, "Hebrew"},
3528 { 2, "Arabic"},
3529 { 3, "Russian"},
3530 { 4, "Icelandic"},
3531 { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3532 { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3533 { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3534 { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3535 { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3536 { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3537 { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3538 { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3539 { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3540 { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3541 { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3542 { 0, NULL }
3544 static value_string_ext gsm_map_cbs_coding_grp2_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp2_lang_vals);
3546 static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = {
3547 { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3548 { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3549 { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3550 { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3551 { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3552 { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3553 { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3554 { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3555 { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3556 { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3557 { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3558 { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3559 { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3560 { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3561 { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3562 { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3563 { 0, NULL }
3565 static value_string_ext gsm_map_cbs_coding_grp3_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp3_lang_vals);
3567 static const true_false_string gsm_map_cbs_coding_grp4_7_comp_vals = {
3568 "The text is compressed using the compression algorithm defined in 3GPP TS 23.042",
3569 "The text is uncompressed"
3572 static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = {
3573 "Bits 1 to 0 have a message class meaning",
3574 "Bits 1 to 0 are reserved and have no message class meaning"
3577 /* Bits 3 and 2 indicate the character set being used, as follows: */
3579 static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = {
3580 { 0, "GSM 7 bit default alphabet"},
3581 { 1, "8 bit data"},
3582 { 2, "UCS2 (16 bit)"},
3583 { 3, "Reserved"},
3584 { 0, NULL }
3587 static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = {
3588 { 0, "Class 0"},
3589 { 1, "Class 1 Default meaning: ME-specific"},
3590 { 2, "Class 2 (U)SIM specific message"},
3591 { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
3592 { 0, NULL }
3595 static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = {
3596 { 0, "GSM 7 bit default alphabet"},
3597 { 1, "8 bit data"},
3598 { 0, NULL }
3601 static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
3602 { 0, "GSM 7 bit default alphabet"},
3603 { 1, "8 bit data"},
3604 { 0, NULL }
3608 /* 3GPP TS 23.038 version 7.0.0 Release 7 */
3609 uint8_t
3610 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, uint16_t offset)
3612 uint8_t octet;
3613 uint8_t coding_grp;
3614 uint8_t character_set;
3616 octet = tvb_get_uint8(tvb,offset);
3617 coding_grp = octet >>4;
3618 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, offset, 1, ENC_BIG_ENDIAN);
3620 sms_encoding = SMS_ENCODING_NOT_SET;
3621 switch (coding_grp){
3622 case 0:
3623 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
3624 sms_encoding = SMS_ENCODING_7BIT;
3625 break;
3626 case 1:
3627 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
3628 if ((octet & 0x0f)== 0){
3629 sms_encoding = SMS_ENCODING_7BIT_LANG;
3630 }else{
3631 sms_encoding = SMS_ENCODING_UCS2_LANG;
3633 break;
3634 case 2:
3635 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
3636 sms_encoding = SMS_ENCODING_7BIT;
3637 break;
3638 case 3:
3639 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
3640 sms_encoding = SMS_ENCODING_7BIT;
3641 break;
3642 /* Coding_grp 01xx */
3643 case 4:
3644 /* FALLTHRU */
3645 case 5:
3646 /* FALLTHRU */
3647 case 6:
3648 /* FALLTHRU */
3649 case 7:
3650 /* FALLTHRU */
3651 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, offset, 1, ENC_BIG_ENDIAN);
3652 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
3653 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
3654 if ((octet & 0x10)== 0x10){
3655 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
3657 /* Bits 3 and 2 indicate the character set being used, */
3658 character_set = (octet&0x0c)>>2;
3659 switch (character_set){
3660 case 0:
3661 /* GSM 7 bit default alphabet */
3662 sms_encoding = SMS_ENCODING_7BIT;
3663 break;
3664 case 1:
3665 /* 8 bit data */
3666 sms_encoding = SMS_ENCODING_8BIT;
3667 break;
3668 case 2:
3669 /* UCS2 (16 bit) */
3670 sms_encoding = SMS_ENCODING_UCS2;
3671 break;
3672 case 3:
3673 /* Reserved */
3674 sms_encoding = SMS_ENCODING_NOT_SET;
3675 break;
3676 default:
3677 break;
3679 break;
3680 case 8:
3681 /* Reserved coding groups */
3682 break;
3683 case 9:
3684 /* Message with User Data Header (UDH) structure:*/
3685 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
3686 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
3687 character_set = (octet&0x0c)>>2;
3688 switch (character_set){
3689 case 0:
3690 /* GSM 7 bit default alphabet */
3691 sms_encoding = SMS_ENCODING_7BIT;
3692 break;
3693 case 1:
3694 /* 8 bit data */
3695 sms_encoding = SMS_ENCODING_8BIT;
3696 break;
3697 case 2:
3698 /* UCS2 (16 bit) */
3699 sms_encoding = SMS_ENCODING_UCS2;
3700 break;
3701 case 3:
3702 /* Reserved */
3703 sms_encoding = SMS_ENCODING_NOT_SET;
3704 break;
3705 default:
3706 break;
3708 break;
3709 case 10:
3710 /* FALLTHRU */
3711 case 11:
3712 /* FALLTHRU */
3713 case 12:
3714 /* FALLTHRU */
3715 case 13:
3716 /* FALLTHRU */
3717 /* 1010..1101 Reserved coding groups */
3718 break;
3719 case 14:
3720 /* Defined by the WAP Forum
3721 * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
3723 break;
3724 case 15:
3725 /* Data coding / message handling */
3726 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, offset, 1, ENC_BIG_ENDIAN);
3727 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, offset, 1, ENC_BIG_ENDIAN);
3728 character_set = (octet&0x04)>>2;
3729 if (character_set == 0){
3730 sms_encoding = SMS_ENCODING_7BIT;
3731 }else{
3732 sms_encoding = SMS_ENCODING_8BIT;
3734 break;
3735 default:
3736 break;
3739 return sms_encoding;
3741 void
3742 dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
3744 uint8_t octet;
3745 uint8_t na;
3746 uint8_t np;
3748 proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,ENC_BIG_ENDIAN);
3749 proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,ENC_BIG_ENDIAN);
3750 proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,ENC_BIG_ENDIAN);
3752 if(tvb_reported_length(tvb)==1)
3753 return;
3755 octet = tvb_get_uint8(tvb,0);
3756 /* nature of address indicator */
3757 na = (octet & 0x70)>>4;
3758 /* numbering plan indicator */
3759 np = octet & 0x0f;
3760 switch(np){
3761 case 1:
3762 /* ISDN/Telephony Numbering Plan (Rec ITU-T E.164) */
3763 switch(na){
3764 case 1:
3765 /* international number */
3766 dissect_e164_msisdn(tvb, tree, 1, tvb_reported_length(tvb)-1, E164_ENC_BCD);
3767 break;
3768 default:
3769 proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
3770 break;
3772 break;
3773 case 6:
3774 /* land mobile numbering plan (ITU-T Rec E.212) */
3775 dissect_e212_imsi(tvb, pinfo, tree, 1, tvb_reported_length(tvb)-1, false);
3776 break;
3777 default:
3778 proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
3779 break;
3785 /* --- Module MAP-SS-Code --- --- --- */
3790 dissect_gsm_map_SS_Code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3791 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3792 NULL);
3794 return offset;
3798 /* --- Module MAP-BS-Code --- --- --- */
3802 static int
3803 dissect_gsm_map_BearerServiceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3804 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3805 NULL);
3807 return offset;
3812 static int
3813 dissect_gsm_map_Ext_BearerServiceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3814 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3815 NULL);
3817 return offset;
3821 /* --- Module MAP-TS-Code --- --- --- */
3825 static int
3826 dissect_gsm_map_TeleserviceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3827 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3828 NULL);
3830 return offset;
3835 static int
3836 dissect_gsm_map_Ext_TeleserviceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3837 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3838 NULL);
3840 return offset;
3844 /* --- Module MAP-ExtensionDataTypes --- --- --- */
3848 static int
3849 dissect_gsm_map_T_extId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3850 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
3852 actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
3855 return offset;
3860 static int
3861 dissect_gsm_map_T_extType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3862 proto_tree *ext_tree;
3863 ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gsm_map_extension_data, NULL, "Extension Data");
3864 if (actx->external.direct_ref_present){
3865 offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, ext_tree, NULL);
3866 }else{
3867 call_data_dissector(tvb, actx->pinfo, ext_tree);
3868 offset = tvb_reported_length_remaining(tvb,offset);
3872 return offset;
3876 static const ber_sequence_t gsm_map_PrivateExtension_sequence[] = {
3877 { &hf_gsm_map_extId , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extId },
3878 { &hf_gsm_map_extType , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extType },
3879 { NULL, 0, 0, 0, NULL }
3882 static int
3883 dissect_gsm_map_PrivateExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3884 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3885 gsm_map_PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
3887 return offset;
3891 static const ber_sequence_t gsm_map_PrivateExtensionList_sequence_of[1] = {
3892 { &hf_gsm_map_PrivateExtensionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PrivateExtension },
3895 static int
3896 dissect_gsm_map_PrivateExtensionList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3897 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3898 gsm_map_PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
3900 return offset;
3904 static const ber_sequence_t gsm_map_PCS_Extensions_sequence[] = {
3905 { NULL, 0, 0, 0, NULL }
3908 static int
3909 dissect_gsm_map_PCS_Extensions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3910 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3911 gsm_map_PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions);
3913 return offset;
3917 static const ber_sequence_t gsm_map_ExtensionContainer_sequence[] = {
3918 { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
3919 { &hf_gsm_map_pcs_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PCS_Extensions },
3920 { NULL, 0, 0, 0, NULL }
3924 dissect_gsm_map_ExtensionContainer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3925 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3926 gsm_map_ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
3928 return offset;
3933 static int
3934 dissect_gsm_map_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3935 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3937 return offset;
3941 static const ber_sequence_t gsm_map_SLR_Arg_PCS_Extensions_sequence[] = {
3942 { &hf_gsm_map_na_ESRK_Request, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NULL },
3943 { NULL, 0, 0, 0, NULL }
3946 static int
3947 dissect_gsm_map_SLR_Arg_PCS_Extensions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3948 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3949 gsm_map_SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
3951 return offset;
3955 static const ber_sequence_t gsm_map_SLR_ArgExtensionContainer_sequence[] = {
3956 { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
3957 { &hf_gsm_map_slr_Arg_PCS_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_Arg_PCS_Extensions },
3958 { NULL, 0, 0, 0, NULL }
3961 static int
3962 dissect_gsm_map_SLR_ArgExtensionContainer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3963 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3964 gsm_map_SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
3966 return offset;
3970 /* --- Module MAP-CommonDataTypes --- --- --- */
3975 dissect_gsm_map_TBCD_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3976 tvbuff_t *parameter_tvb;
3977 proto_tree *subtree;
3980 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3981 &parameter_tvb);
3984 if (!parameter_tvb)
3985 return offset;
3986 if(tvb_reported_length(parameter_tvb)==0)
3987 return offset;
3989 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_tbcd_digits);
3990 proto_tree_add_item(subtree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, ENC_KEYPAD_ABC_TBCD|ENC_LITTLE_ENDIAN);
3993 return offset;
3998 static int
3999 dissect_gsm_map_DiameterIdentity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4000 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4001 NULL);
4003 return offset;
4009 dissect_gsm_map_AddressString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4011 tvbuff_t *parameter_tvb;
4012 proto_tree *subtree;
4014 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4015 &parameter_tvb);
4018 if (!parameter_tvb)
4019 return offset;
4021 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string);
4022 dissect_gsm_map_msisdn(parameter_tvb, actx->pinfo , subtree);
4023 if (!PINFO_FD_VISITED(actx->pinfo))
4024 actx->private_data = tvb_bytes_to_str(wmem_file_scope(), parameter_tvb, 0, tvb_captured_length(parameter_tvb));
4027 return offset;
4033 dissect_gsm_map_ISDN_AddressString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4034 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
4036 return offset;
4041 static int
4042 dissect_gsm_map_FTN_AddressString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4043 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
4045 return offset;
4051 dissect_gsm_map_ISDN_SubaddressString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4052 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4053 NULL);
4055 return offset;
4059 static const value_string gsm_map_ProtocolId_vals[] = {
4060 { 1, "gsm-0408" },
4061 { 2, "gsm-0806" },
4062 { 3, "gsm-BSSMAP" },
4063 { 4, "ets-300102-1" },
4064 { 0, NULL }
4068 static int
4069 dissect_gsm_map_ProtocolId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4070 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4071 &ProtocolId);
4073 return offset;
4078 static int
4079 dissect_gsm_map_SignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4080 tvbuff_t *parameter_tvb;
4081 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
4083 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4084 &parameter_tvb);
4086 if (gsm_map_priv)
4087 gsm_map_priv->signal_info_tvb = parameter_tvb;
4091 return offset;
4095 static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = {
4096 { &hf_gsm_map_protocolId , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
4097 { &hf_gsm_map_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
4098 { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4099 { NULL, 0, 0, 0, NULL }
4103 dissect_gsm_map_ExternalSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4105 -- Information about the internal structure is given in
4106 -- clause 7.6.9.
4107 7.6.9.4 External Signal Information
4108 This parameter contains concatenated information elements (including tag and length) which are defined by a common
4109 protocol version, preceded by the associated protocol ID. It is used to transport information of the indicated protocol via
4110 MAP interfaces
4112 uint8_t octet;
4113 uint8_t length;
4114 tvbuff_t *next_tvb;
4115 proto_tree *subtree;
4116 gsm_map_private_info_t *gsm_map_priv;
4118 ProtocolId = 0xffffffff;
4119 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4120 gsm_map_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
4122 gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
4123 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
4124 return offset;
4125 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
4126 switch (ProtocolId){
4127 case 1:
4128 /* gsm-0408 */
4129 /* As per comment abowe Individual IE:(s) will be found here in TLV format
4130 * Unfortunately a branch for each IE must be made to call the appropriate
4131 * function
4133 /* Get tag */
4134 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
4135 proto_tree_add_item(subtree, hf_gsm_map_ie_tag, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
4136 /* get length */
4137 length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
4138 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
4139 /* Branch on tag */
4140 switch(octet){
4141 case 4:
4142 /* Dissect the data part */
4143 de_bearer_cap(gsm_map_priv->signal_info_tvb, subtree, actx->pinfo, 2, length, NULL, 0);
4144 /* TODO: There may be more than one IE */
4145 break;
4146 default:
4147 proto_tree_add_expert(subtree, actx->pinfo, &ei_gsm_map_undecoded, gsm_map_priv->signal_info_tvb, 0, length);
4148 break;
4149 }/* switch(octet) */
4150 break;
4151 case 2:
4152 /* gsm-0806 */
4153 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
4154 /* Discrimination parameter */
4155 proto_tree_add_item(subtree, hf_gsm_map_disc_par, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
4156 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
4157 /* Strip off discrimination and length */
4158 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
4159 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
4160 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
4161 }else if(octet==1){
4162 proto_tree_add_item(subtree, hf_gsm_map_dlci, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
4163 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 2,1,ENC_BIG_ENDIAN);
4164 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 3);
4165 call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
4167 break;
4168 case 3:
4169 /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
4170 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
4171 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
4172 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
4173 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
4175 break;
4176 /* ets-300102-1 (~Q.931 ) */
4177 case 4:
4178 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
4179 length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
4180 if ( octet == 4 )
4181 dissect_q931_bearer_capability_ie(gsm_map_priv->signal_info_tvb, 2, length, subtree);
4182 break;
4183 default:
4184 break;
4185 }/*switch (ProtocolId)*/
4188 return offset;
4192 static const value_string gsm_map_Ext_ProtocolId_vals[] = {
4193 { 1, "ets-300356" },
4194 { 0, NULL }
4198 static int
4199 dissect_gsm_map_Ext_ProtocolId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4200 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4201 NULL);
4203 return offset;
4207 static const ber_sequence_t gsm_map_Ext_ExternalSignalInfo_sequence[] = {
4208 { &hf_gsm_map_ext_ProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_ProtocolId },
4209 { &hf_gsm_map_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
4210 { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4211 { NULL, 0, 0, 0, NULL }
4214 static int
4215 dissect_gsm_map_Ext_ExternalSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4216 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4217 gsm_map_Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
4219 return offset;
4223 static const value_string gsm_map_AccessNetworkProtocolId_vals[] = {
4224 { 1, "ts3G-48006" },
4225 { 2, "ts3G-25413" },
4226 { 0, NULL }
4230 static int
4231 dissect_gsm_map_AccessNetworkProtocolId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4232 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4233 &AccessNetworkProtocolId);
4235 return offset;
4240 static int
4241 dissect_gsm_map_LongSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4243 tvbuff_t *parameter_tvb;
4244 uint8_t octet;
4245 tvbuff_t *next_tvb;
4246 proto_tree *subtree;
4247 gsm_map_private_info_t *gsm_map_priv;
4248 sccp_msg_info_t *sccp_msg_info;
4251 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4252 &parameter_tvb);
4255 if (!parameter_tvb)
4256 return offset;
4258 gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
4259 sccp_msg_info = gsm_map_priv ? gsm_map_priv->sccp_msg_info : NULL;
4260 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo);
4262 switch (AccessNetworkProtocolId){
4263 /* ts3G-48006 */
4264 case 1:
4265 octet = tvb_get_uint8(parameter_tvb,0);
4266 /* Discrimination parameter */
4267 proto_tree_add_item(subtree, hf_gsm_map_disc_par, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
4268 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
4269 /* Strip off discrimination and length */
4270 proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 1,1,ENC_BIG_ENDIAN);
4271 next_tvb = tvb_new_subset_remaining(parameter_tvb, 2);
4272 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, sccp_msg_info);
4273 }else if(octet==1){
4274 proto_tree_add_item(subtree, hf_gsm_map_dlci, parameter_tvb, 1,1,ENC_BIG_ENDIAN);
4275 proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 2,1,ENC_BIG_ENDIAN);
4276 next_tvb = tvb_new_subset_remaining(parameter_tvb, 3);
4277 call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
4279 break;
4280 /* ts3G-25413 */
4281 case 2:
4282 call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree);
4283 break;
4284 default:
4285 break;
4289 return offset;
4293 static const ber_sequence_t gsm_map_AccessNetworkSignalInfo_sequence[] = {
4294 { &hf_gsm_map_accessNetworkProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkProtocolId },
4295 { &hf_gsm_map_signalInfo_01, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LongSignalInfo },
4296 { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4297 { NULL, 0, 0, 0, NULL }
4300 static int
4301 dissect_gsm_map_AccessNetworkSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4302 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4303 gsm_map_AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
4305 return offset;
4311 dissect_gsm_map_AlertingPattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4312 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4313 NULL);
4315 return offset;
4321 dissect_gsm_map_GSN_Address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4323 tvbuff_t *parameter_tvb;
4324 uint8_t octet;
4325 proto_tree *subtree;
4327 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4328 &parameter_tvb);
4331 if (!parameter_tvb)
4332 return offset;
4333 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
4335 octet = tvb_get_uint8(parameter_tvb,0);
4336 switch(octet){
4337 case 0x04: /* IPv4 */
4338 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, 4, ENC_BIG_ENDIAN);
4339 break;
4340 case 0x50: /* IPv6 */
4341 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv6, parameter_tvb, 1, 16, ENC_NA);
4342 break;
4343 default:
4344 break;
4348 return offset;
4353 static int
4354 dissect_gsm_map_Time(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4355 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4356 NULL);
4358 return offset;
4364 dissect_gsm_map_IMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4365 tvbuff_t *parameter_tvb;
4366 const char *imsi_str;
4368 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &parameter_tvb);
4370 if (!parameter_tvb)
4371 return offset;
4372 if(tvb_reported_length(parameter_tvb)==0)
4373 return offset;
4375 /* Hide the octet string default printout */
4376 proto_item_set_hidden(actx->created_item);
4377 imsi_str = dissect_e212_imsi(parameter_tvb, actx->pinfo, tree,
4378 0, tvb_reported_length(parameter_tvb), false);
4379 if (!PINFO_FD_VISITED(actx->pinfo))
4380 actx->private_data = wmem_strdup(wmem_file_scope(), imsi_str);
4383 return offset;
4388 static int
4389 dissect_gsm_map_LMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4390 tvbuff_t *parameter_tvb;
4391 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4392 &parameter_tvb);
4394 if (parameter_tvb && !PINFO_FD_VISITED(actx->pinfo)) {
4395 actx->private_data = tvb_bytes_to_str(wmem_file_scope(), parameter_tvb, 0, tvb_captured_length(parameter_tvb));
4399 return offset;
4403 static const ber_sequence_t gsm_map_IMSI_WithLMSI_sequence[] = {
4404 { &hf_gsm_map_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
4405 { &hf_gsm_map_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
4406 { NULL, 0, 0, 0, NULL }
4409 static int
4410 dissect_gsm_map_IMSI_WithLMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4411 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4412 gsm_map_IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
4414 return offset;
4418 static const value_string gsm_map_Identity_vals[] = {
4419 { 0, "imsi" },
4420 { 1, "imsi-WithLMSI" },
4421 { 0, NULL }
4424 static const ber_choice_t gsm_map_Identity_choice[] = {
4425 { 0, &hf_gsm_map_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
4426 { 1, &hf_gsm_map_imsi_WithLMSI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI },
4427 { 0, NULL, 0, 0, 0, NULL }
4430 static int
4431 dissect_gsm_map_Identity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4432 offset = dissect_ber_choice(actx, tree, tvb, offset,
4433 gsm_map_Identity_choice, hf_index, ett_gsm_map_Identity,
4434 NULL);
4436 return offset;
4441 static int
4442 dissect_gsm_map_ASCI_CallReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4443 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
4445 return offset;
4450 static int
4451 dissect_gsm_map_TMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4452 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4453 NULL);
4455 return offset;
4459 static const value_string gsm_map_SubscriberId_vals[] = {
4460 { 0, "imsi" },
4461 { 1, "tmsi" },
4462 { 0, NULL }
4465 static const ber_choice_t gsm_map_SubscriberId_choice[] = {
4466 { 0, &hf_gsm_map_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4467 { 1, &hf_gsm_map_tmsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
4468 { 0, NULL, 0, 0, 0, NULL }
4471 static int
4472 dissect_gsm_map_SubscriberId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4473 offset = dissect_ber_choice(actx, tree, tvb, offset,
4474 gsm_map_SubscriberId_choice, hf_index, ett_gsm_map_SubscriberId,
4475 NULL);
4477 return offset;
4483 dissect_gsm_map_IMEI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4484 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
4486 return offset;
4491 static int
4492 dissect_gsm_map_HLR_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4493 offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
4495 return offset;
4499 static const ber_sequence_t gsm_map_HLR_List_sequence_of[1] = {
4500 { &hf_gsm_map_HLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_Id },
4503 static int
4504 dissect_gsm_map_HLR_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4505 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4506 gsm_map_HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List);
4508 return offset;
4514 dissect_gsm_map_GlobalCellId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4515 tvbuff_t *parameter_tvb;
4516 proto_tree *subtree;
4518 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4519 &parameter_tvb);
4522 if (!parameter_tvb)
4523 return offset;
4525 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId);
4526 be_cell_id_aux(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length_remaining(tvb,0), NULL, 0, 0);
4529 return offset;
4533 const value_string gsm_map_NetworkResource_vals[] = {
4534 { 0, "plmn" },
4535 { 1, "hlr" },
4536 { 2, "vlr" },
4537 { 3, "pvlr" },
4538 { 4, "controllingMSC" },
4539 { 5, "vmsc" },
4540 { 6, "eir" },
4541 { 7, "rss" },
4542 { 0, NULL }
4547 dissect_gsm_map_NetworkResource(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4548 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4549 NULL);
4551 return offset;
4555 static const value_string gsm_map_AdditionalNetworkResource_vals[] = {
4556 { 0, "sgsn" },
4557 { 1, "ggsn" },
4558 { 2, "gmlc" },
4559 { 3, "gsmSCF" },
4560 { 4, "nplr" },
4561 { 5, "auc" },
4562 { 6, "ue" },
4563 { 7, "mme" },
4564 { 0, NULL }
4568 static int
4569 dissect_gsm_map_AdditionalNetworkResource(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4570 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4571 NULL);
4573 return offset;
4579 dissect_gsm_map_NAEA_CIC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4580 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4581 NULL);
4583 return offset;
4587 static const ber_sequence_t gsm_map_NAEA_PreferredCI_sequence[] = {
4588 { &hf_gsm_map_naea_PreferredCIC, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_CIC },
4589 { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4590 { NULL, 0, 0, 0, NULL }
4593 static int
4594 dissect_gsm_map_NAEA_PreferredCI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4595 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4596 gsm_map_NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
4598 return offset;
4602 static const value_string gsm_map_SubscriberIdentity_vals[] = {
4603 { 0, "imsi" },
4604 { 1, "msisdn" },
4605 { 0, NULL }
4608 static const ber_choice_t gsm_map_SubscriberIdentity_choice[] = {
4609 { 0, &hf_gsm_map_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4610 { 1, &hf_gsm_map_msisdn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4611 { 0, NULL, 0, 0, 0, NULL }
4614 static int
4615 dissect_gsm_map_SubscriberIdentity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4616 offset = dissect_ber_choice(actx, tree, tvb, offset,
4617 gsm_map_SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
4618 NULL);
4620 return offset;
4624 static const ber_sequence_t gsm_map_LCSClientExternalID_sequence[] = {
4625 { &hf_gsm_map_externalAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4626 { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4627 { NULL, 0, 0, 0, NULL }
4631 dissect_gsm_map_LCSClientExternalID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4632 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4633 gsm_map_LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
4635 return offset;
4639 const value_string gsm_map_LCSClientInternalID_vals[] = {
4640 { 0, "broadcastService" },
4641 { 1, "o-andM-HPLMN" },
4642 { 2, "o-andM-VPLMN" },
4643 { 3, "anonymousLocation" },
4644 { 4, "targetMSsubscribedService" },
4645 { 0, NULL }
4650 dissect_gsm_map_LCSClientInternalID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4651 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4652 NULL);
4654 return offset;
4658 const value_string gsm_map_LCSServiceTypeID_vals[] = {
4659 { 0, "emergencyServices" },
4660 { 1, "emergencyAlertServices" },
4661 { 2, "personTracking" },
4662 { 3, "fleetManagement" },
4663 { 4, "assetManagement" },
4664 { 5, "trafficCongestionReporting" },
4665 { 6, "roadsideAssistance" },
4666 { 7, "routingToNearestCommercialEnterprise" },
4667 { 8, "navigation" },
4668 { 9, "citySightseeing" },
4669 { 10, "localizedAdvertising" },
4670 { 11, "mobileYellowPages" },
4671 { 12, "trafficAndPublicTransportationInfo" },
4672 { 13, "weather" },
4673 { 14, "assetAndServiceFinding" },
4674 { 15, "gaming" },
4675 { 16, "findYourFriend" },
4676 { 17, "dating" },
4677 { 18, "chatting" },
4678 { 19, "routeFinding" },
4679 { 20, "whereAmI" },
4680 { 64, "serv64" },
4681 { 65, "serv65" },
4682 { 66, "serv66" },
4683 { 67, "serv67" },
4684 { 68, "serv68" },
4685 { 69, "serv69" },
4686 { 70, "serv70" },
4687 { 71, "serv71" },
4688 { 72, "serv72" },
4689 { 73, "serv73" },
4690 { 74, "serv74" },
4691 { 75, "serv75" },
4692 { 76, "serv76" },
4693 { 77, "serv77" },
4694 { 78, "serv78" },
4695 { 79, "serv79" },
4696 { 80, "serv80" },
4697 { 81, "serv81" },
4698 { 82, "serv82" },
4699 { 83, "serv83" },
4700 { 84, "serv84" },
4701 { 85, "serv85" },
4702 { 86, "serv86" },
4703 { 87, "serv87" },
4704 { 88, "serv88" },
4705 { 89, "serv89" },
4706 { 90, "serv90" },
4707 { 91, "serv91" },
4708 { 92, "serv92" },
4709 { 93, "serv93" },
4710 { 94, "serv94" },
4711 { 95, "serv95" },
4712 { 96, "serv96" },
4713 { 97, "serv97" },
4714 { 98, "serv98" },
4715 { 99, "serv99" },
4716 { 100, "serv100" },
4717 { 101, "serv101" },
4718 { 102, "serv102" },
4719 { 103, "serv103" },
4720 { 104, "serv104" },
4721 { 105, "serv105" },
4722 { 106, "serv106" },
4723 { 107, "serv107" },
4724 { 108, "serv108" },
4725 { 109, "serv109" },
4726 { 110, "serv110" },
4727 { 111, "serv111" },
4728 { 112, "serv112" },
4729 { 113, "serv113" },
4730 { 114, "serv114" },
4731 { 115, "serv115" },
4732 { 116, "serv116" },
4733 { 117, "serv117" },
4734 { 118, "serv118" },
4735 { 119, "serv119" },
4736 { 120, "serv120" },
4737 { 121, "serv121" },
4738 { 122, "serv122" },
4739 { 123, "serv123" },
4740 { 124, "serv124" },
4741 { 125, "serv125" },
4742 { 126, "serv126" },
4743 { 127, "serv127" },
4744 { 0, NULL }
4749 dissect_gsm_map_LCSServiceTypeID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4750 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4751 NULL);
4753 return offset;
4758 static int
4759 dissect_gsm_map_PLMN_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4760 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4761 NULL);
4763 return offset;
4768 static int
4769 dissect_gsm_map_E_UTRAN_CGI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4770 tvbuff_t *parameter_tvb;
4771 proto_tree *subtree;
4772 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4773 &parameter_tvb);
4775 if (!parameter_tvb)
4776 return offset;
4778 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_e_utranCellGlobalIdentity);
4779 de_sgsap_ecgi(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(tvb), NULL, 0);
4782 return offset;
4787 static int
4788 dissect_gsm_map_NR_CGI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4789 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4790 NULL);
4792 return offset;
4797 static int
4798 dissect_gsm_map_TA_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4799 tvbuff_t *parameter_tvb;
4800 proto_tree *subtree;
4801 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4802 &parameter_tvb);
4804 if (!parameter_tvb)
4805 return offset;
4807 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_TA_id);
4808 de_emm_trac_area_id(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(tvb), NULL, 0);
4811 return offset;
4816 static int
4817 dissect_gsm_map_NR_TA_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4818 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4819 NULL);
4821 return offset;
4827 dissect_gsm_map_RAIdentity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4829 tvbuff_t *parameter_tvb;
4830 proto_tree *subtree;
4832 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4833 &parameter_tvb);
4836 if (!parameter_tvb)
4837 return offset;
4838 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
4839 de_gmm_rai(parameter_tvb, subtree, actx->pinfo, 0, 3, NULL,0);
4842 return offset;
4846 static const ber_sequence_t gsm_map_NetworkNodeDiameterAddress_sequence[] = {
4847 { &hf_gsm_map_diameter_Name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
4848 { &hf_gsm_map_diameter_Realm, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
4849 { NULL, 0, 0, 0, NULL }
4852 static int
4853 dissect_gsm_map_NetworkNodeDiameterAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4854 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4855 gsm_map_NetworkNodeDiameterAddress_sequence, hf_index, ett_gsm_map_NetworkNodeDiameterAddress);
4857 return offset;
4863 dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4864 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4865 NULL);
4867 return offset;
4873 dissect_gsm_map_LAIFixedLength(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4875 tvbuff_t *parameter_tvb;
4876 proto_tree *subtree;
4878 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4879 &parameter_tvb);
4882 if (!parameter_tvb)
4883 return offset;
4884 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength);
4885 dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_LAI, true);
4888 return offset;
4892 const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
4893 { 0, "cellGlobalIdOrServiceAreaIdFixedLength" },
4894 { 1, "laiFixedLength" },
4895 { 0, NULL }
4898 static const ber_choice_t gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
4899 { 0, &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
4900 { 1, &hf_gsm_map_laiFixedLength, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
4901 { 0, NULL, 0, 0, 0, NULL }
4905 dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4906 offset = dissect_ber_choice(actx, tree, tvb, offset,
4907 gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
4908 NULL);
4910 return offset;
4914 const value_string gsm_map_BasicServiceCode_vals[] = {
4915 { 2, "bearerService" },
4916 { 3, "teleservice" },
4917 { 0, NULL }
4920 static const ber_choice_t gsm_map_BasicServiceCode_choice[] = {
4921 { 2, &hf_gsm_map_bearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_BearerServiceCode },
4922 { 3, &hf_gsm_map_teleservice , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
4923 { 0, NULL, 0, 0, 0, NULL }
4927 dissect_gsm_map_BasicServiceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4928 offset = dissect_ber_choice(actx, tree, tvb, offset,
4929 gsm_map_BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
4930 NULL);
4932 return offset;
4936 const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
4937 { 2, "ext-BearerService" },
4938 { 3, "ext-Teleservice" },
4939 { 0, NULL }
4942 static const ber_choice_t gsm_map_Ext_BasicServiceCode_choice[] = {
4943 { 2, &hf_gsm_map_ext_BearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BearerServiceCode },
4944 { 3, &hf_gsm_map_ext_Teleservice, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_TeleserviceCode },
4945 { 0, NULL, 0, 0, 0, NULL }
4949 dissect_gsm_map_Ext_BasicServiceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4950 offset = dissect_ber_choice(actx, tree, tvb, offset,
4951 gsm_map_Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
4952 NULL);
4954 return offset;
4958 static const value_string gsm_map_EMLPP_Priority_vals[] = {
4959 { 6, "priorityLevelA" },
4960 { 5, "priorityLevelB" },
4961 { 0, "priorityLevel0" },
4962 { 1, "priorityLevel1" },
4963 { 2, "priorityLevel2" },
4964 { 3, "priorityLevel3" },
4965 { 4, "priorityLevel4" },
4966 { 0, NULL }
4970 static int
4971 dissect_gsm_map_EMLPP_Priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4972 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4973 NULL);
4975 return offset;
4979 static const ber_sequence_t gsm_map_EMLPP_Info_sequence[] = {
4980 { &hf_gsm_map_maximumentitledPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
4981 { &hf_gsm_map_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
4982 { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4983 { NULL, 0, 0, 0, NULL }
4986 static int
4987 dissect_gsm_map_EMLPP_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4988 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4989 gsm_map_EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
4991 return offset;
4996 static int
4997 dissect_gsm_map_Ext_SS_Status(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4998 /* Note Ext-SS-Status can have more than one byte */
5000 tvbuff_t *parameter_tvb;
5001 uint8_t octet;
5003 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5004 &parameter_tvb);
5007 if (!parameter_tvb)
5008 return offset;
5010 octet = tvb_get_uint8(parameter_tvb,0);
5012 proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
5013 if ((octet & 0x01)== 1)
5014 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
5016 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
5017 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
5018 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
5021 return offset;
5026 static int
5027 dissect_gsm_map_MaxMC_Bearers(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5028 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5029 NULL);
5031 return offset;
5036 static int
5037 dissect_gsm_map_MC_Bearers(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5038 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5039 NULL);
5041 return offset;
5045 static const ber_sequence_t gsm_map_MC_SS_Info_sequence[] = {
5046 { &hf_gsm_map_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5047 { &hf_gsm_map_ss_Status , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
5048 { &hf_gsm_map_nbrSB , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
5049 { &hf_gsm_map_nbrUser , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
5050 { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5051 { NULL, 0, 0, 0, NULL }
5054 static int
5055 dissect_gsm_map_MC_SS_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5056 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5057 gsm_map_MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
5059 return offset;
5065 dissect_gsm_map_AgeOfLocationInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5066 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5067 NULL);
5069 return offset;
5072 /*--- PDUs ---*/
5074 int dissect_gsm_map_ISDN_AddressString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
5075 int offset = 0;
5076 asn1_ctx_t asn1_ctx;
5077 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
5078 offset = dissect_gsm_map_ISDN_AddressString(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_gsm_map_ISDN_AddressString_PDU);
5079 return offset;
5083 /* --- Module MAP-SS-DataTypes --- --- --- */
5087 static int
5088 dissect_gsm_map_ss_NoReplyConditionTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5089 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5090 NULL);
5092 return offset;
5097 static int
5098 dissect_gsm_map_ss_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5099 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5101 return offset;
5105 static const ber_sequence_t gsm_map_ss_RegisterSS_Arg_sequence[] = {
5106 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5107 { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5108 { &hf_gsm_map_ss_forwardedToNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5109 { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
5110 { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
5111 { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
5112 { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
5113 { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
5114 { NULL, 0, 0, 0, NULL }
5118 dissect_gsm_map_ss_RegisterSS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5119 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5120 gsm_map_ss_RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg);
5122 return offset;
5128 dissect_gsm_map_ss_SS_Status(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5130 tvbuff_t *parameter_tvb;
5131 uint8_t octet;
5133 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5134 &parameter_tvb);
5137 if (!parameter_tvb)
5138 return offset;
5140 octet = tvb_get_uint8(parameter_tvb,0);
5142 proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
5143 if ((octet & 0x01)== 1)
5144 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
5146 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
5147 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
5148 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
5151 return offset;
5157 dissect_gsm_map_ss_ForwardingOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5158 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5159 NULL);
5162 proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
5163 proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
5164 proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN);
5165 proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN);
5166 return offset;
5170 static const ber_sequence_t gsm_map_ss_ForwardingFeature_sequence[] = {
5171 { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5172 { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5173 { &hf_gsm_map_ss_forwardedToNumber_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5174 { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
5175 { &hf_gsm_map_ss_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
5176 { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
5177 { &hf_gsm_map_ss_longForwardedToNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
5178 { NULL, 0, 0, 0, NULL }
5181 static int
5182 dissect_gsm_map_ss_ForwardingFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5183 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5184 gsm_map_ss_ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature);
5186 return offset;
5190 static const ber_sequence_t gsm_map_ss_ForwardingFeatureList_sequence_of[1] = {
5191 { &hf_gsm_map_ss_ForwardingFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeature },
5194 static int
5195 dissect_gsm_map_ss_ForwardingFeatureList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5196 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5197 gsm_map_ss_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList);
5199 return offset;
5203 static const ber_sequence_t gsm_map_ss_ForwardingInfo_sequence[] = {
5204 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5205 { &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeatureList },
5206 { NULL, 0, 0, 0, NULL }
5209 static int
5210 dissect_gsm_map_ss_ForwardingInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5211 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5212 gsm_map_ss_ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo);
5214 return offset;
5218 static const ber_sequence_t gsm_map_ss_CallBarringFeature_sequence[] = {
5219 { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5220 { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5221 { NULL, 0, 0, 0, NULL }
5224 static int
5225 dissect_gsm_map_ss_CallBarringFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5226 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5227 gsm_map_ss_CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature);
5229 return offset;
5233 static const ber_sequence_t gsm_map_ss_CallBarringFeatureList_sequence_of[1] = {
5234 { &hf_gsm_map_ss_CallBarringFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeature },
5237 static int
5238 dissect_gsm_map_ss_CallBarringFeatureList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5239 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5240 gsm_map_ss_CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList);
5242 return offset;
5246 static const ber_sequence_t gsm_map_ss_CallBarringInfo_sequence[] = {
5247 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5248 { &hf_gsm_map_ss_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeatureList },
5249 { NULL, 0, 0, 0, NULL }
5252 static int
5253 dissect_gsm_map_ss_CallBarringInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5254 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5255 gsm_map_ss_CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo);
5257 return offset;
5261 static const value_string gsm_map_ss_CliRestrictionOption_vals[] = {
5262 { 0, "permanent" },
5263 { 1, "temporaryDefaultRestricted" },
5264 { 2, "temporaryDefaultAllowed" },
5265 { 0, NULL }
5269 static int
5270 dissect_gsm_map_ss_CliRestrictionOption(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5271 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5272 NULL);
5274 return offset;
5278 static const value_string gsm_map_ss_OverrideCategory_vals[] = {
5279 { 0, "overrideEnabled" },
5280 { 1, "overrideDisabled" },
5281 { 0, NULL }
5285 static int
5286 dissect_gsm_map_ss_OverrideCategory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5287 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5288 NULL);
5290 return offset;
5294 static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = {
5295 { 2, "cliRestrictionOption" },
5296 { 1, "overrideCategory" },
5297 { 0, NULL }
5300 static const ber_choice_t gsm_map_ss_SS_SubscriptionOption_choice[] = {
5301 { 2, &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
5302 { 1, &hf_gsm_map_ss_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
5303 { 0, NULL, 0, 0, 0, NULL }
5306 static int
5307 dissect_gsm_map_ss_SS_SubscriptionOption(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5308 offset = dissect_ber_choice(actx, tree, tvb, offset,
5309 gsm_map_ss_SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption,
5310 NULL);
5312 return offset;
5316 static const ber_sequence_t gsm_map_ss_BasicServiceGroupList_sequence_of[1] = {
5317 { &hf_gsm_map_ss_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5320 static int
5321 dissect_gsm_map_ss_BasicServiceGroupList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5322 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5323 gsm_map_ss_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList);
5325 return offset;
5329 static const ber_sequence_t gsm_map_ss_SS_Data_sequence[] = {
5330 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5331 { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5332 { &hf_gsm_map_ss_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
5333 { &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_BasicServiceGroupList },
5334 { &hf_gsm_map_ss_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
5335 { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
5336 { NULL, 0, 0, 0, NULL }
5339 static int
5340 dissect_gsm_map_ss_SS_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5341 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5342 gsm_map_ss_SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data);
5344 return offset;
5348 const value_string gsm_map_ss_SS_Info_vals[] = {
5349 { 0, "forwardingInfo" },
5350 { 1, "callBarringInfo" },
5351 { 3, "ss-Data" },
5352 { 0, NULL }
5355 static const ber_choice_t gsm_map_ss_SS_Info_choice[] = {
5356 { 0, &hf_gsm_map_ss_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingInfo },
5357 { 1, &hf_gsm_map_ss_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CallBarringInfo },
5358 { 3, &hf_gsm_map_ss_ss_Data , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Data },
5359 { 0, NULL, 0, 0, 0, NULL }
5363 dissect_gsm_map_ss_SS_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5364 offset = dissect_ber_choice(actx, tree, tvb, offset,
5365 gsm_map_ss_SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info,
5366 NULL);
5368 return offset;
5372 static const ber_sequence_t gsm_map_ss_SS_ForBS_Code_sequence[] = {
5373 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5374 { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5375 { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
5376 { NULL, 0, 0, 0, NULL }
5380 dissect_gsm_map_ss_SS_ForBS_Code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5381 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5382 gsm_map_ss_SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code);
5384 return offset;
5389 static int
5390 dissect_gsm_map_ss_CCBS_Index(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5391 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5392 NULL);
5394 return offset;
5398 static const ber_sequence_t gsm_map_ss_CCBS_Feature_sequence[] = {
5399 { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
5400 { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5401 { &hf_gsm_map_ss_b_subscriberSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
5402 { &hf_gsm_map_ss_basicServiceGroup, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
5403 { NULL, 0, 0, 0, NULL }
5407 dissect_gsm_map_ss_CCBS_Feature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5408 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5409 gsm_map_ss_CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature);
5411 return offset;
5415 static const ber_sequence_t gsm_map_ss_CCBS_FeatureList_sequence_of[1] = {
5416 { &hf_gsm_map_ss_CCBS_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CCBS_Feature },
5419 static int
5420 dissect_gsm_map_ss_CCBS_FeatureList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5421 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5422 gsm_map_ss_CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList);
5424 return offset;
5428 static const ber_sequence_t gsm_map_ss_GenericServiceInfo_sequence[] = {
5429 { &hf_gsm_map_ss_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_Status },
5430 { &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CliRestrictionOption },
5431 { &hf_gsm_map_ss_maximumEntitledPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
5432 { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
5433 { &hf_gsm_map_ss_ccbs_FeatureList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_FeatureList },
5434 { &hf_gsm_map_ss_nbrSB , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
5435 { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
5436 { &hf_gsm_map_ss_nbrSN , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
5437 { NULL, 0, 0, 0, NULL }
5440 static int
5441 dissect_gsm_map_ss_GenericServiceInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5442 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5443 gsm_map_ss_GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo);
5445 return offset;
5449 const value_string gsm_map_ss_InterrogateSS_Res_vals[] = {
5450 { 0, "ss-Status" },
5451 { 2, "basicServiceGroupList" },
5452 { 3, "forwardingFeatureList" },
5453 { 4, "genericServiceInfo" },
5454 { 0, NULL }
5457 static const ber_choice_t gsm_map_ss_InterrogateSS_Res_choice[] = {
5458 { 0, &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5459 { 2, &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_BasicServiceGroupList },
5460 { 3, &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingFeatureList },
5461 { 4, &hf_gsm_map_ss_genericServiceInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_GenericServiceInfo },
5462 { 0, NULL, 0, 0, 0, NULL }
5466 dissect_gsm_map_ss_InterrogateSS_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5467 offset = dissect_ber_choice(actx, tree, tvb, offset,
5468 gsm_map_ss_InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res,
5469 NULL);
5471 return offset;
5477 dissect_gsm_map_ss_USSD_DataCodingScheme(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5478 /*The structure of the USSD-DataCodingScheme is defined by
5479 * the Cell Broadcast Data Coding Scheme as described in
5480 * TS 3GPP TS 23.038
5481 * TODO: Should dissect_cbs_data_coding_scheme return encoding type? - like 7bit Alphabet
5483 tvbuff_t *parameter_tvb;
5484 proto_tree *subtree;
5486 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5487 &parameter_tvb);
5489 if (!parameter_tvb)
5490 return offset;
5491 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_cbs_data_coding);
5492 dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
5495 return offset;
5501 dissect_gsm_map_ss_USSD_String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5503 tvbuff_t *parameter_tvb;
5504 unsigned length;
5505 proto_tree *subtree;
5507 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5508 &parameter_tvb);
5510 if (!parameter_tvb)
5511 return offset;
5513 length = tvb_ensure_captured_length_remaining(parameter_tvb,0);
5514 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ussd_string);
5515 switch(sms_encoding){
5516 case SMS_ENCODING_7BIT:
5517 case SMS_ENCODING_7BIT_LANG:
5518 proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_3GPP_TS_23_038_7BITS|ENC_NA);
5519 break;
5520 case SMS_ENCODING_8BIT:
5521 /* XXX - ASCII, or some extended ASCII? */
5522 proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_ASCII);
5523 break;
5524 case SMS_ENCODING_UCS2:
5525 case SMS_ENCODING_UCS2_LANG:
5526 proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_UCS_2|ENC_BIG_ENDIAN);
5527 break;
5528 default:
5529 break;
5533 return offset;
5537 static const ber_sequence_t gsm_map_ss_USSD_Arg_sequence[] = {
5538 { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
5539 { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
5540 { &hf_gsm_map_ss_alertingPattern, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AlertingPattern },
5541 { &hf_gsm_map_ss_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5542 { NULL, 0, 0, 0, NULL }
5546 dissect_gsm_map_ss_USSD_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5547 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5548 gsm_map_ss_USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg);
5550 return offset;
5554 static const ber_sequence_t gsm_map_ss_USSD_Res_sequence[] = {
5555 { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
5556 { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
5557 { NULL, 0, 0, 0, NULL }
5561 dissect_gsm_map_ss_USSD_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5562 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5563 gsm_map_ss_USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res);
5565 return offset;
5570 static int
5571 dissect_gsm_map_ss_Password(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5572 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
5573 actx, tree, tvb, offset, hf_index,
5574 NULL);
5576 return offset;
5580 static const ber_sequence_t gsm_map_ss_SS_List_sequence_of[1] = {
5581 { &hf_gsm_map_ss_SS_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5584 static int
5585 dissect_gsm_map_ss_SS_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5586 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5587 gsm_map_ss_SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List);
5589 return offset;
5593 static const ber_sequence_t gsm_map_ss_SS_EventSpecification_sequence_of[1] = {
5594 { &hf_gsm_map_ss_SS_EventSpecification_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5597 static int
5598 dissect_gsm_map_ss_SS_EventSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5599 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5600 gsm_map_ss_SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification);
5602 return offset;
5606 static const value_string gsm_map_ss_CCBS_RequestState_vals[] = {
5607 { 0, "request" },
5608 { 1, "recall" },
5609 { 2, "active" },
5610 { 3, "completed" },
5611 { 4, "suspended" },
5612 { 5, "frozen" },
5613 { 6, "deleted" },
5614 { 0, NULL }
5618 static int
5619 dissect_gsm_map_ss_CCBS_RequestState(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5620 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5621 NULL);
5623 return offset;
5627 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationArg_sequence[] = {
5628 { &hf_gsm_map_ss_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5629 { &hf_gsm_map_ss_msisdn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5630 { &hf_gsm_map_ss_ss_Event , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5631 { &hf_gsm_map_ss_ss_EventSpecification, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_EventSpecification },
5632 { &hf_gsm_map_ss_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5633 { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5634 { &hf_gsm_map_ss_ccbs_RequestState, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_RequestState },
5635 { NULL, 0, 0, 0, NULL }
5638 static int
5639 dissect_gsm_map_ss_SS_InvocationNotificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5640 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5641 gsm_map_ss_SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg);
5643 return offset;
5647 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationRes_sequence[] = {
5648 { &hf_gsm_map_ss_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5649 { NULL, 0, 0, 0, NULL }
5652 static int
5653 dissect_gsm_map_ss_SS_InvocationNotificationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5654 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5655 gsm_map_ss_SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes);
5657 return offset;
5661 static int * const gsm_map_ss_ServiceIndicator_bits[] = {
5662 &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
5663 &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
5664 NULL
5667 static int
5668 dissect_gsm_map_ss_ServiceIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5669 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5670 gsm_map_ss_ServiceIndicator_bits, 2, hf_index, ett_gsm_map_ss_ServiceIndicator,
5671 NULL);
5673 return offset;
5677 static const ber_sequence_t gsm_map_ss_CCBS_Data_sequence[] = {
5678 { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
5679 { &hf_gsm_map_ss_translatedB_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5680 { &hf_gsm_map_ss_serviceIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ServiceIndicator },
5681 { &hf_gsm_map_ss_callInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
5682 { &hf_gsm_map_ss_networkSignalInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
5683 { NULL, 0, 0, 0, NULL }
5686 static int
5687 dissect_gsm_map_ss_CCBS_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5688 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5689 gsm_map_ss_CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data);
5691 return offset;
5695 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryArg_sequence[] = {
5696 { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5697 { &hf_gsm_map_ss_ccbs_Data, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Data },
5698 { NULL, 0, 0, 0, NULL }
5701 static int
5702 dissect_gsm_map_ss_RegisterCC_EntryArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5703 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5704 gsm_map_ss_RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg);
5706 return offset;
5710 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryRes_sequence[] = {
5711 { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
5712 { NULL, 0, 0, 0, NULL }
5716 dissect_gsm_map_ss_RegisterCC_EntryRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5717 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5718 gsm_map_ss_RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes);
5720 return offset;
5724 static const ber_sequence_t gsm_map_ss_EraseCC_EntryArg_sequence[] = {
5725 { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5726 { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
5727 { NULL, 0, 0, 0, NULL }
5731 dissect_gsm_map_ss_EraseCC_EntryArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5732 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5733 gsm_map_ss_EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg);
5735 return offset;
5739 static const ber_sequence_t gsm_map_ss_EraseCC_EntryRes_sequence[] = {
5740 { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5741 { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5742 { NULL, 0, 0, 0, NULL }
5746 dissect_gsm_map_ss_EraseCC_EntryRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5747 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5748 gsm_map_ss_EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes);
5750 return offset;
5754 /* --- Module MAP-ER-DataTypes --- --- --- */
5757 static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = {
5758 { 0, "plmnRoamingNotAllowed" },
5759 { 3, "operatorDeterminedBarring" },
5760 { 0, NULL }
5764 static int
5765 dissect_gsm_map_er_RoamingNotAllowedCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5766 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5767 NULL);
5769 return offset;
5773 static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = {
5774 { 0, "supportedRAT-TypesNotAllowed" },
5775 { 0, NULL }
5779 static int
5780 dissect_gsm_map_er_AdditionalRoamingNotAllowedCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5781 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5782 NULL);
5784 return offset;
5788 static const ber_sequence_t gsm_map_er_RoamingNotAllowedParam_sequence[] = {
5789 { &hf_gsm_map_er_roamingNotAllowedCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_RoamingNotAllowedCause },
5790 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5791 { &hf_gsm_map_er_additionalRoamingNotAllowedCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AdditionalRoamingNotAllowedCause },
5792 { NULL, 0, 0, 0, NULL }
5795 static int
5796 dissect_gsm_map_er_RoamingNotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5797 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5798 gsm_map_er_RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam);
5800 return offset;
5804 static const value_string gsm_map_er_CallBarringCause_vals[] = {
5805 { 0, "barringServiceActive" },
5806 { 1, "operatorBarring" },
5807 { 0, NULL }
5811 static int
5812 dissect_gsm_map_er_CallBarringCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5813 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5814 NULL);
5816 return offset;
5821 static int
5822 dissect_gsm_map_er_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5823 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5825 return offset;
5829 static const ber_sequence_t gsm_map_er_ExtensibleCallBarredParam_sequence[] = {
5830 { &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
5831 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5832 { &hf_gsm_map_er_unauthorisedMessageOriginator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5833 { &hf_gsm_map_er_anonymousCallRejection, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5834 { NULL, 0, 0, 0, NULL }
5837 static int
5838 dissect_gsm_map_er_ExtensibleCallBarredParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5839 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5840 gsm_map_er_ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam);
5842 return offset;
5846 static const ber_choice_t gsm_map_er_CallBarredParam_choice[] = {
5847 { 0, &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
5848 { 1, &hf_gsm_map_er_extensibleCallBarredParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleCallBarredParam },
5849 { 0, NULL, 0, 0, 0, NULL }
5852 static int
5853 dissect_gsm_map_er_CallBarredParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5854 offset = dissect_ber_choice(actx, tree, tvb, offset,
5855 gsm_map_er_CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam,
5856 NULL);
5858 return offset;
5862 static const value_string gsm_map_er_CUG_RejectCause_vals[] = {
5863 { 0, "incomingCallsBarredWithinCUG" },
5864 { 1, "subscriberNotMemberOfCUG" },
5865 { 5, "requestedBasicServiceViolatesCUG-Constraints" },
5866 { 7, "calledPartySS-InteractionViolation" },
5867 { 0, NULL }
5871 static int
5872 dissect_gsm_map_er_CUG_RejectCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5873 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5874 NULL);
5876 return offset;
5880 static const ber_sequence_t gsm_map_er_CUG_RejectParam_sequence[] = {
5881 { &hf_gsm_map_er_cug_RejectCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CUG_RejectCause },
5882 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5883 { NULL, 0, 0, 0, NULL }
5886 static int
5887 dissect_gsm_map_er_CUG_RejectParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5888 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5889 gsm_map_er_CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam);
5891 return offset;
5895 static const ber_sequence_t gsm_map_er_SS_IncompatibilityCause_sequence[] = {
5896 { &hf_gsm_map_er_ss_Code , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5897 { &hf_gsm_map_er_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5898 { &hf_gsm_map_er_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5899 { NULL, 0, 0, 0, NULL }
5902 static int
5903 dissect_gsm_map_er_SS_IncompatibilityCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5904 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5905 gsm_map_er_SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause);
5907 return offset;
5912 static int
5913 dissect_gsm_map_er_PW_RegistrationFailureCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5914 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5915 NULL);
5917 return offset;
5921 static const value_string gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals[] = {
5922 { 0, "memoryCapacityExceeded" },
5923 { 1, "equipmentProtocolError" },
5924 { 2, "equipmentNotSM-Equipped" },
5925 { 3, "unknownServiceCentre" },
5926 { 4, "sc-Congestion" },
5927 { 5, "invalidSME-Address" },
5928 { 6, "subscriberNotSC-Subscriber" },
5929 { 0, NULL }
5933 static int
5934 dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5935 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5936 NULL);
5938 return offset;
5942 static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = {
5943 { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause },
5944 { &hf_gsm_map_er_diagnosticInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5945 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5946 { NULL, 0, 0, 0, NULL }
5949 static int
5950 dissect_gsm_map_er_SM_DeliveryFailureCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5951 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5952 uint8_t oct;
5953 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
5954 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5955 gsm_map_er_SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause);
5958 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
5959 return offset;
5960 /* Detailed diagnostic information contains either a SMS-SUBMIT-REPORT or a SMS-DELIVERY-REPORT */
5961 oct = tvb_get_uint8(gsm_map_priv->signal_info_tvb, 0);
5962 actx->pinfo->p2p_dir = ((oct & 0x03) == 0) ? P2P_DIR_RECV : P2P_DIR_SENT;
5963 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
5966 return offset;
5971 static int
5972 dissect_gsm_map_er_AbsentSubscriberDiagnosticSM(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5973 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5974 NULL);
5976 return offset;
5980 static const ber_sequence_t gsm_map_er_AbsentSubscriberSM_Param_sequence[] = {
5981 { &hf_gsm_map_er_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5982 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5983 { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5984 { &hf_gsm_map_er_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5985 { &hf_gsm_map_er_requestedRetransmissionTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
5986 { &hf_gsm_map_er_userIdentifierAlert, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5987 { NULL, 0, 0, 0, NULL }
5990 static int
5991 dissect_gsm_map_er_AbsentSubscriberSM_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5992 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5993 gsm_map_er_AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param);
5995 return offset;
5999 static const value_string gsm_map_er_FailureCauseParam_vals[] = {
6000 { 0, "limitReachedOnNumberOfConcurrentLocationRequests" },
6001 { 0, NULL }
6005 static int
6006 dissect_gsm_map_er_FailureCauseParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6007 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6008 NULL);
6010 return offset;
6014 static const ber_sequence_t gsm_map_er_ExtensibleSystemFailureParam_sequence[] = {
6015 { &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
6016 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6017 { &hf_gsm_map_er_additionalNetworkResource, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AdditionalNetworkResource },
6018 { &hf_gsm_map_er_failureCauseParam, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_FailureCauseParam },
6019 { NULL, 0, 0, 0, NULL }
6022 static int
6023 dissect_gsm_map_er_ExtensibleSystemFailureParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6024 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6025 gsm_map_er_ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam);
6027 return offset;
6031 static const ber_choice_t gsm_map_er_SystemFailureParam_choice[] = {
6032 { 0, &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
6033 { 1, &hf_gsm_map_er_extensibleSystemFailureParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleSystemFailureParam },
6034 { 0, NULL, 0, 0, 0, NULL }
6037 static int
6038 dissect_gsm_map_er_SystemFailureParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6039 offset = dissect_ber_choice(actx, tree, tvb, offset,
6040 gsm_map_er_SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam,
6041 NULL);
6043 return offset;
6047 static const ber_sequence_t gsm_map_er_DataMissingParam_sequence[] = {
6048 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6049 { NULL, 0, 0, 0, NULL }
6052 static int
6053 dissect_gsm_map_er_DataMissingParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6054 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6055 gsm_map_er_DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam);
6057 return offset;
6061 static const ber_sequence_t gsm_map_er_UnexpectedDataParam_sequence[] = {
6062 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6063 { &hf_gsm_map_er_unexpectedSubscriber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
6064 { NULL, 0, 0, 0, NULL }
6067 static int
6068 dissect_gsm_map_er_UnexpectedDataParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6069 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6070 gsm_map_er_UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam);
6072 return offset;
6076 static const ber_sequence_t gsm_map_er_FacilityNotSupParam_sequence[] = {
6077 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6078 { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
6079 { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
6080 { NULL, 0, 0, 0, NULL }
6083 static int
6084 dissect_gsm_map_er_FacilityNotSupParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6085 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6086 gsm_map_er_FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam);
6088 return offset;
6092 static const ber_sequence_t gsm_map_er_OR_NotAllowedParam_sequence[] = {
6093 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6094 { NULL, 0, 0, 0, NULL }
6097 static int
6098 dissect_gsm_map_er_OR_NotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6099 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6100 gsm_map_er_OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam);
6102 return offset;
6106 static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = {
6107 { 0, "imsiUnknown" },
6108 { 1, "gprs-eps-SubscriptionUnknown" },
6109 { 2, "npdbMismatch" },
6110 { 0, NULL }
6114 static int
6115 dissect_gsm_map_er_UnknownSubscriberDiagnostic(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6116 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6117 NULL);
6119 return offset;
6123 static const ber_sequence_t gsm_map_er_UnknownSubscriberParam_sequence[] = {
6124 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6125 { &hf_gsm_map_er_unknownSubscriberDiagnostic, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_UnknownSubscriberDiagnostic },
6126 { NULL, 0, 0, 0, NULL }
6129 static int
6130 dissect_gsm_map_er_UnknownSubscriberParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6131 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6132 gsm_map_er_UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam);
6134 return offset;
6138 static const ber_sequence_t gsm_map_er_NumberChangedParam_sequence[] = {
6139 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6140 { NULL, 0, 0, 0, NULL }
6143 static int
6144 dissect_gsm_map_er_NumberChangedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6145 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6146 gsm_map_er_NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam);
6148 return offset;
6152 static const ber_sequence_t gsm_map_er_UnidentifiedSubParam_sequence[] = {
6153 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6154 { NULL, 0, 0, 0, NULL }
6157 static int
6158 dissect_gsm_map_er_UnidentifiedSubParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6159 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6160 gsm_map_er_UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam);
6162 return offset;
6166 static const ber_sequence_t gsm_map_er_IllegalSubscriberParam_sequence[] = {
6167 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6168 { NULL, 0, 0, 0, NULL }
6171 static int
6172 dissect_gsm_map_er_IllegalSubscriberParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6173 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6174 gsm_map_er_IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam);
6176 return offset;
6180 static const ber_sequence_t gsm_map_er_IllegalEquipmentParam_sequence[] = {
6181 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6182 { NULL, 0, 0, 0, NULL }
6185 static int
6186 dissect_gsm_map_er_IllegalEquipmentParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6187 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6188 gsm_map_er_IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam);
6190 return offset;
6194 static const ber_sequence_t gsm_map_er_BearerServNotProvParam_sequence[] = {
6195 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6196 { NULL, 0, 0, 0, NULL }
6199 static int
6200 dissect_gsm_map_er_BearerServNotProvParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6201 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6202 gsm_map_er_BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam);
6204 return offset;
6208 static const ber_sequence_t gsm_map_er_TeleservNotProvParam_sequence[] = {
6209 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6210 { NULL, 0, 0, 0, NULL }
6213 static int
6214 dissect_gsm_map_er_TeleservNotProvParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6215 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6216 gsm_map_er_TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam);
6218 return offset;
6222 static const ber_sequence_t gsm_map_er_TracingBufferFullParam_sequence[] = {
6223 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6224 { NULL, 0, 0, 0, NULL }
6227 static int
6228 dissect_gsm_map_er_TracingBufferFullParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6229 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6230 gsm_map_er_TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam);
6232 return offset;
6236 static const ber_sequence_t gsm_map_er_NoRoamingNbParam_sequence[] = {
6237 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6238 { NULL, 0, 0, 0, NULL }
6241 static int
6242 dissect_gsm_map_er_NoRoamingNbParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6243 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6244 gsm_map_er_NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam);
6246 return offset;
6250 static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = {
6251 { 0, "imsiDetach" },
6252 { 1, "restrictedArea" },
6253 { 2, "noPageResponse" },
6254 { 3, "purgedMS" },
6255 { 4, "mtRoamingRetry" },
6256 { 5, "busySubscriber" },
6257 { 0, NULL }
6261 static int
6262 dissect_gsm_map_er_AbsentSubscriberReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6263 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6264 NULL);
6266 return offset;
6270 static const ber_sequence_t gsm_map_er_AbsentSubscriberParam_sequence[] = {
6271 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6272 { &hf_gsm_map_er_absentSubscriberReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberReason },
6273 { NULL, 0, 0, 0, NULL }
6276 static int
6277 dissect_gsm_map_er_AbsentSubscriberParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6278 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6279 gsm_map_er_AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam);
6281 return offset;
6285 static const ber_sequence_t gsm_map_er_BusySubscriberParam_sequence[] = {
6286 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6287 { &hf_gsm_map_er_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
6288 { &hf_gsm_map_er_ccbs_Busy, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
6289 { NULL, 0, 0, 0, NULL }
6292 static int
6293 dissect_gsm_map_er_BusySubscriberParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6294 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6295 gsm_map_er_BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam);
6297 return offset;
6301 static const ber_sequence_t gsm_map_er_NoSubscriberReplyParam_sequence[] = {
6302 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6303 { NULL, 0, 0, 0, NULL }
6306 static int
6307 dissect_gsm_map_er_NoSubscriberReplyParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6308 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6309 gsm_map_er_NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam);
6311 return offset;
6315 static const ber_sequence_t gsm_map_er_ForwardingViolationParam_sequence[] = {
6316 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6317 { NULL, 0, 0, 0, NULL }
6320 static int
6321 dissect_gsm_map_er_ForwardingViolationParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6322 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6323 gsm_map_er_ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam);
6325 return offset;
6329 static const ber_sequence_t gsm_map_er_ForwardingFailedParam_sequence[] = {
6330 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6331 { NULL, 0, 0, 0, NULL }
6334 static int
6335 dissect_gsm_map_er_ForwardingFailedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6336 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6337 gsm_map_er_ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam);
6339 return offset;
6343 static const ber_sequence_t gsm_map_er_ATI_NotAllowedParam_sequence[] = {
6344 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6345 { NULL, 0, 0, 0, NULL }
6348 static int
6349 dissect_gsm_map_er_ATI_NotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6350 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6351 gsm_map_er_ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam);
6353 return offset;
6357 static const ber_sequence_t gsm_map_er_ATSI_NotAllowedParam_sequence[] = {
6358 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6359 { NULL, 0, 0, 0, NULL }
6362 static int
6363 dissect_gsm_map_er_ATSI_NotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6364 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6365 gsm_map_er_ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam);
6367 return offset;
6371 static const ber_sequence_t gsm_map_er_ATM_NotAllowedParam_sequence[] = {
6372 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6373 { NULL, 0, 0, 0, NULL }
6376 static int
6377 dissect_gsm_map_er_ATM_NotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6378 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6379 gsm_map_er_ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam);
6381 return offset;
6385 static const ber_sequence_t gsm_map_er_IllegalSS_OperationParam_sequence[] = {
6386 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6387 { NULL, 0, 0, 0, NULL }
6390 static int
6391 dissect_gsm_map_er_IllegalSS_OperationParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6392 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6393 gsm_map_er_IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam);
6395 return offset;
6399 static const ber_sequence_t gsm_map_er_SS_NotAvailableParam_sequence[] = {
6400 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6401 { NULL, 0, 0, 0, NULL }
6404 static int
6405 dissect_gsm_map_er_SS_NotAvailableParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6406 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6407 gsm_map_er_SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam);
6409 return offset;
6413 static const ber_sequence_t gsm_map_er_SS_SubscriptionViolationParam_sequence[] = {
6414 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6415 { NULL, 0, 0, 0, NULL }
6418 static int
6419 dissect_gsm_map_er_SS_SubscriptionViolationParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6420 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6421 gsm_map_er_SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam);
6423 return offset;
6427 static const ber_sequence_t gsm_map_er_InformationNotAvailableParam_sequence[] = {
6428 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6429 { NULL, 0, 0, 0, NULL }
6432 static int
6433 dissect_gsm_map_er_InformationNotAvailableParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6434 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6435 gsm_map_er_InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam);
6437 return offset;
6441 static const ber_sequence_t gsm_map_er_SubBusyForMT_SMS_Param_sequence[] = {
6442 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6443 { &hf_gsm_map_er_gprsConnectionSuspended, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_NULL },
6444 { NULL, 0, 0, 0, NULL }
6447 static int
6448 dissect_gsm_map_er_SubBusyForMT_SMS_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6449 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6450 gsm_map_er_SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param);
6452 return offset;
6456 static const ber_sequence_t gsm_map_er_MessageWaitListFullParam_sequence[] = {
6457 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6458 { NULL, 0, 0, 0, NULL }
6461 static int
6462 dissect_gsm_map_er_MessageWaitListFullParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6463 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6464 gsm_map_er_MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam);
6466 return offset;
6470 static const ber_sequence_t gsm_map_er_ResourceLimitationParam_sequence[] = {
6471 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6472 { NULL, 0, 0, 0, NULL }
6475 static int
6476 dissect_gsm_map_er_ResourceLimitationParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6477 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6478 gsm_map_er_ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam);
6480 return offset;
6484 static const ber_sequence_t gsm_map_er_NoGroupCallNbParam_sequence[] = {
6485 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6486 { NULL, 0, 0, 0, NULL }
6489 static int
6490 dissect_gsm_map_er_NoGroupCallNbParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6491 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6492 gsm_map_er_NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam);
6494 return offset;
6498 static const ber_sequence_t gsm_map_er_IncompatibleTerminalParam_sequence[] = {
6499 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6500 { NULL, 0, 0, 0, NULL }
6503 static int
6504 dissect_gsm_map_er_IncompatibleTerminalParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6505 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6506 gsm_map_er_IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam);
6508 return offset;
6512 static const ber_sequence_t gsm_map_er_ShortTermDenialParam_sequence[] = {
6513 { NULL, 0, 0, 0, NULL }
6516 static int
6517 dissect_gsm_map_er_ShortTermDenialParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6518 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6519 gsm_map_er_ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam);
6521 return offset;
6525 static const ber_sequence_t gsm_map_er_LongTermDenialParam_sequence[] = {
6526 { NULL, 0, 0, 0, NULL }
6529 static int
6530 dissect_gsm_map_er_LongTermDenialParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6531 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6532 gsm_map_er_LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam);
6534 return offset;
6538 static const ber_sequence_t gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence[] = {
6539 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6540 { NULL, 0, 0, 0, NULL }
6543 static int
6544 dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6545 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6546 gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param);
6548 return offset;
6552 const value_string gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals[] = {
6553 { 0, "noAdditionalInformation" },
6554 { 1, "clientNotInMSPrivacyExceptionList" },
6555 { 2, "callToClientNotSetup" },
6556 { 3, "privacyOverrideNotApplicable" },
6557 { 4, "disallowedByLocalRegulatoryRequirements" },
6558 { 5, "unauthorizedPrivacyClass" },
6559 { 6, "unauthorizedCallSessionUnrelatedExternalClient" },
6560 { 7, "unauthorizedCallSessionRelatedExternalClient" },
6561 { 0, NULL }
6566 dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6567 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6568 NULL);
6570 return offset;
6574 static const ber_sequence_t gsm_map_er_UnauthorizedLCSClient_Param_sequence[] = {
6575 { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic },
6576 { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6577 { NULL, 0, 0, 0, NULL }
6580 static int
6581 dissect_gsm_map_er_UnauthorizedLCSClient_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6582 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6583 gsm_map_er_UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param);
6585 return offset;
6589 const value_string gsm_map_er_PositionMethodFailure_Diagnostic_vals[] = {
6590 { 0, "congestion" },
6591 { 1, "insufficientResources" },
6592 { 2, "insufficientMeasurementData" },
6593 { 3, "inconsistentMeasurementData" },
6594 { 4, "locationProcedureNotCompleted" },
6595 { 5, "locationProcedureNotSupportedByTargetMS" },
6596 { 6, "qoSNotAttainable" },
6597 { 7, "positionMethodNotAvailableInNetwork" },
6598 { 8, "positionMethodNotAvailableInLocationArea" },
6599 { 0, NULL }
6604 dissect_gsm_map_er_PositionMethodFailure_Diagnostic(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6605 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6606 NULL);
6608 return offset;
6612 static const ber_sequence_t gsm_map_er_PositionMethodFailure_Param_sequence[] = {
6613 { &hf_gsm_map_er_positionMethodFailure_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic },
6614 { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6615 { NULL, 0, 0, 0, NULL }
6618 static int
6619 dissect_gsm_map_er_PositionMethodFailure_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6620 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6621 gsm_map_er_PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param);
6623 return offset;
6627 static const ber_sequence_t gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence[] = {
6628 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6629 { NULL, 0, 0, 0, NULL }
6632 static int
6633 dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6634 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6635 gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param);
6637 return offset;
6641 static const ber_sequence_t gsm_map_er_MM_EventNotSupported_Param_sequence[] = {
6642 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6643 { NULL, 0, 0, 0, NULL }
6646 static int
6647 dissect_gsm_map_er_MM_EventNotSupported_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6648 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6649 gsm_map_er_MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param);
6651 return offset;
6655 static const ber_sequence_t gsm_map_er_TargetCellOutsideGCA_Param_sequence[] = {
6656 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6657 { NULL, 0, 0, 0, NULL }
6660 static int
6661 dissect_gsm_map_er_TargetCellOutsideGCA_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6662 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6663 gsm_map_er_TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param);
6665 return offset;
6669 static const ber_sequence_t gsm_map_er_OngoingGroupCallParam_sequence[] = {
6670 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6671 { NULL, 0, 0, 0, NULL }
6674 static int
6675 dissect_gsm_map_er_OngoingGroupCallParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6676 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6677 gsm_map_er_OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam);
6679 return offset;
6683 /* --- Module MAP-SM-DataTypes --- --- --- */
6687 static int
6688 dissect_gsm_map_sm_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6689 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
6691 return offset;
6696 static int
6697 dissect_gsm_map_sm_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6698 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6700 return offset;
6705 static int
6706 dissect_gsm_map_sm_SM_RP_MTI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6707 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6708 NULL);
6710 return offset;
6715 static int
6716 dissect_gsm_map_sm_SM_RP_SMEA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6717 tvbuff_t *payload_tvb;
6718 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6719 &payload_tvb);
6721 if (payload_tvb) {
6722 uint32_t tvb_offset = 0;
6723 proto_item_set_hidden(actx->created_item);
6724 dis_field_addr(payload_tvb, actx->pinfo, tree, &tvb_offset, "SM-RP-SMEA");
6729 return offset;
6733 static const value_string gsm_map_sm_SM_DeliveryNotIntended_vals[] = {
6734 { 0, "onlyIMSI-requested" },
6735 { 1, "onlyMCC-MNC-requested" },
6736 { 0, NULL }
6740 static int
6741 dissect_gsm_map_sm_SM_DeliveryNotIntended(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6742 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6743 NULL);
6745 return offset;
6750 static int
6751 dissect_gsm_map_sm_SIP_URI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6752 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6753 NULL);
6755 return offset;
6759 static const ber_sequence_t gsm_map_sm_CorrelationID_sequence[] = {
6760 { &hf_gsm_map_sm_hlr_id , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_HLR_Id },
6761 { &hf_gsm_map_sm_sip_uri_A, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SIP_URI },
6762 { &hf_gsm_map_sm_sip_uri_B, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SIP_URI },
6763 { NULL, 0, 0, 0, NULL }
6766 static int
6767 dissect_gsm_map_sm_CorrelationID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6768 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6769 gsm_map_sm_CorrelationID_sequence, hf_index, ett_gsm_map_sm_CorrelationID);
6771 return offset;
6775 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Arg_sequence[] = {
6776 { &hf_gsm_map_sm_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6777 { &hf_gsm_map_sm_sm_RP_PRI, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_BOOLEAN },
6778 { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
6779 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6780 { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6781 { &hf_gsm_map_sm_sm_RP_MTI, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_MTI },
6782 { &hf_gsm_map_sm_sm_RP_SMEA, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_SMEA },
6783 { &hf_gsm_map_sm_sm_deliveryNotIntended, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryNotIntended },
6784 { &hf_gsm_map_sm_ip_sm_gwGuidanceIndicator, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6785 { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6786 { &hf_gsm_map_sm_t4_Trigger_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6787 { &hf_gsm_map_sm_singleAttemptDelivery, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6788 { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID },
6789 { &hf_gsm_map_sm_smsf_supportIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6790 { NULL, 0, 0, 0, NULL }
6793 static int
6794 dissect_gsm_map_sm_RoutingInfoForSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6795 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6796 gsm_map_sm_RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg);
6798 return offset;
6802 static const value_string gsm_map_sm_Additional_Number_vals[] = {
6803 { 0, "msc-Number" },
6804 { 1, "sgsn-Number" },
6805 { 0, NULL }
6808 static const ber_choice_t gsm_map_sm_Additional_Number_choice[] = {
6809 { 0, &hf_gsm_map_sm_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6810 { 1, &hf_gsm_map_sm_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6811 { 0, NULL, 0, 0, 0, NULL }
6814 static int
6815 dissect_gsm_map_sm_Additional_Number(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6816 offset = dissect_ber_choice(actx, tree, tvb, offset,
6817 gsm_map_sm_Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number,
6818 NULL);
6820 return offset;
6824 static const ber_sequence_t gsm_map_sm_LocationInfoWithLMSI_sequence[] = {
6825 { &hf_gsm_map_sm_networkNode_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6826 { &hf_gsm_map_sm_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
6827 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6828 { &hf_gsm_map_sm_gprsNodeIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6829 { &hf_gsm_map_sm_additional_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_Additional_Number },
6830 { &hf_gsm_map_sm_networkNodeDiameterAddress, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6831 { &hf_gsm_map_sm_additionalNetworkNodeDiameterAddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6832 { &hf_gsm_map_sm_thirdNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_Additional_Number },
6833 { &hf_gsm_map_sm_thirdNetworkNodeDiameterAddress, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6834 { &hf_gsm_map_sm_imsNodeIndicator, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6835 { &hf_gsm_map_sm_smsf_3gpp_Number, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6836 { &hf_gsm_map_sm_smsf_3gpp_DiameterAddress, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6837 { &hf_gsm_map_sm_smsf_non_3gpp_Number, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6838 { &hf_gsm_map_sm_smsf_non_3gpp_DiameterAddress, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6839 { &hf_gsm_map_sm_smsf_3gpp_address_indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6840 { &hf_gsm_map_sm_smsf_non_3gpp_address_indicator, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6841 { NULL, 0, 0, 0, NULL }
6844 static int
6845 dissect_gsm_map_sm_LocationInfoWithLMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6846 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6847 gsm_map_sm_LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI);
6849 return offset;
6854 static int
6855 dissect_gsm_map_sm_SM_DeliveryTimerValue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6856 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6857 NULL);
6859 return offset;
6863 static const ber_sequence_t gsm_map_sm_IP_SM_GW_Guidance_sequence[] = {
6864 { &hf_gsm_map_sm_minimumDeliveryTimeValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
6865 { &hf_gsm_map_sm_recommendedDeliveryTimeValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
6866 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6867 { NULL, 0, 0, 0, NULL }
6870 static int
6871 dissect_gsm_map_sm_IP_SM_GW_Guidance(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6872 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6873 gsm_map_sm_IP_SM_GW_Guidance_sequence, hf_index, ett_gsm_map_sm_IP_SM_GW_Guidance);
6875 return offset;
6879 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Res_sequence[] = {
6880 { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6881 { &hf_gsm_map_sm_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_LocationInfoWithLMSI },
6882 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6883 { &hf_gsm_map_sm_ip_sm_gwGuidance, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_IP_SM_GW_Guidance },
6884 { NULL, 0, 0, 0, NULL }
6887 static int
6888 dissect_gsm_map_sm_RoutingInfoForSM_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6889 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6890 gsm_map_sm_RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res);
6892 return offset;
6897 static int
6898 dissect_gsm_map_sm_T_imsi(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6899 actx->private_data = NULL;
6900 actx->pinfo->p2p_dir = P2P_DIR_SENT;
6901 offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
6903 if (actx->private_data) {
6904 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
6905 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_IMSI;
6906 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
6907 actx->private_data = NULL;
6911 return offset;
6916 static int
6917 dissect_gsm_map_sm_T_lmsi(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6918 actx->private_data = NULL;
6919 actx->pinfo->p2p_dir = P2P_DIR_SENT;
6920 offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
6922 if (actx->private_data) {
6923 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
6924 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_LMSI;
6925 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
6926 actx->private_data = NULL;
6930 return offset;
6935 static int
6936 dissect_gsm_map_sm_T_serviceCentreAddressDA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6937 actx->private_data = NULL;
6938 actx->pinfo->p2p_dir = P2P_DIR_RECV;
6939 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
6941 if (actx->private_data) {
6942 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
6943 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_SERVICE_CENTER_ADDRESS;
6944 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
6945 actx->private_data = NULL;
6949 return offset;
6954 static int
6955 dissect_gsm_map_sm_T_noSM_RP_DA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6956 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6958 if (!PINFO_FD_VISITED(actx->pinfo)) {
6959 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
6960 gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
6961 if (prev_packet_info) {
6962 gsm_map_pi->sm_rp_da_id = prev_packet_info->sm_rp_da_id;
6963 gsm_map_pi->sm_rp_da_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_da_str);
6968 return offset;
6972 const value_string gsm_map_sm_SM_RP_DA_vals[] = {
6973 { 0, "imsi" },
6974 { 1, "lmsi" },
6975 { 4, "serviceCentreAddressDA" },
6976 { 5, "noSM-RP-DA" },
6977 { 0, NULL }
6980 static const ber_choice_t gsm_map_sm_SM_RP_DA_choice[] = {
6981 { 0, &hf_gsm_map_sm_imsi_01 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_imsi },
6982 { 1, &hf_gsm_map_sm_lmsi_01 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_lmsi },
6983 { 4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressDA },
6984 { 5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_noSM_RP_DA },
6985 { 0, NULL, 0, 0, 0, NULL }
6989 dissect_gsm_map_sm_SM_RP_DA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6990 offset = dissect_ber_choice(actx, tree, tvb, offset,
6991 gsm_map_sm_SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA,
6992 NULL);
6994 return offset;
6999 static int
7000 dissect_gsm_map_sm_T_msisdn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7001 actx->pinfo->p2p_dir = P2P_DIR_RECV;
7002 offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
7004 if (actx->private_data) {
7005 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
7006 gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_MSISDN;
7007 gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
7008 actx->private_data = NULL;
7012 return offset;
7017 static int
7018 dissect_gsm_map_sm_T_serviceCentreAddressOA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7019 actx->private_data = NULL;
7020 actx->pinfo->p2p_dir = P2P_DIR_SENT;
7021 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
7023 if (actx->private_data) {
7024 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
7025 gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_SERVICE_CENTER_ADDRESS;
7026 gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
7027 actx->private_data = NULL;
7031 return offset;
7036 static int
7037 dissect_gsm_map_sm_T_noSM_RP_OA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7038 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7040 if (!PINFO_FD_VISITED(actx->pinfo)) {
7041 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
7042 gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
7043 if (prev_packet_info) {
7044 gsm_map_pi->sm_rp_oa_id = prev_packet_info->sm_rp_oa_id;
7045 gsm_map_pi->sm_rp_oa_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_oa_str);
7050 return offset;
7054 const value_string gsm_map_sm_SM_RP_OA_vals[] = {
7055 { 2, "msisdn" },
7056 { 4, "serviceCentreAddressOA" },
7057 { 5, "noSM-RP-OA" },
7058 { 0, NULL }
7061 static const ber_choice_t gsm_map_sm_SM_RP_OA_choice[] = {
7062 { 2, &hf_gsm_map_sm_msisdn_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_msisdn },
7063 { 4, &hf_gsm_map_sm_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressOA },
7064 { 5, &hf_gsm_map_sm_noSM_RP_OA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_noSM_RP_OA },
7065 { 0, NULL, 0, 0, 0, NULL }
7069 dissect_gsm_map_sm_SM_RP_OA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7070 offset = dissect_ber_choice(actx, tree, tvb, offset,
7071 gsm_map_sm_SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA,
7072 NULL);
7074 return offset;
7078 static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = {
7079 { 0, "memoryCapacityExceeded" },
7080 { 1, "absentSubscriber" },
7081 { 2, "successfulTransfer" },
7082 { 0, NULL }
7086 static int
7087 dissect_gsm_map_sm_SM_DeliveryOutcome(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7088 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7089 NULL);
7091 return offset;
7095 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = {
7096 { &hf_gsm_map_sm_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_DA },
7097 { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA },
7098 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
7099 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7100 { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7101 { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID },
7102 { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7103 { NULL, 0, 0, 0, NULL }
7106 static int
7107 dissect_gsm_map_sm_MO_ForwardSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7108 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7109 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7110 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7111 gsm_map_sm_MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg);
7114 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7115 return offset;
7116 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7117 actx->pinfo->p2p_dir = P2P_DIR_RECV;
7119 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7122 return offset;
7126 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = {
7127 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
7128 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7129 { NULL, 0, 0, 0, NULL }
7132 static int
7133 dissect_gsm_map_sm_MO_ForwardSM_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7134 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7135 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7136 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7137 gsm_map_sm_MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res);
7140 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7141 return offset;
7142 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7143 actx->pinfo->p2p_dir = P2P_DIR_SENT;
7145 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7148 return offset;
7152 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = {
7153 { &hf_gsm_map_sm_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_DA },
7154 { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA },
7155 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
7156 { &hf_gsm_map_sm_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
7157 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7158 { &hf_gsm_map_sm_smDeliveryTimer, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
7159 { &hf_gsm_map_sm_smDeliveryStartTime, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time },
7160 { &hf_gsm_map_sm_smsOverIP_OnlyIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7161 { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID },
7162 { &hf_gsm_map_sm_maximumRetransmissionTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
7163 { &hf_gsm_map_sm_smsGmscAddress, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7164 { &hf_gsm_map_sm_smsGmscDiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7165 { NULL, 0, 0, 0, NULL }
7168 static int
7169 dissect_gsm_map_sm_MT_ForwardSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7170 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7171 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7172 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7173 gsm_map_sm_MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg);
7176 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7177 return offset;
7178 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7179 actx->pinfo->p2p_dir = P2P_DIR_SENT;
7181 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7184 return offset;
7188 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = {
7189 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
7190 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7191 { NULL, 0, 0, 0, NULL }
7194 static int
7195 dissect_gsm_map_sm_MT_ForwardSM_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7196 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7197 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7198 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7199 gsm_map_sm_MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res);
7202 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7203 return offset;
7204 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7205 actx->pinfo->p2p_dir = P2P_DIR_RECV;
7207 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7210 return offset;
7214 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusArg_sequence[] = {
7215 { &hf_gsm_map_sm_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7216 { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
7217 { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7218 { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7219 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7220 { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7221 { &hf_gsm_map_sm_deliveryOutcomeIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7222 { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7223 { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7224 { &hf_gsm_map_sm_ip_sm_gw_Indicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7225 { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7226 { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7227 { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7228 { &hf_gsm_map_sm_singleAttemptDelivery, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7229 { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID },
7230 { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcomeIndicator, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7231 { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcome, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7232 { &hf_gsm_map_sm_smsf_3gpp_absentSubscriberDiagSM, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7233 { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcomeIndicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7234 { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcome, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7235 { &hf_gsm_map_sm_smsf_non_3gpp_absentSubscriberDiagSM, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7236 { NULL, 0, 0, 0, NULL }
7239 static int
7240 dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7241 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7242 gsm_map_sm_ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg);
7244 return offset;
7248 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusRes_sequence[] = {
7249 { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7250 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7251 { NULL, 0, 0, 0, NULL }
7254 static int
7255 dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7256 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7257 gsm_map_sm_ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes);
7259 return offset;
7263 static const value_string gsm_map_sm_SmsGmsc_Alert_Event_vals[] = {
7264 { 0, "msAvailableForMtSms" },
7265 { 1, "msUnderNewServingNode" },
7266 { 0, NULL }
7270 static int
7271 dissect_gsm_map_sm_SmsGmsc_Alert_Event(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7272 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7273 NULL);
7275 return offset;
7279 static const ber_sequence_t gsm_map_sm_AlertServiceCentreArg_sequence[] = {
7280 { &hf_gsm_map_sm_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7281 { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
7282 { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7283 { &hf_gsm_map_sm_correlationID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_CorrelationID },
7284 { &hf_gsm_map_sm_maximumUeAvailabilityTime, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
7285 { &hf_gsm_map_sm_smsGmscAlertEvent, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SmsGmsc_Alert_Event },
7286 { &hf_gsm_map_sm_smsGmscDiameterAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7287 { &hf_gsm_map_sm_newSGSNNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7288 { &hf_gsm_map_sm_newSGSNDiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7289 { &hf_gsm_map_sm_newMMENumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7290 { &hf_gsm_map_sm_newMMEDiameterAddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7291 { &hf_gsm_map_sm_newMSCNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7292 { NULL, 0, 0, 0, NULL }
7295 static int
7296 dissect_gsm_map_sm_AlertServiceCentreArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7297 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7298 gsm_map_sm_AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg);
7300 return offset;
7304 static int * const gsm_map_sm_MW_Status_bits[] = {
7305 &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
7306 &hf_gsm_map_sm_MW_Status_mnrf_Set,
7307 &hf_gsm_map_sm_MW_Status_mcef_Set,
7308 &hf_gsm_map_sm_MW_Status_mnrg_Set,
7309 &hf_gsm_map_sm_MW_Status_mnr5g_Set,
7310 &hf_gsm_map_sm_MW_Status_mnr5gn3g_Set,
7311 NULL
7314 static int
7315 dissect_gsm_map_sm_MW_Status(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7316 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7317 gsm_map_sm_MW_Status_bits, 6, hf_index, ett_gsm_map_sm_MW_Status,
7318 NULL);
7320 return offset;
7324 static const ber_sequence_t gsm_map_sm_InformServiceCentreArg_sequence[] = {
7325 { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7326 { &hf_gsm_map_sm_mw_Status, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_MW_Status },
7327 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7328 { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7329 { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7330 { &hf_gsm_map_sm_smsf3gppAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7331 { &hf_gsm_map_sm_smsfNon3gppAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7332 { NULL, 0, 0, 0, NULL }
7335 static int
7336 dissect_gsm_map_sm_InformServiceCentreArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7337 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7338 gsm_map_sm_InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg);
7340 return offset;
7344 static const value_string gsm_map_sm_AlertReason_vals[] = {
7345 { 0, "ms-Present" },
7346 { 1, "memoryAvailable" },
7347 { 0, NULL }
7351 static int
7352 dissect_gsm_map_sm_AlertReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7353 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7354 NULL);
7356 return offset;
7360 static const ber_sequence_t gsm_map_sm_ReadyForSM_Arg_sequence[] = {
7361 { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7362 { &hf_gsm_map_sm_alertReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_AlertReason },
7363 { &hf_gsm_map_sm_alertReasonIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
7364 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7365 { &hf_gsm_map_sm_additionalAlertReasonIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7366 { &hf_gsm_map_sm_maximumUeAvailabilityTime, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time },
7367 { NULL, 0, 0, 0, NULL }
7370 static int
7371 dissect_gsm_map_sm_ReadyForSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7372 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7373 gsm_map_sm_ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg);
7375 return offset;
7379 static const ber_sequence_t gsm_map_sm_ReadyForSM_Res_sequence[] = {
7380 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7381 { NULL, 0, 0, 0, NULL }
7384 static int
7385 dissect_gsm_map_sm_ReadyForSM_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7386 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7387 gsm_map_sm_ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res);
7389 return offset;
7393 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = {
7394 { &hf_gsm_map_sm_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
7395 { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA },
7396 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
7397 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7398 { NULL, 0, 0, 0, NULL }
7401 static int
7402 dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7403 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7404 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7405 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7406 gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg);
7409 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7410 return offset;
7411 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7412 actx->pinfo->p2p_dir = P2P_DIR_SENT;
7414 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7417 return offset;
7421 static const ber_sequence_t gsm_map_sm_DispatcherList_sequence_of[1] = {
7422 { &hf_gsm_map_sm_DispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7425 static int
7426 dissect_gsm_map_sm_DispatcherList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7427 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7428 gsm_map_sm_DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList);
7430 return offset;
7434 static const ber_sequence_t gsm_map_sm_AdditionalDispatcherList_sequence_of[1] = {
7435 { &hf_gsm_map_sm_AdditionalDispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7438 static int
7439 dissect_gsm_map_sm_AdditionalDispatcherList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7440 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7441 gsm_map_sm_AdditionalDispatcherList_sequence_of, hf_index, ett_gsm_map_sm_AdditionalDispatcherList);
7443 return offset;
7447 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = {
7448 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
7449 { &hf_gsm_map_sm_dispatcherList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_DispatcherList },
7450 { &hf_gsm_map_sm_ongoingCall, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
7451 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7452 { &hf_gsm_map_sm_additionalDispatcherList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_AdditionalDispatcherList },
7453 { NULL, 0, 0, 0, NULL }
7456 static int
7457 dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7458 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7459 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7460 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7461 gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res);
7464 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7465 return offset;
7466 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7467 actx->pinfo->p2p_dir = P2P_DIR_RECV;
7469 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7472 return offset;
7476 /* --- Module MAP-OM-DataTypes --- --- --- */
7480 static int
7481 dissect_gsm_map_om_TraceReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7482 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7483 NULL);
7485 return offset;
7490 static int
7491 dissect_gsm_map_om_TraceType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7492 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7493 NULL);
7495 return offset;
7500 static int
7501 dissect_gsm_map_om_TraceReference2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7502 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7503 NULL);
7505 return offset;
7509 static const value_string gsm_map_om_TraceDepth_vals[] = {
7510 { 0, "minimum" },
7511 { 1, "medium" },
7512 { 2, "maximum" },
7513 { 0, NULL }
7517 static int
7518 dissect_gsm_map_om_TraceDepth(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7519 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7520 NULL);
7522 return offset;
7526 static const value_string gsm_map_om_TraceDepthExtension_vals[] = {
7527 { 0, "minimumWithoutVendorSpecificExtension" },
7528 { 1, "mediumWithoutVendorSpecificExtension" },
7529 { 2, "maximumWithoutVendorSpecificExtension" },
7530 { 0, NULL }
7534 static int
7535 dissect_gsm_map_om_TraceDepthExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7536 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7537 NULL);
7539 return offset;
7543 static const ber_sequence_t gsm_map_om_TraceDepthList_sequence[] = {
7544 { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7545 { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7546 { &hf_gsm_map_om_sgsn_TraceDepth, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7547 { &hf_gsm_map_om_ggsn_TraceDepth, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7548 { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7549 { &hf_gsm_map_om_bmsc_TraceDepth, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7550 { &hf_gsm_map_om_mme_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7551 { &hf_gsm_map_om_sgw_TraceDepth, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7552 { &hf_gsm_map_om_pgw_TraceDepth, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7553 { &hf_gsm_map_om_eNB_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7554 { &hf_gsm_map_om_msc_s_TraceDepthExtension, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7555 { &hf_gsm_map_om_mgw_TraceDepthExtension, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7556 { &hf_gsm_map_om_sgsn_TraceDepthExtension, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7557 { &hf_gsm_map_om_ggsn_TraceDepthExtension, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7558 { &hf_gsm_map_om_rnc_TraceDepthExtension, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7559 { &hf_gsm_map_om_bmsc_TraceDepthExtension, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7560 { &hf_gsm_map_om_mme_TraceDepthExtension, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7561 { &hf_gsm_map_om_sgw_TraceDepthExtension, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7562 { &hf_gsm_map_om_pgw_TraceDepthExtension, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7563 { &hf_gsm_map_om_eNB_TraceDepthExtension, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7564 { NULL, 0, 0, 0, NULL }
7567 static int
7568 dissect_gsm_map_om_TraceDepthList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7569 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7570 gsm_map_om_TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList);
7572 return offset;
7576 static int * const gsm_map_om_TraceNE_TypeList_bits[] = {
7577 &hf_gsm_map_om_TraceNE_TypeList_msc_s,
7578 &hf_gsm_map_om_TraceNE_TypeList_mgw,
7579 &hf_gsm_map_om_TraceNE_TypeList_sgsn,
7580 &hf_gsm_map_om_TraceNE_TypeList_ggsn,
7581 &hf_gsm_map_om_TraceNE_TypeList_rnc,
7582 &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
7583 &hf_gsm_map_om_TraceNE_TypeList_mme,
7584 &hf_gsm_map_om_TraceNE_TypeList_sgw,
7585 &hf_gsm_map_om_TraceNE_TypeList_pgw,
7586 &hf_gsm_map_om_TraceNE_TypeList_eNB,
7587 NULL
7590 static int
7591 dissect_gsm_map_om_TraceNE_TypeList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7592 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7593 gsm_map_om_TraceNE_TypeList_bits, 10, hf_index, ett_gsm_map_om_TraceNE_TypeList,
7594 NULL);
7596 return offset;
7600 static int * const gsm_map_om_MSC_S_InterfaceList_bits[] = {
7601 &hf_gsm_map_om_MSC_S_InterfaceList_a,
7602 &hf_gsm_map_om_MSC_S_InterfaceList_iu,
7603 &hf_gsm_map_om_MSC_S_InterfaceList_mc,
7604 &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
7605 &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
7606 &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
7607 &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
7608 &hf_gsm_map_om_MSC_S_InterfaceList_cap,
7609 &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
7610 &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
7611 NULL
7614 static int
7615 dissect_gsm_map_om_MSC_S_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7616 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7617 gsm_map_om_MSC_S_InterfaceList_bits, 10, hf_index, ett_gsm_map_om_MSC_S_InterfaceList,
7618 NULL);
7620 return offset;
7624 static int * const gsm_map_om_MGW_InterfaceList_bits[] = {
7625 &hf_gsm_map_om_MGW_InterfaceList_mc,
7626 &hf_gsm_map_om_MGW_InterfaceList_nb_up,
7627 &hf_gsm_map_om_MGW_InterfaceList_iu_up,
7628 NULL
7631 static int
7632 dissect_gsm_map_om_MGW_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7633 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7634 gsm_map_om_MGW_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_MGW_InterfaceList,
7635 NULL);
7637 return offset;
7641 static int * const gsm_map_om_SGSN_InterfaceList_bits[] = {
7642 &hf_gsm_map_om_SGSN_InterfaceList_gb,
7643 &hf_gsm_map_om_SGSN_InterfaceList_iu,
7644 &hf_gsm_map_om_SGSN_InterfaceList_gn,
7645 &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
7646 &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
7647 &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
7648 &hf_gsm_map_om_SGSN_InterfaceList_gs,
7649 &hf_gsm_map_om_SGSN_InterfaceList_ge,
7650 &hf_gsm_map_om_SGSN_InterfaceList_s3,
7651 &hf_gsm_map_om_SGSN_InterfaceList_s4,
7652 &hf_gsm_map_om_SGSN_InterfaceList_s6d,
7653 NULL
7656 static int
7657 dissect_gsm_map_om_SGSN_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7658 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7659 gsm_map_om_SGSN_InterfaceList_bits, 11, hf_index, ett_gsm_map_om_SGSN_InterfaceList,
7660 NULL);
7662 return offset;
7666 static int * const gsm_map_om_GGSN_InterfaceList_bits[] = {
7667 &hf_gsm_map_om_GGSN_InterfaceList_gn,
7668 &hf_gsm_map_om_GGSN_InterfaceList_gi,
7669 &hf_gsm_map_om_GGSN_InterfaceList_gmb,
7670 NULL
7673 static int
7674 dissect_gsm_map_om_GGSN_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7675 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7676 gsm_map_om_GGSN_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_GGSN_InterfaceList,
7677 NULL);
7679 return offset;
7683 static int * const gsm_map_om_RNC_InterfaceList_bits[] = {
7684 &hf_gsm_map_om_RNC_InterfaceList_iu,
7685 &hf_gsm_map_om_RNC_InterfaceList_iur,
7686 &hf_gsm_map_om_RNC_InterfaceList_iub,
7687 &hf_gsm_map_om_RNC_InterfaceList_uu,
7688 NULL
7691 static int
7692 dissect_gsm_map_om_RNC_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7693 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7694 gsm_map_om_RNC_InterfaceList_bits, 4, hf_index, ett_gsm_map_om_RNC_InterfaceList,
7695 NULL);
7697 return offset;
7701 static int * const gsm_map_om_BMSC_InterfaceList_bits[] = {
7702 &hf_gsm_map_om_BMSC_InterfaceList_gmb,
7703 NULL
7706 static int
7707 dissect_gsm_map_om_BMSC_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7708 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7709 gsm_map_om_BMSC_InterfaceList_bits, 1, hf_index, ett_gsm_map_om_BMSC_InterfaceList,
7710 NULL);
7712 return offset;
7716 static int * const gsm_map_om_MME_InterfaceList_bits[] = {
7717 &hf_gsm_map_om_MME_InterfaceList_s1_mme,
7718 &hf_gsm_map_om_MME_InterfaceList_s3,
7719 &hf_gsm_map_om_MME_InterfaceList_s6a,
7720 &hf_gsm_map_om_MME_InterfaceList_s10,
7721 &hf_gsm_map_om_MME_InterfaceList_s11,
7722 NULL
7725 static int
7726 dissect_gsm_map_om_MME_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7727 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7728 gsm_map_om_MME_InterfaceList_bits, 5, hf_index, ett_gsm_map_om_MME_InterfaceList,
7729 NULL);
7731 return offset;
7735 static int * const gsm_map_om_SGW_InterfaceList_bits[] = {
7736 &hf_gsm_map_om_SGW_InterfaceList_s4,
7737 &hf_gsm_map_om_SGW_InterfaceList_s5,
7738 &hf_gsm_map_om_SGW_InterfaceList_s8b,
7739 &hf_gsm_map_om_SGW_InterfaceList_s11,
7740 &hf_gsm_map_om_SGW_InterfaceList_gxc,
7741 NULL
7744 static int
7745 dissect_gsm_map_om_SGW_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7746 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7747 gsm_map_om_SGW_InterfaceList_bits, 5, hf_index, ett_gsm_map_om_SGW_InterfaceList,
7748 NULL);
7750 return offset;
7754 static int * const gsm_map_om_PGW_InterfaceList_bits[] = {
7755 &hf_gsm_map_om_PGW_InterfaceList_s2a,
7756 &hf_gsm_map_om_PGW_InterfaceList_s2b,
7757 &hf_gsm_map_om_PGW_InterfaceList_s2c,
7758 &hf_gsm_map_om_PGW_InterfaceList_s5,
7759 &hf_gsm_map_om_PGW_InterfaceList_s6b,
7760 &hf_gsm_map_om_PGW_InterfaceList_gx,
7761 &hf_gsm_map_om_PGW_InterfaceList_s8b,
7762 &hf_gsm_map_om_PGW_InterfaceList_sgi,
7763 NULL
7766 static int
7767 dissect_gsm_map_om_PGW_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7768 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7769 gsm_map_om_PGW_InterfaceList_bits, 8, hf_index, ett_gsm_map_om_PGW_InterfaceList,
7770 NULL);
7772 return offset;
7776 static int * const gsm_map_om_ENB_InterfaceList_bits[] = {
7777 &hf_gsm_map_om_ENB_InterfaceList_s1_mme,
7778 &hf_gsm_map_om_ENB_InterfaceList_x2,
7779 &hf_gsm_map_om_ENB_InterfaceList_uu,
7780 NULL
7783 static int
7784 dissect_gsm_map_om_ENB_InterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7785 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7786 gsm_map_om_ENB_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_ENB_InterfaceList,
7787 NULL);
7789 return offset;
7793 static const ber_sequence_t gsm_map_om_TraceInterfaceList_sequence[] = {
7794 { &hf_gsm_map_om_msc_s_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
7795 { &hf_gsm_map_om_mgw_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
7796 { &hf_gsm_map_om_sgsn_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_InterfaceList },
7797 { &hf_gsm_map_om_ggsn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_InterfaceList },
7798 { &hf_gsm_map_om_rnc_List , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
7799 { &hf_gsm_map_om_bmsc_List, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_InterfaceList },
7800 { &hf_gsm_map_om_mme_List , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MME_InterfaceList },
7801 { &hf_gsm_map_om_sgw_List , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGW_InterfaceList },
7802 { &hf_gsm_map_om_pgw_List , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PGW_InterfaceList },
7803 { &hf_gsm_map_om_eNB_List , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ENB_InterfaceList },
7804 { NULL, 0, 0, 0, NULL }
7807 static int
7808 dissect_gsm_map_om_TraceInterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7809 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7810 gsm_map_om_TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList);
7812 return offset;
7816 static int * const gsm_map_om_MSC_S_EventList_bits[] = {
7817 &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
7818 &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
7819 &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
7820 &hf_gsm_map_om_MSC_S_EventList_handovers,
7821 &hf_gsm_map_om_MSC_S_EventList_ss,
7822 NULL
7825 static int
7826 dissect_gsm_map_om_MSC_S_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7827 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7828 gsm_map_om_MSC_S_EventList_bits, 5, hf_index, ett_gsm_map_om_MSC_S_EventList,
7829 NULL);
7831 return offset;
7835 static int * const gsm_map_om_MGW_EventList_bits[] = {
7836 &hf_gsm_map_om_MGW_EventList_context,
7837 NULL
7840 static int
7841 dissect_gsm_map_om_MGW_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7842 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7843 gsm_map_om_MGW_EventList_bits, 1, hf_index, ett_gsm_map_om_MGW_EventList,
7844 NULL);
7846 return offset;
7850 static int * const gsm_map_om_SGSN_EventList_bits[] = {
7851 &hf_gsm_map_om_SGSN_EventList_pdpContext,
7852 &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
7853 &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
7854 &hf_gsm_map_om_SGSN_EventList_mbmsContext,
7855 NULL
7858 static int
7859 dissect_gsm_map_om_SGSN_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7860 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7861 gsm_map_om_SGSN_EventList_bits, 4, hf_index, ett_gsm_map_om_SGSN_EventList,
7862 NULL);
7864 return offset;
7868 static int * const gsm_map_om_GGSN_EventList_bits[] = {
7869 &hf_gsm_map_om_GGSN_EventList_pdpContext,
7870 &hf_gsm_map_om_GGSN_EventList_mbmsContext,
7871 NULL
7874 static int
7875 dissect_gsm_map_om_GGSN_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7876 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7877 gsm_map_om_GGSN_EventList_bits, 2, hf_index, ett_gsm_map_om_GGSN_EventList,
7878 NULL);
7880 return offset;
7884 static int * const gsm_map_om_BMSC_EventList_bits[] = {
7885 &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
7886 NULL
7889 static int
7890 dissect_gsm_map_om_BMSC_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7891 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7892 gsm_map_om_BMSC_EventList_bits, 1, hf_index, ett_gsm_map_om_BMSC_EventList,
7893 NULL);
7895 return offset;
7899 static int * const gsm_map_om_MME_EventList_bits[] = {
7900 &hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest,
7901 &hf_gsm_map_om_MME_EventList_serviceRequestts,
7902 &hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach,
7903 &hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection,
7904 &hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion,
7905 &hf_gsm_map_om_MME_EventList_handover,
7906 NULL
7909 static int
7910 dissect_gsm_map_om_MME_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7911 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7912 gsm_map_om_MME_EventList_bits, 6, hf_index, ett_gsm_map_om_MME_EventList,
7913 NULL);
7915 return offset;
7919 static int * const gsm_map_om_SGW_EventList_bits[] = {
7920 &hf_gsm_map_om_SGW_EventList_pdn_connectionCreation,
7921 &hf_gsm_map_om_SGW_EventList_pdn_connectionTermination,
7922 &hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion,
7923 NULL
7926 static int
7927 dissect_gsm_map_om_SGW_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7928 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7929 gsm_map_om_SGW_EventList_bits, 3, hf_index, ett_gsm_map_om_SGW_EventList,
7930 NULL);
7932 return offset;
7936 static int * const gsm_map_om_PGW_EventList_bits[] = {
7937 &hf_gsm_map_om_PGW_EventList_pdn_connectionCreation,
7938 &hf_gsm_map_om_PGW_EventList_pdn_connectionTermination,
7939 &hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion,
7940 NULL
7943 static int
7944 dissect_gsm_map_om_PGW_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7945 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7946 gsm_map_om_PGW_EventList_bits, 3, hf_index, ett_gsm_map_om_PGW_EventList,
7947 NULL);
7949 return offset;
7953 static const ber_sequence_t gsm_map_om_TraceEventList_sequence[] = {
7954 { &hf_gsm_map_om_msc_s_List_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
7955 { &hf_gsm_map_om_mgw_List_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
7956 { &hf_gsm_map_om_sgsn_List_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_EventList },
7957 { &hf_gsm_map_om_ggsn_List_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_EventList },
7958 { &hf_gsm_map_om_bmsc_List_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_EventList },
7959 { &hf_gsm_map_om_mme_List_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MME_EventList },
7960 { &hf_gsm_map_om_sgw_List_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGW_EventList },
7961 { &hf_gsm_map_om_pgw_List_01, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PGW_EventList },
7962 { NULL, 0, 0, 0, NULL }
7965 static int
7966 dissect_gsm_map_om_TraceEventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7967 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7968 gsm_map_om_TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList);
7970 return offset;
7974 static const value_string gsm_map_om_JobType_vals[] = {
7975 { 0, "immediate-MDT-only" },
7976 { 1, "logged-MDT-only" },
7977 { 2, "trace-only" },
7978 { 3, "immediate-MDT-and-trace" },
7979 { 0, NULL }
7983 static int
7984 dissect_gsm_map_om_JobType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7985 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7986 NULL);
7988 return offset;
7992 static const ber_sequence_t gsm_map_om_CGI_List_sequence_of[1] = {
7993 { &hf_gsm_map_om_CGI_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
7996 static int
7997 dissect_gsm_map_om_CGI_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7998 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7999 gsm_map_om_CGI_List_sequence_of, hf_index, ett_gsm_map_om_CGI_List);
8001 return offset;
8005 static const ber_sequence_t gsm_map_om_E_UTRAN_CGI_List_sequence_of[1] = {
8006 { &hf_gsm_map_om_E_UTRAN_CGI_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_E_UTRAN_CGI },
8009 static int
8010 dissect_gsm_map_om_E_UTRAN_CGI_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8011 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8012 gsm_map_om_E_UTRAN_CGI_List_sequence_of, hf_index, ett_gsm_map_om_E_UTRAN_CGI_List);
8014 return offset;
8018 static const ber_sequence_t gsm_map_om_RoutingAreaId_List_sequence_of[1] = {
8019 { &hf_gsm_map_om_RoutingAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_RAIdentity },
8022 static int
8023 dissect_gsm_map_om_RoutingAreaId_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8024 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8025 gsm_map_om_RoutingAreaId_List_sequence_of, hf_index, ett_gsm_map_om_RoutingAreaId_List);
8027 return offset;
8031 static const ber_sequence_t gsm_map_om_LocationAreaId_List_sequence_of[1] = {
8032 { &hf_gsm_map_om_LocationAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LAIFixedLength },
8035 static int
8036 dissect_gsm_map_om_LocationAreaId_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8037 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8038 gsm_map_om_LocationAreaId_List_sequence_of, hf_index, ett_gsm_map_om_LocationAreaId_List);
8040 return offset;
8044 static const ber_sequence_t gsm_map_om_TrackingAreaId_List_sequence_of[1] = {
8045 { &hf_gsm_map_om_TrackingAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TA_Id },
8048 static int
8049 dissect_gsm_map_om_TrackingAreaId_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8050 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8051 gsm_map_om_TrackingAreaId_List_sequence_of, hf_index, ett_gsm_map_om_TrackingAreaId_List);
8053 return offset;
8057 static const ber_sequence_t gsm_map_om_AreaScope_sequence[] = {
8058 { &hf_gsm_map_om_cgi_List , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_CGI_List },
8059 { &hf_gsm_map_om_e_utran_cgi_List, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_E_UTRAN_CGI_List },
8060 { &hf_gsm_map_om_routingAreaId_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RoutingAreaId_List },
8061 { &hf_gsm_map_om_locationAreaId_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LocationAreaId_List },
8062 { &hf_gsm_map_om_trackingAreaId_List, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TrackingAreaId_List },
8063 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8064 { NULL, 0, 0, 0, NULL }
8067 static int
8068 dissect_gsm_map_om_AreaScope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8069 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8070 gsm_map_om_AreaScope_sequence, hf_index, ett_gsm_map_om_AreaScope);
8072 return offset;
8077 static int
8078 dissect_gsm_map_om_ListOfMeasurements(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8079 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8080 NULL);
8082 return offset;
8087 static int
8088 dissect_gsm_map_om_ReportingTrigger(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8089 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8090 NULL);
8092 return offset;
8096 static const value_string gsm_map_om_ReportInterval_vals[] = {
8097 { 0, "umts250ms" },
8098 { 1, "umts500ms" },
8099 { 2, "umts1000ms" },
8100 { 3, "umts2000ms" },
8101 { 4, "umts3000ms" },
8102 { 5, "umts4000ms" },
8103 { 6, "umts6000ms" },
8104 { 7, "umts8000ms" },
8105 { 8, "umts12000ms" },
8106 { 9, "umts16000ms" },
8107 { 10, "umts20000ms" },
8108 { 11, "umts24000ms" },
8109 { 12, "umts28000ms" },
8110 { 13, "umts32000ms" },
8111 { 14, "umts64000ms" },
8112 { 15, "lte120ms" },
8113 { 16, "lte240ms" },
8114 { 17, "lte480ms" },
8115 { 18, "lte640ms" },
8116 { 19, "lte1024ms" },
8117 { 20, "lte2048ms" },
8118 { 21, "lte5120ms" },
8119 { 22, "lte10240ms" },
8120 { 23, "lte1min" },
8121 { 24, "lte6min" },
8122 { 25, "lte12min" },
8123 { 26, "lte30min" },
8124 { 27, "lte60min" },
8125 { 0, NULL }
8129 static int
8130 dissect_gsm_map_om_ReportInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8131 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8132 NULL);
8134 return offset;
8138 static const value_string gsm_map_om_ReportAmount_vals[] = {
8139 { 0, "d1" },
8140 { 1, "d2" },
8141 { 2, "d4" },
8142 { 3, "d8" },
8143 { 4, "d16" },
8144 { 5, "d32" },
8145 { 6, "d64" },
8146 { 7, "infinity" },
8147 { 0, NULL }
8151 static int
8152 dissect_gsm_map_om_ReportAmount(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8153 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8154 NULL);
8156 return offset;
8161 static int
8162 dissect_gsm_map_om_EventThresholdRSRP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8163 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8164 NULL);
8166 return offset;
8171 static int
8172 dissect_gsm_map_om_EventThresholdRSRQ(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8173 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8174 NULL);
8176 return offset;
8180 static const value_string gsm_map_om_LoggingInterval_vals[] = {
8181 { 0, "d1dot28" },
8182 { 1, "d2dot56" },
8183 { 2, "d5dot12" },
8184 { 3, "d10dot24" },
8185 { 4, "d20dot48" },
8186 { 5, "d30dot72" },
8187 { 6, "d40dot96" },
8188 { 7, "d61dot44" },
8189 { 0, NULL }
8193 static int
8194 dissect_gsm_map_om_LoggingInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8195 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8196 NULL);
8198 return offset;
8202 static const value_string gsm_map_om_LoggingDuration_vals[] = {
8203 { 0, "d600sec" },
8204 { 1, "d1200sec" },
8205 { 2, "d2400sec" },
8206 { 3, "d3600sec" },
8207 { 4, "d5400sec" },
8208 { 5, "d7200sec" },
8209 { 0, NULL }
8213 static int
8214 dissect_gsm_map_om_LoggingDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8215 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8216 NULL);
8218 return offset;
8222 static const value_string gsm_map_om_PeriodUMTS_vals[] = {
8223 { 0, "d250ms" },
8224 { 1, "d500ms" },
8225 { 2, "d1000ms" },
8226 { 3, "d2000ms" },
8227 { 4, "d3000ms" },
8228 { 5, "d4000ms" },
8229 { 6, "d6000ms" },
8230 { 7, "d8000ms" },
8231 { 8, "d12000ms" },
8232 { 9, "d16000ms" },
8233 { 10, "d20000ms" },
8234 { 11, "d24000ms" },
8235 { 12, "d28000ms" },
8236 { 13, "d32000ms" },
8237 { 14, "d64000ms" },
8238 { 0, NULL }
8242 static int
8243 dissect_gsm_map_om_PeriodUMTS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8244 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8245 NULL);
8247 return offset;
8251 static const value_string gsm_map_om_PeriodLTE_vals[] = {
8252 { 0, "d1024ms" },
8253 { 1, "d1280ms" },
8254 { 2, "d2048ms" },
8255 { 3, "d2560ms" },
8256 { 4, "d5120ms" },
8257 { 5, "d10240ms" },
8258 { 6, "d1min" },
8259 { 0, NULL }
8263 static int
8264 dissect_gsm_map_om_PeriodLTE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8265 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8266 NULL);
8268 return offset;
8273 static int
8274 dissect_gsm_map_om_PositioningMethod(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8275 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8276 NULL);
8278 return offset;
8283 static int
8284 dissect_gsm_map_om_MeasurementQuantity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8285 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8286 NULL);
8288 return offset;
8293 static int
8294 dissect_gsm_map_om_EventThreshold1F(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8295 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8296 NULL);
8298 return offset;
8303 static int
8304 dissect_gsm_map_om_EventThreshold1I(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8305 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8306 NULL);
8308 return offset;
8312 static const ber_sequence_t gsm_map_om_MDT_Allowed_PLMNId_List_sequence_of[1] = {
8313 { &hf_gsm_map_om_MDT_Allowed_PLMNId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id },
8316 static int
8317 dissect_gsm_map_om_MDT_Allowed_PLMNId_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8318 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8319 gsm_map_om_MDT_Allowed_PLMNId_List_sequence_of, hf_index, ett_gsm_map_om_MDT_Allowed_PLMNId_List);
8321 return offset;
8325 static const ber_sequence_t gsm_map_om_MDT_Configuration_sequence[] = {
8326 { &hf_gsm_map_om_jobType , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_JobType },
8327 { &hf_gsm_map_om_areaScope, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_AreaScope },
8328 { &hf_gsm_map_om_listOfMeasurements, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_ListOfMeasurements },
8329 { &hf_gsm_map_om_reportingTrigger, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ReportingTrigger },
8330 { &hf_gsm_map_om_reportInterval, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_ReportInterval },
8331 { &hf_gsm_map_om_reportAmount, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ReportAmount },
8332 { &hf_gsm_map_om_eventThresholdRSRP, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_EventThresholdRSRP },
8333 { &hf_gsm_map_om_eventThresholdRSRQ, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThresholdRSRQ },
8334 { &hf_gsm_map_om_loggingInterval, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LoggingInterval },
8335 { &hf_gsm_map_om_loggingDuration, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LoggingDuration },
8336 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8337 { &hf_gsm_map_om_measurementPeriodUMTS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodUMTS },
8338 { &hf_gsm_map_om_measurementPeriodLTE, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodLTE },
8339 { &hf_gsm_map_om_collectionPeriodRRM_UMTS, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodUMTS },
8340 { &hf_gsm_map_om_collectionPeriodRRM_LTE, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodLTE },
8341 { &hf_gsm_map_om_positioningMethod, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PositioningMethod },
8342 { &hf_gsm_map_om_measurementQuantity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MeasurementQuantity },
8343 { &hf_gsm_map_om_eventThreshold1F, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThreshold1F },
8344 { &hf_gsm_map_om_eventThreshold1I, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThreshold1I },
8345 { &hf_gsm_map_om_mdt_Allowed_PLMN_List, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MDT_Allowed_PLMNId_List },
8346 { NULL, 0, 0, 0, NULL }
8349 static int
8350 dissect_gsm_map_om_MDT_Configuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8351 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8352 gsm_map_om_MDT_Configuration_sequence, hf_index, ett_gsm_map_om_MDT_Configuration);
8354 return offset;
8358 static const ber_sequence_t gsm_map_om_ActivateTraceModeArg_sequence[] = {
8359 { &hf_gsm_map_om_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
8360 { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
8361 { &hf_gsm_map_om_traceType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
8362 { &hf_gsm_map_om_omc_Id , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
8363 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8364 { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
8365 { &hf_gsm_map_om_traceDepthList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthList },
8366 { &hf_gsm_map_om_traceNE_TypeList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceNE_TypeList },
8367 { &hf_gsm_map_om_traceInterfaceList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceInterfaceList },
8368 { &hf_gsm_map_om_traceEventList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceEventList },
8369 { &hf_gsm_map_om_traceCollectionEntity, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
8370 { &hf_gsm_map_om_mdt_Configuration, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MDT_Configuration },
8371 { NULL, 0, 0, 0, NULL }
8374 static int
8375 dissect_gsm_map_om_ActivateTraceModeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8376 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8377 gsm_map_om_ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg);
8379 return offset;
8384 static int
8385 dissect_gsm_map_om_TraceRecordingSessionReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8386 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8387 NULL);
8389 return offset;
8393 static const ber_sequence_t gsm_map_om_TracePropagationList_sequence[] = {
8394 { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
8395 { &hf_gsm_map_om_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
8396 { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
8397 { &hf_gsm_map_om_traceRecordingSessionReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceRecordingSessionReference },
8398 { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
8399 { &hf_gsm_map_om_rnc_InterfaceList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
8400 { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
8401 { &hf_gsm_map_om_msc_s_InterfaceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
8402 { &hf_gsm_map_om_msc_s_EventList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
8403 { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
8404 { &hf_gsm_map_om_mgw_InterfaceList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
8405 { &hf_gsm_map_om_mgw_EventList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
8406 { &hf_gsm_map_om_rnc_TraceDepthExtension, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
8407 { &hf_gsm_map_om_msc_s_TraceDepthExtension, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
8408 { &hf_gsm_map_om_mgw_TraceDepthExtension, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
8409 { NULL, 0, 0, 0, NULL }
8412 static int
8413 dissect_gsm_map_om_TracePropagationList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8414 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8415 gsm_map_om_TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList);
8417 return offset;
8422 static int
8423 dissect_gsm_map_om_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8424 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
8426 return offset;
8430 static const ber_sequence_t gsm_map_om_ActivateTraceModeRes_sequence[] = {
8431 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8432 { &hf_gsm_map_om_traceSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_NULL },
8433 { NULL, 0, 0, 0, NULL }
8436 static int
8437 dissect_gsm_map_om_ActivateTraceModeRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8438 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8439 gsm_map_om_ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes);
8441 return offset;
8445 static const ber_sequence_t gsm_map_om_DeactivateTraceModeArg_sequence[] = {
8446 { &hf_gsm_map_om_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
8447 { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
8448 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8449 { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
8450 { NULL, 0, 0, 0, NULL }
8453 static int
8454 dissect_gsm_map_om_DeactivateTraceModeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8455 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8456 gsm_map_om_DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg);
8458 return offset;
8462 static const ber_sequence_t gsm_map_om_DeactivateTraceModeRes_sequence[] = {
8463 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8464 { NULL, 0, 0, 0, NULL }
8467 static int
8468 dissect_gsm_map_om_DeactivateTraceModeRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8469 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8470 gsm_map_om_DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes);
8472 return offset;
8476 /* --- Module MAP-MS-DataTypes --- --- --- */
8479 static int * const gsm_map_ms_SupportedCamelPhases_bits[] = {
8480 &hf_gsm_map_ms_SupportedCamelPhases_phase1,
8481 &hf_gsm_map_ms_SupportedCamelPhases_phase2,
8482 &hf_gsm_map_ms_SupportedCamelPhases_phase3,
8483 &hf_gsm_map_ms_SupportedCamelPhases_phase4,
8484 NULL
8488 dissect_gsm_map_ms_SupportedCamelPhases(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8489 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8490 gsm_map_ms_SupportedCamelPhases_bits, 4, hf_index, ett_gsm_map_ms_SupportedCamelPhases,
8491 NULL);
8493 return offset;
8498 static int
8499 dissect_gsm_map_ms_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8500 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
8502 return offset;
8506 static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = {
8507 { 0, "basicISTSupported" },
8508 { 1, "istCommandSupported" },
8509 { 0, NULL }
8513 static int
8514 dissect_gsm_map_ms_IST_SupportIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8515 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8516 NULL);
8518 return offset;
8523 static int
8524 dissect_gsm_map_ms_AgeIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8525 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8526 NULL);
8528 return offset;
8532 static const value_string gsm_map_ms_SuperChargerInfo_vals[] = {
8533 { 0, "sendSubscriberData" },
8534 { 1, "subscriberDataStored" },
8535 { 0, NULL }
8538 static const ber_choice_t gsm_map_ms_SuperChargerInfo_choice[] = {
8539 { 0, &hf_gsm_map_ms_sendSubscriberData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8540 { 1, &hf_gsm_map_ms_subscriberDataStored, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
8541 { 0, NULL, 0, 0, 0, NULL }
8544 static int
8545 dissect_gsm_map_ms_SuperChargerInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8546 offset = dissect_ber_choice(actx, tree, tvb, offset,
8547 gsm_map_ms_SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo,
8548 NULL);
8550 return offset;
8554 static int * const gsm_map_ms_SupportedLCS_CapabilitySets_bits[] = {
8555 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
8556 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
8557 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
8558 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
8559 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
8560 NULL
8563 static int
8564 dissect_gsm_map_ms_SupportedLCS_CapabilitySets(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8565 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8566 gsm_map_ms_SupportedLCS_CapabilitySets_bits, 5, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets,
8567 NULL);
8569 return offset;
8573 static int * const gsm_map_ms_OfferedCamel4CSIs_bits[] = {
8574 &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
8575 &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
8576 &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
8577 &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
8578 &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
8579 &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
8580 &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
8581 NULL
8584 static int
8585 dissect_gsm_map_ms_OfferedCamel4CSIs(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8586 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8587 gsm_map_ms_OfferedCamel4CSIs_bits, 7, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs,
8588 NULL);
8590 return offset;
8594 static int * const gsm_map_ms_SupportedRAT_Types_bits[] = {
8595 &hf_gsm_map_ms_SupportedRAT_Types_utran,
8596 &hf_gsm_map_ms_SupportedRAT_Types_geran,
8597 &hf_gsm_map_ms_SupportedRAT_Types_gan,
8598 &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution,
8599 &hf_gsm_map_ms_SupportedRAT_Types_e_utran,
8600 &hf_gsm_map_ms_SupportedRAT_Types_nb_iot,
8601 NULL
8604 static int
8605 dissect_gsm_map_ms_SupportedRAT_Types(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8606 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8607 gsm_map_ms_SupportedRAT_Types_bits, 6, hf_index, ett_gsm_map_ms_SupportedRAT_Types,
8608 NULL);
8610 return offset;
8614 static const ber_sequence_t gsm_map_ms_VLR_Capability_sequence[] = {
8615 { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
8616 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8617 { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8618 { &hf_gsm_map_ms_istSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
8619 { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
8620 { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8621 { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
8622 { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
8623 { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
8624 { &hf_gsm_map_ms_longGroupID_Supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8625 { &hf_gsm_map_ms_mtRoamingForwardingSupported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8626 { &hf_gsm_map_ms_msisdn_lessOperation_Supported, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8627 { &hf_gsm_map_ms_reset_ids_Supported, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8628 { NULL, 0, 0, 0, NULL }
8631 static int
8632 dissect_gsm_map_ms_VLR_Capability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8633 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8634 gsm_map_ms_VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability);
8636 return offset;
8640 static const ber_sequence_t gsm_map_ms_ADD_Info_sequence[] = {
8641 { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
8642 { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8643 { NULL, 0, 0, 0, NULL }
8646 static int
8647 dissect_gsm_map_ms_ADD_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8648 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8649 gsm_map_ms_ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info);
8651 return offset;
8656 static int
8657 dissect_gsm_map_ms_LAC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8658 tvbuff_t *parameter_tvb = NULL;
8659 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, -1,
8660 &parameter_tvb);
8662 if (parameter_tvb) {
8663 actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
8667 return offset;
8671 static const value_string gsm_map_ms_LocationArea_vals[] = {
8672 { 0, "laiFixedLength" },
8673 { 1, "lac" },
8674 { 0, NULL }
8677 static const ber_choice_t gsm_map_ms_LocationArea_choice[] = {
8678 { 0, &hf_gsm_map_ms_laiFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
8679 { 1, &hf_gsm_map_ms_lac , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LAC },
8680 { 0, NULL, 0, 0, 0, NULL }
8683 static int
8684 dissect_gsm_map_ms_LocationArea(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8685 offset = dissect_ber_choice(actx, tree, tvb, offset,
8686 gsm_map_ms_LocationArea_choice, hf_index, ett_gsm_map_ms_LocationArea,
8687 NULL);
8689 return offset;
8693 static const ber_sequence_t gsm_map_ms_PagingArea_sequence_of[1] = {
8694 { &hf_gsm_map_ms_PagingArea_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LocationArea },
8697 static int
8698 dissect_gsm_map_ms_PagingArea(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8699 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8700 gsm_map_ms_PagingArea_sequence_of, hf_index, ett_gsm_map_ms_PagingArea);
8702 return offset;
8706 static const ber_sequence_t gsm_map_ms_EPLMN_List_sequence_of[1] = {
8707 { &hf_gsm_map_ms_EPLMN_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id },
8710 static int
8711 dissect_gsm_map_ms_EPLMN_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8712 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8713 gsm_map_ms_EPLMN_List_sequence_of, hf_index, ett_gsm_map_ms_EPLMN_List);
8715 return offset;
8719 static const ber_sequence_t gsm_map_ms_UpdateLocationArg_sequence[] = {
8720 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
8721 { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8722 { &hf_gsm_map_ms_vlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8723 { &hf_gsm_map_ms_lmsi , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
8724 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8725 { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
8726 { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8727 { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8728 { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
8729 { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
8730 { &hf_gsm_map_ms_pagingArea, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea },
8731 { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8732 { &hf_gsm_map_ms_restorationIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8733 { &hf_gsm_map_ms_eplmn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPLMN_List },
8734 { &hf_gsm_map_ms_mme_DiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
8735 { NULL, 0, 0, 0, NULL }
8738 static int
8739 dissect_gsm_map_ms_UpdateLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8740 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8741 gsm_map_ms_UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg);
8743 return offset;
8747 static const ber_sequence_t gsm_map_ms_UpdateLocationRes_sequence[] = {
8748 { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8749 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8750 { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8751 { &hf_gsm_map_ms_pagingArea_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8752 { NULL, 0, 0, 0, NULL }
8755 static int
8756 dissect_gsm_map_ms_UpdateLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8757 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8758 gsm_map_ms_UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes);
8760 return offset;
8764 static const value_string gsm_map_ms_CancellationType_vals[] = {
8765 { 0, "updateProcedure" },
8766 { 1, "subscriptionWithdraw" },
8767 { 2, "initialAttachProcedure" },
8768 { 0, NULL }
8772 static int
8773 dissect_gsm_map_ms_CancellationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8774 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8775 NULL);
8777 return offset;
8781 static const value_string gsm_map_ms_TypeOfUpdate_vals[] = {
8782 { 0, "sgsn-change" },
8783 { 1, "mme-change" },
8784 { 0, NULL }
8788 static int
8789 dissect_gsm_map_ms_TypeOfUpdate(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8790 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8791 NULL);
8793 return offset;
8797 static const ber_sequence_t gsm_map_ms_CancelLocationArg_U_sequence[] = {
8798 { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
8799 { &hf_gsm_map_ms_cancellationType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CancellationType },
8800 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8801 { &hf_gsm_map_ms_typeOfUpdate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TypeOfUpdate },
8802 { &hf_gsm_map_ms_mtrf_SupportedAndAuthorized, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8803 { &hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8804 { &hf_gsm_map_ms_newMSC_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8805 { &hf_gsm_map_ms_newVLR_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8806 { &hf_gsm_map_ms_new_lmsi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
8807 { &hf_gsm_map_ms_reattach_Required, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8808 { NULL, 0, 0, 0, NULL }
8811 static int
8812 dissect_gsm_map_ms_CancelLocationArg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8813 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8814 gsm_map_ms_CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U);
8816 return offset;
8821 static int
8822 dissect_gsm_map_ms_CancelLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8823 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8824 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_CancelLocationArg_U);
8826 return offset;
8830 static const ber_sequence_t gsm_map_ms_CancelLocationRes_sequence[] = {
8831 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8832 { NULL, 0, 0, 0, NULL }
8835 static int
8836 dissect_gsm_map_ms_CancelLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8837 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8838 gsm_map_ms_CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes);
8840 return offset;
8846 dissect_gsm_map_ms_GeographicalInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8847 tvbuff_t *parameter_tvb;
8848 proto_tree *subtree;
8849 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8850 &parameter_tvb);
8852 if (!parameter_tvb)
8853 return offset;
8855 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
8856 dissect_geographical_description(parameter_tvb, actx->pinfo, subtree);
8859 return offset;
8864 static int
8865 dissect_gsm_map_ms_LocationNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8866 tvbuff_t *parameter_tvb;
8867 proto_tree *subtree;
8868 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8869 &parameter_tvb);
8871 if (!parameter_tvb)
8872 return offset;
8874 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LocationNumber);
8875 dissect_isup_location_number_parameter(parameter_tvb, actx->pinfo, subtree, NULL);
8878 return offset;
8884 dissect_gsm_map_ms_LSAIdentity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8885 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8886 NULL);
8888 return offset;
8893 static int
8894 dissect_gsm_map_ms_GeodeticInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8895 tvbuff_t *parameter_tvb;
8896 proto_tree *subtree;
8897 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8898 &parameter_tvb);
8900 if (!parameter_tvb)
8901 return offset;
8903 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeodeticInformation);
8904 dissect_isup_calling_geodetic_location_parameter(parameter_tvb, actx->pinfo, subtree, NULL);
8907 return offset;
8911 static const ber_sequence_t gsm_map_ms_LocationInformationEPS_sequence[] = {
8912 { &hf_gsm_map_ms_e_utranCellGlobalIdentity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_E_UTRAN_CGI },
8913 { &hf_gsm_map_ms_trackingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TA_Id },
8914 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8915 { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
8916 { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
8917 { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8918 { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
8919 { &hf_gsm_map_ms_mme_Name , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
8920 { NULL, 0, 0, 0, NULL }
8923 static int
8924 dissect_gsm_map_ms_LocationInformationEPS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8925 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8926 gsm_map_ms_LocationInformationEPS_sequence, hf_index, ett_gsm_map_ms_LocationInformationEPS);
8928 return offset;
8933 static int
8934 dissect_gsm_map_ms_CSG_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8935 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8936 NULL, 0, hf_index, -1,
8937 NULL);
8939 return offset;
8944 static int
8945 dissect_gsm_map_ms_OCTET_STRING_SIZE_1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8946 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8947 NULL);
8949 return offset;
8953 static const ber_sequence_t gsm_map_ms_UserCSGInformation_sequence[] = {
8954 { &hf_gsm_map_ms_csg_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_Id },
8955 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8956 { &hf_gsm_map_ms_accessMode, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OCTET_STRING_SIZE_1 },
8957 { &hf_gsm_map_ms_cmi , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OCTET_STRING_SIZE_1 },
8958 { NULL, 0, 0, 0, NULL }
8961 static int
8962 dissect_gsm_map_ms_UserCSGInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8963 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8964 gsm_map_ms_UserCSGInformation_sequence, hf_index, ett_gsm_map_ms_UserCSGInformation);
8966 return offset;
8970 static const ber_sequence_t gsm_map_ms_LocationInformation_sequence[] = {
8971 { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AgeOfLocationInformation },
8972 { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
8973 { &hf_gsm_map_ms_vlr_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8974 { &hf_gsm_map_ms_locationNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationNumber },
8975 { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
8976 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8977 { &hf_gsm_map_ms_selectedLSA_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
8978 { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8979 { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
8980 { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8981 { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8982 { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS },
8983 { &hf_gsm_map_ms_userCSGInformation, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UserCSGInformation },
8984 { NULL, 0, 0, 0, NULL }
8988 dissect_gsm_map_ms_LocationInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8989 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8990 gsm_map_ms_LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation);
8992 return offset;
8996 static const ber_sequence_t gsm_map_ms_LocationInformationGPRS_sequence[] = {
8997 { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
8998 { &hf_gsm_map_ms_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_RAIdentity },
8999 { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
9000 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9001 { &hf_gsm_map_ms_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
9002 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9003 { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9004 { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
9005 { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9006 { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
9007 { &hf_gsm_map_ms_userCSGInformation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UserCSGInformation },
9008 { NULL, 0, 0, 0, NULL }
9011 static int
9012 dissect_gsm_map_ms_LocationInformationGPRS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9013 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9014 gsm_map_ms_LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS);
9016 return offset;
9020 static const ber_sequence_t gsm_map_ms_PurgeMS_Arg_U_sequence[] = {
9021 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
9022 { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9023 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9024 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9025 { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
9026 { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
9027 { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS },
9028 { NULL, 0, 0, 0, NULL }
9031 static int
9032 dissect_gsm_map_ms_PurgeMS_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9033 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9034 gsm_map_ms_PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U);
9036 return offset;
9041 static int
9042 dissect_gsm_map_ms_PurgeMS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9043 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9044 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PurgeMS_Arg_U);
9046 return offset;
9050 static const ber_sequence_t gsm_map_ms_PurgeMS_Res_sequence[] = {
9051 { &hf_gsm_map_ms_freezeTMSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9052 { &hf_gsm_map_ms_freezeP_TMSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9053 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9054 { &hf_gsm_map_ms_freezeM_TMSI, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9055 { NULL, 0, 0, 0, NULL }
9058 static int
9059 dissect_gsm_map_ms_PurgeMS_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9060 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9061 gsm_map_ms_PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res);
9063 return offset;
9068 static int
9069 dissect_gsm_map_ms_NumberOfRequestedVectors(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9070 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9071 NULL);
9073 return offset;
9078 static int
9079 dissect_gsm_map_ms_HopCounter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9080 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9081 NULL);
9083 return offset;
9087 static const ber_sequence_t gsm_map_ms_SendIdentificationArg_sequence[] = {
9088 { &hf_gsm_map_ms_tmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TMSI },
9089 { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
9090 { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9091 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9092 { &hf_gsm_map_ms_msc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9093 { &hf_gsm_map_ms_previous_LAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
9094 { &hf_gsm_map_ms_hopCounter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_HopCounter },
9095 { &hf_gsm_map_ms_mtRoamingForwardingSupported, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9096 { &hf_gsm_map_ms_newVLR_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9097 { &hf_gsm_map_ms_new_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
9098 { NULL, 0, 0, 0, NULL }
9101 static int
9102 dissect_gsm_map_ms_SendIdentificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9103 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9104 gsm_map_ms_SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg);
9106 return offset;
9111 static int
9112 dissect_gsm_map_ms_RAND(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9113 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9114 NULL);
9116 return offset;
9121 static int
9122 dissect_gsm_map_ms_SRES(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9123 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9124 NULL);
9126 return offset;
9131 static int
9132 dissect_gsm_map_ms_Kc(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9133 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9134 NULL);
9136 return offset;
9140 static const ber_sequence_t gsm_map_ms_AuthenticationTriplet_sequence[] = {
9141 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
9142 { &hf_gsm_map_ms_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SRES },
9143 { &hf_gsm_map_ms_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
9144 { NULL, 0, 0, 0, NULL }
9147 static int
9148 dissect_gsm_map_ms_AuthenticationTriplet(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9149 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9150 gsm_map_ms_AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet);
9152 return offset;
9156 static const ber_sequence_t gsm_map_ms_TripletList_sequence_of[1] = {
9157 { &hf_gsm_map_ms_TripletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationTriplet },
9160 static int
9161 dissect_gsm_map_ms_TripletList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9162 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9163 gsm_map_ms_TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList);
9165 return offset;
9170 static int
9171 dissect_gsm_map_ms_XRES(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9172 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9173 NULL);
9175 return offset;
9180 static int
9181 dissect_gsm_map_ms_CK(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9182 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9183 NULL);
9185 return offset;
9190 static int
9191 dissect_gsm_map_ms_IK(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9192 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9193 NULL);
9195 return offset;
9200 static int
9201 dissect_gsm_map_ms_AUTN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9202 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9203 NULL);
9205 return offset;
9209 static const ber_sequence_t gsm_map_ms_AuthenticationQuintuplet_sequence[] = {
9210 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
9211 { &hf_gsm_map_ms_xres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
9212 { &hf_gsm_map_ms_ck , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
9213 { &hf_gsm_map_ms_ik , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
9214 { &hf_gsm_map_ms_autn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
9215 { NULL, 0, 0, 0, NULL }
9218 static int
9219 dissect_gsm_map_ms_AuthenticationQuintuplet(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9220 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9221 gsm_map_ms_AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet);
9223 return offset;
9227 static const ber_sequence_t gsm_map_ms_QuintupletList_sequence_of[1] = {
9228 { &hf_gsm_map_ms_QuintupletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationQuintuplet },
9231 static int
9232 dissect_gsm_map_ms_QuintupletList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9233 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9234 gsm_map_ms_QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList);
9236 return offset;
9240 static const value_string gsm_map_ms_AuthenticationSetList_vals[] = {
9241 { 0, "tripletList" },
9242 { 1, "quintupletList" },
9243 { 0, NULL }
9246 static const ber_choice_t gsm_map_ms_AuthenticationSetList_choice[] = {
9247 { 0, &hf_gsm_map_ms_tripletList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
9248 { 1, &hf_gsm_map_ms_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
9249 { 0, NULL, 0, 0, 0, NULL }
9252 static int
9253 dissect_gsm_map_ms_AuthenticationSetList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9254 offset = dissect_ber_choice(actx, tree, tvb, offset,
9255 gsm_map_ms_AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList,
9256 NULL);
9258 return offset;
9263 static int
9264 dissect_gsm_map_ms_Cksn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9265 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9266 NULL);
9268 return offset;
9272 static const ber_sequence_t gsm_map_ms_GSM_SecurityContextData_sequence[] = {
9273 { &hf_gsm_map_ms_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
9274 { &hf_gsm_map_ms_cksn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Cksn },
9275 { NULL, 0, 0, 0, NULL }
9278 static int
9279 dissect_gsm_map_ms_GSM_SecurityContextData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9280 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9281 gsm_map_ms_GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData);
9283 return offset;
9288 static int
9289 dissect_gsm_map_ms_KSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9290 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9291 NULL);
9293 return offset;
9297 static const ber_sequence_t gsm_map_ms_UMTS_SecurityContextData_sequence[] = {
9298 { &hf_gsm_map_ms_ck , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
9299 { &hf_gsm_map_ms_ik , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
9300 { &hf_gsm_map_ms_ksi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KSI },
9301 { NULL, 0, 0, 0, NULL }
9304 static int
9305 dissect_gsm_map_ms_UMTS_SecurityContextData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9306 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9307 gsm_map_ms_UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData);
9309 return offset;
9313 static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = {
9314 { 0, "gsm-SecurityContextData" },
9315 { 1, "umts-SecurityContextData" },
9316 { 0, NULL }
9319 static const ber_choice_t gsm_map_ms_CurrentSecurityContext_choice[] = {
9320 { 0, &hf_gsm_map_ms_gsm_SecurityContextData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSM_SecurityContextData },
9321 { 1, &hf_gsm_map_ms_umts_SecurityContextData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UMTS_SecurityContextData },
9322 { 0, NULL, 0, 0, 0, NULL }
9325 static int
9326 dissect_gsm_map_ms_CurrentSecurityContext(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9327 offset = dissect_ber_choice(actx, tree, tvb, offset,
9328 gsm_map_ms_CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext,
9329 NULL);
9331 return offset;
9335 static const ber_sequence_t gsm_map_ms_SendIdentificationRes_U_sequence[] = {
9336 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
9337 { &hf_gsm_map_ms_authenticationSetList, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_AuthenticationSetList },
9338 { &hf_gsm_map_ms_currentSecurityContext, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_CurrentSecurityContext },
9339 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9340 { &hf_gsm_map_ms_lastUsedLtePLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
9341 { &hf_gsm_map_ms_mtCallPendingFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9342 { NULL, 0, 0, 0, NULL }
9345 static int
9346 dissect_gsm_map_ms_SendIdentificationRes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9347 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9348 gsm_map_ms_SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U);
9350 return offset;
9355 static int
9356 dissect_gsm_map_ms_SendIdentificationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9357 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9358 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_SendIdentificationRes_U);
9360 return offset;
9365 static int
9366 dissect_gsm_map_ms_AUTS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9367 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9368 NULL);
9370 return offset;
9374 static const value_string gsm_map_ms_FailureCause_vals[] = {
9375 { 0, "wrongUserResponse" },
9376 { 1, "wrongNetworkSignature" },
9377 { 0, NULL }
9381 static int
9382 dissect_gsm_map_ms_FailureCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9383 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9384 NULL);
9386 return offset;
9391 static int
9392 dissect_gsm_map_ms_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9393 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
9395 return offset;
9399 static const value_string gsm_map_ms_AccessType_vals[] = {
9400 { 0, "call" },
9401 { 1, "emergencyCall" },
9402 { 2, "locationUpdating" },
9403 { 3, "supplementaryService" },
9404 { 4, "shortMessage" },
9405 { 5, "gprsAttach" },
9406 { 6, "routingAreaUpdating" },
9407 { 7, "serviceRequest" },
9408 { 8, "pdpContextActivation" },
9409 { 9, "pdpContextDeactivation" },
9410 { 10, "gprsDetach" },
9411 { 0, NULL }
9415 static int
9416 dissect_gsm_map_ms_AccessType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9417 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9418 NULL);
9420 return offset;
9424 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportArg_sequence[] = {
9425 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
9426 { &hf_gsm_map_ms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_FailureCause },
9427 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9428 { &hf_gsm_map_ms_re_attempt, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BOOLEAN },
9429 { &hf_gsm_map_ms_accessType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AccessType },
9430 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
9431 { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9432 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9433 { NULL, 0, 0, 0, NULL }
9436 static int
9437 dissect_gsm_map_ms_AuthenticationFailureReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9438 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9439 gsm_map_ms_AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg);
9441 return offset;
9445 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportRes_sequence[] = {
9446 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9447 { NULL, 0, 0, 0, NULL }
9450 static int
9451 dissect_gsm_map_ms_AuthenticationFailureReportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9452 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9453 gsm_map_ms_AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes);
9455 return offset;
9459 static int * const gsm_map_ms_SupportedFeatures_bits[] = {
9460 &hf_gsm_map_ms_SupportedFeatures_odb_all_apn,
9461 &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN,
9462 &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN,
9463 &hf_gsm_map_ms_SupportedFeatures_odb_all_og,
9464 &hf_gsm_map_ms_SupportedFeatures_odb_all_international_og,
9465 &hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country,
9466 &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og,
9467 &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country,
9468 &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country,
9469 &hf_gsm_map_ms_SupportedFeatures_regSub,
9470 &hf_gsm_map_ms_SupportedFeatures_trace,
9471 &hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep,
9472 &hf_gsm_map_ms_SupportedFeatures_lcs_universal,
9473 &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated,
9474 &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated,
9475 &hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator,
9476 &hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType,
9477 &hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS,
9478 &hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation,
9479 &hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation,
9480 &hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty,
9481 &hf_gsm_map_ms_SupportedFeatures_sm_mo_pp,
9482 &hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls,
9483 &hf_gsm_map_ms_SupportedFeatures_baoc,
9484 &hf_gsm_map_ms_SupportedFeatures_boic,
9485 &hf_gsm_map_ms_SupportedFeatures_boicExHC,
9486 &hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval,
9487 &hf_gsm_map_ms_SupportedFeatures_additionalMsisdn,
9488 &hf_gsm_map_ms_SupportedFeatures_smsInMME,
9489 &hf_gsm_map_ms_SupportedFeatures_smsInSGSN,
9490 &hf_gsm_map_ms_SupportedFeatures_ue_Reachability_Notification,
9491 &hf_gsm_map_ms_SupportedFeatures_state_Location_Information_Retrieval,
9492 &hf_gsm_map_ms_SupportedFeatures_partialPurge,
9493 &hf_gsm_map_ms_SupportedFeatures_gddInSGSN,
9494 &hf_gsm_map_ms_SupportedFeatures_sgsnCAMELCapability,
9495 &hf_gsm_map_ms_SupportedFeatures_pcscf_Restoration,
9496 &hf_gsm_map_ms_SupportedFeatures_dedicatedCoreNetworks,
9497 &hf_gsm_map_ms_SupportedFeatures_non_IP_PDN_Type_APNs,
9498 &hf_gsm_map_ms_SupportedFeatures_non_IP_PDP_Type_APNs,
9499 &hf_gsm_map_ms_SupportedFeatures_nrAsSecondaryRAT,
9500 NULL
9503 static int
9504 dissect_gsm_map_ms_SupportedFeatures(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9505 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9506 gsm_map_ms_SupportedFeatures_bits, 40, hf_index, ett_gsm_map_ms_SupportedFeatures,
9507 NULL);
9509 return offset;
9513 static int * const gsm_map_ms_Ext_SupportedFeatures_bits[] = {
9514 &hf_gsm_map_ms_Ext_SupportedFeatures_unlicensedSpectrumAsSecondaryRAT,
9515 NULL
9518 static int
9519 dissect_gsm_map_ms_Ext_SupportedFeatures(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9520 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9521 gsm_map_ms_Ext_SupportedFeatures_bits, 1, hf_index, ett_gsm_map_ms_Ext_SupportedFeatures,
9522 NULL);
9524 return offset;
9528 static const ber_sequence_t gsm_map_ms_SGSN_Capability_sequence[] = {
9529 { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9530 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9531 { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
9532 { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9533 { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
9534 { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
9535 { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
9536 { &hf_gsm_map_ms_smsCallBarringSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9537 { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
9538 { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures },
9539 { &hf_gsm_map_ms_t_adsDataRetrieval, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9540 { &hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
9541 { &hf_gsm_map_ms_cancellationTypeInitialAttach, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9542 { &hf_gsm_map_ms_msisdn_lessOperation_Supported, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9543 { &hf_gsm_map_ms_updateofHomogeneousSupportOfIMSVoiceOverPSSessions, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9544 { &hf_gsm_map_ms_reset_ids_Supported, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9545 { &hf_gsm_map_ms_ext_SupportedFeatures, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SupportedFeatures },
9546 { NULL, 0, 0, 0, NULL }
9549 static int
9550 dissect_gsm_map_ms_SGSN_Capability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9551 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9552 gsm_map_ms_SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability);
9554 return offset;
9559 static int
9560 dissect_gsm_map_ms_APN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9561 tvbuff_t *parameter_tvb;
9562 proto_tree *subtree;
9563 const uint8_t *apn_str = NULL;
9565 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9566 &parameter_tvb);
9568 if (!parameter_tvb)
9569 return offset;
9571 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_apn_str);
9572 proto_tree_add_item_ret_string(subtree, hf_gsm_apn_str, parameter_tvb, 0, -1, ENC_APN_STR | ENC_NA, actx->pinfo->pool, &apn_str);
9573 proto_item_append_text(actx->created_item, " - %s", apn_str);
9577 return offset;
9582 static int
9583 dissect_gsm_map_ms_PDP_Address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9584 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9585 NULL);
9587 return offset;
9592 static int
9593 dissect_gsm_map_ms_FQDN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9594 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9595 NULL);
9597 return offset;
9601 static const ber_sequence_t gsm_map_ms_PDN_GW_Identity_sequence[] = {
9602 { &hf_gsm_map_ms_pdn_gw_ipv4_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
9603 { &hf_gsm_map_ms_pdn_gw_ipv6_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
9604 { &hf_gsm_map_ms_pdn_gw_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
9605 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9606 { NULL, 0, 0, 0, NULL }
9609 static int
9610 dissect_gsm_map_ms_PDN_GW_Identity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9611 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9612 gsm_map_ms_PDN_GW_Identity_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Identity);
9614 return offset;
9619 static int
9620 dissect_gsm_map_ms_ContextId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9621 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9622 NULL);
9624 return offset;
9628 static const ber_sequence_t gsm_map_ms_PDN_GW_Update_sequence[] = {
9629 { &hf_gsm_map_ms_apn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
9630 { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
9631 { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
9632 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9633 { NULL, 0, 0, 0, NULL }
9636 static int
9637 dissect_gsm_map_ms_PDN_GW_Update(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9638 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9639 gsm_map_ms_PDN_GW_Update_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Update);
9641 return offset;
9645 static int * const gsm_map_ms_ISR_Information_bits[] = {
9646 &hf_gsm_map_ms_ISR_Information_updateLocation,
9647 &hf_gsm_map_ms_ISR_Information_cancelSGSN,
9648 &hf_gsm_map_ms_ISR_Information_initialAttachIndicator,
9649 NULL
9652 static int
9653 dissect_gsm_map_ms_ISR_Information(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9654 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9655 gsm_map_ms_ISR_Information_bits, 3, hf_index, ett_gsm_map_ms_ISR_Information,
9656 NULL);
9658 return offset;
9662 static const value_string gsm_map_ms_EPS_Info_vals[] = {
9663 { 0, "pdn-gw-update" },
9664 { 1, "isr-Information" },
9665 { 0, NULL }
9668 static const ber_choice_t gsm_map_ms_EPS_Info_choice[] = {
9669 { 0, &hf_gsm_map_ms_pdn_gw_update, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Update },
9670 { 1, &hf_gsm_map_ms_isr_Information, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ISR_Information },
9671 { 0, NULL, 0, 0, 0, NULL }
9674 static int
9675 dissect_gsm_map_ms_EPS_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9676 offset = dissect_ber_choice(actx, tree, tvb, offset,
9677 gsm_map_ms_EPS_Info_choice, hf_index, ett_gsm_map_ms_EPS_Info,
9678 NULL);
9680 return offset;
9684 static const value_string gsm_map_ms_Used_RAT_Type_vals[] = {
9685 { 0, "utran" },
9686 { 1, "geran" },
9687 { 2, "gan" },
9688 { 3, "i-hspa-evolution" },
9689 { 4, "e-utran" },
9690 { 5, "nb-iot" },
9691 { 0, NULL }
9695 static int
9696 dissect_gsm_map_ms_Used_RAT_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9697 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9698 NULL);
9700 return offset;
9704 static const value_string gsm_map_ms_UE_SRVCC_Capability_vals[] = {
9705 { 0, "ue-srvcc-not-supported" },
9706 { 1, "ue-srvcc-supported" },
9707 { 0, NULL }
9711 static int
9712 dissect_gsm_map_ms_UE_SRVCC_Capability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9713 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9714 NULL);
9716 return offset;
9720 static const value_string gsm_map_ms_SMSRegisterRequest_vals[] = {
9721 { 0, "sms-registration-required" },
9722 { 1, "sms-registration-not-preferred" },
9723 { 2, "no-preference" },
9724 { 0, NULL }
9728 static int
9729 dissect_gsm_map_ms_SMSRegisterRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9730 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9731 NULL);
9733 return offset;
9737 static const ber_sequence_t gsm_map_ms_AdjacentPLMN_List_sequence_of[1] = {
9738 { &hf_gsm_map_ms_AdjacentPLMN_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id },
9741 static int
9742 dissect_gsm_map_ms_AdjacentPLMN_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9743 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9744 gsm_map_ms_AdjacentPLMN_List_sequence_of, hf_index, ett_gsm_map_ms_AdjacentPLMN_List);
9746 return offset;
9750 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationArg_sequence[] = {
9751 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
9752 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9753 { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_GSN_Address },
9754 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9755 { &hf_gsm_map_ms_sgsn_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_Capability },
9756 { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9757 { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9758 { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
9759 { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
9760 { &hf_gsm_map_ms_eps_info , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_EPS_Info },
9761 { &hf_gsm_map_ms_servingNodeTypeIndicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9762 { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9763 { &hf_gsm_map_ms_usedRAT_Type, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
9764 { &hf_gsm_map_ms_gprsSubscriptionDataNotNeeded, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9765 { &hf_gsm_map_ms_nodeTypeIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9766 { &hf_gsm_map_ms_areaRestricted, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9767 { &hf_gsm_map_ms_ue_reachableIndicator, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9768 { &hf_gsm_map_ms_epsSubscriptionDataNotNeeded, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9769 { &hf_gsm_map_ms_ue_srvcc_Capability, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_SRVCC_Capability },
9770 { &hf_gsm_map_ms_eplmn_List, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPLMN_List },
9771 { &hf_gsm_map_ms_mmeNumberforMTSMS, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9772 { &hf_gsm_map_ms_smsRegisterRequest, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMSRegisterRequest },
9773 { &hf_gsm_map_ms_sms_Only , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9774 { &hf_gsm_map_ms_removalofMMERegistrationforSMS, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9775 { &hf_gsm_map_ms_sgsn_Name, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
9776 { &hf_gsm_map_ms_sgsn_Realm, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
9777 { &hf_gsm_map_ms_lgd_supportIndicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9778 { &hf_gsm_map_ms_adjacentPLMN_List, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdjacentPLMN_List },
9779 { NULL, 0, 0, 0, NULL }
9782 static int
9783 dissect_gsm_map_ms_UpdateGprsLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9784 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9785 gsm_map_ms_UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg);
9787 return offset;
9791 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationRes_sequence[] = {
9792 { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9793 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9794 { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9795 { &hf_gsm_map_ms_sgsn_mmeSeparationSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9796 { &hf_gsm_map_ms_mmeRegisteredforSMS, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9797 { NULL, 0, 0, 0, NULL }
9800 static int
9801 dissect_gsm_map_ms_UpdateGprsLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9802 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9803 gsm_map_ms_UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes);
9805 return offset;
9810 static int
9811 dissect_gsm_map_ms_IntegrityProtectionInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9812 tvbuff_t *parameter_tvb;
9813 asn1_ctx_t asn1_ctx;
9815 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9816 &parameter_tvb);
9819 if (!parameter_tvb)
9820 return offset;
9822 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, actx->pinfo);
9823 dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_IntegrityProtectionInformation);
9826 return offset;
9831 static int
9832 dissect_gsm_map_ms_EncryptionInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9833 tvbuff_t *parameter_tvb;
9834 asn1_ctx_t asn1_ctx;
9836 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9837 &parameter_tvb);
9840 if (!parameter_tvb)
9841 return offset;
9843 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, actx->pinfo);
9844 dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_EncryptionInformation);
9847 return offset;
9851 static const value_string gsm_map_ms_KeyStatus_vals[] = {
9852 { 0, "old" },
9853 { 1, "new" },
9854 { 0, NULL }
9858 static int
9859 dissect_gsm_map_ms_KeyStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9860 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9861 NULL);
9863 return offset;
9868 static int
9869 dissect_gsm_map_ms_AllowedGSM_Algorithms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9870 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9871 NULL);
9873 return offset;
9878 static int
9879 dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9880 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9881 NULL);
9883 return offset;
9888 static int
9889 dissect_gsm_map_ms_PermittedEncryptionAlgorithms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9890 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9891 NULL);
9893 return offset;
9897 static const ber_sequence_t gsm_map_ms_AllowedUMTS_Algorithms_sequence[] = {
9898 { &hf_gsm_map_ms_integrityProtectionAlgorithms, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms },
9899 { &hf_gsm_map_ms_encryptionAlgorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedEncryptionAlgorithms },
9900 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9901 { NULL, 0, 0, 0, NULL }
9904 static int
9905 dissect_gsm_map_ms_AllowedUMTS_Algorithms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9906 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9907 gsm_map_ms_AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms);
9909 return offset;
9914 static int
9915 dissect_gsm_map_ms_RadioResourceInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9916 tvbuff_t *parameter_tvb;
9917 proto_tree *subtree;
9919 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9920 &parameter_tvb);
9923 if (!parameter_tvb)
9924 return offset;
9926 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation);
9927 be_chan_type(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length_remaining(tvb,0), NULL, 0);
9930 return offset;
9935 static int
9936 dissect_gsm_map_ms_RAB_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9937 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9938 NULL);
9940 return offset;
9944 static const ber_sequence_t gsm_map_ms_RadioResource_sequence[] = {
9945 { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResourceInformation },
9946 { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
9947 { NULL, 0, 0, 0, NULL }
9950 static int
9951 dissect_gsm_map_ms_RadioResource(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9952 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9953 gsm_map_ms_RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource);
9955 return offset;
9959 static const ber_sequence_t gsm_map_ms_RadioResourceList_sequence_of[1] = {
9960 { &hf_gsm_map_ms_RadioResourceList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResource },
9963 static int
9964 dissect_gsm_map_ms_RadioResourceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9965 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9966 gsm_map_ms_RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList);
9968 return offset;
9973 static int
9974 dissect_gsm_map_ms_BSSMAP_ServiceHandover(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9975 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9976 NULL);
9978 return offset;
9983 static int
9984 dissect_gsm_map_ms_RANAP_ServiceHandover(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9985 tvbuff_t *parameter_tvb;
9986 asn1_ctx_t asn1_ctx;
9988 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9989 &parameter_tvb);
9992 if (!parameter_tvb)
9993 return offset;
9995 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, actx->pinfo);
9996 dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
9999 return offset;
10003 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence[] = {
10004 { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
10005 { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
10006 { NULL, 0, 0, 0, NULL }
10009 static int
10010 dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10011 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10012 gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo);
10014 return offset;
10018 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of[1] = {
10019 { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo },
10022 static int
10023 dissect_gsm_map_ms_BSSMAP_ServiceHandoverList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10024 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10025 gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList);
10027 return offset;
10032 static int
10033 dissect_gsm_map_ms_Codec(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10034 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10035 NULL);
10037 return offset;
10041 static const ber_sequence_t gsm_map_ms_CodecList_sequence[] = {
10042 { &hf_gsm_map_ms_codec1_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10043 { &hf_gsm_map_ms_codec2_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10044 { &hf_gsm_map_ms_codec3_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10045 { &hf_gsm_map_ms_codec4_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10046 { &hf_gsm_map_ms_codec5_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10047 { &hf_gsm_map_ms_codec6_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10048 { &hf_gsm_map_ms_codec7_01, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10049 { &hf_gsm_map_ms_codec8_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10050 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10051 { NULL, 0, 0, 0, NULL }
10054 static int
10055 dissect_gsm_map_ms_CodecList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10056 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10057 gsm_map_ms_CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList);
10059 return offset;
10063 static const ber_sequence_t gsm_map_ms_SupportedCodecsList_sequence[] = {
10064 { &hf_gsm_map_ms_utranCodecList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
10065 { &hf_gsm_map_ms_geranCodecList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
10066 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10067 { NULL, 0, 0, 0, NULL }
10070 static int
10071 dissect_gsm_map_ms_SupportedCodecsList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10072 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10073 gsm_map_ms_SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList);
10075 return offset;
10080 static int
10081 dissect_gsm_map_ms_AoIPCodec(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10082 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10083 NULL);
10085 return offset;
10089 static const ber_sequence_t gsm_map_ms_AoIPCodecsList_sequence[] = {
10090 { &hf_gsm_map_ms_codec1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10091 { &hf_gsm_map_ms_codec2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10092 { &hf_gsm_map_ms_codec3 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10093 { &hf_gsm_map_ms_codec4 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10094 { &hf_gsm_map_ms_codec5 , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10095 { &hf_gsm_map_ms_codec6 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10096 { &hf_gsm_map_ms_codec7 , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10097 { &hf_gsm_map_ms_codec8 , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10098 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10099 { NULL, 0, 0, 0, NULL }
10102 static int
10103 dissect_gsm_map_ms_AoIPCodecsList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10104 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10105 gsm_map_ms_AoIPCodecsList_sequence, hf_index, ett_gsm_map_ms_AoIPCodecsList);
10107 return offset;
10112 static int
10113 dissect_gsm_map_ms_UESBI_IuA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10114 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10115 NULL, 0, hf_index, -1,
10116 NULL);
10118 return offset;
10123 static int
10124 dissect_gsm_map_ms_UESBI_IuB(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10125 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10126 NULL, 0, hf_index, -1,
10127 NULL);
10129 return offset;
10133 static const ber_sequence_t gsm_map_ms_UESBI_Iu_sequence[] = {
10134 { &hf_gsm_map_ms_uesbi_IuA, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuA },
10135 { &hf_gsm_map_ms_uesbi_IuB, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuB },
10136 { NULL, 0, 0, 0, NULL }
10139 static int
10140 dissect_gsm_map_ms_UESBI_Iu(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10141 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10142 gsm_map_ms_UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu);
10144 return offset;
10148 static const ber_sequence_t gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence[] = {
10149 { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10150 { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
10151 { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
10152 { &hf_gsm_map_ms_keyStatus, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_KeyStatus },
10153 { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
10154 { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
10155 { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
10156 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10157 { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
10158 { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
10159 { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
10160 { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
10161 { &hf_gsm_map_ms_currentlyUsedCodec, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10162 { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
10163 { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10164 { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10165 { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
10166 { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
10167 { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
10168 { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10169 { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
10170 { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
10171 { NULL, 0, 0, 0, NULL }
10174 static int
10175 dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10176 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10177 gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U);
10179 return offset;
10184 static int
10185 dissect_gsm_map_ms_ForwardAccessSignalling_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10186 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10187 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U);
10189 return offset;
10194 static int
10195 dissect_gsm_map_ms_RNCId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10196 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10197 NULL);
10199 return offset;
10204 static int
10205 dissect_gsm_map_ms_GERAN_Classmark(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10206 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10207 NULL);
10209 return offset;
10214 static int
10215 dissect_gsm_map_ms_ZoneCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10216 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10217 NULL);
10219 return offset;
10223 static const ber_sequence_t gsm_map_ms_ZoneCodeList_sequence_of[1] = {
10224 { &hf_gsm_map_ms_ZoneCodeList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ZoneCode },
10227 static int
10228 dissect_gsm_map_ms_ZoneCodeList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10229 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10230 gsm_map_ms_ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList);
10232 return offset;
10237 static int
10238 dissect_gsm_map_ms_LCLS_GlobalCallReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10239 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10240 NULL);
10242 return offset;
10246 static int * const gsm_map_ms_LCLS_Negotiation_bits[] = {
10247 &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit,
10248 &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit,
10249 NULL
10252 static int
10253 dissect_gsm_map_ms_LCLS_Negotiation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10254 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10255 gsm_map_ms_LCLS_Negotiation_bits, 2, hf_index, ett_gsm_map_ms_LCLS_Negotiation,
10256 NULL);
10258 return offset;
10262 static int * const gsm_map_ms_LCLS_ConfigurationPreference_bits[] = {
10263 &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator,
10264 &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator,
10265 &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator,
10266 &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator,
10267 NULL
10270 static int
10271 dissect_gsm_map_ms_LCLS_ConfigurationPreference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10272 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10273 gsm_map_ms_LCLS_ConfigurationPreference_bits, 4, hf_index, ett_gsm_map_ms_LCLS_ConfigurationPreference,
10274 NULL);
10276 return offset;
10280 static const ber_sequence_t gsm_map_ms_LIPA_AllowedAPNList_sequence_of[1] = {
10281 { &hf_gsm_map_ms_LIPA_AllowedAPNList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN },
10284 static int
10285 dissect_gsm_map_ms_LIPA_AllowedAPNList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10286 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10287 gsm_map_ms_LIPA_AllowedAPNList_sequence_of, hf_index, ett_gsm_map_ms_LIPA_AllowedAPNList);
10289 return offset;
10293 static const ber_sequence_t gsm_map_ms_CSG_SubscriptionData_sequence[] = {
10294 { &hf_gsm_map_ms_csg_Id , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_Id },
10295 { &hf_gsm_map_ms_expirationDate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time },
10296 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10297 { &hf_gsm_map_ms_lipa_AllowedAPNList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_AllowedAPNList },
10298 { &hf_gsm_map_ms_plmn_Id , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
10299 { NULL, 0, 0, 0, NULL }
10302 static int
10303 dissect_gsm_map_ms_CSG_SubscriptionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10304 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10305 gsm_map_ms_CSG_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_CSG_SubscriptionData);
10307 return offset;
10311 static const ber_sequence_t gsm_map_ms_CSG_SubscriptionDataList_sequence_of[1] = {
10312 { &hf_gsm_map_ms_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData },
10315 static int
10316 dissect_gsm_map_ms_CSG_SubscriptionDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10317 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10318 gsm_map_ms_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_CSG_SubscriptionDataList);
10320 return offset;
10324 static const ber_sequence_t gsm_map_ms_PrepareHO_Arg_U_sequence[] = {
10325 { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
10326 { &hf_gsm_map_ms_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10327 { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
10328 { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10329 { &hf_gsm_map_ms_multipleBearerRequested, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10330 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10331 { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
10332 { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
10333 { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
10334 { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
10335 { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
10336 { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
10337 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10338 { &hf_gsm_map_ms_rab_Id , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
10339 { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
10340 { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
10341 { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
10342 { &hf_gsm_map_ms_asciCallReference, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
10343 { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
10344 { &hf_gsm_map_ms_iuCurrentlyUsedCodec, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10345 { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
10346 { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10347 { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
10348 { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
10349 { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
10350 { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
10351 { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
10352 { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
10353 { &hf_gsm_map_ms_lclsGlobalCallReference, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_GlobalCallReference },
10354 { &hf_gsm_map_ms_lcls_Negotiation, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_Negotiation },
10355 { &hf_gsm_map_ms_lcls_Configuration_Preference, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_ConfigurationPreference },
10356 { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
10357 { NULL, 0, 0, 0, NULL }
10360 static int
10361 dissect_gsm_map_ms_PrepareHO_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10362 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10363 gsm_map_ms_PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U);
10365 return offset;
10370 static int
10371 dissect_gsm_map_ms_PrepareHO_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10372 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10373 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PrepareHO_Arg_U);
10375 return offset;
10379 static const ber_sequence_t gsm_map_ms_RelocationNumber_sequence[] = {
10380 { &hf_gsm_map_ms_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10381 { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
10382 { NULL, 0, 0, 0, NULL }
10385 static int
10386 dissect_gsm_map_ms_RelocationNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10387 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10388 gsm_map_ms_RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber);
10390 return offset;
10394 static const ber_sequence_t gsm_map_ms_RelocationNumberList_sequence_of[1] = {
10395 { &hf_gsm_map_ms_RelocationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RelocationNumber },
10398 static int
10399 dissect_gsm_map_ms_RelocationNumberList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10400 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10401 gsm_map_ms_RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList);
10403 return offset;
10408 static int
10409 dissect_gsm_map_ms_MulticallBearerInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10410 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10411 NULL);
10413 return offset;
10418 static int
10419 dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10420 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10421 NULL);
10423 return offset;
10428 static int
10429 dissect_gsm_map_ms_ChosenEncryptionAlgorithm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10430 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10431 NULL);
10433 return offset;
10437 static const ber_sequence_t gsm_map_ms_SelectedUMTS_Algorithms_sequence[] = {
10438 { &hf_gsm_map_ms_integrityProtectionAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm },
10439 { &hf_gsm_map_ms_encryptionAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenEncryptionAlgorithm },
10440 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10441 { NULL, 0, 0, 0, NULL }
10444 static int
10445 dissect_gsm_map_ms_SelectedUMTS_Algorithms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10446 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10447 gsm_map_ms_SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms);
10449 return offset;
10454 static int
10455 dissect_gsm_map_ms_ChosenChannelInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10456 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10457 NULL);
10459 return offset;
10464 static int
10465 dissect_gsm_map_ms_ChosenSpeechVersion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10466 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10467 NULL);
10469 return offset;
10473 static const ber_sequence_t gsm_map_ms_ChosenRadioResourceInformation_sequence[] = {
10474 { &hf_gsm_map_ms_chosenChannelInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenChannelInfo },
10475 { &hf_gsm_map_ms_chosenSpeechVersion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenSpeechVersion },
10476 { NULL, 0, 0, 0, NULL }
10479 static int
10480 dissect_gsm_map_ms_ChosenRadioResourceInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10481 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10482 gsm_map_ms_ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation);
10484 return offset;
10488 static const ber_sequence_t gsm_map_ms_PrepareHO_Res_U_sequence[] = {
10489 { &hf_gsm_map_ms_handoverNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10490 { &hf_gsm_map_ms_relocationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RelocationNumberList },
10491 { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10492 { &hf_gsm_map_ms_multicallBearerInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MulticallBearerInfo },
10493 { &hf_gsm_map_ms_multipleBearerNotSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10494 { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
10495 { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
10496 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10497 { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10498 { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
10499 { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10500 { &hf_gsm_map_ms_aoipAvailableCodecsListMap, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
10501 { NULL, 0, 0, 0, NULL }
10504 static int
10505 dissect_gsm_map_ms_PrepareHO_Res_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10506 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10507 gsm_map_ms_PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U);
10509 return offset;
10514 static int
10515 dissect_gsm_map_ms_PrepareHO_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10516 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10517 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PrepareHO_Res_U);
10519 return offset;
10523 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence[] = {
10524 { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
10525 { &hf_gsm_map_ms_targetMSC_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10526 { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
10527 { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10528 { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
10529 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10530 { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
10531 { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10532 { NULL, 0, 0, 0, NULL }
10535 static int
10536 dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10537 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10538 gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U);
10540 return offset;
10545 static int
10546 dissect_gsm_map_ms_PrepareSubsequentHO_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10547 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10548 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U);
10550 return offset;
10554 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Res_U_sequence[] = {
10555 { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10556 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10557 { NULL, 0, 0, 0, NULL }
10560 static int
10561 dissect_gsm_map_ms_PrepareSubsequentHO_Res_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10562 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10563 gsm_map_ms_PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U);
10565 return offset;
10570 static int
10571 dissect_gsm_map_ms_PrepareSubsequentHO_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10572 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10573 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PrepareSubsequentHO_Res_U);
10575 return offset;
10580 static int
10581 dissect_gsm_map_ms_SelectedGSM_Algorithm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10582 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10583 NULL);
10585 return offset;
10589 static const ber_sequence_t gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence[] = {
10590 { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10591 { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
10592 { &hf_gsm_map_ms_selectedGSM_Algorithm, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedGSM_Algorithm },
10593 { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
10594 { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
10595 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10596 { &hf_gsm_map_ms_iUSelectedCodec, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10597 { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
10598 { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10599 { &hf_gsm_map_ms_aoipAvailableCodecsListMap, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
10600 { NULL, 0, 0, 0, NULL }
10603 static int
10604 dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10605 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10606 gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U);
10608 return offset;
10613 static int
10614 dissect_gsm_map_ms_ProcessAccessSignalling_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10615 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10616 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U);
10618 return offset;
10622 static const ber_sequence_t gsm_map_ms_SendEndSignal_Arg_U_sequence[] = {
10623 { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10624 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10625 { NULL, 0, 0, 0, NULL }
10628 static int
10629 dissect_gsm_map_ms_SendEndSignal_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10630 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10631 gsm_map_ms_SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U);
10633 return offset;
10638 static int
10639 dissect_gsm_map_ms_SendEndSignal_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10640 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10641 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_SendEndSignal_Arg_U);
10643 return offset;
10647 static const ber_sequence_t gsm_map_ms_SendEndSignal_Res_sequence[] = {
10648 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10649 { NULL, 0, 0, 0, NULL }
10652 static int
10653 dissect_gsm_map_ms_SendEndSignal_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10654 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10655 gsm_map_ms_SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res);
10657 return offset;
10661 static const ber_sequence_t gsm_map_ms_Re_synchronisationInfo_sequence[] = {
10662 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
10663 { &hf_gsm_map_ms_auts , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTS },
10664 { NULL, 0, 0, 0, NULL }
10667 static int
10668 dissect_gsm_map_ms_Re_synchronisationInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10669 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10670 gsm_map_ms_Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo);
10672 return offset;
10676 static const value_string gsm_map_ms_RequestingNodeType_vals[] = {
10677 { 0, "vlr" },
10678 { 1, "sgsn" },
10679 { 2, "s-cscf" },
10680 { 3, "bsf" },
10681 { 4, "gan-aaa-server" },
10682 { 5, "wlan-aaa-server" },
10683 { 16, "mme" },
10684 { 17, "mme-sgsn" },
10685 { 0, NULL }
10689 static int
10690 dissect_gsm_map_ms_RequestingNodeType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10691 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10692 NULL);
10694 return offset;
10698 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoArg_sequence[] = {
10699 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10700 { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
10701 { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10702 { &hf_gsm_map_ms_immediateResponsePreferred, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10703 { &hf_gsm_map_ms_re_synchronisationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Re_synchronisationInfo },
10704 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10705 { &hf_gsm_map_ms_requestingNodeType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestingNodeType },
10706 { &hf_gsm_map_ms_requestingPLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
10707 { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
10708 { &hf_gsm_map_ms_additionalVectorsAreForEPS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10709 { &hf_gsm_map_ms_ueUsageTypeRequestIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10710 { NULL, 0, 0, 0, NULL }
10713 static int
10714 dissect_gsm_map_ms_SendAuthenticationInfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10715 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10716 gsm_map_ms_SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg);
10718 return offset;
10723 static int
10724 dissect_gsm_map_ms_KASME(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10725 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10726 NULL);
10728 return offset;
10732 static const ber_sequence_t gsm_map_ms_EPC_AV_sequence[] = {
10733 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
10734 { &hf_gsm_map_ms_xres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
10735 { &hf_gsm_map_ms_autn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
10736 { &hf_gsm_map_ms_kasme , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KASME },
10737 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10738 { NULL, 0, 0, 0, NULL }
10741 static int
10742 dissect_gsm_map_ms_EPC_AV(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10743 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10744 gsm_map_ms_EPC_AV_sequence, hf_index, ett_gsm_map_ms_EPC_AV);
10746 return offset;
10750 static const ber_sequence_t gsm_map_ms_EPS_AuthenticationSetList_sequence_of[1] = {
10751 { &hf_gsm_map_ms_EPS_AuthenticationSetList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EPC_AV },
10754 static int
10755 dissect_gsm_map_ms_EPS_AuthenticationSetList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10756 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10757 gsm_map_ms_EPS_AuthenticationSetList_sequence_of, hf_index, ett_gsm_map_ms_EPS_AuthenticationSetList);
10759 return offset;
10764 static int
10765 dissect_gsm_map_ms_UE_UsageType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10766 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10767 NULL);
10769 return offset;
10773 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoRes_U_sequence[] = {
10774 { &hf_gsm_map_ms_authenticationSetList, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_AuthenticationSetList },
10775 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10776 { &hf_gsm_map_ms_eps_AuthenticationSetList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_AuthenticationSetList },
10777 { &hf_gsm_map_ms_ueUsageType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_UsageType },
10778 { NULL, 0, 0, 0, NULL }
10781 static int
10782 dissect_gsm_map_ms_SendAuthenticationInfoRes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10783 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10784 gsm_map_ms_SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U);
10786 return offset;
10791 static int
10792 dissect_gsm_map_ms_SendAuthenticationInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10793 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10794 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_SendAuthenticationInfoRes_U);
10796 return offset;
10800 static int * const gsm_map_ms_RequestedEquipmentInfo_bits[] = {
10801 &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
10802 &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
10803 NULL
10806 static int
10807 dissect_gsm_map_ms_RequestedEquipmentInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10808 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10809 gsm_map_ms_RequestedEquipmentInfo_bits, 2, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo,
10810 NULL);
10812 return offset;
10816 static const ber_sequence_t gsm_map_ms_CheckIMEI_Arg_sequence[] = {
10817 { &hf_gsm_map_ms_imei , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
10818 { &hf_gsm_map_ms_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
10819 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10820 { NULL, 0, 0, 0, NULL }
10823 static int
10824 dissect_gsm_map_ms_CheckIMEI_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10825 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10826 gsm_map_ms_CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg);
10828 return offset;
10832 static const value_string gsm_map_ms_EquipmentStatus_vals[] = {
10833 { 0, "permittedListed" },
10834 { 1, "prohibitedListed" },
10835 { 2, "trackingListed" },
10836 { 0, NULL }
10840 static int
10841 dissect_gsm_map_ms_EquipmentStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10842 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10843 NULL);
10845 return offset;
10849 static const ber_sequence_t gsm_map_ms_CheckIMEI_Res_sequence[] = {
10850 { &hf_gsm_map_ms_equipmentStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EquipmentStatus },
10851 { &hf_gsm_map_ms_bmuef , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_UESBI_Iu },
10852 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10853 { NULL, 0, 0, 0, NULL }
10856 static int
10857 dissect_gsm_map_ms_CheckIMEI_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10858 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10859 gsm_map_ms_CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res);
10861 return offset;
10866 static int
10867 dissect_gsm_map_ms_Category(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10868 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10869 NULL);
10871 return offset;
10875 static const value_string gsm_map_ms_SubscriberStatus_vals[] = {
10876 { 0, "serviceGranted" },
10877 { 1, "operatorDeterminedBarring" },
10878 { 0, NULL }
10882 static int
10883 dissect_gsm_map_ms_SubscriberStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10884 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10885 NULL);
10887 return offset;
10891 static const ber_sequence_t gsm_map_ms_BearerServiceList_sequence_of[1] = {
10892 { &hf_gsm_map_ms_BearerServiceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BearerServiceCode },
10895 static int
10896 dissect_gsm_map_ms_BearerServiceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10897 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10898 gsm_map_ms_BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList);
10900 return offset;
10904 static const ber_sequence_t gsm_map_ms_TeleserviceList_sequence_of[1] = {
10905 { &hf_gsm_map_ms_TeleserviceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
10908 static int
10909 dissect_gsm_map_ms_TeleserviceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10910 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10911 gsm_map_ms_TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList);
10913 return offset;
10919 dissect_gsm_map_ms_Ext_ForwOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10920 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10921 NULL);
10923 return offset;
10928 static int
10929 dissect_gsm_map_ms_T_forwardingOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10930 offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
10933 proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
10934 proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
10935 proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN);
10936 proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN);
10939 return offset;
10945 dissect_gsm_map_ms_Ext_NoRepCondTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10946 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10947 NULL);
10949 return offset;
10953 static const ber_sequence_t gsm_map_ms_Ext_ForwFeature_sequence[] = {
10954 { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
10955 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
10956 { &hf_gsm_map_ms_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10957 { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
10958 { &hf_gsm_map_ms_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_forwardingOptions },
10959 { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
10960 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10961 { &hf_gsm_map_ms_longForwardedToNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
10962 { NULL, 0, 0, 0, NULL }
10965 static int
10966 dissect_gsm_map_ms_Ext_ForwFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10967 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10968 gsm_map_ms_Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature);
10970 return offset;
10974 static const ber_sequence_t gsm_map_ms_Ext_ForwFeatureList_sequence_of[1] = {
10975 { &hf_gsm_map_ms_Ext_ForwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeature },
10978 static int
10979 dissect_gsm_map_ms_Ext_ForwFeatureList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10980 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10981 gsm_map_ms_Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList);
10983 return offset;
10987 static const ber_sequence_t gsm_map_ms_Ext_ForwInfo_sequence[] = {
10988 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
10989 { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
10990 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10991 { NULL, 0, 0, 0, NULL }
10994 static int
10995 dissect_gsm_map_ms_Ext_ForwInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10996 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10997 gsm_map_ms_Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo);
10999 return offset;
11003 static const ber_sequence_t gsm_map_ms_Ext_CallBarringFeature_sequence[] = {
11004 { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
11005 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
11006 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11007 { NULL, 0, 0, 0, NULL }
11010 static int
11011 dissect_gsm_map_ms_Ext_CallBarringFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11012 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11013 gsm_map_ms_Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature);
11015 return offset;
11019 static const ber_sequence_t gsm_map_ms_Ext_CallBarFeatureList_sequence_of[1] = {
11020 { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarringFeature },
11023 static int
11024 dissect_gsm_map_ms_Ext_CallBarFeatureList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11025 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11026 gsm_map_ms_Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList);
11028 return offset;
11032 static const ber_sequence_t gsm_map_ms_Ext_CallBarInfo_sequence[] = {
11033 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
11034 { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
11035 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11036 { NULL, 0, 0, 0, NULL }
11039 static int
11040 dissect_gsm_map_ms_Ext_CallBarInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11041 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11042 gsm_map_ms_Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo);
11044 return offset;
11050 dissect_gsm_map_ms_CUG_Index(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11051 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11052 NULL);
11054 return offset;
11060 dissect_gsm_map_ms_CUG_Interlock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11061 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11062 NULL);
11064 return offset;
11068 static const value_string gsm_map_ms_IntraCUG_Options_vals[] = {
11069 { 0, "noCUG-Restrictions" },
11070 { 1, "cugIC-CallBarred" },
11071 { 2, "cugOG-CallBarred" },
11072 { 0, NULL }
11076 static int
11077 dissect_gsm_map_ms_IntraCUG_Options(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11078 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11079 NULL);
11081 return offset;
11085 static const ber_sequence_t gsm_map_ms_Ext_BasicServiceGroupList_sequence_of[1] = {
11086 { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
11089 static int
11090 dissect_gsm_map_ms_Ext_BasicServiceGroupList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11091 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11092 gsm_map_ms_Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList);
11094 return offset;
11098 static const ber_sequence_t gsm_map_ms_CUG_Subscription_sequence[] = {
11099 { &hf_gsm_map_ms_cug_Index, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
11100 { &hf_gsm_map_ms_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
11101 { &hf_gsm_map_ms_intraCUG_Options, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IntraCUG_Options },
11102 { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
11103 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11104 { NULL, 0, 0, 0, NULL }
11107 static int
11108 dissect_gsm_map_ms_CUG_Subscription(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11109 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11110 gsm_map_ms_CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription);
11112 return offset;
11116 static const ber_sequence_t gsm_map_ms_CUG_SubscriptionList_sequence_of[1] = {
11117 { &hf_gsm_map_ms_CUG_SubscriptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Subscription },
11120 static int
11121 dissect_gsm_map_ms_CUG_SubscriptionList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11122 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11123 gsm_map_ms_CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList);
11125 return offset;
11130 static int
11131 dissect_gsm_map_ms_InterCUG_Restrictions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11132 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11133 NULL);
11135 return offset;
11139 static const ber_sequence_t gsm_map_ms_CUG_Feature_sequence[] = {
11140 { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
11141 { &hf_gsm_map_ms_preferentialCUG_Indicator, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
11142 { &hf_gsm_map_ms_interCUG_Restrictions, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_InterCUG_Restrictions },
11143 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11144 { NULL, 0, 0, 0, NULL }
11147 static int
11148 dissect_gsm_map_ms_CUG_Feature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11149 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11150 gsm_map_ms_CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature);
11152 return offset;
11156 static const ber_sequence_t gsm_map_ms_CUG_FeatureList_sequence_of[1] = {
11157 { &hf_gsm_map_ms_CUG_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Feature },
11160 static int
11161 dissect_gsm_map_ms_CUG_FeatureList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11162 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11163 gsm_map_ms_CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList);
11165 return offset;
11169 static const ber_sequence_t gsm_map_ms_CUG_Info_sequence[] = {
11170 { &hf_gsm_map_ms_cug_SubscriptionList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_SubscriptionList },
11171 { &hf_gsm_map_ms_cug_FeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_FeatureList },
11172 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11173 { NULL, 0, 0, 0, NULL }
11177 dissect_gsm_map_ms_CUG_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11178 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11179 gsm_map_ms_CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info);
11181 return offset;
11185 static const ber_sequence_t gsm_map_ms_Ext_SS_Data_sequence[] = {
11186 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
11187 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
11188 { &hf_gsm_map_ms_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
11189 { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
11190 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11191 { NULL, 0, 0, 0, NULL }
11194 static int
11195 dissect_gsm_map_ms_Ext_SS_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11196 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11197 gsm_map_ms_Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data);
11199 return offset;
11203 static const value_string gsm_map_ms_Ext_SS_Info_vals[] = {
11204 { 0, "forwardingInfo" },
11205 { 1, "callBarringInfo" },
11206 { 2, "cug-Info" },
11207 { 3, "ss-Data" },
11208 { 4, "emlpp-Info" },
11209 { 0, NULL }
11212 static const ber_choice_t gsm_map_ms_Ext_SS_Info_choice[] = {
11213 { 0, &hf_gsm_map_ms_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwInfo },
11214 { 1, &hf_gsm_map_ms_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarInfo },
11215 { 2, &hf_gsm_map_ms_cug_Info , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Info },
11216 { 3, &hf_gsm_map_ms_ss_Data , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_Data },
11217 { 4, &hf_gsm_map_ms_emlpp_Info, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Info },
11218 { 0, NULL, 0, 0, 0, NULL }
11221 static int
11222 dissect_gsm_map_ms_Ext_SS_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11223 offset = dissect_ber_choice(actx, tree, tvb, offset,
11224 gsm_map_ms_Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info,
11225 NULL);
11227 return offset;
11231 static const ber_sequence_t gsm_map_ms_Ext_SS_InfoList_sequence_of[1] = {
11232 { &hf_gsm_map_ms_Ext_SS_InfoList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_Ext_SS_Info },
11235 static int
11236 dissect_gsm_map_ms_Ext_SS_InfoList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11237 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11238 gsm_map_ms_Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList);
11240 return offset;
11244 static int * const gsm_map_ms_ODB_GeneralData_bits[] = {
11245 &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
11246 &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
11247 &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
11248 &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
11249 &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
11250 &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
11251 &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
11252 &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
11253 &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
11254 &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
11255 &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
11256 &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
11257 &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
11258 &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
11259 &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
11260 &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
11261 &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
11262 &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
11263 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
11264 &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
11265 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
11266 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
11267 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
11268 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
11269 &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
11270 &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
11271 &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
11272 &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
11273 &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
11274 NULL
11277 static int
11278 dissect_gsm_map_ms_ODB_GeneralData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11279 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11280 gsm_map_ms_ODB_GeneralData_bits, 29, hf_index, ett_gsm_map_ms_ODB_GeneralData,
11281 NULL);
11283 return offset;
11287 static int * const gsm_map_ms_ODB_HPLMN_Data_bits[] = {
11288 &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
11289 &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
11290 &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
11291 &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
11292 NULL
11295 static int
11296 dissect_gsm_map_ms_ODB_HPLMN_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11297 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11298 gsm_map_ms_ODB_HPLMN_Data_bits, 4, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data,
11299 NULL);
11301 return offset;
11305 static const ber_sequence_t gsm_map_ms_ODB_Data_sequence[] = {
11306 { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_GeneralData },
11307 { &hf_gsm_map_ms_odb_HPLMN_Data, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_HPLMN_Data },
11308 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11309 { NULL, 0, 0, 0, NULL }
11312 static int
11313 dissect_gsm_map_ms_ODB_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11314 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11315 gsm_map_ms_ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data);
11317 return offset;
11322 static int
11323 dissect_gsm_map_ms_GroupId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11324 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
11326 return offset;
11331 static int
11332 dissect_gsm_map_ms_Long_GroupId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11333 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
11335 return offset;
11339 static const ber_sequence_t gsm_map_ms_VoiceBroadcastData_sequence[] = {
11340 { &hf_gsm_map_ms_groupid , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
11341 { &hf_gsm_map_ms_broadcastInitEntitlement, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11342 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11343 { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
11344 { NULL, 0, 0, 0, NULL }
11347 static int
11348 dissect_gsm_map_ms_VoiceBroadcastData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11349 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11350 gsm_map_ms_VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData);
11352 return offset;
11356 static const ber_sequence_t gsm_map_ms_VBSDataList_sequence_of[1] = {
11357 { &hf_gsm_map_ms_VBSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceBroadcastData },
11360 static int
11361 dissect_gsm_map_ms_VBSDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11362 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11363 gsm_map_ms_VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList);
11365 return offset;
11369 static int * const gsm_map_ms_AdditionalSubscriptions_bits[] = {
11370 &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
11371 &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
11372 &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
11373 NULL
11376 static int
11377 dissect_gsm_map_ms_AdditionalSubscriptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11378 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11379 gsm_map_ms_AdditionalSubscriptions_bits, 3, hf_index, ett_gsm_map_ms_AdditionalSubscriptions,
11380 NULL);
11382 return offset;
11387 static int
11388 dissect_gsm_map_ms_AdditionalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11389 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11390 NULL, 0, hf_index, -1,
11391 NULL);
11393 return offset;
11397 static const ber_sequence_t gsm_map_ms_VoiceGroupCallData_sequence[] = {
11398 { &hf_gsm_map_ms_groupId , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
11399 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11400 { &hf_gsm_map_ms_additionalSubscriptions, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
11401 { &hf_gsm_map_ms_additionalInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
11402 { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
11403 { NULL, 0, 0, 0, NULL }
11406 static int
11407 dissect_gsm_map_ms_VoiceGroupCallData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11408 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11409 gsm_map_ms_VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData);
11411 return offset;
11415 static const ber_sequence_t gsm_map_ms_VGCSDataList_sequence_of[1] = {
11416 { &hf_gsm_map_ms_VGCSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceGroupCallData },
11419 static int
11420 dissect_gsm_map_ms_VGCSDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11421 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11422 gsm_map_ms_VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList);
11424 return offset;
11428 static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = {
11429 { 2, "collectedInfo" },
11430 { 4, "routeSelectFailure" },
11431 { 0, NULL }
11435 static int
11436 dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11437 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11438 NULL);
11440 return offset;
11446 dissect_gsm_map_ms_ServiceKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11447 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11448 NULL);
11450 return offset;
11454 static const value_string gsm_map_ms_DefaultCallHandling_vals[] = {
11455 { 0, "continueCall" },
11456 { 1, "releaseCall" },
11457 { 0, NULL }
11461 static int
11462 dissect_gsm_map_ms_DefaultCallHandling(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11463 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11464 NULL);
11466 return offset;
11470 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPData_sequence[] = {
11471 { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
11472 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11473 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11474 { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
11475 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11476 { NULL, 0, 0, 0, NULL }
11479 static int
11480 dissect_gsm_map_ms_O_BcsmCamelTDPData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11481 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11482 gsm_map_ms_O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData);
11484 return offset;
11488 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of[1] = {
11489 { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPData },
11492 static int
11493 dissect_gsm_map_ms_O_BcsmCamelTDPDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11494 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11495 gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList);
11497 return offset;
11502 static int
11503 dissect_gsm_map_ms_CamelCapabilityHandling(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11504 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11505 NULL);
11507 return offset;
11511 static const ber_sequence_t gsm_map_ms_O_CSI_sequence[] = {
11512 { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPDataList },
11513 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11514 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11515 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11516 { &hf_gsm_map_ms_csiActive, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11517 { NULL, 0, 0, 0, NULL }
11521 dissect_gsm_map_ms_O_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11522 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11523 gsm_map_ms_O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI);
11525 return offset;
11529 static const ber_sequence_t gsm_map_ms_SS_EventList_sequence_of[1] = {
11530 { &hf_gsm_map_ms_SS_EventList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
11533 static int
11534 dissect_gsm_map_ms_SS_EventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11535 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11536 gsm_map_ms_SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList);
11538 return offset;
11542 static const ber_sequence_t gsm_map_ms_SS_CamelData_sequence[] = {
11543 { &hf_gsm_map_ms_ss_EventList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_EventList },
11544 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11545 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11546 { NULL, 0, 0, 0, NULL }
11549 static int
11550 dissect_gsm_map_ms_SS_CamelData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11551 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11552 gsm_map_ms_SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData);
11554 return offset;
11558 static const ber_sequence_t gsm_map_ms_SS_CSI_sequence[] = {
11559 { &hf_gsm_map_ms_ss_CamelData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_CamelData },
11560 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11561 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11562 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11563 { NULL, 0, 0, 0, NULL }
11566 static int
11567 dissect_gsm_map_ms_SS_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11568 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11569 gsm_map_ms_SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI);
11571 return offset;
11575 static const value_string gsm_map_ms_MatchType_vals[] = {
11576 { 0, "inhibiting" },
11577 { 1, "enabling" },
11578 { 0, NULL }
11582 static int
11583 dissect_gsm_map_ms_MatchType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11584 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11585 NULL);
11587 return offset;
11591 static const ber_sequence_t gsm_map_ms_DestinationNumberList_sequence_of[1] = {
11592 { &hf_gsm_map_ms_DestinationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11595 static int
11596 dissect_gsm_map_ms_DestinationNumberList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11597 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11598 gsm_map_ms_DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList);
11600 return offset;
11605 static int
11606 dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11607 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11608 NULL);
11610 return offset;
11614 static const ber_sequence_t gsm_map_ms_DestinationNumberLengthList_sequence_of[1] = {
11615 { &hf_gsm_map_ms_DestinationNumberLengthList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits },
11618 static int
11619 dissect_gsm_map_ms_DestinationNumberLengthList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11620 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11621 gsm_map_ms_DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList);
11623 return offset;
11627 static const ber_sequence_t gsm_map_ms_DestinationNumberCriteria_sequence[] = {
11628 { &hf_gsm_map_ms_matchType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MatchType },
11629 { &hf_gsm_map_ms_destinationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberList },
11630 { &hf_gsm_map_ms_destinationNumberLengthList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberLengthList },
11631 { NULL, 0, 0, 0, NULL }
11634 static int
11635 dissect_gsm_map_ms_DestinationNumberCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11636 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11637 gsm_map_ms_DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria);
11639 return offset;
11643 static const ber_sequence_t gsm_map_ms_BasicServiceCriteria_sequence_of[1] = {
11644 { &hf_gsm_map_ms_BasicServiceCriteria_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
11647 static int
11648 dissect_gsm_map_ms_BasicServiceCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11649 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11650 gsm_map_ms_BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria);
11652 return offset;
11656 static const value_string gsm_map_ms_CallTypeCriteria_vals[] = {
11657 { 0, "forwarded" },
11658 { 1, "notForwarded" },
11659 { 0, NULL }
11663 static int
11664 dissect_gsm_map_ms_CallTypeCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11665 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11666 NULL);
11668 return offset;
11673 static int
11674 dissect_gsm_map_ms_CauseValue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11675 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11676 NULL);
11678 return offset;
11682 static const ber_sequence_t gsm_map_ms_O_CauseValueCriteria_sequence_of[1] = {
11683 { &hf_gsm_map_ms_O_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
11686 static int
11687 dissect_gsm_map_ms_O_CauseValueCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11688 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11689 gsm_map_ms_O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria);
11691 return offset;
11695 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence[] = {
11696 { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
11697 { &hf_gsm_map_ms_destinationNumberCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberCriteria },
11698 { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
11699 { &hf_gsm_map_ms_callTypeCriteria, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallTypeCriteria },
11700 { &hf_gsm_map_ms_o_CauseValueCriteria, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CauseValueCriteria },
11701 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11702 { NULL, 0, 0, 0, NULL }
11705 static int
11706 dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11707 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11708 gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria);
11710 return offset;
11714 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of[1] = {
11715 { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria },
11719 dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11720 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11721 gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList);
11723 return offset;
11728 static int
11729 dissect_gsm_map_ms_MM_Code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11730 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11731 NULL);
11733 return offset;
11737 static const ber_sequence_t gsm_map_ms_MobilityTriggers_sequence_of[1] = {
11738 { &hf_gsm_map_ms_MobilityTriggers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MM_Code },
11741 static int
11742 dissect_gsm_map_ms_MobilityTriggers(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11743 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11744 gsm_map_ms_MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers);
11746 return offset;
11750 static const ber_sequence_t gsm_map_ms_M_CSI_sequence[] = {
11751 { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
11752 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11753 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11754 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11755 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11756 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11757 { NULL, 0, 0, 0, NULL }
11760 static int
11761 dissect_gsm_map_ms_M_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11762 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11763 gsm_map_ms_M_CSI_sequence, hf_index, ett_gsm_map_ms_M_CSI);
11765 return offset;
11769 static const value_string gsm_map_ms_SMS_TriggerDetectionPoint_vals[] = {
11770 { 1, "sms-CollectedInfo" },
11771 { 2, "sms-DeliveryRequest" },
11772 { 0, NULL }
11776 static int
11777 dissect_gsm_map_ms_SMS_TriggerDetectionPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11778 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11779 NULL);
11781 return offset;
11785 const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = {
11786 { 0, "continueTransaction" },
11787 { 1, "releaseTransaction" },
11788 { 0, NULL }
11793 dissect_gsm_map_ms_DefaultSMS_Handling(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11794 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11795 NULL);
11797 return offset;
11801 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_Data_sequence[] = {
11802 { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
11803 { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
11804 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11805 { &hf_gsm_map_ms_defaultSMS_Handling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling },
11806 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11807 { NULL, 0, 0, 0, NULL }
11810 static int
11811 dissect_gsm_map_ms_SMS_CAMEL_TDP_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11812 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11813 gsm_map_ms_SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data);
11815 return offset;
11819 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of[1] = {
11820 { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_CAMEL_TDP_Data },
11823 static int
11824 dissect_gsm_map_ms_SMS_CAMEL_TDP_DataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11825 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11826 gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList);
11828 return offset;
11832 static const ber_sequence_t gsm_map_ms_SMS_CSI_sequence[] = {
11833 { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CAMEL_TDP_DataList },
11834 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11835 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11836 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11837 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11838 { NULL, 0, 0, 0, NULL }
11841 static int
11842 dissect_gsm_map_ms_SMS_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11843 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11844 gsm_map_ms_SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI);
11846 return offset;
11850 static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = {
11851 { 12, "termAttemptAuthorized" },
11852 { 13, "tBusy" },
11853 { 14, "tNoAnswer" },
11854 { 0, NULL }
11858 static int
11859 dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11860 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11861 NULL);
11863 return offset;
11867 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPData_sequence[] = {
11868 { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
11869 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11870 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11871 { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
11872 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11873 { NULL, 0, 0, 0, NULL }
11876 static int
11877 dissect_gsm_map_ms_T_BcsmCamelTDPData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11878 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11879 gsm_map_ms_T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData);
11881 return offset;
11885 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of[1] = {
11886 { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPData },
11889 static int
11890 dissect_gsm_map_ms_T_BcsmCamelTDPDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11891 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11892 gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList);
11894 return offset;
11898 static const ber_sequence_t gsm_map_ms_T_CSI_sequence[] = {
11899 { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPDataList },
11900 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11901 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11902 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11903 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11904 { NULL, 0, 0, 0, NULL }
11907 static int
11908 dissect_gsm_map_ms_T_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11909 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11910 gsm_map_ms_T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI);
11912 return offset;
11916 static const ber_sequence_t gsm_map_ms_T_CauseValueCriteria_sequence_of[1] = {
11917 { &hf_gsm_map_ms_T_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
11920 static int
11921 dissect_gsm_map_ms_T_CauseValueCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11922 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11923 gsm_map_ms_T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria);
11925 return offset;
11929 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
11930 { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
11931 { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
11932 { &hf_gsm_map_ms_t_CauseValueCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CauseValueCriteria },
11933 { NULL, 0, 0, 0, NULL }
11936 static int
11937 dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11938 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11939 gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria);
11941 return offset;
11945 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
11946 { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria },
11949 static int
11950 dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11951 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11952 gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList);
11954 return offset;
11958 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriterium_sequence[] = {
11959 { &hf_gsm_map_ms_dialledNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11960 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11961 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11962 { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DefaultCallHandling },
11963 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11964 { NULL, 0, 0, 0, NULL }
11967 static int
11968 dissect_gsm_map_ms_DP_AnalysedInfoCriterium(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11969 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11970 gsm_map_ms_DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium);
11972 return offset;
11976 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of[1] = {
11977 { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriterium },
11980 static int
11981 dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11982 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11983 gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList);
11985 return offset;
11989 static const ber_sequence_t gsm_map_ms_D_CSI_sequence[] = {
11990 { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList },
11991 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11992 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11993 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11994 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11995 { NULL, 0, 0, 0, NULL }
11999 dissect_gsm_map_ms_D_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12000 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12001 gsm_map_ms_D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI);
12003 return offset;
12007 static const value_string gsm_map_ms_MT_SMS_TPDU_Type_vals[] = {
12008 { 0, "sms-DELIVER" },
12009 { 1, "sms-SUBMIT-REPORT" },
12010 { 2, "sms-STATUS-REPORT" },
12011 { 0, NULL }
12015 static int
12016 dissect_gsm_map_ms_MT_SMS_TPDU_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12017 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12018 NULL);
12020 return offset;
12024 static const ber_sequence_t gsm_map_ms_TPDU_TypeCriterion_sequence_of[1] = {
12025 { &hf_gsm_map_ms_TPDU_TypeCriterion_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MT_SMS_TPDU_Type },
12028 static int
12029 dissect_gsm_map_ms_TPDU_TypeCriterion(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12030 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12031 gsm_map_ms_TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion);
12033 return offset;
12037 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence[] = {
12038 { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
12039 { &hf_gsm_map_ms_tpdu_TypeCriterion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TPDU_TypeCriterion },
12040 { NULL, 0, 0, 0, NULL }
12043 static int
12044 dissect_gsm_map_ms_MT_smsCAMELTDP_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12045 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12046 gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria);
12048 return offset;
12052 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of[1] = {
12053 { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_Criteria },
12056 static int
12057 dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12058 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12059 gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList);
12061 return offset;
12065 static const ber_sequence_t gsm_map_ms_VlrCamelSubscriptionInfo_sequence[] = {
12066 { &hf_gsm_map_ms_o_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
12067 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12068 { &hf_gsm_map_ms_ss_CSI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
12069 { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
12070 { &hf_gsm_map_ms_tif_CSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12071 { &hf_gsm_map_ms_m_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
12072 { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
12073 { &hf_gsm_map_ms_vt_CSI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
12074 { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
12075 { &hf_gsm_map_ms_d_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
12076 { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
12077 { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
12078 { NULL, 0, 0, 0, NULL }
12081 static int
12082 dissect_gsm_map_ms_VlrCamelSubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12083 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12084 gsm_map_ms_VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo);
12086 return offset;
12091 static int
12092 dissect_gsm_map_ms_PDP_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12093 uint8_t pdp_type_org;
12094 tvbuff_t *parameter_tvb;
12097 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12098 &parameter_tvb);
12101 if (!parameter_tvb)
12102 return offset;
12103 proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
12104 pdp_type_org = tvb_get_uint8(parameter_tvb,1);
12105 switch (pdp_type_org){
12106 case 0: /* ETSI */
12107 proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
12108 break;
12109 case 1: /* IETF */
12110 proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
12111 break;
12112 default:
12113 break;
12117 return offset;
12123 dissect_gsm_map_ms_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12126 tvbuff_t *parameter_tvb;
12128 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12129 &parameter_tvb);
12132 if (!parameter_tvb)
12133 return offset;
12134 de_sm_qos(parameter_tvb, tree, actx->pinfo, 0, 3, NULL,0);
12137 return offset;
12143 dissect_gsm_map_ms_Ext_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12145 tvbuff_t *parameter_tvb;
12147 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12148 &parameter_tvb);
12151 if (!parameter_tvb)
12152 return offset;
12153 dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx);
12156 return offset;
12161 static int
12162 dissect_gsm_map_ms_ChargingCharacteristics(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12163 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12164 NULL);
12166 return offset;
12172 dissect_gsm_map_ms_Ext2_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12174 tvbuff_t *parameter_tvb;
12176 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12177 &parameter_tvb);
12180 if (!parameter_tvb)
12181 return offset;
12182 dissect_gsm_map_ext2_qos_subscribed(tvb, actx->pinfo, tree, actx);
12185 return offset;
12191 dissect_gsm_map_ms_Ext3_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12193 tvbuff_t *parameter_tvb;
12195 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12196 &parameter_tvb);
12199 if (!parameter_tvb)
12200 return offset;
12201 dissect_gsm_map_ext3_qos_subscribed(tvb, actx->pinfo, tree, actx);
12204 return offset;
12209 static int
12210 dissect_gsm_map_ms_Ext4_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12212 tvbuff_t *parameter_tvb;
12214 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12215 &parameter_tvb);
12218 if (!parameter_tvb)
12219 return offset;
12220 dissect_gsm_map_ext4_qos_subscribed(tvb, actx->pinfo, tree, actx);
12223 return offset;
12228 static int
12229 dissect_gsm_map_ms_APN_OI_Replacement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12230 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12231 NULL);
12233 return offset;
12238 static int
12239 dissect_gsm_map_ms_Ext_PDP_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12240 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12241 NULL);
12243 return offset;
12248 static int
12249 dissect_gsm_map_ms_Bandwidth(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12250 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12251 NULL);
12253 return offset;
12258 static int
12259 dissect_gsm_map_ms_BandwidthExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12260 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12261 NULL);
12263 return offset;
12267 static const ber_sequence_t gsm_map_ms_AMBR_sequence[] = {
12268 { &hf_gsm_map_ms_max_RequestedBandwidth_UL, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth },
12269 { &hf_gsm_map_ms_max_RequestedBandwidth_DL, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth },
12270 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12271 { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_UL, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BandwidthExt },
12272 { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_DL, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BandwidthExt },
12273 { NULL, 0, 0, 0, NULL }
12276 static int
12277 dissect_gsm_map_ms_AMBR(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12278 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12279 gsm_map_ms_AMBR_sequence, hf_index, ett_gsm_map_ms_AMBR);
12281 return offset;
12285 static const value_string gsm_map_ms_SIPTO_Permission_vals[] = {
12286 { 0, "siptoAboveRanAllowed" },
12287 { 1, "siptoAboveRanNotAllowed" },
12288 { 0, NULL }
12292 static int
12293 dissect_gsm_map_ms_SIPTO_Permission(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12294 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12295 NULL);
12297 return offset;
12301 static const value_string gsm_map_ms_LIPA_Permission_vals[] = {
12302 { 0, "lipaProhibited" },
12303 { 1, "lipaOnly" },
12304 { 2, "lipaConditional" },
12305 { 0, NULL }
12309 static int
12310 dissect_gsm_map_ms_LIPA_Permission(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12311 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12312 NULL);
12314 return offset;
12319 static int
12320 dissect_gsm_map_ms_Restoration_Priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12321 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12322 NULL);
12324 return offset;
12328 static const value_string gsm_map_ms_SIPTO_Local_Network_Permission_vals[] = {
12329 { 0, "siptoAtLocalNetworkAllowed" },
12330 { 1, "siptoAtLocalNetworkNotAllowed" },
12331 { 0, NULL }
12335 static int
12336 dissect_gsm_map_ms_SIPTO_Local_Network_Permission(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12337 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12338 NULL);
12340 return offset;
12344 static const value_string gsm_map_ms_NIDD_Mechanism_vals[] = {
12345 { 0, "sGi-based-data-delivery" },
12346 { 1, "sCEF-based-data-delivery" },
12347 { 0, NULL }
12351 static int
12352 dissect_gsm_map_ms_NIDD_Mechanism(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12353 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12354 NULL);
12356 return offset;
12360 static const ber_sequence_t gsm_map_ms_PDP_Context_sequence[] = {
12361 { &hf_gsm_map_ms_pdp_ContextId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
12362 { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
12363 { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
12364 { &hf_gsm_map_ms_qos_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed },
12365 { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12366 { &hf_gsm_map_ms_apn , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12367 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12368 { &hf_gsm_map_ms_ext_QoS_Subscribed, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
12369 { &hf_gsm_map_ms_pdp_ChargingCharacteristics, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
12370 { &hf_gsm_map_ms_ext2_QoS_Subscribed, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
12371 { &hf_gsm_map_ms_ext3_QoS_Subscribed, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
12372 { &hf_gsm_map_ms_ext4_QoS_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
12373 { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
12374 { &hf_gsm_map_ms_ext_pdp_Type, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_PDP_Type },
12375 { &hf_gsm_map_ms_ext_pdp_Address, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
12376 { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
12377 { &hf_gsm_map_ms_sipto_Permission, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Permission },
12378 { &hf_gsm_map_ms_lipa_Permission, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_Permission },
12379 { &hf_gsm_map_ms_restoration_Priority, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Restoration_Priority },
12380 { &hf_gsm_map_ms_sipto_local_network_Permission, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Local_Network_Permission },
12381 { &hf_gsm_map_ms_nIDD_Mechanism, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NIDD_Mechanism },
12382 { &hf_gsm_map_ms_sCEF_ID , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
12383 { NULL, 0, 0, 0, NULL }
12386 static int
12387 dissect_gsm_map_ms_PDP_Context(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12388 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12389 gsm_map_ms_PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context);
12391 return offset;
12395 static const ber_sequence_t gsm_map_ms_GPRSDataList_sequence_of[1] = {
12396 { &hf_gsm_map_ms_GPRSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_Context },
12399 static int
12400 dissect_gsm_map_ms_GPRSDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12401 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12402 gsm_map_ms_GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList);
12404 return offset;
12408 static const ber_sequence_t gsm_map_ms_GPRSSubscriptionData_sequence[] = {
12409 { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
12410 { &hf_gsm_map_ms_gprsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSDataList },
12411 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12412 { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
12413 { NULL, 0, 0, 0, NULL }
12416 static int
12417 dissect_gsm_map_ms_GPRSSubscriptionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12418 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12419 gsm_map_ms_GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData);
12421 return offset;
12425 static const value_string gsm_map_ms_NetworkAccessMode_vals[] = {
12426 { 0, "packetAndCircuit" },
12427 { 1, "onlyCircuit" },
12428 { 2, "onlyPacket" },
12429 { 0, NULL }
12433 static int
12434 dissect_gsm_map_ms_NetworkAccessMode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12435 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12436 NULL);
12438 return offset;
12442 static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = {
12443 { 0, "accessOutsideLSAsAllowed" },
12444 { 1, "accessOutsideLSAsRestricted" },
12445 { 0, NULL }
12449 static int
12450 dissect_gsm_map_ms_LSAOnlyAccessIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12451 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12452 NULL);
12454 return offset;
12459 static int
12460 dissect_gsm_map_ms_LSAAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12461 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12462 NULL);
12464 return offset;
12468 static const ber_sequence_t gsm_map_ms_LSAData_sequence[] = {
12469 { &hf_gsm_map_ms_lsaIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
12470 { &hf_gsm_map_ms_lsaAttributes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAAttributes },
12471 { &hf_gsm_map_ms_lsaActiveModeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12472 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12473 { NULL, 0, 0, 0, NULL }
12476 static int
12477 dissect_gsm_map_ms_LSAData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12478 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12479 gsm_map_ms_LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData);
12481 return offset;
12485 static const ber_sequence_t gsm_map_ms_LSADataList_sequence_of[1] = {
12486 { &hf_gsm_map_ms_LSADataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAData },
12489 static int
12490 dissect_gsm_map_ms_LSADataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12491 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12492 gsm_map_ms_LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList);
12494 return offset;
12498 static const ber_sequence_t gsm_map_ms_LSAInformation_sequence[] = {
12499 { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
12500 { &hf_gsm_map_ms_lsaOnlyAccessIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAOnlyAccessIndicator },
12501 { &hf_gsm_map_ms_lsaDataList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSADataList },
12502 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12503 { NULL, 0, 0, 0, NULL }
12506 static int
12507 dissect_gsm_map_ms_LSAInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12508 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12509 gsm_map_ms_LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation);
12511 return offset;
12515 static const ber_sequence_t gsm_map_ms_GMLC_List_sequence_of[1] = {
12516 { &hf_gsm_map_ms_GMLC_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12519 static int
12520 dissect_gsm_map_ms_GMLC_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12521 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12522 gsm_map_ms_GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List);
12524 return offset;
12528 const value_string gsm_map_ms_NotificationToMSUser_vals[] = {
12529 { 0, "notifyLocationAllowed" },
12530 { 1, "notifyAndVerify-LocationAllowedIfNoResponse" },
12531 { 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
12532 { 3, "locationNotAllowed" },
12533 { 0, NULL }
12538 dissect_gsm_map_ms_NotificationToMSUser(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12539 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12540 NULL);
12542 return offset;
12546 static const value_string gsm_map_ms_GMLC_Restriction_vals[] = {
12547 { 0, "gmlc-List" },
12548 { 1, "home-Country" },
12549 { 0, NULL }
12553 static int
12554 dissect_gsm_map_ms_GMLC_Restriction(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12555 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12556 NULL);
12558 return offset;
12562 static const ber_sequence_t gsm_map_ms_ExternalClient_sequence[] = {
12563 { &hf_gsm_map_ms_clientIdentity, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientExternalID },
12564 { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
12565 { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
12566 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12567 { NULL, 0, 0, 0, NULL }
12570 static int
12571 dissect_gsm_map_ms_ExternalClient(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12572 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12573 gsm_map_ms_ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient);
12575 return offset;
12579 static const ber_sequence_t gsm_map_ms_ExternalClientList_sequence_of[1] = {
12580 { &hf_gsm_map_ms_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
12583 static int
12584 dissect_gsm_map_ms_ExternalClientList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12585 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12586 gsm_map_ms_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList);
12588 return offset;
12592 static const ber_sequence_t gsm_map_ms_PLMNClientList_sequence_of[1] = {
12593 { &hf_gsm_map_ms_PLMNClientList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientInternalID },
12596 static int
12597 dissect_gsm_map_ms_PLMNClientList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12598 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12599 gsm_map_ms_PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList);
12601 return offset;
12605 static const ber_sequence_t gsm_map_ms_Ext_ExternalClientList_sequence_of[1] = {
12606 { &hf_gsm_map_ms_Ext_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
12609 static int
12610 dissect_gsm_map_ms_Ext_ExternalClientList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12611 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12612 gsm_map_ms_Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList);
12614 return offset;
12618 static const ber_sequence_t gsm_map_ms_ServiceType_sequence[] = {
12619 { &hf_gsm_map_ms_serviceTypeIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSServiceTypeID },
12620 { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
12621 { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
12622 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12623 { NULL, 0, 0, 0, NULL }
12626 static int
12627 dissect_gsm_map_ms_ServiceType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12628 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12629 gsm_map_ms_ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType);
12631 return offset;
12635 static const ber_sequence_t gsm_map_ms_ServiceTypeList_sequence_of[1] = {
12636 { &hf_gsm_map_ms_ServiceTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceType },
12639 static int
12640 dissect_gsm_map_ms_ServiceTypeList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12641 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12642 gsm_map_ms_ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList);
12644 return offset;
12648 static const ber_sequence_t gsm_map_ms_LCS_PrivacyClass_sequence[] = {
12649 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
12650 { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
12651 { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
12652 { &hf_gsm_map_ms_externalClientList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ExternalClientList },
12653 { &hf_gsm_map_ms_plmnClientList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PLMNClientList },
12654 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12655 { &hf_gsm_map_ms_ext_externalClientList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ExternalClientList },
12656 { &hf_gsm_map_ms_serviceTypeList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceTypeList },
12657 { NULL, 0, 0, 0, NULL }
12660 static int
12661 dissect_gsm_map_ms_LCS_PrivacyClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12662 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12663 gsm_map_ms_LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass);
12665 return offset;
12669 static const ber_sequence_t gsm_map_ms_LCS_PrivacyExceptionList_sequence_of[1] = {
12670 { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LCS_PrivacyClass },
12673 static int
12674 dissect_gsm_map_ms_LCS_PrivacyExceptionList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12675 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12676 gsm_map_ms_LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList);
12678 return offset;
12682 static const ber_sequence_t gsm_map_ms_MOLR_Class_sequence[] = {
12683 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
12684 { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
12685 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12686 { NULL, 0, 0, 0, NULL }
12689 static int
12690 dissect_gsm_map_ms_MOLR_Class(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12691 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12692 gsm_map_ms_MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class);
12694 return offset;
12698 static const ber_sequence_t gsm_map_ms_MOLR_List_sequence_of[1] = {
12699 { &hf_gsm_map_ms_MOLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MOLR_Class },
12702 static int
12703 dissect_gsm_map_ms_MOLR_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12704 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12705 gsm_map_ms_MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List);
12707 return offset;
12711 static const ber_sequence_t gsm_map_ms_LCSInformation_sequence[] = {
12712 { &hf_gsm_map_ms_gmlc_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_List },
12713 { &hf_gsm_map_ms_lcs_PrivacyExceptionList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
12714 { &hf_gsm_map_ms_molr_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MOLR_List },
12715 { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
12716 { NULL, 0, 0, 0, NULL }
12719 static int
12720 dissect_gsm_map_ms_LCSInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12721 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12722 gsm_map_ms_LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation);
12724 return offset;
12729 static int
12730 dissect_gsm_map_ms_IST_AlertTimerValue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12731 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12732 NULL);
12734 return offset;
12739 static int
12740 dissect_gsm_map_ms_CS_AllocationRetentionPriority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12741 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12742 NULL);
12744 return offset;
12748 static const value_string gsm_map_ms_GPRS_TriggerDetectionPoint_vals[] = {
12749 { 1, "attach" },
12750 { 2, "attachChangeOfPosition" },
12751 { 11, "pdp-ContextEstablishment" },
12752 { 12, "pdp-ContextEstablishmentAcknowledgement" },
12753 { 14, "pdp-ContextChangeOfPosition" },
12754 { 0, NULL }
12758 static int
12759 dissect_gsm_map_ms_GPRS_TriggerDetectionPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12760 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12761 NULL);
12763 return offset;
12767 const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = {
12768 { 0, "continueTransaction" },
12769 { 1, "releaseTransaction" },
12770 { 0, NULL }
12775 dissect_gsm_map_ms_DefaultGPRS_Handling(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12776 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12777 NULL);
12779 return offset;
12783 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPData_sequence[] = {
12784 { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_TriggerDetectionPoint },
12785 { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
12786 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12787 { &hf_gsm_map_ms_defaultSessionHandling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
12788 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12789 { NULL, 0, 0, 0, NULL }
12792 static int
12793 dissect_gsm_map_ms_GPRS_CamelTDPData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12794 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12795 gsm_map_ms_GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData);
12797 return offset;
12801 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPDataList_sequence_of[1] = {
12802 { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GPRS_CamelTDPData },
12805 static int
12806 dissect_gsm_map_ms_GPRS_CamelTDPDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12807 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12808 gsm_map_ms_GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList);
12810 return offset;
12814 static const ber_sequence_t gsm_map_ms_GPRS_CSI_sequence[] = {
12815 { &hf_gsm_map_ms_gprs_CamelTDPDataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CamelTDPDataList },
12816 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
12817 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12818 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12819 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12820 { NULL, 0, 0, 0, NULL }
12823 static int
12824 dissect_gsm_map_ms_GPRS_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12825 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12826 gsm_map_ms_GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI);
12828 return offset;
12832 static const ber_sequence_t gsm_map_ms_MG_CSI_sequence[] = {
12833 { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
12834 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
12835 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12836 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12837 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12838 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12839 { NULL, 0, 0, 0, NULL }
12842 static int
12843 dissect_gsm_map_ms_MG_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12844 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12845 gsm_map_ms_MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI);
12847 return offset;
12851 static const ber_sequence_t gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence[] = {
12852 { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
12853 { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
12854 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12855 { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
12856 { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
12857 { &hf_gsm_map_ms_mg_csi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
12858 { NULL, 0, 0, 0, NULL }
12861 static int
12862 dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12863 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12864 gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo);
12866 return offset;
12870 static int * const gsm_map_ms_AccessRestrictionData_bits[] = {
12871 &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
12872 &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
12873 &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed,
12874 &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed,
12875 &hf_gsm_map_ms_AccessRestrictionData_wb_e_utranNotAllowed,
12876 &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed,
12877 &hf_gsm_map_ms_AccessRestrictionData_nb_iotNotAllowed,
12878 &hf_gsm_map_ms_AccessRestrictionData_enhancedCoverageNotAllowed,
12879 NULL
12882 static int
12883 dissect_gsm_map_ms_AccessRestrictionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12884 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12885 gsm_map_ms_AccessRestrictionData_bits, 8, hf_index, ett_gsm_map_ms_AccessRestrictionData,
12886 NULL);
12888 return offset;
12893 static int
12894 dissect_gsm_map_ms_RFSP_ID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12895 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12896 NULL);
12898 return offset;
12903 static int
12904 dissect_gsm_map_ms_PDN_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12905 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12906 NULL);
12908 return offset;
12913 static int
12914 dissect_gsm_map_ms_QoS_Class_Identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12915 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12916 NULL);
12918 return offset;
12923 static int
12924 dissect_gsm_map_ms_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12925 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12926 NULL);
12928 return offset;
12932 static const ber_sequence_t gsm_map_ms_Allocation_Retention_Priority_sequence[] = {
12933 { &hf_gsm_map_ms_priority_level, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_INTEGER },
12934 { &hf_gsm_map_ms_pre_emption_capability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
12935 { &hf_gsm_map_ms_pre_emption_vulnerability, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
12936 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12937 { NULL, 0, 0, 0, NULL }
12940 static int
12941 dissect_gsm_map_ms_Allocation_Retention_Priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12942 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12943 gsm_map_ms_Allocation_Retention_Priority_sequence, hf_index, ett_gsm_map_ms_Allocation_Retention_Priority);
12945 return offset;
12949 static const ber_sequence_t gsm_map_ms_EPS_QoS_Subscribed_sequence[] = {
12950 { &hf_gsm_map_ms_qos_Class_Identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Class_Identifier },
12951 { &hf_gsm_map_ms_allocation_Retention_Priority, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Allocation_Retention_Priority },
12952 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12953 { NULL, 0, 0, 0, NULL }
12956 static int
12957 dissect_gsm_map_ms_EPS_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12958 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12959 gsm_map_ms_EPS_QoS_Subscribed_sequence, hf_index, ett_gsm_map_ms_EPS_QoS_Subscribed);
12961 return offset;
12965 static const value_string gsm_map_ms_PDN_GW_AllocationType_vals[] = {
12966 { 0, "static" },
12967 { 1, "dynamic" },
12968 { 0, NULL }
12972 static int
12973 dissect_gsm_map_ms_PDN_GW_AllocationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12974 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12975 NULL);
12977 return offset;
12981 static const ber_sequence_t gsm_map_ms_SpecificAPNInfo_sequence[] = {
12982 { &hf_gsm_map_ms_apn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12983 { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
12984 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12985 { NULL, 0, 0, 0, NULL }
12988 static int
12989 dissect_gsm_map_ms_SpecificAPNInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12990 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12991 gsm_map_ms_SpecificAPNInfo_sequence, hf_index, ett_gsm_map_ms_SpecificAPNInfo);
12993 return offset;
12997 static const ber_sequence_t gsm_map_ms_SpecificAPNInfoList_sequence_of[1] = {
12998 { &hf_gsm_map_ms_SpecificAPNInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SpecificAPNInfo },
13001 static int
13002 dissect_gsm_map_ms_SpecificAPNInfoList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13003 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13004 gsm_map_ms_SpecificAPNInfoList_sequence_of, hf_index, ett_gsm_map_ms_SpecificAPNInfoList);
13006 return offset;
13010 static const value_string gsm_map_ms_WLAN_Offloadability_Indication_vals[] = {
13011 { 0, "notAllowed" },
13012 { 1, "allowed" },
13013 { 0, NULL }
13017 static int
13018 dissect_gsm_map_ms_WLAN_Offloadability_Indication(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13019 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13020 NULL);
13022 return offset;
13026 static const ber_sequence_t gsm_map_ms_WLAN_Offloadability_sequence[] = {
13027 { &hf_gsm_map_ms_wlan_offloadability_EUTRAN, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability_Indication },
13028 { &hf_gsm_map_ms_wlan_offloadability_UTRAN, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability_Indication },
13029 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13030 { NULL, 0, 0, 0, NULL }
13033 static int
13034 dissect_gsm_map_ms_WLAN_Offloadability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13035 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13036 gsm_map_ms_WLAN_Offloadability_sequence, hf_index, ett_gsm_map_ms_WLAN_Offloadability);
13038 return offset;
13042 static const value_string gsm_map_ms_PDN_ConnectionContinuity_vals[] = {
13043 { 0, "maintainPDN-Connection" },
13044 { 1, "disconnectPDN-ConnectionWithReactivationRequest" },
13045 { 2, "disconnectPDN-ConnectionWithoutReactivationRequest" },
13046 { 0, NULL }
13050 static int
13051 dissect_gsm_map_ms_PDN_ConnectionContinuity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13052 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13053 NULL);
13055 return offset;
13059 static const ber_sequence_t gsm_map_ms_APN_Configuration_sequence[] = {
13060 { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
13061 { &hf_gsm_map_ms_pdn_Type , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_Type },
13062 { &hf_gsm_map_ms_servedPartyIP_IPv4_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
13063 { &hf_gsm_map_ms_apn , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
13064 { &hf_gsm_map_ms_eps_qos_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_QoS_Subscribed },
13065 { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
13066 { &hf_gsm_map_ms_pdn_gw_AllocationType, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_AllocationType },
13067 { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13068 { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
13069 { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
13070 { &hf_gsm_map_ms_specificAPNInfoList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificAPNInfoList },
13071 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13072 { &hf_gsm_map_ms_servedPartyIP_IPv6_Address, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
13073 { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
13074 { &hf_gsm_map_ms_sipto_Permission, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Permission },
13075 { &hf_gsm_map_ms_lipa_Permission, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_Permission },
13076 { &hf_gsm_map_ms_restoration_Priority, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Restoration_Priority },
13077 { &hf_gsm_map_ms_sipto_local_network_Permission, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Local_Network_Permission },
13078 { &hf_gsm_map_ms_wlan_offloadability, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability },
13079 { &hf_gsm_map_ms_non_IP_PDN_Type_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13080 { &hf_gsm_map_ms_nIDD_Mechanism, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NIDD_Mechanism },
13081 { &hf_gsm_map_ms_sCEF_ID , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
13082 { &hf_gsm_map_ms_pdn_ConnectionContinuity, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_ConnectionContinuity },
13083 { NULL, 0, 0, 0, NULL }
13086 static int
13087 dissect_gsm_map_ms_APN_Configuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13088 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13089 gsm_map_ms_APN_Configuration_sequence, hf_index, ett_gsm_map_ms_APN_Configuration);
13091 return offset;
13095 static const ber_sequence_t gsm_map_ms_EPS_DataList_sequence_of[1] = {
13096 { &hf_gsm_map_ms_EPS_DataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN_Configuration },
13099 static int
13100 dissect_gsm_map_ms_EPS_DataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13101 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13102 gsm_map_ms_EPS_DataList_sequence_of, hf_index, ett_gsm_map_ms_EPS_DataList);
13104 return offset;
13108 static const ber_sequence_t gsm_map_ms_APN_ConfigurationProfile_sequence[] = {
13109 { &hf_gsm_map_ms_defaultContext, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
13110 { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13111 { &hf_gsm_map_ms_epsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_DataList },
13112 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13113 { &hf_gsm_map_ms_additionalDefaultContext, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
13114 { NULL, 0, 0, 0, NULL }
13117 static int
13118 dissect_gsm_map_ms_APN_ConfigurationProfile(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13119 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13120 gsm_map_ms_APN_ConfigurationProfile_sequence, hf_index, ett_gsm_map_ms_APN_ConfigurationProfile);
13122 return offset;
13126 static const ber_sequence_t gsm_map_ms_EPS_SubscriptionData_sequence[] = {
13127 { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
13128 { &hf_gsm_map_ms_rfsp_id , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RFSP_ID },
13129 { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
13130 { &hf_gsm_map_ms_apn_ConfigurationProfile, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_ConfigurationProfile },
13131 { &hf_gsm_map_ms_stn_sr , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13132 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13133 { &hf_gsm_map_ms_mps_CSPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13134 { &hf_gsm_map_ms_mps_EPSPriority, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13135 { &hf_gsm_map_ms_subscribed_vsrvcc, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13136 { NULL, 0, 0, 0, NULL }
13139 static int
13140 dissect_gsm_map_ms_EPS_SubscriptionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13141 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13142 gsm_map_ms_EPS_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_EPS_SubscriptionData);
13144 return offset;
13149 static int
13150 dissect_gsm_map_ms_SubscribedPeriodicRAUTAUtimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13151 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13152 NULL);
13154 return offset;
13159 static int
13160 dissect_gsm_map_ms_SubscribedPeriodicLAUtimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13161 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13162 NULL);
13164 return offset;
13168 static const ber_sequence_t gsm_map_ms_VPLMN_CSG_SubscriptionDataList_sequence_of[1] = {
13169 { &hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData },
13172 static int
13173 dissect_gsm_map_ms_VPLMN_CSG_SubscriptionDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13174 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13175 gsm_map_ms_VPLMN_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList);
13177 return offset;
13181 static int * const gsm_map_ms_Ext_AccessRestrictionData_bits[] = {
13182 &hf_gsm_map_ms_Ext_AccessRestrictionData_nrAsSecondaryRATNotAllowed,
13183 &hf_gsm_map_ms_Ext_AccessRestrictionData_unlicensedSpectrumAsSecondaryRATNotAllowed,
13184 NULL
13187 static int
13188 dissect_gsm_map_ms_Ext_AccessRestrictionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13189 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13190 gsm_map_ms_Ext_AccessRestrictionData_bits, 2, hf_index, ett_gsm_map_ms_Ext_AccessRestrictionData,
13191 NULL);
13193 return offset;
13197 static const ber_sequence_t gsm_map_ms_AdjacentAccessRestrictionData_sequence[] = {
13198 { &hf_gsm_map_ms_plmnId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
13199 { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
13200 { &hf_gsm_map_ms_ext_AccessRestrictionData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_AccessRestrictionData },
13201 { NULL, 0, 0, 0, NULL }
13204 static int
13205 dissect_gsm_map_ms_AdjacentAccessRestrictionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13206 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13207 gsm_map_ms_AdjacentAccessRestrictionData_sequence, hf_index, ett_gsm_map_ms_AdjacentAccessRestrictionData);
13209 return offset;
13213 static const ber_sequence_t gsm_map_ms_AdjacentAccessRestrictionDataList_sequence_of[1] = {
13214 { &hf_gsm_map_ms_AdjacentAccessRestrictionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdjacentAccessRestrictionData },
13217 static int
13218 dissect_gsm_map_ms_AdjacentAccessRestrictionDataList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13219 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13220 gsm_map_ms_AdjacentAccessRestrictionDataList_sequence_of, hf_index, ett_gsm_map_ms_AdjacentAccessRestrictionDataList);
13222 return offset;
13227 static int
13228 dissect_gsm_map_ms_Group_Service_ID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13229 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13230 NULL);
13232 return offset;
13237 static int
13238 dissect_gsm_map_ms_Local_GroupID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13239 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13240 NULL);
13242 return offset;
13246 static const ber_sequence_t gsm_map_ms_IMSI_GroupId_sequence[] = {
13247 { &hf_gsm_map_ms_group_Service_Id, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Group_Service_ID },
13248 { &hf_gsm_map_ms_plmnId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
13249 { &hf_gsm_map_ms_local_Group_ID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Local_GroupID },
13250 { NULL, 0, 0, 0, NULL }
13253 static int
13254 dissect_gsm_map_ms_IMSI_GroupId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13255 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13256 gsm_map_ms_IMSI_GroupId_sequence, hf_index, ett_gsm_map_ms_IMSI_GroupId);
13258 return offset;
13262 static const ber_sequence_t gsm_map_ms_IMSI_GroupIdList_sequence_of[1] = {
13263 { &hf_gsm_map_ms_IMSI_GroupIdList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IMSI_GroupId },
13266 static int
13267 dissect_gsm_map_ms_IMSI_GroupIdList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13268 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13269 gsm_map_ms_IMSI_GroupIdList_sequence_of, hf_index, ett_gsm_map_ms_IMSI_GroupIdList);
13271 return offset;
13276 static int
13277 dissect_gsm_map_ms_DL_Buffering_Suggested_Packet_Count(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13278 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13279 NULL);
13281 return offset;
13286 static int
13287 dissect_gsm_map_ms_Reset_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13288 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13289 NULL);
13291 return offset;
13295 static const ber_sequence_t gsm_map_ms_Reset_Id_List_sequence_of[1] = {
13296 { &hf_gsm_map_ms_Reset_Id_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Reset_Id },
13299 static int
13300 dissect_gsm_map_ms_Reset_Id_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13301 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13302 gsm_map_ms_Reset_Id_List_sequence_of, hf_index, ett_gsm_map_ms_Reset_Id_List);
13304 return offset;
13309 static int
13310 dissect_gsm_map_ms_EDRX_Cycle_Length_Value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13311 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13312 NULL);
13314 return offset;
13318 static const ber_sequence_t gsm_map_ms_EDRX_Cycle_Length_sequence[] = {
13319 { &hf_gsm_map_ms_rat_Type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
13320 { &hf_gsm_map_ms_eDRX_Cycle_Length_Value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EDRX_Cycle_Length_Value },
13321 { NULL, 0, 0, 0, NULL }
13324 static int
13325 dissect_gsm_map_ms_EDRX_Cycle_Length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13326 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13327 gsm_map_ms_EDRX_Cycle_Length_sequence, hf_index, ett_gsm_map_ms_EDRX_Cycle_Length);
13329 return offset;
13333 static const ber_sequence_t gsm_map_ms_EDRX_Cycle_Length_List_sequence_of[1] = {
13334 { &hf_gsm_map_ms_EDRX_Cycle_Length_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EDRX_Cycle_Length },
13337 static int
13338 dissect_gsm_map_ms_EDRX_Cycle_Length_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13339 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13340 gsm_map_ms_EDRX_Cycle_Length_List_sequence_of, hf_index, ett_gsm_map_ms_EDRX_Cycle_Length_List);
13342 return offset;
13346 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataArg_sequence[] = {
13347 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13348 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13349 { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
13350 { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
13351 { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
13352 { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
13353 { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
13354 { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
13355 { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13356 { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
13357 { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
13358 { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
13359 { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
13360 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13361 { &hf_gsm_map_ms_naea_PreferredCI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
13362 { &hf_gsm_map_ms_gprsSubscriptionData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSSubscriptionData },
13363 { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13364 { &hf_gsm_map_ms_networkAccessMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NetworkAccessMode },
13365 { &hf_gsm_map_ms_lsaInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAInformation },
13366 { &hf_gsm_map_ms_lmu_Indicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13367 { &hf_gsm_map_ms_lcsInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCSInformation },
13368 { &hf_gsm_map_ms_istAlertTimer, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
13369 { &hf_gsm_map_ms_superChargerSupportedInHLR, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
13370 { &hf_gsm_map_ms_mc_SS_Info, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_SS_Info },
13371 { &hf_gsm_map_ms_cs_AllocationRetentionPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CS_AllocationRetentionPriority },
13372 { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo },
13373 { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
13374 { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
13375 { &hf_gsm_map_ms_ics_Indicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
13376 { &hf_gsm_map_ms_eps_SubscriptionData, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_SubscriptionData },
13377 { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
13378 { &hf_gsm_map_ms_ue_ReachabilityRequestIndicator, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13379 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13380 { &hf_gsm_map_ms_mme_Name , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
13381 { &hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscribedPeriodicRAUTAUtimer },
13382 { &hf_gsm_map_ms_vplmnLIPAAllowed, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13383 { &hf_gsm_map_ms_mdtUserConsent, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
13384 { &hf_gsm_map_ms_subscribedPeriodicLAUtimer, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscribedPeriodicLAUtimer },
13385 { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VPLMN_CSG_SubscriptionDataList },
13386 { &hf_gsm_map_ms_additionalMSISDN, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13387 { &hf_gsm_map_ms_psAndSMS_OnlyServiceProvision, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13388 { &hf_gsm_map_ms_smsInSGSNAllowed, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13389 { &hf_gsm_map_ms_cs_to_ps_SRVCC_Allowed_Indicator, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13390 { &hf_gsm_map_ms_pcscf_Restoration_Request, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13391 { &hf_gsm_map_ms_adjacentAccessRestrictionDataList, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdjacentAccessRestrictionDataList },
13392 { &hf_gsm_map_ms_imsi_Group_Id_List, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IMSI_GroupIdList },
13393 { &hf_gsm_map_ms_ueUsageType, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_UsageType },
13394 { &hf_gsm_map_ms_userPlaneIntegrityProtectionIndicator, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13395 { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DL_Buffering_Suggested_Packet_Count },
13396 { &hf_gsm_map_ms_reset_Id_List, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Reset_Id_List },
13397 { &hf_gsm_map_ms_eDRX_Cycle_Length_List, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EDRX_Cycle_Length_List },
13398 { &hf_gsm_map_ms_ext_AccessRestrictionData, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_AccessRestrictionData },
13399 { &hf_gsm_map_ms_iab_Operation_Allowed_Indicator, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13400 { NULL, 0, 0, 0, NULL }
13403 static int
13404 dissect_gsm_map_ms_InsertSubscriberDataArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13405 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13406 gsm_map_ms_InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg);
13408 return offset;
13412 static const ber_sequence_t gsm_map_ms_SubscriberData_sequence[] = {
13413 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13414 { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
13415 { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
13416 { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
13417 { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
13418 { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
13419 { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
13420 { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13421 { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
13422 { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
13423 { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
13424 { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
13425 { NULL, 0, 0, 0, NULL }
13428 static int
13429 dissect_gsm_map_ms_SubscriberData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13430 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13431 gsm_map_ms_SubscriberData_sequence, hf_index, ett_gsm_map_ms_SubscriberData);
13433 return offset;
13437 static const value_string gsm_map_ms_RegionalSubscriptionResponse_vals[] = {
13438 { 0, "networkNode-AreaRestricted" },
13439 { 1, "tooManyZoneCodes" },
13440 { 2, "zoneCodesConflict" },
13441 { 3, "regionalSubscNotSupported" },
13442 { 0, NULL }
13446 static int
13447 dissect_gsm_map_ms_RegionalSubscriptionResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13448 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13449 NULL);
13451 return offset;
13455 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataRes_sequence[] = {
13456 { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
13457 { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
13458 { &hf_gsm_map_ms_ss_List , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
13459 { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_GeneralData },
13460 { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
13461 { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
13462 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13463 { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
13464 { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures },
13465 { &hf_gsm_map_ms_ext_SupportedFeatures, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SupportedFeatures },
13466 { NULL, 0, 0, 0, NULL }
13469 static int
13470 dissect_gsm_map_ms_InsertSubscriberDataRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13471 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13472 gsm_map_ms_InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes);
13474 return offset;
13478 static const ber_sequence_t gsm_map_ms_BasicServiceList_sequence_of[1] = {
13479 { &hf_gsm_map_ms_BasicServiceList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
13482 static int
13483 dissect_gsm_map_ms_BasicServiceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13484 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13485 gsm_map_ms_BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList);
13487 return offset;
13491 static const ber_sequence_t gsm_map_ms_ContextIdList_sequence_of[1] = {
13492 { &hf_gsm_map_ms_ContextIdList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
13495 static int
13496 dissect_gsm_map_ms_ContextIdList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13497 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13498 gsm_map_ms_ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList);
13500 return offset;
13504 static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = {
13505 { 0, "allGPRSData" },
13506 { 1, "contextIdList" },
13507 { 0, NULL }
13510 static const ber_choice_t gsm_map_ms_GPRSSubscriptionDataWithdraw_choice[] = {
13511 { 0, &hf_gsm_map_ms_allGPRSData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13512 { 1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
13513 { 0, NULL, 0, 0, 0, NULL }
13516 static int
13517 dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13518 offset = dissect_ber_choice(actx, tree, tvb, offset,
13519 gsm_map_ms_GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
13520 NULL);
13522 return offset;
13526 static const ber_sequence_t gsm_map_ms_LSAIdentityList_sequence_of[1] = {
13527 { &hf_gsm_map_ms_LSAIdentityList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentity },
13530 static int
13531 dissect_gsm_map_ms_LSAIdentityList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13532 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13533 gsm_map_ms_LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList);
13535 return offset;
13539 static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = {
13540 { 0, "allLSAData" },
13541 { 1, "lsaIdentityList" },
13542 { 0, NULL }
13545 static const ber_choice_t gsm_map_ms_LSAInformationWithdraw_choice[] = {
13546 { 0, &hf_gsm_map_ms_allLSAData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13547 { 1, &hf_gsm_map_ms_lsaIdentityList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentityList },
13548 { 0, NULL, 0, 0, 0, NULL }
13551 static int
13552 dissect_gsm_map_ms_LSAInformationWithdraw(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13553 offset = dissect_ber_choice(actx, tree, tvb, offset,
13554 gsm_map_ms_LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw,
13555 NULL);
13557 return offset;
13561 static int * const gsm_map_ms_SpecificCSI_Withdraw_bits[] = {
13562 &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
13563 &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
13564 &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
13565 &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
13566 &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
13567 &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
13568 &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
13569 &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
13570 &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
13571 &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
13572 &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
13573 &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
13574 &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
13575 &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
13576 NULL
13579 static int
13580 dissect_gsm_map_ms_SpecificCSI_Withdraw(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13581 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13582 gsm_map_ms_SpecificCSI_Withdraw_bits, 14, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw,
13583 NULL);
13585 return offset;
13589 static const value_string gsm_map_ms_EPS_SubscriptionDataWithdraw_vals[] = {
13590 { 0, "allEPS-Data" },
13591 { 1, "contextIdList" },
13592 { 0, NULL }
13595 static const ber_choice_t gsm_map_ms_EPS_SubscriptionDataWithdraw_choice[] = {
13596 { 0, &hf_gsm_map_ms_allEPS_Data, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13597 { 1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
13598 { 0, NULL, 0, 0, 0, NULL }
13601 static int
13602 dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13603 offset = dissect_ber_choice(actx, tree, tvb, offset,
13604 gsm_map_ms_EPS_SubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
13605 NULL);
13607 return offset;
13611 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataArg_sequence[] = {
13612 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13613 { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
13614 { &hf_gsm_map_ms_ss_List , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
13615 { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13616 { &hf_gsm_map_ms_regionalSubscriptionIdentifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCode },
13617 { &hf_gsm_map_ms_vbsGroupIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13618 { &hf_gsm_map_ms_vgcsGroupIndication, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13619 { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13620 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13621 { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw },
13622 { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13623 { &hf_gsm_map_ms_lsaInformationWithdraw, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LSAInformationWithdraw },
13624 { &hf_gsm_map_ms_gmlc_ListWithdraw, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13625 { &hf_gsm_map_ms_istInformationWithdraw, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13626 { &hf_gsm_map_ms_specificCSI_Withdraw, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
13627 { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13628 { &hf_gsm_map_ms_stn_srWithdraw, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13629 { &hf_gsm_map_ms_epsSubscriptionDataWithdraw, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw },
13630 { &hf_gsm_map_ms_apn_oi_replacementWithdraw, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13631 { &hf_gsm_map_ms_csg_SubscriptionDeleted, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13632 { &hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13633 { &hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13634 { &hf_gsm_map_ms_subscribed_vsrvccWithdraw, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13635 { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13636 { &hf_gsm_map_ms_additionalMSISDN_Withdraw, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13637 { &hf_gsm_map_ms_cs_to_ps_SRVCC_Withdraw, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13638 { &hf_gsm_map_ms_imsiGroupIdList_Withdraw, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13639 { &hf_gsm_map_ms_userPlaneIntegrityProtectionWithdraw, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13640 { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count_Withdraw, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13641 { &hf_gsm_map_ms_ue_UsageTypeWithdraw, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13642 { &hf_gsm_map_ms_reset_idsWithdraw, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13643 { &hf_gsm_map_ms_iab_OperationWithdraw, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13644 { NULL, 0, 0, 0, NULL }
13647 static int
13648 dissect_gsm_map_ms_DeleteSubscriberDataArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13649 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13650 gsm_map_ms_DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg);
13652 return offset;
13656 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataRes_sequence[] = {
13657 { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
13658 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13659 { NULL, 0, 0, 0, NULL }
13662 static int
13663 dissect_gsm_map_ms_DeleteSubscriberDataRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13664 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13665 gsm_map_ms_DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes);
13667 return offset;
13671 static int * const gsm_map_ms_OfferedCamel4Functionalities_bits[] = {
13672 &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
13673 &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
13674 &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
13675 &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
13676 &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
13677 &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
13678 &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
13679 &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
13680 &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
13681 &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
13682 &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
13683 &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
13684 &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
13685 &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
13686 &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
13687 &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
13688 &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
13689 &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
13690 &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
13691 &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
13692 NULL
13696 dissect_gsm_map_ms_OfferedCamel4Functionalities(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13697 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13698 gsm_map_ms_OfferedCamel4Functionalities_bits, 20, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities,
13699 NULL);
13701 return offset;
13705 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsArg_sequence[] = {
13706 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13707 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13708 { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13709 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13710 { NULL, 0, 0, 0, NULL }
13713 static int
13714 dissect_gsm_map_ms_SendRoutingInfoForGprsArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13715 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13716 gsm_map_ms_SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg);
13718 return offset;
13722 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsRes_sequence[] = {
13723 { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13724 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13725 { &hf_gsm_map_ms_mobileNotReachableReason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
13726 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13727 { NULL, 0, 0, 0, NULL }
13730 static int
13731 dissect_gsm_map_ms_SendRoutingInfoForGprsRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13732 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13733 gsm_map_ms_SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes);
13735 return offset;
13739 static const ber_sequence_t gsm_map_ms_FailureReportArg_sequence[] = {
13740 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13741 { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13742 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13743 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13744 { NULL, 0, 0, 0, NULL }
13747 static int
13748 dissect_gsm_map_ms_FailureReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13749 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13750 gsm_map_ms_FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg);
13752 return offset;
13756 static const ber_sequence_t gsm_map_ms_FailureReportRes_sequence[] = {
13757 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13758 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13759 { NULL, 0, 0, 0, NULL }
13762 static int
13763 dissect_gsm_map_ms_FailureReportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13764 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13765 gsm_map_ms_FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes);
13767 return offset;
13771 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsArg_sequence[] = {
13772 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13773 { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13774 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13775 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13776 { NULL, 0, 0, 0, NULL }
13779 static int
13780 dissect_gsm_map_ms_NoteMsPresentForGprsArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13781 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13782 gsm_map_ms_NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg);
13784 return offset;
13788 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsRes_sequence[] = {
13789 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13790 { NULL, 0, 0, 0, NULL }
13793 static int
13794 dissect_gsm_map_ms_NoteMsPresentForGprsRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13795 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13796 gsm_map_ms_NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes);
13798 return offset;
13802 static const value_string gsm_map_ms_SendingNode_Number_vals[] = {
13803 { 0, "hlr-Number" },
13804 { 1, "css-Number" },
13805 { 0, NULL }
13808 static const ber_choice_t gsm_map_ms_SendingNode_Number_choice[] = {
13809 { 0, &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13810 { 1, &hf_gsm_map_ms_css_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13811 { 0, NULL, 0, 0, 0, NULL }
13814 static int
13815 dissect_gsm_map_ms_SendingNode_Number(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13816 offset = dissect_ber_choice(actx, tree, tvb, offset,
13817 gsm_map_ms_SendingNode_Number_choice, hf_index, ett_gsm_map_ms_SendingNode_Number,
13818 NULL);
13820 return offset;
13824 static const ber_sequence_t gsm_map_ms_ResetArg_sequence[] = {
13825 { &hf_gsm_map_ms_sendingNodenumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SendingNode_Number },
13826 { &hf_gsm_map_ms_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
13827 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13828 { &hf_gsm_map_ms_reset_Id_List, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Reset_Id_List },
13829 { &hf_gsm_map_ms_subscriptionData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_InsertSubscriberDataArg },
13830 { &hf_gsm_map_ms_subscriptionDataDeletion, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DeleteSubscriberDataArg },
13831 { NULL, 0, 0, 0, NULL }
13834 static int
13835 dissect_gsm_map_ms_ResetArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13836 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13837 gsm_map_ms_ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg);
13839 return offset;
13843 static const ber_sequence_t gsm_map_ms_RestoreDataArg_sequence[] = {
13844 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13845 { &hf_gsm_map_ms_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
13846 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13847 { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
13848 { &hf_gsm_map_ms_restorationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13849 { NULL, 0, 0, 0, NULL }
13852 static int
13853 dissect_gsm_map_ms_RestoreDataArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13854 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13855 gsm_map_ms_RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg);
13857 return offset;
13861 static const ber_sequence_t gsm_map_ms_RestoreDataRes_sequence[] = {
13862 { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13863 { &hf_gsm_map_ms_msNotReachable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13864 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13865 { NULL, 0, 0, 0, NULL }
13868 static int
13869 dissect_gsm_map_ms_RestoreDataRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13870 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13871 gsm_map_ms_RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes);
13873 return offset;
13877 static const value_string gsm_map_ms_DomainType_vals[] = {
13878 { 0, "cs-Domain" },
13879 { 1, "ps-Domain" },
13880 { 0, NULL }
13884 static int
13885 dissect_gsm_map_ms_DomainType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13886 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13887 NULL);
13889 return offset;
13893 static int * const gsm_map_ms_RequestedNodes_bits[] = {
13894 &hf_gsm_map_ms_RequestedNodes_mme,
13895 &hf_gsm_map_ms_RequestedNodes_sgsn,
13896 NULL
13899 static int
13900 dissect_gsm_map_ms_RequestedNodes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13901 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13902 gsm_map_ms_RequestedNodes_bits, 2, hf_index, ett_gsm_map_ms_RequestedNodes,
13903 NULL);
13905 return offset;
13909 static const ber_sequence_t gsm_map_ms_RequestedInfo_sequence[] = {
13910 { &hf_gsm_map_ms_locationInformation_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13911 { &hf_gsm_map_ms_subscriberState_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13912 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13913 { &hf_gsm_map_ms_currentLocation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13914 { &hf_gsm_map_ms_requestedDomain, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DomainType },
13915 { &hf_gsm_map_ms_imei_01 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13916 { &hf_gsm_map_ms_ms_classmark, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13917 { &hf_gsm_map_ms_mnpRequestedInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13918 { &hf_gsm_map_ms_locationInformationEPS_Supported, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13919 { &hf_gsm_map_ms_t_adsData, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13920 { &hf_gsm_map_ms_requestedNodes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedNodes },
13921 { &hf_gsm_map_ms_servingNodeIndication, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13922 { &hf_gsm_map_ms_localTimeZoneRequest, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13923 { NULL, 0, 0, 0, NULL }
13926 static int
13927 dissect_gsm_map_ms_RequestedInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13928 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13929 gsm_map_ms_RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo);
13931 return offset;
13935 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoArg_sequence[] = {
13936 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13937 { &hf_gsm_map_ms_lmsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
13938 { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
13939 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13940 { &hf_gsm_map_ms_callPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
13941 { NULL, 0, 0, 0, NULL }
13944 static int
13945 dissect_gsm_map_ms_ProvideSubscriberInfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13946 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13947 gsm_map_ms_ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg);
13949 return offset;
13953 static const value_string gsm_map_ms_NotReachableReason_vals[] = {
13954 { 0, "msPurged" },
13955 { 1, "imsiDetached" },
13956 { 2, "restrictedArea" },
13957 { 3, "notRegistered" },
13958 { 0, NULL }
13962 static int
13963 dissect_gsm_map_ms_NotReachableReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13964 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13965 NULL);
13967 return offset;
13971 const value_string gsm_map_ms_SubscriberState_vals[] = {
13972 { 0, "assumedIdle" },
13973 { 1, "camelBusy" },
13974 { 2, "netDetNotReachable" },
13975 { 3, "notProvidedFromVLR" },
13976 { 0, NULL }
13979 static const ber_choice_t gsm_map_ms_SubscriberState_choice[] = {
13980 { 0, &hf_gsm_map_ms_assumedIdle, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13981 { 1, &hf_gsm_map_ms_camelBusy, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13982 { 2, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
13983 { 3, &hf_gsm_map_ms_notProvidedFromVLR, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13984 { 0, NULL, 0, 0, 0, NULL }
13988 dissect_gsm_map_ms_SubscriberState(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13989 offset = dissect_ber_choice(actx, tree, tvb, offset,
13990 gsm_map_ms_SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState,
13991 NULL);
13993 return offset;
13998 static int
13999 dissect_gsm_map_ms_NSAPI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14000 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14001 NULL);
14003 return offset;
14008 static int
14009 dissect_gsm_map_ms_TransactionId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14010 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14011 NULL);
14013 return offset;
14018 static int
14019 dissect_gsm_map_ms_TEID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14020 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14021 NULL);
14023 return offset;
14029 dissect_gsm_map_ms_GPRSChargingID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14030 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14031 NULL);
14033 return offset;
14037 static const ber_sequence_t gsm_map_ms_PDP_ContextInfo_sequence[] = {
14038 { &hf_gsm_map_ms_pdp_ContextIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
14039 { &hf_gsm_map_ms_pdp_ContextActive, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14040 { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
14041 { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
14042 { &hf_gsm_map_ms_apn_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
14043 { &hf_gsm_map_ms_apn_InUse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
14044 { &hf_gsm_map_ms_nsapi , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NSAPI },
14045 { &hf_gsm_map_ms_transactionId, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TransactionId },
14046 { &hf_gsm_map_ms_teid_ForGnAndGp, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
14047 { &hf_gsm_map_ms_teid_ForIu, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
14048 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
14049 { &hf_gsm_map_ms_qos_Subscribed_01, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
14050 { &hf_gsm_map_ms_qos_Requested, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
14051 { &hf_gsm_map_ms_qos_Negotiated, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
14052 { &hf_gsm_map_ms_chargingId, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
14053 { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
14054 { &hf_gsm_map_ms_rnc_Address, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
14055 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14056 { &hf_gsm_map_ms_qos2_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
14057 { &hf_gsm_map_ms_qos2_Requested, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
14058 { &hf_gsm_map_ms_qos2_Negotiated, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
14059 { &hf_gsm_map_ms_qos3_Subscribed, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
14060 { &hf_gsm_map_ms_qos3_Requested, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
14061 { &hf_gsm_map_ms_qos3_Negotiated, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
14062 { &hf_gsm_map_ms_qos4_Subscribed, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
14063 { &hf_gsm_map_ms_qos4_Requested, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
14064 { &hf_gsm_map_ms_qos4_Negotiated, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
14065 { &hf_gsm_map_ms_ext_pdp_Type, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_PDP_Type },
14066 { &hf_gsm_map_ms_ext_pdp_Address, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
14067 { NULL, 0, 0, 0, NULL }
14070 static int
14071 dissect_gsm_map_ms_PDP_ContextInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14072 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14073 gsm_map_ms_PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo);
14075 return offset;
14079 static const ber_sequence_t gsm_map_ms_PDP_ContextInfoList_sequence_of[1] = {
14080 { &hf_gsm_map_ms_PDP_ContextInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_ContextInfo },
14083 static int
14084 dissect_gsm_map_ms_PDP_ContextInfoList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14085 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14086 gsm_map_ms_PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList);
14088 return offset;
14092 static const value_string gsm_map_ms_PS_SubscriberState_vals[] = {
14093 { 0, "notProvidedFromSGSNorMME" },
14094 { 1, "ps-Detached" },
14095 { 2, "ps-AttachedNotReachableForPaging" },
14096 { 3, "ps-AttachedReachableForPaging" },
14097 { 4, "ps-PDP-ActiveNotReachableForPaging" },
14098 { 5, "ps-PDP-ActiveReachableForPaging" },
14099 { 6, "netDetNotReachable" },
14100 { 0, NULL }
14103 static const ber_choice_t gsm_map_ms_PS_SubscriberState_choice[] = {
14104 { 0, &hf_gsm_map_ms_notProvidedFromSGSNorMME, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14105 { 1, &hf_gsm_map_ms_ps_Detached, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14106 { 2, &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14107 { 3, &hf_gsm_map_ms_ps_AttachedReachableForPaging, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14108 { 4, &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
14109 { 5, &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
14110 { 6, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
14111 { 0, NULL, 0, 0, 0, NULL }
14114 static int
14115 dissect_gsm_map_ms_PS_SubscriberState(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14116 offset = dissect_ber_choice(actx, tree, tvb, offset,
14117 gsm_map_ms_PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState,
14118 NULL);
14120 return offset;
14126 dissect_gsm_map_ms_MS_Classmark2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14127 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14128 NULL);
14130 return offset;
14135 static int
14136 dissect_gsm_map_ms_MSNetworkCapability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14137 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14138 NULL);
14140 return offset;
14145 static int
14146 dissect_gsm_map_ms_MSRadioAccessCapability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14147 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14148 NULL);
14150 return offset;
14154 static const ber_sequence_t gsm_map_ms_GPRSMSClass_sequence[] = {
14155 { &hf_gsm_map_ms_mSNetworkCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSNetworkCapability },
14156 { &hf_gsm_map_ms_mSRadioAccessCapability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSRadioAccessCapability },
14157 { NULL, 0, 0, 0, NULL }
14161 dissect_gsm_map_ms_GPRSMSClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14162 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14163 gsm_map_ms_GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass);
14165 return offset;
14170 static int
14171 dissect_gsm_map_ms_RouteingNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14172 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
14174 return offset;
14178 static const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = {
14179 { 0, "notKnownToBePorted" },
14180 { 1, "ownNumberPortedOut" },
14181 { 2, "foreignNumberPortedToForeignNetwork" },
14182 { 4, "ownNumberNotPortedOut" },
14183 { 5, "foreignNumberPortedIn" },
14184 { 0, NULL }
14188 static int
14189 dissect_gsm_map_ms_NumberPortabilityStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14190 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14191 NULL);
14193 return offset;
14197 static const ber_sequence_t gsm_map_ms_MNPInfoRes_sequence[] = {
14198 { &hf_gsm_map_ms_routeingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RouteingNumber },
14199 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14200 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14201 { &hf_gsm_map_ms_numberPortabilityStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
14202 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14203 { NULL, 0, 0, 0, NULL }
14206 static int
14207 dissect_gsm_map_ms_MNPInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14208 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14209 gsm_map_ms_MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes);
14211 return offset;
14215 static const value_string gsm_map_ms_IMS_VoiceOverPS_SessionsInd_vals[] = {
14216 { 0, "imsVoiceOverPS-SessionsNotSupported" },
14217 { 1, "imsVoiceOverPS-SessionsSupported" },
14218 { 2, "unknown" },
14219 { 0, NULL }
14223 static int
14224 dissect_gsm_map_ms_IMS_VoiceOverPS_SessionsInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14225 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14226 NULL);
14228 return offset;
14233 static int
14234 dissect_gsm_map_ms_TimeZone(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14235 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14236 NULL);
14238 return offset;
14242 static const value_string gsm_map_ms_DaylightSavingTime_vals[] = {
14243 { 0, "noAdjustment" },
14244 { 1, "plusOneHourAdjustment" },
14245 { 2, "plusTwoHoursAdjustment" },
14246 { 0, NULL }
14250 static int
14251 dissect_gsm_map_ms_DaylightSavingTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14252 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14253 NULL);
14255 return offset;
14259 static const ber_sequence_t gsm_map_ms_LocationInformation5GS_sequence[] = {
14260 { &hf_gsm_map_ms_nrCellGlobalIdentity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NR_CGI },
14261 { &hf_gsm_map_ms_e_utranCellGlobalIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_E_UTRAN_CGI },
14262 { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
14263 { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
14264 { &hf_gsm_map_ms_amf_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
14265 { &hf_gsm_map_ms_trackingAreaIdentity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TA_Id },
14266 { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14267 { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
14268 { &hf_gsm_map_ms_vplmnId , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
14269 { &hf_gsm_map_ms_localtimeZone, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TimeZone },
14270 { &hf_gsm_map_ms_rat_Type , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
14271 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14272 { &hf_gsm_map_ms_nrTrackingAreaIdentity, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NR_TA_Id },
14273 { NULL, 0, 0, 0, NULL }
14276 static int
14277 dissect_gsm_map_ms_LocationInformation5GS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14278 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14279 gsm_map_ms_LocationInformation5GS_sequence, hf_index, ett_gsm_map_ms_LocationInformation5GS);
14281 return offset;
14285 static const ber_sequence_t gsm_map_ms_SubscriberInfo_sequence[] = {
14286 { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
14287 { &hf_gsm_map_ms_subscriberState, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SubscriberState },
14288 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14289 { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
14290 { &hf_gsm_map_ms_ps_SubscriberState, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_PS_SubscriberState },
14291 { &hf_gsm_map_ms_imei , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
14292 { &hf_gsm_map_ms_ms_Classmark2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
14293 { &hf_gsm_map_ms_gprs_MS_Class, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
14294 { &hf_gsm_map_ms_mnpInfoRes, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MNPInfoRes },
14295 { &hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IMS_VoiceOverPS_SessionsInd },
14296 { &hf_gsm_map_ms_lastUE_ActivityTime, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
14297 { &hf_gsm_map_ms_lastRAT_Type, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
14298 { &hf_gsm_map_ms_eps_SubscriberState, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_PS_SubscriberState },
14299 { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS },
14300 { &hf_gsm_map_ms_timeZone , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TimeZone },
14301 { &hf_gsm_map_ms_daylightSavingTime, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DaylightSavingTime },
14302 { &hf_gsm_map_ms_locationInformation5GS, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation5GS },
14303 { NULL, 0, 0, 0, NULL }
14306 static int
14307 dissect_gsm_map_ms_SubscriberInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14308 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14309 gsm_map_ms_SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo);
14311 return offset;
14315 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoRes_sequence[] = {
14316 { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
14317 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14318 { NULL, 0, 0, 0, NULL }
14321 static int
14322 dissect_gsm_map_ms_ProvideSubscriberInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14323 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14324 gsm_map_ms_ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes);
14326 return offset;
14330 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationArg_sequence[] = {
14331 { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
14332 { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
14333 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14334 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14335 { NULL, 0, 0, 0, NULL }
14338 static int
14339 dissect_gsm_map_ms_AnyTimeInterrogationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14340 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14341 gsm_map_ms_AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg);
14343 return offset;
14347 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationRes_sequence[] = {
14348 { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
14349 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14350 { NULL, 0, 0, 0, NULL }
14353 static int
14354 dissect_gsm_map_ms_AnyTimeInterrogationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14355 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14356 gsm_map_ms_AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes);
14358 return offset;
14362 static const value_string gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals[] = {
14363 { 0, "o-CSI" },
14364 { 1, "t-CSI" },
14365 { 2, "vt-CSI" },
14366 { 3, "tif-CSI" },
14367 { 4, "gprs-CSI" },
14368 { 5, "mo-sms-CSI" },
14369 { 6, "ss-CSI" },
14370 { 7, "m-CSI" },
14371 { 8, "d-csi" },
14372 { 0, NULL }
14376 static int
14377 dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14378 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14379 NULL);
14381 return offset;
14385 static const value_string gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
14386 { 0, "mt-sms-CSI" },
14387 { 1, "mg-csi" },
14388 { 2, "o-IM-CSI" },
14389 { 3, "d-IM-CSI" },
14390 { 4, "vt-IM-CSI" },
14391 { 0, NULL }
14395 static int
14396 dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14397 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14398 NULL);
14400 return offset;
14404 static const ber_sequence_t gsm_map_ms_RequestedSubscriptionInfo_sequence[] = {
14405 { &hf_gsm_map_ms_requestedSS_Info, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_ForBS_Code },
14406 { &hf_gsm_map_ms_odb , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14407 { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
14408 { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14409 { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14410 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14411 { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
14412 { &hf_gsm_map_ms_msisdn_BS_List_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14413 { &hf_gsm_map_ms_csg_SubscriptionDataRequested, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14414 { &hf_gsm_map_ms_cw_Info , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14415 { &hf_gsm_map_ms_clip_Info, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14416 { &hf_gsm_map_ms_clir_Info, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14417 { &hf_gsm_map_ms_hold_Info, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14418 { &hf_gsm_map_ms_ect_Info , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14419 { NULL, 0, 0, 0, NULL }
14422 static int
14423 dissect_gsm_map_ms_RequestedSubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14424 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14425 gsm_map_ms_RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo);
14427 return offset;
14431 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence[] = {
14432 { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
14433 { &hf_gsm_map_ms_requestedSubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedSubscriptionInfo },
14434 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14435 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14436 { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14437 { NULL, 0, 0, 0, NULL }
14440 static int
14441 dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14442 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14443 gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg);
14445 return offset;
14449 static const ber_sequence_t gsm_map_ms_CallForwardingData_sequence[] = {
14450 { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
14451 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
14452 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14453 { NULL, 0, 0, 0, NULL }
14456 static int
14457 dissect_gsm_map_ms_CallForwardingData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14458 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14459 gsm_map_ms_CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData);
14461 return offset;
14466 static int
14467 dissect_gsm_map_ms_WrongPasswordAttemptsCounter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14468 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14469 NULL);
14471 return offset;
14475 static const ber_sequence_t gsm_map_ms_CallBarringData_sequence[] = {
14476 { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
14477 { &hf_gsm_map_ms_password , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_Password },
14478 { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
14479 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
14480 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14481 { NULL, 0, 0, 0, NULL }
14484 static int
14485 dissect_gsm_map_ms_CallBarringData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14486 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14487 gsm_map_ms_CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData);
14489 return offset;
14493 static const ber_sequence_t gsm_map_ms_ODB_Info_sequence[] = {
14494 { &hf_gsm_map_ms_odb_Data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_Data },
14495 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
14496 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14497 { NULL, 0, 0, 0, NULL }
14500 static int
14501 dissect_gsm_map_ms_ODB_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14502 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14503 gsm_map_ms_ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info);
14505 return offset;
14509 static const ber_sequence_t gsm_map_ms_CAMEL_SubscriptionInfo_sequence[] = {
14510 { &hf_gsm_map_ms_o_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
14511 { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
14512 { &hf_gsm_map_ms_d_CSI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
14513 { &hf_gsm_map_ms_t_CSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
14514 { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
14515 { &hf_gsm_map_ms_vt_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
14516 { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
14517 { &hf_gsm_map_ms_tif_CSI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14518 { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14519 { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
14520 { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
14521 { &hf_gsm_map_ms_ss_CSI , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
14522 { &hf_gsm_map_ms_m_CSI , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
14523 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14524 { &hf_gsm_map_ms_specificCSIDeletedList, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
14525 { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
14526 { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
14527 { &hf_gsm_map_ms_mg_csi , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
14528 { &hf_gsm_map_ms_o_IM_CSI , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
14529 { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
14530 { &hf_gsm_map_ms_d_IM_CSI , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
14531 { &hf_gsm_map_ms_vt_IM_CSI, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
14532 { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
14533 { NULL, 0, 0, 0, NULL }
14536 static int
14537 dissect_gsm_map_ms_CAMEL_SubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14538 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14539 gsm_map_ms_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo);
14541 return offset;
14545 static const ber_sequence_t gsm_map_ms_MSISDN_BS_sequence[] = {
14546 { &hf_gsm_map_ms_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14547 { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
14548 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14549 { NULL, 0, 0, 0, NULL }
14552 static int
14553 dissect_gsm_map_ms_MSISDN_BS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14554 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14555 gsm_map_ms_MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS);
14557 return offset;
14561 static const ber_sequence_t gsm_map_ms_MSISDN_BS_List_sequence_of[1] = {
14562 { &hf_gsm_map_ms_MSISDN_BS_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MSISDN_BS },
14565 static int
14566 dissect_gsm_map_ms_MSISDN_BS_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14567 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14568 gsm_map_ms_MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List);
14570 return offset;
14574 static const ber_sequence_t gsm_map_ms_Ext_CwFeature_sequence[] = {
14575 { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14576 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14577 { NULL, 0, 0, 0, NULL }
14580 static int
14581 dissect_gsm_map_ms_Ext_CwFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14582 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14583 gsm_map_ms_Ext_CwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CwFeature);
14585 return offset;
14589 static const ber_sequence_t gsm_map_ms_Ext_CwFeatureList_sequence_of[1] = {
14590 { &hf_gsm_map_ms_Ext_CwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CwFeature },
14593 static int
14594 dissect_gsm_map_ms_Ext_CwFeatureList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14595 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14596 gsm_map_ms_Ext_CwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CwFeatureList);
14598 return offset;
14602 static const ber_sequence_t gsm_map_ms_CallWaitingData_sequence[] = {
14603 { &hf_gsm_map_ms_cwFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CwFeatureList },
14604 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14605 { NULL, 0, 0, 0, NULL }
14608 static int
14609 dissect_gsm_map_ms_CallWaitingData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14610 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14611 gsm_map_ms_CallWaitingData_sequence, hf_index, ett_gsm_map_ms_CallWaitingData);
14613 return offset;
14617 static const ber_sequence_t gsm_map_ms_CallHoldData_sequence[] = {
14618 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14619 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14620 { NULL, 0, 0, 0, NULL }
14623 static int
14624 dissect_gsm_map_ms_CallHoldData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14625 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14626 gsm_map_ms_CallHoldData_sequence, hf_index, ett_gsm_map_ms_CallHoldData);
14628 return offset;
14632 static const ber_sequence_t gsm_map_ms_ClipData_sequence[] = {
14633 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14634 { &hf_gsm_map_ms_overrideCategory, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
14635 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14636 { NULL, 0, 0, 0, NULL }
14639 static int
14640 dissect_gsm_map_ms_ClipData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14641 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14642 gsm_map_ms_ClipData_sequence, hf_index, ett_gsm_map_ms_ClipData);
14644 return offset;
14648 static const ber_sequence_t gsm_map_ms_ClirData_sequence[] = {
14649 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14650 { &hf_gsm_map_ms_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
14651 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14652 { NULL, 0, 0, 0, NULL }
14655 static int
14656 dissect_gsm_map_ms_ClirData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14657 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14658 gsm_map_ms_ClirData_sequence, hf_index, ett_gsm_map_ms_ClirData);
14660 return offset;
14664 static const ber_sequence_t gsm_map_ms_EctData_sequence[] = {
14665 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14666 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14667 { NULL, 0, 0, 0, NULL }
14670 static int
14671 dissect_gsm_map_ms_EctData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14672 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14673 gsm_map_ms_EctData_sequence, hf_index, ett_gsm_map_ms_EctData);
14675 return offset;
14679 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence[] = {
14680 { &hf_gsm_map_ms_callForwardingData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallForwardingData },
14681 { &hf_gsm_map_ms_callBarringData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallBarringData },
14682 { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
14683 { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
14684 { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
14685 { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
14686 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14687 { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
14688 { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
14689 { &hf_gsm_map_ms_msisdn_BS_List, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSISDN_BS_List },
14690 { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
14691 { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
14692 { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
14693 { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
14694 { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
14695 { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
14696 { NULL, 0, 0, 0, NULL }
14699 static int
14700 dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14701 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14702 gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes);
14704 return offset;
14708 static const value_string gsm_map_ms_ModificationInstruction_vals[] = {
14709 { 0, "deactivate" },
14710 { 1, "activate" },
14711 { 0, NULL }
14715 static int
14716 dissect_gsm_map_ms_ModificationInstruction(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14717 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14718 NULL);
14720 return offset;
14724 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CF_Info_sequence[] = {
14725 { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14726 { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14727 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14728 { &hf_gsm_map_ms_forwardedToNumber_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14729 { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
14730 { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
14731 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14732 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14733 { NULL, 0, 0, 0, NULL }
14736 static int
14737 dissect_gsm_map_ms_ModificationRequestFor_CF_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14738 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14739 gsm_map_ms_ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info);
14741 return offset;
14745 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CB_Info_sequence[] = {
14746 { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14747 { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14748 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14749 { &hf_gsm_map_ms_password , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
14750 { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
14751 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14752 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14753 { NULL, 0, 0, 0, NULL }
14756 static int
14757 dissect_gsm_map_ms_ModificationRequestFor_CB_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14758 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14759 gsm_map_ms_ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info);
14761 return offset;
14765 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSI_sequence[] = {
14766 { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
14767 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14768 { &hf_gsm_map_ms_modifyCSI_State, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14769 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14770 { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
14771 { NULL, 0, 0, 0, NULL }
14774 static int
14775 dissect_gsm_map_ms_ModificationRequestFor_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14776 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14777 gsm_map_ms_ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI);
14779 return offset;
14783 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ODB_data_sequence[] = {
14784 { &hf_gsm_map_ms_odb_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
14785 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14786 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14787 { NULL, 0, 0, 0, NULL }
14790 static int
14791 dissect_gsm_map_ms_ModificationRequestFor_ODB_data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14792 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14793 gsm_map_ms_ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data);
14795 return offset;
14799 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence[] = {
14800 { &hf_gsm_map_ms_modifyRegistrationStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14801 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14802 { &hf_gsm_map_ms_ip_sm_gw_DiameterAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
14803 { NULL, 0, 0, 0, NULL }
14806 static int
14807 dissect_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14808 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14809 gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data);
14811 return offset;
14815 static int * const gsm_map_ms_RequestedServingNode_bits[] = {
14816 &hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn,
14817 NULL
14820 static int
14821 dissect_gsm_map_ms_RequestedServingNode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14822 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
14823 gsm_map_ms_RequestedServingNode_bits, 1, hf_index, ett_gsm_map_ms_RequestedServingNode,
14824 NULL);
14826 return offset;
14830 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSG_sequence[] = {
14831 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14832 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14833 { NULL, 0, 0, 0, NULL }
14836 static int
14837 dissect_gsm_map_ms_ModificationRequestFor_CSG(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14838 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14839 gsm_map_ms_ModificationRequestFor_CSG_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSG);
14841 return offset;
14845 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CW_Info_sequence[] = {
14846 { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14847 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14848 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14849 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14850 { NULL, 0, 0, 0, NULL }
14853 static int
14854 dissect_gsm_map_ms_ModificationRequestFor_CW_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14855 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14856 gsm_map_ms_ModificationRequestFor_CW_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CW_Info);
14858 return offset;
14862 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CLIP_Info_sequence[] = {
14863 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14864 { &hf_gsm_map_ms_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
14865 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14866 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14867 { NULL, 0, 0, 0, NULL }
14870 static int
14871 dissect_gsm_map_ms_ModificationRequestFor_CLIP_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14872 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14873 gsm_map_ms_ModificationRequestFor_CLIP_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CLIP_Info);
14875 return offset;
14879 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CLIR_Info_sequence[] = {
14880 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14881 { &hf_gsm_map_ms_cliRestrictionOption, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
14882 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14883 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14884 { NULL, 0, 0, 0, NULL }
14887 static int
14888 dissect_gsm_map_ms_ModificationRequestFor_CLIR_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14889 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14890 gsm_map_ms_ModificationRequestFor_CLIR_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CLIR_Info);
14892 return offset;
14896 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CH_Info_sequence[] = {
14897 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14898 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14899 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14900 { NULL, 0, 0, 0, NULL }
14903 static int
14904 dissect_gsm_map_ms_ModificationRequestFor_CH_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14905 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14906 gsm_map_ms_ModificationRequestFor_CH_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CH_Info);
14908 return offset;
14912 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ECT_Info_sequence[] = {
14913 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14914 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14915 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14916 { NULL, 0, 0, 0, NULL }
14919 static int
14920 dissect_gsm_map_ms_ModificationRequestFor_ECT_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14921 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14922 gsm_map_ms_ModificationRequestFor_ECT_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ECT_Info);
14924 return offset;
14928 static const ber_sequence_t gsm_map_ms_AnyTimeModificationArg_sequence[] = {
14929 { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
14930 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14931 { &hf_gsm_map_ms_modificationRequestFor_CF_Info, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CF_Info },
14932 { &hf_gsm_map_ms_modificationRequestFor_CB_Info, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CB_Info },
14933 { &hf_gsm_map_ms_modificationRequestFor_CSI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSI },
14934 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14935 { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14936 { &hf_gsm_map_ms_modificationRequestFor_ODB_data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ODB_data },
14937 { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data },
14938 { &hf_gsm_map_ms_activationRequestForUE_reachability, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedServingNode },
14939 { &hf_gsm_map_ms_modificationRequestFor_CSG, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSG },
14940 { &hf_gsm_map_ms_modificationRequestFor_CW_Data, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CW_Info },
14941 { &hf_gsm_map_ms_modificationRequestFor_CLIP_Data, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CLIP_Info },
14942 { &hf_gsm_map_ms_modificationRequestFor_CLIR_Data, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CLIR_Info },
14943 { &hf_gsm_map_ms_modificationRequestFor_HOLD_Data, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CH_Info },
14944 { &hf_gsm_map_ms_modificationRequestFor_ECT_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ECT_Info },
14945 { NULL, 0, 0, 0, NULL }
14948 static int
14949 dissect_gsm_map_ms_AnyTimeModificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14950 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14951 gsm_map_ms_AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg);
14953 return offset;
14957 static int * const gsm_map_ms_ServingNode_bits[] = {
14958 &hf_gsm_map_ms_ServingNode_mme,
14959 &hf_gsm_map_ms_ServingNode_sgsn,
14960 NULL
14963 static int
14964 dissect_gsm_map_ms_ServingNode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14965 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
14966 gsm_map_ms_ServingNode_bits, 2, hf_index, ett_gsm_map_ms_ServingNode,
14967 NULL);
14969 return offset;
14973 static const ber_sequence_t gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence[] = {
14974 { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14975 { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
14976 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14977 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14978 { NULL, 0, 0, 0, NULL }
14981 static int
14982 dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14983 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14984 gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE);
14986 return offset;
14990 static const ber_sequence_t gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence[] = {
14991 { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14992 { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
14993 { &hf_gsm_map_ms_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
14994 { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
14995 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14996 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14997 { NULL, 0, 0, 0, NULL }
15000 static int
15001 dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15002 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15003 gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE);
15005 return offset;
15009 static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = {
15010 { 0, "forwardingInfoFor-CSE" },
15011 { 1, "callBarringInfoFor-CSE" },
15012 { 0, NULL }
15015 static const ber_choice_t gsm_map_ms_Ext_SS_InfoFor_CSE_choice[] = {
15016 { 0, &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
15017 { 1, &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
15018 { 0, NULL, 0, 0, 0, NULL }
15021 static int
15022 dissect_gsm_map_ms_Ext_SS_InfoFor_CSE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15023 offset = dissect_ber_choice(actx, tree, tvb, offset,
15024 gsm_map_ms_Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
15025 NULL);
15027 return offset;
15031 static const ber_sequence_t gsm_map_ms_AnyTimeModificationRes_sequence[] = {
15032 { &hf_gsm_map_ms_ss_InfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_Ext_SS_InfoFor_CSE },
15033 { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
15034 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15035 { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
15036 { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
15037 { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
15038 { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
15039 { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
15040 { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
15041 { &hf_gsm_map_ms_serviceCentreAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
15042 { NULL, 0, 0, 0, NULL }
15045 static int
15046 dissect_gsm_map_ms_AnyTimeModificationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15047 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15048 gsm_map_ms_AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes);
15050 return offset;
15054 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedArg_sequence[] = {
15055 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
15056 { &hf_gsm_map_ms_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15057 { &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
15058 { &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
15059 { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
15060 { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
15061 { &hf_gsm_map_ms_allInformationSent, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
15062 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15063 { &hf_gsm_map_ms_ue_reachable, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServingNode },
15064 { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
15065 { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
15066 { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
15067 { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
15068 { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
15069 { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
15070 { NULL, 0, 0, 0, NULL }
15073 static int
15074 dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15075 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15076 gsm_map_ms_NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg);
15078 return offset;
15082 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedRes_sequence[] = {
15083 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15084 { NULL, 0, 0, 0, NULL }
15087 static int
15088 dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15089 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15090 gsm_map_ms_NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes);
15092 return offset;
15096 static const ber_sequence_t gsm_map_ms_NoteMM_EventArg_sequence[] = {
15097 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
15098 { &hf_gsm_map_ms_eventMet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MM_Code },
15099 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15100 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15101 { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
15102 { &hf_gsm_map_ms_supportedCAMELPhases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
15103 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15104 { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
15105 { &hf_gsm_map_ms_offeredCamel4Functionalities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
15106 { NULL, 0, 0, 0, NULL }
15109 static int
15110 dissect_gsm_map_ms_NoteMM_EventArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15111 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15112 gsm_map_ms_NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg);
15114 return offset;
15118 static const ber_sequence_t gsm_map_ms_NoteMM_EventRes_sequence[] = {
15119 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15120 { NULL, 0, 0, 0, NULL }
15123 static int
15124 dissect_gsm_map_ms_NoteMM_EventRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15125 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15126 gsm_map_ms_NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes);
15128 return offset;
15132 static const ber_sequence_t gsm_map_ms_UpdateVcsgLocationArg_sequence[] = {
15133 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
15134 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15135 { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15136 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15137 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15138 { NULL, 0, 0, 0, NULL }
15141 static int
15142 dissect_gsm_map_ms_UpdateVcsgLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15143 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15144 gsm_map_ms_UpdateVcsgLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateVcsgLocationArg);
15146 return offset;
15150 static const ber_sequence_t gsm_map_ms_UpdateVcsgLocationRes_sequence[] = {
15151 { &hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
15152 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15153 { NULL, 0, 0, 0, NULL }
15156 static int
15157 dissect_gsm_map_ms_UpdateVcsgLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15158 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15159 gsm_map_ms_UpdateVcsgLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateVcsgLocationRes);
15161 return offset;
15165 static const ber_sequence_t gsm_map_ms_CancelVcsgLocationArg_sequence[] = {
15166 { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
15167 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15168 { NULL, 0, 0, 0, NULL }
15171 static int
15172 dissect_gsm_map_ms_CancelVcsgLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15173 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15174 gsm_map_ms_CancelVcsgLocationArg_sequence, hf_index, ett_gsm_map_ms_CancelVcsgLocationArg);
15176 return offset;
15180 static const ber_sequence_t gsm_map_ms_CancelVcsgLocationRes_sequence[] = {
15181 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15182 { NULL, 0, 0, 0, NULL }
15185 static int
15186 dissect_gsm_map_ms_CancelVcsgLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15187 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15188 gsm_map_ms_CancelVcsgLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelVcsgLocationRes);
15190 return offset;
15193 /*--- PDUs ---*/
15195 static int dissect_gsm_map_ms_SendAuthenticationInfoArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
15196 int offset = 0;
15197 asn1_ctx_t asn1_ctx;
15198 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
15199 offset = dissect_gsm_map_ms_SendAuthenticationInfoArg(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoArg_PDU);
15200 return offset;
15202 static int dissect_gsm_map_ms_SendAuthenticationInfoRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
15203 int offset = 0;
15204 asn1_ctx_t asn1_ctx;
15205 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
15206 offset = dissect_gsm_map_ms_SendAuthenticationInfoRes(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoRes_PDU);
15207 return offset;
15211 /* --- Module MAP-CH-DataTypes --- --- --- */
15215 static int
15216 dissect_gsm_map_ch_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15217 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
15219 return offset;
15223 static const ber_sequence_t gsm_map_ch_CUG_CheckInfo_sequence[] = {
15224 { &hf_gsm_map_ch_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
15225 { &hf_gsm_map_ch_cug_OutgoingAccess, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
15226 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15227 { NULL, 0, 0, 0, NULL }
15231 dissect_gsm_map_ch_CUG_CheckInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15232 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15233 gsm_map_ch_CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo);
15235 return offset;
15240 static int
15241 dissect_gsm_map_ch_NumberOfForwarding(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15242 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15243 NULL);
15245 return offset;
15249 static const value_string gsm_map_ch_InterrogationType_vals[] = {
15250 { 0, "basicCall" },
15251 { 1, "forwarding" },
15252 { 0, NULL }
15256 static int
15257 dissect_gsm_map_ch_InterrogationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15258 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15259 NULL);
15261 return offset;
15266 static int
15267 dissect_gsm_map_ch_OR_Phase(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15268 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15269 NULL);
15271 return offset;
15277 dissect_gsm_map_ch_CallReferenceNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15278 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15279 NULL);
15281 return offset;
15285 static const value_string gsm_map_ch_ForwardingReason_vals[] = {
15286 { 0, "notReachable" },
15287 { 1, "busy" },
15288 { 2, "noReply" },
15289 { 0, NULL }
15293 static int
15294 dissect_gsm_map_ch_ForwardingReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15295 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15296 NULL);
15298 return offset;
15302 static const ber_sequence_t gsm_map_ch_CamelInfo_sequence[] = {
15303 { &hf_gsm_map_ch_supportedCamelPhases, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SupportedCamelPhases },
15304 { &hf_gsm_map_ch_suppress_T_CSI, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
15305 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15306 { &hf_gsm_map_ch_offeredCamel4CSIs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
15307 { NULL, 0, 0, 0, NULL }
15310 static int
15311 dissect_gsm_map_ch_CamelInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15312 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15313 gsm_map_ch_CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo);
15315 return offset;
15321 dissect_gsm_map_ch_SuppressionOfAnnouncement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15322 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
15324 return offset;
15329 static int
15330 dissect_gsm_map_ch_SupportedCCBS_Phase(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15331 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15332 NULL);
15334 return offset;
15339 static int
15340 dissect_gsm_map_ch_CallDiversionTreatmentIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15341 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15342 NULL);
15344 return offset;
15348 static int * const gsm_map_ch_SuppressMTSS_bits[] = {
15349 &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
15350 &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
15351 NULL
15354 static int
15355 dissect_gsm_map_ch_SuppressMTSS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15356 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
15357 gsm_map_ch_SuppressMTSS_bits, 2, hf_index, ett_gsm_map_ch_SuppressMTSS,
15358 NULL);
15360 return offset;
15364 static const ber_sequence_t gsm_map_ch_SendRoutingInfoArg_sequence[] = {
15365 { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15366 { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
15367 { &hf_gsm_map_ch_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
15368 { &hf_gsm_map_ch_interrogationType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_InterrogationType },
15369 { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15370 { &hf_gsm_map_ch_or_Capability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_OR_Phase },
15371 { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15372 { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
15373 { &hf_gsm_map_ch_forwardingReason, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingReason },
15374 { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15375 { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15376 { &hf_gsm_map_ch_camelInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelInfo },
15377 { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
15378 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15379 { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
15380 { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15381 { &hf_gsm_map_ch_supportedCCBS_Phase, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SupportedCCBS_Phase },
15382 { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
15383 { &hf_gsm_map_ch_istSupportIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
15384 { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15385 { &hf_gsm_map_ch_callDiversionTreatmentIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallDiversionTreatmentIndicator },
15386 { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15387 { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15388 { &hf_gsm_map_ch_suppressIncomingCallBarring, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15389 { &hf_gsm_map_ch_gsmSCF_InitiatedCall, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15390 { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15391 { &hf_gsm_map_ch_networkSignalInfo2, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15392 { &hf_gsm_map_ch_suppressMTSS, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressMTSS },
15393 { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15394 { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
15395 { NULL, 0, 0, 0, NULL }
15398 static int
15399 dissect_gsm_map_ch_SendRoutingInfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15400 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15401 gsm_map_ch_SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg);
15403 return offset;
15407 static const ber_sequence_t gsm_map_ch_ForwardingData_sequence[] = {
15408 { &hf_gsm_map_ch_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15409 { &hf_gsm_map_ch_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
15410 { &hf_gsm_map_ch_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
15411 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15412 { &hf_gsm_map_ch_longForwardedToNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
15413 { NULL, 0, 0, 0, NULL }
15416 static int
15417 dissect_gsm_map_ch_ForwardingData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15418 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15419 gsm_map_ch_ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData);
15421 return offset;
15425 static const value_string gsm_map_ch_RoutingInfo_vals[] = {
15426 { 0, "roamingNumber" },
15427 { 1, "forwardingData" },
15428 { 0, NULL }
15431 static const ber_choice_t gsm_map_ch_RoutingInfo_choice[] = {
15432 { 0, &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15433 { 1, &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
15434 { 0, NULL, 0, 0, 0, NULL }
15437 static int
15438 dissect_gsm_map_ch_RoutingInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15439 offset = dissect_ber_choice(actx, tree, tvb, offset,
15440 gsm_map_ch_RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo,
15441 NULL);
15443 return offset;
15447 static const ber_sequence_t gsm_map_ch_GmscCamelSubscriptionInfo_sequence[] = {
15448 { &hf_gsm_map_ch_t_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
15449 { &hf_gsm_map_ch_o_CSI , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
15450 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15451 { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
15452 { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList },
15453 { &hf_gsm_map_ch_d_csi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
15454 { NULL, 0, 0, 0, NULL }
15457 static int
15458 dissect_gsm_map_ch_GmscCamelSubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15459 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15460 gsm_map_ch_GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo);
15462 return offset;
15466 static const ber_sequence_t gsm_map_ch_CamelRoutingInfo_sequence[] = {
15467 { &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
15468 { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_GmscCamelSubscriptionInfo },
15469 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15470 { NULL, 0, 0, 0, NULL }
15473 static int
15474 dissect_gsm_map_ch_CamelRoutingInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15475 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15476 gsm_map_ch_CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo);
15478 return offset;
15482 static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = {
15483 { 0, "routingInfo" },
15484 { 1, "camelRoutingInfo" },
15485 { 0, NULL }
15488 static const ber_choice_t gsm_map_ch_ExtendedRoutingInfo_choice[] = {
15489 { 0, &hf_gsm_map_ch_routingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
15490 { 1, &hf_gsm_map_ch_camelRoutingInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelRoutingInfo },
15491 { 0, NULL, 0, 0, 0, NULL }
15494 static int
15495 dissect_gsm_map_ch_ExtendedRoutingInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15496 offset = dissect_ber_choice(actx, tree, tvb, offset,
15497 gsm_map_ch_ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo,
15498 NULL);
15500 return offset;
15504 static const ber_sequence_t gsm_map_ch_CCBS_Indicators_sequence[] = {
15505 { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15506 { &hf_gsm_map_ch_keepCCBS_CallIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15507 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15508 { NULL, 0, 0, 0, NULL }
15511 static int
15512 dissect_gsm_map_ch_CCBS_Indicators(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15513 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15514 gsm_map_ch_CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators);
15516 return offset;
15520 static int * const gsm_map_ch_AllowedServices_bits[] = {
15521 &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
15522 &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
15523 NULL
15526 static int
15527 dissect_gsm_map_ch_AllowedServices(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15528 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
15529 gsm_map_ch_AllowedServices_bits, 2, hf_index, ett_gsm_map_ch_AllowedServices,
15530 NULL);
15532 return offset;
15536 static const value_string gsm_map_ch_UnavailabilityCause_vals[] = {
15537 { 1, "bearerServiceNotProvisioned" },
15538 { 2, "teleserviceNotProvisioned" },
15539 { 3, "absentSubscriber" },
15540 { 4, "busySubscriber" },
15541 { 5, "callBarred" },
15542 { 6, "cug-Reject" },
15543 { 0, NULL }
15547 static int
15548 dissect_gsm_map_ch_UnavailabilityCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15549 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15550 NULL);
15552 return offset;
15556 static const ber_sequence_t gsm_map_ch_SendRoutingInfoRes_U_sequence[] = {
15557 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15558 { &hf_gsm_map_ch_extendedRoutingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_ExtendedRoutingInfo },
15559 { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
15560 { &hf_gsm_map_ch_cugSubscriptionFlag, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15561 { &hf_gsm_map_ch_subscriberInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberInfo },
15562 { &hf_gsm_map_ch_ss_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
15563 { &hf_gsm_map_ch_basicService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15564 { &hf_gsm_map_ch_forwardingInterrogationRequired, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15565 { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15566 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15567 { &hf_gsm_map_ch_naea_PreferredCI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
15568 { &hf_gsm_map_ch_ccbs_Indicators, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_Indicators },
15569 { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15570 { &hf_gsm_map_ch_numberPortabilityStatus, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
15571 { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
15572 { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
15573 { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
15574 { &hf_gsm_map_ch_routingInfo2, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_RoutingInfo },
15575 { &hf_gsm_map_ch_ss_List2 , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
15576 { &hf_gsm_map_ch_basicService2, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15577 { &hf_gsm_map_ch_allowedServices, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_AllowedServices },
15578 { &hf_gsm_map_ch_unavailabilityCause, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UnavailabilityCause },
15579 { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15580 { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15581 { NULL, 0, 0, 0, NULL }
15584 static int
15585 dissect_gsm_map_ch_SendRoutingInfoRes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15586 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15587 gsm_map_ch_SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U);
15589 return offset;
15594 static int
15595 dissect_gsm_map_ch_SendRoutingInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15596 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
15597 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ch_SendRoutingInfoRes_U);
15599 return offset;
15603 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberArg_sequence[] = {
15604 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15605 { &hf_gsm_map_ch_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15606 { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15607 { &hf_gsm_map_ch_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
15608 { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15609 { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15610 { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
15611 { &hf_gsm_map_ch_gmsc_Address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15612 { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
15613 { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15614 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15615 { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
15616 { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15617 { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
15618 { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
15619 { &hf_gsm_map_ch_orNotSupportedInGMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15620 { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15621 { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15622 { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15623 { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
15624 { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15625 { &hf_gsm_map_ch_pagingArea, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea },
15626 { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
15627 { &hf_gsm_map_ch_mtrf_Indicator, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15628 { &hf_gsm_map_ch_oldMSC_Number, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15629 { &hf_gsm_map_ch_lastUsedLtePLMN_Id, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
15630 { NULL, 0, 0, 0, NULL }
15633 static int
15634 dissect_gsm_map_ch_ProvideRoamingNumberArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15635 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15636 gsm_map_ch_ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg);
15638 return offset;
15642 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberRes_sequence[] = {
15643 { &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15644 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15645 { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
15646 { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15647 { NULL, 0, 0, 0, NULL }
15650 static int
15651 dissect_gsm_map_ch_ProvideRoamingNumberRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15652 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15653 gsm_map_ch_ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes);
15655 return offset;
15660 static int
15661 dissect_gsm_map_ch_UUIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15662 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15663 NULL);
15665 return offset;
15670 static int
15671 dissect_gsm_map_ch_UUI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15672 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15673 NULL);
15675 return offset;
15679 static const ber_sequence_t gsm_map_ch_UU_Data_sequence[] = {
15680 { &hf_gsm_map_ch_uuIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUIndicator },
15681 { &hf_gsm_map_ch_uui , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUI },
15682 { &hf_gsm_map_ch_uusCFInteraction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15683 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15684 { NULL, 0, 0, 0, NULL }
15688 dissect_gsm_map_ch_UU_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15689 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15690 gsm_map_ch_UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data);
15692 return offset;
15696 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingArg_sequence[] = {
15697 { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
15698 { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15699 { &hf_gsm_map_ch_forwardingData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingData },
15700 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15701 { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
15702 { &hf_gsm_map_ch_o_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
15703 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15704 { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15705 { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15706 { &hf_gsm_map_ch_uu_Data , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data },
15707 { &hf_gsm_map_ch_allInformationSent, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15708 { &hf_gsm_map_ch_d_csi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
15709 { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
15710 { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15711 { &hf_gsm_map_ch_mtRoamingRetry, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15712 { NULL, 0, 0, 0, NULL }
15715 static int
15716 dissect_gsm_map_ch_ResumeCallHandlingArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15717 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15718 gsm_map_ch_ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg);
15720 return offset;
15724 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingRes_sequence[] = {
15725 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15726 { NULL, 0, 0, 0, NULL }
15729 static int
15730 dissect_gsm_map_ch_ResumeCallHandlingRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15731 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15732 gsm_map_ch_ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes);
15734 return offset;
15738 static const value_string gsm_map_ch_ReportingState_vals[] = {
15739 { 0, "stopMonitoring" },
15740 { 1, "startMonitoring" },
15741 { 0, NULL }
15745 static int
15746 dissect_gsm_map_ch_ReportingState(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15747 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15748 NULL);
15750 return offset;
15754 static const ber_sequence_t gsm_map_ch_SetReportingStateArg_sequence[] = {
15755 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15756 { &hf_gsm_map_ch_lmsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
15757 { &hf_gsm_map_ch_ccbs_Monitoring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ReportingState },
15758 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15759 { NULL, 0, 0, 0, NULL }
15762 static int
15763 dissect_gsm_map_ch_SetReportingStateArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15764 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15765 gsm_map_ch_SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg);
15767 return offset;
15771 static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = {
15772 { 0, "ccbsNotIdle" },
15773 { 1, "ccbsIdle" },
15774 { 2, "ccbsNotReachable" },
15775 { 0, NULL }
15779 static int
15780 dissect_gsm_map_ch_CCBS_SubscriberStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15781 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15782 NULL);
15784 return offset;
15788 static const ber_sequence_t gsm_map_ch_SetReportingStateRes_sequence[] = {
15789 { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
15790 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15791 { NULL, 0, 0, 0, NULL }
15794 static int
15795 dissect_gsm_map_ch_SetReportingStateRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15796 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15797 gsm_map_ch_SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes);
15799 return offset;
15803 static const ber_sequence_t gsm_map_ch_EventReportData_sequence[] = {
15804 { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
15805 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15806 { NULL, 0, 0, 0, NULL }
15809 static int
15810 dissect_gsm_map_ch_EventReportData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15811 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15812 gsm_map_ch_EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData);
15814 return offset;
15818 static const value_string gsm_map_ch_MonitoringMode_vals[] = {
15819 { 0, "a-side" },
15820 { 1, "b-side" },
15821 { 0, NULL }
15825 static int
15826 dissect_gsm_map_ch_MonitoringMode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15827 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15828 NULL);
15830 return offset;
15834 static const value_string gsm_map_ch_CallOutcome_vals[] = {
15835 { 0, "success" },
15836 { 1, "failure" },
15837 { 2, "busy" },
15838 { 0, NULL }
15842 static int
15843 dissect_gsm_map_ch_CallOutcome(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15844 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15845 NULL);
15847 return offset;
15851 static const ber_sequence_t gsm_map_ch_CallReportData_sequence[] = {
15852 { &hf_gsm_map_ch_monitoringMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_MonitoringMode },
15853 { &hf_gsm_map_ch_callOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallOutcome },
15854 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15855 { NULL, 0, 0, 0, NULL }
15858 static int
15859 dissect_gsm_map_ch_CallReportData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15860 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15861 gsm_map_ch_CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData);
15863 return offset;
15867 static const ber_sequence_t gsm_map_ch_StatusReportArg_sequence[] = {
15868 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15869 { &hf_gsm_map_ch_eventReportData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_EventReportData },
15870 { &hf_gsm_map_ch_callReportdata, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReportData },
15871 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15872 { NULL, 0, 0, 0, NULL }
15875 static int
15876 dissect_gsm_map_ch_StatusReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15877 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15878 gsm_map_ch_StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg);
15880 return offset;
15884 static const ber_sequence_t gsm_map_ch_StatusReportRes_sequence[] = {
15885 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15886 { NULL, 0, 0, 0, NULL }
15889 static int
15890 dissect_gsm_map_ch_StatusReportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15891 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15892 gsm_map_ch_StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes);
15894 return offset;
15898 static const ber_sequence_t gsm_map_ch_RemoteUserFreeArg_sequence[] = {
15899 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15900 { &hf_gsm_map_ch_callInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15901 { &hf_gsm_map_ch_ccbs_Feature, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
15902 { &hf_gsm_map_ch_translatedB_Number, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15903 { &hf_gsm_map_ch_replaceB_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15904 { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
15905 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15906 { NULL, 0, 0, 0, NULL }
15909 static int
15910 dissect_gsm_map_ch_RemoteUserFreeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15911 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15912 gsm_map_ch_RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg);
15914 return offset;
15918 static const value_string gsm_map_ch_RUF_Outcome_vals[] = {
15919 { 0, "accepted" },
15920 { 1, "rejected" },
15921 { 2, "noResponseFromFreeMS" },
15922 { 3, "noResponseFromBusyMS" },
15923 { 4, "udubFromFreeMS" },
15924 { 5, "udubFromBusyMS" },
15925 { 0, NULL }
15929 static int
15930 dissect_gsm_map_ch_RUF_Outcome(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15931 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15932 NULL);
15934 return offset;
15938 static const ber_sequence_t gsm_map_ch_RemoteUserFreeRes_sequence[] = {
15939 { &hf_gsm_map_ch_ruf_Outcome, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_RUF_Outcome },
15940 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15941 { NULL, 0, 0, 0, NULL }
15944 static int
15945 dissect_gsm_map_ch_RemoteUserFreeRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15946 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15947 gsm_map_ch_RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes);
15949 return offset;
15953 static const ber_sequence_t gsm_map_ch_IST_AlertArg_sequence[] = {
15954 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15955 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15956 { NULL, 0, 0, 0, NULL }
15959 static int
15960 dissect_gsm_map_ch_IST_AlertArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15961 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15962 gsm_map_ch_IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg);
15964 return offset;
15968 static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = {
15969 { 0, "terminateCallActivityReferred" },
15970 { 1, "terminateAllCallActivities" },
15971 { 0, NULL }
15975 static int
15976 dissect_gsm_map_ch_CallTerminationIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15977 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15978 NULL);
15980 return offset;
15984 static const ber_sequence_t gsm_map_ch_IST_AlertRes_sequence[] = {
15985 { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
15986 { &hf_gsm_map_ch_istInformationWithdraw, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15987 { &hf_gsm_map_ch_callTerminationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallTerminationIndicator },
15988 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15989 { NULL, 0, 0, 0, NULL }
15992 static int
15993 dissect_gsm_map_ch_IST_AlertRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15994 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15995 gsm_map_ch_IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes);
15997 return offset;
16001 static const ber_sequence_t gsm_map_ch_IST_CommandArg_sequence[] = {
16002 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
16003 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16004 { NULL, 0, 0, 0, NULL }
16007 static int
16008 dissect_gsm_map_ch_IST_CommandArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16009 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16010 gsm_map_ch_IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg);
16012 return offset;
16016 static const ber_sequence_t gsm_map_ch_IST_CommandRes_sequence[] = {
16017 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
16018 { NULL, 0, 0, 0, NULL }
16021 static int
16022 dissect_gsm_map_ch_IST_CommandRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16023 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16024 gsm_map_ch_IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes);
16026 return offset;
16030 static const ber_sequence_t gsm_map_ch_ReleaseResourcesArg_sequence[] = {
16031 { &hf_gsm_map_ch_msrn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
16032 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
16033 { NULL, 0, 0, 0, NULL }
16036 static int
16037 dissect_gsm_map_ch_ReleaseResourcesArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16038 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16039 gsm_map_ch_ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg);
16041 return offset;
16045 static const ber_sequence_t gsm_map_ch_ReleaseResourcesRes_sequence[] = {
16046 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
16047 { NULL, 0, 0, 0, NULL }
16050 static int
16051 dissect_gsm_map_ch_ReleaseResourcesRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16052 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16053 gsm_map_ch_ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes);
16055 return offset;
16059 /* --- Module MAP-LCS-DataTypes --- --- --- */
16062 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Arg_sequence[] = {
16063 { &hf_gsm_map_lcs_mlcNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16064 { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
16065 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16066 { NULL, 0, 0, 0, NULL }
16069 static int
16070 dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16071 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16072 gsm_map_lcs_RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg);
16074 return offset;
16079 static int
16080 dissect_gsm_map_lcs_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16081 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
16083 return offset;
16087 static const ber_sequence_t gsm_map_lcs_LCSLocationInfo_sequence[] = {
16088 { &hf_gsm_map_lcs_networkNode_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
16089 { &hf_gsm_map_lcs_lmsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
16090 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16091 { &hf_gsm_map_lcs_gprsNodeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16092 { &hf_gsm_map_lcs_additional_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_Additional_Number },
16093 { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
16094 { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
16095 { &hf_gsm_map_lcs_mme_Name, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
16096 { &hf_gsm_map_lcs_aaa_Server_Name, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
16097 { &hf_gsm_map_lcs_sgsn_Name, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
16098 { &hf_gsm_map_lcs_sgsn_Realm, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
16099 { NULL, 0, 0, 0, NULL }
16102 static int
16103 dissect_gsm_map_lcs_LCSLocationInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16104 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16105 gsm_map_lcs_LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo);
16107 return offset;
16111 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Res_sequence[] = {
16112 { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
16113 { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
16114 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16115 { &hf_gsm_map_lcs_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
16116 { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
16117 { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
16118 { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
16119 { NULL, 0, 0, 0, NULL }
16122 static int
16123 dissect_gsm_map_lcs_RoutingInfoForLCS_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16124 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16125 gsm_map_lcs_RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res);
16127 return offset;
16131 static const value_string gsm_map_lcs_LocationEstimateType_vals[] = {
16132 { 0, "currentLocation" },
16133 { 1, "currentOrLastKnownLocation" },
16134 { 2, "initialLocation" },
16135 { 3, "activateDeferredLocation" },
16136 { 4, "cancelDeferredLocation" },
16137 { 5, "notificationVerificationOnly" },
16138 { 0, NULL }
16142 static int
16143 dissect_gsm_map_lcs_LocationEstimateType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16144 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16145 NULL);
16147 return offset;
16151 static int * const gsm_map_lcs_DeferredLocationEventType_bits[] = {
16152 &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
16153 &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
16154 &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
16155 &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
16156 &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
16157 NULL
16161 dissect_gsm_map_lcs_DeferredLocationEventType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16162 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
16163 gsm_map_lcs_DeferredLocationEventType_bits, 5, hf_index, ett_gsm_map_lcs_DeferredLocationEventType,
16164 NULL);
16166 return offset;
16170 static const ber_sequence_t gsm_map_lcs_LocationType_sequence[] = {
16171 { &hf_gsm_map_lcs_locationEstimateType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationEstimateType },
16172 { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
16173 { NULL, 0, 0, 0, NULL }
16177 dissect_gsm_map_lcs_LocationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16178 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16179 gsm_map_lcs_LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType);
16181 return offset;
16185 const value_string gsm_map_lcs_LCSClientType_vals[] = {
16186 { 0, "emergencyServices" },
16187 { 1, "valueAddedServices" },
16188 { 2, "plmnOperatorServices" },
16189 { 3, "lawfulInterceptServices" },
16190 { 0, NULL }
16195 dissect_gsm_map_lcs_LCSClientType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16196 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16197 NULL);
16199 return offset;
16204 static int
16205 dissect_gsm_map_lcs_NameString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16206 offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
16208 return offset;
16212 static const value_string gsm_map_lcs_LCS_FormatIndicator_vals[] = {
16213 { 0, "logicalName" },
16214 { 1, "e-mailAddress" },
16215 { 2, "msisdn" },
16216 { 3, "url" },
16217 { 4, "sipUrl" },
16218 { 0, NULL }
16222 static int
16223 dissect_gsm_map_lcs_LCS_FormatIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16224 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16225 NULL);
16227 return offset;
16231 static const ber_sequence_t gsm_map_lcs_LCSClientName_sequence[] = {
16232 { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
16233 { &hf_gsm_map_lcs_nameString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NameString },
16234 { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
16235 { NULL, 0, 0, 0, NULL }
16239 dissect_gsm_map_lcs_LCSClientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16240 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16241 gsm_map_lcs_LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName);
16243 return offset;
16248 static int
16249 dissect_gsm_map_lcs_RequestorIDString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16250 offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
16252 return offset;
16256 static const ber_sequence_t gsm_map_lcs_LCSRequestorID_sequence[] = {
16257 { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
16258 { &hf_gsm_map_lcs_requestorIDString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RequestorIDString },
16259 { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
16260 { NULL, 0, 0, 0, NULL }
16264 dissect_gsm_map_lcs_LCSRequestorID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16265 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16266 gsm_map_lcs_LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID);
16268 return offset;
16272 static const ber_sequence_t gsm_map_lcs_LCS_ClientID_sequence[] = {
16273 { &hf_gsm_map_lcs_lcsClientType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
16274 { &hf_gsm_map_lcs_lcsClientExternalID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
16275 { &hf_gsm_map_lcs_lcsClientDialedByMS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
16276 { &hf_gsm_map_lcs_lcsClientInternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID },
16277 { &hf_gsm_map_lcs_lcsClientName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
16278 { &hf_gsm_map_lcs_lcsAPN , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
16279 { &hf_gsm_map_lcs_lcsRequestorID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
16280 { NULL, 0, 0, 0, NULL }
16284 dissect_gsm_map_lcs_LCS_ClientID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16285 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16286 gsm_map_lcs_LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID);
16288 return offset;
16294 dissect_gsm_map_lcs_LCS_Priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16295 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16296 NULL);
16298 return offset;
16303 static int
16304 dissect_gsm_map_lcs_Horizontal_Accuracy(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16305 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16306 NULL);
16308 return offset;
16313 static int
16314 dissect_gsm_map_lcs_Vertical_Accuracy(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16315 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16316 NULL);
16318 return offset;
16322 static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = {
16323 { 0, "lowdelay" },
16324 { 1, "delaytolerant" },
16325 { 0, NULL }
16329 static int
16330 dissect_gsm_map_lcs_ResponseTimeCategory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16331 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16332 NULL);
16334 return offset;
16338 static const ber_sequence_t gsm_map_lcs_ResponseTime_sequence[] = {
16339 { &hf_gsm_map_lcs_responseTimeCategory, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ResponseTimeCategory },
16340 { NULL, 0, 0, 0, NULL }
16343 static int
16344 dissect_gsm_map_lcs_ResponseTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16345 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16346 gsm_map_lcs_ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime);
16348 return offset;
16352 static const value_string gsm_map_lcs_LCS_QoS_Class_vals[] = {
16353 { 0, "bestEffort" },
16354 { 1, "assured" },
16355 { 0, NULL }
16359 static int
16360 dissect_gsm_map_lcs_LCS_QoS_Class(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16361 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16362 NULL);
16364 return offset;
16368 static const ber_sequence_t gsm_map_lcs_LCS_QoS_sequence[] = {
16369 { &hf_gsm_map_lcs_horizontal_accuracy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Horizontal_Accuracy },
16370 { &hf_gsm_map_lcs_verticalCoordinateRequest, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16371 { &hf_gsm_map_lcs_vertical_accuracy, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Vertical_Accuracy },
16372 { &hf_gsm_map_lcs_responseTime, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ResponseTime },
16373 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16374 { &hf_gsm_map_lcs_velocityRequest, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16375 { &hf_gsm_map_lcs_lcs_qos_class, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS_Class },
16376 { NULL, 0, 0, 0, NULL }
16380 dissect_gsm_map_lcs_LCS_QoS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16381 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16382 gsm_map_lcs_LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS);
16384 return offset;
16388 static int * const gsm_map_lcs_SupportedGADShapes_bits[] = {
16389 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
16390 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
16391 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
16392 &hf_gsm_map_lcs_SupportedGADShapes_polygon,
16393 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
16394 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
16395 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
16396 NULL
16400 dissect_gsm_map_lcs_SupportedGADShapes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16401 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
16402 gsm_map_lcs_SupportedGADShapes_bits, 7, hf_index, ett_gsm_map_lcs_SupportedGADShapes,
16403 NULL);
16405 return offset;
16411 dissect_gsm_map_lcs_LCS_ReferenceNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16412 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16413 NULL);
16415 return offset;
16420 static int
16421 dissect_gsm_map_lcs_LCSCodewordString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16422 offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
16424 return offset;
16428 static const ber_sequence_t gsm_map_lcs_LCSCodeword_sequence[] = {
16429 { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
16430 { &hf_gsm_map_lcs_lcsCodewordString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodewordString },
16431 { NULL, 0, 0, 0, NULL }
16435 dissect_gsm_map_lcs_LCSCodeword(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16436 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16437 gsm_map_lcs_LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword);
16439 return offset;
16443 static const value_string gsm_map_lcs_PrivacyCheckRelatedAction_vals[] = {
16444 { 0, "allowedWithoutNotification" },
16445 { 1, "allowedWithNotification" },
16446 { 2, "allowedIfNoResponse" },
16447 { 3, "restrictedIfNoResponse" },
16448 { 4, "notAllowed" },
16449 { 0, NULL }
16453 static int
16454 dissect_gsm_map_lcs_PrivacyCheckRelatedAction(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16455 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16456 NULL);
16458 return offset;
16462 static const ber_sequence_t gsm_map_lcs_LCS_PrivacyCheck_sequence[] = {
16463 { &hf_gsm_map_lcs_callSessionUnrelated, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
16464 { &hf_gsm_map_lcs_callSessionRelated, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
16465 { NULL, 0, 0, 0, NULL }
16468 static int
16469 dissect_gsm_map_lcs_LCS_PrivacyCheck(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16470 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16471 gsm_map_lcs_LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck);
16473 return offset;
16477 static const value_string gsm_map_lcs_AreaType_vals[] = {
16478 { 0, "countryCode" },
16479 { 1, "plmnId" },
16480 { 2, "locationAreaId" },
16481 { 3, "routingAreaId" },
16482 { 4, "cellGlobalId" },
16483 { 5, "utranCellId" },
16484 { 0, NULL }
16488 static int
16489 dissect_gsm_map_lcs_AreaType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16490 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16491 NULL);
16493 return offset;
16498 static int
16499 dissect_gsm_map_lcs_AreaIdentification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16500 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16501 NULL);
16503 return offset;
16507 static const ber_sequence_t gsm_map_lcs_Area_sequence[] = {
16508 { &hf_gsm_map_lcs_areaType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaType },
16509 { &hf_gsm_map_lcs_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaIdentification },
16510 { NULL, 0, 0, 0, NULL }
16513 static int
16514 dissect_gsm_map_lcs_Area(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16515 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16516 gsm_map_lcs_Area_sequence, hf_index, ett_gsm_map_lcs_Area);
16518 return offset;
16522 static const ber_sequence_t gsm_map_lcs_AreaList_sequence_of[1] = {
16523 { &hf_gsm_map_lcs_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Area },
16526 static int
16527 dissect_gsm_map_lcs_AreaList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16528 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
16529 gsm_map_lcs_AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList);
16531 return offset;
16535 static const ber_sequence_t gsm_map_lcs_AreaDefinition_sequence[] = {
16536 { &hf_gsm_map_lcs_areaList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaList },
16537 { NULL, 0, 0, 0, NULL }
16540 static int
16541 dissect_gsm_map_lcs_AreaDefinition(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16542 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16543 gsm_map_lcs_AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition);
16545 return offset;
16549 static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = {
16550 { 0, "oneTimeEvent" },
16551 { 1, "multipleTimeEvent" },
16552 { 0, NULL }
16556 static int
16557 dissect_gsm_map_lcs_OccurrenceInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16558 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16559 NULL);
16561 return offset;
16566 static int
16567 dissect_gsm_map_lcs_IntervalTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16568 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16569 NULL);
16571 return offset;
16575 static const ber_sequence_t gsm_map_lcs_AreaEventInfo_sequence[] = {
16576 { &hf_gsm_map_lcs_areaDefinition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaDefinition },
16577 { &hf_gsm_map_lcs_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
16578 { &hf_gsm_map_lcs_intervalTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
16579 { NULL, 0, 0, 0, NULL }
16583 dissect_gsm_map_lcs_AreaEventInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16584 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16585 gsm_map_lcs_AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo);
16587 return offset;
16592 static int
16593 dissect_gsm_map_lcs_ReportingAmount(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16594 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16595 NULL);
16597 return offset;
16602 static int
16603 dissect_gsm_map_lcs_ReportingInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16604 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16605 NULL);
16607 return offset;
16612 static int
16613 dissect_gsm_map_lcs_ReportingAmountMilliseconds(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16614 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16615 NULL);
16617 return offset;
16622 static int
16623 dissect_gsm_map_lcs_ReportingIntervalMilliseconds(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16624 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16625 NULL);
16627 return offset;
16631 static const ber_sequence_t gsm_map_lcs_ReportingOptionMilliseconds_sequence[] = {
16632 { &hf_gsm_map_lcs_reportingAmountMilliseconds, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmountMilliseconds },
16633 { &hf_gsm_map_lcs_reportingIntervalMilliseconds, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingIntervalMilliseconds },
16634 { NULL, 0, 0, 0, NULL }
16637 static int
16638 dissect_gsm_map_lcs_ReportingOptionMilliseconds(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16639 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16640 gsm_map_lcs_ReportingOptionMilliseconds_sequence, hf_index, ett_gsm_map_lcs_ReportingOptionMilliseconds);
16642 return offset;
16646 static const ber_sequence_t gsm_map_lcs_PeriodicLDRInfo_sequence[] = {
16647 { &hf_gsm_map_lcs_reportingAmount, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmount },
16648 { &hf_gsm_map_lcs_reportingInterval, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingInterval },
16649 { &hf_gsm_map_lcs_reportingOptionMilliseconds, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingOptionMilliseconds },
16650 { NULL, 0, 0, 0, NULL }
16653 static int
16654 dissect_gsm_map_lcs_PeriodicLDRInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16655 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16656 gsm_map_lcs_PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo);
16658 return offset;
16662 static const value_string gsm_map_lcs_RAN_Technology_vals[] = {
16663 { 0, "gsm" },
16664 { 1, "umts" },
16665 { 0, NULL }
16669 static int
16670 dissect_gsm_map_lcs_RAN_Technology(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16671 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16672 NULL);
16674 return offset;
16678 static const ber_sequence_t gsm_map_lcs_ReportingPLMN_sequence[] = {
16679 { &hf_gsm_map_lcs_plmn_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
16680 { &hf_gsm_map_lcs_ran_Technology, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RAN_Technology },
16681 { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16682 { NULL, 0, 0, 0, NULL }
16685 static int
16686 dissect_gsm_map_lcs_ReportingPLMN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16687 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16688 gsm_map_lcs_ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN);
16690 return offset;
16694 static const ber_sequence_t gsm_map_lcs_PLMNList_sequence_of[1] = {
16695 { &hf_gsm_map_lcs_PLMNList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingPLMN },
16698 static int
16699 dissect_gsm_map_lcs_PLMNList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16700 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
16701 gsm_map_lcs_PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList);
16703 return offset;
16707 static const ber_sequence_t gsm_map_lcs_ReportingPLMNList_sequence[] = {
16708 { &hf_gsm_map_lcs_plmn_ListPrioritized, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16709 { &hf_gsm_map_lcs_plmn_List, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PLMNList },
16710 { NULL, 0, 0, 0, NULL }
16713 static int
16714 dissect_gsm_map_lcs_ReportingPLMNList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16715 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16716 gsm_map_lcs_ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList);
16718 return offset;
16722 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence[] = {
16723 { &hf_gsm_map_lcs_locationType, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LocationType },
16724 { &hf_gsm_map_lcs_mlc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
16725 { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ClientID },
16726 { &hf_gsm_map_lcs_privacyOverride, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16727 { &hf_gsm_map_lcs_imsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
16728 { &hf_gsm_map_lcs_msisdn , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16729 { &hf_gsm_map_lcs_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
16730 { &hf_gsm_map_lcs_imei , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
16731 { &hf_gsm_map_lcs_lcs_Priority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
16732 { &hf_gsm_map_lcs_lcs_QoS , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
16733 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16734 { &hf_gsm_map_lcs_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
16735 { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16736 { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
16737 { &hf_gsm_map_lcs_lcsCodeword, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
16738 { &hf_gsm_map_lcs_lcs_PrivacyCheck, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_PrivacyCheck },
16739 { &hf_gsm_map_lcs_areaEventInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
16740 { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
16741 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16742 { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
16743 { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
16744 { NULL, 0, 0, 0, NULL }
16747 static int
16748 dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16749 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16750 gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg);
16752 return offset;
16758 dissect_gsm_map_lcs_Ext_GeographicalInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16759 tvbuff_t *parameter_tvb;
16760 proto_tree *subtree;
16762 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16763 &parameter_tvb);
16766 if (!parameter_tvb)
16767 return offset;
16769 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
16770 dissect_geographical_description(parameter_tvb, actx->pinfo, subtree);
16774 return offset;
16780 dissect_gsm_map_lcs_Add_GeographicalInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16781 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16782 NULL);
16784 return offset;
16789 static int
16790 dissect_gsm_map_lcs_PositioningDataInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16791 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16792 NULL);
16794 return offset;
16799 static int
16800 dissect_gsm_map_lcs_UtranPositioningDataInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16801 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16802 NULL);
16804 return offset;
16808 static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = {
16809 { 0, "requestedAccuracyFulfilled" },
16810 { 1, "requestedAccuracyNotFulfilled" },
16811 { 0, NULL }
16815 static int
16816 dissect_gsm_map_lcs_AccuracyFulfilmentIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16817 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16818 NULL);
16820 return offset;
16826 dissect_gsm_map_lcs_VelocityEstimate(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16827 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16828 NULL);
16830 return offset;
16835 static int
16836 dissect_gsm_map_lcs_GeranGANSSpositioningData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16837 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16838 NULL);
16840 return offset;
16845 static int
16846 dissect_gsm_map_lcs_UtranGANSSpositioningData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16847 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16848 NULL);
16850 return offset;
16854 static const value_string gsm_map_lcs_ServingNodeAddress_vals[] = {
16855 { 0, "msc-Number" },
16856 { 1, "sgsn-Number" },
16857 { 2, "mme-Number" },
16858 { 0, NULL }
16861 static const ber_choice_t gsm_map_lcs_ServingNodeAddress_choice[] = {
16862 { 0, &hf_gsm_map_lcs_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16863 { 1, &hf_gsm_map_lcs_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16864 { 2, &hf_gsm_map_lcs_mme_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
16865 { 0, NULL, 0, 0, 0, NULL }
16868 static int
16869 dissect_gsm_map_lcs_ServingNodeAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16870 offset = dissect_ber_choice(actx, tree, tvb, offset,
16871 gsm_map_lcs_ServingNodeAddress_choice, hf_index, ett_gsm_map_lcs_ServingNodeAddress,
16872 NULL);
16874 return offset;
16879 static int
16880 dissect_gsm_map_lcs_UtranAdditionalPositioningData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16881 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16882 NULL);
16884 return offset;
16889 static int
16890 dissect_gsm_map_lcs_UtranBaroPressureMeas(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16891 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16892 NULL);
16894 return offset;
16899 static int
16900 dissect_gsm_map_lcs_UtranCivicAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16901 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16902 NULL);
16904 return offset;
16908 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Res_sequence[] = {
16909 { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
16910 { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
16911 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16912 { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
16913 { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16914 { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
16915 { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
16916 { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
16917 { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16918 { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
16919 { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
16920 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16921 { &hf_gsm_map_lcs_geranGANSSpositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_GeranGANSSpositioningData },
16922 { &hf_gsm_map_lcs_utranGANSSpositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranGANSSpositioningData },
16923 { &hf_gsm_map_lcs_targetServingNodeForHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_lcs_ServingNodeAddress },
16924 { &hf_gsm_map_lcs_utranAdditionalPositioningData, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranAdditionalPositioningData },
16925 { &hf_gsm_map_lcs_utranBaroPressureMeas, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranBaroPressureMeas },
16926 { &hf_gsm_map_lcs_utranCivicAddress, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranCivicAddress },
16927 { NULL, 0, 0, 0, NULL }
16930 static int
16931 dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16932 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16933 gsm_map_lcs_ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res);
16935 return offset;
16939 static const value_string gsm_map_lcs_LCS_Event_vals[] = {
16940 { 0, "emergencyCallOrigination" },
16941 { 1, "emergencyCallRelease" },
16942 { 2, "mo-lr" },
16943 { 3, "deferredmt-lrResponse" },
16944 { 4, "deferredmo-lrTTTPInitiation" },
16945 { 5, "emergencyCallHandover" },
16946 { 0, NULL }
16950 static int
16951 dissect_gsm_map_lcs_LCS_Event(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16952 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16953 NULL);
16955 return offset;
16959 static const value_string gsm_map_lcs_TerminationCause_vals[] = {
16960 { 0, "normal" },
16961 { 1, "errorundefined" },
16962 { 2, "internalTimeout" },
16963 { 3, "congestion" },
16964 { 4, "mt-lrRestart" },
16965 { 5, "privacyViolation" },
16966 { 6, "shapeOfLocationEstimateNotSupported" },
16967 { 7, "subscriberTermination" },
16968 { 8, "uETermination" },
16969 { 9, "networkTermination" },
16970 { 0, NULL }
16974 static int
16975 dissect_gsm_map_lcs_TerminationCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16976 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16977 NULL);
16979 return offset;
16983 static const ber_sequence_t gsm_map_lcs_Deferredmt_lrData_sequence[] = {
16984 { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
16985 { &hf_gsm_map_lcs_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_TerminationCause },
16986 { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
16987 { NULL, 0, 0, 0, NULL }
16990 static int
16991 dissect_gsm_map_lcs_Deferredmt_lrData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16992 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16993 gsm_map_lcs_Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData);
16995 return offset;
17000 static int
17001 dissect_gsm_map_lcs_SequenceNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17002 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17003 NULL);
17005 return offset;
17009 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Arg_sequence[] = {
17010 { &hf_gsm_map_lcs_lcs_Event, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_Event },
17011 { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_ClientID },
17012 { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCSLocationInfo },
17013 { &hf_gsm_map_lcs_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17014 { &hf_gsm_map_lcs_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
17015 { &hf_gsm_map_lcs_imei , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
17016 { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17017 { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17018 { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
17019 { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
17020 { &hf_gsm_map_lcs_slr_ArgExtensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_ArgExtensionContainer },
17021 { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
17022 { &hf_gsm_map_lcs_deferredmt_lrData, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Deferredmt_lrData },
17023 { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
17024 { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
17025 { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
17026 { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
17027 { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
17028 { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
17029 { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
17030 { &hf_gsm_map_lcs_pseudonymIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
17031 { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
17032 { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
17033 { &hf_gsm_map_lcs_sequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
17034 { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
17035 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
17036 { &hf_gsm_map_lcs_geranGANSSpositioningData, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_GeranGANSSpositioningData },
17037 { &hf_gsm_map_lcs_utranGANSSpositioningData, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranGANSSpositioningData },
17038 { &hf_gsm_map_lcs_targetServingNodeForHandover, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_lcs_ServingNodeAddress },
17039 { &hf_gsm_map_lcs_utranAdditionalPositioningData, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranAdditionalPositioningData },
17040 { &hf_gsm_map_lcs_utranBaroPressureMeas, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranBaroPressureMeas },
17041 { &hf_gsm_map_lcs_utranCivicAddress, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranCivicAddress },
17042 { NULL, 0, 0, 0, NULL }
17045 static int
17046 dissect_gsm_map_lcs_SubscriberLocationReport_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17047 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17048 gsm_map_lcs_SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg);
17050 return offset;
17054 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Res_sequence[] = {
17055 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17056 { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17057 { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17058 { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
17059 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
17060 { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
17061 { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
17062 { NULL, 0, 0, 0, NULL }
17065 static int
17066 dissect_gsm_map_lcs_SubscriberLocationReport_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17067 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17068 gsm_map_lcs_SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res);
17070 return offset;
17073 /*--- PDUs ---*/
17075 int dissect_gsm_map_lcs_LCS_ClientID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
17076 int offset = 0;
17077 asn1_ctx_t asn1_ctx;
17078 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
17079 offset = dissect_gsm_map_lcs_LCS_ClientID(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU);
17080 return offset;
17084 /* --- Module MAP-GR-DataTypes --- --- --- */
17088 static int
17089 dissect_gsm_map_gr_CODEC_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17090 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17091 NULL);
17093 return offset;
17098 static int
17099 dissect_gsm_map_gr_CipheringAlgorithm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17100 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17101 NULL);
17103 return offset;
17108 static int
17109 dissect_gsm_map_gr_GroupKeyNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17110 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17111 NULL);
17113 return offset;
17118 static int
17119 dissect_gsm_map_gr_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17120 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
17122 return offset;
17127 static int
17128 dissect_gsm_map_gr_VSTK(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17129 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17130 NULL);
17132 return offset;
17137 static int
17138 dissect_gsm_map_gr_VSTK_RAND(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17139 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17140 NULL);
17142 return offset;
17146 static const ber_sequence_t gsm_map_gr_PrepareGroupCallArg_sequence[] = {
17147 { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
17148 { &hf_gsm_map_gr_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
17149 { &hf_gsm_map_gr_codec_Info, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CODEC_Info },
17150 { &hf_gsm_map_gr_cipheringAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CipheringAlgorithm },
17151 { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_GroupKeyNumber },
17152 { &hf_gsm_map_gr_groupKey , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
17153 { &hf_gsm_map_gr_priority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
17154 { &hf_gsm_map_gr_uplinkFree, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17155 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
17156 { &hf_gsm_map_gr_vstk , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK },
17157 { &hf_gsm_map_gr_vstk_rand, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK_RAND },
17158 { &hf_gsm_map_gr_talkerChannelParameter, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17159 { &hf_gsm_map_gr_uplinkReplyIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17160 { NULL, 0, 0, 0, NULL }
17163 static int
17164 dissect_gsm_map_gr_PrepareGroupCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17165 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17166 gsm_map_gr_PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg);
17168 return offset;
17172 static const ber_sequence_t gsm_map_gr_PrepareGroupCallRes_sequence[] = {
17173 { &hf_gsm_map_gr_groupCallNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
17174 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17175 { NULL, 0, 0, 0, NULL }
17178 static int
17179 dissect_gsm_map_gr_PrepareGroupCallRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17180 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17181 gsm_map_gr_PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes);
17183 return offset;
17187 static const value_string gsm_map_gr_TalkerPriority_vals[] = {
17188 { 0, "normal" },
17189 { 1, "privileged" },
17190 { 2, "emergency" },
17191 { 0, NULL }
17195 static int
17196 dissect_gsm_map_gr_TalkerPriority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17197 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17198 NULL);
17200 return offset;
17204 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalArg_sequence[] = {
17205 { &hf_gsm_map_gr_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
17206 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17207 { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
17208 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17209 { NULL, 0, 0, 0, NULL }
17212 static int
17213 dissect_gsm_map_gr_SendGroupCallEndSignalArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17214 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17215 gsm_map_gr_SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg);
17217 return offset;
17221 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalRes_sequence[] = {
17222 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17223 { NULL, 0, 0, 0, NULL }
17226 static int
17227 dissect_gsm_map_gr_SendGroupCallEndSignalRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17228 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17229 gsm_map_gr_SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes);
17231 return offset;
17235 static const ber_sequence_t gsm_map_gr_StateAttributes_sequence[] = {
17236 { &hf_gsm_map_gr_downlinkAttached, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17237 { &hf_gsm_map_gr_uplinkAttached, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17238 { &hf_gsm_map_gr_dualCommunication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17239 { &hf_gsm_map_gr_callOriginator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17240 { NULL, 0, 0, 0, NULL }
17243 static int
17244 dissect_gsm_map_gr_StateAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17245 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17246 gsm_map_gr_StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes);
17248 return offset;
17252 static const ber_sequence_t gsm_map_gr_ForwardGroupCallSignallingArg_sequence[] = {
17253 { &hf_gsm_map_gr_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
17254 { &hf_gsm_map_gr_uplinkRequestAck, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17255 { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17256 { &hf_gsm_map_gr_uplinkRejectCommand, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17257 { &hf_gsm_map_gr_uplinkSeizedCommand, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17258 { &hf_gsm_map_gr_uplinkReleaseCommand, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17259 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17260 { &hf_gsm_map_gr_stateAttributes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_StateAttributes },
17261 { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
17262 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17263 { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17264 { &hf_gsm_map_gr_sm_RP_UI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
17265 { &hf_gsm_map_gr_an_APDU , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
17266 { NULL, 0, 0, 0, NULL }
17269 static int
17270 dissect_gsm_map_gr_ForwardGroupCallSignallingArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17271 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17272 gsm_map_gr_ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg);
17274 return offset;
17278 static const ber_sequence_t gsm_map_gr_ProcessGroupCallSignallingArg_sequence[] = {
17279 { &hf_gsm_map_gr_uplinkRequest, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17280 { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17281 { &hf_gsm_map_gr_releaseGroupCall, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17282 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17283 { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
17284 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17285 { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17286 { &hf_gsm_map_gr_an_APDU , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
17287 { NULL, 0, 0, 0, NULL }
17290 static int
17291 dissect_gsm_map_gr_ProcessGroupCallSignallingArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17292 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17293 gsm_map_gr_ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg);
17295 return offset;
17299 static const value_string gsm_map_gr_RequestedInfo_vals[] = {
17300 { 0, "anchorMSC-AddressAndASCI-CallReference" },
17301 { 1, "imsiAndAdditionalInfoAndAdditionalSubscription" },
17302 { 0, NULL }
17306 static int
17307 dissect_gsm_map_gr_RequestedInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17308 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17309 NULL);
17311 return offset;
17315 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoArg_sequence[] = {
17316 { &hf_gsm_map_gr_requestedInfo, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_RequestedInfo },
17317 { &hf_gsm_map_gr_groupId , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Long_GroupId },
17318 { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
17319 { &hf_gsm_map_gr_cellId , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
17320 { &hf_gsm_map_gr_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
17321 { &hf_gsm_map_gr_tmsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
17322 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17323 { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
17324 { &hf_gsm_map_gr_cksn , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Cksn },
17325 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
17326 { NULL, 0, 0, 0, NULL }
17329 static int
17330 dissect_gsm_map_gr_SendGroupCallInfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17331 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17332 gsm_map_gr_SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg);
17334 return offset;
17338 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoRes_sequence[] = {
17339 { &hf_gsm_map_gr_anchorMSC_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17340 { &hf_gsm_map_gr_asciCallReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
17341 { &hf_gsm_map_gr_imsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
17342 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17343 { &hf_gsm_map_gr_additionalSubscriptions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
17344 { &hf_gsm_map_gr_kc , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
17345 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
17346 { NULL, 0, 0, 0, NULL }
17349 static int
17350 dissect_gsm_map_gr_SendGroupCallInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17351 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17352 gsm_map_gr_SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes);
17354 return offset;
17358 /* --- Module MAP-DialogueInformation --- --- --- */
17361 static const ber_sequence_t gsm_map_dialogue_MAP_OpenInfo_sequence[] = {
17362 { &hf_gsm_map_dialogue_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
17363 { &hf_gsm_map_dialogue_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
17364 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17365 { NULL, 0, 0, 0, NULL }
17368 static int
17369 dissect_gsm_map_dialogue_MAP_OpenInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17370 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17371 gsm_map_dialogue_MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo);
17373 return offset;
17377 static const ber_sequence_t gsm_map_dialogue_MAP_AcceptInfo_sequence[] = {
17378 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17379 { NULL, 0, 0, 0, NULL }
17382 static int
17383 dissect_gsm_map_dialogue_MAP_AcceptInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17384 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17385 gsm_map_dialogue_MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo);
17387 return offset;
17391 static const ber_sequence_t gsm_map_dialogue_MAP_CloseInfo_sequence[] = {
17392 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17393 { NULL, 0, 0, 0, NULL }
17396 static int
17397 dissect_gsm_map_dialogue_MAP_CloseInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17398 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17399 gsm_map_dialogue_MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo);
17401 return offset;
17405 static const value_string gsm_map_dialogue_Reason_vals[] = {
17406 { 0, "noReasonGiven" },
17407 { 1, "invalidDestinationReference" },
17408 { 2, "invalidOriginatingReference" },
17409 { 0, NULL }
17413 static int
17414 dissect_gsm_map_dialogue_Reason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17415 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17416 NULL);
17418 return offset;
17423 static int
17424 dissect_gsm_map_dialogue_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17425 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
17427 return offset;
17431 static const ber_sequence_t gsm_map_dialogue_MAP_RefuseInfo_sequence[] = {
17432 { &hf_gsm_map_dialogue_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_Reason },
17433 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17434 { &hf_gsm_map_dialogue_alternativeApplicationContext, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_OBJECT_IDENTIFIER },
17435 { NULL, 0, 0, 0, NULL }
17438 static int
17439 dissect_gsm_map_dialogue_MAP_RefuseInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17440 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17441 gsm_map_dialogue_MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo);
17443 return offset;
17448 static int
17449 dissect_gsm_map_dialogue_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17450 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
17452 return offset;
17456 static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = {
17457 { 0, "shortTermResourceLimitation" },
17458 { 1, "longTermResourceLimitation" },
17459 { 0, NULL }
17463 static int
17464 dissect_gsm_map_dialogue_ResourceUnavailableReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17465 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17466 NULL);
17468 return offset;
17472 static const value_string gsm_map_dialogue_ProcedureCancellationReason_vals[] = {
17473 { 0, "handoverCancellation" },
17474 { 1, "radioChannelRelease" },
17475 { 2, "networkPathRelease" },
17476 { 3, "callRelease" },
17477 { 4, "associatedProcedureFailure" },
17478 { 5, "tandemDialogueRelease" },
17479 { 6, "remoteOperationsFailure" },
17480 { 0, NULL }
17484 static int
17485 dissect_gsm_map_dialogue_ProcedureCancellationReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17486 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17487 NULL);
17489 return offset;
17493 static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = {
17494 { 0, "userSpecificReason" },
17495 { 1, "userResourceLimitation" },
17496 { 2, "resourceUnavailable" },
17497 { 3, "applicationProcedureCancellation" },
17498 { 0, NULL }
17501 static const ber_choice_t gsm_map_dialogue_MAP_UserAbortChoice_choice[] = {
17502 { 0, &hf_gsm_map_dialogue_userSpecificReason, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
17503 { 1, &hf_gsm_map_dialogue_userResourceLimitation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
17504 { 2, &hf_gsm_map_dialogue_resourceUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ResourceUnavailableReason },
17505 { 3, &hf_gsm_map_dialogue_applicationProcedureCancellation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ProcedureCancellationReason },
17506 { 0, NULL, 0, 0, 0, NULL }
17509 static int
17510 dissect_gsm_map_dialogue_MAP_UserAbortChoice(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17511 offset = dissect_ber_choice(actx, tree, tvb, offset,
17512 gsm_map_dialogue_MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice,
17513 NULL);
17515 return offset;
17519 static const ber_sequence_t gsm_map_dialogue_MAP_UserAbortInfo_sequence[] = {
17520 { &hf_gsm_map_dialogue_map_UserAbortChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_dialogue_MAP_UserAbortChoice },
17521 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17522 { NULL, 0, 0, 0, NULL }
17525 static int
17526 dissect_gsm_map_dialogue_MAP_UserAbortInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17527 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17528 gsm_map_dialogue_MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo);
17530 return offset;
17534 static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = {
17535 { 0, "abnormalDialogue" },
17536 { 1, "invalidPDU" },
17537 { 0, NULL }
17541 static int
17542 dissect_gsm_map_dialogue_MAP_ProviderAbortReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17543 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17544 NULL);
17546 return offset;
17550 static const ber_sequence_t gsm_map_dialogue_MAP_ProviderAbortInfo_sequence[] = {
17551 { &hf_gsm_map_dialogue_map_ProviderAbortReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortReason },
17552 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17553 { NULL, 0, 0, 0, NULL }
17556 static int
17557 dissect_gsm_map_dialogue_MAP_ProviderAbortInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17558 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17559 gsm_map_dialogue_MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo);
17561 return offset;
17565 static const value_string gsm_map_dialogue_MAP_DialoguePDU_vals[] = {
17566 { 0, "map-open" },
17567 { 1, "map-accept" },
17568 { 2, "map-close" },
17569 { 3, "map-refuse" },
17570 { 4, "map-userAbort" },
17571 { 5, "map-providerAbort" },
17572 { 0, NULL }
17575 static const ber_choice_t gsm_map_dialogue_MAP_DialoguePDU_choice[] = {
17576 { 0, &hf_gsm_map_dialogue_map_open, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_OpenInfo },
17577 { 1, &hf_gsm_map_dialogue_map_accept, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_AcceptInfo },
17578 { 2, &hf_gsm_map_dialogue_map_close, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_CloseInfo },
17579 { 3, &hf_gsm_map_dialogue_map_refuse, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_RefuseInfo },
17580 { 4, &hf_gsm_map_dialogue_map_userAbort, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_UserAbortInfo },
17581 { 5, &hf_gsm_map_dialogue_map_providerAbort, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortInfo },
17582 { 0, NULL, 0, 0, 0, NULL }
17585 static int
17586 dissect_gsm_map_dialogue_MAP_DialoguePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17587 offset = dissect_ber_choice(actx, tree, tvb, offset,
17588 gsm_map_dialogue_MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU,
17589 NULL);
17591 return offset;
17594 /*--- PDUs ---*/
17596 static int dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
17597 int offset = 0;
17598 asn1_ctx_t asn1_ctx;
17599 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
17600 offset = dissect_gsm_map_dialogue_MAP_DialoguePDU(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU);
17601 return offset;
17605 /* --- Module MAP-LocationServiceOperations --- --- --- */
17608 /* --- Module MAP-Group-Call-Operations --- --- --- */
17611 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
17614 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
17617 /* --- Module MAP-CallHandlingOperations --- --- --- */
17620 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
17623 /* --- Module MAP-MobileServiceOperations --- --- --- */
17626 /* --- Module MAP-Errors --- --- --- */
17629 /* --- Module MAP-Protocol --- --- --- */
17632 /* --- Module DummyMAP --- --- --- */
17636 static int
17637 dissect_gsm_old_InvokeIdType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17638 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17639 NULL);
17641 return offset;
17645 static const value_string gsm_old_GSMMAPOperationLocalvalue_vals[] = {
17646 { 2, "updateLocation" },
17647 { 3, "cancelLocation" },
17648 { 4, "provideRoamingNumber" },
17649 { 5, "noteSubscriberDataModified" },
17650 { 6, "resumeCallHandling" },
17651 { 7, "insertSubscriberData" },
17652 { 8, "deleteSubscriberData" },
17653 { 9, "sendParameters" },
17654 { 10, "registerSS" },
17655 { 11, "eraseSS" },
17656 { 12, "activateSS" },
17657 { 13, "deactivateSS" },
17658 { 14, "interrogateSS" },
17659 { 15, "authenticationFailureReport" },
17660 { 16, "notifySS" },
17661 { 17, "registerPassword" },
17662 { 18, "getPassword" },
17663 { 19, "processUnstructuredSS-Data" },
17664 { 20, "releaseResources" },
17665 { 21, "mt-ForwardSM-VGCS" },
17666 { 22, "sendRoutingInfo" },
17667 { 23, "updateGprsLocation" },
17668 { 24, "sendRoutingInfoForGprs" },
17669 { 25, "failureReport" },
17670 { 26, "noteMsPresentForGprs" },
17671 { 27, "unAllocated" },
17672 { 28, "performHandover" },
17673 { 29, "sendEndSignal" },
17674 { 30, "performSubsequentHandover" },
17675 { 31, "provideSIWFSNumber" },
17676 { 32, "sIWFSSignallingModify" },
17677 { 33, "processAccessSignalling" },
17678 { 34, "forwardAccessSignalling" },
17679 { 35, "noteInternalHandover" },
17680 { 36, "cancelVcsgLocation" },
17681 { 37, "reset" },
17682 { 38, "forwardCheckSS" },
17683 { 39, "prepareGroupCall" },
17684 { 40, "sendGroupCallEndSignal" },
17685 { 41, "processGroupCallSignalling" },
17686 { 42, "forwardGroupCallSignalling" },
17687 { 43, "checkIMEI" },
17688 { 44, "mt-forwardSM" },
17689 { 45, "sendRoutingInfoForSM" },
17690 { 46, "mo-forwardSM" },
17691 { 47, "reportSM-DeliveryStatus" },
17692 { 48, "noteSubscriberPresent" },
17693 { 49, "alertServiceCentreWithoutResult" },
17694 { 50, "activateTraceMode" },
17695 { 51, "deactivateTraceMode" },
17696 { 52, "traceSubscriberActivity" },
17697 { 53, "updateVcsgLocation" },
17698 { 54, "beginSubscriberActivity" },
17699 { 55, "sendIdentification" },
17700 { 56, "sendAuthenticationInfo" },
17701 { 57, "restoreData" },
17702 { 58, "sendIMSI" },
17703 { 59, "processUnstructuredSS-Request" },
17704 { 60, "unstructuredSS-Request" },
17705 { 61, "unstructuredSS-Notify" },
17706 { 62, "anyTimeSubscriptionInterrogation" },
17707 { 63, "informServiceCentre" },
17708 { 64, "alertServiceCentre" },
17709 { 65, "anyTimeModification" },
17710 { 66, "readyForSM" },
17711 { 67, "purgeMS" },
17712 { 68, "prepareHandover" },
17713 { 69, "prepareSubsequentHandover" },
17714 { 70, "provideSubscriberInfo" },
17715 { 71, "anyTimeInterrogation" },
17716 { 72, "ss-InvocationNotification" },
17717 { 73, "setReportingState" },
17718 { 74, "statusReport" },
17719 { 75, "remoteUserFree" },
17720 { 76, "registerCC-Entry" },
17721 { 77, "eraseCC-Entry" },
17722 { 78, "secureTransportClass1" },
17723 { 79, "secureTransportClass2" },
17724 { 80, "secureTransportClass3" },
17725 { 81, "secureTransportClass4" },
17726 { 82, "unAllocated" },
17727 { 83, "provideSubscriberLocation" },
17728 { 84, "sendGroupCallInfo" },
17729 { 85, "sendRoutingInfoForLCS" },
17730 { 86, "subscriberLocationReport" },
17731 { 87, "ist-Alert" },
17732 { 88, "ist-Command" },
17733 { 89, "noteMM-Event" },
17734 { 90, "unAllocated" },
17735 { 91, "unAllocated" },
17736 { 92, "unAllocated" },
17737 { 93, "unAllocated" },
17738 { 94, "unAllocated" },
17739 { 95, "unAllocated" },
17740 { 96, "unAllocated" },
17741 { 97, "unAllocated" },
17742 { 98, "unAllocated" },
17743 { 99, "unAllocated" },
17744 { 100, "unAllocated" },
17745 { 101, "unAllocated" },
17746 { 102, "unAllocated" },
17747 { 103, "unAllocated" },
17748 { 104, "unAllocated" },
17749 { 105, "unAllocated" },
17750 { 106, "unAllocated" },
17751 { 107, "unAllocated" },
17752 { 108, "unAllocated" },
17753 { 109, "lcs-PeriodicLocationCancellation" },
17754 { 110, "lcs-LocationUpdate" },
17755 { 111, "lcs-PeriodicLocationRequest" },
17756 { 112, "lcs-AreaEventCancellation" },
17757 { 113, "lcs-AreaEventReport" },
17758 { 114, "lcs-AreaEventRequest" },
17759 { 115, "lcs-MOLR" },
17760 { 116, "lcs-LocationNotification" },
17761 { 117, "callDeflection" },
17762 { 118, "userUserService" },
17763 { 119, "accessRegisterCCEntry" },
17764 { 120, "forwardCUG-Info" },
17765 { 121, "splitMPTY" },
17766 { 122, "retrieveMPTY" },
17767 { 123, "holdMPTY" },
17768 { 124, "buildMPTY" },
17769 { 125, "forwardChargeAdvice" },
17770 { 126, "explicitCT" },
17771 { 0, NULL }
17774 static value_string_ext gsm_old_GSMMAPOperationLocalvalue_vals_ext = VALUE_STRING_EXT_INIT(gsm_old_GSMMAPOperationLocalvalue_vals);
17777 static int
17778 dissect_gsm_old_GSMMAPOperationLocalvalue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17779 const char *opcode_string;
17781 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17782 &opcode);
17784 /* Retrieve opcode string and eventually update item value */
17785 opcode_string = gsm_map_opr_code(opcode, actx->created_item);
17786 col_append_str(actx->pinfo->cinfo, COL_INFO, opcode_string);
17787 col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
17790 return offset;
17795 static int
17796 dissect_gsm_old_OperationLocalvalue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17797 offset = dissect_gsm_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index);
17799 return offset;
17804 static int
17805 dissect_gsm_old_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17806 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
17808 return offset;
17812 static const value_string gsm_old_MAP_OPERATION_vals[] = {
17813 { 0, "localValue" },
17814 { 1, "globalValue" },
17815 { 0, NULL }
17818 static const ber_choice_t gsm_old_MAP_OPERATION_choice[] = {
17819 { 0, &hf_gsm_old_localValue , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OperationLocalvalue },
17820 { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
17821 { 0, NULL, 0, 0, 0, NULL }
17824 static int
17825 dissect_gsm_old_MAP_OPERATION(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17826 offset = dissect_ber_choice(actx, tree, tvb, offset,
17827 gsm_old_MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION,
17828 NULL);
17830 return offset;
17835 static int
17836 dissect_gsm_old_InvokeParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17837 offset = dissect_invokeData(tree, tvb, offset, actx);
17840 return offset;
17844 static const ber_sequence_t gsm_old_Invoke_sequence[] = {
17845 { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
17846 { &hf_gsm_old_linkedID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeIdType },
17847 { &hf_gsm_old_opCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
17848 { &hf_gsm_old_invokeparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeParameter },
17849 { NULL, 0, 0, 0, NULL }
17852 static int
17853 dissect_gsm_old_Invoke(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17854 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17855 gsm_old_Invoke_sequence, hf_index, ett_gsm_old_Invoke);
17857 return offset;
17862 static int
17863 dissect_gsm_old_ReturnResultParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17864 offset = dissect_returnResultData(tree, tvb, offset, actx);
17867 return offset;
17871 static const ber_sequence_t gsm_old_T_resultretres_sequence[] = {
17872 { &hf_gsm_old_opCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
17873 { &hf_gsm_old_returnparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnResultParameter },
17874 { NULL, 0, 0, 0, NULL }
17877 static int
17878 dissect_gsm_old_T_resultretres(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17879 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17880 gsm_old_T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres);
17882 return offset;
17886 static const ber_sequence_t gsm_old_ReturnResult_sequence[] = {
17887 { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
17888 { &hf_gsm_old_resultretres, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_T_resultretres },
17889 { NULL, 0, 0, 0, NULL }
17892 static int
17893 dissect_gsm_old_ReturnResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17894 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17895 gsm_old_ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult);
17897 return offset;
17901 const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = {
17902 { 1, "unknownSubscriber" },
17903 { 2, "unknownBaseStation" },
17904 { 3, "unknownMSC" },
17905 { 4, "secureTransportError" },
17906 { 5, "unidentifiedSubscriber" },
17907 { 6, "absentSubscriberSM" },
17908 { 7, "unknownEquipment" },
17909 { 8, "roamingNotAllowed" },
17910 { 9, "illegalSubscriber" },
17911 { 10, "bearerServiceNotProvisioned" },
17912 { 11, "teleserviceNotProvisioned" },
17913 { 12, "illegalEquipment" },
17914 { 13, "callBarred" },
17915 { 14, "forwardingViolation" },
17916 { 15, "cug-Reject" },
17917 { 16, "illegalSS-Operation" },
17918 { 17, "ss-ErrorStatus" },
17919 { 18, "ss-NotAvailable" },
17920 { 19, "ss-SubscriptionViolation" },
17921 { 20, "ss-Incompatibility" },
17922 { 21, "facilityNotSupported" },
17923 { 22, "ongoingGroupCall" },
17924 { 23, "invalidTargetBaseStation" },
17925 { 24, "noRadioResourceAvailable" },
17926 { 25, "noHandoverNumberAvailable" },
17927 { 26, "subsequentHandoverFailure" },
17928 { 27, "absentSubscriber" },
17929 { 28, "incompatibleTerminal" },
17930 { 29, "shortTermDenial" },
17931 { 30, "longTermDenial" },
17932 { 31, "subscriberBusyForMT-SMS" },
17933 { 32, "sm-DeliveryFailure" },
17934 { 33, "messageWaitingListFull" },
17935 { 34, "systemFailure" },
17936 { 35, "dataMissing" },
17937 { 36, "unexpectedDataValue" },
17938 { 37, "pw-RegistrationFailure" },
17939 { 38, "negativePW-Check" },
17940 { 39, "noRoamingNumberAvailable" },
17941 { 40, "tracingBufferFull" },
17942 { 42, "targetCellOutsideGroupCallArea" },
17943 { 43, "numberOfPW-AttemptsViolation" },
17944 { 44, "numberChanged" },
17945 { 45, "busySubscriber" },
17946 { 46, "noSubscriberReply" },
17947 { 47, "forwardingFailed" },
17948 { 48, "or-NotAllowed" },
17949 { 49, "ati-NotAllowed" },
17950 { 50, "noGroupCallNumberAvailable" },
17951 { 51, "resourceLimitation" },
17952 { 52, "unauthorizedRequestingNetwork" },
17953 { 53, "unauthorizedLCSClient" },
17954 { 54, "positionMethodFailure" },
17955 { 58, "unknownOrUnreachableLCSClient" },
17956 { 59, "mm-EventNotSupported" },
17957 { 60, "atsi-NotAllowed" },
17958 { 61, "atm-NotAllowed" },
17959 { 62, "informationNotAvailable" },
17960 { 71, "unknownAlphabet" },
17961 { 72, "ussd-Busy" },
17962 { 0, NULL }
17967 dissect_gsm_old_GSMMAPLocalErrorcode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17968 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17969 &errorCode);
17971 return offset;
17976 static int
17977 dissect_gsm_old_LocalErrorcode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17978 offset = dissect_gsm_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index);
17980 return offset;
17984 static const value_string gsm_old_MAP_ERROR_vals[] = {
17985 { 0, "localValue" },
17986 { 1, "globalValue" },
17987 { 0, NULL }
17990 static const ber_choice_t gsm_old_MAP_ERROR_choice[] = {
17991 { 0, &hf_gsm_old_localValue_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_LocalErrorcode },
17992 { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
17993 { 0, NULL, 0, 0, 0, NULL }
17996 static int
17997 dissect_gsm_old_MAP_ERROR(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17998 offset = dissect_ber_choice(actx, tree, tvb, offset,
17999 gsm_old_MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR,
18000 NULL);
18002 return offset;
18007 static int
18008 dissect_gsm_old_ReturnErrorParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18009 offset = dissect_returnErrorData(tree, tvb, offset, actx);
18012 return offset;
18016 static const ber_sequence_t gsm_old_ReturnError_sequence[] = {
18017 { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
18018 { &hf_gsm_old_errorCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_ERROR },
18019 { &hf_gsm_old_parameter , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnErrorParameter },
18020 { NULL, 0, 0, 0, NULL }
18023 static int
18024 dissect_gsm_old_ReturnError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18025 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18026 gsm_old_ReturnError_sequence, hf_index, ett_gsm_old_ReturnError);
18028 return offset;
18033 static int
18034 dissect_gsm_old_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18035 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
18037 return offset;
18041 static const value_string gsm_old_T_invokeIDRej_vals[] = {
18042 { 0, "derivable" },
18043 { 1, "not-derivable" },
18044 { 0, NULL }
18047 static const ber_choice_t gsm_old_T_invokeIDRej_choice[] = {
18048 { 0, &hf_gsm_old_derivable , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
18049 { 1, &hf_gsm_old_not_derivable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
18050 { 0, NULL, 0, 0, 0, NULL }
18053 static int
18054 dissect_gsm_old_T_invokeIDRej(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18055 offset = dissect_ber_choice(actx, tree, tvb, offset,
18056 gsm_old_T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej,
18057 NULL);
18059 return offset;
18063 static const value_string gsm_old_GeneralProblem_vals[] = {
18064 { 0, "unrecognizedComponent" },
18065 { 1, "mistypedComponent" },
18066 { 2, "badlyStructuredComponent" },
18067 { 0, NULL }
18071 static int
18072 dissect_gsm_old_GeneralProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18073 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18074 NULL);
18076 return offset;
18080 static const value_string gsm_old_InvokeProblem_vals[] = {
18081 { 0, "duplicateInvokeID" },
18082 { 1, "unrecognizedOperation" },
18083 { 2, "mistypedParameter" },
18084 { 3, "resourceLimitation" },
18085 { 4, "initiatingRelease" },
18086 { 5, "unrecognizedLinkedID" },
18087 { 6, "linkedResponseUnexpected" },
18088 { 7, "unexpectedLinkedOperation" },
18089 { 0, NULL }
18093 static int
18094 dissect_gsm_old_InvokeProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18095 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18096 NULL);
18098 return offset;
18102 static const value_string gsm_old_ReturnResultProblem_vals[] = {
18103 { 0, "unrecognizedInvokeID" },
18104 { 1, "returnResultUnexpected" },
18105 { 2, "mistypedParameter" },
18106 { 0, NULL }
18110 static int
18111 dissect_gsm_old_ReturnResultProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18112 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18113 NULL);
18115 return offset;
18119 static const value_string gsm_old_ReturnErrorProblem_vals[] = {
18120 { 0, "unrecognizedInvokeID" },
18121 { 1, "returnErrorUnexpected" },
18122 { 2, "unrecognizedError" },
18123 { 3, "unexpectedError" },
18124 { 4, "mistypedParameter" },
18125 { 0, NULL }
18129 static int
18130 dissect_gsm_old_ReturnErrorProblem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18131 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18132 NULL);
18134 return offset;
18138 static const value_string gsm_old_T_problem_vals[] = {
18139 { 0, "generalProblem" },
18140 { 1, "invokeProblem" },
18141 { 2, "returnResultProblem" },
18142 { 3, "returnErrorProblem" },
18143 { 0, NULL }
18146 static const ber_choice_t gsm_old_T_problem_choice[] = {
18147 { 0, &hf_gsm_old_generalProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_GeneralProblem },
18148 { 1, &hf_gsm_old_invokeProblem, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeProblem },
18149 { 2, &hf_gsm_old_returnResultProblem, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResultProblem },
18150 { 3, &hf_gsm_old_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnErrorProblem },
18151 { 0, NULL, 0, 0, 0, NULL }
18154 static int
18155 dissect_gsm_old_T_problem(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18156 offset = dissect_ber_choice(actx, tree, tvb, offset,
18157 gsm_old_T_problem_choice, hf_index, ett_gsm_old_T_problem,
18158 NULL);
18160 return offset;
18164 static const ber_sequence_t gsm_old_Reject_sequence[] = {
18165 { &hf_gsm_old_invokeIDRej , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_invokeIDRej },
18166 { &hf_gsm_old_problem , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_problem },
18167 { NULL, 0, 0, 0, NULL }
18170 static int
18171 dissect_gsm_old_Reject(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18172 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18173 gsm_old_Reject_sequence, hf_index, ett_gsm_old_Reject);
18175 return offset;
18179 static const value_string gsm_old_Component_vals[] = {
18180 { 1, "invoke" },
18181 { 2, "returnResultLast" },
18182 { 3, "returnError" },
18183 { 4, "reject" },
18184 { 7, "returnResultNotLast" },
18185 { 0, NULL }
18188 static const ber_choice_t gsm_old_Component_choice[] = {
18189 { 1, &hf_gsm_old_invoke , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_Invoke },
18190 { 2, &hf_gsm_old_returnResultLast, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
18191 { 3, &hf_gsm_old_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnError },
18192 { 4, &hf_gsm_old_reject , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Reject },
18193 { 7, &hf_gsm_old_returnResultNotLast, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
18194 { 0, NULL, 0, 0, 0, NULL }
18197 static int
18198 dissect_gsm_old_Component(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18199 offset = dissect_ber_choice(actx, tree, tvb, offset,
18200 gsm_old_Component_choice, hf_index, ett_gsm_old_Component,
18201 NULL);
18203 return offset;
18207 static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = {
18208 { &hf_gsm_old_protocolId , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
18209 { &hf_gsm_old_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
18210 { &hf_gsm_old_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
18211 { NULL, 0, 0, 0, NULL }
18214 static int
18215 dissect_gsm_old_Bss_APDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18216 uint8_t octet;
18217 uint8_t length;
18218 tvbuff_t *next_tvb;
18219 proto_tree *subtree;
18221 ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
18222 5.6.9.1 BSS-apdu
18223 This parameter includes one or two concatenated complete 08.06 messages, as described in GSM 03.09
18224 and GSM 09.10. The Protocol ID indicates that the message or messages are according to GSM 08.06.
18225 For the coding of the messages see GSM 08.06 and GSM 08.08.
18227 ProtocolId = 0xffffffff;
18228 gsm_map_private_info_t *gsm_map_priv;
18229 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18230 gsm_old_Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU);
18232 gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
18233 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
18234 return offset;
18235 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
18236 switch (ProtocolId){
18237 case 1:
18238 /* gsm-0408 */
18239 /* As per comment abowe Individual IE:(s) will be found here in TLV format
18240 * Unfortunately a branch for each IE must be made to call the appropriate
18241 * function
18243 /* Get tag */
18244 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
18245 proto_tree_add_item(subtree, hf_gsm_map_ie_tag, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
18246 /* get length */
18247 length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
18248 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
18249 /* Branch on tag */
18250 switch(octet){
18251 case 4:
18252 /* Dissect the data part */
18253 de_bearer_cap(gsm_map_priv->signal_info_tvb, subtree, actx->pinfo, 2, length, NULL, 0);
18254 /* TODO: There may be more than one IE */
18255 break;
18256 default:
18257 proto_tree_add_expert(subtree, actx->pinfo, &ei_gsm_map_undecoded, gsm_map_priv->signal_info_tvb, 0, length);
18258 break;
18259 }/* switch(octet) */
18260 break;
18261 case 2:
18262 /* gsm-0806 */
18263 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
18264 /* Discrimination parameter */
18265 proto_tree_add_item(subtree, hf_gsm_map_disc_par, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
18266 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
18267 /* Strip off discrimination and length */
18268 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
18269 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
18270 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
18271 }else if(octet==1){
18272 proto_tree_add_item(subtree, hf_gsm_map_dlci, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
18273 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 2,1,ENC_BIG_ENDIAN);
18274 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 3);
18275 call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
18277 break;
18278 case 3:
18279 /* gsm-BSSMAP -- Value 3 is reserved and must not be used*/
18280 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
18281 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
18282 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
18283 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
18285 break;
18286 /* ets-300102-1 (~Q.931 ) */
18287 case 4:
18288 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
18289 length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
18290 if ( octet == 4 )
18291 dissect_q931_bearer_capability_ie(gsm_map_priv->signal_info_tvb, 2, length, subtree);
18292 break;
18293 default:
18294 break;
18295 }/*switch (ProtocolId)*/
18298 return offset;
18303 static int
18304 dissect_gsm_old_CallDirection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18305 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18306 NULL);
18308 return offset;
18312 static const ber_sequence_t gsm_old_ProvideSIWFSNumberArg_sequence[] = {
18313 { &hf_gsm_old_gsm_BearerCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18314 { &hf_gsm_old_isdn_BearerCapability, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18315 { &hf_gsm_old_call_Direction, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_CallDirection },
18316 { &hf_gsm_old_b_Subscriber_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18317 { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18318 { &hf_gsm_old_lowerLayerCompatibility, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18319 { &hf_gsm_old_highLayerCompatibility, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18320 { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
18321 { NULL, 0, 0, 0, NULL }
18324 static int
18325 dissect_gsm_old_ProvideSIWFSNumberArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18326 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18327 gsm_old_ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg);
18329 return offset;
18333 static const ber_sequence_t gsm_old_ProvideSIWFSNumberRes_sequence[] = {
18334 { &hf_gsm_old_sIWFSNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18335 { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
18336 { NULL, 0, 0, 0, NULL }
18339 static int
18340 dissect_gsm_old_ProvideSIWFSNumberRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18341 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18342 gsm_old_ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes);
18344 return offset;
18348 static const ber_sequence_t gsm_old_PurgeMSArgV2_sequence[] = {
18349 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
18350 { &hf_gsm_old_vlr_Number , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
18351 { NULL, 0, 0, 0, NULL }
18354 static int
18355 dissect_gsm_old_PurgeMSArgV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18356 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18357 gsm_old_PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2);
18359 return offset;
18363 static const ber_sequence_t gsm_old_PrepareHO_ArgOld_sequence[] = {
18364 { &hf_gsm_old_targetCellId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
18365 { &hf_gsm_old_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
18366 { &hf_gsm_old_bss_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
18367 { NULL, 0, 0, 0, NULL }
18370 static int
18371 dissect_gsm_old_PrepareHO_ArgOld(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18372 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18373 gsm_old_PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld);
18375 return offset;
18379 static const ber_sequence_t gsm_old_PrepareHO_ResOld_sequence[] = {
18380 { &hf_gsm_old_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
18381 { &hf_gsm_old_bss_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
18382 { NULL, 0, 0, 0, NULL }
18385 static int
18386 dissect_gsm_old_PrepareHO_ResOld(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18387 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18388 gsm_old_PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld);
18390 return offset;
18395 static int
18396 dissect_gsm_old_RAND(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18397 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18398 NULL);
18400 return offset;
18405 static int
18406 dissect_gsm_old_SRES(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18407 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18408 NULL);
18410 return offset;
18415 static int
18416 dissect_gsm_old_Kc(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18417 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18418 NULL);
18420 return offset;
18424 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_item_sequence[] = {
18425 { &hf_gsm_old_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
18426 { &hf_gsm_old_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
18427 { &hf_gsm_old_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
18428 { NULL, 0, 0, 0, NULL }
18431 static int
18432 dissect_gsm_old_SendAuthenticationInfoResOld_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18433 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18434 gsm_old_SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item);
18436 return offset;
18440 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_sequence_of[1] = {
18441 { &hf_gsm_old_SendAuthenticationInfoResOld_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SendAuthenticationInfoResOld_item },
18444 static int
18445 dissect_gsm_old_SendAuthenticationInfoResOld(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18446 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
18447 gsm_old_SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld);
18449 return offset;
18453 static const ber_sequence_t gsm_old_AuthenticationTriplet_v2_sequence[] = {
18454 { &hf_gsm_old_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
18455 { &hf_gsm_old_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
18456 { &hf_gsm_old_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
18457 { NULL, 0, 0, 0, NULL }
18460 static int
18461 dissect_gsm_old_AuthenticationTriplet_v2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18462 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18463 gsm_old_AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2);
18465 return offset;
18469 static const ber_sequence_t gsm_old_TripletListold_sequence_of[1] = {
18470 { &hf_gsm_old_TripletListold_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_AuthenticationTriplet_v2 },
18473 static int
18474 dissect_gsm_old_TripletListold(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18475 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
18476 gsm_old_TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold);
18478 return offset;
18482 static const ber_sequence_t gsm_old_SendIdentificationResV2_sequence[] = {
18483 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
18484 { &hf_gsm_old_tripletList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_TripletListold },
18485 { NULL, 0, 0, 0, NULL }
18488 static int
18489 dissect_gsm_old_SendIdentificationResV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18490 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18491 gsm_old_SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2);
18493 return offset;
18497 static const ber_sequence_t gsm_old_SIWFSSignallingModifyArg_sequence[] = {
18498 { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18499 { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18500 { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
18501 { NULL, 0, 0, 0, NULL }
18504 static int
18505 dissect_gsm_old_SIWFSSignallingModifyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18506 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18507 gsm_old_SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg);
18509 return offset;
18513 static const ber_sequence_t gsm_old_SIWFSSignallingModifyRes_sequence[] = {
18514 { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18515 { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
18516 { NULL, 0, 0, 0, NULL }
18519 static int
18520 dissect_gsm_old_SIWFSSignallingModifyRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18521 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18522 gsm_old_SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes);
18524 return offset;
18530 dissect_gsm_old_NewPassword(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18531 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
18532 actx, tree, tvb, offset, hf_index,
18533 NULL);
18535 return offset;
18539 const value_string gsm_old_GetPasswordArg_vals[] = {
18540 { 0, "enterPW" },
18541 { 1, "enterNewPW" },
18542 { 2, "enterNewPW-Again" },
18543 { 0, NULL }
18548 dissect_gsm_old_GetPasswordArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18549 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18550 NULL);
18552 return offset;
18558 dissect_gsm_old_CurrentPassword(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18559 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
18560 actx, tree, tvb, offset, hf_index,
18561 NULL);
18563 return offset;
18568 static int
18569 dissect_gsm_old_SecurityParametersIndex(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18570 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18571 NULL);
18573 return offset;
18578 static int
18579 dissect_gsm_old_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18580 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18581 NULL);
18583 return offset;
18587 static const value_string gsm_old_OperationCode_vals[] = {
18588 { 0, "localValue" },
18589 { 1, "globalValue" },
18590 { 0, NULL }
18593 static const ber_choice_t gsm_old_OperationCode_choice[] = {
18594 { 0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
18595 { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
18596 { 0, NULL, 0, 0, 0, NULL }
18599 static int
18600 dissect_gsm_old_OperationCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18601 offset = dissect_ber_choice(actx, tree, tvb, offset,
18602 gsm_old_OperationCode_choice, hf_index, ett_gsm_old_OperationCode,
18603 NULL);
18605 return offset;
18609 static const value_string gsm_old_ErrorCode_vals[] = {
18610 { 0, "localValue" },
18611 { 1, "globalValue" },
18612 { 0, NULL }
18615 static const ber_choice_t gsm_old_ErrorCode_choice[] = {
18616 { 0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
18617 { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
18618 { 0, NULL, 0, 0, 0, NULL }
18621 static int
18622 dissect_gsm_old_ErrorCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18623 offset = dissect_ber_choice(actx, tree, tvb, offset,
18624 gsm_old_ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode,
18625 NULL);
18627 return offset;
18631 static const value_string gsm_old_OriginalComponentIdentifier_vals[] = {
18632 { 0, "operationCode" },
18633 { 1, "errorCode" },
18634 { 2, "userInfo" },
18635 { 0, NULL }
18638 static const ber_choice_t gsm_old_OriginalComponentIdentifier_choice[] = {
18639 { 0, &hf_gsm_old_operationCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_OperationCode },
18640 { 1, &hf_gsm_old_errorCode_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_ErrorCode },
18641 { 2, &hf_gsm_old_userInfo , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
18642 { 0, NULL, 0, 0, 0, NULL }
18645 static int
18646 dissect_gsm_old_OriginalComponentIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18647 offset = dissect_ber_choice(actx, tree, tvb, offset,
18648 gsm_old_OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier,
18649 NULL);
18651 return offset;
18656 static int
18657 dissect_gsm_old_InitialisationVector(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18658 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18659 NULL);
18661 return offset;
18665 static const ber_sequence_t gsm_old_SecurityHeader_sequence[] = {
18666 { &hf_gsm_old_securityParametersIndex, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityParametersIndex },
18667 { &hf_gsm_old_originalComponentIdentifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_OriginalComponentIdentifier },
18668 { &hf_gsm_old_initialisationVector, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InitialisationVector },
18669 { NULL, 0, 0, 0, NULL }
18673 dissect_gsm_old_SecurityHeader(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18674 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18675 gsm_old_SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader);
18677 return offset;
18683 dissect_gsm_old_ProtectedPayload(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18684 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18685 NULL);
18687 return offset;
18691 static const ber_sequence_t gsm_old_SecureTransportArg_sequence[] = {
18692 { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
18693 { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
18694 { NULL, 0, 0, 0, NULL }
18697 static int
18698 dissect_gsm_old_SecureTransportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18699 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18700 gsm_old_SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg);
18702 return offset;
18706 static const ber_sequence_t gsm_old_SecureTransportErrorParam_sequence[] = {
18707 { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
18708 { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
18709 { NULL, 0, 0, 0, NULL }
18712 static int
18713 dissect_gsm_old_SecureTransportErrorParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18714 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18715 gsm_old_SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam);
18717 return offset;
18721 static const ber_sequence_t gsm_old_SecureTransportRes_sequence[] = {
18722 { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
18723 { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
18724 { NULL, 0, 0, 0, NULL }
18727 static int
18728 dissect_gsm_old_SecureTransportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18729 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18730 gsm_old_SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes);
18732 return offset;
18737 static int
18738 dissect_gsm_old_Category(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18739 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18740 NULL);
18742 return offset;
18747 static int
18748 dissect_gsm_old_OCTET_STRING_SIZE_1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18749 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18750 NULL);
18752 return offset;
18756 static const ber_sequence_t gsm_old_T_operatorSS_Code_sequence_of[1] = {
18757 { &hf_gsm_old_operatorSS_Code_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OCTET_STRING_SIZE_1 },
18760 static int
18761 dissect_gsm_old_T_operatorSS_Code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18762 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
18763 gsm_old_T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code);
18765 return offset;
18769 static const ber_sequence_t gsm_old_PlmnContainer_U_sequence[] = {
18770 { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18771 { &hf_gsm_old_category , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_Category },
18772 { &hf_gsm_old_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
18773 { &hf_gsm_old_operatorSS_Code, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_T_operatorSS_Code },
18774 { NULL, 0, 0, 0, NULL }
18777 static int
18778 dissect_gsm_old_PlmnContainer_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18779 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18780 gsm_old_PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U);
18782 return offset;
18787 static int
18788 dissect_gsm_old_PlmnContainer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18789 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
18790 hf_index, BER_CLASS_PRI, 2, true, dissect_gsm_old_PlmnContainer_U);
18792 return offset;
18797 static int
18798 dissect_gsm_old_T_imsi(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18799 actx->private_data = NULL;
18800 actx->pinfo->p2p_dir = P2P_DIR_SENT;
18801 offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
18803 if (actx->private_data) {
18804 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18805 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_IMSI;
18806 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
18807 actx->private_data = NULL;
18811 return offset;
18816 static int
18817 dissect_gsm_old_T_lmsi(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18818 actx->private_data = NULL;
18819 actx->pinfo->p2p_dir = P2P_DIR_SENT;
18820 offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
18822 if (actx->private_data) {
18823 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18824 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_LMSI;
18825 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
18826 actx->private_data = NULL;
18830 return offset;
18835 static int
18836 dissect_gsm_old_T_serviceCentreAddressDA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18837 actx->private_data = NULL;
18838 actx->pinfo->p2p_dir = P2P_DIR_RECV;
18839 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
18841 if (actx->private_data) {
18842 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18843 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_SERVICE_CENTER_ADDRESS;
18844 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
18845 actx->private_data = NULL;
18849 return offset;
18854 static int
18855 dissect_gsm_old_T_noSM_RP_DA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18856 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
18858 if (!PINFO_FD_VISITED(actx->pinfo)) {
18859 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
18860 gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
18861 if (prev_packet_info) {
18862 gsm_map_pi->sm_rp_da_id = prev_packet_info->sm_rp_da_id;
18863 gsm_map_pi->sm_rp_da_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_da_str);
18868 return offset;
18872 static const value_string gsm_old_SM_RP_DAold_vals[] = {
18873 { 0, "imsi" },
18874 { 1, "lmsi" },
18875 { 4, "serviceCentreAddressDA" },
18876 { 5, "noSM-RP-DA" },
18877 { 0, NULL }
18880 static const ber_choice_t gsm_old_SM_RP_DAold_choice[] = {
18881 { 0, &hf_gsm_old_imsi_01 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_imsi },
18882 { 1, &hf_gsm_old_lmsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_lmsi },
18883 { 4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressDA },
18884 { 5, &hf_gsm_old_noSM_RP_DA , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_noSM_RP_DA },
18885 { 0, NULL, 0, 0, 0, NULL }
18888 static int
18889 dissect_gsm_old_SM_RP_DAold(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18890 offset = dissect_ber_choice(actx, tree, tvb, offset,
18891 gsm_old_SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold,
18892 NULL);
18894 return offset;
18899 static int
18900 dissect_gsm_old_T_msisdn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18901 actx->private_data = NULL;
18902 actx->pinfo->p2p_dir = P2P_DIR_RECV;
18903 offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
18905 if (actx->private_data) {
18906 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18907 gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_MSISDN;
18908 gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
18909 actx->private_data = NULL;
18913 return offset;
18918 static int
18919 dissect_gsm_old_T_serviceCentreAddressOA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18920 actx->private_data = NULL;
18921 actx->pinfo->p2p_dir = P2P_DIR_SENT;
18922 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
18924 if (actx->private_data) {
18925 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18926 gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_SERVICE_CENTER_ADDRESS;
18927 gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
18928 actx->private_data = NULL;
18932 return offset;
18937 static int
18938 dissect_gsm_old_T_noSM_RP_OA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18939 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
18941 if (!PINFO_FD_VISITED(actx->pinfo)) {
18942 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
18943 gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
18944 if (prev_packet_info) {
18945 gsm_map_pi->sm_rp_oa_id = prev_packet_info->sm_rp_oa_id;
18946 gsm_map_pi->sm_rp_oa_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_oa_str);
18951 return offset;
18955 static const value_string gsm_old_SM_RP_OAold_vals[] = {
18956 { 2, "msisdn" },
18957 { 4, "serviceCentreAddressOA" },
18958 { 5, "noSM-RP-OA" },
18959 { 0, NULL }
18962 static const ber_choice_t gsm_old_SM_RP_OAold_choice[] = {
18963 { 2, &hf_gsm_old_msisdn_01 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_msisdn },
18964 { 4, &hf_gsm_old_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressOA },
18965 { 5, &hf_gsm_old_noSM_RP_OA , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_noSM_RP_OA },
18966 { 0, NULL, 0, 0, 0, NULL }
18969 static int
18970 dissect_gsm_old_SM_RP_OAold(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18971 offset = dissect_ber_choice(actx, tree, tvb, offset,
18972 gsm_old_SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold,
18973 NULL);
18975 return offset;
18979 static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = {
18980 { &hf_gsm_old_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_DAold },
18981 { &hf_gsm_old_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_OAold },
18982 { &hf_gsm_old_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
18983 { &hf_gsm_old_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
18984 { NULL, 0, 0, 0, NULL }
18987 static int
18988 dissect_gsm_old_ForwardSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18989 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
18990 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
18991 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18992 gsm_old_ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg);
18995 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
18996 return offset;
18997 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
18998 if (gsmmap_pdu_type == 1) {
18999 actx->pinfo->p2p_dir = P2P_DIR_SENT;
19000 } else {
19001 actx->pinfo->p2p_dir = P2P_DIR_RECV;
19004 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
19007 return offset;
19011 static const ber_sequence_t gsm_old_SendRoutingInfoArgV2_sequence[] = {
19012 { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
19013 { &hf_gsm_old_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
19014 { &hf_gsm_old_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
19015 { &hf_gsm_old_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
19016 { NULL, 0, 0, 0, NULL }
19019 static int
19020 dissect_gsm_old_SendRoutingInfoArgV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19021 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19022 gsm_old_SendRoutingInfoArgV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoArgV2);
19024 return offset;
19028 static const ber_sequence_t gsm_old_SendRoutingInfoResV2_sequence[] = {
19029 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
19030 { &hf_gsm_old_routingInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
19031 { &hf_gsm_old_cug_CheckInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_CUG_CheckInfo },
19032 { NULL, 0, 0, 0, NULL }
19035 static int
19036 dissect_gsm_old_SendRoutingInfoResV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19037 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19038 gsm_old_SendRoutingInfoResV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoResV2);
19040 return offset;
19044 static const ber_sequence_t gsm_old_BeginSubscriberActivityArg_sequence[] = {
19045 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
19046 { &hf_gsm_old_originatingEntityNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
19047 { &hf_gsm_old_msisdn_02 , BER_CLASS_PRI, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
19048 { NULL, 0, 0, 0, NULL }
19051 static int
19052 dissect_gsm_old_BeginSubscriberActivityArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19053 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19054 gsm_old_BeginSubscriberActivityArg_sequence, hf_index, ett_gsm_old_BeginSubscriberActivityArg);
19056 return offset;
19061 static int
19062 dissect_gsm_old_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19063 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
19065 return offset;
19069 static const ber_sequence_t gsm_old_RoutingInfoForSM_ArgV1_sequence[] = {
19070 { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
19071 { &hf_gsm_old_sm_RP_PRI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_BOOLEAN },
19072 { &hf_gsm_old_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
19073 { &hf_gsm_old_cug_Interlock, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock },
19074 { &hf_gsm_old_teleserviceCode, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
19075 { &hf_gsm_old_imsi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
19076 { NULL, 0, 0, 0, NULL }
19079 static int
19080 dissect_gsm_old_RoutingInfoForSM_ArgV1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19081 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19082 gsm_old_RoutingInfoForSM_ArgV1_sequence, hf_index, ett_gsm_old_RoutingInfoForSM_ArgV1);
19084 return offset;
19088 static const value_string gsm_old_LocationInfo_vals[] = {
19089 { 0, "roamingNumber" },
19090 { 1, "msc-Number" },
19091 { 0, NULL }
19094 static const ber_choice_t gsm_old_LocationInfo_choice[] = {
19095 { 0, &hf_gsm_old_roamingNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
19096 { 1, &hf_gsm_old_msc_Number , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
19097 { 0, NULL, 0, 0, 0, NULL }
19100 static int
19101 dissect_gsm_old_LocationInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19102 offset = dissect_ber_choice(actx, tree, tvb, offset,
19103 gsm_old_LocationInfo_choice, hf_index, ett_gsm_old_LocationInfo,
19104 NULL);
19106 return offset;
19110 static const ber_sequence_t gsm_old_LocationInfoWithLMSIv2_sequence[] = {
19111 { &hf_gsm_old_locationInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_LocationInfo },
19112 { &hf_gsm_old_lmsi_01 , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
19113 { NULL, 0, 0, 0, NULL }
19116 static int
19117 dissect_gsm_old_LocationInfoWithLMSIv2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19118 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19119 gsm_old_LocationInfoWithLMSIv2_sequence, hf_index, ett_gsm_old_LocationInfoWithLMSIv2);
19121 return offset;
19125 static const ber_sequence_t gsm_old_RoutingInfoForSM_ResV2_sequence[] = {
19126 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
19127 { &hf_gsm_old_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_LocationInfoWithLMSIv2 },
19128 { &hf_gsm_old_mwd_Set , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_BOOLEAN },
19129 { NULL, 0, 0, 0, NULL }
19132 static int
19133 dissect_gsm_old_RoutingInfoForSM_ResV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19134 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19135 gsm_old_RoutingInfoForSM_ResV2_sequence, hf_index, ett_gsm_old_RoutingInfoForSM_ResV2);
19137 return offset;
19142 static int
19143 dissect_gsm_old_Ki(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19144 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19145 NULL);
19147 return offset;
19151 static const value_string gsm_old_RequestParameter_vals[] = {
19152 { 0, "requestIMSI" },
19153 { 1, "requestAuthenticationSet" },
19154 { 2, "requestSubscriberData" },
19155 { 4, "requestKi" },
19156 { 0, NULL }
19160 static int
19161 dissect_gsm_old_RequestParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19162 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19163 NULL);
19165 return offset;
19169 static const ber_sequence_t gsm_old_RequestParameterList_sequence_of[1] = {
19170 { &hf_gsm_old_RequestParameterList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RequestParameter },
19173 static int
19174 dissect_gsm_old_RequestParameterList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19175 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
19176 gsm_old_RequestParameterList_sequence_of, hf_index, ett_gsm_old_RequestParameterList);
19178 return offset;
19182 static const ber_sequence_t gsm_old_SendParametersArg_sequence[] = {
19183 { &hf_gsm_old_subscriberId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SubscriberId },
19184 { &hf_gsm_old_requestParameterList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RequestParameterList },
19185 { NULL, 0, 0, 0, NULL }
19188 static int
19189 dissect_gsm_old_SendParametersArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19190 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19191 gsm_old_SendParametersArg_sequence, hf_index, ett_gsm_old_SendParametersArg);
19193 return offset;
19197 static const value_string gsm_old_AuthenticationSetListOld_vals[] = {
19198 { 0, "tripletList" },
19199 { 1, "quintupletList" },
19200 { 0, NULL }
19203 static const ber_choice_t gsm_old_AuthenticationSetListOld_choice[] = {
19204 { 0, &hf_gsm_old_tripletList_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
19205 { 1, &hf_gsm_old_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
19206 { 0, NULL, 0, 0, 0, NULL }
19209 static int
19210 dissect_gsm_old_AuthenticationSetListOld(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19211 offset = dissect_ber_choice(actx, tree, tvb, offset,
19212 gsm_old_AuthenticationSetListOld_choice, hf_index, ett_gsm_old_AuthenticationSetListOld,
19213 NULL);
19215 return offset;
19219 static const value_string gsm_old_SentParameter_vals[] = {
19220 { 0, "imsi" },
19221 { 1, "authenticationSet" },
19222 { 2, "subscriberData" },
19223 { 4, "ki" },
19224 { 0, NULL }
19227 static const ber_choice_t gsm_old_SentParameter_choice[] = {
19228 { 0, &hf_gsm_old_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
19229 { 1, &hf_gsm_old_authenticationSet, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_AuthenticationSetListOld },
19230 { 2, &hf_gsm_old_subscriberData, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberData },
19231 { 4, &hf_gsm_old_ki , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Ki },
19232 { 0, NULL, 0, 0, 0, NULL }
19235 static int
19236 dissect_gsm_old_SentParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19237 offset = dissect_ber_choice(actx, tree, tvb, offset,
19238 gsm_old_SentParameter_choice, hf_index, ett_gsm_old_SentParameter,
19239 NULL);
19241 return offset;
19245 static const ber_sequence_t gsm_old_SentParameterList_sequence_of[1] = {
19246 { &hf_gsm_old_SentParameterList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SentParameter },
19249 static int
19250 dissect_gsm_old_SentParameterList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19251 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
19252 gsm_old_SentParameterList_sequence_of, hf_index, ett_gsm_old_SentParameterList);
19254 return offset;
19258 static const ber_sequence_t gsm_old_ResetArgV1_sequence[] = {
19259 { &hf_gsm_old_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
19260 { &hf_gsm_old_hlr_Number , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
19261 { &hf_gsm_old_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
19262 { NULL, 0, 0, 0, NULL }
19265 static int
19266 dissect_gsm_old_ResetArgV1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19267 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19268 gsm_old_ResetArgV1_sequence, hf_index, ett_gsm_old_ResetArgV1);
19270 return offset;
19274 /* --- Module SS-DataTypes --- --- --- */
19278 static int
19279 dissect_gsm_ss_SS_UserData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19280 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
19281 actx, tree, tvb, offset, hf_index,
19282 NULL);
19284 return offset;
19289 static int
19290 dissect_gsm_ss_SS_Notification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19291 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19292 NULL);
19294 return offset;
19299 static int
19300 dissect_gsm_ss_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19301 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
19303 return offset;
19307 static const value_string gsm_ss_CallOnHold_Indicator_vals[] = {
19308 { 0, "callRetrieved" },
19309 { 1, "callOnHold" },
19310 { 0, NULL }
19314 static int
19315 dissect_gsm_ss_CallOnHold_Indicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19316 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19317 NULL);
19319 return offset;
19323 static const value_string gsm_ss_ECT_CallState_vals[] = {
19324 { 0, "alerting" },
19325 { 1, "active" },
19326 { 0, NULL }
19330 static int
19331 dissect_gsm_ss_ECT_CallState(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19332 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19333 NULL);
19335 return offset;
19339 static const ber_sequence_t gsm_ss_RemotePartyNumber_sequence[] = {
19340 { &hf_gsm_ss_partyNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
19341 { &hf_gsm_ss_partyNumberSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
19342 { NULL, 0, 0, 0, NULL }
19345 static int
19346 dissect_gsm_ss_RemotePartyNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19347 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19348 gsm_ss_RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber);
19350 return offset;
19354 static const value_string gsm_ss_RDN_vals[] = {
19355 { 0, "presentationAllowedAddress" },
19356 { 1, "presentationRestricted" },
19357 { 2, "numberNotAvailableDueToInterworking" },
19358 { 3, "presentationRestrictedAddress" },
19359 { 0, NULL }
19362 static const ber_choice_t gsm_ss_RDN_choice[] = {
19363 { 0, &hf_gsm_ss_presentationAllowedAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
19364 { 1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19365 { 2, &hf_gsm_ss_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19366 { 3, &hf_gsm_ss_presentationRestrictedAddress, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
19367 { 0, NULL, 0, 0, 0, NULL }
19370 static int
19371 dissect_gsm_ss_RDN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19372 offset = dissect_ber_choice(actx, tree, tvb, offset,
19373 gsm_ss_RDN_choice, hf_index, ett_gsm_ss_RDN,
19374 NULL);
19376 return offset;
19380 static const ber_sequence_t gsm_ss_ECT_Indicator_sequence[] = {
19381 { &hf_gsm_ss_ect_CallState, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_CallState },
19382 { &hf_gsm_ss_rdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_RDN },
19383 { NULL, 0, 0, 0, NULL }
19386 static int
19387 dissect_gsm_ss_ECT_Indicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19388 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19389 gsm_ss_ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator);
19391 return offset;
19396 static int
19397 dissect_gsm_ss_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19398 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19399 NULL);
19401 return offset;
19405 static const ber_sequence_t gsm_ss_NameSet_sequence[] = {
19406 { &hf_gsm_ss_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
19407 { &hf_gsm_ss_lengthInCharacters, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_INTEGER },
19408 { &hf_gsm_ss_nameString , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_String },
19409 { NULL, 0, 0, 0, NULL }
19412 static int
19413 dissect_gsm_ss_NameSet(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19414 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19415 gsm_ss_NameSet_sequence, hf_index, ett_gsm_ss_NameSet);
19417 return offset;
19421 static const value_string gsm_ss_Name_vals[] = {
19422 { 0, "namePresentationAllowed" },
19423 { 1, "presentationRestricted" },
19424 { 2, "nameUnavailable" },
19425 { 3, "namePresentationRestricted" },
19426 { 0, NULL }
19429 static const ber_choice_t gsm_ss_Name_choice[] = {
19430 { 0, &hf_gsm_ss_namePresentationAllowed, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
19431 { 1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19432 { 2, &hf_gsm_ss_nameUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19433 { 3, &hf_gsm_ss_namePresentationRestricted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
19434 { 0, NULL, 0, 0, 0, NULL }
19437 static int
19438 dissect_gsm_ss_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19439 offset = dissect_ber_choice(actx, tree, tvb, offset,
19440 gsm_ss_Name_choice, hf_index, ett_gsm_ss_Name,
19441 NULL);
19443 return offset;
19447 static const ber_sequence_t gsm_ss_NameIndicator_sequence[] = {
19448 { &hf_gsm_ss_callingName , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_Name },
19449 { NULL, 0, 0, 0, NULL }
19452 static int
19453 dissect_gsm_ss_NameIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19454 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19455 gsm_ss_NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator);
19457 return offset;
19461 static const value_string gsm_ss_Multicall_Indicator_vals[] = {
19462 { 0, "nbr-SNexceeded" },
19463 { 1, "nbr-Userexceeded" },
19464 { 0, NULL }
19468 static int
19469 dissect_gsm_ss_Multicall_Indicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19470 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19471 NULL);
19473 return offset;
19477 static const ber_sequence_t gsm_ss_NotifySS_Arg_sequence[] = {
19478 { &hf_gsm_ss_ss_Code , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
19479 { &hf_gsm_ss_ss_Status , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
19480 { &hf_gsm_ss_ss_Notification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SS_Notification },
19481 { &hf_gsm_ss_callIsWaiting_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19482 { &hf_gsm_ss_callOnHold_Indicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CallOnHold_Indicator },
19483 { &hf_gsm_ss_mpty_Indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19484 { &hf_gsm_ss_cug_Index , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
19485 { &hf_gsm_ss_clirSuppressionRejected, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19486 { &hf_gsm_ss_ect_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_Indicator },
19487 { &hf_gsm_ss_nameIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameIndicator },
19488 { &hf_gsm_ss_ccbs_Feature , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
19489 { &hf_gsm_ss_alertingPattern, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
19490 { &hf_gsm_ss_multicall_Indicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Multicall_Indicator },
19491 { NULL, 0, 0, 0, NULL }
19494 static int
19495 dissect_gsm_ss_NotifySS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19496 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19497 gsm_ss_NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg);
19499 return offset;
19504 static int
19505 dissect_gsm_ss_E1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19506 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19507 NULL);
19509 return offset;
19514 static int
19515 dissect_gsm_ss_E2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19516 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19517 NULL);
19519 return offset;
19524 static int
19525 dissect_gsm_ss_E3(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19526 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19527 NULL);
19529 return offset;
19534 static int
19535 dissect_gsm_ss_E4(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19536 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19537 NULL);
19539 return offset;
19544 static int
19545 dissect_gsm_ss_E5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19546 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19547 NULL);
19549 return offset;
19554 static int
19555 dissect_gsm_ss_E6(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19556 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19557 NULL);
19559 return offset;
19564 static int
19565 dissect_gsm_ss_E7(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19566 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19567 NULL);
19569 return offset;
19573 static const ber_sequence_t gsm_ss_ChargingInformation_sequence[] = {
19574 { &hf_gsm_ss_e1 , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E1 },
19575 { &hf_gsm_ss_e2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E2 },
19576 { &hf_gsm_ss_e3 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E3 },
19577 { &hf_gsm_ss_e4 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E4 },
19578 { &hf_gsm_ss_e5 , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E5 },
19579 { &hf_gsm_ss_e6 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E6 },
19580 { &hf_gsm_ss_e7 , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E7 },
19581 { NULL, 0, 0, 0, NULL }
19584 static int
19585 dissect_gsm_ss_ChargingInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19586 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19587 gsm_ss_ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation);
19589 return offset;
19593 static const ber_sequence_t gsm_ss_ForwardChargeAdviceArg_sequence[] = {
19594 { &hf_gsm_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
19595 { &hf_gsm_ss_chargingInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ChargingInformation },
19596 { NULL, 0, 0, 0, NULL }
19599 static int
19600 dissect_gsm_ss_ForwardChargeAdviceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19601 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19602 gsm_ss_ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg);
19604 return offset;
19608 static const ber_sequence_t gsm_ss_ForwardCUG_InfoArg_sequence[] = {
19609 { &hf_gsm_ss_cug_Index , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
19610 { &hf_gsm_ss_suppressPrefCUG, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19611 { &hf_gsm_ss_suppressOA , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19612 { NULL, 0, 0, 0, NULL }
19615 static int
19616 dissect_gsm_ss_ForwardCUG_InfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19617 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19618 gsm_ss_ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg);
19620 return offset;
19624 static const ber_sequence_t gsm_ss_AccessRegisterCCEntryArg_sequence[] = {
19625 { NULL, 0, 0, 0, NULL }
19628 static int
19629 dissect_gsm_ss_AccessRegisterCCEntryArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19630 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19631 gsm_ss_AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg);
19633 return offset;
19637 static const ber_sequence_t gsm_ss_CallDeflectionArg_sequence[] = {
19638 { &hf_gsm_ss_deflectedToNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
19639 { &hf_gsm_ss_deflectedToSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
19640 { NULL, 0, 0, 0, NULL }
19643 static int
19644 dissect_gsm_ss_CallDeflectionArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19645 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19646 gsm_ss_CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg);
19648 return offset;
19652 static const value_string gsm_ss_UUS_Service_vals[] = {
19653 { 1, "uUS1" },
19654 { 2, "uUS2" },
19655 { 3, "uUS3" },
19656 { 0, NULL }
19660 static int
19661 dissect_gsm_ss_UUS_Service(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19662 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19663 NULL);
19665 return offset;
19670 static int
19671 dissect_gsm_ss_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19672 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
19674 return offset;
19678 static const ber_sequence_t gsm_ss_UserUserServiceArg_sequence[] = {
19679 { &hf_gsm_ss_uUS_Service , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UUS_Service },
19680 { &hf_gsm_ss_uUS_Required , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
19681 { NULL, 0, 0, 0, NULL }
19684 static int
19685 dissect_gsm_ss_UserUserServiceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19686 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19687 gsm_ss_UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg);
19689 return offset;
19693 static int * const gsm_ss_DeferredLocationExt_bits[] = {
19694 &hf_gsm_ss_DeferredLocationExt_motionEvent,
19695 NULL
19698 static int
19699 dissect_gsm_ss_DeferredLocationExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19700 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
19701 gsm_ss_DeferredLocationExt_bits, 1, hf_index, ett_gsm_ss_DeferredLocationExt,
19702 NULL);
19704 return offset;
19708 static int * const gsm_ss_RangingSlExt_bits[] = {
19709 &hf_gsm_ss_RangingSlExt_rangingIndication,
19710 NULL
19713 static int
19714 dissect_gsm_ss_RangingSlExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19715 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
19716 gsm_ss_RangingSlExt_bits, 1, hf_index, ett_gsm_ss_RangingSlExt,
19717 NULL);
19719 return offset;
19723 static const ber_sequence_t gsm_ss_LocationNotificationArg_sequence[] = {
19724 { &hf_gsm_ss_notificationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
19725 { &hf_gsm_ss_locationType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
19726 { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
19727 { &hf_gsm_ss_lcsClientName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
19728 { &hf_gsm_ss_lcsRequestorID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
19729 { &hf_gsm_ss_lcsCodeword , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
19730 { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
19731 { &hf_gsm_ss_deferredLocationExt, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DeferredLocationExt },
19732 { &hf_gsm_ss_rangingSlExt , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangingSlExt },
19733 { NULL, 0, 0, 0, NULL }
19736 static int
19737 dissect_gsm_ss_LocationNotificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19738 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19739 gsm_ss_LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg);
19741 return offset;
19745 static const value_string gsm_ss_VerificationResponse_vals[] = {
19746 { 0, "permissionDenied" },
19747 { 1, "permissionGranted" },
19748 { 0, NULL }
19752 static int
19753 dissect_gsm_ss_VerificationResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19754 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19755 NULL);
19757 return offset;
19761 static const value_string gsm_ss_LCS_LocationPrivacyIndication_vals[] = {
19762 { 0, "locationDisallowed" },
19763 { 1, "locationAllowed" },
19764 { 2, "rangingDisallowed" },
19765 { 3, "rangingAllowed" },
19766 { 0, NULL }
19770 static int
19771 dissect_gsm_ss_LCS_LocationPrivacyIndication(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19772 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19773 NULL);
19775 return offset;
19780 static int
19781 dissect_gsm_ss_DateTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19782 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19783 NULL);
19785 return offset;
19789 static const ber_sequence_t gsm_ss_LCS_ValidTimePeriod_sequence[] = {
19790 { &hf_gsm_ss_startTime , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DateTime },
19791 { &hf_gsm_ss_endTime , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DateTime },
19792 { NULL, 0, 0, 0, NULL }
19795 static int
19796 dissect_gsm_ss_LCS_ValidTimePeriod(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19797 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19798 gsm_ss_LCS_ValidTimePeriod_sequence, hf_index, ett_gsm_ss_LCS_ValidTimePeriod);
19800 return offset;
19804 static const ber_sequence_t gsm_ss_LocationNotificationRes_sequence[] = {
19805 { &hf_gsm_ss_verificationResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_VerificationResponse },
19806 { &hf_gsm_ss_locationPrivacyIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_LocationPrivacyIndication },
19807 { &hf_gsm_ss_validTimePeriod, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_ValidTimePeriod },
19808 { NULL, 0, 0, 0, NULL }
19811 static int
19812 dissect_gsm_ss_LocationNotificationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19813 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19814 gsm_ss_LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes);
19816 return offset;
19820 static const value_string gsm_ss_MOLR_Type_vals[] = {
19821 { 0, "locationEstimate" },
19822 { 1, "assistanceData" },
19823 { 2, "deCipheringKeys" },
19824 { 3, "deferredMo-lrTTTPInitiation" },
19825 { 4, "deferredMo-lrSelfLocationInitiation" },
19826 { 5, "deferredMt-lrOrmo-lrTTTPLocationEstimate" },
19827 { 6, "deferredMt-lrOrmo-lrCancellation" },
19828 { 7, "periodicEvent" },
19829 { 8, "enteringAreaEvent" },
19830 { 9, "leavingAreaEvent" },
19831 { 10, "beingInsideAreaEvent" },
19832 { 11, "motionEvent" },
19833 { 12, "maximumIntervalExpirationEvent" },
19834 { 0, NULL }
19838 static int
19839 dissect_gsm_ss_MOLR_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19840 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19841 NULL);
19843 return offset;
19847 const value_string gsm_ss_LocationMethod_vals[] = {
19848 { 0, "msBasedEOTD" },
19849 { 1, "msAssistedEOTD" },
19850 { 2, "assistedGPS" },
19851 { 3, "msBasedOTDOA" },
19852 { 4, "assistedGANSS" },
19853 { 5, "assistedGPSandGANSS" },
19854 { 0, NULL }
19859 dissect_gsm_ss_LocationMethod(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19860 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19861 NULL);
19863 return offset;
19868 static int
19869 dissect_gsm_ss_GPSAssistanceData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19870 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19871 NULL);
19873 return offset;
19877 static const value_string gsm_ss_TerminationCause_vals[] = {
19878 { 0, "subscriberTermination" },
19879 { 1, "uETermination" },
19880 { 2, "normalTermination" },
19881 { 3, "networkTermination" },
19882 { 0, NULL }
19886 static int
19887 dissect_gsm_ss_TerminationCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19888 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19889 NULL);
19891 return offset;
19896 static int
19897 dissect_gsm_ss_GANSSAssistanceData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19898 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19899 NULL);
19901 return offset;
19906 static int
19907 dissect_gsm_ss_PositioningProtocolPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19908 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19909 NULL);
19911 return offset;
19915 static const ber_sequence_t gsm_ss_MultiplePositioningProtocolPDUs_sequence_of[1] = {
19916 { &hf_gsm_ss_MultiplePositioningProtocolPDUs_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_PositioningProtocolPDU },
19919 static int
19920 dissect_gsm_ss_MultiplePositioningProtocolPDUs(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19921 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
19922 gsm_ss_MultiplePositioningProtocolPDUs_sequence_of, hf_index, ett_gsm_ss_MultiplePositioningProtocolPDUs);
19924 return offset;
19928 static int * const gsm_ss_LocationInfo_bits[] = {
19929 &hf_gsm_ss_LocationInfo_locationEstimate,
19930 NULL
19933 static int
19934 dissect_gsm_ss_LocationInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19935 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
19936 gsm_ss_LocationInfo_bits, 1, hf_index, ett_gsm_ss_LocationInfo,
19937 NULL);
19939 return offset;
19943 static const ber_sequence_t gsm_ss_LCS_MOLRArg_sequence[] = {
19944 { &hf_gsm_ss_molr_Type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_MOLR_Type },
19945 { &hf_gsm_ss_locationMethod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod },
19946 { &hf_gsm_ss_lcs_QoS , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
19947 { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
19948 { &hf_gsm_ss_mlc_Number , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
19949 { &hf_gsm_ss_gpsAssistanceData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GPSAssistanceData },
19950 { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
19951 { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
19952 { &hf_gsm_ss_ageOfLocationInfo, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
19953 { &hf_gsm_ss_locationType , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
19954 { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19955 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19956 { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
19957 { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
19958 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19959 { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
19960 { &hf_gsm_ss_locationUpdateRequest, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19961 { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
19962 { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
19963 { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19964 { &hf_gsm_ss_ganssAssistanceData, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GANSSAssistanceData },
19965 { &hf_gsm_ss_multiplePositioningProtocolPDUs, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MultiplePositioningProtocolPDUs },
19966 { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationInfo },
19967 { &hf_gsm_ss_scheduledLocTime, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DateTime },
19968 { NULL, 0, 0, 0, NULL }
19971 static int
19972 dissect_gsm_ss_LCS_MOLRArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19973 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19974 gsm_ss_LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg);
19976 return offset;
19981 static int
19982 dissect_gsm_ss_DecipheringKeys(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
19983 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19984 NULL);
19986 return offset;
19990 static const ber_sequence_t gsm_ss_LCS_MOLRRes_sequence[] = {
19991 { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
19992 { &hf_gsm_ss_decipheringKeys, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DecipheringKeys },
19993 { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
19994 { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
19995 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19996 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19997 { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19998 { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
19999 { &hf_gsm_ss_timestampOfLocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DateTime },
20000 { NULL, 0, 0, 0, NULL }
20003 static int
20004 dissect_gsm_ss_LCS_MOLRRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20005 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20006 gsm_ss_LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes);
20008 return offset;
20012 static const ber_sequence_t gsm_ss_LCS_AreaEventRequestArg_sequence[] = {
20013 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
20014 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
20015 { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
20016 { &hf_gsm_ss_areaEventInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
20017 { NULL, 0, 0, 0, NULL }
20020 static int
20021 dissect_gsm_ss_LCS_AreaEventRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20022 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20023 gsm_ss_LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg);
20025 return offset;
20029 static const value_string gsm_ss_SLMOLR_Type_vals[] = {
20030 { 0, "rangingSidelink" },
20031 { 0, NULL }
20035 static int
20036 dissect_gsm_ss_SLMOLR_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20037 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20038 NULL);
20040 return offset;
20044 static const ber_sequence_t gsm_ss_PreferredRangingResult_sequence[] = {
20045 { &hf_gsm_ss_absoluteLocationIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
20046 { &hf_gsm_ss_absoluteVelocityIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
20047 { &hf_gsm_ss_relativeLocationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
20048 { &hf_gsm_ss_rangeDirection, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
20049 { &hf_gsm_ss_relativeVelocityIndicator, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
20050 { NULL, 0, 0, 0, NULL }
20053 static int
20054 dissect_gsm_ss_PreferredRangingResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20055 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20056 gsm_ss_PreferredRangingResult_sequence, hf_index, ett_gsm_ss_PreferredRangingResult);
20058 return offset;
20063 static int
20064 dissect_gsm_ss_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20065 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20066 NULL);
20068 return offset;
20072 static const value_string gsm_ss_RangingRole_vals[] = {
20073 { 0, "targetUE" },
20074 { 1, "locatedUE" },
20075 { 2, "slReferenceUE" },
20076 { 3, "slServerUE" },
20077 { 4, "slClientUE" },
20078 { 0, NULL }
20082 static int
20083 dissect_gsm_ss_RangingRole(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20084 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20085 NULL);
20087 return offset;
20091 static const ber_sequence_t gsm_ss_RangingUEInfo_sequence[] = {
20092 { &hf_gsm_ss_applicationLayerID, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_OCTET_STRING },
20093 { &hf_gsm_ss_rangingRole , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangingRole },
20094 { NULL, 0, 0, 0, NULL }
20097 static int
20098 dissect_gsm_ss_RangingUEInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20099 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20100 gsm_ss_RangingUEInfo_sequence, hf_index, ett_gsm_ss_RangingUEInfo);
20102 return offset;
20106 static const ber_sequence_t gsm_ss_RelatedUEInfo_sequence_of[1] = {
20107 { &hf_gsm_ss_RelatedUEInfo_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_RangingUEInfo },
20110 static int
20111 dissect_gsm_ss_RelatedUEInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20112 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20113 gsm_ss_RelatedUEInfo_sequence_of, hf_index, ett_gsm_ss_RelatedUEInfo);
20115 return offset;
20119 static const ber_sequence_t gsm_ss_LCS_SLMOLRArg_sequence[] = {
20120 { &hf_gsm_ss_slmolr_Type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_SLMOLR_Type },
20121 { &hf_gsm_ss_lcs_QoS , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
20122 { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
20123 { &hf_gsm_ss_mlc_Number , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
20124 { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
20125 { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
20126 { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
20127 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
20128 { &hf_gsm_ss_calculationAssistIndicator, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
20129 { &hf_gsm_ss_preferredRangingResult, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_PreferredRangingResult },
20130 { &hf_gsm_ss_relatedUEInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RelatedUEInfo },
20131 { NULL, 0, 0, 0, NULL }
20135 dissect_gsm_ss_LCS_SLMOLRArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20136 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20137 gsm_ss_LCS_SLMOLRArg_sequence, hf_index, ett_gsm_ss_LCS_SLMOLRArg);
20139 return offset;
20144 static int
20145 dissect_gsm_ss_RangeXYCoordinates(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20146 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20147 NULL);
20149 return offset;
20154 static int
20155 dissect_gsm_ss_Uncertainty(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20156 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20157 NULL);
20159 return offset;
20164 static int
20165 dissect_gsm_ss_OrientationMajorAxis(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20166 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20167 NULL);
20169 return offset;
20174 static int
20175 dissect_gsm_ss_Confidence(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20176 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20177 NULL);
20179 return offset;
20183 static const ber_sequence_t gsm_ss_Relative2D_LocationWithUncertaintyEllipse_sequence[] = {
20184 { &hf_gsm_ss_xCoordinates , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangeXYCoordinates },
20185 { &hf_gsm_ss_yCoordinates , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangeXYCoordinates },
20186 { &hf_gsm_ss_uncertaintySemiMajor, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_Uncertainty },
20187 { &hf_gsm_ss_uncertaintySemiMinor, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_Uncertainty },
20188 { &hf_gsm_ss_orientationMajorAxis, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_ss_OrientationMajorAxis },
20189 { &hf_gsm_ss_confidence , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Confidence },
20190 { NULL, 0, 0, 0, NULL }
20193 static int
20194 dissect_gsm_ss_Relative2D_LocationWithUncertaintyEllipse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20195 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20196 gsm_ss_Relative2D_LocationWithUncertaintyEllipse_sequence, hf_index, ett_gsm_ss_Relative2D_LocationWithUncertaintyEllipse);
20198 return offset;
20203 static int
20204 dissect_gsm_ss_RangeZCoordinates(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20205 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20206 NULL);
20208 return offset;
20212 static const ber_sequence_t gsm_ss_Relative3D_LocationWithUncertaintyEllipsoid_sequence[] = {
20213 { &hf_gsm_ss_xCoordinates , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangeXYCoordinates },
20214 { &hf_gsm_ss_yCoordinates , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangeXYCoordinates },
20215 { &hf_gsm_ss_zCoordinates , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangeZCoordinates },
20216 { &hf_gsm_ss_uncertaintySemiMajor, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_Uncertainty },
20217 { &hf_gsm_ss_uncertaintySemiMinor, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_ss_Uncertainty },
20218 { &hf_gsm_ss_orientationMajorAxis, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_ss_OrientationMajorAxis },
20219 { &hf_gsm_ss_uncertaintyAltitude, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_ss_Uncertainty },
20220 { &hf_gsm_ss_confidence , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Confidence },
20221 { NULL, 0, 0, 0, NULL }
20224 static int
20225 dissect_gsm_ss_Relative3D_LocationWithUncertaintyEllipsoid(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20226 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20227 gsm_ss_Relative3D_LocationWithUncertaintyEllipsoid_sequence, hf_index, ett_gsm_ss_Relative3D_LocationWithUncertaintyEllipsoid);
20229 return offset;
20233 static const ber_sequence_t gsm_ss_RelativeLocationCoordinates_sequence[] = {
20234 { &hf_gsm_ss_relative2D_LocationWithUncertaintyEllipse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Relative2D_LocationWithUncertaintyEllipse },
20235 { &hf_gsm_ss_relative3D_LocationWithUncertaintyEllipsoid, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Relative3D_LocationWithUncertaintyEllipsoid },
20236 { NULL, 0, 0, 0, NULL }
20239 static int
20240 dissect_gsm_ss_RelativeLocationCoordinates(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20241 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20242 gsm_ss_RelativeLocationCoordinates_sequence, hf_index, ett_gsm_ss_RelativeLocationCoordinates);
20244 return offset;
20249 static int
20250 dissect_gsm_ss_RangeResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20251 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20252 NULL);
20254 return offset;
20258 static const ber_sequence_t gsm_ss_Range_sequence[] = {
20259 { &hf_gsm_ss_rangeResult , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangeResult },
20260 { &hf_gsm_ss_uncertainty , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_Uncertainty },
20261 { &hf_gsm_ss_confidence , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Confidence },
20262 { NULL, 0, 0, 0, NULL }
20265 static int
20266 dissect_gsm_ss_Range(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20267 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20268 gsm_ss_Range_sequence, hf_index, ett_gsm_ss_Range);
20270 return offset;
20275 static int
20276 dissect_gsm_ss_AzimuthResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20277 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20278 NULL);
20280 return offset;
20284 static const ber_sequence_t gsm_ss_Azimuth_sequence[] = {
20285 { &hf_gsm_ss_azimuthResult, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AzimuthResult },
20286 { &hf_gsm_ss_uncertainty , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_Uncertainty },
20287 { &hf_gsm_ss_confidence , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Confidence },
20288 { NULL, 0, 0, 0, NULL }
20291 static int
20292 dissect_gsm_ss_Azimuth(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20293 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20294 gsm_ss_Azimuth_sequence, hf_index, ett_gsm_ss_Azimuth);
20296 return offset;
20301 static int
20302 dissect_gsm_ss_ElevationResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20303 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20304 NULL);
20306 return offset;
20310 static const ber_sequence_t gsm_ss_Elevation_sequence[] = {
20311 { &hf_gsm_ss_elevationResult, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ElevationResult },
20312 { &hf_gsm_ss_uncertainty , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_Uncertainty },
20313 { &hf_gsm_ss_confidence , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Confidence },
20314 { NULL, 0, 0, 0, NULL }
20317 static int
20318 dissect_gsm_ss_Elevation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20319 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20320 gsm_ss_Elevation_sequence, hf_index, ett_gsm_ss_Elevation);
20322 return offset;
20326 static const ber_sequence_t gsm_ss_RangeDirection_sequence[] = {
20327 { &hf_gsm_ss_range , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Range },
20328 { &hf_gsm_ss_azimuth , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Azimuth },
20329 { &hf_gsm_ss_elevation , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Elevation },
20330 { NULL, 0, 0, 0, NULL }
20333 static int
20334 dissect_gsm_ss_RangeDirection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20335 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20336 gsm_ss_RangeDirection_sequence, hf_index, ett_gsm_ss_RangeDirection);
20338 return offset;
20342 static const ber_sequence_t gsm_ss_SingleRelativeResult_sequence[] = {
20343 { &hf_gsm_ss_relatedUEInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RelatedUEInfo },
20344 { &hf_gsm_ss_relativeLocation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RelativeLocationCoordinates },
20345 { &hf_gsm_ss_rangeDirection_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangeDirection },
20346 { &hf_gsm_ss_relativeVelocity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
20347 { NULL, 0, 0, 0, NULL }
20350 static int
20351 dissect_gsm_ss_SingleRelativeResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20352 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20353 gsm_ss_SingleRelativeResult_sequence, hf_index, ett_gsm_ss_SingleRelativeResult);
20355 return offset;
20359 static const ber_sequence_t gsm_ss_RelativeResult_sequence_of[1] = {
20360 { &hf_gsm_ss_RelativeResult_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_SingleRelativeResult },
20363 static int
20364 dissect_gsm_ss_RelativeResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20365 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20366 gsm_ss_RelativeResult_sequence_of, hf_index, ett_gsm_ss_RelativeResult);
20368 return offset;
20373 static int
20374 dissect_gsm_ss_Duration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20375 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20376 NULL);
20378 return offset;
20382 static const ber_sequence_t gsm_ss_LCS_SLMOLRRes_sequence[] = {
20383 { &hf_gsm_ss_absoluteLocation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
20384 { &hf_gsm_ss_absoluteVelocity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
20385 { &hf_gsm_ss_relativeResult, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RelativeResult },
20386 { &hf_gsm_ss_ueOnlyRSLPosAllowed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Duration },
20387 { &hf_gsm_ss_timestamp , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DateTime },
20388 { NULL, 0, 0, 0, NULL }
20392 dissect_gsm_ss_LCS_SLMOLRRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20393 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20394 gsm_ss_LCS_SLMOLRRes_sequence, hf_index, ett_gsm_ss_LCS_SLMOLRRes);
20396 return offset;
20400 static const ber_sequence_t gsm_ss_LCS_AreaEventReportArg_sequence[] = {
20401 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
20402 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
20403 { NULL, 0, 0, 0, NULL }
20406 static int
20407 dissect_gsm_ss_LCS_AreaEventReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20408 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20409 gsm_ss_LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg);
20411 return offset;
20415 static const ber_sequence_t gsm_ss_LCS_AreaEventCancellationArg_sequence[] = {
20416 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
20417 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
20418 { NULL, 0, 0, 0, NULL }
20421 static int
20422 dissect_gsm_ss_LCS_AreaEventCancellationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20423 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20424 gsm_ss_LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg);
20426 return offset;
20430 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestArg_sequence[] = {
20431 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
20432 { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
20433 { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
20434 { &hf_gsm_ss_qoS , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
20435 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
20436 { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
20437 { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
20438 { NULL, 0, 0, 0, NULL }
20441 static int
20442 dissect_gsm_ss_LCS_PeriodicLocationRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20443 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20444 gsm_ss_LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg);
20446 return offset;
20450 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestRes_sequence[] = {
20451 { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
20452 { NULL, 0, 0, 0, NULL }
20455 static int
20456 dissect_gsm_ss_LCS_PeriodicLocationRequestRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20457 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20458 gsm_ss_LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes);
20460 return offset;
20464 static const ber_sequence_t gsm_ss_LCS_LocationUpdateArg_sequence[] = {
20465 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
20466 { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
20467 { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
20468 { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
20469 { NULL, 0, 0, 0, NULL }
20472 static int
20473 dissect_gsm_ss_LCS_LocationUpdateArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20474 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20475 gsm_ss_LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg);
20477 return offset;
20481 static const ber_sequence_t gsm_ss_LCS_LocationUpdateRes_sequence[] = {
20482 { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
20483 { NULL, 0, 0, 0, NULL }
20486 static int
20487 dissect_gsm_ss_LCS_LocationUpdateRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20488 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20489 gsm_ss_LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes);
20491 return offset;
20495 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationCancellationArg_sequence[] = {
20496 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
20497 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
20498 { NULL, 0, 0, 0, NULL }
20501 static int
20502 dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20503 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20504 gsm_ss_LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg);
20506 return offset;
20510 static const ber_sequence_t gsm_ss_PeriodicLocation_sequence[] = {
20511 { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
20512 { NULL, 0, 0, 0, NULL }
20515 static int
20516 dissect_gsm_ss_PeriodicLocation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20517 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20518 gsm_ss_PeriodicLocation_sequence, hf_index, ett_gsm_ss_PeriodicLocation);
20520 return offset;
20524 static const value_string gsm_ss_AreaType_vals[] = {
20525 { 0, "trackingArea" },
20526 { 1, "ecgi" },
20527 { 2, "trackingArea5GS" },
20528 { 3, "ncgi" },
20529 { 0, NULL }
20533 static int
20534 dissect_gsm_ss_AreaType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20535 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20536 NULL);
20538 return offset;
20543 static int
20544 dissect_gsm_ss_AreaIdentification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20545 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20546 NULL);
20548 return offset;
20553 static int
20554 dissect_gsm_ss_AreaIdentificationExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20555 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20556 NULL);
20558 return offset;
20562 static const ber_sequence_t gsm_ss_Area_sequence[] = {
20563 { &hf_gsm_ss_areaType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaType },
20564 { &hf_gsm_ss_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaIdentification },
20565 { &hf_gsm_ss_areaIdentificationExt, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaIdentificationExt },
20566 { NULL, 0, 0, 0, NULL }
20569 static int
20570 dissect_gsm_ss_Area(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20571 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20572 gsm_ss_Area_sequence, hf_index, ett_gsm_ss_Area);
20574 return offset;
20578 static const ber_sequence_t gsm_ss_AreaList_sequence_of[1] = {
20579 { &hf_gsm_ss_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_Area },
20582 static int
20583 dissect_gsm_ss_AreaList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20584 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20585 gsm_ss_AreaList_sequence_of, hf_index, ett_gsm_ss_AreaList);
20587 return offset;
20591 static const value_string gsm_ss_OccurrenceInfo_vals[] = {
20592 { 0, "oneTimeEvent" },
20593 { 1, "multipleTimeEvent" },
20594 { 0, NULL }
20598 static int
20599 dissect_gsm_ss_OccurrenceInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20600 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20601 NULL);
20603 return offset;
20608 static int
20609 dissect_gsm_ss_MaximumInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20610 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20611 NULL);
20613 return offset;
20618 static int
20619 dissect_gsm_ss_SamplingInterval(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20620 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20621 NULL);
20623 return offset;
20627 static const ber_sequence_t gsm_ss_AreaEventReporting_sequence[] = {
20628 { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
20629 { &hf_gsm_ss_areaList , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaList },
20630 { &hf_gsm_ss_occurrenceInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_OccurrenceInfo },
20631 { &hf_gsm_ss_intervalTime , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
20632 { &hf_gsm_ss_maximumInterval, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MaximumInterval },
20633 { &hf_gsm_ss_samplingInterval, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SamplingInterval },
20634 { &hf_gsm_ss_duration , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Duration },
20635 { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationInfo },
20636 { NULL, 0, 0, 0, NULL }
20639 static int
20640 dissect_gsm_ss_AreaEventReporting(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20641 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20642 gsm_ss_AreaEventReporting_sequence, hf_index, ett_gsm_ss_AreaEventReporting);
20644 return offset;
20649 static int
20650 dissect_gsm_ss_LinearDistance(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20651 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20652 NULL);
20654 return offset;
20658 static const ber_sequence_t gsm_ss_MotionEventReporting_sequence[] = {
20659 { &hf_gsm_ss_linearDistance, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LinearDistance },
20660 { &hf_gsm_ss_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_OccurrenceInfo },
20661 { &hf_gsm_ss_intervalTime , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
20662 { &hf_gsm_ss_maximumInterval, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MaximumInterval },
20663 { &hf_gsm_ss_samplingInterval, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SamplingInterval },
20664 { &hf_gsm_ss_duration , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Duration },
20665 { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationInfo },
20666 { NULL, 0, 0, 0, NULL }
20669 static int
20670 dissect_gsm_ss_MotionEventReporting(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20671 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20672 gsm_ss_MotionEventReporting_sequence, hf_index, ett_gsm_ss_MotionEventReporting);
20674 return offset;
20679 static int
20680 dissect_gsm_ss_LCS_ReferenceNumberExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20681 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20682 NULL);
20684 return offset;
20689 static int
20690 dissect_gsm_ss_UTF8String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20691 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
20692 actx, tree, tvb, offset, hf_index,
20693 NULL);
20695 return offset;
20699 static int * const gsm_ss_ReportingAccessTypes_bits[] = {
20700 &hf_gsm_ss_ReportingAccessTypes_nR,
20701 &hf_gsm_ss_ReportingAccessTypes_eUTRAConnectedTo5GC,
20702 &hf_gsm_ss_ReportingAccessTypes_non3GPPConnectedTo5GC,
20703 &hf_gsm_ss_ReportingAccessTypes_eUTRAConnectedToEPC,
20704 &hf_gsm_ss_ReportingAccessTypes_nR_LEO,
20705 &hf_gsm_ss_ReportingAccessTypes_nR_MEO,
20706 &hf_gsm_ss_ReportingAccessTypes_nR_GEO,
20707 &hf_gsm_ss_ReportingAccessTypes_nR_OTHER_SAT,
20708 NULL
20711 static int
20712 dissect_gsm_ss_ReportingAccessTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20713 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
20714 gsm_ss_ReportingAccessTypes_bits, 8, hf_index, ett_gsm_ss_ReportingAccessTypes,
20715 NULL);
20717 return offset;
20722 static int
20723 dissect_gsm_ss_MaximumDuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20724 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20725 NULL);
20727 return offset;
20732 static int
20733 dissect_gsm_ss_MaximumConsecutiveEventReports(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20734 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20735 NULL);
20737 return offset;
20741 static const ber_sequence_t gsm_ss_ControlPlane_CIoT_5GS_Optimisation_sequence[] = {
20742 { &hf_gsm_ss_maximumDuration, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MaximumDuration },
20743 { &hf_gsm_ss_maximumConsecutiveEventReports, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MaximumConsecutiveEventReports },
20744 { NULL, 0, 0, 0, NULL }
20747 static int
20748 dissect_gsm_ss_ControlPlane_CIoT_5GS_Optimisation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20749 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20750 gsm_ss_ControlPlane_CIoT_5GS_Optimisation_sequence, hf_index, ett_gsm_ss_ControlPlane_CIoT_5GS_Optimisation);
20752 return offset;
20756 static const value_string gsm_ss_ReportingInd_vals[] = {
20757 { 0, "insideReporting" },
20758 { 1, "outsideReporting" },
20759 { 0, NULL }
20763 static int
20764 dissect_gsm_ss_ReportingInd(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20765 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20766 NULL);
20768 return offset;
20773 static int
20774 dissect_gsm_ss_Ipv4Addr(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20775 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20776 NULL);
20778 return offset;
20782 static const ber_sequence_t gsm_ss_Ipv4Addrs_sequence_of[1] = {
20783 { &hf_gsm_ss_Ipv4Addrs_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_Ipv4Addr },
20786 static int
20787 dissect_gsm_ss_Ipv4Addrs(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20788 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20789 gsm_ss_Ipv4Addrs_sequence_of, hf_index, ett_gsm_ss_Ipv4Addrs);
20791 return offset;
20796 static int
20797 dissect_gsm_ss_Ipv6Addr(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20798 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20799 NULL);
20801 return offset;
20805 static const ber_sequence_t gsm_ss_Ipv6Addrs_sequence_of[1] = {
20806 { &hf_gsm_ss_Ipv6Addrs_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_Ipv6Addr },
20809 static int
20810 dissect_gsm_ss_Ipv6Addrs(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20811 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20812 gsm_ss_Ipv6Addrs_sequence_of, hf_index, ett_gsm_ss_Ipv6Addrs);
20814 return offset;
20819 static int
20820 dissect_gsm_ss_FQDN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20821 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20822 NULL);
20824 return offset;
20828 static const ber_sequence_t gsm_ss_LCS_UserPlaneReportAFAddr_sequence[] = {
20829 { &hf_gsm_ss_af_Ipv4_Addrs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Ipv4Addrs },
20830 { &hf_gsm_ss_af_Ipv6_Addrs, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Ipv6Addrs },
20831 { &hf_gsm_ss_af_Fqdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_FQDN },
20832 { NULL, 0, 0, 0, NULL }
20835 static int
20836 dissect_gsm_ss_LCS_UserPlaneReportAFAddr(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20837 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20838 gsm_ss_LCS_UserPlaneReportAFAddr_sequence, hf_index, ett_gsm_ss_LCS_UserPlaneReportAFAddr);
20840 return offset;
20845 static int
20846 dissect_gsm_ss_LCS_CumulativeReportTimerCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20847 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20848 NULL);
20850 return offset;
20855 static int
20856 dissect_gsm_ss_LCS_CumulativeReportCounterCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20857 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20858 NULL);
20860 return offset;
20864 static const ber_sequence_t gsm_ss_LCS_CumulativeReportCriteria_sequence[] = {
20865 { &hf_gsm_ss_timerCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_CumulativeReportTimerCriteria },
20866 { &hf_gsm_ss_counterCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_CumulativeReportCounterCriteria },
20867 { NULL, 0, 0, 0, NULL }
20870 static int
20871 dissect_gsm_ss_LCS_CumulativeReportCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20872 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20873 gsm_ss_LCS_CumulativeReportCriteria_sequence, hf_index, ett_gsm_ss_LCS_CumulativeReportCriteria);
20875 return offset;
20879 static const ber_sequence_t gsm_ss_LCS_PeriodicTriggeredInvokeArg_sequence[] = {
20880 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
20881 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
20882 { &hf_gsm_ss_qoS , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
20883 { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
20884 { &hf_gsm_ss_periodicLocation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_PeriodicLocation },
20885 { &hf_gsm_ss_areaEventReporting, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaEventReporting },
20886 { &hf_gsm_ss_motionEventReporting, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MotionEventReporting },
20887 { &hf_gsm_ss_referenceNumberExt, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_ReferenceNumberExt },
20888 { &hf_gsm_ss_h_gmlc_callBackUri, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_UTF8String },
20889 { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
20890 { &hf_gsm_ss_deferredRoutingIdentifier, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_OCTET_STRING },
20891 { &hf_gsm_ss_reportingAccessTypes, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ReportingAccessTypes },
20892 { &hf_gsm_ss_multiplePositioningProtocolPDUs, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MultiplePositioningProtocolPDUs },
20893 { &hf_gsm_ss_controlPlane_CIoT_5GS_Optimisation, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ControlPlane_CIoT_5GS_Optimisation },
20894 { &hf_gsm_ss_scheduledLocTime, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gsm_ss_DateTime },
20895 { &hf_gsm_ss_eventReportAllowedArea, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaList },
20896 { &hf_gsm_ss_reportingInd , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ReportingInd },
20897 { &hf_gsm_ss_mappedQoS , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
20898 { &hf_gsm_ss_userPlaneReportAFAddr, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_UserPlaneReportAFAddr },
20899 { &hf_gsm_ss_cumulativeReportCriteria, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_CumulativeReportCriteria },
20900 { NULL, 0, 0, 0, NULL }
20903 static int
20904 dissect_gsm_ss_LCS_PeriodicTriggeredInvokeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20905 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20906 gsm_ss_LCS_PeriodicTriggeredInvokeArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg);
20908 return offset;
20912 static const ber_sequence_t gsm_ss_LCS_PeriodicTriggeredInvokeRes_sequence[] = {
20913 { NULL, 0, 0, 0, NULL }
20916 static int
20917 dissect_gsm_ss_LCS_PeriodicTriggeredInvokeRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20918 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20919 gsm_ss_LCS_PeriodicTriggeredInvokeRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes);
20921 return offset;
20925 static const value_string gsm_ss_EventType_vals[] = {
20926 { 0, "periodicEvent" },
20927 { 1, "enteringAreaEvent" },
20928 { 2, "leavingAreaEvent" },
20929 { 3, "beingInsideAreaEvent" },
20930 { 4, "motionEvent" },
20931 { 5, "maximumIntervalExpirationEvent" },
20932 { 6, "locationCancellationEvent" },
20933 { 7, "cumulativeEventReport" },
20934 { 0, NULL }
20938 static int
20939 dissect_gsm_ss_EventType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20940 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20941 NULL);
20943 return offset;
20948 static int
20949 dissect_gsm_ss_LCS_UserPlaneEventReportStat(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20950 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20951 NULL);
20953 return offset;
20957 static const ber_sequence_t gsm_ss_LCS_EventReportArg_sequence[] = {
20958 { &hf_gsm_ss_eventType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_EventType },
20959 { &hf_gsm_ss_referenceNumberExt, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_ReferenceNumberExt },
20960 { &hf_gsm_ss_h_gmlc_callBackUri, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UTF8String },
20961 { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationInfo },
20962 { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
20963 { &hf_gsm_ss_lcs_QoS , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
20964 { &hf_gsm_ss_multiplePositioningProtocolPDUs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MultiplePositioningProtocolPDUs },
20965 { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
20966 { &hf_gsm_ss_userPlaneEventReportStat, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_UserPlaneEventReportStat },
20967 { NULL, 0, 0, 0, NULL }
20971 dissect_gsm_ss_LCS_EventReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20972 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20973 gsm_ss_LCS_EventReportArg_sequence, hf_index, ett_gsm_ss_LCS_EventReportArg);
20975 return offset;
20979 static const ber_sequence_t gsm_ss_LCS_EventReportRes_sequence[] = {
20980 { &hf_gsm_ss_deferredRoutingIdentifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_OCTET_STRING },
20981 { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
20982 { NULL, 0, 0, 0, NULL }
20986 dissect_gsm_ss_LCS_EventReportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
20987 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20988 gsm_ss_LCS_EventReportRes_sequence, hf_index, ett_gsm_ss_LCS_EventReportRes);
20990 return offset;
20994 static const ber_sequence_t gsm_ss_LCS_CancelDeferredLocationArg_sequence[] = {
20995 { &hf_gsm_ss_referenceNumberExt, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_ReferenceNumberExt },
20996 { &hf_gsm_ss_h_gmlc_callBackUri, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UTF8String },
20997 { NULL, 0, 0, 0, NULL }
21001 dissect_gsm_ss_LCS_CancelDeferredLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21002 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21003 gsm_ss_LCS_CancelDeferredLocationArg_sequence, hf_index, ett_gsm_ss_LCS_CancelDeferredLocationArg);
21005 return offset;
21009 static const ber_sequence_t gsm_ss_LCS_LocationPrivacySettingArg_sequence[] = {
21010 { &hf_gsm_ss_locationPrivacyIndication, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_LocationPrivacyIndication },
21011 { &hf_gsm_ss_validTimePeriod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_ValidTimePeriod },
21012 { &hf_gsm_ss_eventReportExpectedArea, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
21013 { &hf_gsm_ss_areaUsageInd , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ReportingInd },
21014 { NULL, 0, 0, 0, NULL }
21018 dissect_gsm_ss_LCS_LocationPrivacySettingArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21019 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21020 gsm_ss_LCS_LocationPrivacySettingArg_sequence, hf_index, ett_gsm_ss_LCS_LocationPrivacySettingArg);
21022 return offset;
21026 static const value_string gsm_ss_LCS_AssociationType_vals[] = {
21027 { 0, "initialAssociation" },
21028 { 1, "associationUpdate" },
21029 { 0, NULL }
21033 static int
21034 dissect_gsm_ss_LCS_AssociationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21035 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21036 NULL);
21038 return offset;
21042 static const value_string gsm_ss_LCS_StateOfPru_vals[] = {
21043 { 0, "on" },
21044 { 1, "off" },
21045 { 0, NULL }
21049 static int
21050 dissect_gsm_ss_LCS_StateOfPru(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21051 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21052 NULL);
21054 return offset;
21058 static const ber_sequence_t gsm_ss_LCS_PruAssociationArg_sequence[] = {
21059 { &hf_gsm_ss_associationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_AssociationType },
21060 { &hf_gsm_ss_positioningCapabilities, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_OCTET_STRING },
21061 { &hf_gsm_ss_locationOfPru, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
21062 { &hf_gsm_ss_stateOfPru , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_StateOfPru },
21063 { NULL, 0, 0, 0, NULL }
21067 dissect_gsm_ss_LCS_PruAssociationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21068 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21069 gsm_ss_LCS_PruAssociationArg_sequence, hf_index, ett_gsm_ss_LCS_PruAssociationArg);
21071 return offset;
21076 static int
21077 dissect_gsm_ss_LCS_PeriodicUpdateTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21078 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21079 NULL);
21081 return offset;
21085 static int * const gsm_ss_LCS_PruUpdateTrigger_bits[] = {
21086 &hf_gsm_ss_LCS_PruUpdateTrigger_taiChange,
21087 &hf_gsm_ss_LCS_PruUpdateTrigger_servingAmfChange,
21088 &hf_gsm_ss_LCS_PruUpdateTrigger_pruStateChange,
21089 NULL
21092 static int
21093 dissect_gsm_ss_LCS_PruUpdateTrigger(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21094 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
21095 gsm_ss_LCS_PruUpdateTrigger_bits, 3, hf_index, ett_gsm_ss_LCS_PruUpdateTrigger,
21096 NULL);
21098 return offset;
21102 static const ber_sequence_t gsm_ss_LCS_PruAssociationRes_sequence[] = {
21103 { &hf_gsm_ss_periodicUpdateTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_PeriodicUpdateTimer },
21104 { &hf_gsm_ss_updateTrigger, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LCS_PruUpdateTrigger },
21105 { NULL, 0, 0, 0, NULL }
21109 dissect_gsm_ss_LCS_PruAssociationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21110 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21111 gsm_ss_LCS_PruAssociationRes_sequence, hf_index, ett_gsm_ss_LCS_PruAssociationRes);
21113 return offset;
21117 static const ber_sequence_t gsm_ss_LCS_PruDisassociationArg_sequence[] = {
21118 { &hf_gsm_ss_ackIndication, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
21119 { &hf_gsm_ss_newLmfRoutingId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_OCTET_STRING },
21120 { NULL, 0, 0, 0, NULL }
21124 dissect_gsm_ss_LCS_PruDisassociationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21125 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21126 gsm_ss_LCS_PruDisassociationArg_sequence, hf_index, ett_gsm_ss_LCS_PruDisassociationArg);
21128 return offset;
21132 static const value_string gsm_ss_SLMTLR_Type_vals[] = {
21133 { 0, "rangingSidelink" },
21134 { 0, NULL }
21138 static int
21139 dissect_gsm_ss_SLMTLR_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21140 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21141 NULL);
21143 return offset;
21147 static const value_string gsm_ss_LocatedUEselect_vals[] = {
21148 { 0, "targetUESelect" },
21149 { 1, "lmfselect" },
21150 { 0, NULL }
21154 static int
21155 dissect_gsm_ss_LocatedUEselect(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21156 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21157 NULL);
21159 return offset;
21164 static int
21165 dissect_gsm_ss_CoordinateID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21166 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21167 NULL);
21169 return offset;
21173 static const ber_sequence_t gsm_ss_LCS_SLMTLRArg_sequence[] = {
21174 { &hf_gsm_ss_slmtlr_Type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_SLMTLR_Type },
21175 { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
21176 { &hf_gsm_ss_relatedUEInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RelatedUEInfo },
21177 { &hf_gsm_ss_locatedUEselect, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocatedUEselect },
21178 { &hf_gsm_ss_coordinateID , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CoordinateID },
21179 { NULL, 0, 0, 0, NULL }
21183 dissect_gsm_ss_LCS_SLMTLRArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21184 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21185 gsm_ss_LCS_SLMTLRArg_sequence, hf_index, ett_gsm_ss_LCS_SLMTLRArg);
21187 return offset;
21192 static int
21193 dissect_gsm_ss_SlPosProtocolPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21194 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21195 NULL);
21197 return offset;
21201 static const ber_sequence_t gsm_ss_RangingSLPPInfo_sequence[] = {
21202 { &hf_gsm_ss_sLPPMsg , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_SlPosProtocolPDU },
21203 { &hf_gsm_ss_relatedUE , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_OCTET_STRING },
21204 { NULL, 0, 0, 0, NULL }
21207 static int
21208 dissect_gsm_ss_RangingSLPPInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21209 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21210 gsm_ss_RangingSLPPInfo_sequence, hf_index, ett_gsm_ss_RangingSLPPInfo);
21212 return offset;
21216 static const ber_sequence_t gsm_ss_RangingSLPPList_sequence_of[1] = {
21217 { &hf_gsm_ss_RangingSLPPList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_RangingSLPPInfo },
21220 static int
21221 dissect_gsm_ss_RangingSLPPList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21222 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21223 gsm_ss_RangingSLPPList_sequence_of, hf_index, ett_gsm_ss_RangingSLPPList);
21225 return offset;
21229 static const ber_sequence_t gsm_ss_LCS_SLMTLRRes_sequence[] = {
21230 { &hf_gsm_ss_relatedUEInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RelatedUEInfo },
21231 { &hf_gsm_ss_rangingSLPPList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangingSLPPList },
21232 { NULL, 0, 0, 0, NULL }
21236 dissect_gsm_ss_LCS_SLMTLRRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21237 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21238 gsm_ss_LCS_SLMTLRRes_sequence, hf_index, ett_gsm_ss_LCS_SLMTLRRes);
21240 return offset;
21244 static const value_string gsm_ss_UEBased_vals[] = {
21245 { 0, "notcalculatedbyUE" },
21246 { 1, "calculatedbyUE" },
21247 { 0, NULL }
21251 static int
21252 dissect_gsm_ss_UEBased(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21253 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21254 NULL);
21256 return offset;
21260 static const ber_sequence_t gsm_ss_LCS_DLRSPPTransportArg_sequence[] = {
21261 { &hf_gsm_ss_rangingSLPPList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangingSLPPList },
21262 { &hf_gsm_ss_scheduledLocTime, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DateTime },
21263 { &hf_gsm_ss_ueBased , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_UEBased },
21264 { &hf_gsm_ss_relatedUEInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RelatedUEInfo },
21265 { NULL, 0, 0, 0, NULL }
21269 dissect_gsm_ss_LCS_DLRSPPTransportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21270 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21271 gsm_ss_LCS_DLRSPPTransportArg_sequence, hf_index, ett_gsm_ss_LCS_DLRSPPTransportArg);
21273 return offset;
21277 static const ber_sequence_t gsm_ss_LCS_DLRSPPTransportRes_sequence[] = {
21278 { NULL, 0, 0, 0, NULL }
21282 dissect_gsm_ss_LCS_DLRSPPTransportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21283 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21284 gsm_ss_LCS_DLRSPPTransportRes_sequence, hf_index, ett_gsm_ss_LCS_DLRSPPTransportRes);
21286 return offset;
21290 static const ber_sequence_t gsm_ss_LCS_ULRSPPTransportArg_sequence[] = {
21291 { &hf_gsm_ss_rangingSLPPList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_RangingSLPPList },
21292 { NULL, 0, 0, 0, NULL }
21296 dissect_gsm_ss_LCS_ULRSPPTransportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21297 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21298 gsm_ss_LCS_ULRSPPTransportArg_sequence, hf_index, ett_gsm_ss_LCS_ULRSPPTransportArg);
21300 return offset;
21304 static const ber_sequence_t gsm_ss_LCS_ULRSPPTransportRes_sequence[] = {
21305 { NULL, 0, 0, 0, NULL }
21309 dissect_gsm_ss_LCS_ULRSPPTransportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21310 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21311 gsm_ss_LCS_ULRSPPTransportRes_sequence, hf_index, ett_gsm_ss_LCS_ULRSPPTransportRes);
21313 return offset;
21317 /* --- Module SS-Operations --- --- --- */
21320 /* --- Module EricssonMAP --- --- --- */
21324 static int
21325 dissect_gsm_map_ericsson_T_locationInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21326 tvbuff_t *parameter_tvb;
21327 proto_tree *subtree;
21328 uint8_t rat;
21329 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21330 &parameter_tvb);
21332 if (parameter_tvb) {
21333 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ericsson_locationInformation);
21334 rat = tvb_get_uint8(parameter_tvb, 0);
21335 proto_tree_add_uint(subtree, hf_gsm_map_ericsson_locationInformation_rat, parameter_tvb, 0, 1, rat);
21336 switch (rat) {
21337 case 0:
21338 /* GSM */
21339 proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN);
21340 proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_ci, parameter_tvb, 3, 2, ENC_BIG_ENDIAN);
21341 break;
21342 case 1:
21343 /* UMTS */
21344 proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN);
21345 proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_sac, parameter_tvb, 3, 2, ENC_BIG_ENDIAN);
21346 break;
21347 default:
21348 break;
21353 return offset;
21357 static const ber_sequence_t gsm_map_ericsson_EnhancedCheckIMEI_Arg_sequence[] = {
21358 { &hf_gsm_map_ericsson_imei, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
21359 { &hf_gsm_map_ericsson_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
21360 { &hf_gsm_map_ericsson_imsi, BER_CLASS_PRI, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
21361 { &hf_gsm_map_ericsson_locationInformation, BER_CLASS_PRI, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_T_locationInformation },
21362 { &hf_gsm_map_ericsson_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
21363 { NULL, 0, 0, 0, NULL }
21366 static int
21367 dissect_gsm_map_ericsson_EnhancedCheckIMEI_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21368 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21369 gsm_map_ericsson_EnhancedCheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg);
21371 return offset;
21376 static int
21377 dissect_gsm_map_ericsson_PrivateFeatureCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21378 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21379 NULL);
21381 return offset;
21386 static int
21387 dissect_gsm_map_ericsson_SubscriptionType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21388 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21389 NULL);
21391 return offset;
21395 static const ber_sequence_t gsm_map_ericsson_SubscriptionTypeInfo_sequence[] = {
21396 { &hf_gsm_map_ericsson_subscriptionType, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SubscriptionType },
21397 { NULL, 0, 0, 0, NULL }
21400 static int
21401 dissect_gsm_map_ericsson_SubscriptionTypeInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21402 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21403 gsm_map_ericsson_SubscriptionTypeInfo_sequence, hf_index, ett_gsm_map_ericsson_SubscriptionTypeInfo);
21405 return offset;
21410 static int
21411 dissect_gsm_map_ericsson_INCategoryKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21412 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
21414 return offset;
21418 static const ber_sequence_t gsm_map_ericsson_OickInfo_sequence[] = {
21419 { &hf_gsm_map_ericsson_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
21420 { &hf_gsm_map_ericsson_inCategoryKey, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_INCategoryKey },
21421 { NULL, 0, 0, 0, NULL }
21424 static int
21425 dissect_gsm_map_ericsson_OickInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21426 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21427 gsm_map_ericsson_OickInfo_sequence, hf_index, ett_gsm_map_ericsson_OickInfo);
21429 return offset;
21433 static const value_string gsm_map_ericsson_PrivateFeatureData_vals[] = {
21434 { 3, "subscriptionTypeInfo" },
21435 { 7, "oickInfo" },
21436 { 0, NULL }
21439 static const ber_choice_t gsm_map_ericsson_PrivateFeatureData_choice[] = {
21440 { 3, &hf_gsm_map_ericsson_subscriptionTypeInfo, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SubscriptionTypeInfo },
21441 { 7, &hf_gsm_map_ericsson_oickInfo, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_OickInfo },
21442 { 0, NULL, 0, 0, 0, NULL }
21445 static int
21446 dissect_gsm_map_ericsson_PrivateFeatureData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21447 offset = dissect_ber_choice(actx, tree, tvb, offset,
21448 gsm_map_ericsson_PrivateFeatureData_choice, hf_index, ett_gsm_map_ericsson_PrivateFeatureData,
21449 NULL);
21451 return offset;
21455 static const ber_sequence_t gsm_map_ericsson_IsdArgData_sequence[] = {
21456 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
21457 { &hf_gsm_map_ericsson_privateFeatureData, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ericsson_PrivateFeatureData },
21458 { NULL, 0, 0, 0, NULL }
21461 static int
21462 dissect_gsm_map_ericsson_IsdArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21463 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21464 gsm_map_ericsson_IsdArgData_sequence, hf_index, ett_gsm_map_ericsson_IsdArgData);
21466 return offset;
21470 static const ber_sequence_t gsm_map_ericsson_IsdArgType_sequence_of[1] = {
21471 { &hf_gsm_map_ericsson_IsdArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_IsdArgData },
21474 static int
21475 dissect_gsm_map_ericsson_IsdArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21476 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21477 gsm_map_ericsson_IsdArgType_sequence_of, hf_index, ett_gsm_map_ericsson_IsdArgType);
21479 return offset;
21483 static const ber_sequence_t gsm_map_ericsson_IsdResData_sequence[] = {
21484 { &hf_gsm_map_ericsson_supportedPrivateFeature, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
21485 { NULL, 0, 0, 0, NULL }
21488 static int
21489 dissect_gsm_map_ericsson_IsdResData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21490 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21491 gsm_map_ericsson_IsdResData_sequence, hf_index, ett_gsm_map_ericsson_IsdResData);
21493 return offset;
21497 static const ber_sequence_t gsm_map_ericsson_IsdResType_sequence_of[1] = {
21498 { &hf_gsm_map_ericsson_IsdResType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_IsdResData },
21501 static int
21502 dissect_gsm_map_ericsson_IsdResType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21503 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21504 gsm_map_ericsson_IsdResType_sequence_of, hf_index, ett_gsm_map_ericsson_IsdResType);
21506 return offset;
21510 static const ber_sequence_t gsm_map_ericsson_DsdArgData_sequence[] = {
21511 { &hf_gsm_map_ericsson_privateFeatureWithdraw, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
21512 { NULL, 0, 0, 0, NULL }
21515 static int
21516 dissect_gsm_map_ericsson_DsdArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21517 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21518 gsm_map_ericsson_DsdArgData_sequence, hf_index, ett_gsm_map_ericsson_DsdArgData);
21520 return offset;
21524 static const ber_sequence_t gsm_map_ericsson_DsdArgType_sequence_of[1] = {
21525 { &hf_gsm_map_ericsson_DsdArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_DsdArgData },
21528 static int
21529 dissect_gsm_map_ericsson_DsdArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21530 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21531 gsm_map_ericsson_DsdArgType_sequence_of, hf_index, ett_gsm_map_ericsson_DsdArgType);
21533 return offset;
21537 static const value_string gsm_map_ericsson_ExtraProtocolId_vals[] = {
21538 { 1, "q763" },
21539 { 0, NULL }
21543 static int
21544 dissect_gsm_map_ericsson_ExtraProtocolId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21545 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21546 NULL);
21548 return offset;
21552 static const ber_sequence_t gsm_map_ericsson_ExtraSignalInfo_U_sequence[] = {
21553 { &hf_gsm_map_ericsson_protocolId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_ExtraProtocolId },
21554 { &hf_gsm_map_ericsson_signalInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
21555 { NULL, 0, 0, 0, NULL }
21558 static int
21559 dissect_gsm_map_ericsson_ExtraSignalInfo_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21560 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21561 gsm_map_ericsson_ExtraSignalInfo_U_sequence, hf_index, ett_gsm_map_ericsson_ExtraSignalInfo_U);
21563 return offset;
21568 static int
21569 dissect_gsm_map_ericsson_ExtraSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21570 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21571 hf_index, BER_CLASS_PRI, 1, true, dissect_gsm_map_ericsson_ExtraSignalInfo_U);
21573 return offset;
21577 static const ber_sequence_t gsm_map_ericsson_SriArgData_sequence[] = {
21578 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
21579 { &hf_gsm_map_ericsson_extraNetworkInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtraSignalInfo },
21580 { NULL, 0, 0, 0, NULL }
21583 static int
21584 dissect_gsm_map_ericsson_SriArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21585 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21586 gsm_map_ericsson_SriArgData_sequence, hf_index, ett_gsm_map_ericsson_SriArgData);
21588 return offset;
21592 static const ber_sequence_t gsm_map_ericsson_SRIArgType_sequence_of[1] = {
21593 { &hf_gsm_map_ericsson_SRIArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SriArgData },
21596 static int
21597 dissect_gsm_map_ericsson_SRIArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21598 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21599 gsm_map_ericsson_SRIArgType_sequence_of, hf_index, ett_gsm_map_ericsson_SRIArgType);
21601 return offset;
21605 static const ber_sequence_t gsm_map_ericsson_SriResData_sequence[] = {
21606 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
21607 { &hf_gsm_map_ericsson_inCategoryKey, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_INCategoryKey },
21608 { &hf_gsm_map_ericsson_subscriptionType, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SubscriptionType },
21609 { NULL, 0, 0, 0, NULL }
21612 static int
21613 dissect_gsm_map_ericsson_SriResData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21614 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21615 gsm_map_ericsson_SriResData_sequence, hf_index, ett_gsm_map_ericsson_SriResData);
21617 return offset;
21621 static const ber_sequence_t gsm_map_ericsson_SRIResType_sequence_of[1] = {
21622 { &hf_gsm_map_ericsson_SRIResType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SriResData },
21625 static int
21626 dissect_gsm_map_ericsson_SRIResType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21627 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21628 gsm_map_ericsson_SRIResType_sequence_of, hf_index, ett_gsm_map_ericsson_SRIResType);
21630 return offset;
21634 static const ber_sequence_t gsm_map_ericsson_PrnArgData_sequence[] = {
21635 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
21636 { &hf_gsm_map_ericsson_extraNetworkInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtraSignalInfo },
21637 { NULL, 0, 0, 0, NULL }
21640 static int
21641 dissect_gsm_map_ericsson_PrnArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21642 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21643 gsm_map_ericsson_PrnArgData_sequence, hf_index, ett_gsm_map_ericsson_PrnArgData);
21645 return offset;
21649 static const ber_sequence_t gsm_map_ericsson_PrnArgType_sequence_of[1] = {
21650 { &hf_gsm_map_ericsson_PrnArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_PrnArgData },
21653 static int
21654 dissect_gsm_map_ericsson_PrnArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21655 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21656 gsm_map_ericsson_PrnArgType_sequence_of, hf_index, ett_gsm_map_ericsson_PrnArgType);
21658 return offset;
21662 static const value_string gsm_map_ericsson_PrivateFeatureUlArgData_vals[] = {
21663 { 3, "adc" },
21664 { 0, NULL }
21667 static const ber_choice_t gsm_map_ericsson_PrivateFeatureUlArgData_choice[] = {
21668 { 3, &hf_gsm_map_ericsson_adc, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
21669 { 0, NULL, 0, 0, 0, NULL }
21672 static int
21673 dissect_gsm_map_ericsson_PrivateFeatureUlArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21674 offset = dissect_ber_choice(actx, tree, tvb, offset,
21675 gsm_map_ericsson_PrivateFeatureUlArgData_choice, hf_index, ett_gsm_map_ericsson_PrivateFeatureUlArgData,
21676 NULL);
21678 return offset;
21682 static const ber_sequence_t gsm_map_ericsson_UlArgData_sequence[] = {
21683 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
21684 { &hf_gsm_map_ericsson_privateFeatureUlArgData, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ericsson_PrivateFeatureUlArgData },
21685 { NULL, 0, 0, 0, NULL }
21688 static int
21689 dissect_gsm_map_ericsson_UlArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21690 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21691 gsm_map_ericsson_UlArgData_sequence, hf_index, ett_gsm_map_ericsson_UlArgData);
21693 return offset;
21697 static const ber_sequence_t gsm_map_ericsson_UlArgType_sequence_of[1] = {
21698 { &hf_gsm_map_ericsson_UlArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_UlArgData },
21701 static int
21702 dissect_gsm_map_ericsson_UlArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21703 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21704 gsm_map_ericsson_UlArgType_sequence_of, hf_index, ett_gsm_map_ericsson_UlArgType);
21706 return offset;
21711 static int
21712 dissect_gsm_map_ericsson_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21713 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
21715 return offset;
21719 static const ber_sequence_t gsm_map_ericsson_RdArgType_sequence[] = {
21720 { &hf_gsm_map_ericsson_toBeDecidedOne, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
21721 { NULL, 0, 0, 0, NULL }
21724 static int
21725 dissect_gsm_map_ericsson_RdArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21726 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21727 gsm_map_ericsson_RdArgType_sequence, hf_index, ett_gsm_map_ericsson_RdArgType);
21729 return offset;
21733 static const ber_sequence_t gsm_map_ericsson_SaiArgType_sequence[] = {
21734 { &hf_gsm_map_ericsson_msisdn, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
21735 { &hf_gsm_map_ericsson_noAuthenVectorsRequested, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
21736 { NULL, 0, 0, 0, NULL }
21739 static int
21740 dissect_gsm_map_ericsson_SaiArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21741 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21742 gsm_map_ericsson_SaiArgType_sequence, hf_index, ett_gsm_map_ericsson_SaiArgType);
21744 return offset;
21748 static const ber_sequence_t gsm_map_ericsson_SaiResType_sequence[] = {
21749 { &hf_gsm_map_ericsson_msIsdn, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
21750 { NULL, 0, 0, 0, NULL }
21753 static int
21754 dissect_gsm_map_ericsson_SaiResType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21755 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21756 gsm_map_ericsson_SaiResType_sequence, hf_index, ett_gsm_map_ericsson_SaiResType);
21758 return offset;
21762 static const ber_sequence_t gsm_map_ericsson_RequestedInfoType_sequence[] = {
21763 { &hf_gsm_map_ericsson_sgsnNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
21764 { NULL, 0, 0, 0, NULL }
21767 static int
21768 dissect_gsm_map_ericsson_RequestedInfoType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21769 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21770 gsm_map_ericsson_RequestedInfoType_sequence, hf_index, ett_gsm_map_ericsson_RequestedInfoType);
21772 return offset;
21776 static const ber_sequence_t gsm_map_ericsson_AtiArgType_sequence[] = {
21777 { &hf_gsm_map_ericsson_requestedInfoType, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_RequestedInfoType },
21778 { NULL, 0, 0, 0, NULL }
21781 static int
21782 dissect_gsm_map_ericsson_AtiArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21783 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21784 gsm_map_ericsson_AtiArgType_sequence, hf_index, ett_gsm_map_ericsson_AtiArgType);
21786 return offset;
21790 static const ber_sequence_t gsm_map_ericsson_AtiResType_sequence[] = {
21791 { &hf_gsm_map_ericsson_toBeDecided, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
21792 { NULL, 0, 0, 0, NULL }
21795 static int
21796 dissect_gsm_map_ericsson_AtiResType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21797 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21798 gsm_map_ericsson_AtiResType_sequence, hf_index, ett_gsm_map_ericsson_AtiResType);
21800 return offset;
21804 static const ber_sequence_t gsm_map_ericsson_AtiArgData_sequence[] = {
21805 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
21806 { NULL, 0, 0, 0, NULL }
21809 static int
21810 dissect_gsm_map_ericsson_AtiArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21811 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21812 gsm_map_ericsson_AtiArgData_sequence, hf_index, ett_gsm_map_ericsson_AtiArgData);
21814 return offset;
21818 static const ber_sequence_t gsm_map_ericsson_ExtAtiArgType_sequence_of[1] = {
21819 { &hf_gsm_map_ericsson_ExtAtiArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_AtiArgData },
21822 static int
21823 dissect_gsm_map_ericsson_ExtAtiArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21824 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21825 gsm_map_ericsson_ExtAtiArgType_sequence_of, hf_index, ett_gsm_map_ericsson_ExtAtiArgType);
21827 return offset;
21831 static const ber_choice_t gsm_map_ericsson_ExtensionType_choice[] = {
21832 { 1, &hf_gsm_map_ericsson_isdArgType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_IsdArgType },
21833 { 2, &hf_gsm_map_ericsson_isdResType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_IsdResType },
21834 { 3, &hf_gsm_map_ericsson_dsdArgType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_DsdArgType },
21835 { 4, &hf_gsm_map_ericsson_sriArgType, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SRIArgType },
21836 { 5, &hf_gsm_map_ericsson_sriResType, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SRIResType },
21837 { 6, &hf_gsm_map_ericsson_prnArgType, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrnArgType },
21838 { 7, &hf_gsm_map_ericsson_ulArgType, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_UlArgType },
21839 { 8, &hf_gsm_map_ericsson_rdArgType, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_RdArgType },
21840 { 9, &hf_gsm_map_ericsson_saiArgType, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SaiArgType },
21841 { 10, &hf_gsm_map_ericsson_saiResType, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SaiResType },
21842 { 11, &hf_gsm_map_ericsson_atiArgType, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_AtiArgType },
21843 { 12, &hf_gsm_map_ericsson_atiResType, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_AtiResType },
21844 { 13, &hf_gsm_map_ericsson_extAtiArgType, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtAtiArgType },
21845 { 0, NULL, 0, 0, 0, NULL }
21848 static int
21849 dissect_gsm_map_ericsson_ExtensionType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21850 offset = dissect_ber_choice(actx, tree, tvb, offset,
21851 gsm_map_ericsson_ExtensionType_choice, hf_index, ett_gsm_map_ericsson_ExtensionType,
21852 NULL);
21854 return offset;
21858 /* --- Module NokiaMAP-Extensions --- --- --- */
21862 static int
21863 dissect_NokiaMAP_Extensions_RoutingCategory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21864 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21865 NULL);
21867 return offset;
21872 static int
21873 dissect_NokiaMAP_Extensions_ActiveSS_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21874 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21875 NULL);
21877 return offset;
21882 static int
21883 dissect_NokiaMAP_Extensions_ExtRoutingCategory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21884 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21885 NULL);
21887 return offset;
21892 static int
21893 dissect_NokiaMAP_Extensions_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21894 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
21896 return offset;
21901 static int
21902 dissect_NokiaMAP_Extensions_MAPserviceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21903 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21904 NULL);
21906 return offset;
21911 static int
21912 dissect_NokiaMAP_Extensions_MAPserviceCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21913 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21914 NULL);
21916 return offset;
21921 static int
21922 dissect_NokiaMAP_Extensions_VersionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21923 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21924 NULL);
21926 return offset;
21931 static int
21932 dissect_NokiaMAP_Extensions_MKeyVer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21933 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21934 NULL);
21936 return offset;
21941 static int
21942 dissect_NokiaMAP_Extensions_MmTdpName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21943 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21944 NULL);
21946 return offset;
21952 dissect_NokiaMAP_Extensions_ServiceKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21953 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21954 NULL);
21956 return offset;
21961 static int
21962 dissect_NokiaMAP_Extensions_LocupType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21963 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21964 NULL);
21966 return offset;
21970 static const ber_sequence_t NokiaMAP_Extensions_MKey_sequence[] = {
21971 { &hf_NokiaMAP_Extensions_mKeyVer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MKeyVer },
21972 { &hf_NokiaMAP_Extensions_mmScfAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
21973 { &hf_NokiaMAP_Extensions_mmTdpName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MmTdpName },
21974 { &hf_NokiaMAP_Extensions_serviceKey, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceKey },
21975 { &hf_NokiaMAP_Extensions_locupType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LocupType },
21976 { NULL, 0, 0, 0, NULL }
21979 static int
21980 dissect_NokiaMAP_Extensions_MKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21981 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21982 NokiaMAP_Extensions_MKey_sequence, hf_index, ett_NokiaMAP_Extensions_MKey);
21984 return offset;
21989 static int
21990 dissect_NokiaMAP_Extensions_SmsTdpName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
21991 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21992 NULL);
21994 return offset;
21998 static const ber_sequence_t NokiaMAP_Extensions_SMSKey_sequence[] = {
21999 { &hf_NokiaMAP_Extensions_mmSCPAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
22000 { &hf_NokiaMAP_Extensions_smsTdpName, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SmsTdpName },
22001 { &hf_NokiaMAP_Extensions_serviceKey, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceKey },
22002 { &hf_NokiaMAP_Extensions_mmsFlag, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22003 { NULL, 0, 0, 0, NULL }
22006 static int
22007 dissect_NokiaMAP_Extensions_SMSKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22008 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22009 NokiaMAP_Extensions_SMSKey_sequence, hf_index, ett_NokiaMAP_Extensions_SMSKey);
22011 return offset;
22015 static const value_string NokiaMAP_Extensions_INKey_vals[] = {
22016 { 2, "mobile-IN-key" },
22017 { 3, "sms-IN-key" },
22018 { 0, NULL }
22021 static const ber_choice_t NokiaMAP_Extensions_INKey_choice[] = {
22022 { 2, &hf_NokiaMAP_Extensions_mobile_IN_key, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MKey },
22023 { 3, &hf_NokiaMAP_Extensions_sms_IN_key, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SMSKey },
22024 { 0, NULL, 0, 0, 0, NULL }
22027 static int
22028 dissect_NokiaMAP_Extensions_INKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22029 offset = dissect_ber_choice(actx, tree, tvb, offset,
22030 NokiaMAP_Extensions_INKey_choice, hf_index, ett_NokiaMAP_Extensions_INKey,
22031 NULL);
22033 return offset;
22038 static int
22039 dissect_NokiaMAP_Extensions_TimeLimit(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22040 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22041 NULL);
22043 return offset;
22048 static int
22049 dissect_NokiaMAP_Extensions_ActionType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22050 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22051 NULL);
22053 return offset;
22058 static int
22059 dissect_NokiaMAP_Extensions_FraudMaxCount(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22060 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22061 NULL);
22063 return offset;
22067 static const ber_sequence_t NokiaMAP_Extensions_FraudData_sequence[] = {
22068 { &hf_NokiaMAP_Extensions_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_TimeLimit },
22069 { &hf_NokiaMAP_Extensions_timeAction, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActionType },
22070 { &hf_NokiaMAP_Extensions_maxCount, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudMaxCount },
22071 { &hf_NokiaMAP_Extensions_maxCountAction, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActionType },
22072 { NULL, 0, 0, 0, NULL }
22075 static int
22076 dissect_NokiaMAP_Extensions_FraudData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22077 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22078 NokiaMAP_Extensions_FraudData_sequence, hf_index, ett_NokiaMAP_Extensions_FraudData);
22080 return offset;
22084 static const ber_sequence_t NokiaMAP_Extensions_FraudInfo_sequence[] = {
22085 { &hf_NokiaMAP_Extensions_moc, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData },
22086 { &hf_NokiaMAP_Extensions_cf, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData },
22087 { &hf_NokiaMAP_Extensions_ct, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData },
22088 { NULL, 0, 0, 0, NULL }
22091 static int
22092 dissect_NokiaMAP_Extensions_FraudInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22093 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22094 NokiaMAP_Extensions_FraudInfo_sequence, hf_index, ett_NokiaMAP_Extensions_FraudInfo);
22096 return offset;
22100 static const ber_sequence_t NokiaMAP_Extensions_ServiceWithInfo_sequence[] = {
22101 { &hf_NokiaMAP_Extensions_serviceCode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceCode },
22102 { &hf_NokiaMAP_Extensions_versionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_VersionInfo },
22103 { &hf_NokiaMAP_Extensions_in_key, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_NokiaMAP_Extensions_INKey },
22104 { &hf_NokiaMAP_Extensions_fraudInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_FraudInfo },
22105 { NULL, 0, 0, 0, NULL }
22108 static int
22109 dissect_NokiaMAP_Extensions_ServiceWithInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22110 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22111 NokiaMAP_Extensions_ServiceWithInfo_sequence, hf_index, ett_NokiaMAP_Extensions_ServiceWithInfo);
22113 return offset;
22117 static const ber_sequence_t NokiaMAP_Extensions_ServiceListWithInfo_sequence_of[1] = {
22118 { &hf_NokiaMAP_Extensions_ServiceListWithInfo_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ServiceWithInfo },
22121 static int
22122 dissect_NokiaMAP_Extensions_ServiceListWithInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22123 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
22124 NokiaMAP_Extensions_ServiceListWithInfo_sequence_of, hf_index, ett_NokiaMAP_Extensions_ServiceListWithInfo);
22126 return offset;
22130 static const ber_sequence_t NokiaMAP_Extensions_IsdArgExt_U_sequence[] = {
22131 { &hf_NokiaMAP_Extensions_alsLineIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22132 { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory },
22133 { &hf_NokiaMAP_Extensions_serviceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceList },
22134 { &hf_NokiaMAP_Extensions_serv_info_list, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceListWithInfo },
22135 { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory },
22136 { &hf_NokiaMAP_Extensions_ownMSISDN, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
22137 { NULL, 0, 0, 0, NULL }
22140 static int
22141 dissect_NokiaMAP_Extensions_IsdArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22142 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22143 NokiaMAP_Extensions_IsdArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_IsdArgExt_U);
22145 return offset;
22150 static int
22151 dissect_NokiaMAP_Extensions_IsdArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22152 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22153 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_IsdArgExt_U);
22155 return offset;
22159 static const ber_sequence_t NokiaMAP_Extensions_DsdArgExt_U_sequence[] = {
22160 { &hf_NokiaMAP_Extensions_alsLineIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22161 { &hf_NokiaMAP_Extensions_serviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceList },
22162 { NULL, 0, 0, 0, NULL }
22165 static int
22166 dissect_NokiaMAP_Extensions_DsdArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22167 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22168 NokiaMAP_Extensions_DsdArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_DsdArgExt_U);
22170 return offset;
22175 static int
22176 dissect_NokiaMAP_Extensions_DsdArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22177 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22178 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_DsdArgExt_U);
22180 return offset;
22184 static const ber_sequence_t NokiaMAP_Extensions_UlResExt_U_sequence[] = {
22185 { &hf_NokiaMAP_Extensions_mwd_Set, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22186 { NULL, 0, 0, 0, NULL }
22189 static int
22190 dissect_NokiaMAP_Extensions_UlResExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22191 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22192 NokiaMAP_Extensions_UlResExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_UlResExt_U);
22194 return offset;
22199 static int
22200 dissect_NokiaMAP_Extensions_UlResExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22201 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22202 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_UlResExt_U);
22204 return offset;
22209 static int
22210 dissect_NokiaMAP_Extensions_InTriggerKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22211 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22212 NULL);
22214 return offset;
22219 static int
22220 dissect_NokiaMAP_Extensions_PnpIndex(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22221 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22222 NULL);
22224 return offset;
22229 static int
22230 dissect_NokiaMAP_Extensions_CallRedirectionIndex(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22231 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22232 NULL);
22234 return offset;
22239 static int
22240 dissect_NokiaMAP_Extensions_ChargingArea(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22241 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22242 NULL);
22244 return offset;
22248 static const ber_sequence_t NokiaMAP_Extensions_ChargingAreaList_sequence_of[1] = {
22249 { &hf_NokiaMAP_Extensions_ChargingAreaList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ChargingArea },
22252 static int
22253 dissect_NokiaMAP_Extensions_ChargingAreaList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22254 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
22255 NokiaMAP_Extensions_ChargingAreaList_sequence_of, hf_index, ett_NokiaMAP_Extensions_ChargingAreaList);
22257 return offset;
22261 static const ber_sequence_t NokiaMAP_Extensions_RegionalChargingData_sequence[] = {
22262 { &hf_NokiaMAP_Extensions_chargingAreaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ChargingAreaList },
22263 { NULL, 0, 0, 0, NULL }
22266 static int
22267 dissect_NokiaMAP_Extensions_RegionalChargingData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22268 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22269 NokiaMAP_Extensions_RegionalChargingData_sequence, hf_index, ett_NokiaMAP_Extensions_RegionalChargingData);
22271 return offset;
22275 static const ber_sequence_t NokiaMAP_Extensions_SS_DataExtension_U_sequence[] = {
22276 { &hf_NokiaMAP_Extensions_inTriggerKey, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InTriggerKey },
22277 { &hf_NokiaMAP_Extensions_pnpIndex, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_PnpIndex },
22278 { &hf_NokiaMAP_Extensions_callRedirectionIndex, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallRedirectionIndex },
22279 { &hf_NokiaMAP_Extensions_regionalChargingData, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RegionalChargingData },
22280 { NULL, 0, 0, 0, NULL }
22283 static int
22284 dissect_NokiaMAP_Extensions_SS_DataExtension_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22285 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22286 NokiaMAP_Extensions_SS_DataExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SS_DataExtension_U);
22288 return offset;
22293 static int
22294 dissect_NokiaMAP_Extensions_SS_DataExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22295 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22296 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_SS_DataExtension_U);
22298 return offset;
22303 static int
22304 dissect_NokiaMAP_Extensions_CallingCategory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22305 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22306 NULL);
22308 return offset;
22313 static int
22314 dissect_NokiaMAP_Extensions_InternalServiceIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22315 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22316 NULL);
22318 return offset;
22322 static const ber_sequence_t NokiaMAP_Extensions_SriExtension_U_sequence[] = {
22323 { &hf_NokiaMAP_Extensions_callForwardingOverride, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22324 { &hf_NokiaMAP_Extensions_in_Capability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22325 { &hf_NokiaMAP_Extensions_callingCategory, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallingCategory },
22326 { &hf_NokiaMAP_Extensions_internalServiceIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InternalServiceIndicator },
22327 { &hf_NokiaMAP_Extensions_srbtSupportIndicator, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22328 { &hf_NokiaMAP_Extensions_gmscSupportIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22329 { NULL, 0, 0, 0, NULL }
22332 static int
22333 dissect_NokiaMAP_Extensions_SriExtension_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22334 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22335 NokiaMAP_Extensions_SriExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriExtension_U);
22337 return offset;
22342 static int
22343 dissect_NokiaMAP_Extensions_SriExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22344 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22345 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_SriExtension_U);
22347 return offset;
22351 static const value_string NokiaMAP_Extensions_ExtraProtocolId_vals[] = {
22352 { 1, "q763" },
22353 { 0, NULL }
22357 static int
22358 dissect_NokiaMAP_Extensions_ExtraProtocolId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22359 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22360 NULL);
22362 return offset;
22366 static const ber_sequence_t NokiaMAP_Extensions_ExtraSignalInfo_U_sequence[] = {
22367 { &hf_NokiaMAP_Extensions_protocolId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ExtraProtocolId },
22368 { &hf_NokiaMAP_Extensions_signalInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
22369 { NULL, 0, 0, 0, NULL }
22372 static int
22373 dissect_NokiaMAP_Extensions_ExtraSignalInfo_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22374 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22375 NokiaMAP_Extensions_ExtraSignalInfo_U_sequence, hf_index, ett_NokiaMAP_Extensions_ExtraSignalInfo_U);
22377 return offset;
22382 static int
22383 dissect_NokiaMAP_Extensions_ExtraSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22384 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22385 hf_index, BER_CLASS_PRI, 1, true, dissect_NokiaMAP_Extensions_ExtraSignalInfo_U);
22387 return offset;
22392 static int
22393 dissect_NokiaMAP_Extensions_CUG_CallInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22394 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22395 NULL);
22397 return offset;
22402 static int
22403 dissect_NokiaMAP_Extensions_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22404 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
22406 return offset;
22410 static const ber_sequence_t NokiaMAP_Extensions_Nokia_CUG_Data_sequence[] = {
22411 { &hf_NokiaMAP_Extensions_cug_Interlock, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock },
22412 { &hf_NokiaMAP_Extensions_cug_OutgoingAccess, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN },
22413 { &hf_NokiaMAP_Extensions_cug_CallInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CUG_CallInfo },
22414 { NULL, 0, 0, 0, NULL }
22417 static int
22418 dissect_NokiaMAP_Extensions_Nokia_CUG_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22419 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22420 NokiaMAP_Extensions_Nokia_CUG_Data_sequence, hf_index, ett_NokiaMAP_Extensions_Nokia_CUG_Data);
22422 return offset;
22427 static int
22428 dissect_NokiaMAP_Extensions_LeaId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22429 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22430 NULL);
22432 return offset;
22437 static int
22438 dissect_NokiaMAP_Extensions_OlcmTraceReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22439 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22440 NULL);
22442 return offset;
22446 static const ber_sequence_t NokiaMAP_Extensions_OlcmInfo_sequence[] = {
22447 { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
22448 { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
22449 { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId },
22450 { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference },
22451 { NULL, 0, 0, 0, NULL }
22454 static int
22455 dissect_NokiaMAP_Extensions_OlcmInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22456 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22457 NokiaMAP_Extensions_OlcmInfo_sequence, hf_index, ett_NokiaMAP_Extensions_OlcmInfo);
22459 return offset;
22463 static const ber_sequence_t NokiaMAP_Extensions_OlcmInfoTable_sequence_of[1] = {
22464 { &hf_NokiaMAP_Extensions_OlcmInfoTable_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_OlcmInfo },
22467 static int
22468 dissect_NokiaMAP_Extensions_OlcmInfoTable(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22469 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
22470 NokiaMAP_Extensions_OlcmInfoTable_sequence_of, hf_index, ett_NokiaMAP_Extensions_OlcmInfoTable);
22472 return offset;
22477 static int
22478 dissect_NokiaMAP_Extensions_NoAnswerTimer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22479 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22480 NULL);
22482 return offset;
22486 static const ber_sequence_t NokiaMAP_Extensions_MemberList_sequence_of[1] = {
22487 { &hf_NokiaMAP_Extensions_MemberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
22490 static int
22491 dissect_NokiaMAP_Extensions_MemberList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22492 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
22493 NokiaMAP_Extensions_MemberList_sequence_of, hf_index, ett_NokiaMAP_Extensions_MemberList);
22495 return offset;
22500 static int
22501 dissect_NokiaMAP_Extensions_AlertingMethod(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22502 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22503 NULL);
22505 return offset;
22510 static int
22511 dissect_NokiaMAP_Extensions_UserType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22512 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22513 NULL);
22515 return offset;
22519 static const ber_sequence_t NokiaMAP_Extensions_RgData_sequence[] = {
22520 { &hf_NokiaMAP_Extensions_noAnswerTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NoAnswerTimer },
22521 { &hf_NokiaMAP_Extensions_memberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MemberList },
22522 { &hf_NokiaMAP_Extensions_alertingMethod, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_AlertingMethod },
22523 { &hf_NokiaMAP_Extensions_userType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_UserType },
22524 { &hf_NokiaMAP_Extensions_divertedToNbr, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
22525 { &hf_NokiaMAP_Extensions_memberOfSuppression, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22526 { &hf_NokiaMAP_Extensions_ringbacktone, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22527 { NULL, 0, 0, 0, NULL }
22530 static int
22531 dissect_NokiaMAP_Extensions_RgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22532 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22533 NokiaMAP_Extensions_RgData_sequence, hf_index, ett_NokiaMAP_Extensions_RgData);
22535 return offset;
22539 static const ber_sequence_t NokiaMAP_Extensions_SriResExtension_U_sequence[] = {
22540 { &hf_NokiaMAP_Extensions_inTriggerKey, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InTriggerKey },
22541 { &hf_NokiaMAP_Extensions_vlrNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
22542 { &hf_NokiaMAP_Extensions_activeSs, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActiveSS_List },
22543 { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
22544 { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
22545 { &hf_NokiaMAP_Extensions_omc_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
22546 { &hf_NokiaMAP_Extensions_hotBilling, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN },
22547 { &hf_NokiaMAP_Extensions_cfoIsDone, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN },
22548 { &hf_NokiaMAP_Extensions_cfInCug, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN },
22549 { &hf_NokiaMAP_Extensions_basicService, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
22550 { &hf_NokiaMAP_Extensions_category, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
22551 { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory },
22552 { &hf_NokiaMAP_Extensions_pnpIndex, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_PnpIndex },
22553 { &hf_NokiaMAP_Extensions_nokia_CUG, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_Nokia_CUG_Data },
22554 { &hf_NokiaMAP_Extensions_noBarrings, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22555 { &hf_NokiaMAP_Extensions_odb_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
22556 { &hf_NokiaMAP_Extensions_fraudData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData },
22557 { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory },
22558 { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId },
22559 { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable },
22560 { &hf_NokiaMAP_Extensions_callingCategory, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallingCategory },
22561 { &hf_NokiaMAP_Extensions_commonMSISDN, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
22562 { &hf_NokiaMAP_Extensions_rgData, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RgData },
22563 { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference },
22564 { NULL, 0, 0, 0, NULL }
22567 static int
22568 dissect_NokiaMAP_Extensions_SriResExtension_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22569 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22570 NokiaMAP_Extensions_SriResExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriResExtension_U);
22572 return offset;
22577 static int
22578 dissect_NokiaMAP_Extensions_SriResExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22579 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22580 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_SriResExtension_U);
22582 return offset;
22587 static int
22588 dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22589 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22590 NULL);
22592 return offset;
22596 static const ber_sequence_t NokiaMAP_Extensions_CanLocArgExt_U_sequence[] = {
22597 { &hf_NokiaMAP_Extensions_termination, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_1 },
22598 { NULL, 0, 0, 0, NULL }
22601 static int
22602 dissect_NokiaMAP_Extensions_CanLocArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22603 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22604 NokiaMAP_Extensions_CanLocArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_CanLocArgExt_U);
22606 return offset;
22611 static int
22612 dissect_NokiaMAP_Extensions_CanLocArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22613 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22614 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_CanLocArgExt_U);
22616 return offset;
22620 static const ber_sequence_t NokiaMAP_Extensions_ATMargExt_U_sequence[] = {
22621 { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
22622 { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
22623 { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId },
22624 { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable },
22625 { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference },
22626 { NULL, 0, 0, 0, NULL }
22629 static int
22630 dissect_NokiaMAP_Extensions_ATMargExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22631 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22632 NokiaMAP_Extensions_ATMargExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ATMargExt_U);
22634 return offset;
22639 static int
22640 dissect_NokiaMAP_Extensions_ATMargExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22641 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22642 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_ATMargExt_U);
22644 return offset;
22648 static const ber_sequence_t NokiaMAP_Extensions_ATMresExt_U_sequence[] = {
22649 { &hf_NokiaMAP_Extensions_olcmActive, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22650 { NULL, 0, 0, 0, NULL }
22653 static int
22654 dissect_NokiaMAP_Extensions_ATMresExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22655 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22656 NokiaMAP_Extensions_ATMresExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ATMresExt_U);
22658 return offset;
22663 static int
22664 dissect_NokiaMAP_Extensions_ATMresExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22665 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22666 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_ATMresExt_U);
22668 return offset;
22672 static const ber_sequence_t NokiaMAP_Extensions_DTMargExt_U_sequence[] = {
22673 { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
22674 { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId },
22675 { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference },
22676 { NULL, 0, 0, 0, NULL }
22679 static int
22680 dissect_NokiaMAP_Extensions_DTMargExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22681 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22682 NokiaMAP_Extensions_DTMargExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_DTMargExt_U);
22684 return offset;
22689 static int
22690 dissect_NokiaMAP_Extensions_DTMargExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22691 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22692 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_DTMargExt_U);
22694 return offset;
22699 static int
22700 dissect_NokiaMAP_Extensions_NumberPorted_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22701 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22702 NULL);
22704 return offset;
22709 static int
22710 dissect_NokiaMAP_Extensions_NumberPorted(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22711 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22712 hf_index, BER_CLASS_PRI, 20, true, dissect_NokiaMAP_Extensions_NumberPorted_U);
22714 return offset;
22719 static int
22720 dissect_NokiaMAP_Extensions_MapOptFields(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22721 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22722 NULL);
22724 return offset;
22729 static int
22730 dissect_NokiaMAP_Extensions_CodecExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22731 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22732 NULL);
22734 return offset;
22738 static const ber_sequence_t NokiaMAP_Extensions_CodecListExt_sequence_of[1] = {
22739 { &hf_NokiaMAP_Extensions_CodecListExt_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_CodecExt },
22742 static int
22743 dissect_NokiaMAP_Extensions_CodecListExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22744 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
22745 NokiaMAP_Extensions_CodecListExt_sequence_of, hf_index, ett_NokiaMAP_Extensions_CodecListExt);
22747 return offset;
22752 static int
22753 dissect_NokiaMAP_Extensions_Modes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22754 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22755 NULL);
22757 return offset;
22761 static const ber_sequence_t NokiaMAP_Extensions_SelectedCodec_sequence[] = {
22762 { &hf_NokiaMAP_Extensions_codec, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CodecExt },
22763 { &hf_NokiaMAP_Extensions_modes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_Modes },
22764 { NULL, 0, 0, 0, NULL }
22767 static int
22768 dissect_NokiaMAP_Extensions_SelectedCodec(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22769 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22770 NokiaMAP_Extensions_SelectedCodec_sequence, hf_index, ett_NokiaMAP_Extensions_SelectedCodec);
22772 return offset;
22777 static int
22778 dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_5_17(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22779 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22780 NULL);
22782 return offset;
22787 static int
22788 dissect_NokiaMAP_Extensions_IPPortNb(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22789 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
22790 NULL);
22792 return offset;
22796 static const ber_sequence_t NokiaMAP_Extensions_HO_Ext_U_sequence[] = {
22797 { &hf_NokiaMAP_Extensions_map_Opt, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MapOptFields },
22798 { &hf_NokiaMAP_Extensions_codec_List, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CodecListExt },
22799 { &hf_NokiaMAP_Extensions_selected_Codec, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SelectedCodec },
22800 { &hf_NokiaMAP_Extensions_uma_access, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22801 { &hf_NokiaMAP_Extensions_uma_ip_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_5_17 },
22802 { &hf_NokiaMAP_Extensions_uma_ip_port_nb, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_IPPortNb },
22803 { NULL, 0, 0, 0, NULL }
22806 static int
22807 dissect_NokiaMAP_Extensions_HO_Ext_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22808 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22809 NokiaMAP_Extensions_HO_Ext_U_sequence, hf_index, ett_NokiaMAP_Extensions_HO_Ext_U);
22811 return offset;
22816 static int
22817 dissect_NokiaMAP_Extensions_HO_Ext(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22818 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22819 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_HO_Ext_U);
22821 return offset;
22825 static const ber_sequence_t NokiaMAP_Extensions_AbsentSubscriberExt_U_sequence[] = {
22826 { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable },
22827 { &hf_NokiaMAP_Extensions_imsi, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
22828 { NULL, 0, 0, 0, NULL }
22831 static int
22832 dissect_NokiaMAP_Extensions_AbsentSubscriberExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22833 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22834 NokiaMAP_Extensions_AbsentSubscriberExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_AbsentSubscriberExt_U);
22836 return offset;
22841 static int
22842 dissect_NokiaMAP_Extensions_AbsentSubscriberExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22843 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22844 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_AbsentSubscriberExt_U);
22846 return offset;
22850 static const ber_sequence_t NokiaMAP_Extensions_ErrOlcmInfoTableExt_U_sequence[] = {
22851 { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable },
22852 { &hf_NokiaMAP_Extensions_imsi, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
22853 { NULL, 0, 0, 0, NULL }
22856 static int
22857 dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22858 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22859 NokiaMAP_Extensions_ErrOlcmInfoTableExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U);
22861 return offset;
22866 static int
22867 dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22868 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22869 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U);
22871 return offset;
22875 static const ber_sequence_t NokiaMAP_Extensions_RoutingCategoryExt_U_sequence[] = {
22876 { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory },
22877 { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory },
22878 { NULL, 0, 0, 0, NULL }
22881 static int
22882 dissect_NokiaMAP_Extensions_RoutingCategoryExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22883 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22884 NokiaMAP_Extensions_RoutingCategoryExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_RoutingCategoryExt_U);
22886 return offset;
22891 static int
22892 dissect_NokiaMAP_Extensions_RoutingCategoryExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22893 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22894 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_RoutingCategoryExt_U);
22896 return offset;
22901 static int
22902 dissect_NokiaMAP_Extensions_CfuSMSCounter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22903 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22904 NULL);
22906 return offset;
22910 static const ber_sequence_t NokiaMAP_Extensions_SriForSMArgExt_U_sequence[] = {
22911 { &hf_NokiaMAP_Extensions_cfuSMSCounter, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CfuSMSCounter },
22912 { &hf_NokiaMAP_Extensions_cfusmcfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22913 { &hf_NokiaMAP_Extensions_memberInterrogate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22914 { NULL, 0, 0, 0, NULL }
22917 static int
22918 dissect_NokiaMAP_Extensions_SriForSMArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22919 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22920 NokiaMAP_Extensions_SriForSMArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriForSMArgExt_U);
22922 return offset;
22927 static int
22928 dissect_NokiaMAP_Extensions_SriForSMArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22929 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22930 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_SriForSMArgExt_U);
22932 return offset;
22936 static const ber_sequence_t NokiaMAP_Extensions_ReportSMDelStatArgExt_U_sequence[] = {
22937 { &hf_NokiaMAP_Extensions_cfuSMSCounter, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CfuSMSCounter },
22938 { &hf_NokiaMAP_Extensions_cfusmcfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22939 { NULL, 0, 0, 0, NULL }
22942 static int
22943 dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22944 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22945 NokiaMAP_Extensions_ReportSMDelStatArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U);
22947 return offset;
22952 static int
22953 dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22954 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22955 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt_U);
22957 return offset;
22962 static int
22963 dissect_NokiaMAP_Extensions_LocationAreaCode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22964 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
22965 NULL);
22967 return offset;
22971 static const ber_sequence_t NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U_sequence[] = {
22972 { &hf_NokiaMAP_Extensions_locationAreaCode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LocationAreaCode },
22973 { &hf_NokiaMAP_Extensions_cellId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
22974 { NULL, 0, 0, 0, NULL }
22977 static int
22978 dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22979 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
22980 NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U);
22982 return offset;
22987 static int
22988 dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
22989 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
22990 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U);
22992 return offset;
22996 static const ber_sequence_t NokiaMAP_Extensions_UdlArgExt_U_sequence[] = {
22997 { &hf_NokiaMAP_Extensions_lai, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
22998 { &hf_NokiaMAP_Extensions_sendImmResp, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
22999 { NULL, 0, 0, 0, NULL }
23002 static int
23003 dissect_NokiaMAP_Extensions_UdlArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23004 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
23005 NokiaMAP_Extensions_UdlArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_UdlArgExt_U);
23007 return offset;
23012 static int
23013 dissect_NokiaMAP_Extensions_UdlArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23014 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
23015 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_UdlArgExt_U);
23017 return offset;
23021 static const ber_sequence_t NokiaMAP_Extensions_RoamNotAllowedExt_U_sequence[] = {
23022 { &hf_NokiaMAP_Extensions_rejectCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_1 },
23023 { NULL, 0, 0, 0, NULL }
23026 static int
23027 dissect_NokiaMAP_Extensions_RoamNotAllowedExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23028 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
23029 NokiaMAP_Extensions_RoamNotAllowedExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_RoamNotAllowedExt_U);
23031 return offset;
23036 static int
23037 dissect_NokiaMAP_Extensions_RoamNotAllowedExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23038 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
23039 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_RoamNotAllowedExt_U);
23041 return offset;
23045 static const ber_sequence_t NokiaMAP_Extensions_AnyTimeModArgExt_U_sequence[] = {
23046 { &hf_NokiaMAP_Extensions_senderMSISDN, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
23047 { NULL, 0, 0, 0, NULL }
23050 static int
23051 dissect_NokiaMAP_Extensions_AnyTimeModArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23052 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
23053 NokiaMAP_Extensions_AnyTimeModArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_AnyTimeModArgExt_U);
23055 return offset;
23060 static int
23061 dissect_NokiaMAP_Extensions_AnyTimeModArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23062 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
23063 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_AnyTimeModArgExt_U);
23065 return offset;
23069 static const value_string NokiaMAP_Extensions_Access_vals[] = {
23070 { 1, "gsm" },
23071 { 2, "geran" },
23072 { 3, "utran" },
23073 { 0, NULL }
23077 static int
23078 dissect_NokiaMAP_Extensions_Access(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23079 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
23080 NULL);
23082 return offset;
23087 static int
23088 dissect_NokiaMAP_Extensions_Version(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23089 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
23090 NULL);
23092 return offset;
23096 static const ber_sequence_t NokiaMAP_Extensions_AccessTypeExt_sequence[] = {
23097 { &hf_NokiaMAP_Extensions_access, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Access },
23098 { &hf_NokiaMAP_Extensions_version, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Version },
23099 { NULL, 0, 0, 0, NULL }
23102 static int
23103 dissect_NokiaMAP_Extensions_AccessTypeExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23104 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
23105 NokiaMAP_Extensions_AccessTypeExt_sequence, hf_index, ett_NokiaMAP_Extensions_AccessTypeExt);
23107 return offset;
23111 static const ber_sequence_t NokiaMAP_Extensions_AccessSubscriptionListExt_sequence_of[1] = {
23112 { &hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Access },
23115 static int
23116 dissect_NokiaMAP_Extensions_AccessSubscriptionListExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23117 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
23118 NokiaMAP_Extensions_AccessSubscriptionListExt_sequence_of, hf_index, ett_NokiaMAP_Extensions_AccessSubscriptionListExt);
23120 return offset;
23124 static int * const NokiaMAP_Extensions_AllowedServiceData_bits[] = {
23125 &hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed,
23126 NULL
23129 static int
23130 dissect_NokiaMAP_Extensions_AllowedServiceData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
23131 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
23132 NokiaMAP_Extensions_AllowedServiceData_bits, 1, hf_index, ett_NokiaMAP_Extensions_AllowedServiceData,
23133 NULL);
23135 return offset;
23139 /* Specific translation for MAP V3 */
23140 static const value_string gsm_map_V1V2_opr_code_strings[] = {
23141 { 44, "forwardSM" },
23142 { 45, "sendRoutingInfoForSM" },
23143 { 46, "forwardSM" },
23144 { 0, NULL }
23146 /* Generic translation for MAP operation */
23147 const value_string gsm_map_opr_code_strings[] = {
23149 /* --- Module Remote-Operations-Information-Objects --- --- --- */
23151 /* Unknown or empty loop list OPERATION */
23153 /* --- Module MobileDomainDefinitions --- --- --- */
23155 /* Unknown or empty loop list OPERATION */
23157 /* --- Module MAP-ApplicationContexts --- --- --- */
23159 /* Unknown or empty loop list OPERATION */
23161 /* --- Module MAP-SS-Code --- --- --- */
23163 /* Unknown or empty loop list OPERATION */
23165 /* --- Module MAP-BS-Code --- --- --- */
23167 /* Unknown or empty loop list OPERATION */
23169 /* --- Module MAP-TS-Code --- --- --- */
23171 /* Unknown or empty loop list OPERATION */
23173 /* --- Module MAP-ExtensionDataTypes --- --- --- */
23175 /* Unknown or empty loop list OPERATION */
23177 /* --- Module MAP-CommonDataTypes --- --- --- */
23179 /* Unknown or empty loop list OPERATION */
23181 /* --- Module MAP-SS-DataTypes --- --- --- */
23183 /* Unknown or empty loop list OPERATION */
23185 /* --- Module MAP-ER-DataTypes --- --- --- */
23187 /* Unknown or empty loop list OPERATION */
23189 /* --- Module MAP-SM-DataTypes --- --- --- */
23191 /* Unknown or empty loop list OPERATION */
23193 /* --- Module MAP-OM-DataTypes --- --- --- */
23195 /* Unknown or empty loop list OPERATION */
23197 /* --- Module MAP-MS-DataTypes --- --- --- */
23199 /* Unknown or empty loop list OPERATION */
23201 /* --- Module MAP-CH-DataTypes --- --- --- */
23203 /* Unknown or empty loop list OPERATION */
23205 /* --- Module MAP-LCS-DataTypes --- --- --- */
23207 /* Unknown or empty loop list OPERATION */
23209 /* --- Module MAP-GR-DataTypes --- --- --- */
23211 /* Unknown or empty loop list OPERATION */
23213 /* --- Module MAP-DialogueInformation --- --- --- */
23215 /* Unknown or empty loop list OPERATION */
23217 /* --- Module MAP-LocationServiceOperations --- --- --- */
23219 { 85, "sendRoutingInfoForLCS" },
23220 { 83, "provideSubscriberLocation" },
23221 { 86, "subscriberLocationReport" },
23223 /* --- Module MAP-Group-Call-Operations --- --- --- */
23225 { 39, "prepareGroupCall" },
23226 { 40, "sendGroupCallEndSignal" },
23227 { 41, "processGroupCallSignalling" },
23228 { 42, "forwardGroupCallSignalling" },
23229 { 84, "sendGroupCallInfo" },
23231 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
23233 { 45, "sendRoutingInfoForSM" },
23234 { 46, "mo_ForwardSM" },
23235 { 44, "mt_ForwardSM" },
23236 { 47, "reportSM_DeliveryStatus" },
23237 { 64, "alertServiceCentre" },
23238 { 63, "informServiceCentre" },
23239 { 66, "readyForSM" },
23240 { 21, "mt_ForwardSM_VGCS" },
23242 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
23244 { 10, "registerSS" },
23245 { 11, "eraseSS" },
23246 { 12, "activateSS" },
23247 { 13, "deactivateSS" },
23248 { 14, "interrogateSS" },
23249 { 59, "processUnstructuredSS_Request" },
23250 { 60, "unstructuredSS_Request" },
23251 { 61, "unstructuredSS_Notify" },
23252 { 17, "registerPassword" },
23253 { 18, "getPassword" },
23254 { 72, "ss_InvocationNotification" },
23255 { 76, "registerCC_Entry" },
23256 { 77, "eraseCC_Entry" },
23258 /* --- Module MAP-CallHandlingOperations --- --- --- */
23260 { 22, "sendRoutingInfo" },
23261 { 4, "provideRoamingNumber" },
23262 { 6, "resumeCallHandling" },
23263 { 73, "setReportingState" },
23264 { 74, "statusReport" },
23265 { 75, "remoteUserFree" },
23266 { 87, "ist_Alert" },
23267 { 88, "ist_Command" },
23268 { 20, "releaseResources" },
23270 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
23272 { 50, "activateTraceMode" },
23273 { 51, "deactivateTraceMode" },
23274 { 58, "sendIMSI" },
23276 /* --- Module MAP-MobileServiceOperations --- --- --- */
23278 { 2, "updateLocation" },
23279 { 3, "cancelLocation" },
23280 { 67, "purgeMS" },
23281 { 55, "sendIdentification" },
23282 { 23, "updateGprsLocation" },
23283 { 70, "provideSubscriberInfo" },
23284 { 71, "anyTimeInterrogation" },
23285 { 62, "anyTimeSubscriptionInterrogation" },
23286 { 65, "anyTimeModification" },
23287 { 5, "noteSubscriberDataModified" },
23288 { 68, "prepareHandover" },
23289 { 29, "sendEndSignal" },
23290 { 33, "processAccessSignalling" },
23291 { 34, "forwardAccessSignalling" },
23292 { 69, "prepareSubsequentHandover" },
23293 { 56, "sendAuthenticationInfo" },
23294 { 15, "authenticationFailureReport" },
23295 { 43, "checkIMEI" },
23296 { 7, "insertSubscriberData" },
23297 { 8, "deleteSubscriberData" },
23298 { 37, "reset" },
23299 { 38, "forwardCheckSS_Indication" },
23300 { 57, "restoreData" },
23301 { 24, "sendRoutingInfoForGprs" },
23302 { 25, "failureReport" },
23303 { 26, "noteMsPresentForGprs" },
23304 { 89, "noteMM_Event" },
23305 { 53, "updateVcsgLocation" },
23306 { 36, "cancelVcsgLocation" },
23308 /* --- Module MAP-Errors --- --- --- */
23310 /* Unknown or empty loop list OPERATION */
23312 /* --- Module MAP-Protocol --- --- --- */
23314 /* Unknown or empty loop list OPERATION */
23316 /* --- Module DummyMAP --- --- --- */
23318 { 9, "sendParameters" },
23320 /* --- Module SS-DataTypes --- --- --- */
23322 /* Unknown or empty loop list OPERATION */
23324 /* --- Module SS-Operations --- --- --- */
23326 { 19, "processUnstructuredSS_Data" },
23327 { 16, "notifySS" },
23328 { 125, "forwardChargeAdvice" },
23329 { 120, "forwardCUG_Info" },
23330 { 124, "buildMPTY" },
23331 { 123, "holdMPTY" },
23332 { 122, "retrieveMPTY" },
23333 { 121, "splitMPTY" },
23334 { 126, "explicitCT" },
23335 { 119, "accessRegisterCCEntry" },
23336 { 117, "callDeflection" },
23337 { 118, "userUserService" },
23338 { 116, "lcs_LocationNotification" },
23339 { 115, "lcs_MOLR" },
23340 { 114, "lcs_AreaEventRequest" },
23341 { 113, "lcs_AreaEventReport" },
23342 { 112, "lcs_AreaEventCancellation" },
23343 { 111, "lcs_PeriodicLocationRequest" },
23344 { 110, "lcs_LocationUpdate" },
23345 { 109, "lcs_PeriodicLocationCancellation" },
23346 { 108, "lcs_PeriodicTriggeredInvoke" },
23347 { 107, "lcs_EventReport" },
23348 { 106, "lcs_CancelDeferredLocation" },
23349 { 105, "lcs_MSCancelDeferredLocation" },
23350 { 104, "lcs_LocationPrivacySetting" },
23351 { 103, "lcs_PruAssociation" },
23352 { 102, "lcs_PruDisassociation" },
23353 { 101, "lcs_SLMOLR" },
23354 { 100, "lcs_SLMTLR" },
23355 { 99, "lcs_DLRSPPTransport" },
23356 { 98, "lcs_ULRSPPTransport" },
23358 /* --- Module EricssonMAP --- --- --- */
23360 /* Unknown or empty loop list OPERATION */
23362 /* --- Module NokiaMAP-Extensions --- --- --- */
23364 /* Unknown or empty loop list OPERATION */
23365 { 0, NULL }
23368 #if 0
23369 static const value_string gsm_map_err_code_string_vals[] = {
23371 /* --- Module Remote-Operations-Information-Objects --- --- --- */
23373 /* Unknown or empty loop list OPERATION */
23375 /* --- Module MobileDomainDefinitions --- --- --- */
23377 /* Unknown or empty loop list OPERATION */
23379 /* --- Module MAP-ApplicationContexts --- --- --- */
23381 /* Unknown or empty loop list OPERATION */
23383 /* --- Module MAP-SS-Code --- --- --- */
23385 /* Unknown or empty loop list OPERATION */
23387 /* --- Module MAP-BS-Code --- --- --- */
23389 /* Unknown or empty loop list OPERATION */
23391 /* --- Module MAP-TS-Code --- --- --- */
23393 /* Unknown or empty loop list OPERATION */
23395 /* --- Module MAP-ExtensionDataTypes --- --- --- */
23397 /* Unknown or empty loop list OPERATION */
23399 /* --- Module MAP-CommonDataTypes --- --- --- */
23401 /* Unknown or empty loop list OPERATION */
23403 /* --- Module MAP-SS-DataTypes --- --- --- */
23405 /* Unknown or empty loop list OPERATION */
23407 /* --- Module MAP-ER-DataTypes --- --- --- */
23409 /* Unknown or empty loop list OPERATION */
23411 /* --- Module MAP-SM-DataTypes --- --- --- */
23413 /* Unknown or empty loop list OPERATION */
23415 /* --- Module MAP-OM-DataTypes --- --- --- */
23417 /* Unknown or empty loop list OPERATION */
23419 /* --- Module MAP-MS-DataTypes --- --- --- */
23421 /* Unknown or empty loop list OPERATION */
23423 /* --- Module MAP-CH-DataTypes --- --- --- */
23425 /* Unknown or empty loop list OPERATION */
23427 /* --- Module MAP-LCS-DataTypes --- --- --- */
23429 /* Unknown or empty loop list OPERATION */
23431 /* --- Module MAP-GR-DataTypes --- --- --- */
23433 /* Unknown or empty loop list OPERATION */
23435 /* --- Module MAP-DialogueInformation --- --- --- */
23437 /* Unknown or empty loop list OPERATION */
23439 /* --- Module MAP-LocationServiceOperations --- --- --- */
23441 { 85, "sendRoutingInfoForLCS" },
23442 { 83, "provideSubscriberLocation" },
23443 { 86, "subscriberLocationReport" },
23445 /* --- Module MAP-Group-Call-Operations --- --- --- */
23447 { 39, "prepareGroupCall" },
23448 { 40, "sendGroupCallEndSignal" },
23449 { 41, "processGroupCallSignalling" },
23450 { 42, "forwardGroupCallSignalling" },
23451 { 84, "sendGroupCallInfo" },
23453 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
23455 { 45, "sendRoutingInfoForSM" },
23456 { 46, "mo_ForwardSM" },
23457 { 44, "mt_ForwardSM" },
23458 { 47, "reportSM_DeliveryStatus" },
23459 { 64, "alertServiceCentre" },
23460 { 63, "informServiceCentre" },
23461 { 66, "readyForSM" },
23462 { 21, "mt_ForwardSM_VGCS" },
23464 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
23466 { 10, "registerSS" },
23467 { 11, "eraseSS" },
23468 { 12, "activateSS" },
23469 { 13, "deactivateSS" },
23470 { 14, "interrogateSS" },
23471 { 59, "processUnstructuredSS_Request" },
23472 { 60, "unstructuredSS_Request" },
23473 { 61, "unstructuredSS_Notify" },
23474 { 17, "registerPassword" },
23475 { 18, "getPassword" },
23476 { 72, "ss_InvocationNotification" },
23477 { 76, "registerCC_Entry" },
23478 { 77, "eraseCC_Entry" },
23480 /* --- Module MAP-CallHandlingOperations --- --- --- */
23482 { 22, "sendRoutingInfo" },
23483 { 4, "provideRoamingNumber" },
23484 { 6, "resumeCallHandling" },
23485 { 73, "setReportingState" },
23486 { 74, "statusReport" },
23487 { 75, "remoteUserFree" },
23488 { 87, "ist_Alert" },
23489 { 88, "ist_Command" },
23490 { 20, "releaseResources" },
23492 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
23494 { 50, "activateTraceMode" },
23495 { 51, "deactivateTraceMode" },
23496 { 58, "sendIMSI" },
23498 /* --- Module MAP-MobileServiceOperations --- --- --- */
23500 { 2, "updateLocation" },
23501 { 3, "cancelLocation" },
23502 { 67, "purgeMS" },
23503 { 55, "sendIdentification" },
23504 { 23, "updateGprsLocation" },
23505 { 70, "provideSubscriberInfo" },
23506 { 71, "anyTimeInterrogation" },
23507 { 62, "anyTimeSubscriptionInterrogation" },
23508 { 65, "anyTimeModification" },
23509 { 5, "noteSubscriberDataModified" },
23510 { 68, "prepareHandover" },
23511 { 29, "sendEndSignal" },
23512 { 33, "processAccessSignalling" },
23513 { 34, "forwardAccessSignalling" },
23514 { 69, "prepareSubsequentHandover" },
23515 { 56, "sendAuthenticationInfo" },
23516 { 15, "authenticationFailureReport" },
23517 { 43, "checkIMEI" },
23518 { 7, "insertSubscriberData" },
23519 { 8, "deleteSubscriberData" },
23520 { 37, "reset" },
23521 { 38, "forwardCheckSS_Indication" },
23522 { 57, "restoreData" },
23523 { 24, "sendRoutingInfoForGprs" },
23524 { 25, "failureReport" },
23525 { 26, "noteMsPresentForGprs" },
23526 { 89, "noteMM_Event" },
23527 { 53, "updateVcsgLocation" },
23528 { 36, "cancelVcsgLocation" },
23530 /* --- Module MAP-Errors --- --- --- */
23532 /* Unknown or empty loop list OPERATION */
23534 /* --- Module MAP-Protocol --- --- --- */
23536 /* Unknown or empty loop list OPERATION */
23538 /* --- Module DummyMAP --- --- --- */
23540 { 9, "sendParameters" },
23542 /* --- Module SS-DataTypes --- --- --- */
23544 /* Unknown or empty loop list OPERATION */
23546 /* --- Module SS-Operations --- --- --- */
23548 { 19, "processUnstructuredSS_Data" },
23549 { 16, "notifySS" },
23550 { 125, "forwardChargeAdvice" },
23551 { 120, "forwardCUG_Info" },
23552 { 124, "buildMPTY" },
23553 { 123, "holdMPTY" },
23554 { 122, "retrieveMPTY" },
23555 { 121, "splitMPTY" },
23556 { 126, "explicitCT" },
23557 { 119, "accessRegisterCCEntry" },
23558 { 117, "callDeflection" },
23559 { 118, "userUserService" },
23560 { 116, "lcs_LocationNotification" },
23561 { 115, "lcs_MOLR" },
23562 { 114, "lcs_AreaEventRequest" },
23563 { 113, "lcs_AreaEventReport" },
23564 { 112, "lcs_AreaEventCancellation" },
23565 { 111, "lcs_PeriodicLocationRequest" },
23566 { 110, "lcs_LocationUpdate" },
23567 { 109, "lcs_PeriodicLocationCancellation" },
23568 { 108, "lcs_PeriodicTriggeredInvoke" },
23569 { 107, "lcs_EventReport" },
23570 { 106, "lcs_CancelDeferredLocation" },
23571 { 105, "lcs_MSCancelDeferredLocation" },
23572 { 104, "lcs_LocationPrivacySetting" },
23573 { 103, "lcs_PruAssociation" },
23574 { 102, "lcs_PruDisassociation" },
23575 { 101, "lcs_SLMOLR" },
23576 { 100, "lcs_SLMTLR" },
23577 { 99, "lcs_DLRSPPTransport" },
23578 { 98, "lcs_ULRSPPTransport" },
23580 /* --- Module EricssonMAP --- --- --- */
23582 /* Unknown or empty loop list OPERATION */
23584 /* --- Module NokiaMAP-Extensions --- --- --- */
23586 /* Unknown or empty loop list OPERATION */
23587 { 0, NULL }
23589 #endif
23592 static const value_string gsm_map_nature_of_number_values[] = {
23593 { 0x00, "unknown" },
23594 { 0x01, "International Number" },
23595 { 0x02, "National Significant Number" },
23596 { 0x03, "Network Specific Number" },
23597 { 0x04, "Subscriber Number" },
23598 { 0x05, "Reserved" },
23599 { 0x06, "Abbreviated Number" },
23600 { 0x07, "Reserved for extension" },
23601 { 0, NULL }
23603 static value_string_ext gsm_map_nature_of_number_values_ext = VALUE_STRING_EXT_INIT(gsm_map_nature_of_number_values);
23605 static const value_string gsm_map_number_plan_values[] = {
23606 { 0x00, "unknown" },
23607 { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
23608 { 0x02, "spare" },
23609 { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
23610 { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
23611 { 0x05, "spare" },
23612 { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
23613 { 0x07, "spare" },
23614 { 0x08, "National Numbering" },
23615 { 0x09, "Private Numbering" },
23616 { 0x0a, "spare" },
23617 { 0x0b, "spare" },
23618 { 0x0c, "spare" },
23619 { 0x0d, "spare" },
23620 { 0x0e, "spare" },
23621 { 0x0f, "Reserved for extension" },
23622 { 0, NULL }
23624 static value_string_ext gsm_map_number_plan_values_ext = VALUE_STRING_EXT_INIT(gsm_map_number_plan_values);
23626 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
23627 "Quiescent",
23628 "Operative"
23630 static const true_false_string gsm_map_Ss_Status_a_values = {
23631 "Active",
23632 "not Active"
23636 * Translate the MAP operation code value to a text string
23637 * Take into account the MAP version for ForwardSM
23639 const char* gsm_map_opr_code(uint32_t val, proto_item *item) {
23640 switch (val) {
23641 case 44: /*mt-forwardSM*/
23642 /* FALLTHRU */
23643 case 46: /*mo-forwardSM*/
23644 if (application_context_version < 3) {
23645 proto_item_set_text(item, "%s (%d)", val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode"), val);
23646 return val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode");
23648 /* Else use the default map operation translation */
23649 /* FALLTHRU */
23650 default:
23651 return val_to_str_ext_const(val, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, "Unknown GSM-MAP opcode");
23655 /* Prototype for a decoding function */
23656 typedef int (* dissect_function_t)( bool,
23657 tvbuff_t *,
23658 int ,
23659 asn1_ctx_t *,
23660 proto_tree *,
23661 int);
23664 * Dissect Multiple Choice Message
23665 * This function is used to decode a message, when several encoding may be used.
23666 * For example, in the last MAP version, the Cancel Location is defined like this:
23667 * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
23668 * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
23669 * As ASN1 encoders (or software) still uses the old encoding, this function allows
23670 * the decoding of both versions.
23671 * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the
23672 * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
23673 * This explain why the function expects 3 parameters:
23674 * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
23675 * - a SEQUENCE for old style
23676 * - and a single parameter, for old version or optimizations
23678 * The analyze of the first ASN1 tag, indicate what kind of decoding should be used,
23679 * if the decoding function is provided (so not a NULL function)
23681 static int dissect_mc_message(tvbuff_t *tvb,
23682 int offset,
23683 asn1_ctx_t *actx,
23684 proto_tree *tree,
23685 bool implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
23686 bool implicit_seq _U_, dissect_function_t sequence, int hf_index_seq _U_,
23687 bool implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
23689 uint8_t octet;
23690 int8_t bug_class;
23691 bool bug_pc, bug_ind_field;
23692 int32_t bug_tag;
23693 uint32_t bug_len;
23695 octet = tvb_get_uint8(tvb,0);
23696 if ( (octet & 0xf) == 3) {
23697 /* XXX asn2wrs can not yet handle tagged assignment yes so this
23698 * XXX is some conformance file magic to work around that bug
23700 offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
23701 offset = get_ber_length(tvb, offset, &bug_len, &bug_ind_field);
23702 if (sequence3 != NULL) {
23703 offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
23704 } else {
23705 proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_sequence3, tvb, offset, -1);
23707 } else if (octet == 0x30) {
23708 if (sequence != NULL) {
23709 offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq);
23710 } else {
23711 proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_sequence, tvb, offset, -1);
23713 } else {
23714 if (parameter != NULL) {
23715 offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
23716 } else {
23717 proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_parameter, tvb, offset, -1);
23720 return offset;
23723 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
23725 switch(opcode){
23726 case 2: /*updateLocation*/
23727 offset=dissect_gsm_map_ms_UpdateLocationArg(false, tvb, offset, actx, tree, -1);
23728 break;
23729 case 3: /*cancelLocation*/
23730 offset=dissect_mc_message(tvb, offset, actx, tree,
23731 false, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
23732 false, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
23733 true , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
23734 break;
23735 case 4: /*provideRoamingNumber*/
23736 offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(false, tvb, offset, actx, tree, -1);
23737 break;
23738 case 5: /*noteSubscriberDataModified*/
23739 offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(false, tvb, offset, actx, tree, -1);
23740 break;
23741 case 6: /*resumeCallHandling*/
23742 offset=dissect_gsm_map_ch_ResumeCallHandlingArg(false, tvb, offset, actx, tree, -1);
23743 break;
23744 case 7: /*insertSubscriberData*/
23745 offset=dissect_gsm_map_ms_InsertSubscriberDataArg(false, tvb, offset, actx, tree, -1);
23746 break;
23747 case 8: /*deleteSubscriberData*/
23748 offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(false, tvb, offset, actx, tree, -1);
23749 break;
23750 case 9: /*sendParameters*/
23751 offset = dissect_gsm_old_SendParametersArg(false, tvb, offset, actx, tree, -1);
23752 break;
23753 case 10: /*registerSS*/
23754 offset=dissect_gsm_map_ss_RegisterSS_Arg(false, tvb, offset, actx, tree, -1);
23755 break;
23756 case 11: /*eraseSS*/
23757 offset=dissect_gsm_map_ss_SS_ForBS_Code(false, tvb, offset, actx, tree, -1);
23758 break;
23759 case 12: /*activateSS*/
23760 offset=dissect_gsm_map_ss_SS_ForBS_Code(false, tvb, offset, actx, tree, -1);
23761 break;
23762 case 13: /*deactivateSS*/
23763 offset=dissect_gsm_map_ss_SS_ForBS_Code(false, tvb, offset, actx, tree, -1);
23764 break;
23765 case 14: /*interrogateSS*/
23766 offset=dissect_gsm_map_ss_SS_ForBS_Code(false, tvb, offset, actx, tree, -1);
23767 break;
23768 case 15: /*authenticationFailureReport*/
23769 offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(false, tvb, offset, actx, tree, -1);
23770 break;
23771 case 16: /*SS-protocol notifySS*/
23772 offset=dissect_gsm_ss_NotifySS_Arg(false, tvb, offset, actx, tree, -1);
23773 break;
23774 case 17: /*registerPassword*/
23775 offset=dissect_gsm_map_SS_Code(false, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
23776 break;
23777 case 18: /*getPassword*/
23778 offset=dissect_gsm_old_GetPasswordArg(false, tvb, offset, actx, tree, hf_gsm_map_getPassword);
23779 break;
23780 case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
23781 offset=dissect_gsm_ss_SS_UserData(false, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
23782 break;
23783 case 20: /*releaseResources*/
23784 offset=dissect_gsm_map_ch_ReleaseResourcesArg(false, tvb, offset, actx, tree, -1);
23785 break;
23786 case 21: /*mt-ForwardSM-VGCS*/
23787 offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(false, tvb, offset, actx, tree, -1);
23788 break;
23789 case 22: /*sendRoutingInfo*/
23790 if (application_context_version == 3){
23791 offset=dissect_gsm_map_ch_SendRoutingInfoArg(false, tvb, offset, actx, tree, -1);
23792 }else{
23793 offset = dissect_gsm_old_SendRoutingInfoArgV2(false, tvb, offset, actx, tree, -1);
23795 break;
23796 case 23: /*updateGprsLocation*/
23797 offset=dissect_gsm_map_ms_UpdateGprsLocationArg(false, tvb, offset, actx, tree, -1);
23798 break;
23799 case 24: /*sendRoutingInfoForGprs*/
23800 offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(false, tvb, offset, actx, tree, -1);
23801 break;
23802 case 25: /*failureReport*/
23803 offset=dissect_gsm_map_ms_FailureReportArg(false, tvb, offset, actx, tree, -1);
23804 break;
23805 case 26: /*noteMsPresentForGprs*/
23806 offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(false, tvb, offset, actx, tree, -1);
23807 break;
23808 /* undefined 27 */
23809 /* reserved performHandover (28) */
23810 case 29: /*sendEndSignal*/
23811 offset=dissect_mc_message(tvb, offset, actx, tree,
23812 false, NULL, -1,
23813 false, dissect_gsm_old_Bss_APDU, -1,
23814 true , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
23815 break;
23816 /* reserved performSubsequentHandover (30) */
23817 case 31: /*provideSIWFSNumber*/
23818 offset=dissect_gsm_old_ProvideSIWFSNumberArg(false, tvb, offset, actx, tree, -1);
23819 break;
23820 case 32: /*sIWFSSignallingModify*/
23821 offset=dissect_gsm_old_SIWFSSignallingModifyArg(false, tvb, offset, actx, tree, -1);
23822 break;
23823 case 33: /*processAccessSignalling*/
23824 offset=dissect_mc_message(tvb, offset, actx, tree,
23825 false, NULL, -1,
23826 false, dissect_gsm_old_Bss_APDU, -1,
23827 true , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
23828 break;
23829 case 34: /*forwardAccessSignalling*/
23830 offset=dissect_mc_message(tvb, offset, actx, tree,
23831 false, NULL, -1,
23832 false, dissect_gsm_old_Bss_APDU, -1,
23833 true , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
23834 break;
23835 /* reserved noteInternalHandover (35) */
23836 case 36: /*cancelVcsgLocation*/
23837 offset=dissect_gsm_map_ms_CancelVcsgLocationArg(false, tvb, offset, actx, tree, -1);
23838 break;
23839 case 37: /*reset*/
23840 if (application_context_version == 1) {
23841 offset = dissect_gsm_old_ResetArgV1(false, tvb, offset, actx, tree, -1);
23842 } else {
23843 offset = dissect_gsm_map_ms_ResetArg(false, tvb, offset, actx, tree, -1);
23845 break;
23846 case 38: /*forwardCheckSS-Indication*/
23847 return offset;
23848 case 39: /*prepareGroupCall*/
23849 offset=dissect_gsm_map_gr_PrepareGroupCallArg(false, tvb, offset, actx, tree, -1);
23850 break;
23851 case 40: /*sendGroupCallEndSignal*/
23852 offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(false, tvb, offset, actx, tree, -1);
23853 break;
23854 case 41: /*processGroupCallSignalling*/
23855 offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(false, tvb, offset, actx, tree, -1);
23856 break;
23857 case 42: /*forwardGroupCallSignalling*/
23858 offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(false, tvb, offset, actx, tree, -1);
23859 break;
23860 case 43: /*checkIMEI*/
23861 if (pref_ericsson_proprietary_ext) {
23862 offset=dissect_mc_message(tvb, offset, actx, tree,
23863 false, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
23864 false, dissect_gsm_map_ericsson_EnhancedCheckIMEI_Arg, -1,
23865 true , NULL, -1); /* no [3] SEQUENCE */
23866 } else {
23867 offset=dissect_mc_message(tvb, offset, actx, tree,
23868 false, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
23869 false, dissect_gsm_map_ms_CheckIMEI_Arg, -1,
23870 true , NULL, -1); /* no [3] SEQUENCE */
23872 break;
23873 case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
23874 if (application_context_version == 3)
23875 offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(false, tvb, offset, actx, tree, -1);
23876 else {
23877 offset=dissect_gsm_old_ForwardSM_Arg(false, tvb, offset, actx, tree, -1);
23879 break;
23880 case 45: /*sendRoutingInfoForSM*/
23881 if (application_context_version < 2) {
23882 offset=dissect_gsm_old_RoutingInfoForSM_ArgV1(false, tvb, offset, actx, tree, -1);
23883 } else {
23884 offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(false, tvb, offset, actx, tree, -1);
23886 break;
23887 case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
23888 if (application_context_version == 3)
23889 offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(false, tvb, offset, actx, tree, -1);
23890 else {
23891 offset=dissect_gsm_old_ForwardSM_Arg(false, tvb, offset, actx, tree, -1);
23893 break;
23894 case 47: /*reportSM-DeliveryStatus*/
23895 offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(false, tvb, offset, actx, tree, -1);
23896 break;
23897 case 48: /*noteSubscriberPresent*/
23898 offset = dissect_gsm_map_IMSI(false, tvb, offset, actx, tree, hf_gsm_map_imsi);
23899 break;
23900 /* reserved alertServiceCentreWithoutResult (49)
23901 * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
23902 * -- alertServiceCentreWithoutResult must not be used in
23903 * -- version greater 1
23905 case 49:
23906 offset = dissect_gsm_map_sm_AlertServiceCentreArg(false, tvb, offset, actx, tree, -1);
23907 break;
23908 case 50: /*activateTraceMode*/
23909 offset=dissect_gsm_map_om_ActivateTraceModeArg(false, tvb, offset, actx, tree, -1);
23910 break;
23911 case 51: /*deactivateTraceMode*/
23912 offset=dissect_gsm_map_om_DeactivateTraceModeArg(false, tvb, offset, actx, tree, -1);
23913 break;
23914 /* reserved traceSubscriberActivity (52) */
23916 case 53: /* UpdateVcsgLocation 53 */
23917 offset=dissect_gsm_map_ms_UpdateVcsgLocationArg(false, tvb, offset, actx, tree, -1);
23918 break;
23919 case 54: /*beginSubscriberActivity*/
23920 offset=dissect_gsm_old_BeginSubscriberActivityArg(false, tvb, offset, actx, tree, -1);
23921 break;
23922 case 55: /*sendIdentification*/
23923 offset=dissect_mc_message(tvb, offset, actx, tree,
23924 false, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
23925 false, dissect_gsm_map_ms_SendIdentificationArg, -1,
23926 true, NULL, -1);
23927 break;
23928 case 56: /*sendAuthenticationInfo*/
23929 offset=dissect_mc_message(tvb, offset, actx, tree,
23930 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
23931 false, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
23932 true, NULL, -1);
23933 break;
23934 case 57: /*restoreData*/
23935 offset=dissect_gsm_map_ms_RestoreDataArg(false, tvb, offset, actx, tree, -1);
23936 break;
23937 case 58: /*sendIMSI*/
23938 offset = dissect_gsm_map_ISDN_AddressString(false, tvb, offset, actx, tree, hf_gsm_map_msisdn);
23939 break;
23940 case 59: /*processUnstructuredSS-Request*/
23941 offset=dissect_gsm_map_ss_USSD_Arg(false, tvb, offset, actx, tree, -1);
23942 break;
23943 case 60: /*unstructuredSS-Request*/
23944 offset=dissect_gsm_map_ss_USSD_Arg(false, tvb, offset, actx, tree, -1);
23945 break;
23946 case 61: /*unstructuredSS-Notify*/
23947 offset=dissect_gsm_map_ss_USSD_Arg(false, tvb, offset, actx, tree, -1);
23948 break;
23949 case 62: /*AnyTimeSubscriptionInterrogation*/
23950 offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(false, tvb, offset, actx, tree, -1);
23951 break;
23952 case 63: /*informServiceCentre*/
23953 offset=dissect_gsm_map_sm_InformServiceCentreArg(false, tvb, offset, actx, tree, -1);
23954 break;
23955 case 64: /*alertServiceCentre*/
23956 offset=dissect_gsm_map_sm_AlertServiceCentreArg(false, tvb, offset, actx, tree, -1);
23957 break;
23958 case 65: /*AnyTimeModification*/
23959 offset=dissect_gsm_map_ms_AnyTimeModificationArg(false, tvb, offset, actx, tree, -1);
23960 break;
23961 case 66: /*readyForSM*/
23962 offset=dissect_gsm_map_sm_ReadyForSM_Arg(false, tvb, offset, actx, tree, -1);
23963 break;
23964 case 67: /*purgeMS*/
23965 offset=dissect_mc_message(tvb, offset, actx, tree,
23966 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
23967 false, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
23968 true , dissect_gsm_map_ms_PurgeMS_Arg, -1);
23969 break;
23970 case 68: /*prepareHandover*/
23971 offset=dissect_mc_message(tvb, offset, actx, tree,
23972 false, NULL, -1,
23973 false, dissect_gsm_old_PrepareHO_ArgOld, -1,
23974 true, dissect_gsm_map_ms_PrepareHO_Arg, -1);
23975 break;
23976 case 69: /*prepareSubsequentHandover*/
23977 offset=dissect_mc_message(tvb, offset, actx, tree,
23978 false, NULL, -1,
23979 false, NULL, -1,
23980 true, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
23981 break;
23982 case 70: /*provideSubscriberInfo*/
23983 offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(false, tvb, offset, actx, tree, -1);
23984 break;
23985 case 71: /*anyTimeInterrogation*/
23986 offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(false, tvb, offset, actx, tree, -1);
23987 break;
23988 case 72: /*ss-InvocationNotification*/
23989 offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(false, tvb, offset, actx, tree, -1);
23990 break;
23991 case 73: /*setReportingState*/
23992 offset=dissect_gsm_map_ch_SetReportingStateArg(false, tvb, offset, actx, tree, -1);
23993 break;
23994 case 74: /*statusReport*/
23995 offset=dissect_gsm_map_ch_StatusReportArg(false, tvb, offset, actx, tree, -1);
23996 break;
23997 case 75: /*remoteUserFree*/
23998 offset=dissect_gsm_map_ch_RemoteUserFreeArg(false, tvb, offset, actx, tree, -1);
23999 break;
24000 case 76: /*registerCC-Entry*/
24001 offset=dissect_gsm_map_ss_RegisterCC_EntryArg(false, tvb, offset, actx, tree, -1);
24002 break;
24003 case 77: /*eraseCC-Entry*/
24004 offset=dissect_gsm_map_ss_EraseCC_EntryArg(false, tvb, offset, actx, tree, -1);
24005 break;
24006 case 78: /*secureTransportClass1*/
24007 case 79: /*secureTransportClass1*/
24008 case 80: /*secureTransportClass1*/
24009 case 81: /*secureTransportClass1*/
24010 offset=dissect_gsm_old_SecureTransportArg(false, tvb, offset, actx, tree, -1);
24011 break;
24012 /* undefined 82 */
24013 case 83: /*provideSubscriberLocation*/
24014 offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(false, tvb, offset, actx, tree, -1);
24015 break;
24016 case 84: /*sendGroupCallInfo*/
24017 offset=dissect_gsm_map_gr_SendGroupCallInfoArg(false, tvb, offset, actx, tree, -1);
24018 break;
24019 case 85: /*sendRoutingInfoForLCS*/
24020 offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(false, tvb, offset, actx, tree, -1);
24021 break;
24022 case 86: /*subscriberLocationReport*/
24023 offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(false, tvb, offset, actx, tree, -1);
24024 break;
24025 case 87: /*ist-Alert*/
24026 offset=dissect_gsm_map_ch_IST_AlertArg(false, tvb, offset, actx, tree, -1);
24027 break;
24028 case 88: /*ist-Command*/
24029 offset=dissect_gsm_map_ch_IST_CommandArg(false, tvb, offset, actx, tree, -1);
24030 break;
24031 case 89: /*noteMM-Event*/
24032 offset=dissect_gsm_map_ms_NoteMM_EventArg(false, tvb, offset, actx, tree, -1);
24033 break;
24034 case 108: /*SS-protocol lcs-PeriodicTriggeredInvoke*/
24035 offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeArg(false, tvb, offset, actx, tree, -1);
24036 break;
24037 case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
24038 offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(false, tvb, offset, actx, tree, -1);
24039 break;
24040 case 110: /*SS-protocol lcs-LocationUpdate*/
24041 offset=dissect_gsm_ss_LCS_LocationUpdateArg(false, tvb, offset, actx, tree, -1);
24042 break;
24043 case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
24044 offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(false, tvb, offset, actx, tree, -1);
24045 break;
24046 case 112: /*SS-protocol lcs-AreaEventCancellation*/
24047 offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(false, tvb, offset, actx, tree, -1);
24048 break;
24049 case 113: /*SS-protocol lcs-AreaEventReport*/
24050 offset=dissect_gsm_ss_LCS_AreaEventReportArg(false, tvb, offset, actx, tree, -1);
24051 break;
24052 case 114: /*SS-protocol lcs-AreaEventRequest*/
24053 offset=dissect_gsm_ss_LCS_AreaEventRequestArg(false, tvb, offset, actx, tree, -1);
24054 break;
24055 case 115: /*SS-protocol lcs-MOLR*/
24056 offset=dissect_gsm_ss_LCS_MOLRArg(false, tvb, offset, actx, tree, -1);
24057 break;
24058 case 116: /*SS-protocol lcs-LocationNotification*/
24059 offset=dissect_gsm_ss_LocationNotificationArg(false, tvb, offset, actx, tree, -1);
24060 break;
24061 case 117: /*SS-protocol callDeflection*/
24062 offset=dissect_gsm_ss_CallDeflectionArg(false, tvb, offset, actx, tree, -1);
24063 break;
24064 case 118: /*SS-protocol userUserService*/
24065 offset=dissect_gsm_ss_UserUserServiceArg(false, tvb, offset, actx, tree, -1);
24066 break;
24067 case 119: /*SS-protocol accessRegisterCCEntry*/
24068 offset=dissect_gsm_ss_AccessRegisterCCEntryArg(false, tvb, offset, actx, tree, -1);
24069 break;
24070 case 120: /*SS-protocol forwardCUG-Info*/
24071 application_context_version = 3;
24072 offset=dissect_gsm_ss_ForwardCUG_InfoArg(false, tvb, offset, actx, tree, -1);
24073 break;
24074 case 121: /*SS-protocol splitMPTY no Argument*/
24075 break;
24076 case 122: /*SS-protocol retrieveMPTY no Argument*/
24077 break;
24078 case 123: /*SS-protocol holdMPTY no Argument*/
24079 break;
24080 case 124: /*SS-protocol buildMPTY no Argument*/
24081 break;
24082 case 125: /*SS-protocol forwardChargeAdvice*/
24083 offset=dissect_gsm_ss_ForwardChargeAdviceArg(false, tvb, offset, actx, tree, -1);
24084 break;
24085 case 126: /*SS-protocol explicitCT no Argument*/
24086 break;
24087 default:
24088 if(!dissector_try_uint_with_data(map_prop_arg_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
24089 proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
24090 tvb, offset, -1, "Unknown invokeData %d", opcode);
24092 offset+= tvb_reported_length_remaining(tvb,offset);
24093 break;
24095 return offset;
24099 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
24101 switch(opcode){
24102 case 2: /*updateLocation*/
24103 offset=dissect_mc_message(tvb, offset, actx, tree,
24104 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
24105 false, dissect_gsm_map_ms_UpdateLocationRes, -1,
24106 true , NULL, -1);
24107 break;
24108 case 3: /*cancelLocation*/
24109 offset=dissect_gsm_map_ms_CancelLocationRes(false, tvb, offset, actx, tree, -1);
24110 break;
24111 case 4: /*provideRoamingNumber*/
24112 offset=dissect_mc_message(tvb, offset, actx, tree,
24113 false, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_msisdn,
24114 false, dissect_gsm_map_ch_ProvideRoamingNumberRes, -1,
24115 true , NULL, -1);/*undefined*/
24116 break;
24117 case 5: /*noteSubscriberDataModified*/
24118 offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(false, tvb, offset, actx, tree, -1);
24119 break;
24120 case 6: /*resumeCallHandling*/
24121 offset=dissect_gsm_map_ch_ResumeCallHandlingRes(false, tvb, offset, actx, tree, -1);
24122 break;
24123 case 7: /*insertSubscriberData*/
24124 offset=dissect_gsm_map_ms_InsertSubscriberDataRes(false, tvb, offset, actx, tree, -1);
24125 break;
24126 case 8: /*deleteSubscriberData*/
24127 offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(false, tvb, offset, actx, tree, -1);
24128 break;
24129 case 9: /*sendParameters*/
24130 offset = dissect_gsm_old_SentParameterList(false, tvb, offset, actx, tree, -1);
24131 break;
24132 case 10: /*registerSS*/
24133 offset=dissect_gsm_map_ss_SS_Info(false, tvb, offset, actx, tree, -1);
24134 break;
24135 case 11: /*eraseSS*/
24136 offset=dissect_gsm_map_ss_SS_Info(false, tvb, offset, actx, tree, -1);
24137 break;
24138 case 12: /*activateSS*/
24139 offset=dissect_gsm_map_ss_SS_Info(false, tvb, offset, actx, tree, -1);
24140 break;
24141 case 13: /*deactivateSS*/
24142 offset=dissect_gsm_map_ss_SS_Info(false, tvb, offset, actx, tree, -1);
24143 break;
24144 case 14: /*interrogateSS*/
24145 offset=dissect_gsm_map_ss_InterrogateSS_Res(false, tvb, offset, actx, tree, -1);
24146 break;
24147 case 15: /*authenticationFailureReport*/
24148 offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(false, tvb, offset, actx, tree, -1);
24149 break;
24150 case 17: /*registerPassword*/
24151 /* change hf_gsm_map_ss_Code to something with password */
24152 offset=dissect_gsm_old_NewPassword(false, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
24153 break;
24154 case 18: /*getPassword*/
24155 offset=dissect_gsm_old_CurrentPassword(false, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
24156 break;
24157 case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
24158 offset=dissect_gsm_ss_SS_UserData(false, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
24159 break;
24160 case 20: /*releaseResources*/
24161 offset=dissect_gsm_map_ch_ReleaseResourcesRes(false, tvb, offset, actx, tree, -1);
24162 break;
24163 case 21: /*mt-ForwardSM-VGCS*/
24164 offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(false, tvb, offset, actx, tree, -1);
24165 break;
24166 case 22: /*sendRoutingInfo*/
24167 if (application_context_version == 3){
24168 /* If the tag is missing use SendRoutingInfoRes_U */
24169 offset=dissect_mc_message(tvb, offset, actx, tree,
24170 false, NULL, -1,
24171 false, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1,
24172 true , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
24173 }else{
24174 offset=dissect_mc_message(tvb, offset, actx, tree,
24175 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
24176 false, dissect_gsm_old_SendRoutingInfoResV2, -1,
24177 true , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
24179 break;
24180 case 23: /*updateGprsLocation*/
24181 offset=dissect_gsm_map_ms_UpdateGprsLocationRes(false, tvb, offset, actx, tree, -1);
24182 break;
24183 case 24: /*sendRoutingInfoForGprs*/
24184 offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(false, tvb, offset, actx, tree, -1);
24185 break;
24186 case 25: /*failureReport*/
24187 offset=dissect_gsm_map_ms_FailureReportRes(false, tvb, offset, actx, tree, -1);
24188 break;
24189 case 26: /*noteMsPresentForGprs*/
24190 offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(false, tvb, offset, actx, tree, -1);
24191 break;
24192 case 29: /*sendEndSignal*/
24193 /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
24194 * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
24196 offset=dissect_gsm_map_ms_SendEndSignal_Res(false, tvb, offset, actx, tree, -1);
24197 break;
24198 case 31: /*provideSIWFSNumber*/
24199 offset=dissect_gsm_old_ProvideSIWFSNumberRes(false, tvb, offset, actx, tree, -1);
24200 break;
24201 case 32: /*provideSIWFSSignallingModify*/
24202 offset=dissect_gsm_old_SIWFSSignallingModifyRes(false, tvb, offset, actx, tree, -1);
24203 break;
24204 case 36: /*cancelVcsgLocation*/
24205 offset=dissect_gsm_map_ms_CancelVcsgLocationRes(false, tvb, offset, actx, tree, -1);
24206 break;
24207 case 39: /*prepareGroupCall*/
24208 offset=dissect_gsm_map_gr_PrepareGroupCallRes(false, tvb, offset, actx, tree, -1);
24209 break;
24210 case 40: /*sendGroupCallEndSignal*/
24211 offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(false, tvb, offset, actx, tree, -1);
24212 break;
24213 case 43: /*checkIMEI*/
24214 offset=dissect_mc_message(tvb, offset, actx, tree,
24215 false, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
24216 false, dissect_gsm_map_ms_CheckIMEI_Res, -1,
24217 true, NULL, -1);
24218 break;
24219 case 44: /*mt-forwardSM*/
24220 offset=dissect_gsm_map_sm_MT_ForwardSM_Res(false, tvb, offset, actx, tree, -1);
24221 break;
24222 case 45: /*sendRoutingInfoForSM*/
24223 if (application_context_version < 3) {
24224 offset=dissect_gsm_old_RoutingInfoForSM_ResV2(false, tvb, offset, actx, tree, -1);
24225 } else {
24226 offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(false, tvb, offset, actx, tree, -1);
24228 break;
24229 case 46: /*mo-forwardSM*/
24230 offset=dissect_gsm_map_sm_MO_ForwardSM_Res(false, tvb, offset, actx, tree, -1);
24231 break;
24232 case 47: /*reportSM-DeliveryStatus*/
24233 offset=dissect_mc_message(tvb, offset, actx, tree,
24234 false, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_sm_storedMSISDN,
24235 false, dissect_gsm_map_sm_ReportSM_DeliveryStatusRes, -1,
24236 false, NULL, -1);/*undefined*/
24237 break;
24238 case 48: /*noteSubscriberPresent*/
24239 break;
24240 case 50: /*activateTraceMode*/
24241 offset=dissect_gsm_map_om_ActivateTraceModeRes(false, tvb, offset, actx, tree, -1);
24242 break;
24243 case 51: /*deactivateTraceMode*/
24244 offset=dissect_gsm_map_om_DeactivateTraceModeRes(false, tvb, offset, actx, tree, -1);
24245 break;
24246 case 53: /* UpdateVcsgLocation 53 */
24247 offset=dissect_gsm_map_ms_UpdateVcsgLocationRes(false, tvb, offset, actx, tree, -1);
24248 break;
24249 case 55: /*sendIdentification */
24250 offset=dissect_mc_message(tvb, offset, actx, tree,
24251 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
24252 false, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
24253 true, dissect_gsm_map_ms_SendIdentificationRes, -1);
24254 break;
24255 case 56: /*sendAuthenticationInfo*/
24256 offset=dissect_mc_message(tvb, offset, actx, tree,
24257 false, NULL, -1,
24258 false, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
24259 true , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
24260 break;
24261 case 57: /*restoreData*/
24262 offset=dissect_gsm_map_ms_RestoreDataRes(false, tvb, offset, actx, tree, -1);
24263 break;
24264 case 58: /*sendIMSI*/
24265 offset=dissect_gsm_map_IMSI(false, tvb, offset, actx, tree, hf_gsm_map_ms_imsi);
24266 break;
24267 case 59: /*unstructuredSS-Request*/
24268 offset=dissect_gsm_map_ss_USSD_Res(false, tvb, offset, actx, tree, -1);
24269 break;
24270 case 60: /*unstructuredSS-Request*/
24271 offset=dissect_gsm_map_ss_USSD_Res(false, tvb, offset, actx, tree, -1);
24272 break;
24273 case 61: /*unstructuredSS-Notify*/
24274 /* true ? */
24275 proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData, tvb, offset, -1, "Unknown returnResultData blob");
24276 break;
24277 case 62: /*AnyTimeSubscriptionInterrogation*/
24278 offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(false, tvb, offset, actx, tree, -1);
24279 break;
24280 case 64: /*alertServiceCentre*/
24281 /* true */
24282 break;
24283 case 65: /*AnyTimeModification*/
24284 offset=dissect_gsm_map_ms_AnyTimeModificationRes(false, tvb, offset, actx, tree, -1);
24285 break;
24286 case 66: /*readyForSM*/
24287 offset=dissect_gsm_map_sm_ReadyForSM_Res(false, tvb, offset, actx, tree, -1);
24288 break;
24289 case 67: /*purgeMS*/
24290 offset=dissect_gsm_map_ms_PurgeMS_Res(false, tvb, offset, actx, tree, -1);
24291 break;
24292 case 68: /*prepareHandover*/
24293 offset=dissect_mc_message(tvb, offset, actx, tree,
24294 false, NULL, -1,
24295 false, dissect_gsm_old_PrepareHO_ResOld, -1,
24296 true , dissect_gsm_map_ms_PrepareHO_Res, -1);
24297 break;
24298 case 69: /*prepareSubsequentHandover*/
24299 offset=dissect_mc_message(tvb, offset, actx, tree,
24300 false, NULL, -1,
24301 false, NULL, -1,
24302 true , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
24303 break;
24304 case 70: /*provideSubscriberInfo*/
24305 offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(false, tvb, offset, actx, tree, -1);
24306 break;
24307 case 71: /*anyTimeInterrogation*/
24308 offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(false, tvb, offset, actx, tree, -1);
24309 break;
24310 case 72: /*ss-InvocationNotification*/
24311 offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(false, tvb, offset, actx, tree, -1);
24312 break;
24313 case 73: /*setReportingState*/
24314 offset=dissect_gsm_map_ch_SetReportingStateRes(false, tvb, offset, actx, tree, -1);
24315 break;
24316 case 74: /*statusReport*/
24317 offset=dissect_gsm_map_ch_StatusReportRes(false, tvb, offset, actx, tree, -1);
24318 break;
24319 case 75: /*remoteUserFree*/
24320 offset=dissect_gsm_map_ch_RemoteUserFreeRes(false, tvb, offset, actx, tree, -1);
24321 break;
24322 case 76: /*registerCC-Entry*/
24323 offset=dissect_gsm_map_ss_RegisterCC_EntryRes(false, tvb, offset, actx, tree, -1);
24324 break;
24325 case 77: /*eraseCC-Entry*/
24326 offset=dissect_gsm_map_ss_EraseCC_EntryRes(false, tvb, offset, actx, tree, -1);
24327 break;
24328 case 78: /*secureTransportClass1*/
24329 case 79: /*secureTransportClass2*/
24330 case 80: /*secureTransportClass3*/
24331 case 81: /*secureTransportClass4*/
24332 offset=dissect_gsm_old_SecureTransportRes(false, tvb, offset, actx, tree, -1);
24333 break;
24334 case 83: /*provideSubscriberLocation*/
24335 offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(false, tvb, offset, actx, tree, -1);
24336 break;
24337 case 84: /*sendGroupCallInfo*/
24338 offset=dissect_gsm_map_gr_SendGroupCallInfoRes(false, tvb, offset, actx, tree, -1);
24339 break;
24340 case 85: /*sendRoutingInfoForLCS*/
24341 offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(false, tvb, offset, actx, tree, -1);
24342 break;
24343 case 86: /*subscriberLocationReport*/
24344 offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(false, tvb, offset, actx, tree, -1);
24345 break;
24346 case 87: /*ist-Alert*/
24347 offset=dissect_gsm_map_ch_IST_AlertRes(false, tvb, offset, actx, tree, -1);
24348 break;
24349 case 88: /*ist-Command*/
24350 offset=dissect_gsm_map_ch_IST_CommandRes(false, tvb, offset, actx, tree, -1);
24351 break;
24352 case 89: /*noteMM-Event*/
24353 offset=dissect_gsm_map_ms_NoteMM_EventRes(false, tvb, offset, actx, tree, -1);
24354 break;
24355 case 108: /*SS-protocol LCS-PeriodicTriggeredInvokeRes*/
24356 offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeRes(false, tvb, offset, actx, tree, -1);
24357 break;
24358 case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
24359 /* No parameter */
24360 break;
24361 case 110: /*SS-protocol lcs-LocationUpdate*/
24362 offset=dissect_gsm_ss_LCS_LocationUpdateRes(false, tvb, offset, actx, tree, -1);
24363 break;
24364 case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
24365 offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(false, tvb, offset, actx, tree, -1);
24366 break;
24367 case 112: /*SS-protocol lcs-AreaEventCancellation*/
24368 break;
24369 case 113: /*SS-protocol lcs-AreaEventReport*/
24370 break;
24371 case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/
24372 break;
24373 case 115: /*SS-protocol lcs-MOLR*/
24374 offset=dissect_gsm_ss_LCS_MOLRRes(false, tvb, offset, actx, tree, -1);
24375 break;
24376 case 116: /*SS-protocol lcs-LocationNotification*/
24377 offset=dissect_gsm_ss_LocationNotificationRes(false, tvb, offset, actx, tree, -1);
24378 break;
24379 case 117: /*SS-protocol callDeflection no RESULT*/
24380 break;
24381 case 118: /*SS-protocol userUserService no RESULT*/
24382 break;
24383 case 119: /*SS-protocol accessRegisterCCEntry*/
24384 offset=dissect_gsm_map_ss_RegisterCC_EntryRes(false, tvb, offset, actx, tree, -1);
24385 break;
24386 case 120: /*SS-protocol forwardCUG-Info*/
24387 /* No RETURN RESULT*/
24388 break;
24389 case 121: /*SS-protocol splitMPTY no RESULT*/
24390 break;
24391 case 122: /*SS-protocol retrieveMPTY no RESULT*/
24392 break;
24393 case 123: /*SS-protocol holdMPTY no RESULT*/
24394 break;
24395 case 124: /*SS-protocol buildMPTY no RESULT*/
24396 break;
24397 case 125: /*SS-protocol forwardChargeAdvice no RESULT*/
24398 break;
24399 case 126: /*SS-protocol explicitCT no RESULT*/
24400 break;
24402 default:
24403 if(!dissector_try_uint_with_data(map_prop_res_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
24404 proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
24405 tvb, offset, -1, "Unknown returnResultData %d", opcode);
24407 offset+= tvb_reported_length_remaining(tvb,offset);
24408 break;
24410 return offset;
24415 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
24417 switch(errorCode){
24418 case 1: /* UnknownSubscriberParam */
24419 offset=dissect_gsm_map_er_UnknownSubscriberParam(false, tvb, offset, actx, tree, -1);
24420 break;
24421 case 4: /* SecureTransportErrorParam */
24422 offset=dissect_gsm_old_SecureTransportErrorParam(false, tvb, offset, actx, tree, -1);
24423 break;
24424 case 5: /* UnidentifiedSubParam */
24425 offset=dissect_gsm_map_er_UnidentifiedSubParam(false, tvb, offset, actx, tree, -1);
24426 break;
24427 case 6: /* AbsentSubscriberSM-Param */
24428 offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(false, tvb, offset, actx, tree, -1);
24429 break;
24430 case 8: /* RoamingNotAllowedParam */
24431 offset=dissect_gsm_map_er_RoamingNotAllowedParam(false, tvb, offset, actx, tree, -1);
24432 break;
24433 case 9: /* IllegalSubscriberParam */
24434 offset=dissect_gsm_map_er_IllegalSubscriberParam(false, tvb, offset, actx, tree, -1);
24435 break;
24436 case 10: /* BearerServNotProvParam */
24437 offset=dissect_gsm_map_er_BearerServNotProvParam(false, tvb, offset, actx, tree, -1);
24438 break;
24439 case 11: /* TeleservNotProvParam */
24440 offset=dissect_gsm_map_er_TeleservNotProvParam(false, tvb, offset, actx, tree, -1);
24441 break;
24442 case 12: /* IllegalEquipmentParam */
24443 offset=dissect_gsm_map_er_IllegalEquipmentParam(false, tvb, offset, actx, tree, -1);
24444 break;
24445 case 13: /* CallBarredParam */
24446 offset=dissect_gsm_map_er_CallBarredParam(false, tvb, offset, actx, tree, -1);
24447 break;
24448 case 14: /* ForwardingViolationParam */
24449 offset=dissect_gsm_map_er_ForwardingViolationParam(false, tvb, offset, actx, tree, -1);
24450 break;
24451 case 15: /* CUG-RejectParam */
24452 offset=dissect_gsm_map_er_CUG_RejectParam(false, tvb, offset, actx, tree, -1);
24453 break;
24454 case 16: /* IllegalSS-OperationParam */
24455 offset=dissect_gsm_map_er_IllegalSS_OperationParam(false, tvb, offset, actx, tree, -1);
24456 break;
24457 case 17: /* SS-ErrorStatus */
24458 offset=dissect_gsm_map_ss_SS_Status(false, tvb, offset, actx, tree, hf_gsm_map_ss_ss_Status);
24459 break;
24460 case 18: /* SS-NotAvailableParam */
24461 offset=dissect_gsm_map_er_SS_NotAvailableParam(false, tvb, offset, actx, tree, -1);
24462 break;
24463 case 19: /* SS-SubscriptionViolationParam */
24464 offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(false, tvb, offset, actx, tree, -1);
24465 break;
24466 case 20: /* SS-IncompatibilityCause */
24467 offset=dissect_gsm_map_er_SS_IncompatibilityCause(false, tvb, offset, actx, tree, -1);
24468 break;
24469 case 21: /* FacilityNotSupParam */
24470 offset=dissect_gsm_map_er_FacilityNotSupParam(false, tvb, offset, actx, tree, -1);
24471 break;
24472 case 22: /* OngoingGroupCallParam */
24473 offset=dissect_gsm_map_er_OngoingGroupCallParam(false, tvb, offset, actx, tree, -1);
24474 break;
24475 case 27: /* AbsentSubscriberParam */
24476 offset=dissect_gsm_map_er_AbsentSubscriberParam(false, tvb, offset, actx, tree, -1);
24477 break;
24478 case 28: /* IncompatibleTerminalParam */
24479 offset=dissect_gsm_map_er_IncompatibleTerminalParam(false, tvb, offset, actx, tree, -1);
24480 break;
24481 case 29: /* ShortTermDenialParam */
24482 offset=dissect_gsm_map_er_ShortTermDenialParam(false, tvb, offset, actx, tree, -1);
24483 break;
24484 case 30: /* LongTermDenialParam */
24485 offset=dissect_gsm_map_er_LongTermDenialParam(false, tvb, offset, actx, tree, -1);
24486 break;
24487 case 31: /* SubBusyForMT-SMS-Param */
24488 offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(false, tvb, offset, actx, tree, -1);
24489 break;
24490 case 32: /* SM-DeliveryFailureCause */
24491 offset = dissect_mc_message(tvb, offset, actx, tree,
24492 false, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause, hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
24493 false, dissect_gsm_map_er_SM_DeliveryFailureCause, -1,
24494 false, NULL, -1);
24496 break;
24497 case 33: /* MessageWaitListFullParam */
24498 offset=dissect_gsm_map_er_MessageWaitListFullParam(false, tvb, offset, actx, tree, -1);
24499 break;
24500 case 34: /* SystemFailureParam */
24501 offset=dissect_gsm_map_er_SystemFailureParam(false, tvb, offset, actx, tree, -1);
24502 break;
24503 case 35: /* DataMissingParam */
24504 offset=dissect_gsm_map_er_DataMissingParam(false, tvb, offset, actx, tree, -1);
24505 break;
24506 case 36: /* UnexpectedDataParam */
24507 offset=dissect_gsm_map_er_UnexpectedDataParam(false, tvb, offset, actx, tree, -1);
24508 break;
24509 case 37: /* PW-RegistrationFailureCause */
24510 offset=dissect_gsm_map_er_PW_RegistrationFailureCause(false, tvb, offset, actx, tree, -1);
24511 break;
24512 case 39: /* NoRoamingNbParam */
24513 offset=dissect_gsm_map_er_NoRoamingNbParam(false, tvb, offset, actx, tree, -1);
24514 break;
24515 case 40: /* TracingBufferFullParam */
24516 offset=dissect_gsm_map_er_TracingBufferFullParam(false, tvb, offset, actx, tree, -1);
24517 break;
24518 case 42: /* TargetCellOutsideGCA-Param */
24519 offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(false, tvb, offset, actx, tree, -1);
24520 break;
24521 case 44: /* NumberChangedParam */
24522 offset=dissect_gsm_map_er_NumberChangedParam(false, tvb, offset, actx, tree, -1);
24523 break;
24524 case 45: /* BusySubscriberParam */
24525 offset=dissect_gsm_map_er_BusySubscriberParam(false, tvb, offset, actx, tree, -1);
24526 break;
24527 case 46: /* NoSubscriberReplyParam */
24528 offset=dissect_gsm_map_er_NoSubscriberReplyParam(false, tvb, offset, actx, tree, -1);
24529 break;
24530 case 47: /* ForwardingFailedParam */
24531 offset=dissect_gsm_map_er_ForwardingFailedParam(false, tvb, offset, actx, tree, -1);
24532 break;
24533 case 48: /* OR-NotAllowedParam */
24534 offset=dissect_gsm_map_er_OR_NotAllowedParam(false, tvb, offset, actx, tree, -1);
24535 break;
24536 case 49: /* ATI-NotAllowedParam */
24537 offset=dissect_gsm_map_er_ATI_NotAllowedParam(false, tvb, offset, actx, tree, -1);
24538 break;
24539 case 50: /* NoGroupCallNbParam */
24540 offset=dissect_gsm_map_er_NoGroupCallNbParam(false, tvb, offset, actx, tree, -1);
24541 break;
24542 case 51: /* ResourceLimitationParam */
24543 offset=dissect_gsm_map_er_ResourceLimitationParam(false, tvb, offset, actx, tree, -1);
24544 break;
24545 case 52: /* UnauthorizedRequestingNetwork-Param */
24546 offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(false, tvb, offset, actx, tree, -1);
24547 break;
24548 case 53: /* UnauthorizedLCSClient-Param */
24549 offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(false, tvb, offset, actx, tree, -1);
24550 break;
24551 case 54: /* PositionMethodFailure-Param */
24552 offset=dissect_gsm_map_er_PositionMethodFailure_Param(false, tvb, offset, actx, tree, -1);
24553 break;
24554 case 58: /* UnknownOrUnreachableLCSClient-Param */
24555 offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(false, tvb, offset, actx, tree, -1);
24556 break;
24557 case 59: /* MM-EventNotSupported-Param */
24558 offset=dissect_gsm_map_er_MM_EventNotSupported_Param(false, tvb, offset, actx, tree, -1);
24559 break;
24560 case 60: /* ATSI-NotAllowedParam */
24561 offset=dissect_gsm_map_er_ATSI_NotAllowedParam(false, tvb, offset, actx, tree, -1);
24562 break;
24563 case 61: /* ATM-NotAllowedParam */
24564 offset=dissect_gsm_map_er_ATM_NotAllowedParam(false, tvb, offset, actx, tree, -1);
24565 break;
24566 case 62: /* InformationNotAvailableParam */
24567 offset=dissect_gsm_map_er_InformationNotAvailableParam(false, tvb, offset, actx, tree, -1);
24568 break;
24569 default:
24570 if(!dissector_try_uint_with_data(map_prop_err_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
24571 proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
24572 tvb, offset, -1, "Unknown returnErrorData %d", opcode);
24574 offset+= tvb_reported_length_remaining(tvb,offset);
24575 break;
24577 return offset;
24580 /* Private extension container for PLMN Data */
24581 static int dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24582 proto_tree *tree;
24583 asn1_ctx_t asn1_ctx;
24584 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24585 /* create display subtree for the protocol */
24586 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_old_PlmnContainer_U, NULL, "MAP Ext. Plmn Container");
24588 return dissect_gsm_old_PlmnContainer(false, tvb, 0, &asn1_ctx, tree, -1);
24591 static int dissect_gsm_map_ericsson_ext_ExtensionType(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24592 proto_tree *tree;
24593 asn1_ctx_t asn1_ctx;
24594 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24595 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_map_ericsson_ExtensionType, NULL, "Ericsson Extension");
24596 return dissect_gsm_map_ericsson_ExtensionType(false, tvb, 0, &asn1_ctx, tree, -1);
24599 static int dissect_NokiaMAP_ext_SriResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24600 proto_tree *tree;
24601 asn1_ctx_t asn1_ctx;
24602 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24603 /* create display subtree for the protocol */
24604 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriResExtension_U, NULL, "Nokia Extension");
24605 return dissect_NokiaMAP_Extensions_SriResExtension(false, tvb, 0, &asn1_ctx, tree, -1);
24608 static int dissect_NokiaMAP_ext_CanLocArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24609 proto_tree *tree;
24610 asn1_ctx_t asn1_ctx;
24611 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24612 /* create display subtree for the protocol */
24613 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_CanLocArgExt_U, NULL, "Nokia Extension");
24615 return dissect_NokiaMAP_Extensions_CanLocArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
24618 static int dissect_NokiaMAP_ext_ATMargExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24619 proto_tree *tree;
24620 asn1_ctx_t asn1_ctx;
24621 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24622 /* create display subtree for the protocol */
24623 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ATMargExt_U, NULL, "Nokia Extension");
24625 return dissect_NokiaMAP_Extensions_ATMargExt(false, tvb, 0, &asn1_ctx, tree, -1);
24628 static int dissect_NokiaMAP_ext_DTMargExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24629 proto_tree *tree;
24630 asn1_ctx_t asn1_ctx;
24631 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24632 /* create display subtree for the protocol */
24633 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_DTMargExt_U, NULL, "Nokia Extension");
24635 return dissect_NokiaMAP_Extensions_DTMargExt(false, tvb, 0, &asn1_ctx, tree, -1);
24638 static int dissect_NokiaMAP_ext_NumberPorted(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24639 asn1_ctx_t asn1_ctx;
24640 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24642 return dissect_NokiaMAP_Extensions_NumberPorted(false, tvb, 0, &asn1_ctx, parent_tree, -1);
24645 static int dissect_NokiaMAP_ext_ATMresExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24646 proto_tree *tree;
24647 asn1_ctx_t asn1_ctx;
24648 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24649 /* create display subtree for the protocol */
24650 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ATMresExt_U, NULL, "Nokia Extension");
24652 return dissect_NokiaMAP_Extensions_ATMresExt(false, tvb, 0, &asn1_ctx, tree, -1);
24655 static int dissect_NokiaMAP_ext_AbsentSubscriberExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24656 asn1_ctx_t asn1_ctx;
24658 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24659 return dissect_NokiaMAP_Extensions_AbsentSubscriberExt(false, tvb, 0, &asn1_ctx, parent_tree, -1);
24662 static int dissect_NokiaMAP_ext_SriForSMArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24663 proto_tree *tree;
24664 asn1_ctx_t asn1_ctx;
24665 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24666 /* create display subtree for the protocol */
24667 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriForSMArgExt_U, NULL, "Nokia Extension");
24669 return dissect_NokiaMAP_Extensions_SriForSMArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
24672 static int dissect_NokiaMAP_ext_ReportSMDelStatArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24673 proto_tree *tree;
24674 asn1_ctx_t asn1_ctx;
24675 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24676 /* create display subtree for the protocol */
24677 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U, NULL, "Nokia Extension");
24679 return dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
24682 static int dissect_NokiaMAP_ext_UdlArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24683 proto_tree *tree;
24684 asn1_ctx_t asn1_ctx;
24685 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24686 /* create display subtree for the protocol */
24687 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_UdlArgExt_U, NULL, "Nokia Extension");
24689 return dissect_NokiaMAP_Extensions_UdlArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
24692 static int dissect_NokiaMAP_ext_RoamNotAllowedExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24693 proto_tree *tree;
24694 asn1_ctx_t asn1_ctx;
24695 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24696 /* create display subtree for the protocol */
24697 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_RoamNotAllowedExt_U, NULL, "Nokia Extension");
24699 return dissect_NokiaMAP_Extensions_RoamNotAllowedExt(false, tvb, 0, &asn1_ctx, tree, -1);
24702 static int dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24703 proto_tree *tree;
24704 asn1_ctx_t asn1_ctx;
24705 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24706 /* create display subtree for the protocol */
24707 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U, NULL, "Nokia Extension");
24709 return dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
24712 static int dissect_NokiaMAP_ext_ErrOlcmInfoTableExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24713 proto_tree *tree;
24714 asn1_ctx_t asn1_ctx;
24715 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24716 /* create display subtree for the protocol */
24717 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U, NULL, "Nokia Extension");
24719 return dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt(false, tvb, 0, &asn1_ctx, tree, -1);
24722 static int dissect_NokiaMAP_ext_RoutingCategoryExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24723 proto_tree *tree;
24724 asn1_ctx_t asn1_ctx;
24725 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24726 /* create display subtree for the protocol */
24727 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_RoutingCategoryExt_U, NULL, "Nokia Extension");
24729 return dissect_NokiaMAP_Extensions_RoutingCategoryExt(false, tvb, 0, &asn1_ctx, tree, -1);
24732 static int dissect_NokiaMAP_ext_AnyTimeModArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24733 proto_tree *tree;
24734 asn1_ctx_t asn1_ctx;
24735 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24736 /* create display subtree for the protocol */
24737 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_AnyTimeModArgExt_U, NULL, "Nokia Extension");
24739 return dissect_NokiaMAP_Extensions_AnyTimeModArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
24742 static int dissect_NokiaMAP_ext_AccessTypeExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24743 asn1_ctx_t asn1_ctx;
24744 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24745 /* create display subtree for the protocol */
24746 return dissect_NokiaMAP_Extensions_AccessTypeExt(false, tvb, 0, &asn1_ctx, parent_tree, -1);
24749 static int dissect_NokiaMAP_ext_AccessSubscriptionListExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24750 asn1_ctx_t asn1_ctx;
24751 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24752 /* create display subtree for the protocol */
24753 return dissect_NokiaMAP_Extensions_AccessSubscriptionListExt(false, tvb, 0, &asn1_ctx, parent_tree, -1);
24756 static int dissect_NokiaMAP_ext_AllowedServiceData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24757 asn1_ctx_t asn1_ctx;
24758 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24759 /* create display subtree for the protocol */
24760 return dissect_NokiaMAP_Extensions_AllowedServiceData(false, tvb, 0, &asn1_ctx, parent_tree, -1);
24763 static int dissect_NokiaMAP_ext_SriExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24764 proto_tree *tree;
24765 asn1_ctx_t asn1_ctx;
24766 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24767 /* create display subtree for the protocol */
24768 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriExtension_U, NULL, "Nokia Extension");
24770 return dissect_NokiaMAP_Extensions_SriExtension(false, tvb, 0, &asn1_ctx, tree, -1);
24773 static int dissect_NokiaMAP_ExtraSignalInfo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24774 proto_tree *tree;
24775 asn1_ctx_t asn1_ctx;
24776 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24777 /* create display subtree for the protocol */
24778 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ExtraSignalInfo_U, NULL, "Nokia Extension");
24780 return dissect_NokiaMAP_Extensions_ExtraSignalInfo(false, tvb, 0, &asn1_ctx, tree, -1);
24783 static int dissect_NokiaMAP_ext_SS_DataExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24784 proto_tree *tree;
24785 asn1_ctx_t asn1_ctx;
24786 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24787 /* create display subtree for the protocol */
24788 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SS_DataExtension_U, NULL, "Nokia Extension");
24790 return dissect_NokiaMAP_Extensions_SS_DataExtension(false, tvb, 0, &asn1_ctx, tree, -1);
24793 static int dissect_NokiaMAP_ext_HOExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24794 proto_tree *tree;
24795 asn1_ctx_t asn1_ctx;
24796 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24797 /* create display subtree for the protocol */
24798 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_HO_Ext_U, NULL, "Nokia Extension");
24800 return dissect_NokiaMAP_Extensions_HO_Ext(false, tvb, 0, &asn1_ctx, tree, -1);
24803 static int dissect_NokiaMAP_ext_UlResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24804 proto_tree *tree;
24805 asn1_ctx_t asn1_ctx;
24806 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24807 /* create display subtree for the protocol */
24808 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_UlResExt_U, NULL, "Nokia Extension");
24810 return dissect_NokiaMAP_Extensions_UlResExt(false, tvb, 0, &asn1_ctx, tree, -1);
24814 static int dissect_NokiaMAP_ext_IsdArgExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24815 proto_tree *tree;
24816 asn1_ctx_t asn1_ctx;
24817 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24818 /* create display subtree for the protocol */
24819 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_IsdArgExt_U, NULL, "Nokia Extension");
24821 return dissect_NokiaMAP_Extensions_IsdArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
24824 static int dissect_NokiaMAP_ext_DsdArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
24825 proto_tree *tree;
24826 asn1_ctx_t asn1_ctx;
24827 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24828 /* create display subtree for the protocol */
24829 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_DsdArgExt_U, NULL, "Nokia Extension");
24831 return dissect_NokiaMAP_Extensions_DsdArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
24834 static int
24835 dissect_gsm_map_GSMMAPPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
24836 asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
24838 char *version_ptr;
24840 opcode = 0;
24841 application_context_version = pref_application_context_version;
24842 if (pref_context_version_from_trace == true) {
24843 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
24844 if (gsm_map_priv && gsm_map_priv->tcap_private != NULL){
24845 if (gsm_map_priv->tcap_private->acv==true ){
24846 version_ptr = strrchr((const char*)gsm_map_priv->tcap_private->oid,'.');
24847 if (version_ptr){
24848 ws_strtoi32(version_ptr + 1, NULL, &application_context_version);
24854 gsmmap_pdu_type = tvb_get_uint8(tvb, offset)&0x0f;
24855 /* Get the length and add 2 */
24856 gsm_map_pdu_size = tvb_get_uint8(tvb, offset+1)+2;
24858 col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str_const(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP Component"));
24859 col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
24860 offset = dissect_gsm_old_Component(false, tvb, 0, actx, tree, hf_gsm_map_old_Component_PDU);
24862 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
24863 GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
24866 return offset;
24869 static int
24870 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
24872 proto_item *item=NULL;
24873 proto_tree *tree=NULL;
24874 /* Used for gsm_map TAP */
24875 static gsm_map_tap_rec_t tap_rec;
24876 int op_idx;
24877 asn1_ctx_t asn1_ctx;
24878 gsm_map_private_info_t *gsm_map_priv;
24880 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24882 col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
24884 asn1_ctx.subtree.top_tree = parent_tree;
24886 gsm_map_priv = wmem_new0(pinfo->pool, gsm_map_private_info_t);
24887 gsm_map_priv->tcap_private = (struct tcap_private_t *)data;
24888 asn1_ctx.value_ptr = gsm_map_priv;
24890 /* create display subtree for the protocol */
24891 item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA);
24892 tree = proto_item_add_subtree(item, ett_gsm_map);
24894 dissect_gsm_map_GSMMAPPDU(false, tvb, 0, &asn1_ctx, tree, -1);
24895 try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx);
24897 if (op_idx != -1) {
24898 tap_rec.invoke = (gsmmap_pdu_type == 1) ? true : false;
24899 tap_rec.opcode = opcode;
24900 tap_rec.size = gsm_map_pdu_size;
24902 tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
24905 return tvb_captured_length(tvb);
24908 static int
24909 dissect_gsm_map_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
24911 proto_item *item=NULL;
24912 proto_tree *tree=NULL;
24913 /* Used for gsm_map TAP */
24914 static gsm_map_tap_rec_t tap_rec;
24915 int op_idx;
24916 asn1_ctx_t asn1_ctx;
24917 gsm_map_private_info_t *gsm_map_priv;
24919 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
24921 col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
24923 asn1_ctx.subtree.top_tree = parent_tree;
24925 gsm_map_priv = wmem_new0(pinfo->pool, gsm_map_private_info_t);
24926 gsm_map_priv->sccp_msg_info = (sccp_msg_info_t *)data;
24927 asn1_ctx.value_ptr = gsm_map_priv;
24929 /* create display subtree for the protocol */
24930 item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA);
24931 tree = proto_item_add_subtree(item, ett_gsm_map);
24933 dissect_gsm_map_GSMMAPPDU(false, tvb, 0, &asn1_ctx, tree, -1);
24934 try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx);
24936 if (op_idx != -1) {
24937 tap_rec.invoke = (gsmmap_pdu_type == 1) ? true : false;
24938 tap_rec.opcode = opcode;
24939 tap_rec.size = gsm_map_pdu_size;
24941 tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
24944 return tvb_captured_length(tvb);
24947 const value_string ssCode_vals[] = {
24948 { 0x00, "allSS - all SS" },
24949 { 0x10 ,"allLineIdentificationSS - all line identification SS" },
24950 { 0x11 ,"clip - calling line identification presentation" },
24951 { 0x12 ,"clir - calling line identification restriction" },
24952 { 0x13 ,"colp - connected line identification presentation" },
24953 { 0x14 ,"colr - connected line identification restriction" },
24954 { 0x15 ,"mci - malicious call identification" },
24955 { 0x18 ,"allNameIdentificationSS - all name identification SS" },
24956 { 0x19 ,"cnap - calling name presentation" },
24957 { 0x20 ,"allForwardingSS - all forwarding SS" },
24958 { 0x21 ,"cfu - call forwarding unconditional" },
24959 { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
24960 { 0x29 ,"cfb - call forwarding busy" },
24961 { 0x2a ,"cfnry - call forwarding on no reply" },
24962 { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
24963 { 0x24 ,"cd - call deflection" },
24964 { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
24965 { 0x31 ,"ect - explicit call transfer" },
24966 { 0x32 ,"mah - mobile access hunting" },
24967 { 0x40 ,"allCallCompletionSS - all Call completion SS" },
24968 { 0x41 ,"cw - call waiting" },
24969 { 0x42 ,"hold - call hold" },
24970 { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
24971 { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
24972 { 0x45 ,"mc - multicall" },
24973 { 0x50 ,"allMultiPartySS - all multiparty SS" },
24974 { 0x51 ,"multiPTY - multiparty" },
24975 { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
24976 { 0x61 ,"cug - closed user group" },
24977 { 0x70 ,"allChargingSS - all charging SS" },
24978 { 0x71 ,"aoci - advice of charge information" },
24979 { 0x72 ,"aocc - advice of charge charging" },
24980 { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
24981 { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
24982 { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
24983 { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
24984 { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
24985 { 0x91 ,"barringOfOutgoingCalls" },
24986 { 0x92 ,"baoc - barring of all outgoing calls" },
24987 { 0x93 ,"boic - barring of outgoing international calls" },
24988 { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
24989 { 0x99 ,"barringOfIncomingCalls" },
24990 { 0x9a ,"baic - barring of all incoming calls" },
24991 { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
24992 { 0xf0 ,"allPLMN-specificSS" },
24993 { 0xa0 ,"allCallPrioritySS - all call priority SS" },
24994 { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
24995 { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
24996 { 0xb1 ,"universal - allow location by any LCS client" },
24997 { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
24998 { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
24999 { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
25000 { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
25001 { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
25002 { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
25003 { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
25004 { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
25006 { 0xf1 ,"plmn-specificSS-1" },
25007 { 0xf2 ,"plmn-specificSS-2" },
25008 { 0xf3 ,"plmn-specificSS-3" },
25009 { 0xf4 ,"plmn-specificSS-4" },
25010 { 0xf5 ,"plmn-specificSS-5" },
25011 { 0xf6 ,"plmn-specificSS-6" },
25012 { 0xf7 ,"plmn-specificSS-7" },
25013 { 0xf8 ,"plmn-specificSS-8" },
25014 { 0xf9 ,"plmn-specificSS-9" },
25015 { 0xfa ,"plmn-specificSS-a" },
25016 { 0xfb ,"plmn-specificSS-b" },
25017 { 0xfc ,"plmn-specificSS-c" },
25018 { 0xfd ,"plmn-specificSS-d" },
25019 { 0xfe ,"plmn-specificSS-e" },
25020 { 0xff ,"plmn-specificSS-f" },
25021 { 0, NULL }
25024 static const value_string Teleservice_vals[] = {
25025 { 0x00, "allTeleservices" },
25026 { 0x10, "allSpeechTransmissionServices" },
25027 { 0x11, "telephony" },
25028 { 0x12, "emergencyCalls" },
25029 { 0x20, "allShortMessageServices" },
25030 { 0x21, "shortMessageMT-PP" },
25031 { 0x22, "shortMessageMO-PP" },
25032 { 0x60, "allFacsimileTransmissionServices" },
25033 { 0x61, "facsimileGroup3AndAlterSpeech" },
25034 { 0x62, "automaticFacsimileGroup3" },
25035 { 0x63, "facsimileGroup4" },
25037 { 0x70, "allDataTeleservices" },
25038 { 0x80, "allTeleservices-ExceptSMS" },
25040 { 0x90, "allVoiceGroupCallServices" },
25041 { 0x91, "voiceGroupCall" },
25042 { 0x92, "voiceBroadcastCall" },
25044 { 0xd0, "allPLMN-specificTS" },
25045 { 0xd1, "plmn-specificTS-1" },
25046 { 0xd2, "plmn-specificTS-2" },
25047 { 0xd3, "plmn-specificTS-3" },
25048 { 0xd4, "plmn-specificTS-4" },
25049 { 0xd5, "plmn-specificTS-5" },
25050 { 0xd6, "plmn-specificTS-6" },
25051 { 0xd7, "plmn-specificTS-7" },
25052 { 0xd8, "plmn-specificTS-8" },
25053 { 0xd9, "plmn-specificTS-9" },
25054 { 0xda, "plmn-specificTS-A" },
25055 { 0xdb, "plmn-specificTS-B" },
25056 { 0xdc, "plmn-specificTS-C" },
25057 { 0xdd, "plmn-specificTS-D" },
25058 { 0xde, "plmn-specificTS-E" },
25059 { 0xdf, "plmn-specificTS-F" },
25060 { 0, NULL }
25063 static const value_string Bearerservice_vals[] = {
25064 { 0x00, "allBearerServices" },
25065 { 0x10, "allDataCDA-Services" },
25066 { 0x11, "dataCDA-300bps" },
25067 { 0x12, "dataCDA-1200bps" },
25068 { 0x13, "dataCDA-1200-75bps" },
25069 { 0x14, "dataCDA-2400bps" },
25070 { 0x15, "dataCDA-4800bps" },
25071 { 0x16, "dataCDA-9600bps" },
25072 { 0x17, "general-dataCDA" },
25074 { 0x18, "allDataCDS-Services" },
25075 { 0x1A, "dataCDS-1200bps" },
25076 { 0x1C, "dataCDS-2400bps" },
25077 { 0x1D, "dataCDS-4800bps" },
25078 { 0x1E, "dataCDS-9600bps" },
25079 { 0x1F, "general-dataCDS" },
25081 { 0x20, "allPadAccessCA-Services" },
25082 { 0x21, "padAccessCA-300bps" },
25083 { 0x22, "padAccessCA-1200bps" },
25084 { 0x23, "padAccessCA-1200-75bps" },
25085 { 0x24, "padAccessCA-2400bps" },
25086 { 0x25, "padAccessCA-4800bps" },
25087 { 0x26, "padAccessCA-9600bps" },
25088 { 0x27, "general-padAccessCA" },
25090 { 0x28, "allDataPDS-Services" },
25091 { 0x2C, "dataPDS-2400bps" },
25092 { 0x2D, "dataPDS-4800bps" },
25093 { 0x2E, "dataPDS-9600bps" },
25094 { 0x2F, "general-dataPDS" },
25096 { 0x30, "allAlternateSpeech-DataCDA" },
25097 { 0x38, "allAlternateSpeech-DataCDS" },
25098 { 0x40, "allSpeechFollowedByDataCDA" },
25099 { 0x48, "allSpeechFollowedByDataCDS" },
25101 { 0x50, "allDataCircuitAsynchronous" },
25102 { 0x60, "allAsynchronousServices" },
25103 { 0x58, "allDataCircuitSynchronous" },
25104 { 0x68, "allSynchronousServices" },
25106 { 0xD0, "allPLMN-specificBS" },
25107 { 0xD1, "plmn-specificBS-1" },
25108 { 0xD2, "plmn-specificBS-2" },
25109 { 0xD3, "plmn-specificBS-3" },
25110 { 0xD4, "plmn-specificBS-4" },
25111 { 0xD5, "plmn-specificBS-5" },
25112 { 0xD6, "plmn-specificBS-6" },
25113 { 0xD7, "plmn-specificBS-7" },
25114 { 0xD8, "plmn-specificBS-8" },
25115 { 0xD9, "plmn-specificBS-9" },
25116 { 0xDA, "plmn-specificBS-A" },
25117 { 0xDB, "plmn-specificBS-B" },
25118 { 0xDC, "plmn-specificBS-C" },
25119 { 0xDD, "plmn-specificBS-D" },
25120 { 0xDE, "plmn-specificBS-E" },
25121 { 0xDF, "plmn-specificBS-F" },
25123 { 0, NULL }
25126 /* ForwardingOptions
25128 -- bit 8: notification to forwarding party
25129 -- 0 no notification
25130 -- 1 notification
25132 static const true_false_string notification_value = {
25133 "Notification",
25134 "No notification"
25137 -- bit 7: redirecting presentation
25138 -- 0 no presentation
25139 -- 1 presentation
25141 static const true_false_string redirecting_presentation_value = {
25142 "Presentation",
25143 "No presentation"
25146 -- bit 6: notification to calling party
25147 -- 0 no notification
25148 -- 1 notification
25151 -- bit 5: 0 (unused)
25152 -- bits 43: forwarding reason
25153 -- 00 ms not reachable
25154 -- 01 ms busy
25155 -- 10 no reply
25156 -- 11 unconditional when used in a SRI Result,
25157 -- or call deflection when used in a RCH Argument
25159 static const value_string forwarding_reason_values[] = {
25160 { 0x0, "ms not reachable" },
25161 { 0x1, "ms busy" },
25162 { 0x2, "no reply" },
25163 { 0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
25164 { 0, NULL }
25167 -- bits 21: 00 (unused)
25170 static const value_string pdp_type_org_values[] = {
25171 { 0x0, "ETSI" },
25172 { 0x1, "IETF" },
25173 { 0xf, "Empty PDP type" },
25174 { 0, NULL }
25177 static const value_string etsi_pdp_type_number_values[] = {
25178 { 0x0, "Reserved, used in earlier version of this protocol" },
25179 { 0x1, "PPP" },
25180 { 0, NULL }
25183 static const value_string ietf_pdp_type_number_values[] = {
25184 { 0x21, "IPv4 Address" },
25185 { 0x57, "IPv6 Address" },
25186 { 0, NULL }
25190 ChargingCharacteristics ::= OCTET STRING (SIZE (2))
25191 -- Octets are coded according to 3GPP TS 32.015.
25192 -- From 3GPP TS 32.015.
25194 -- Descriptions for the bits of the flag set:
25196 -- Bit 1: H (Hot billing) := '00000001'B
25197 -- Bit 2: F (Flat rate) := '00000010'B
25198 -- Bit 3: P (Prepaid service) := '00000100'B
25199 -- Bit 4: N (Normal billing) := '00001000'B
25200 -- Bit 5: - (Reserved, set to 0) := '00010000'B
25201 -- Bit 6: - (Reserved, set to 0) := '00100000'B
25202 -- Bit 7: - (Reserved, set to 0) := '01000000'B
25203 -- Bit 8: - (Reserved, set to 0) := '10000000'B
25205 static const value_string chargingcharacteristics_values[] = {
25206 { 0x1, "H (Hot billing)" },
25207 { 0x2, "F (Flat rate)" },
25208 { 0x4, "P (Prepaid service)" },
25209 { 0x8, "N (Normal billing)" },
25210 { 0, NULL }
25213 /* TAP STAT INFO */
25214 typedef enum
25216 ID_COLUMN,
25217 OP_CODE_COLUMN,
25218 INVOKES_COLUMN,
25219 NUM_BYTES_FWD_COLUMN,
25220 AVG_BYTES_FWD_COLUMN,
25221 RET_RES_COLUMN,
25222 NUM_BYTES_REV_COLUMN,
25223 AVG_BYTES_REV_COLUMN,
25224 TOT_BYTES_COLUMN,
25225 AVG_BYTES_COLUMN
25226 } gsm_a_stat_columns;
25228 static stat_tap_table_item gsm_map_stat_fields[] = {
25229 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "ID", "%d"},
25230 {TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Operation Code", "%-25s"},
25231 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Invokes", "%d"},
25232 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Num Bytes", "%d"},
25233 {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"},
25234 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Return Result", "%d"},
25235 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Num Bytes", "%d"},
25236 {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"},
25237 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Total Bytes", "%d"},
25238 {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"},
25241 static void gsm_map_stat_init(stat_tap_table_ui* new_stat)
25243 const char *table_name = "GSM MAP Operation Statistics";
25244 int num_fields = array_length(gsm_map_stat_fields);
25245 stat_tap_table* table;
25246 unsigned i;
25247 stat_tap_table_item_type items[array_length(gsm_map_stat_fields)];
25249 memset(items, 0, sizeof(items));
25251 items[ID_COLUMN].type = TABLE_ITEM_UINT;
25252 items[OP_CODE_COLUMN].type = TABLE_ITEM_STRING;
25253 items[INVOKES_COLUMN].type = TABLE_ITEM_UINT;
25254 items[NUM_BYTES_FWD_COLUMN].type = TABLE_ITEM_UINT;
25255 items[AVG_BYTES_FWD_COLUMN].type = TABLE_ITEM_FLOAT;
25256 items[RET_RES_COLUMN].type = TABLE_ITEM_UINT;
25257 items[NUM_BYTES_REV_COLUMN].type = TABLE_ITEM_UINT;
25258 items[AVG_BYTES_REV_COLUMN].type = TABLE_ITEM_FLOAT;
25259 items[TOT_BYTES_COLUMN].type = TABLE_ITEM_UINT;
25260 items[AVG_BYTES_COLUMN].type = TABLE_ITEM_FLOAT;
25262 table = stat_tap_find_table(new_stat, table_name);
25263 if (table) {
25264 if (new_stat->stat_tap_reset_table_cb) {
25265 new_stat->stat_tap_reset_table_cb(table);
25267 return;
25270 table = stat_tap_init_table(table_name, num_fields, 0, NULL);
25271 stat_tap_add_table(new_stat, table);
25273 /* Add a row for each value type */
25274 for (i = 0; i < GSM_MAP_MAX_NUM_OPR_CODES; i++)
25276 const char *ocs = try_val_to_str(i, gsm_map_opr_code_strings);
25277 char *col_str;
25278 if (ocs) {
25279 col_str = g_strdup(ocs);
25280 } else {
25281 col_str = ws_strdup_printf("Unknown op code %d", i);
25284 items[ID_COLUMN].value.uint_value = i;
25285 items[OP_CODE_COLUMN].value.string_value = col_str;
25286 stat_tap_init_table_row(table, i, num_fields, items);
25290 static tap_packet_status
25291 gsm_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gmtr_ptr, tap_flags_t flags _U_)
25293 stat_data_t* stat_data = (stat_data_t*)tapdata;
25294 const gsm_map_tap_rec_t *gmtr = (const gsm_map_tap_rec_t *)gmtr_ptr;
25295 stat_tap_table* table;
25296 stat_tap_table_item_type *invoke_data, *fwd_bytes_data, *result_data, *rev_bytes_data, *avg_data;
25297 unsigned invokes, fwd_bytes, results, rev_bytes;
25299 table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, 0);
25301 invoke_data = stat_tap_get_field_data(table, gmtr->opcode, INVOKES_COLUMN);
25302 fwd_bytes_data = stat_tap_get_field_data(table, gmtr->opcode, NUM_BYTES_FWD_COLUMN);
25303 result_data = stat_tap_get_field_data(table, gmtr->opcode, RET_RES_COLUMN);
25304 rev_bytes_data = stat_tap_get_field_data(table, gmtr->opcode, NUM_BYTES_REV_COLUMN);
25306 if (gmtr->invoke)
25308 invoke_data->value.uint_value++;
25309 stat_tap_set_field_data(table, gmtr->opcode, INVOKES_COLUMN, invoke_data);
25311 fwd_bytes_data->value.uint_value += gmtr->size;
25312 stat_tap_set_field_data(table, gmtr->opcode, NUM_BYTES_FWD_COLUMN, fwd_bytes_data);
25314 else
25316 result_data->value.uint_value++;
25317 stat_tap_set_field_data(table, gmtr->opcode, RET_RES_COLUMN, result_data);
25319 rev_bytes_data->value.uint_value += gmtr->size;
25320 stat_tap_set_field_data(table, gmtr->opcode, NUM_BYTES_REV_COLUMN, rev_bytes_data);
25323 invokes = invoke_data->value.uint_value;
25324 fwd_bytes = fwd_bytes_data->value.uint_value;
25325 results = result_data->value.uint_value;
25326 rev_bytes = rev_bytes_data->value.uint_value;
25328 if (gmtr->invoke)
25330 avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_FWD_COLUMN);
25331 avg_data->value.float_value += (float) fwd_bytes / invokes;
25332 stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_FWD_COLUMN, avg_data);
25334 else
25336 avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_REV_COLUMN);
25337 avg_data->value.float_value += (float) rev_bytes / results;
25338 stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_REV_COLUMN, avg_data);
25341 avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_COLUMN);
25342 avg_data->value.float_value += (float) (fwd_bytes + rev_bytes) / (invokes + results);
25343 stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_COLUMN, avg_data);
25344 return TAP_PACKET_REDRAW;
25347 static void
25348 gsm_map_stat_reset(stat_tap_table* table)
25350 unsigned element;
25351 stat_tap_table_item_type* item_data;
25353 for (element = 0; element < table->num_elements; element++)
25355 item_data = stat_tap_get_field_data(table, element, INVOKES_COLUMN);
25356 item_data->value.uint_value = 0;
25357 stat_tap_set_field_data(table, element, INVOKES_COLUMN, item_data);
25361 static void
25362 gsm_map_stat_free_table_item(stat_tap_table* table _U_, unsigned row _U_, unsigned column, stat_tap_table_item_type* field_data)
25364 if (column != OP_CODE_COLUMN) return;
25365 g_free((char*)field_data->value.string_value);
25368 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
25369 static void range_delete_callback(uint32_t ssn, void *ptr _U_)
25371 if (ssn) {
25372 delete_itu_tcap_subdissector(ssn, map_handle);
25376 static void range_add_callback(uint32_t ssn, void *ptr _U_)
25378 if (ssn) {
25379 add_itu_tcap_subdissector(ssn, map_handle);
25383 void proto_reg_handoff_gsm_map(void) {
25385 static bool map_prefs_initialized = false;
25386 static range_t *ssn_range;
25388 if (!map_prefs_initialized) {
25389 map_prefs_initialized = true;
25390 ranap_handle = find_dissector_add_dependency("ranap", proto_gsm_map);
25391 dtap_handle = find_dissector_add_dependency("gsm_a_dtap", proto_gsm_map);
25392 gsm_sms_handle = find_dissector_add_dependency("gsm_sms", proto_gsm_map);
25393 bssap_handle = find_dissector_add_dependency("gsm_a_bssmap", proto_gsm_map);
25395 oid_add_from_string("itu(0) administration(2) japan(440)","0.2.440" );
25396 register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");
25397 register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
25398 register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
25399 register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
25400 register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
25401 register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
25402 register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
25403 register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
25404 register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
25405 register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
25406 register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
25407 register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
25408 register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
25409 register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
25410 register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
25411 register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
25412 register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
25413 register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
25414 register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
25415 register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
25416 register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
25417 register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
25418 register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
25419 register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
25420 register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
25421 register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
25422 register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
25423 register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
25424 register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
25425 register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
25426 /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
25427 /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
25428 register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
25429 register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
25430 register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
25431 register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
25432 register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
25433 register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
25434 register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
25435 register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
25436 register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
25437 register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
25438 register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
25439 register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
25440 register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
25441 register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
25442 register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
25443 register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
25444 register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgRelayContext-v1" );
25445 register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
25446 register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
25447 register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
25448 register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
25449 register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
25450 register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
25451 register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
25452 register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
25453 register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
25454 register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
25455 register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
25456 register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
25457 register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
25458 register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
25459 register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
25460 register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
25461 register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
25462 register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
25463 register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
25464 register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
25465 register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
25466 register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
25467 register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
25468 register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
25469 register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
25470 register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
25471 register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
25472 register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
25473 register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
25474 /* Private extension container */
25475 register_ber_oid_dissector("1.3.12.2.1006.53.2.1.3", dissect_gsm_mapext_PlmnContainer, proto_gsm_map,"alcatel-E10-MAP-extension-PlmnContainer" );
25476 register_ber_oid_dissector("0.34.0",dissect_NokiaMAP_ext_IsdArgExtension,proto_gsm_map,"Nokia ISD Extension");
25477 register_ber_oid_dissector("0.34.1",dissect_NokiaMAP_ext_DsdArgExt,proto_gsm_map,"Nokia Dsd Extension");
25478 register_ber_oid_dissector("0.34.2",dissect_NokiaMAP_ext_UlResExtension,proto_gsm_map,"Nokia Location Update Extension");
25479 register_ber_oid_dissector("0.34.4",dissect_NokiaMAP_ext_SS_DataExtension,proto_gsm_map,"Nokia SS Data Extension");
25480 register_ber_oid_dissector("0.34.5",dissect_NokiaMAP_ext_SriExtension,proto_gsm_map,"Nokia SRI Request Extension");
25481 register_ber_oid_dissector("0.34.6",dissect_NokiaMAP_ExtraSignalInfo,proto_gsm_map,"Nokia ExtraSignalInfo Extension");
25482 register_ber_oid_dissector("0.34.7",dissect_NokiaMAP_ext_SriResExtension,proto_gsm_map,"Nokia SRI Response Extension");
25483 register_ber_oid_dissector("0.34.10",dissect_NokiaMAP_ext_CanLocArgExt,proto_gsm_map,"Nokia Cancel Location Extension");
25484 register_ber_oid_dissector("0.34.11",dissect_NokiaMAP_ext_ATMargExt,proto_gsm_map,"Nokia ATM Extension");
25485 register_ber_oid_dissector("0.34.12",dissect_NokiaMAP_ext_DTMargExt,proto_gsm_map,"Nokia DTM Extension");
25486 register_ber_oid_dissector("0.34.13",dissect_NokiaMAP_ext_NumberPorted,proto_gsm_map,"Nokia NumberPorted Extension");
25487 register_ber_oid_dissector("0.34.15",dissect_NokiaMAP_ext_HOExtension,proto_gsm_map,"Nokia HandOver Extension");
25488 register_ber_oid_dissector("0.34.16",dissect_NokiaMAP_ext_ATMresExt,proto_gsm_map,"Nokia ATMres Extension");
25489 register_ber_oid_dissector("0.34.17",dissect_NokiaMAP_ext_AbsentSubscriberExt,proto_gsm_map,"Nokia AbsentSubscriber Extension");
25490 register_ber_oid_dissector("0.34.18",dissect_NokiaMAP_ext_SriForSMArgExt,proto_gsm_map,"Nokia SriForSM Extension");
25491 register_ber_oid_dissector("0.34.19",dissect_NokiaMAP_ext_ReportSMDelStatArgExt,proto_gsm_map,"Nokia ReportSMDelStatt Extension");
25492 register_ber_oid_dissector("0.34.20",dissect_NokiaMAP_ext_UdlArgExt,proto_gsm_map,"Nokia Udl Extension");
25493 register_ber_oid_dissector("0.34.21",dissect_NokiaMAP_ext_RoamNotAllowedExt,proto_gsm_map,"Nokia RoamNotAllowed Extension");
25494 register_ber_oid_dissector("0.34.22",dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt,proto_gsm_map,"Nokia MO-ForwardSM Extension");
25495 register_ber_oid_dissector("0.34.23",dissect_NokiaMAP_ext_ErrOlcmInfoTableExt,proto_gsm_map,"Nokia ErrOlcmInfoTable Extension");
25496 register_ber_oid_dissector("0.34.25",dissect_NokiaMAP_ext_RoutingCategoryExt,proto_gsm_map,"Nokia Routing Category Extension");
25497 register_ber_oid_dissector("0.34.26",dissect_NokiaMAP_ext_AnyTimeModArgExt,proto_gsm_map,"Nokia AnyTimeMod Extension");
25499 register_ber_oid_dissector("1.3.12.2.1107.3.66.1.1",dissect_NokiaMAP_ext_AccessTypeExt,proto_gsm_map,"Nokia AccessTypeExt Extension");
25500 register_ber_oid_dissector("1.3.12.2.1107.3.66.1.3",dissect_NokiaMAP_ext_AccessSubscriptionListExt,proto_gsm_map,"Nokia AccessSubscriptionListExt Extension");
25501 register_ber_oid_dissector("1.3.12.2.1107.3.66.1.6",dissect_NokiaMAP_ext_AllowedServiceData,proto_gsm_map,"Nokia AllowedServiceData Extension");
25503 register_ber_oid_dissector("1.2.826.0.1249.58.1.0",dissect_gsm_map_ericsson_ext_ExtensionType,proto_gsm_map,"Ericsson ExtensionType Extension");
25505 else {
25506 range_foreach(ssn_range, range_delete_callback, NULL);
25507 wmem_free(wmem_epan_scope(), ssn_range);
25510 ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
25511 range_foreach(ssn_range, range_add_callback, NULL);
25515 /*--- proto_register_gsm_map -------------------------------------------*/
25516 void proto_register_gsm_map(void) {
25517 module_t *gsm_map_module;
25518 expert_module_t* expert_gsm_map;
25520 /* List of fields */
25521 static hf_register_info hf[] = {
25522 { &hf_gsm_map_old_Component_PDU,
25523 { "Component", "gsm_map.old.Component",
25524 FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
25525 NULL, HFILL }},
25526 { &hf_gsm_map_getPassword,
25527 { "getPassword", "gsm_map.getPassword",
25528 FT_UINT8, BASE_DEC, VALS(gsm_old_GetPasswordArg_vals), 0,
25529 NULL, HFILL }},
25530 { &hf_gsm_map_currentPassword,
25531 { "currentPassword", "gsm_map.currentPassword",
25532 FT_STRING, BASE_NONE, NULL, 0,
25533 NULL, HFILL }},
25534 { &hf_gsm_map_extension,
25535 { "Extension", "gsm_map.extension",
25536 FT_BOOLEAN, 8, TFS(&tfs_no_extension_extension), 0x80,
25537 NULL, HFILL }},
25538 { &hf_gsm_map_nature_of_number,
25539 { "Nature of number", "gsm_map.nature_of_number",
25540 FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_nature_of_number_values_ext, 0x70,
25541 NULL, HFILL }},
25542 { &hf_gsm_map_number_plan,
25543 { "Number plan", "gsm_map.number_plan",
25544 FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_number_plan_values_ext, 0x0f,
25545 NULL, HFILL }},
25546 { &hf_gsm_map_address_digits,
25547 { "Address digits", "gsm_map.address.digits",
25548 FT_STRING, BASE_NONE, NULL, 0,
25549 NULL, HFILL }},
25550 { &hf_gsm_map_TBCD_digits,
25551 { "TBCD digits", "gsm_map.tbcd_digits",
25552 FT_STRING, BASE_NONE, NULL, 0,
25553 NULL, HFILL }},
25554 { &hf_gsm_map_Ss_Status_unused,
25555 { "Unused", "gsm_map.unused",
25556 FT_UINT8, BASE_HEX, NULL, 0xf0,
25557 NULL, HFILL }},
25558 { &hf_gsm_map_Ss_Status_q_bit,
25559 { "Q bit", "gsm_map.ss_status_q_bit",
25560 FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
25561 NULL, HFILL }},
25562 { &hf_gsm_map_Ss_Status_p_bit,
25563 { "P bit", "gsm_map.ss_status_p_bit",
25564 FT_BOOLEAN, 8, TFS(&tfs_provisioned_not_provisioned), 0x04,
25565 NULL, HFILL }},
25566 { &hf_gsm_map_Ss_Status_r_bit,
25567 { "R bit", "gsm_map.ss_status_r_bit",
25568 FT_BOOLEAN, 8, TFS(&tfs_registered_not_registered), 0x02,
25569 NULL, HFILL }},
25570 { &hf_gsm_map_Ss_Status_a_bit,
25571 { "A bit", "gsm_map.ss_status_a_bit",
25572 FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
25573 NULL, HFILL }},
25574 { &hf_gsm_map_notification_to_forwarding_party,
25575 { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
25576 FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
25577 NULL, HFILL }},
25578 { &hf_gsm_map_redirecting_presentation,
25579 { "Redirecting presentation", "gsm_map.redirecting_presentation",
25580 FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
25581 NULL, HFILL }},
25582 { &hf_gsm_map_notification_to_calling_party,
25583 { "Notification to calling party", "gsm_map.notification_to_calling_party",
25584 FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
25585 NULL, HFILL }},
25586 { &hf_gsm_map_forwarding_reason,
25587 { "Forwarding reason", "gsm_map.forwarding_reason",
25588 FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
25589 NULL, HFILL }},
25590 { &hf_gsm_map_pdp_type_org,
25591 { "PDP Type Organization", "gsm_map.pdp_type_org",
25592 FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
25593 NULL, HFILL }},
25594 { &hf_gsm_map_etsi_pdp_type_number,
25595 { "PDP Type Number", "gsm_map.pdp_type_number",
25596 FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
25597 "ETSI PDP Type Number", HFILL }},
25598 { &hf_gsm_map_ietf_pdp_type_number,
25599 { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
25600 FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
25601 "IETF PDP Type Number", HFILL }},
25602 { &hf_gsm_map_ext_qos_subscribed_pri,
25603 { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
25604 FT_UINT8, BASE_DEC, NULL, 0xff,
25605 NULL, HFILL }},
25606 { &hf_gsm_map_qos_traffic_cls,
25607 { "Traffic class", "gsm_map.qos.traffic_cls",
25608 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0xe0,
25609 NULL, HFILL }},
25610 { &hf_gsm_map_qos_del_order,
25611 { "Delivery order", "gsm_map.qos.del_order",
25612 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0x18,
25613 NULL, HFILL }},
25614 { &hf_gsm_map_qos_del_of_err_sdu,
25615 { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
25616 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_del_of_err_sdu_vals), 0x03,
25617 NULL, HFILL }},
25618 { &hf_gsm_map_qos_ber,
25619 { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
25620 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_ber_vals), 0xf0,
25621 NULL, HFILL }},
25622 { &hf_gsm_map_qos_sdu_err_rat,
25623 { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
25624 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_sdu_err_rat_vals), 0x0f,
25625 NULL, HFILL }},
25626 { &hf_gsm_map_qos_traff_hdl_pri,
25627 { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
25628 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traff_hdl_pri_vals), 0x03,
25629 NULL, HFILL }},
25631 { &hf_gsm_map_qos_max_sdu,
25632 { "Maximum SDU size", "gsm_map.qos.max_sdu",
25633 FT_UINT32, BASE_DEC, NULL, 0x0,
25634 NULL, HFILL }},
25635 { &hf_gsm_map_max_brate_ulink,
25636 { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
25637 FT_UINT32, BASE_DEC, NULL, 0x0,
25638 NULL, HFILL }},
25639 { &hf_gsm_map_max_brate_dlink,
25640 { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
25641 FT_UINT32, BASE_DEC, NULL, 0x0,
25642 NULL, HFILL }},
25643 { &hf_gsm_map_qos_transfer_delay,
25644 { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
25645 FT_UINT8, BASE_DEC, NULL, 0xfc,
25646 NULL, HFILL }},
25647 { &hf_gsm_map_guaranteed_max_brate_ulink,
25648 { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
25649 FT_UINT32, BASE_DEC, NULL, 0x0,
25650 NULL, HFILL }},
25651 { &hf_gsm_map_guaranteed_max_brate_dlink,
25652 { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
25653 FT_UINT32, BASE_DEC, NULL, 0x0,
25654 NULL, HFILL }},
25655 { &hf_gsm_map_GSNAddress_IPv4,
25656 { "GSN-Address IPv4", "gsm_map.gsnaddress_ipv4",
25657 FT_IPv4, BASE_NONE, NULL, 0,
25658 "IPAddress IPv4", HFILL }},
25659 { &hf_gsm_map_GSNAddress_IPv6,
25660 { "GSN Address IPv6", "gsm_map.gsnaddress_ipv6",
25661 FT_IPv6, BASE_NONE, NULL, 0,
25662 "IPAddress IPv6", HFILL }},
25663 { &hf_gsm_map_ranap_service_Handover,
25664 { "service-Handover", "gsm_map.ranap.service_Handover",
25665 FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
25666 "gsm_map.ranap.Service_Handover", HFILL }},
25667 { &hf_gsm_map_IntegrityProtectionInformation,
25668 { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
25669 FT_NONE, BASE_NONE, NULL, 0,
25670 "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
25671 { &hf_gsm_map_EncryptionInformation,
25672 { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
25673 FT_NONE, BASE_NONE, NULL, 0,
25674 "gsm_map.ranap.EncryptionInformation", HFILL }},
25675 { &hf_gsm_map_ss_SS_UserData,
25676 { "SS-UserData", "gsm_ss.SS_UserData",
25677 FT_STRING, BASE_NONE, NULL, 0,
25678 "gsm_map.ss.SS_UserData", HFILL }},
25679 { &hf_gsm_map_cbs_coding_grp,
25680 { "Coding Group","gsm_map.cbs.coding_grp",
25681 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext, 0xf0,
25682 NULL, HFILL }
25684 { &hf_gsm_map_cbs_coding_grp0_lang,
25685 { "Language","gsm_map.cbs.coding_grp0_lang",
25686 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp0_lang_vals_ext, 0x0f,
25687 NULL, HFILL }
25689 { &hf_gsm_map_cbs_coding_grp1_lang,
25690 { "Language","gsm_map.cbs.coding_grp1_lang",
25691 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp1_lang_vals_ext, 0x0f,
25692 NULL, HFILL }
25694 { &hf_gsm_map_cbs_coding_grp2_lang,
25695 { "Language","gsm_map.cbs.coding_grp2_lang",
25696 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp2_lang_vals_ext, 0x0f,
25697 NULL, HFILL }
25699 { &hf_gsm_map_cbs_coding_grp3_lang,
25700 { "Language","gsm_map.cbs.coding_grp3_lang",
25701 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp3_lang_vals_ext, 0x0f,
25702 NULL, HFILL }
25704 { &hf_gsm_map_cbs_coding_grp4_7_comp,
25705 { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp",
25706 FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20,
25707 NULL, HFILL }
25709 { &hf_gsm_map_cbs_coding_grp4_7_class_ind,
25710 { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind",
25711 FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10,
25712 NULL, HFILL }
25714 { &hf_gsm_map_cbs_coding_grp4_7_char_set,
25715 { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set",
25716 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c,
25717 NULL, HFILL }
25719 { &hf_gsm_map_cbs_coding_grp4_7_class,
25720 { "Message Class","gsm_map.cbs.coding_grp4_7_class",
25721 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03,
25722 NULL, HFILL }
25724 { &hf_gsm_map_cbs_coding_grp15_mess_code,
25725 { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code",
25726 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04,
25727 NULL, HFILL }
25729 { &hf_gsm_map_cbs_coding_grp15_class,
25730 { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class",
25731 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03,
25732 NULL, HFILL }
25734 { &hf_gsm_map_ie_tag,
25735 { "Tag", "gsm_map.ie_tag",
25736 FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0,
25737 "GSM 04.08 tag", HFILL }},
25738 { &hf_gsm_map_len,
25739 { "Length", "gsm_map.length",
25740 FT_UINT8, BASE_DEC, NULL, 0,
25741 NULL, HFILL }},
25742 { &hf_gsm_map_disc_par,
25743 { "Discrimination parameter", "gsm_map.disc_par",
25744 FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0,
25745 NULL, HFILL }},
25746 { &hf_gsm_map_dlci,
25747 { "DLCI", "gsm_map.dlci",
25748 FT_UINT8, BASE_DEC, NULL, 0,
25749 "Data Link Connection Indicator", HFILL }},
25750 { &hf_gsm_apn_str,
25751 { "APN", "gsm_map.apn_str",
25752 FT_STRING, BASE_NONE, NULL, 0,
25753 NULL, HFILL }},
25754 { &hf_gsm_map_ericsson_locationInformation_rat,
25755 { "RAT", "gsm_map.ericsson.locationInformation.rat",
25756 FT_UINT8, BASE_DEC, VALS(gsm_map_ericsson_locationInformation_rat_vals), 0,
25757 "Radio Access Technology", HFILL }},
25758 { &hf_gsm_map_ericsson_locationInformation_lac,
25759 { "LAC", "gsm_map.ericsson.locationInformation.lac",
25760 FT_UINT16, BASE_DEC_HEX, NULL, 0,
25761 "Location Area Code", HFILL }},
25762 { &hf_gsm_map_ericsson_locationInformation_ci,
25763 { "CI", "gsm_map.ericsson.locationInformation.ci",
25764 FT_UINT16, BASE_DEC_HEX, NULL, 0,
25765 "Cell Identity", HFILL }},
25766 { &hf_gsm_map_ericsson_locationInformation_sac,
25767 { "SAC", "gsm_map.ericsson.locationInformation.sac",
25768 FT_UINT16, BASE_DEC_HEX, NULL, 0,
25769 "Service Area Code", HFILL }},
25770 { &hf_gsm_map_ussd_string,
25771 { "USSD String", "gsm_map.ussd_string",
25772 FT_STRING, BASE_NONE, NULL, 0,
25773 NULL, HFILL }},
25774 { &hf_gsm_map_spare_bits,
25775 { "Spare bit(s)", "gsm_map.spare_bits",
25776 FT_UINT8, BASE_DEC, NULL, 0x0,
25777 NULL, HFILL }
25779 { &hf_gsm_map_qos_signalling_ind,
25780 { "Signalling indication", "gsm_map.qos.signalling_ind",
25781 FT_BOOLEAN, 8, TFS(&gsm_map_qos_signalling_ind_value), 0x10,
25782 NULL, HFILL }
25784 { &hf_gsm_map_qos_source_stat_desc,
25785 { "Source statistics description", "gsm_map.qos.source_stat_desc",
25786 FT_UINT8, BASE_DEC, NULL, 0x0f,
25787 NULL, HFILL }
25789 { &hf_gsm_map_qos_max_bitrate_upl_ext,
25790 { "Maximum bitrate for uplink (extended)", "gsm_map.qos.max_bitrate_upl_ext",
25791 FT_UINT8, BASE_DEC, NULL, 0x0,
25792 NULL, HFILL }
25794 { &hf_gsm_map_qos_max_bitrate_downl_ext,
25795 { "Maximum bitrate for downlink (extended)", "gsm_map.qos.max_bitrate_downl_ext",
25796 FT_UINT8, BASE_DEC, NULL, 0x0,
25797 NULL, HFILL }
25799 { &hf_gsm_map_qos_guar_bitrate_upl_ext,
25800 { "Guaranteed bitrate for uplink (extended)", "gsm_map.qos.guar_bitrate_upl_ext",
25801 FT_UINT8, BASE_DEC, NULL, 0x0,
25802 NULL, HFILL }
25804 { &hf_gsm_map_qos_guar_bitrate_downl_ext,
25805 { "Guaranteed bitrate for downlink (extended)", "gsm_map.qos.guar_bitrate_downl_ext",
25806 FT_UINT8, BASE_DEC, NULL, 0x0,
25807 NULL, HFILL }
25810 { &hf_gsm_map_qos_max_bitrate_upl_ext2,
25811 { "Maximum bitrate for uplink (extended-2)", "gsm_map.qos.max_bitrate_upl_ext2",
25812 FT_UINT8, BASE_DEC, NULL, 0x0,
25813 NULL, HFILL }
25815 { &hf_gsm_map_qos_max_bitrate_downl_ext2,
25816 { "Maximum bitrate for downlink (extended-2)", "gsm_map.qos.max_bitrate_downl_ext2",
25817 FT_UINT8, BASE_DEC, NULL, 0x0,
25818 NULL, HFILL }
25820 { &hf_gsm_map_qos_guar_bitrate_upl_ext2,
25821 { "Guaranteed bitrate for uplink (extended-2)", "gsm_map.qos.guar_bitrate_upl_ext2",
25822 FT_UINT8, BASE_DEC, NULL, 0x0,
25823 NULL, HFILL }
25825 { &hf_gsm_map_qos_guar_bitrate_downl_ext2,
25826 { "Guaranteed bitrate for downlink (extended-2)", "gsm_map.qos.guar_bitrate_downl_ext2",
25827 FT_UINT8, BASE_DEC, NULL, 0x0,
25828 NULL, HFILL }
25831 { &hf_gsm_map_earp_pvi,
25832 { "PVI Pre-emption Vulnerability", "gsm_map.EARP_pre_emption_par_vulnerability",
25833 FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x01,
25834 NULL, HFILL }
25836 { &hf_gsm_map_earp_pl,
25837 { "PL Priority Level", "gsm_map.EARP_priority_level",
25838 FT_UINT8, BASE_DEC, NULL, 0x3C,
25839 NULL, HFILL }
25841 { &hf_gsm_map_earp_pci,
25842 { "PCI Pre-emption Capability", "gsm_map.EARP_pre_emption_Capability",
25843 FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x40,
25844 NULL, HFILL }
25848 /* --- Module MAP-ExtensionDataTypes --- --- --- */
25850 { &hf_gsm_map_privateExtensionList,
25851 { "privateExtensionList", "gsm_map.privateExtensionList",
25852 FT_UINT32, BASE_DEC, NULL, 0,
25853 NULL, HFILL }},
25854 { &hf_gsm_map_pcs_Extensions,
25855 { "pcs-Extensions", "gsm_map.pcs_Extensions_element",
25856 FT_NONE, BASE_NONE, NULL, 0,
25857 NULL, HFILL }},
25858 { &hf_gsm_map_slr_Arg_PCS_Extensions,
25859 { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions_element",
25860 FT_NONE, BASE_NONE, NULL, 0,
25861 NULL, HFILL }},
25862 { &hf_gsm_map_PrivateExtensionList_item,
25863 { "PrivateExtension", "gsm_map.PrivateExtension_element",
25864 FT_NONE, BASE_NONE, NULL, 0,
25865 NULL, HFILL }},
25866 { &hf_gsm_map_extId,
25867 { "extId", "gsm_map.extId",
25868 FT_OID, BASE_NONE, NULL, 0,
25869 NULL, HFILL }},
25870 { &hf_gsm_map_extType,
25871 { "extType", "gsm_map.extType_element",
25872 FT_NONE, BASE_NONE, NULL, 0,
25873 NULL, HFILL }},
25874 { &hf_gsm_map_na_ESRK_Request,
25875 { "na-ESRK-Request", "gsm_map.na_ESRK_Request_element",
25876 FT_NONE, BASE_NONE, NULL, 0,
25877 NULL, HFILL }},
25879 /* --- Module MAP-CommonDataTypes --- --- --- */
25881 { &hf_gsm_map_gsm_map_ISDN_AddressString_PDU,
25882 { "ISDN-AddressString", "gsm_map.ISDN_AddressString",
25883 FT_BYTES, BASE_NONE, NULL, 0,
25884 NULL, HFILL }},
25885 { &hf_gsm_map_protocolId,
25886 { "protocolId", "gsm_map.protocolId",
25887 FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
25888 NULL, HFILL }},
25889 { &hf_gsm_map_signalInfo,
25890 { "signalInfo", "gsm_map.signalInfo",
25891 FT_BYTES, BASE_NONE, NULL, 0,
25892 NULL, HFILL }},
25893 { &hf_gsm_map_extensionContainer,
25894 { "extensionContainer", "gsm_map.extensionContainer_element",
25895 FT_NONE, BASE_NONE, NULL, 0,
25896 NULL, HFILL }},
25897 { &hf_gsm_map_ext_ProtocolId,
25898 { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
25899 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
25900 NULL, HFILL }},
25901 { &hf_gsm_map_accessNetworkProtocolId,
25902 { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
25903 FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
25904 NULL, HFILL }},
25905 { &hf_gsm_map_signalInfo_01,
25906 { "signalInfo", "gsm_map.signalInfo",
25907 FT_BYTES, BASE_NONE, NULL, 0,
25908 "LongSignalInfo", HFILL }},
25909 { &hf_gsm_map_imsi,
25910 { "imsi", "gsm_map.imsi",
25911 FT_BYTES, BASE_NONE, NULL, 0,
25912 NULL, HFILL }},
25913 { &hf_gsm_map_imsi_WithLMSI,
25914 { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI_element",
25915 FT_NONE, BASE_NONE, NULL, 0,
25916 NULL, HFILL }},
25917 { &hf_gsm_map_lmsi,
25918 { "lmsi", "gsm_map.lmsi",
25919 FT_BYTES, BASE_NONE, NULL, 0,
25920 NULL, HFILL }},
25921 { &hf_gsm_map_tmsi,
25922 { "tmsi", "gsm_map.tmsi",
25923 FT_BYTES, BASE_NONE, NULL, 0,
25924 NULL, HFILL }},
25925 { &hf_gsm_map_HLR_List_item,
25926 { "HLR-Id", "gsm_map.HLR_Id",
25927 FT_BYTES, BASE_NONE, NULL, 0,
25928 NULL, HFILL }},
25929 { &hf_gsm_map_naea_PreferredCIC,
25930 { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
25931 FT_BYTES, BASE_NONE, NULL, 0,
25932 "NAEA_CIC", HFILL }},
25933 { &hf_gsm_map_msisdn,
25934 { "msisdn", "gsm_map.msisdn",
25935 FT_BYTES, BASE_NONE, NULL, 0,
25936 "ISDN_AddressString", HFILL }},
25937 { &hf_gsm_map_externalAddress,
25938 { "externalAddress", "gsm_map.externalAddress",
25939 FT_BYTES, BASE_NONE, NULL, 0,
25940 "ISDN_AddressString", HFILL }},
25941 { &hf_gsm_map_diameter_Name,
25942 { "diameter-Name", "gsm_map.diameter_Name",
25943 FT_STRING, BASE_NONE, NULL, 0,
25944 "DiameterIdentity", HFILL }},
25945 { &hf_gsm_map_diameter_Realm,
25946 { "diameter-Realm", "gsm_map.diameter_Realm",
25947 FT_STRING, BASE_NONE, NULL, 0,
25948 "DiameterIdentity", HFILL }},
25949 { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
25950 { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
25951 FT_BYTES, BASE_NONE, NULL, 0,
25952 NULL, HFILL }},
25953 { &hf_gsm_map_laiFixedLength,
25954 { "laiFixedLength", "gsm_map.laiFixedLength",
25955 FT_BYTES, BASE_NONE, NULL, 0,
25956 NULL, HFILL }},
25957 { &hf_gsm_map_bearerService,
25958 { "bearerService", "gsm_map.bearerService",
25959 FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
25960 "BearerServiceCode", HFILL }},
25961 { &hf_gsm_map_teleservice,
25962 { "teleservice", "gsm_map.teleservice",
25963 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
25964 "TeleserviceCode", HFILL }},
25965 { &hf_gsm_map_ext_BearerService,
25966 { "ext-BearerService", "gsm_map.ext_BearerService",
25967 FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
25968 "Ext_BearerServiceCode", HFILL }},
25969 { &hf_gsm_map_ext_Teleservice,
25970 { "ext-Teleservice", "gsm_map.ext_Teleservice",
25971 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
25972 "Ext_TeleserviceCode", HFILL }},
25973 { &hf_gsm_map_maximumentitledPriority,
25974 { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
25975 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
25976 "EMLPP_Priority", HFILL }},
25977 { &hf_gsm_map_defaultPriority,
25978 { "defaultPriority", "gsm_map.defaultPriority",
25979 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
25980 "EMLPP_Priority", HFILL }},
25981 { &hf_gsm_map_ss_Code,
25982 { "ss-Code", "gsm_map.ss_Code",
25983 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
25984 NULL, HFILL }},
25985 { &hf_gsm_map_ss_Status,
25986 { "ss-Status", "gsm_map.ss_Status",
25987 FT_BYTES, BASE_NONE, NULL, 0,
25988 "Ext_SS_Status", HFILL }},
25989 { &hf_gsm_map_nbrSB,
25990 { "nbrSB", "gsm_map.nbrSB",
25991 FT_UINT32, BASE_DEC, NULL, 0,
25992 "MaxMC_Bearers", HFILL }},
25993 { &hf_gsm_map_nbrUser,
25994 { "nbrUser", "gsm_map.nbrUser",
25995 FT_UINT32, BASE_DEC, NULL, 0,
25996 "MC_Bearers", HFILL }},
25998 /* --- Module MAP-SS-DataTypes --- --- --- */
26000 { &hf_gsm_map_ss_ss_Code,
26001 { "ss-Code", "gsm_map.ss.ss_Code",
26002 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
26003 NULL, HFILL }},
26004 { &hf_gsm_map_ss_basicService,
26005 { "basicService", "gsm_map.ss.basicService",
26006 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
26007 "BasicServiceCode", HFILL }},
26008 { &hf_gsm_map_ss_forwardedToNumber,
26009 { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
26010 FT_BYTES, BASE_NONE, NULL, 0,
26011 "AddressString", HFILL }},
26012 { &hf_gsm_map_ss_forwardedToSubaddress,
26013 { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress",
26014 FT_BYTES, BASE_NONE, NULL, 0,
26015 "ISDN_SubaddressString", HFILL }},
26016 { &hf_gsm_map_ss_noReplyConditionTime,
26017 { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime",
26018 FT_UINT32, BASE_DEC, NULL, 0,
26019 NULL, HFILL }},
26020 { &hf_gsm_map_ss_defaultPriority,
26021 { "defaultPriority", "gsm_map.ss.defaultPriority",
26022 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
26023 "EMLPP_Priority", HFILL }},
26024 { &hf_gsm_map_ss_nbrUser,
26025 { "nbrUser", "gsm_map.ss.nbrUser",
26026 FT_UINT32, BASE_DEC, NULL, 0,
26027 "MC_Bearers", HFILL }},
26028 { &hf_gsm_map_ss_longFTN_Supported,
26029 { "longFTN-Supported", "gsm_map.ss.longFTN_Supported_element",
26030 FT_NONE, BASE_NONE, NULL, 0,
26031 NULL, HFILL }},
26032 { &hf_gsm_map_ss_forwardingInfo,
26033 { "forwardingInfo", "gsm_map.ss.forwardingInfo_element",
26034 FT_NONE, BASE_NONE, NULL, 0,
26035 NULL, HFILL }},
26036 { &hf_gsm_map_ss_callBarringInfo,
26037 { "callBarringInfo", "gsm_map.ss.callBarringInfo_element",
26038 FT_NONE, BASE_NONE, NULL, 0,
26039 NULL, HFILL }},
26040 { &hf_gsm_map_ss_ss_Data,
26041 { "ss-Data", "gsm_map.ss.ss_Data_element",
26042 FT_NONE, BASE_NONE, NULL, 0,
26043 NULL, HFILL }},
26044 { &hf_gsm_map_ss_forwardingFeatureList,
26045 { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList",
26046 FT_UINT32, BASE_DEC, NULL, 0,
26047 NULL, HFILL }},
26048 { &hf_gsm_map_ss_ForwardingFeatureList_item,
26049 { "ForwardingFeature", "gsm_map.ss.ForwardingFeature_element",
26050 FT_NONE, BASE_NONE, NULL, 0,
26051 NULL, HFILL }},
26052 { &hf_gsm_map_ss_ss_Status,
26053 { "ss-Status", "gsm_map.ss.ss_Status",
26054 FT_BYTES, BASE_NONE, NULL, 0,
26055 NULL, HFILL }},
26056 { &hf_gsm_map_ss_forwardedToNumber_01,
26057 { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
26058 FT_BYTES, BASE_NONE, NULL, 0,
26059 "ISDN_AddressString", HFILL }},
26060 { &hf_gsm_map_ss_forwardingOptions,
26061 { "forwardingOptions", "gsm_map.ss.forwardingOptions",
26062 FT_BYTES, BASE_NONE, NULL, 0,
26063 NULL, HFILL }},
26064 { &hf_gsm_map_ss_longForwardedToNumber,
26065 { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber",
26066 FT_BYTES, BASE_NONE, NULL, 0,
26067 "FTN_AddressString", HFILL }},
26068 { &hf_gsm_map_ss_callBarringFeatureList,
26069 { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList",
26070 FT_UINT32, BASE_DEC, NULL, 0,
26071 NULL, HFILL }},
26072 { &hf_gsm_map_ss_CallBarringFeatureList_item,
26073 { "CallBarringFeature", "gsm_map.ss.CallBarringFeature_element",
26074 FT_NONE, BASE_NONE, NULL, 0,
26075 NULL, HFILL }},
26076 { &hf_gsm_map_ss_ss_SubscriptionOption,
26077 { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption",
26078 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
26079 NULL, HFILL }},
26080 { &hf_gsm_map_ss_basicServiceGroupList,
26081 { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList",
26082 FT_UINT32, BASE_DEC, NULL, 0,
26083 NULL, HFILL }},
26084 { &hf_gsm_map_ss_cliRestrictionOption,
26085 { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption",
26086 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
26087 NULL, HFILL }},
26088 { &hf_gsm_map_ss_overrideCategory,
26089 { "overrideCategory", "gsm_map.ss.overrideCategory",
26090 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
26091 NULL, HFILL }},
26092 { &hf_gsm_map_ss_maximumEntitledPriority,
26093 { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority",
26094 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
26095 "EMLPP_Priority", HFILL }},
26096 { &hf_gsm_map_ss_ccbs_FeatureList,
26097 { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList",
26098 FT_UINT32, BASE_DEC, NULL, 0,
26099 NULL, HFILL }},
26100 { &hf_gsm_map_ss_nbrSB,
26101 { "nbrSB", "gsm_map.ss.nbrSB",
26102 FT_UINT32, BASE_DEC, NULL, 0,
26103 "MaxMC_Bearers", HFILL }},
26104 { &hf_gsm_map_ss_nbrSN,
26105 { "nbrSN", "gsm_map.ss.nbrSN",
26106 FT_UINT32, BASE_DEC, NULL, 0,
26107 "MC_Bearers", HFILL }},
26108 { &hf_gsm_map_ss_CCBS_FeatureList_item,
26109 { "CCBS-Feature", "gsm_map.ss.CCBS_Feature_element",
26110 FT_NONE, BASE_NONE, NULL, 0,
26111 NULL, HFILL }},
26112 { &hf_gsm_map_ss_ccbs_Index,
26113 { "ccbs-Index", "gsm_map.ss.ccbs_Index",
26114 FT_UINT32, BASE_DEC, NULL, 0,
26115 NULL, HFILL }},
26116 { &hf_gsm_map_ss_b_subscriberNumber,
26117 { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber",
26118 FT_BYTES, BASE_NONE, NULL, 0,
26119 "ISDN_AddressString", HFILL }},
26120 { &hf_gsm_map_ss_b_subscriberSubaddress,
26121 { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress",
26122 FT_BYTES, BASE_NONE, NULL, 0,
26123 "ISDN_SubaddressString", HFILL }},
26124 { &hf_gsm_map_ss_basicServiceGroup,
26125 { "basicServiceGroup", "gsm_map.ss.basicServiceGroup",
26126 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
26127 "BasicServiceCode", HFILL }},
26128 { &hf_gsm_map_ss_genericServiceInfo,
26129 { "genericServiceInfo", "gsm_map.ss.genericServiceInfo_element",
26130 FT_NONE, BASE_NONE, NULL, 0,
26131 NULL, HFILL }},
26132 { &hf_gsm_map_ss_ussd_DataCodingScheme,
26133 { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme",
26134 FT_BYTES, BASE_NONE, NULL, 0,
26135 NULL, HFILL }},
26136 { &hf_gsm_map_ss_ussd_String,
26137 { "ussd-String", "gsm_map.ss.ussd_String",
26138 FT_BYTES, BASE_NONE, NULL, 0,
26139 NULL, HFILL }},
26140 { &hf_gsm_map_ss_alertingPattern,
26141 { "alertingPattern", "gsm_map.ss.alertingPattern",
26142 FT_BYTES, BASE_NONE, NULL, 0,
26143 NULL, HFILL }},
26144 { &hf_gsm_map_ss_msisdn,
26145 { "msisdn", "gsm_map.ss.msisdn",
26146 FT_BYTES, BASE_NONE, NULL, 0,
26147 "ISDN_AddressString", HFILL }},
26148 { &hf_gsm_map_ss_SS_List_item,
26149 { "SS-Code", "gsm_map.ss.SS_Code",
26150 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
26151 NULL, HFILL }},
26152 { &hf_gsm_map_ss_BasicServiceGroupList_item,
26153 { "BasicServiceCode", "gsm_map.ss.BasicServiceCode",
26154 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
26155 NULL, HFILL }},
26156 { &hf_gsm_map_ss_imsi,
26157 { "imsi", "gsm_map.ss.imsi",
26158 FT_BYTES, BASE_NONE, NULL, 0,
26159 NULL, HFILL }},
26160 { &hf_gsm_map_ss_ss_Event,
26161 { "ss-Event", "gsm_map.ss.ss_Event",
26162 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
26163 "SS_Code", HFILL }},
26164 { &hf_gsm_map_ss_ss_EventSpecification,
26165 { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification",
26166 FT_UINT32, BASE_DEC, NULL, 0,
26167 NULL, HFILL }},
26168 { &hf_gsm_map_ss_extensionContainer,
26169 { "extensionContainer", "gsm_map.ss.extensionContainer_element",
26170 FT_NONE, BASE_NONE, NULL, 0,
26171 NULL, HFILL }},
26172 { &hf_gsm_map_ss_ccbs_RequestState,
26173 { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState",
26174 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0,
26175 NULL, HFILL }},
26176 { &hf_gsm_map_ss_SS_EventSpecification_item,
26177 { "AddressString", "gsm_map.ss.AddressString",
26178 FT_BYTES, BASE_NONE, NULL, 0,
26179 NULL, HFILL }},
26180 { &hf_gsm_map_ss_ccbs_Data,
26181 { "ccbs-Data", "gsm_map.ss.ccbs_Data_element",
26182 FT_NONE, BASE_NONE, NULL, 0,
26183 NULL, HFILL }},
26184 { &hf_gsm_map_ss_ccbs_Feature,
26185 { "ccbs-Feature", "gsm_map.ss.ccbs_Feature_element",
26186 FT_NONE, BASE_NONE, NULL, 0,
26187 NULL, HFILL }},
26188 { &hf_gsm_map_ss_translatedB_Number,
26189 { "translatedB-Number", "gsm_map.ss.translatedB_Number",
26190 FT_BYTES, BASE_NONE, NULL, 0,
26191 "ISDN_AddressString", HFILL }},
26192 { &hf_gsm_map_ss_serviceIndicator,
26193 { "serviceIndicator", "gsm_map.ss.serviceIndicator",
26194 FT_BYTES, BASE_NONE, NULL, 0,
26195 NULL, HFILL }},
26196 { &hf_gsm_map_ss_callInfo,
26197 { "callInfo", "gsm_map.ss.callInfo_element",
26198 FT_NONE, BASE_NONE, NULL, 0,
26199 "ExternalSignalInfo", HFILL }},
26200 { &hf_gsm_map_ss_networkSignalInfo,
26201 { "networkSignalInfo", "gsm_map.ss.networkSignalInfo_element",
26202 FT_NONE, BASE_NONE, NULL, 0,
26203 "ExternalSignalInfo", HFILL }},
26204 { &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
26205 { "clir-invoked", "gsm.map.ss.ServiceIndicator.clir.invoked",
26206 FT_BOOLEAN, 8, NULL, 0x80,
26207 NULL, HFILL }},
26208 { &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
26209 { "camel-invoked", "gsm.map.ss.ServiceIndicator.camel.invoked",
26210 FT_BOOLEAN, 8, NULL, 0x40,
26211 NULL, HFILL }},
26213 /* --- Module MAP-ER-DataTypes --- --- --- */
26215 { &hf_gsm_map_er_roamingNotAllowedCause,
26216 { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause",
26217 FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0,
26218 NULL, HFILL }},
26219 { &hf_gsm_map_er_extensionContainer,
26220 { "extensionContainer", "gsm_map.er.extensionContainer_element",
26221 FT_NONE, BASE_NONE, NULL, 0,
26222 NULL, HFILL }},
26223 { &hf_gsm_map_er_additionalRoamingNotAllowedCause,
26224 { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause",
26225 FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0,
26226 NULL, HFILL }},
26227 { &hf_gsm_map_er_callBarringCause,
26228 { "callBarringCause", "gsm_map.er.callBarringCause",
26229 FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0,
26230 NULL, HFILL }},
26231 { &hf_gsm_map_er_extensibleCallBarredParam,
26232 { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam_element",
26233 FT_NONE, BASE_NONE, NULL, 0,
26234 NULL, HFILL }},
26235 { &hf_gsm_map_er_unauthorisedMessageOriginator,
26236 { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator_element",
26237 FT_NONE, BASE_NONE, NULL, 0,
26238 NULL, HFILL }},
26239 { &hf_gsm_map_er_anonymousCallRejection,
26240 { "anonymousCallRejection", "gsm_map.er.anonymousCallRejection_element",
26241 FT_NONE, BASE_NONE, NULL, 0,
26242 NULL, HFILL }},
26243 { &hf_gsm_map_er_cug_RejectCause,
26244 { "cug-RejectCause", "gsm_map.er.cug_RejectCause",
26245 FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0,
26246 NULL, HFILL }},
26247 { &hf_gsm_map_er_ss_Code,
26248 { "ss-Code", "gsm_map.er.ss_Code",
26249 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
26250 NULL, HFILL }},
26251 { &hf_gsm_map_er_basicService,
26252 { "basicService", "gsm_map.er.basicService",
26253 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
26254 "BasicServiceCode", HFILL }},
26255 { &hf_gsm_map_er_ss_Status,
26256 { "ss-Status", "gsm_map.er.ss_Status",
26257 FT_BYTES, BASE_NONE, NULL, 0,
26258 NULL, HFILL }},
26259 { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
26260 { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause",
26261 FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0,
26262 NULL, HFILL }},
26263 { &hf_gsm_map_er_diagnosticInfo,
26264 { "diagnosticInfo", "gsm_map.er.diagnosticInfo",
26265 FT_BYTES, BASE_NONE, NULL, 0,
26266 "SignalInfo", HFILL }},
26267 { &hf_gsm_map_er_absentSubscriberDiagnosticSM,
26268 { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM",
26269 FT_UINT32, BASE_DEC, NULL, 0,
26270 NULL, HFILL }},
26271 { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM,
26272 { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM",
26273 FT_UINT32, BASE_DEC, NULL, 0,
26274 "AbsentSubscriberDiagnosticSM", HFILL }},
26275 { &hf_gsm_map_er_imsi,
26276 { "imsi", "gsm_map.er.imsi",
26277 FT_BYTES, BASE_NONE, NULL, 0,
26278 NULL, HFILL }},
26279 { &hf_gsm_map_er_requestedRetransmissionTime,
26280 { "requestedRetransmissionTime", "gsm_map.er.requestedRetransmissionTime",
26281 FT_BYTES, BASE_NONE, NULL, 0,
26282 "Time", HFILL }},
26283 { &hf_gsm_map_er_userIdentifierAlert,
26284 { "userIdentifierAlert", "gsm_map.er.userIdentifierAlert",
26285 FT_BYTES, BASE_NONE, NULL, 0,
26286 "IMSI", HFILL }},
26287 { &hf_gsm_map_er_networkResource,
26288 { "networkResource", "gsm_map.er.networkResource",
26289 FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
26290 NULL, HFILL }},
26291 { &hf_gsm_map_er_extensibleSystemFailureParam,
26292 { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam_element",
26293 FT_NONE, BASE_NONE, NULL, 0,
26294 NULL, HFILL }},
26295 { &hf_gsm_map_er_additionalNetworkResource,
26296 { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource",
26297 FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
26298 NULL, HFILL }},
26299 { &hf_gsm_map_er_failureCauseParam,
26300 { "failureCauseParam", "gsm_map.er.failureCauseParam",
26301 FT_UINT32, BASE_DEC, VALS(gsm_map_er_FailureCauseParam_vals), 0,
26302 NULL, HFILL }},
26303 { &hf_gsm_map_er_unexpectedSubscriber,
26304 { "unexpectedSubscriber", "gsm_map.er.unexpectedSubscriber_element",
26305 FT_NONE, BASE_NONE, NULL, 0,
26306 NULL, HFILL }},
26307 { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported,
26308 { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported_element",
26309 FT_NONE, BASE_NONE, NULL, 0,
26310 NULL, HFILL }},
26311 { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode,
26312 { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode_element",
26313 FT_NONE, BASE_NONE, NULL, 0,
26314 NULL, HFILL }},
26315 { &hf_gsm_map_er_unknownSubscriberDiagnostic,
26316 { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic",
26317 FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0,
26318 NULL, HFILL }},
26319 { &hf_gsm_map_er_absentSubscriberReason,
26320 { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason",
26321 FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0,
26322 NULL, HFILL }},
26323 { &hf_gsm_map_er_ccbs_Possible,
26324 { "ccbs-Possible", "gsm_map.er.ccbs_Possible_element",
26325 FT_NONE, BASE_NONE, NULL, 0,
26326 NULL, HFILL }},
26327 { &hf_gsm_map_er_ccbs_Busy,
26328 { "ccbs-Busy", "gsm_map.er.ccbs_Busy_element",
26329 FT_NONE, BASE_NONE, NULL, 0,
26330 NULL, HFILL }},
26331 { &hf_gsm_map_er_gprsConnectionSuspended,
26332 { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended_element",
26333 FT_NONE, BASE_NONE, NULL, 0,
26334 NULL, HFILL }},
26335 { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic,
26336 { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic",
26337 FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
26338 NULL, HFILL }},
26339 { &hf_gsm_map_er_positionMethodFailure_Diagnostic,
26340 { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic",
26341 FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
26342 NULL, HFILL }},
26344 /* --- Module MAP-SM-DataTypes --- --- --- */
26346 { &hf_gsm_map_sm_msisdn,
26347 { "msisdn", "gsm_map.sm.msisdn",
26348 FT_BYTES, BASE_NONE, NULL, 0,
26349 "ISDN_AddressString", HFILL }},
26350 { &hf_gsm_map_sm_sm_RP_PRI,
26351 { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI",
26352 FT_BOOLEAN, BASE_NONE, NULL, 0,
26353 "BOOLEAN", HFILL }},
26354 { &hf_gsm_map_sm_serviceCentreAddress,
26355 { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress",
26356 FT_BYTES, BASE_NONE, NULL, 0,
26357 "AddressString", HFILL }},
26358 { &hf_gsm_map_sm_extensionContainer,
26359 { "extensionContainer", "gsm_map.sm.extensionContainer_element",
26360 FT_NONE, BASE_NONE, NULL, 0,
26361 NULL, HFILL }},
26362 { &hf_gsm_map_sm_gprsSupportIndicator,
26363 { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator_element",
26364 FT_NONE, BASE_NONE, NULL, 0,
26365 NULL, HFILL }},
26366 { &hf_gsm_map_sm_sm_RP_MTI,
26367 { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI",
26368 FT_UINT32, BASE_DEC, NULL, 0,
26369 NULL, HFILL }},
26370 { &hf_gsm_map_sm_sm_RP_SMEA,
26371 { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA",
26372 FT_BYTES, BASE_NONE, NULL, 0,
26373 NULL, HFILL }},
26374 { &hf_gsm_map_sm_sm_deliveryNotIntended,
26375 { "sm-deliveryNotIntended", "gsm_map.sm.sm_deliveryNotIntended",
26376 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryNotIntended_vals), 0,
26377 NULL, HFILL }},
26378 { &hf_gsm_map_sm_ip_sm_gwGuidanceIndicator,
26379 { "ip-sm-gwGuidanceIndicator", "gsm_map.sm.ip_sm_gwGuidanceIndicator_element",
26380 FT_NONE, BASE_NONE, NULL, 0,
26381 NULL, HFILL }},
26382 { &hf_gsm_map_sm_imsi,
26383 { "imsi", "gsm_map.sm.imsi",
26384 FT_BYTES, BASE_NONE, NULL, 0,
26385 NULL, HFILL }},
26386 { &hf_gsm_map_sm_t4_Trigger_Indicator,
26387 { "t4-Trigger-Indicator", "gsm_map.sm.t4_Trigger_Indicator_element",
26388 FT_NONE, BASE_NONE, NULL, 0,
26389 NULL, HFILL }},
26390 { &hf_gsm_map_sm_singleAttemptDelivery,
26391 { "singleAttemptDelivery", "gsm_map.sm.singleAttemptDelivery_element",
26392 FT_NONE, BASE_NONE, NULL, 0,
26393 NULL, HFILL }},
26394 { &hf_gsm_map_sm_correlationID,
26395 { "correlationID", "gsm_map.sm.correlationID_element",
26396 FT_NONE, BASE_NONE, NULL, 0,
26397 NULL, HFILL }},
26398 { &hf_gsm_map_sm_smsf_supportIndicator,
26399 { "smsf-supportIndicator", "gsm_map.sm.smsf_supportIndicator_element",
26400 FT_NONE, BASE_NONE, NULL, 0,
26401 NULL, HFILL }},
26402 { &hf_gsm_map_sm_locationInfoWithLMSI,
26403 { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI_element",
26404 FT_NONE, BASE_NONE, NULL, 0,
26405 NULL, HFILL }},
26406 { &hf_gsm_map_sm_ip_sm_gwGuidance,
26407 { "ip-sm-gwGuidance", "gsm_map.sm.ip_sm_gwGuidance_element",
26408 FT_NONE, BASE_NONE, NULL, 0,
26409 "IP_SM_GW_Guidance", HFILL }},
26410 { &hf_gsm_map_sm_minimumDeliveryTimeValue,
26411 { "minimumDeliveryTimeValue", "gsm_map.sm.minimumDeliveryTimeValue",
26412 FT_UINT32, BASE_DEC, NULL, 0,
26413 "SM_DeliveryTimerValue", HFILL }},
26414 { &hf_gsm_map_sm_recommendedDeliveryTimeValue,
26415 { "recommendedDeliveryTimeValue", "gsm_map.sm.recommendedDeliveryTimeValue",
26416 FT_UINT32, BASE_DEC, NULL, 0,
26417 "SM_DeliveryTimerValue", HFILL }},
26418 { &hf_gsm_map_sm_networkNode_Number,
26419 { "networkNode-Number", "gsm_map.sm.networkNode_Number",
26420 FT_BYTES, BASE_NONE, NULL, 0,
26421 "ISDN_AddressString", HFILL }},
26422 { &hf_gsm_map_sm_lmsi,
26423 { "lmsi", "gsm_map.sm.lmsi",
26424 FT_BYTES, BASE_NONE, NULL, 0,
26425 NULL, HFILL }},
26426 { &hf_gsm_map_sm_gprsNodeIndicator,
26427 { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator_element",
26428 FT_NONE, BASE_NONE, NULL, 0,
26429 NULL, HFILL }},
26430 { &hf_gsm_map_sm_additional_Number,
26431 { "additional-Number", "gsm_map.sm.additional_Number",
26432 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
26433 NULL, HFILL }},
26434 { &hf_gsm_map_sm_networkNodeDiameterAddress,
26435 { "networkNodeDiameterAddress", "gsm_map.sm.networkNodeDiameterAddress_element",
26436 FT_NONE, BASE_NONE, NULL, 0,
26437 NULL, HFILL }},
26438 { &hf_gsm_map_sm_additionalNetworkNodeDiameterAddress,
26439 { "additionalNetworkNodeDiameterAddress", "gsm_map.sm.additionalNetworkNodeDiameterAddress_element",
26440 FT_NONE, BASE_NONE, NULL, 0,
26441 "NetworkNodeDiameterAddress", HFILL }},
26442 { &hf_gsm_map_sm_thirdNumber,
26443 { "thirdNumber", "gsm_map.sm.thirdNumber",
26444 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
26445 "Additional_Number", HFILL }},
26446 { &hf_gsm_map_sm_thirdNetworkNodeDiameterAddress,
26447 { "thirdNetworkNodeDiameterAddress", "gsm_map.sm.thirdNetworkNodeDiameterAddress_element",
26448 FT_NONE, BASE_NONE, NULL, 0,
26449 "NetworkNodeDiameterAddress", HFILL }},
26450 { &hf_gsm_map_sm_imsNodeIndicator,
26451 { "imsNodeIndicator", "gsm_map.sm.imsNodeIndicator_element",
26452 FT_NONE, BASE_NONE, NULL, 0,
26453 NULL, HFILL }},
26454 { &hf_gsm_map_sm_smsf_3gpp_Number,
26455 { "smsf-3gpp-Number", "gsm_map.sm.smsf_3gpp_Number",
26456 FT_BYTES, BASE_NONE, NULL, 0,
26457 "ISDN_AddressString", HFILL }},
26458 { &hf_gsm_map_sm_smsf_3gpp_DiameterAddress,
26459 { "smsf-3gpp-DiameterAddress", "gsm_map.sm.smsf_3gpp_DiameterAddress_element",
26460 FT_NONE, BASE_NONE, NULL, 0,
26461 "NetworkNodeDiameterAddress", HFILL }},
26462 { &hf_gsm_map_sm_smsf_non_3gpp_Number,
26463 { "smsf-non-3gpp-Number", "gsm_map.sm.smsf_non_3gpp_Number",
26464 FT_BYTES, BASE_NONE, NULL, 0,
26465 "ISDN_AddressString", HFILL }},
26466 { &hf_gsm_map_sm_smsf_non_3gpp_DiameterAddress,
26467 { "smsf-non-3gpp-DiameterAddress", "gsm_map.sm.smsf_non_3gpp_DiameterAddress_element",
26468 FT_NONE, BASE_NONE, NULL, 0,
26469 "NetworkNodeDiameterAddress", HFILL }},
26470 { &hf_gsm_map_sm_smsf_3gpp_address_indicator,
26471 { "smsf-3gpp-address-indicator", "gsm_map.sm.smsf_3gpp_address_indicator_element",
26472 FT_NONE, BASE_NONE, NULL, 0,
26473 NULL, HFILL }},
26474 { &hf_gsm_map_sm_smsf_non_3gpp_address_indicator,
26475 { "smsf-non-3gpp-address-indicator", "gsm_map.sm.smsf_non_3gpp_address_indicator_element",
26476 FT_NONE, BASE_NONE, NULL, 0,
26477 NULL, HFILL }},
26478 { &hf_gsm_map_sm_msc_Number,
26479 { "msc-Number", "gsm_map.sm.msc_Number",
26480 FT_BYTES, BASE_NONE, NULL, 0,
26481 "ISDN_AddressString", HFILL }},
26482 { &hf_gsm_map_sm_sgsn_Number,
26483 { "sgsn-Number", "gsm_map.sm.sgsn_Number",
26484 FT_BYTES, BASE_NONE, NULL, 0,
26485 "ISDN_AddressString", HFILL }},
26486 { &hf_gsm_map_sm_sm_RP_DA,
26487 { "sm-RP-DA", "gsm_map.sm.sm_RP_DA",
26488 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0,
26489 NULL, HFILL }},
26490 { &hf_gsm_map_sm_sm_RP_OA,
26491 { "sm-RP-OA", "gsm_map.sm.sm_RP_OA",
26492 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0,
26493 NULL, HFILL }},
26494 { &hf_gsm_map_sm_sm_RP_UI,
26495 { "sm-RP-UI", "gsm_map.sm.sm_RP_UI",
26496 FT_BYTES, BASE_NONE, NULL, 0,
26497 "SignalInfo", HFILL }},
26498 { &hf_gsm_map_sm_sm_DeliveryOutcome,
26499 { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome",
26500 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
26501 NULL, HFILL }},
26502 { &hf_gsm_map_sm_moreMessagesToSend,
26503 { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend_element",
26504 FT_NONE, BASE_NONE, NULL, 0,
26505 NULL, HFILL }},
26506 { &hf_gsm_map_sm_smDeliveryTimer,
26507 { "smDeliveryTimer", "gsm_map.sm.smDeliveryTimer",
26508 FT_UINT32, BASE_DEC, NULL, 0,
26509 "SM_DeliveryTimerValue", HFILL }},
26510 { &hf_gsm_map_sm_smDeliveryStartTime,
26511 { "smDeliveryStartTime", "gsm_map.sm.smDeliveryStartTime",
26512 FT_BYTES, BASE_NONE, NULL, 0,
26513 "Time", HFILL }},
26514 { &hf_gsm_map_sm_smsOverIP_OnlyIndicator,
26515 { "smsOverIP-OnlyIndicator", "gsm_map.sm.smsOverIP_OnlyIndicator_element",
26516 FT_NONE, BASE_NONE, NULL, 0,
26517 NULL, HFILL }},
26518 { &hf_gsm_map_sm_maximumRetransmissionTime,
26519 { "maximumRetransmissionTime", "gsm_map.sm.maximumRetransmissionTime",
26520 FT_BYTES, BASE_NONE, NULL, 0,
26521 "Time", HFILL }},
26522 { &hf_gsm_map_sm_smsGmscAddress,
26523 { "smsGmscAddress", "gsm_map.sm.smsGmscAddress",
26524 FT_BYTES, BASE_NONE, NULL, 0,
26525 "ISDN_AddressString", HFILL }},
26526 { &hf_gsm_map_sm_smsGmscDiameterAddress,
26527 { "smsGmscDiameterAddress", "gsm_map.sm.smsGmscDiameterAddress_element",
26528 FT_NONE, BASE_NONE, NULL, 0,
26529 "NetworkNodeDiameterAddress", HFILL }},
26530 { &hf_gsm_map_sm_hlr_id,
26531 { "hlr-id", "gsm_map.sm.hlr_id",
26532 FT_BYTES, BASE_NONE, NULL, 0,
26533 NULL, HFILL }},
26534 { &hf_gsm_map_sm_sip_uri_A,
26535 { "sip-uri-A", "gsm_map.sm.sip_uri_A",
26536 FT_BYTES, BASE_NONE, NULL, 0,
26537 "SIP_URI", HFILL }},
26538 { &hf_gsm_map_sm_sip_uri_B,
26539 { "sip-uri-B", "gsm_map.sm.sip_uri_B",
26540 FT_BYTES, BASE_NONE, NULL, 0,
26541 "SIP_URI", HFILL }},
26542 { &hf_gsm_map_sm_imsi_01,
26543 { "imsi", "gsm_map.sm.imsi",
26544 FT_BYTES, BASE_NONE, NULL, 0,
26545 NULL, HFILL }},
26546 { &hf_gsm_map_sm_lmsi_01,
26547 { "lmsi", "gsm_map.sm.lmsi",
26548 FT_BYTES, BASE_NONE, NULL, 0,
26549 NULL, HFILL }},
26550 { &hf_gsm_map_sm_serviceCentreAddressDA,
26551 { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA",
26552 FT_BYTES, BASE_NONE, NULL, 0,
26553 NULL, HFILL }},
26554 { &hf_gsm_map_sm_noSM_RP_DA,
26555 { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA_element",
26556 FT_NONE, BASE_NONE, NULL, 0,
26557 NULL, HFILL }},
26558 { &hf_gsm_map_sm_msisdn_01,
26559 { "msisdn", "gsm_map.sm.msisdn",
26560 FT_BYTES, BASE_NONE, NULL, 0,
26561 NULL, HFILL }},
26562 { &hf_gsm_map_sm_serviceCentreAddressOA,
26563 { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA",
26564 FT_BYTES, BASE_NONE, NULL, 0,
26565 NULL, HFILL }},
26566 { &hf_gsm_map_sm_noSM_RP_OA,
26567 { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA_element",
26568 FT_NONE, BASE_NONE, NULL, 0,
26569 NULL, HFILL }},
26570 { &hf_gsm_map_sm_absentSubscriberDiagnosticSM,
26571 { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM",
26572 FT_UINT32, BASE_DEC, NULL, 0,
26573 NULL, HFILL }},
26574 { &hf_gsm_map_sm_deliveryOutcomeIndicator,
26575 { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator_element",
26576 FT_NONE, BASE_NONE, NULL, 0,
26577 NULL, HFILL }},
26578 { &hf_gsm_map_sm_additionalSM_DeliveryOutcome,
26579 { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome",
26580 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
26581 "SM_DeliveryOutcome", HFILL }},
26582 { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM,
26583 { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM",
26584 FT_UINT32, BASE_DEC, NULL, 0,
26585 "AbsentSubscriberDiagnosticSM", HFILL }},
26586 { &hf_gsm_map_sm_ip_sm_gw_Indicator,
26587 { "ip-sm-gw-Indicator", "gsm_map.sm.ip_sm_gw_Indicator_element",
26588 FT_NONE, BASE_NONE, NULL, 0,
26589 NULL, HFILL }},
26590 { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome,
26591 { "ip-sm-gw-sm-deliveryOutcome", "gsm_map.sm.ip_sm_gw_sm_deliveryOutcome",
26592 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
26593 "SM_DeliveryOutcome", HFILL }},
26594 { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM,
26595 { "ip-sm-gw-absentSubscriberDiagnosticSM", "gsm_map.sm.ip_sm_gw_absentSubscriberDiagnosticSM",
26596 FT_UINT32, BASE_DEC, NULL, 0,
26597 "AbsentSubscriberDiagnosticSM", HFILL }},
26598 { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcomeIndicator,
26599 { "smsf-3gpp-deliveryOutcomeIndicator", "gsm_map.sm.smsf_3gpp_deliveryOutcomeIndicator_element",
26600 FT_NONE, BASE_NONE, NULL, 0,
26601 NULL, HFILL }},
26602 { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcome,
26603 { "smsf-3gpp-deliveryOutcome", "gsm_map.sm.smsf_3gpp_deliveryOutcome",
26604 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
26605 "SM_DeliveryOutcome", HFILL }},
26606 { &hf_gsm_map_sm_smsf_3gpp_absentSubscriberDiagSM,
26607 { "smsf-3gpp-absentSubscriberDiagSM", "gsm_map.sm.smsf_3gpp_absentSubscriberDiagSM",
26608 FT_UINT32, BASE_DEC, NULL, 0,
26609 "AbsentSubscriberDiagnosticSM", HFILL }},
26610 { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcomeIndicator,
26611 { "smsf-non-3gpp-deliveryOutcomeIndicator", "gsm_map.sm.smsf_non_3gpp_deliveryOutcomeIndicator_element",
26612 FT_NONE, BASE_NONE, NULL, 0,
26613 NULL, HFILL }},
26614 { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcome,
26615 { "smsf-non-3gpp-deliveryOutcome", "gsm_map.sm.smsf_non_3gpp_deliveryOutcome",
26616 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
26617 "SM_DeliveryOutcome", HFILL }},
26618 { &hf_gsm_map_sm_smsf_non_3gpp_absentSubscriberDiagSM,
26619 { "smsf-non-3gpp-absentSubscriberDiagSM", "gsm_map.sm.smsf_non_3gpp_absentSubscriberDiagSM",
26620 FT_UINT32, BASE_DEC, NULL, 0,
26621 "AbsentSubscriberDiagnosticSM", HFILL }},
26622 { &hf_gsm_map_sm_storedMSISDN,
26623 { "storedMSISDN", "gsm_map.sm.storedMSISDN",
26624 FT_BYTES, BASE_NONE, NULL, 0,
26625 "ISDN_AddressString", HFILL }},
26626 { &hf_gsm_map_sm_maximumUeAvailabilityTime,
26627 { "maximumUeAvailabilityTime", "gsm_map.sm.maximumUeAvailabilityTime",
26628 FT_BYTES, BASE_NONE, NULL, 0,
26629 "Time", HFILL }},
26630 { &hf_gsm_map_sm_smsGmscAlertEvent,
26631 { "smsGmscAlertEvent", "gsm_map.sm.smsGmscAlertEvent",
26632 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SmsGmsc_Alert_Event_vals), 0,
26633 "SmsGmsc_Alert_Event", HFILL }},
26634 { &hf_gsm_map_sm_newSGSNNumber,
26635 { "newSGSNNumber", "gsm_map.sm.newSGSNNumber",
26636 FT_BYTES, BASE_NONE, NULL, 0,
26637 "ISDN_AddressString", HFILL }},
26638 { &hf_gsm_map_sm_newSGSNDiameterAddress,
26639 { "newSGSNDiameterAddress", "gsm_map.sm.newSGSNDiameterAddress_element",
26640 FT_NONE, BASE_NONE, NULL, 0,
26641 "NetworkNodeDiameterAddress", HFILL }},
26642 { &hf_gsm_map_sm_newMMENumber,
26643 { "newMMENumber", "gsm_map.sm.newMMENumber",
26644 FT_BYTES, BASE_NONE, NULL, 0,
26645 "ISDN_AddressString", HFILL }},
26646 { &hf_gsm_map_sm_newMMEDiameterAddress,
26647 { "newMMEDiameterAddress", "gsm_map.sm.newMMEDiameterAddress_element",
26648 FT_NONE, BASE_NONE, NULL, 0,
26649 "NetworkNodeDiameterAddress", HFILL }},
26650 { &hf_gsm_map_sm_newMSCNumber,
26651 { "newMSCNumber", "gsm_map.sm.newMSCNumber",
26652 FT_BYTES, BASE_NONE, NULL, 0,
26653 "ISDN_AddressString", HFILL }},
26654 { &hf_gsm_map_sm_mw_Status,
26655 { "mw-Status", "gsm_map.sm.mw_Status",
26656 FT_BYTES, BASE_NONE, NULL, 0,
26657 NULL, HFILL }},
26658 { &hf_gsm_map_sm_smsf3gppAbsentSubscriberDiagnosticSM,
26659 { "smsf3gppAbsentSubscriberDiagnosticSM", "gsm_map.sm.smsf3gppAbsentSubscriberDiagnosticSM",
26660 FT_UINT32, BASE_DEC, NULL, 0,
26661 "AbsentSubscriberDiagnosticSM", HFILL }},
26662 { &hf_gsm_map_sm_smsfNon3gppAbsentSubscriberDiagnosticSM,
26663 { "smsfNon3gppAbsentSubscriberDiagnosticSM", "gsm_map.sm.smsfNon3gppAbsentSubscriberDiagnosticSM",
26664 FT_UINT32, BASE_DEC, NULL, 0,
26665 "AbsentSubscriberDiagnosticSM", HFILL }},
26666 { &hf_gsm_map_sm_alertReason,
26667 { "alertReason", "gsm_map.sm.alertReason",
26668 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0,
26669 NULL, HFILL }},
26670 { &hf_gsm_map_sm_alertReasonIndicator,
26671 { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator_element",
26672 FT_NONE, BASE_NONE, NULL, 0,
26673 NULL, HFILL }},
26674 { &hf_gsm_map_sm_additionalAlertReasonIndicator,
26675 { "additionalAlertReasonIndicator", "gsm_map.sm.additionalAlertReasonIndicator_element",
26676 FT_NONE, BASE_NONE, NULL, 0,
26677 NULL, HFILL }},
26678 { &hf_gsm_map_sm_asciCallReference,
26679 { "asciCallReference", "gsm_map.sm.asciCallReference",
26680 FT_BYTES, BASE_NONE, NULL, 0,
26681 "ASCI_CallReference", HFILL }},
26682 { &hf_gsm_map_sm_dispatcherList,
26683 { "dispatcherList", "gsm_map.sm.dispatcherList",
26684 FT_UINT32, BASE_DEC, NULL, 0,
26685 NULL, HFILL }},
26686 { &hf_gsm_map_sm_ongoingCall,
26687 { "ongoingCall", "gsm_map.sm.ongoingCall_element",
26688 FT_NONE, BASE_NONE, NULL, 0,
26689 NULL, HFILL }},
26690 { &hf_gsm_map_sm_additionalDispatcherList,
26691 { "additionalDispatcherList", "gsm_map.sm.additionalDispatcherList",
26692 FT_UINT32, BASE_DEC, NULL, 0,
26693 NULL, HFILL }},
26694 { &hf_gsm_map_sm_DispatcherList_item,
26695 { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString",
26696 FT_BYTES, BASE_NONE, NULL, 0,
26697 NULL, HFILL }},
26698 { &hf_gsm_map_sm_AdditionalDispatcherList_item,
26699 { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString",
26700 FT_BYTES, BASE_NONE, NULL, 0,
26701 NULL, HFILL }},
26702 { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
26703 { "sc-AddressNotIncluded", "gsm.map.sm.MW.Status.sc.AddressNotIncluded",
26704 FT_BOOLEAN, 8, NULL, 0x80,
26705 NULL, HFILL }},
26706 { &hf_gsm_map_sm_MW_Status_mnrf_Set,
26707 { "mnrf-Set", "gsm.map.sm.MW.Status.mnrf.Set",
26708 FT_BOOLEAN, 8, NULL, 0x40,
26709 NULL, HFILL }},
26710 { &hf_gsm_map_sm_MW_Status_mcef_Set,
26711 { "mcef-Set", "gsm.map.sm.MW.Status.mcef.Set",
26712 FT_BOOLEAN, 8, NULL, 0x20,
26713 NULL, HFILL }},
26714 { &hf_gsm_map_sm_MW_Status_mnrg_Set,
26715 { "mnrg-Set", "gsm.map.sm.MW.Status.mnrg.Set",
26716 FT_BOOLEAN, 8, NULL, 0x10,
26717 NULL, HFILL }},
26718 { &hf_gsm_map_sm_MW_Status_mnr5g_Set,
26719 { "mnr5g-Set", "gsm.map.sm.MW.Status.mnr5g.Set",
26720 FT_BOOLEAN, 8, NULL, 0x08,
26721 NULL, HFILL }},
26722 { &hf_gsm_map_sm_MW_Status_mnr5gn3g_Set,
26723 { "mnr5gn3g-Set", "gsm.map.sm.MW.Status.mnr5gn3g.Set",
26724 FT_BOOLEAN, 8, NULL, 0x04,
26725 NULL, HFILL }},
26727 /* --- Module MAP-OM-DataTypes --- --- --- */
26729 { &hf_gsm_map_om_imsi,
26730 { "imsi", "gsm_map.om.imsi",
26731 FT_BYTES, BASE_NONE, NULL, 0,
26732 NULL, HFILL }},
26733 { &hf_gsm_map_om_traceReference,
26734 { "traceReference", "gsm_map.om.traceReference",
26735 FT_BYTES, BASE_NONE, NULL, 0,
26736 NULL, HFILL }},
26737 { &hf_gsm_map_om_traceType,
26738 { "traceType", "gsm_map.om.traceType",
26739 FT_UINT32, BASE_DEC, NULL, 0,
26740 NULL, HFILL }},
26741 { &hf_gsm_map_om_omc_Id,
26742 { "omc-Id", "gsm_map.om.omc_Id",
26743 FT_BYTES, BASE_NONE, NULL, 0,
26744 "AddressString", HFILL }},
26745 { &hf_gsm_map_om_extensionContainer,
26746 { "extensionContainer", "gsm_map.om.extensionContainer_element",
26747 FT_NONE, BASE_NONE, NULL, 0,
26748 NULL, HFILL }},
26749 { &hf_gsm_map_om_traceReference2,
26750 { "traceReference2", "gsm_map.om.traceReference2",
26751 FT_BYTES, BASE_NONE, NULL, 0,
26752 NULL, HFILL }},
26753 { &hf_gsm_map_om_traceDepthList,
26754 { "traceDepthList", "gsm_map.om.traceDepthList_element",
26755 FT_NONE, BASE_NONE, NULL, 0,
26756 NULL, HFILL }},
26757 { &hf_gsm_map_om_traceNE_TypeList,
26758 { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList",
26759 FT_BYTES, BASE_NONE, NULL, 0,
26760 NULL, HFILL }},
26761 { &hf_gsm_map_om_traceInterfaceList,
26762 { "traceInterfaceList", "gsm_map.om.traceInterfaceList_element",
26763 FT_NONE, BASE_NONE, NULL, 0,
26764 NULL, HFILL }},
26765 { &hf_gsm_map_om_traceEventList,
26766 { "traceEventList", "gsm_map.om.traceEventList_element",
26767 FT_NONE, BASE_NONE, NULL, 0,
26768 NULL, HFILL }},
26769 { &hf_gsm_map_om_traceCollectionEntity,
26770 { "traceCollectionEntity", "gsm_map.om.traceCollectionEntity",
26771 FT_BYTES, BASE_NONE, NULL, 0,
26772 "GSN_Address", HFILL }},
26773 { &hf_gsm_map_om_mdt_Configuration,
26774 { "mdt-Configuration", "gsm_map.om.mdt_Configuration_element",
26775 FT_NONE, BASE_NONE, NULL, 0,
26776 NULL, HFILL }},
26777 { &hf_gsm_map_om_jobType,
26778 { "jobType", "gsm_map.om.jobType",
26779 FT_UINT32, BASE_DEC, VALS(gsm_map_om_JobType_vals), 0,
26780 NULL, HFILL }},
26781 { &hf_gsm_map_om_areaScope,
26782 { "areaScope", "gsm_map.om.areaScope_element",
26783 FT_NONE, BASE_NONE, NULL, 0,
26784 NULL, HFILL }},
26785 { &hf_gsm_map_om_listOfMeasurements,
26786 { "listOfMeasurements", "gsm_map.om.listOfMeasurements",
26787 FT_BYTES, BASE_NONE, NULL, 0,
26788 NULL, HFILL }},
26789 { &hf_gsm_map_om_reportingTrigger,
26790 { "reportingTrigger", "gsm_map.om.reportingTrigger",
26791 FT_BYTES, BASE_NONE, NULL, 0,
26792 NULL, HFILL }},
26793 { &hf_gsm_map_om_reportInterval,
26794 { "reportInterval", "gsm_map.om.reportInterval",
26795 FT_UINT32, BASE_DEC, VALS(gsm_map_om_ReportInterval_vals), 0,
26796 NULL, HFILL }},
26797 { &hf_gsm_map_om_reportAmount,
26798 { "reportAmount", "gsm_map.om.reportAmount",
26799 FT_UINT32, BASE_DEC, VALS(gsm_map_om_ReportAmount_vals), 0,
26800 NULL, HFILL }},
26801 { &hf_gsm_map_om_eventThresholdRSRP,
26802 { "eventThresholdRSRP", "gsm_map.om.eventThresholdRSRP",
26803 FT_UINT32, BASE_DEC, NULL, 0,
26804 NULL, HFILL }},
26805 { &hf_gsm_map_om_eventThresholdRSRQ,
26806 { "eventThresholdRSRQ", "gsm_map.om.eventThresholdRSRQ",
26807 FT_UINT32, BASE_DEC, NULL, 0,
26808 NULL, HFILL }},
26809 { &hf_gsm_map_om_loggingInterval,
26810 { "loggingInterval", "gsm_map.om.loggingInterval",
26811 FT_UINT32, BASE_DEC, VALS(gsm_map_om_LoggingInterval_vals), 0,
26812 NULL, HFILL }},
26813 { &hf_gsm_map_om_loggingDuration,
26814 { "loggingDuration", "gsm_map.om.loggingDuration",
26815 FT_UINT32, BASE_DEC, VALS(gsm_map_om_LoggingDuration_vals), 0,
26816 NULL, HFILL }},
26817 { &hf_gsm_map_om_measurementPeriodUMTS,
26818 { "measurementPeriodUMTS", "gsm_map.om.measurementPeriodUMTS",
26819 FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodUMTS_vals), 0,
26820 "PeriodUMTS", HFILL }},
26821 { &hf_gsm_map_om_measurementPeriodLTE,
26822 { "measurementPeriodLTE", "gsm_map.om.measurementPeriodLTE",
26823 FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodLTE_vals), 0,
26824 "PeriodLTE", HFILL }},
26825 { &hf_gsm_map_om_collectionPeriodRRM_UMTS,
26826 { "collectionPeriodRRM-UMTS", "gsm_map.om.collectionPeriodRRM_UMTS",
26827 FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodUMTS_vals), 0,
26828 "PeriodUMTS", HFILL }},
26829 { &hf_gsm_map_om_collectionPeriodRRM_LTE,
26830 { "collectionPeriodRRM-LTE", "gsm_map.om.collectionPeriodRRM_LTE",
26831 FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodLTE_vals), 0,
26832 "PeriodLTE", HFILL }},
26833 { &hf_gsm_map_om_positioningMethod,
26834 { "positioningMethod", "gsm_map.om.positioningMethod",
26835 FT_BYTES, BASE_NONE, NULL, 0,
26836 NULL, HFILL }},
26837 { &hf_gsm_map_om_measurementQuantity,
26838 { "measurementQuantity", "gsm_map.om.measurementQuantity",
26839 FT_BYTES, BASE_NONE, NULL, 0,
26840 NULL, HFILL }},
26841 { &hf_gsm_map_om_eventThreshold1F,
26842 { "eventThreshold1F", "gsm_map.om.eventThreshold1F",
26843 FT_INT32, BASE_DEC, NULL, 0,
26844 NULL, HFILL }},
26845 { &hf_gsm_map_om_eventThreshold1I,
26846 { "eventThreshold1I", "gsm_map.om.eventThreshold1I",
26847 FT_INT32, BASE_DEC, NULL, 0,
26848 NULL, HFILL }},
26849 { &hf_gsm_map_om_mdt_Allowed_PLMN_List,
26850 { "mdt-Allowed-PLMN-List", "gsm_map.om.mdt_Allowed_PLMN_List",
26851 FT_UINT32, BASE_DEC, NULL, 0,
26852 "MDT_Allowed_PLMNId_List", HFILL }},
26853 { &hf_gsm_map_om_MDT_Allowed_PLMNId_List_item,
26854 { "PLMN-Id", "gsm_map.om.PLMN_Id",
26855 FT_BYTES, BASE_NONE, NULL, 0,
26856 NULL, HFILL }},
26857 { &hf_gsm_map_om_cgi_List,
26858 { "cgi-List", "gsm_map.om.cgi_List",
26859 FT_UINT32, BASE_DEC, NULL, 0,
26860 NULL, HFILL }},
26861 { &hf_gsm_map_om_e_utran_cgi_List,
26862 { "e-utran-cgi-List", "gsm_map.om.e_utran_cgi_List",
26863 FT_UINT32, BASE_DEC, NULL, 0,
26864 NULL, HFILL }},
26865 { &hf_gsm_map_om_routingAreaId_List,
26866 { "routingAreaId-List", "gsm_map.om.routingAreaId_List",
26867 FT_UINT32, BASE_DEC, NULL, 0,
26868 NULL, HFILL }},
26869 { &hf_gsm_map_om_locationAreaId_List,
26870 { "locationAreaId-List", "gsm_map.om.locationAreaId_List",
26871 FT_UINT32, BASE_DEC, NULL, 0,
26872 NULL, HFILL }},
26873 { &hf_gsm_map_om_trackingAreaId_List,
26874 { "trackingAreaId-List", "gsm_map.om.trackingAreaId_List",
26875 FT_UINT32, BASE_DEC, NULL, 0,
26876 NULL, HFILL }},
26877 { &hf_gsm_map_om_CGI_List_item,
26878 { "GlobalCellId", "gsm_map.om.GlobalCellId",
26879 FT_BYTES, BASE_NONE, NULL, 0,
26880 NULL, HFILL }},
26881 { &hf_gsm_map_om_E_UTRAN_CGI_List_item,
26882 { "E-UTRAN-CGI", "gsm_map.om.E_UTRAN_CGI",
26883 FT_BYTES, BASE_NONE, NULL, 0,
26884 NULL, HFILL }},
26885 { &hf_gsm_map_om_RoutingAreaId_List_item,
26886 { "RAIdentity", "gsm_map.om.RAIdentity",
26887 FT_BYTES, BASE_NONE, NULL, 0,
26888 NULL, HFILL }},
26889 { &hf_gsm_map_om_LocationAreaId_List_item,
26890 { "LAIFixedLength", "gsm_map.om.LAIFixedLength",
26891 FT_BYTES, BASE_NONE, NULL, 0,
26892 NULL, HFILL }},
26893 { &hf_gsm_map_om_TrackingAreaId_List_item,
26894 { "TA-Id", "gsm_map.om.TA_Id",
26895 FT_BYTES, BASE_NONE, NULL, 0,
26896 NULL, HFILL }},
26897 { &hf_gsm_map_om_msc_s_TraceDepth,
26898 { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth",
26899 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26900 "TraceDepth", HFILL }},
26901 { &hf_gsm_map_om_mgw_TraceDepth,
26902 { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth",
26903 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26904 "TraceDepth", HFILL }},
26905 { &hf_gsm_map_om_sgsn_TraceDepth,
26906 { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth",
26907 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26908 "TraceDepth", HFILL }},
26909 { &hf_gsm_map_om_ggsn_TraceDepth,
26910 { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth",
26911 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26912 "TraceDepth", HFILL }},
26913 { &hf_gsm_map_om_rnc_TraceDepth,
26914 { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth",
26915 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26916 "TraceDepth", HFILL }},
26917 { &hf_gsm_map_om_bmsc_TraceDepth,
26918 { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth",
26919 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26920 "TraceDepth", HFILL }},
26921 { &hf_gsm_map_om_mme_TraceDepth,
26922 { "mme-TraceDepth", "gsm_map.om.mme_TraceDepth",
26923 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26924 "TraceDepth", HFILL }},
26925 { &hf_gsm_map_om_sgw_TraceDepth,
26926 { "sgw-TraceDepth", "gsm_map.om.sgw_TraceDepth",
26927 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26928 "TraceDepth", HFILL }},
26929 { &hf_gsm_map_om_pgw_TraceDepth,
26930 { "pgw-TraceDepth", "gsm_map.om.pgw_TraceDepth",
26931 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26932 "TraceDepth", HFILL }},
26933 { &hf_gsm_map_om_eNB_TraceDepth,
26934 { "eNB-TraceDepth", "gsm_map.om.eNB_TraceDepth",
26935 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
26936 "TraceDepth", HFILL }},
26937 { &hf_gsm_map_om_msc_s_TraceDepthExtension,
26938 { "msc-s-TraceDepthExtension", "gsm_map.om.msc_s_TraceDepthExtension",
26939 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26940 "TraceDepthExtension", HFILL }},
26941 { &hf_gsm_map_om_mgw_TraceDepthExtension,
26942 { "mgw-TraceDepthExtension", "gsm_map.om.mgw_TraceDepthExtension",
26943 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26944 "TraceDepthExtension", HFILL }},
26945 { &hf_gsm_map_om_sgsn_TraceDepthExtension,
26946 { "sgsn-TraceDepthExtension", "gsm_map.om.sgsn_TraceDepthExtension",
26947 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26948 "TraceDepthExtension", HFILL }},
26949 { &hf_gsm_map_om_ggsn_TraceDepthExtension,
26950 { "ggsn-TraceDepthExtension", "gsm_map.om.ggsn_TraceDepthExtension",
26951 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26952 "TraceDepthExtension", HFILL }},
26953 { &hf_gsm_map_om_rnc_TraceDepthExtension,
26954 { "rnc-TraceDepthExtension", "gsm_map.om.rnc_TraceDepthExtension",
26955 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26956 "TraceDepthExtension", HFILL }},
26957 { &hf_gsm_map_om_bmsc_TraceDepthExtension,
26958 { "bmsc-TraceDepthExtension", "gsm_map.om.bmsc_TraceDepthExtension",
26959 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26960 "TraceDepthExtension", HFILL }},
26961 { &hf_gsm_map_om_mme_TraceDepthExtension,
26962 { "mme-TraceDepthExtension", "gsm_map.om.mme_TraceDepthExtension",
26963 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26964 "TraceDepthExtension", HFILL }},
26965 { &hf_gsm_map_om_sgw_TraceDepthExtension,
26966 { "sgw-TraceDepthExtension", "gsm_map.om.sgw_TraceDepthExtension",
26967 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26968 "TraceDepthExtension", HFILL }},
26969 { &hf_gsm_map_om_pgw_TraceDepthExtension,
26970 { "pgw-TraceDepthExtension", "gsm_map.om.pgw_TraceDepthExtension",
26971 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26972 "TraceDepthExtension", HFILL }},
26973 { &hf_gsm_map_om_eNB_TraceDepthExtension,
26974 { "eNB-TraceDepthExtension", "gsm_map.om.eNB_TraceDepthExtension",
26975 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
26976 "TraceDepthExtension", HFILL }},
26977 { &hf_gsm_map_om_msc_s_List,
26978 { "msc-s-List", "gsm_map.om.msc_s_List",
26979 FT_BYTES, BASE_NONE, NULL, 0,
26980 "MSC_S_InterfaceList", HFILL }},
26981 { &hf_gsm_map_om_mgw_List,
26982 { "mgw-List", "gsm_map.om.mgw_List",
26983 FT_BYTES, BASE_NONE, NULL, 0,
26984 "MGW_InterfaceList", HFILL }},
26985 { &hf_gsm_map_om_sgsn_List,
26986 { "sgsn-List", "gsm_map.om.sgsn_List",
26987 FT_BYTES, BASE_NONE, NULL, 0,
26988 "SGSN_InterfaceList", HFILL }},
26989 { &hf_gsm_map_om_ggsn_List,
26990 { "ggsn-List", "gsm_map.om.ggsn_List",
26991 FT_BYTES, BASE_NONE, NULL, 0,
26992 "GGSN_InterfaceList", HFILL }},
26993 { &hf_gsm_map_om_rnc_List,
26994 { "rnc-List", "gsm_map.om.rnc_List",
26995 FT_BYTES, BASE_NONE, NULL, 0,
26996 "RNC_InterfaceList", HFILL }},
26997 { &hf_gsm_map_om_bmsc_List,
26998 { "bmsc-List", "gsm_map.om.bmsc_List",
26999 FT_BYTES, BASE_NONE, NULL, 0,
27000 "BMSC_InterfaceList", HFILL }},
27001 { &hf_gsm_map_om_mme_List,
27002 { "mme-List", "gsm_map.om.mme_List",
27003 FT_BYTES, BASE_NONE, NULL, 0,
27004 "MME_InterfaceList", HFILL }},
27005 { &hf_gsm_map_om_sgw_List,
27006 { "sgw-List", "gsm_map.om.sgw_List",
27007 FT_BYTES, BASE_NONE, NULL, 0,
27008 "SGW_InterfaceList", HFILL }},
27009 { &hf_gsm_map_om_pgw_List,
27010 { "pgw-List", "gsm_map.om.pgw_List",
27011 FT_BYTES, BASE_NONE, NULL, 0,
27012 "PGW_InterfaceList", HFILL }},
27013 { &hf_gsm_map_om_eNB_List,
27014 { "eNB-List", "gsm_map.om.eNB_List",
27015 FT_BYTES, BASE_NONE, NULL, 0,
27016 "ENB_InterfaceList", HFILL }},
27017 { &hf_gsm_map_om_msc_s_List_01,
27018 { "msc-s-List", "gsm_map.om.msc_s_List",
27019 FT_BYTES, BASE_NONE, NULL, 0,
27020 "MSC_S_EventList", HFILL }},
27021 { &hf_gsm_map_om_mgw_List_01,
27022 { "mgw-List", "gsm_map.om.mgw_List",
27023 FT_BYTES, BASE_NONE, NULL, 0,
27024 "MGW_EventList", HFILL }},
27025 { &hf_gsm_map_om_sgsn_List_01,
27026 { "sgsn-List", "gsm_map.om.sgsn_List",
27027 FT_BYTES, BASE_NONE, NULL, 0,
27028 "SGSN_EventList", HFILL }},
27029 { &hf_gsm_map_om_ggsn_List_01,
27030 { "ggsn-List", "gsm_map.om.ggsn_List",
27031 FT_BYTES, BASE_NONE, NULL, 0,
27032 "GGSN_EventList", HFILL }},
27033 { &hf_gsm_map_om_bmsc_List_01,
27034 { "bmsc-List", "gsm_map.om.bmsc_List",
27035 FT_BYTES, BASE_NONE, NULL, 0,
27036 "BMSC_EventList", HFILL }},
27037 { &hf_gsm_map_om_mme_List_01,
27038 { "mme-List", "gsm_map.om.mme_List",
27039 FT_BYTES, BASE_NONE, NULL, 0,
27040 "MME_EventList", HFILL }},
27041 { &hf_gsm_map_om_sgw_List_01,
27042 { "sgw-List", "gsm_map.om.sgw_List",
27043 FT_BYTES, BASE_NONE, NULL, 0,
27044 "SGW_EventList", HFILL }},
27045 { &hf_gsm_map_om_pgw_List_01,
27046 { "pgw-List", "gsm_map.om.pgw_List",
27047 FT_BYTES, BASE_NONE, NULL, 0,
27048 "PGW_EventList", HFILL }},
27049 { &hf_gsm_map_om_traceRecordingSessionReference,
27050 { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference",
27051 FT_BYTES, BASE_NONE, NULL, 0,
27052 NULL, HFILL }},
27053 { &hf_gsm_map_om_rnc_InterfaceList,
27054 { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList",
27055 FT_BYTES, BASE_NONE, NULL, 0,
27056 NULL, HFILL }},
27057 { &hf_gsm_map_om_msc_s_InterfaceList,
27058 { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList",
27059 FT_BYTES, BASE_NONE, NULL, 0,
27060 NULL, HFILL }},
27061 { &hf_gsm_map_om_msc_s_EventList,
27062 { "msc-s-EventList", "gsm_map.om.msc_s_EventList",
27063 FT_BYTES, BASE_NONE, NULL, 0,
27064 NULL, HFILL }},
27065 { &hf_gsm_map_om_mgw_InterfaceList,
27066 { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList",
27067 FT_BYTES, BASE_NONE, NULL, 0,
27068 NULL, HFILL }},
27069 { &hf_gsm_map_om_mgw_EventList,
27070 { "mgw-EventList", "gsm_map.om.mgw_EventList",
27071 FT_BYTES, BASE_NONE, NULL, 0,
27072 NULL, HFILL }},
27073 { &hf_gsm_map_om_traceSupportIndicator,
27074 { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator_element",
27075 FT_NONE, BASE_NONE, NULL, 0,
27076 NULL, HFILL }},
27077 { &hf_gsm_map_om_TraceNE_TypeList_msc_s,
27078 { "msc-s", "gsm.map.om.TraceNE.TypeList.msc.s",
27079 FT_BOOLEAN, 8, NULL, 0x80,
27080 NULL, HFILL }},
27081 { &hf_gsm_map_om_TraceNE_TypeList_mgw,
27082 { "mgw", "gsm.map.om.TraceNE.TypeList.mgw",
27083 FT_BOOLEAN, 8, NULL, 0x40,
27084 NULL, HFILL }},
27085 { &hf_gsm_map_om_TraceNE_TypeList_sgsn,
27086 { "sgsn", "gsm.map.om.TraceNE.TypeList.sgsn",
27087 FT_BOOLEAN, 8, NULL, 0x20,
27088 NULL, HFILL }},
27089 { &hf_gsm_map_om_TraceNE_TypeList_ggsn,
27090 { "ggsn", "gsm.map.om.TraceNE.TypeList.ggsn",
27091 FT_BOOLEAN, 8, NULL, 0x10,
27092 NULL, HFILL }},
27093 { &hf_gsm_map_om_TraceNE_TypeList_rnc,
27094 { "rnc", "gsm.map.om.TraceNE.TypeList.rnc",
27095 FT_BOOLEAN, 8, NULL, 0x08,
27096 NULL, HFILL }},
27097 { &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
27098 { "bm-sc", "gsm.map.om.TraceNE.TypeList.bm.sc",
27099 FT_BOOLEAN, 8, NULL, 0x04,
27100 NULL, HFILL }},
27101 { &hf_gsm_map_om_TraceNE_TypeList_mme,
27102 { "mme", "gsm.map.om.TraceNE.TypeList.mme",
27103 FT_BOOLEAN, 8, NULL, 0x02,
27104 NULL, HFILL }},
27105 { &hf_gsm_map_om_TraceNE_TypeList_sgw,
27106 { "sgw", "gsm.map.om.TraceNE.TypeList.sgw",
27107 FT_BOOLEAN, 8, NULL, 0x01,
27108 NULL, HFILL }},
27109 { &hf_gsm_map_om_TraceNE_TypeList_pgw,
27110 { "pgw", "gsm.map.om.TraceNE.TypeList.pgw",
27111 FT_BOOLEAN, 8, NULL, 0x80,
27112 NULL, HFILL }},
27113 { &hf_gsm_map_om_TraceNE_TypeList_eNB,
27114 { "eNB", "gsm.map.om.TraceNE.TypeList.eNB",
27115 FT_BOOLEAN, 8, NULL, 0x40,
27116 NULL, HFILL }},
27117 { &hf_gsm_map_om_MSC_S_InterfaceList_a,
27118 { "a", "gsm.map.om.MSC.S.InterfaceList.a",
27119 FT_BOOLEAN, 8, NULL, 0x80,
27120 NULL, HFILL }},
27121 { &hf_gsm_map_om_MSC_S_InterfaceList_iu,
27122 { "iu", "gsm.map.om.MSC.S.InterfaceList.iu",
27123 FT_BOOLEAN, 8, NULL, 0x40,
27124 NULL, HFILL }},
27125 { &hf_gsm_map_om_MSC_S_InterfaceList_mc,
27126 { "mc", "gsm.map.om.MSC.S.InterfaceList.mc",
27127 FT_BOOLEAN, 8, NULL, 0x20,
27128 NULL, HFILL }},
27129 { &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
27130 { "map-g", "gsm.map.om.MSC.S.InterfaceList.map.g",
27131 FT_BOOLEAN, 8, NULL, 0x10,
27132 NULL, HFILL }},
27133 { &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
27134 { "map-b", "gsm.map.om.MSC.S.InterfaceList.map.b",
27135 FT_BOOLEAN, 8, NULL, 0x08,
27136 NULL, HFILL }},
27137 { &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
27138 { "map-e", "gsm.map.om.MSC.S.InterfaceList.map.e",
27139 FT_BOOLEAN, 8, NULL, 0x04,
27140 NULL, HFILL }},
27141 { &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
27142 { "map-f", "gsm.map.om.MSC.S.InterfaceList.map.f",
27143 FT_BOOLEAN, 8, NULL, 0x02,
27144 NULL, HFILL }},
27145 { &hf_gsm_map_om_MSC_S_InterfaceList_cap,
27146 { "cap", "gsm.map.om.MSC.S.InterfaceList.cap",
27147 FT_BOOLEAN, 8, NULL, 0x01,
27148 NULL, HFILL }},
27149 { &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
27150 { "map-d", "gsm.map.om.MSC.S.InterfaceList.map.d",
27151 FT_BOOLEAN, 8, NULL, 0x80,
27152 NULL, HFILL }},
27153 { &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
27154 { "map-c", "gsm.map.om.MSC.S.InterfaceList.map.c",
27155 FT_BOOLEAN, 8, NULL, 0x40,
27156 NULL, HFILL }},
27157 { &hf_gsm_map_om_MGW_InterfaceList_mc,
27158 { "mc", "gsm.map.om.MGW.InterfaceList.mc",
27159 FT_BOOLEAN, 8, NULL, 0x80,
27160 NULL, HFILL }},
27161 { &hf_gsm_map_om_MGW_InterfaceList_nb_up,
27162 { "nb-up", "gsm.map.om.MGW.InterfaceList.nb.up",
27163 FT_BOOLEAN, 8, NULL, 0x40,
27164 NULL, HFILL }},
27165 { &hf_gsm_map_om_MGW_InterfaceList_iu_up,
27166 { "iu-up", "gsm.map.om.MGW.InterfaceList.iu.up",
27167 FT_BOOLEAN, 8, NULL, 0x20,
27168 NULL, HFILL }},
27169 { &hf_gsm_map_om_SGSN_InterfaceList_gb,
27170 { "gb", "gsm.map.om.SGSN.InterfaceList.gb",
27171 FT_BOOLEAN, 8, NULL, 0x80,
27172 NULL, HFILL }},
27173 { &hf_gsm_map_om_SGSN_InterfaceList_iu,
27174 { "iu", "gsm.map.om.SGSN.InterfaceList.iu",
27175 FT_BOOLEAN, 8, NULL, 0x40,
27176 NULL, HFILL }},
27177 { &hf_gsm_map_om_SGSN_InterfaceList_gn,
27178 { "gn", "gsm.map.om.SGSN.InterfaceList.gn",
27179 FT_BOOLEAN, 8, NULL, 0x20,
27180 NULL, HFILL }},
27181 { &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
27182 { "map-gr", "gsm.map.om.SGSN.InterfaceList.map.gr",
27183 FT_BOOLEAN, 8, NULL, 0x10,
27184 NULL, HFILL }},
27185 { &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
27186 { "map-gd", "gsm.map.om.SGSN.InterfaceList.map.gd",
27187 FT_BOOLEAN, 8, NULL, 0x08,
27188 NULL, HFILL }},
27189 { &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
27190 { "map-gf", "gsm.map.om.SGSN.InterfaceList.map.gf",
27191 FT_BOOLEAN, 8, NULL, 0x04,
27192 NULL, HFILL }},
27193 { &hf_gsm_map_om_SGSN_InterfaceList_gs,
27194 { "gs", "gsm.map.om.SGSN.InterfaceList.gs",
27195 FT_BOOLEAN, 8, NULL, 0x02,
27196 NULL, HFILL }},
27197 { &hf_gsm_map_om_SGSN_InterfaceList_ge,
27198 { "ge", "gsm.map.om.SGSN.InterfaceList.ge",
27199 FT_BOOLEAN, 8, NULL, 0x01,
27200 NULL, HFILL }},
27201 { &hf_gsm_map_om_SGSN_InterfaceList_s3,
27202 { "s3", "gsm.map.om.SGSN.InterfaceList.s3",
27203 FT_BOOLEAN, 8, NULL, 0x80,
27204 NULL, HFILL }},
27205 { &hf_gsm_map_om_SGSN_InterfaceList_s4,
27206 { "s4", "gsm.map.om.SGSN.InterfaceList.s4",
27207 FT_BOOLEAN, 8, NULL, 0x40,
27208 NULL, HFILL }},
27209 { &hf_gsm_map_om_SGSN_InterfaceList_s6d,
27210 { "s6d", "gsm.map.om.SGSN.InterfaceList.s6d",
27211 FT_BOOLEAN, 8, NULL, 0x20,
27212 NULL, HFILL }},
27213 { &hf_gsm_map_om_GGSN_InterfaceList_gn,
27214 { "gn", "gsm.map.om.GGSN.InterfaceList.gn",
27215 FT_BOOLEAN, 8, NULL, 0x80,
27216 NULL, HFILL }},
27217 { &hf_gsm_map_om_GGSN_InterfaceList_gi,
27218 { "gi", "gsm.map.om.GGSN.InterfaceList.gi",
27219 FT_BOOLEAN, 8, NULL, 0x40,
27220 NULL, HFILL }},
27221 { &hf_gsm_map_om_GGSN_InterfaceList_gmb,
27222 { "gmb", "gsm.map.om.GGSN.InterfaceList.gmb",
27223 FT_BOOLEAN, 8, NULL, 0x20,
27224 NULL, HFILL }},
27225 { &hf_gsm_map_om_RNC_InterfaceList_iu,
27226 { "iu", "gsm.map.om.RNC.InterfaceList.iu",
27227 FT_BOOLEAN, 8, NULL, 0x80,
27228 NULL, HFILL }},
27229 { &hf_gsm_map_om_RNC_InterfaceList_iur,
27230 { "iur", "gsm.map.om.RNC.InterfaceList.iur",
27231 FT_BOOLEAN, 8, NULL, 0x40,
27232 NULL, HFILL }},
27233 { &hf_gsm_map_om_RNC_InterfaceList_iub,
27234 { "iub", "gsm.map.om.RNC.InterfaceList.iub",
27235 FT_BOOLEAN, 8, NULL, 0x20,
27236 NULL, HFILL }},
27237 { &hf_gsm_map_om_RNC_InterfaceList_uu,
27238 { "uu", "gsm.map.om.RNC.InterfaceList.uu",
27239 FT_BOOLEAN, 8, NULL, 0x10,
27240 NULL, HFILL }},
27241 { &hf_gsm_map_om_BMSC_InterfaceList_gmb,
27242 { "gmb", "gsm.map.om.BMSC.InterfaceList.gmb",
27243 FT_BOOLEAN, 8, NULL, 0x80,
27244 NULL, HFILL }},
27245 { &hf_gsm_map_om_MME_InterfaceList_s1_mme,
27246 { "s1-mme", "gsm.map.om.MME.InterfaceList.s1.mme",
27247 FT_BOOLEAN, 8, NULL, 0x80,
27248 NULL, HFILL }},
27249 { &hf_gsm_map_om_MME_InterfaceList_s3,
27250 { "s3", "gsm.map.om.MME.InterfaceList.s3",
27251 FT_BOOLEAN, 8, NULL, 0x40,
27252 NULL, HFILL }},
27253 { &hf_gsm_map_om_MME_InterfaceList_s6a,
27254 { "s6a", "gsm.map.om.MME.InterfaceList.s6a",
27255 FT_BOOLEAN, 8, NULL, 0x20,
27256 NULL, HFILL }},
27257 { &hf_gsm_map_om_MME_InterfaceList_s10,
27258 { "s10", "gsm.map.om.MME.InterfaceList.s10",
27259 FT_BOOLEAN, 8, NULL, 0x10,
27260 NULL, HFILL }},
27261 { &hf_gsm_map_om_MME_InterfaceList_s11,
27262 { "s11", "gsm.map.om.MME.InterfaceList.s11",
27263 FT_BOOLEAN, 8, NULL, 0x08,
27264 NULL, HFILL }},
27265 { &hf_gsm_map_om_SGW_InterfaceList_s4,
27266 { "s4", "gsm.map.om.SGW.InterfaceList.s4",
27267 FT_BOOLEAN, 8, NULL, 0x80,
27268 NULL, HFILL }},
27269 { &hf_gsm_map_om_SGW_InterfaceList_s5,
27270 { "s5", "gsm.map.om.SGW.InterfaceList.s5",
27271 FT_BOOLEAN, 8, NULL, 0x40,
27272 NULL, HFILL }},
27273 { &hf_gsm_map_om_SGW_InterfaceList_s8b,
27274 { "s8b", "gsm.map.om.SGW.InterfaceList.s8b",
27275 FT_BOOLEAN, 8, NULL, 0x20,
27276 NULL, HFILL }},
27277 { &hf_gsm_map_om_SGW_InterfaceList_s11,
27278 { "s11", "gsm.map.om.SGW.InterfaceList.s11",
27279 FT_BOOLEAN, 8, NULL, 0x10,
27280 NULL, HFILL }},
27281 { &hf_gsm_map_om_SGW_InterfaceList_gxc,
27282 { "gxc", "gsm.map.om.SGW.InterfaceList.gxc",
27283 FT_BOOLEAN, 8, NULL, 0x08,
27284 NULL, HFILL }},
27285 { &hf_gsm_map_om_PGW_InterfaceList_s2a,
27286 { "s2a", "gsm.map.om.PGW.InterfaceList.s2a",
27287 FT_BOOLEAN, 8, NULL, 0x80,
27288 NULL, HFILL }},
27289 { &hf_gsm_map_om_PGW_InterfaceList_s2b,
27290 { "s2b", "gsm.map.om.PGW.InterfaceList.s2b",
27291 FT_BOOLEAN, 8, NULL, 0x40,
27292 NULL, HFILL }},
27293 { &hf_gsm_map_om_PGW_InterfaceList_s2c,
27294 { "s2c", "gsm.map.om.PGW.InterfaceList.s2c",
27295 FT_BOOLEAN, 8, NULL, 0x20,
27296 NULL, HFILL }},
27297 { &hf_gsm_map_om_PGW_InterfaceList_s5,
27298 { "s5", "gsm.map.om.PGW.InterfaceList.s5",
27299 FT_BOOLEAN, 8, NULL, 0x10,
27300 NULL, HFILL }},
27301 { &hf_gsm_map_om_PGW_InterfaceList_s6b,
27302 { "s6b", "gsm.map.om.PGW.InterfaceList.s6b",
27303 FT_BOOLEAN, 8, NULL, 0x08,
27304 NULL, HFILL }},
27305 { &hf_gsm_map_om_PGW_InterfaceList_gx,
27306 { "gx", "gsm.map.om.PGW.InterfaceList.gx",
27307 FT_BOOLEAN, 8, NULL, 0x04,
27308 NULL, HFILL }},
27309 { &hf_gsm_map_om_PGW_InterfaceList_s8b,
27310 { "s8b", "gsm.map.om.PGW.InterfaceList.s8b",
27311 FT_BOOLEAN, 8, NULL, 0x02,
27312 NULL, HFILL }},
27313 { &hf_gsm_map_om_PGW_InterfaceList_sgi,
27314 { "sgi", "gsm.map.om.PGW.InterfaceList.sgi",
27315 FT_BOOLEAN, 8, NULL, 0x01,
27316 NULL, HFILL }},
27317 { &hf_gsm_map_om_ENB_InterfaceList_s1_mme,
27318 { "s1-mme", "gsm.map.om.ENB.InterfaceList.s1.mme",
27319 FT_BOOLEAN, 8, NULL, 0x80,
27320 NULL, HFILL }},
27321 { &hf_gsm_map_om_ENB_InterfaceList_x2,
27322 { "x2", "gsm.map.om.ENB.InterfaceList.x2",
27323 FT_BOOLEAN, 8, NULL, 0x40,
27324 NULL, HFILL }},
27325 { &hf_gsm_map_om_ENB_InterfaceList_uu,
27326 { "uu", "gsm.map.om.ENB.InterfaceList.uu",
27327 FT_BOOLEAN, 8, NULL, 0x20,
27328 NULL, HFILL }},
27329 { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
27330 { "mo-mtCall", "gsm.map.om.MSC.S.EventList.mo.mtCall",
27331 FT_BOOLEAN, 8, NULL, 0x80,
27332 NULL, HFILL }},
27333 { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
27334 { "mo-mt-sms", "gsm.map.om.MSC.S.EventList.mo.mt.sms",
27335 FT_BOOLEAN, 8, NULL, 0x40,
27336 NULL, HFILL }},
27337 { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
27338 { "lu-imsiAttach-imsiDetach", "gsm.map.om.MSC.S.EventList.lu.imsiAttach.imsiDetach",
27339 FT_BOOLEAN, 8, NULL, 0x20,
27340 NULL, HFILL }},
27341 { &hf_gsm_map_om_MSC_S_EventList_handovers,
27342 { "handovers", "gsm.map.om.MSC.S.EventList.handovers",
27343 FT_BOOLEAN, 8, NULL, 0x10,
27344 NULL, HFILL }},
27345 { &hf_gsm_map_om_MSC_S_EventList_ss,
27346 { "ss", "gsm.map.om.MSC.S.EventList.ss",
27347 FT_BOOLEAN, 8, NULL, 0x08,
27348 NULL, HFILL }},
27349 { &hf_gsm_map_om_MGW_EventList_context,
27350 { "context", "gsm.map.om.MGW.EventList.context",
27351 FT_BOOLEAN, 8, NULL, 0x80,
27352 NULL, HFILL }},
27353 { &hf_gsm_map_om_SGSN_EventList_pdpContext,
27354 { "pdpContext", "gsm.map.om.SGSN.EventList.pdpContext",
27355 FT_BOOLEAN, 8, NULL, 0x80,
27356 NULL, HFILL }},
27357 { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
27358 { "mo-mt-sms", "gsm.map.om.SGSN.EventList.mo.mt.sms",
27359 FT_BOOLEAN, 8, NULL, 0x40,
27360 NULL, HFILL }},
27361 { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
27362 { "rau-gprsAttach-gprsDetach", "gsm.map.om.SGSN.EventList.rau.gprsAttach.gprsDetach",
27363 FT_BOOLEAN, 8, NULL, 0x20,
27364 NULL, HFILL }},
27365 { &hf_gsm_map_om_SGSN_EventList_mbmsContext,
27366 { "mbmsContext", "gsm.map.om.SGSN.EventList.mbmsContext",
27367 FT_BOOLEAN, 8, NULL, 0x10,
27368 NULL, HFILL }},
27369 { &hf_gsm_map_om_GGSN_EventList_pdpContext,
27370 { "pdpContext", "gsm.map.om.GGSN.EventList.pdpContext",
27371 FT_BOOLEAN, 8, NULL, 0x80,
27372 NULL, HFILL }},
27373 { &hf_gsm_map_om_GGSN_EventList_mbmsContext,
27374 { "mbmsContext", "gsm.map.om.GGSN.EventList.mbmsContext",
27375 FT_BOOLEAN, 8, NULL, 0x40,
27376 NULL, HFILL }},
27377 { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
27378 { "mbmsMulticastServiceActivation", "gsm.map.om.BMSC.EventList.mbmsMulticastServiceActivation",
27379 FT_BOOLEAN, 8, NULL, 0x80,
27380 NULL, HFILL }},
27381 { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest,
27382 { "ue-initiatedPDNconectivityRequest", "gsm.map.om.MME.EventList.ue.initiatedPDNconectivityRequest",
27383 FT_BOOLEAN, 8, NULL, 0x80,
27384 NULL, HFILL }},
27385 { &hf_gsm_map_om_MME_EventList_serviceRequestts,
27386 { "serviceRequestts", "gsm.map.om.MME.EventList.serviceRequestts",
27387 FT_BOOLEAN, 8, NULL, 0x40,
27388 NULL, HFILL }},
27389 { &hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach,
27390 { "initialAttachTrackingAreaUpdateDetach", "gsm.map.om.MME.EventList.initialAttachTrackingAreaUpdateDetach",
27391 FT_BOOLEAN, 8, NULL, 0x20,
27392 NULL, HFILL }},
27393 { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection,
27394 { "ue-initiatedPDNdisconnection", "gsm.map.om.MME.EventList.ue.initiatedPDNdisconnection",
27395 FT_BOOLEAN, 8, NULL, 0x10,
27396 NULL, HFILL }},
27397 { &hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion,
27398 { "bearerActivationModificationDeletion", "gsm.map.om.MME.EventList.bearerActivationModificationDeletion",
27399 FT_BOOLEAN, 8, NULL, 0x08,
27400 NULL, HFILL }},
27401 { &hf_gsm_map_om_MME_EventList_handover,
27402 { "handover", "gsm.map.om.MME.EventList.handover",
27403 FT_BOOLEAN, 8, NULL, 0x04,
27404 NULL, HFILL }},
27405 { &hf_gsm_map_om_SGW_EventList_pdn_connectionCreation,
27406 { "pdn-connectionCreation", "gsm.map.om.SGW.EventList.pdn.connectionCreation",
27407 FT_BOOLEAN, 8, NULL, 0x80,
27408 NULL, HFILL }},
27409 { &hf_gsm_map_om_SGW_EventList_pdn_connectionTermination,
27410 { "pdn-connectionTermination", "gsm.map.om.SGW.EventList.pdn.connectionTermination",
27411 FT_BOOLEAN, 8, NULL, 0x40,
27412 NULL, HFILL }},
27413 { &hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion,
27414 { "bearerActivationModificationDeletion", "gsm.map.om.SGW.EventList.bearerActivationModificationDeletion",
27415 FT_BOOLEAN, 8, NULL, 0x20,
27416 NULL, HFILL }},
27417 { &hf_gsm_map_om_PGW_EventList_pdn_connectionCreation,
27418 { "pdn-connectionCreation", "gsm.map.om.PGW.EventList.pdn.connectionCreation",
27419 FT_BOOLEAN, 8, NULL, 0x80,
27420 NULL, HFILL }},
27421 { &hf_gsm_map_om_PGW_EventList_pdn_connectionTermination,
27422 { "pdn-connectionTermination", "gsm.map.om.PGW.EventList.pdn.connectionTermination",
27423 FT_BOOLEAN, 8, NULL, 0x40,
27424 NULL, HFILL }},
27425 { &hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion,
27426 { "bearerActivationModificationDeletion", "gsm.map.om.PGW.EventList.bearerActivationModificationDeletion",
27427 FT_BOOLEAN, 8, NULL, 0x20,
27428 NULL, HFILL }},
27430 /* --- Module MAP-MS-DataTypes --- --- --- */
27432 { &hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoArg_PDU,
27433 { "SendAuthenticationInfoArg", "gsm_map.ms.SendAuthenticationInfoArg_element",
27434 FT_NONE, BASE_NONE, NULL, 0,
27435 NULL, HFILL }},
27436 { &hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoRes_PDU,
27437 { "SendAuthenticationInfoRes", "gsm_map.ms.SendAuthenticationInfoRes_element",
27438 FT_NONE, BASE_NONE, NULL, 0,
27439 NULL, HFILL }},
27440 { &hf_gsm_map_ms_imsi,
27441 { "imsi", "gsm_map.ms.imsi",
27442 FT_BYTES, BASE_NONE, NULL, 0,
27443 NULL, HFILL }},
27444 { &hf_gsm_map_ms_msc_Number,
27445 { "msc-Number", "gsm_map.ms.msc_Number",
27446 FT_BYTES, BASE_NONE, NULL, 0,
27447 "ISDN_AddressString", HFILL }},
27448 { &hf_gsm_map_ms_vlr_Number,
27449 { "vlr-Number", "gsm_map.ms.vlr_Number",
27450 FT_BYTES, BASE_NONE, NULL, 0,
27451 "ISDN_AddressString", HFILL }},
27452 { &hf_gsm_map_ms_lmsi,
27453 { "lmsi", "gsm_map.ms.lmsi",
27454 FT_BYTES, BASE_NONE, NULL, 0,
27455 NULL, HFILL }},
27456 { &hf_gsm_map_ms_extensionContainer,
27457 { "extensionContainer", "gsm_map.ms.extensionContainer_element",
27458 FT_NONE, BASE_NONE, NULL, 0,
27459 NULL, HFILL }},
27460 { &hf_gsm_map_ms_vlr_Capability,
27461 { "vlr-Capability", "gsm_map.ms.vlr_Capability_element",
27462 FT_NONE, BASE_NONE, NULL, 0,
27463 NULL, HFILL }},
27464 { &hf_gsm_map_ms_informPreviousNetworkEntity,
27465 { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity_element",
27466 FT_NONE, BASE_NONE, NULL, 0,
27467 NULL, HFILL }},
27468 { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE,
27469 { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE_element",
27470 FT_NONE, BASE_NONE, NULL, 0,
27471 NULL, HFILL }},
27472 { &hf_gsm_map_ms_v_gmlc_Address,
27473 { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address",
27474 FT_BYTES, BASE_NONE, NULL, 0,
27475 "GSN_Address", HFILL }},
27476 { &hf_gsm_map_ms_add_info,
27477 { "add-info", "gsm_map.ms.add_info_element",
27478 FT_NONE, BASE_NONE, NULL, 0,
27479 NULL, HFILL }},
27480 { &hf_gsm_map_ms_pagingArea,
27481 { "pagingArea", "gsm_map.ms.pagingArea",
27482 FT_UINT32, BASE_DEC, NULL, 0,
27483 NULL, HFILL }},
27484 { &hf_gsm_map_ms_skipSubscriberDataUpdate,
27485 { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate_element",
27486 FT_NONE, BASE_NONE, NULL, 0,
27487 NULL, HFILL }},
27488 { &hf_gsm_map_ms_restorationIndicator,
27489 { "restorationIndicator", "gsm_map.ms.restorationIndicator_element",
27490 FT_NONE, BASE_NONE, NULL, 0,
27491 NULL, HFILL }},
27492 { &hf_gsm_map_ms_eplmn_List,
27493 { "eplmn-List", "gsm_map.ms.eplmn_List",
27494 FT_UINT32, BASE_DEC, NULL, 0,
27495 NULL, HFILL }},
27496 { &hf_gsm_map_ms_mme_DiameterAddress,
27497 { "mme-DiameterAddress", "gsm_map.ms.mme_DiameterAddress_element",
27498 FT_NONE, BASE_NONE, NULL, 0,
27499 "NetworkNodeDiameterAddress", HFILL }},
27500 { &hf_gsm_map_ms_supportedCamelPhases,
27501 { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases",
27502 FT_BYTES, BASE_NONE, NULL, 0,
27503 NULL, HFILL }},
27504 { &hf_gsm_map_ms_solsaSupportIndicator,
27505 { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator_element",
27506 FT_NONE, BASE_NONE, NULL, 0,
27507 NULL, HFILL }},
27508 { &hf_gsm_map_ms_istSupportIndicator,
27509 { "istSupportIndicator", "gsm_map.ms.istSupportIndicator",
27510 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
27511 "IST_SupportIndicator", HFILL }},
27512 { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity,
27513 { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity",
27514 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0,
27515 "SuperChargerInfo", HFILL }},
27516 { &hf_gsm_map_ms_longFTN_Supported,
27517 { "longFTN-Supported", "gsm_map.ms.longFTN_Supported_element",
27518 FT_NONE, BASE_NONE, NULL, 0,
27519 NULL, HFILL }},
27520 { &hf_gsm_map_ms_supportedLCS_CapabilitySets,
27521 { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets",
27522 FT_BYTES, BASE_NONE, NULL, 0,
27523 NULL, HFILL }},
27524 { &hf_gsm_map_ms_offeredCamel4CSIs,
27525 { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs",
27526 FT_BYTES, BASE_NONE, NULL, 0,
27527 NULL, HFILL }},
27528 { &hf_gsm_map_ms_supportedRAT_TypesIndicator,
27529 { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator",
27530 FT_BYTES, BASE_NONE, NULL, 0,
27531 "SupportedRAT_Types", HFILL }},
27532 { &hf_gsm_map_ms_longGroupID_Supported,
27533 { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported_element",
27534 FT_NONE, BASE_NONE, NULL, 0,
27535 NULL, HFILL }},
27536 { &hf_gsm_map_ms_mtRoamingForwardingSupported,
27537 { "mtRoamingForwardingSupported", "gsm_map.ms.mtRoamingForwardingSupported_element",
27538 FT_NONE, BASE_NONE, NULL, 0,
27539 NULL, HFILL }},
27540 { &hf_gsm_map_ms_msisdn_lessOperation_Supported,
27541 { "msisdn-lessOperation-Supported", "gsm_map.ms.msisdn_lessOperation_Supported_element",
27542 FT_NONE, BASE_NONE, NULL, 0,
27543 NULL, HFILL }},
27544 { &hf_gsm_map_ms_reset_ids_Supported,
27545 { "reset-ids-Supported", "gsm_map.ms.reset_ids_Supported_element",
27546 FT_NONE, BASE_NONE, NULL, 0,
27547 NULL, HFILL }},
27548 { &hf_gsm_map_ms_sendSubscriberData,
27549 { "sendSubscriberData", "gsm_map.ms.sendSubscriberData_element",
27550 FT_NONE, BASE_NONE, NULL, 0,
27551 NULL, HFILL }},
27552 { &hf_gsm_map_ms_subscriberDataStored,
27553 { "subscriberDataStored", "gsm_map.ms.subscriberDataStored",
27554 FT_BYTES, BASE_NONE, NULL, 0,
27555 "AgeIndicator", HFILL }},
27556 { &hf_gsm_map_ms_hlr_Number,
27557 { "hlr-Number", "gsm_map.ms.hlr_Number",
27558 FT_BYTES, BASE_NONE, NULL, 0,
27559 "ISDN_AddressString", HFILL }},
27560 { &hf_gsm_map_ms_add_Capability,
27561 { "add-Capability", "gsm_map.ms.add_Capability_element",
27562 FT_NONE, BASE_NONE, NULL, 0,
27563 NULL, HFILL }},
27564 { &hf_gsm_map_ms_pagingArea_Capability,
27565 { "pagingArea-Capability", "gsm_map.ms.pagingArea_Capability_element",
27566 FT_NONE, BASE_NONE, NULL, 0,
27567 NULL, HFILL }},
27568 { &hf_gsm_map_ms_imeisv,
27569 { "imeisv", "gsm_map.ms.imeisv",
27570 FT_BYTES, BASE_NONE, NULL, 0,
27571 "IMEI", HFILL }},
27572 { &hf_gsm_map_ms_PagingArea_item,
27573 { "LocationArea", "gsm_map.ms.LocationArea",
27574 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LocationArea_vals), 0,
27575 NULL, HFILL }},
27576 { &hf_gsm_map_ms_laiFixedLength,
27577 { "laiFixedLength", "gsm_map.ms.laiFixedLength",
27578 FT_BYTES, BASE_NONE, NULL, 0,
27579 NULL, HFILL }},
27580 { &hf_gsm_map_ms_lac,
27581 { "lac", "gsm_map.ms.lac",
27582 FT_UINT16, BASE_DEC_HEX, NULL, 0,
27583 NULL, HFILL }},
27584 { &hf_gsm_map_ms_identity,
27585 { "identity", "gsm_map.ms.identity",
27586 FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
27587 NULL, HFILL }},
27588 { &hf_gsm_map_ms_cancellationType,
27589 { "cancellationType", "gsm_map.ms.cancellationType",
27590 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0,
27591 NULL, HFILL }},
27592 { &hf_gsm_map_ms_typeOfUpdate,
27593 { "typeOfUpdate", "gsm_map.ms.typeOfUpdate",
27594 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_TypeOfUpdate_vals), 0,
27595 NULL, HFILL }},
27596 { &hf_gsm_map_ms_mtrf_SupportedAndAuthorized,
27597 { "mtrf-SupportedAndAuthorized", "gsm_map.ms.mtrf_SupportedAndAuthorized_element",
27598 FT_NONE, BASE_NONE, NULL, 0,
27599 NULL, HFILL }},
27600 { &hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized,
27601 { "mtrf-SupportedAndNotAuthorized", "gsm_map.ms.mtrf_SupportedAndNotAuthorized_element",
27602 FT_NONE, BASE_NONE, NULL, 0,
27603 NULL, HFILL }},
27604 { &hf_gsm_map_ms_newMSC_Number,
27605 { "newMSC-Number", "gsm_map.ms.newMSC_Number",
27606 FT_BYTES, BASE_NONE, NULL, 0,
27607 "ISDN_AddressString", HFILL }},
27608 { &hf_gsm_map_ms_newVLR_Number,
27609 { "newVLR-Number", "gsm_map.ms.newVLR_Number",
27610 FT_BYTES, BASE_NONE, NULL, 0,
27611 "ISDN_AddressString", HFILL }},
27612 { &hf_gsm_map_ms_new_lmsi,
27613 { "new-lmsi", "gsm_map.ms.new_lmsi",
27614 FT_BYTES, BASE_NONE, NULL, 0,
27615 "LMSI", HFILL }},
27616 { &hf_gsm_map_ms_reattach_Required,
27617 { "reattach-Required", "gsm_map.ms.reattach_Required_element",
27618 FT_NONE, BASE_NONE, NULL, 0,
27619 NULL, HFILL }},
27620 { &hf_gsm_map_ms_sgsn_Number,
27621 { "sgsn-Number", "gsm_map.ms.sgsn_Number",
27622 FT_BYTES, BASE_NONE, NULL, 0,
27623 "ISDN_AddressString", HFILL }},
27624 { &hf_gsm_map_ms_locationInformation,
27625 { "locationInformation", "gsm_map.ms.locationInformation_element",
27626 FT_NONE, BASE_NONE, NULL, 0,
27627 NULL, HFILL }},
27628 { &hf_gsm_map_ms_locationInformationGPRS,
27629 { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS_element",
27630 FT_NONE, BASE_NONE, NULL, 0,
27631 NULL, HFILL }},
27632 { &hf_gsm_map_ms_locationInformationEPS,
27633 { "locationInformationEPS", "gsm_map.ms.locationInformationEPS_element",
27634 FT_NONE, BASE_NONE, NULL, 0,
27635 NULL, HFILL }},
27636 { &hf_gsm_map_ms_freezeTMSI,
27637 { "freezeTMSI", "gsm_map.ms.freezeTMSI_element",
27638 FT_NONE, BASE_NONE, NULL, 0,
27639 NULL, HFILL }},
27640 { &hf_gsm_map_ms_freezeP_TMSI,
27641 { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI_element",
27642 FT_NONE, BASE_NONE, NULL, 0,
27643 NULL, HFILL }},
27644 { &hf_gsm_map_ms_freezeM_TMSI,
27645 { "freezeM-TMSI", "gsm_map.ms.freezeM_TMSI_element",
27646 FT_NONE, BASE_NONE, NULL, 0,
27647 NULL, HFILL }},
27648 { &hf_gsm_map_ms_tmsi,
27649 { "tmsi", "gsm_map.ms.tmsi",
27650 FT_BYTES, BASE_NONE, NULL, 0,
27651 NULL, HFILL }},
27652 { &hf_gsm_map_ms_numberOfRequestedVectors,
27653 { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors",
27654 FT_UINT32, BASE_DEC, NULL, 0,
27655 NULL, HFILL }},
27656 { &hf_gsm_map_ms_segmentationProhibited,
27657 { "segmentationProhibited", "gsm_map.ms.segmentationProhibited_element",
27658 FT_NONE, BASE_NONE, NULL, 0,
27659 NULL, HFILL }},
27660 { &hf_gsm_map_ms_previous_LAI,
27661 { "previous-LAI", "gsm_map.ms.previous_LAI",
27662 FT_BYTES, BASE_NONE, NULL, 0,
27663 "LAIFixedLength", HFILL }},
27664 { &hf_gsm_map_ms_hopCounter,
27665 { "hopCounter", "gsm_map.ms.hopCounter",
27666 FT_UINT32, BASE_DEC, NULL, 0,
27667 NULL, HFILL }},
27668 { &hf_gsm_map_ms_authenticationSetList,
27669 { "authenticationSetList", "gsm_map.ms.authenticationSetList",
27670 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0,
27671 NULL, HFILL }},
27672 { &hf_gsm_map_ms_currentSecurityContext,
27673 { "currentSecurityContext", "gsm_map.ms.currentSecurityContext",
27674 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0,
27675 NULL, HFILL }},
27676 { &hf_gsm_map_ms_lastUsedLtePLMN_Id,
27677 { "lastUsedLtePLMN-Id", "gsm_map.ms.lastUsedLtePLMN_Id",
27678 FT_BYTES, BASE_NONE, NULL, 0,
27679 "PLMN_Id", HFILL }},
27680 { &hf_gsm_map_ms_mtCallPendingFlag,
27681 { "mtCallPendingFlag", "gsm_map.ms.mtCallPendingFlag_element",
27682 FT_NONE, BASE_NONE, NULL, 0,
27683 NULL, HFILL }},
27684 { &hf_gsm_map_ms_tripletList,
27685 { "tripletList", "gsm_map.ms.tripletList",
27686 FT_UINT32, BASE_DEC, NULL, 0,
27687 NULL, HFILL }},
27688 { &hf_gsm_map_ms_quintupletList,
27689 { "quintupletList", "gsm_map.ms.quintupletList",
27690 FT_UINT32, BASE_DEC, NULL, 0,
27691 NULL, HFILL }},
27692 { &hf_gsm_map_ms_TripletList_item,
27693 { "AuthenticationTriplet", "gsm_map.ms.AuthenticationTriplet_element",
27694 FT_NONE, BASE_NONE, NULL, 0,
27695 NULL, HFILL }},
27696 { &hf_gsm_map_ms_QuintupletList_item,
27697 { "AuthenticationQuintuplet", "gsm_map.ms.AuthenticationQuintuplet_element",
27698 FT_NONE, BASE_NONE, NULL, 0,
27699 NULL, HFILL }},
27700 { &hf_gsm_map_ms_rand,
27701 { "rand", "gsm_map.ms.rand",
27702 FT_BYTES, BASE_NONE, NULL, 0,
27703 NULL, HFILL }},
27704 { &hf_gsm_map_ms_sres,
27705 { "sres", "gsm_map.ms.sres",
27706 FT_BYTES, BASE_NONE, NULL, 0,
27707 NULL, HFILL }},
27708 { &hf_gsm_map_ms_kc,
27709 { "kc", "gsm_map.ms.kc",
27710 FT_BYTES, BASE_NONE, NULL, 0,
27711 NULL, HFILL }},
27712 { &hf_gsm_map_ms_xres,
27713 { "xres", "gsm_map.ms.xres",
27714 FT_BYTES, BASE_NONE, NULL, 0,
27715 NULL, HFILL }},
27716 { &hf_gsm_map_ms_ck,
27717 { "ck", "gsm_map.ms.ck",
27718 FT_BYTES, BASE_NONE, NULL, 0,
27719 NULL, HFILL }},
27720 { &hf_gsm_map_ms_ik,
27721 { "ik", "gsm_map.ms.ik",
27722 FT_BYTES, BASE_NONE, NULL, 0,
27723 NULL, HFILL }},
27724 { &hf_gsm_map_ms_autn,
27725 { "autn", "gsm_map.ms.autn",
27726 FT_BYTES, BASE_NONE, NULL, 0,
27727 NULL, HFILL }},
27728 { &hf_gsm_map_ms_gsm_SecurityContextData,
27729 { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData_element",
27730 FT_NONE, BASE_NONE, NULL, 0,
27731 NULL, HFILL }},
27732 { &hf_gsm_map_ms_umts_SecurityContextData,
27733 { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData_element",
27734 FT_NONE, BASE_NONE, NULL, 0,
27735 NULL, HFILL }},
27736 { &hf_gsm_map_ms_cksn,
27737 { "cksn", "gsm_map.ms.cksn",
27738 FT_BYTES, BASE_NONE, NULL, 0,
27739 NULL, HFILL }},
27740 { &hf_gsm_map_ms_ksi,
27741 { "ksi", "gsm_map.ms.ksi",
27742 FT_BYTES, BASE_NONE, NULL, 0,
27743 NULL, HFILL }},
27744 { &hf_gsm_map_ms_failureCause,
27745 { "failureCause", "gsm_map.ms.failureCause",
27746 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0,
27747 NULL, HFILL }},
27748 { &hf_gsm_map_ms_re_attempt,
27749 { "re-attempt", "gsm_map.ms.re_attempt",
27750 FT_BOOLEAN, BASE_NONE, NULL, 0,
27751 "BOOLEAN", HFILL }},
27752 { &hf_gsm_map_ms_accessType,
27753 { "accessType", "gsm_map.ms.accessType",
27754 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0,
27755 NULL, HFILL }},
27756 { &hf_gsm_map_ms_sgsn_Address,
27757 { "sgsn-Address", "gsm_map.ms.sgsn_Address",
27758 FT_BYTES, BASE_NONE, NULL, 0,
27759 "GSN_Address", HFILL }},
27760 { &hf_gsm_map_ms_sgsn_Capability,
27761 { "sgsn-Capability", "gsm_map.ms.sgsn_Capability_element",
27762 FT_NONE, BASE_NONE, NULL, 0,
27763 NULL, HFILL }},
27764 { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE,
27765 { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE_element",
27766 FT_NONE, BASE_NONE, NULL, 0,
27767 NULL, HFILL }},
27768 { &hf_gsm_map_ms_eps_info,
27769 { "eps-info", "gsm_map.ms.eps_info",
27770 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_Info_vals), 0,
27771 NULL, HFILL }},
27772 { &hf_gsm_map_ms_servingNodeTypeIndicator,
27773 { "servingNodeTypeIndicator", "gsm_map.ms.servingNodeTypeIndicator_element",
27774 FT_NONE, BASE_NONE, NULL, 0,
27775 NULL, HFILL }},
27776 { &hf_gsm_map_ms_usedRAT_Type,
27777 { "usedRAT-Type", "gsm_map.ms.usedRAT_Type",
27778 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
27779 "Used_RAT_Type", HFILL }},
27780 { &hf_gsm_map_ms_gprsSubscriptionDataNotNeeded,
27781 { "gprsSubscriptionDataNotNeeded", "gsm_map.ms.gprsSubscriptionDataNotNeeded_element",
27782 FT_NONE, BASE_NONE, NULL, 0,
27783 NULL, HFILL }},
27784 { &hf_gsm_map_ms_nodeTypeIndicator,
27785 { "nodeTypeIndicator", "gsm_map.ms.nodeTypeIndicator_element",
27786 FT_NONE, BASE_NONE, NULL, 0,
27787 NULL, HFILL }},
27788 { &hf_gsm_map_ms_areaRestricted,
27789 { "areaRestricted", "gsm_map.ms.areaRestricted_element",
27790 FT_NONE, BASE_NONE, NULL, 0,
27791 NULL, HFILL }},
27792 { &hf_gsm_map_ms_ue_reachableIndicator,
27793 { "ue-reachableIndicator", "gsm_map.ms.ue_reachableIndicator_element",
27794 FT_NONE, BASE_NONE, NULL, 0,
27795 NULL, HFILL }},
27796 { &hf_gsm_map_ms_epsSubscriptionDataNotNeeded,
27797 { "epsSubscriptionDataNotNeeded", "gsm_map.ms.epsSubscriptionDataNotNeeded_element",
27798 FT_NONE, BASE_NONE, NULL, 0,
27799 NULL, HFILL }},
27800 { &hf_gsm_map_ms_ue_srvcc_Capability,
27801 { "ue-srvcc-Capability", "gsm_map.ms.ue_srvcc_Capability",
27802 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_UE_SRVCC_Capability_vals), 0,
27803 NULL, HFILL }},
27804 { &hf_gsm_map_ms_mmeNumberforMTSMS,
27805 { "mmeNumberforMTSMS", "gsm_map.ms.mmeNumberforMTSMS",
27806 FT_BYTES, BASE_NONE, NULL, 0,
27807 "ISDN_AddressString", HFILL }},
27808 { &hf_gsm_map_ms_smsRegisterRequest,
27809 { "smsRegisterRequest", "gsm_map.ms.smsRegisterRequest",
27810 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMSRegisterRequest_vals), 0,
27811 NULL, HFILL }},
27812 { &hf_gsm_map_ms_sms_Only,
27813 { "sms-Only", "gsm_map.ms.sms_Only_element",
27814 FT_NONE, BASE_NONE, NULL, 0,
27815 NULL, HFILL }},
27816 { &hf_gsm_map_ms_removalofMMERegistrationforSMS,
27817 { "removalofMMERegistrationforSMS", "gsm_map.ms.removalofMMERegistrationforSMS_element",
27818 FT_NONE, BASE_NONE, NULL, 0,
27819 NULL, HFILL }},
27820 { &hf_gsm_map_ms_sgsn_Name,
27821 { "sgsn-Name", "gsm_map.ms.sgsn_Name",
27822 FT_STRING, BASE_NONE, NULL, 0,
27823 "DiameterIdentity", HFILL }},
27824 { &hf_gsm_map_ms_sgsn_Realm,
27825 { "sgsn-Realm", "gsm_map.ms.sgsn_Realm",
27826 FT_STRING, BASE_NONE, NULL, 0,
27827 "DiameterIdentity", HFILL }},
27828 { &hf_gsm_map_ms_lgd_supportIndicator,
27829 { "lgd-supportIndicator", "gsm_map.ms.lgd_supportIndicator_element",
27830 FT_NONE, BASE_NONE, NULL, 0,
27831 NULL, HFILL }},
27832 { &hf_gsm_map_ms_adjacentPLMN_List,
27833 { "adjacentPLMN-List", "gsm_map.ms.adjacentPLMN_List",
27834 FT_UINT32, BASE_DEC, NULL, 0,
27835 NULL, HFILL }},
27836 { &hf_gsm_map_ms_pdn_gw_update,
27837 { "pdn-gw-update", "gsm_map.ms.pdn_gw_update_element",
27838 FT_NONE, BASE_NONE, NULL, 0,
27839 NULL, HFILL }},
27840 { &hf_gsm_map_ms_isr_Information,
27841 { "isr-Information", "gsm_map.ms.isr_Information",
27842 FT_BYTES, BASE_NONE, NULL, 0,
27843 NULL, HFILL }},
27844 { &hf_gsm_map_ms_apn,
27845 { "apn", "gsm_map.ms.apn",
27846 FT_BYTES, BASE_NONE, NULL, 0,
27847 NULL, HFILL }},
27848 { &hf_gsm_map_ms_pdn_gw_Identity,
27849 { "pdn-gw-Identity", "gsm_map.ms.pdn_gw_Identity_element",
27850 FT_NONE, BASE_NONE, NULL, 0,
27851 NULL, HFILL }},
27852 { &hf_gsm_map_ms_contextId,
27853 { "contextId", "gsm_map.ms.contextId",
27854 FT_UINT32, BASE_DEC, NULL, 0,
27855 NULL, HFILL }},
27856 { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator,
27857 { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator_element",
27858 FT_NONE, BASE_NONE, NULL, 0,
27859 NULL, HFILL }},
27860 { &hf_gsm_map_ms_smsCallBarringSupportIndicator,
27861 { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator_element",
27862 FT_NONE, BASE_NONE, NULL, 0,
27863 NULL, HFILL }},
27864 { &hf_gsm_map_ms_supportedFeatures,
27865 { "supportedFeatures", "gsm_map.ms.supportedFeatures",
27866 FT_BYTES, BASE_NONE, NULL, 0,
27867 NULL, HFILL }},
27868 { &hf_gsm_map_ms_t_adsDataRetrieval,
27869 { "t-adsDataRetrieval", "gsm_map.ms.t_adsDataRetrieval_element",
27870 FT_NONE, BASE_NONE, NULL, 0,
27871 NULL, HFILL }},
27872 { &hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions,
27873 { "homogeneousSupportOfIMSVoiceOverPSSessions", "gsm_map.ms.homogeneousSupportOfIMSVoiceOverPSSessions",
27874 FT_BOOLEAN, BASE_NONE, NULL, 0,
27875 "BOOLEAN", HFILL }},
27876 { &hf_gsm_map_ms_cancellationTypeInitialAttach,
27877 { "cancellationTypeInitialAttach", "gsm_map.ms.cancellationTypeInitialAttach_element",
27878 FT_NONE, BASE_NONE, NULL, 0,
27879 NULL, HFILL }},
27880 { &hf_gsm_map_ms_updateofHomogeneousSupportOfIMSVoiceOverPSSessions,
27881 { "updateofHomogeneousSupportOfIMSVoiceOverPSSessions", "gsm_map.ms.updateofHomogeneousSupportOfIMSVoiceOverPSSessions_element",
27882 FT_NONE, BASE_NONE, NULL, 0,
27883 NULL, HFILL }},
27884 { &hf_gsm_map_ms_ext_SupportedFeatures,
27885 { "ext-SupportedFeatures", "gsm_map.ms.ext_SupportedFeatures",
27886 FT_BYTES, BASE_NONE, NULL, 0,
27887 NULL, HFILL }},
27888 { &hf_gsm_map_ms_sgsn_mmeSeparationSupported,
27889 { "sgsn-mmeSeparationSupported", "gsm_map.ms.sgsn_mmeSeparationSupported_element",
27890 FT_NONE, BASE_NONE, NULL, 0,
27891 NULL, HFILL }},
27892 { &hf_gsm_map_ms_mmeRegisteredforSMS,
27893 { "mmeRegisteredforSMS", "gsm_map.ms.mmeRegisteredforSMS_element",
27894 FT_NONE, BASE_NONE, NULL, 0,
27895 NULL, HFILL }},
27896 { &hf_gsm_map_ms_EPLMN_List_item,
27897 { "PLMN-Id", "gsm_map.ms.PLMN_Id",
27898 FT_BYTES, BASE_NONE, NULL, 0,
27899 NULL, HFILL }},
27900 { &hf_gsm_map_ms_AdjacentPLMN_List_item,
27901 { "PLMN-Id", "gsm_map.ms.PLMN_Id",
27902 FT_BYTES, BASE_NONE, NULL, 0,
27903 NULL, HFILL }},
27904 { &hf_gsm_map_ms_an_APDU,
27905 { "an-APDU", "gsm_map.ms.an_APDU_element",
27906 FT_NONE, BASE_NONE, NULL, 0,
27907 "AccessNetworkSignalInfo", HFILL }},
27908 { &hf_gsm_map_ms_integrityProtectionInfo,
27909 { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo",
27910 FT_BYTES, BASE_NONE, NULL, 0,
27911 "IntegrityProtectionInformation", HFILL }},
27912 { &hf_gsm_map_ms_encryptionInfo,
27913 { "encryptionInfo", "gsm_map.ms.encryptionInfo",
27914 FT_BYTES, BASE_NONE, NULL, 0,
27915 "EncryptionInformation", HFILL }},
27916 { &hf_gsm_map_ms_keyStatus,
27917 { "keyStatus", "gsm_map.ms.keyStatus",
27918 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0,
27919 NULL, HFILL }},
27920 { &hf_gsm_map_ms_allowedGSM_Algorithms,
27921 { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms",
27922 FT_BYTES, BASE_NONE, NULL, 0,
27923 NULL, HFILL }},
27924 { &hf_gsm_map_ms_allowedUMTS_Algorithms,
27925 { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms_element",
27926 FT_NONE, BASE_NONE, NULL, 0,
27927 NULL, HFILL }},
27928 { &hf_gsm_map_ms_radioResourceInformation,
27929 { "radioResourceInformation", "gsm_map.ms.radioResourceInformation",
27930 FT_BYTES, BASE_NONE, NULL, 0,
27931 NULL, HFILL }},
27932 { &hf_gsm_map_ms_radioResourceList,
27933 { "radioResourceList", "gsm_map.ms.radioResourceList",
27934 FT_UINT32, BASE_DEC, NULL, 0,
27935 NULL, HFILL }},
27936 { &hf_gsm_map_ms_bssmap_ServiceHandover,
27937 { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover",
27938 FT_BYTES, BASE_NONE, NULL, 0,
27939 NULL, HFILL }},
27940 { &hf_gsm_map_ms_ranap_ServiceHandover,
27941 { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover",
27942 FT_BYTES, BASE_NONE, NULL, 0,
27943 NULL, HFILL }},
27944 { &hf_gsm_map_ms_bssmap_ServiceHandoverList,
27945 { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList",
27946 FT_UINT32, BASE_DEC, NULL, 0,
27947 NULL, HFILL }},
27948 { &hf_gsm_map_ms_currentlyUsedCodec,
27949 { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec",
27950 FT_BYTES, BASE_NONE, NULL, 0,
27951 "Codec", HFILL }},
27952 { &hf_gsm_map_ms_iuSupportedCodecsList,
27953 { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList_element",
27954 FT_NONE, BASE_NONE, NULL, 0,
27955 "SupportedCodecsList", HFILL }},
27956 { &hf_gsm_map_ms_rab_ConfigurationIndicator,
27957 { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator_element",
27958 FT_NONE, BASE_NONE, NULL, 0,
27959 NULL, HFILL }},
27960 { &hf_gsm_map_ms_iuSelectedCodec,
27961 { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec",
27962 FT_BYTES, BASE_NONE, NULL, 0,
27963 "Codec", HFILL }},
27964 { &hf_gsm_map_ms_alternativeChannelType,
27965 { "alternativeChannelType", "gsm_map.ms.alternativeChannelType",
27966 FT_BYTES, BASE_NONE, NULL, 0,
27967 "RadioResourceInformation", HFILL }},
27968 { &hf_gsm_map_ms_tracePropagationList,
27969 { "tracePropagationList", "gsm_map.ms.tracePropagationList_element",
27970 FT_NONE, BASE_NONE, NULL, 0,
27971 NULL, HFILL }},
27972 { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor,
27973 { "aoipSupportedCodecsListAnchor", "gsm_map.ms.aoipSupportedCodecsListAnchor_element",
27974 FT_NONE, BASE_NONE, NULL, 0,
27975 "AoIPCodecsList", HFILL }},
27976 { &hf_gsm_map_ms_aoipSelectedCodecTarget,
27977 { "aoipSelectedCodecTarget", "gsm_map.ms.aoipSelectedCodecTarget",
27978 FT_BYTES, BASE_NONE, NULL, 0,
27979 "AoIPCodec", HFILL }},
27980 { &hf_gsm_map_ms_uesbi_Iu,
27981 { "uesbi-Iu", "gsm_map.ms.uesbi_Iu_element",
27982 FT_NONE, BASE_NONE, NULL, 0,
27983 NULL, HFILL }},
27984 { &hf_gsm_map_ms_integrityProtectionAlgorithms,
27985 { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms",
27986 FT_BYTES, BASE_NONE, NULL, 0,
27987 "PermittedIntegrityProtectionAlgorithms", HFILL }},
27988 { &hf_gsm_map_ms_encryptionAlgorithms,
27989 { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms",
27990 FT_BYTES, BASE_NONE, NULL, 0,
27991 "PermittedEncryptionAlgorithms", HFILL }},
27992 { &hf_gsm_map_ms_targetCellId,
27993 { "targetCellId", "gsm_map.ms.targetCellId",
27994 FT_BYTES, BASE_NONE, NULL, 0,
27995 "GlobalCellId", HFILL }},
27996 { &hf_gsm_map_ms_ho_NumberNotRequired,
27997 { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired_element",
27998 FT_NONE, BASE_NONE, NULL, 0,
27999 NULL, HFILL }},
28000 { &hf_gsm_map_ms_targetRNCId,
28001 { "targetRNCId", "gsm_map.ms.targetRNCId",
28002 FT_BYTES, BASE_NONE, NULL, 0,
28003 "RNCId", HFILL }},
28004 { &hf_gsm_map_ms_multipleBearerRequested,
28005 { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested_element",
28006 FT_NONE, BASE_NONE, NULL, 0,
28007 NULL, HFILL }},
28008 { &hf_gsm_map_ms_rab_Id,
28009 { "rab-Id", "gsm_map.ms.rab_Id",
28010 FT_UINT32, BASE_DEC, NULL, 0,
28011 NULL, HFILL }},
28012 { &hf_gsm_map_ms_asciCallReference,
28013 { "asciCallReference", "gsm_map.ms.asciCallReference",
28014 FT_BYTES, BASE_NONE, NULL, 0,
28015 "ASCI_CallReference", HFILL }},
28016 { &hf_gsm_map_ms_geran_classmark,
28017 { "geran-classmark", "gsm_map.ms.geran_classmark",
28018 FT_BYTES, BASE_NONE, NULL, 0,
28019 NULL, HFILL }},
28020 { &hf_gsm_map_ms_iuCurrentlyUsedCodec,
28021 { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec",
28022 FT_BYTES, BASE_NONE, NULL, 0,
28023 "Codec", HFILL }},
28024 { &hf_gsm_map_ms_regionalSubscriptionData,
28025 { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData",
28026 FT_UINT32, BASE_DEC, NULL, 0,
28027 "ZoneCodeList", HFILL }},
28028 { &hf_gsm_map_ms_lclsGlobalCallReference,
28029 { "lclsGlobalCallReference", "gsm_map.ms.lclsGlobalCallReference",
28030 FT_BYTES, BASE_NONE, NULL, 0,
28031 "LCLS_GlobalCallReference", HFILL }},
28032 { &hf_gsm_map_ms_lcls_Negotiation,
28033 { "lcls-Negotiation", "gsm_map.ms.lcls_Negotiation",
28034 FT_BYTES, BASE_NONE, NULL, 0,
28035 NULL, HFILL }},
28036 { &hf_gsm_map_ms_lcls_Configuration_Preference,
28037 { "lcls-Configuration-Preference", "gsm_map.ms.lcls_Configuration_Preference",
28038 FT_BYTES, BASE_NONE, NULL, 0,
28039 "LCLS_ConfigurationPreference", HFILL }},
28040 { &hf_gsm_map_ms_csg_SubscriptionDataList,
28041 { "csg-SubscriptionDataList", "gsm_map.ms.csg_SubscriptionDataList",
28042 FT_UINT32, BASE_DEC, NULL, 0,
28043 NULL, HFILL }},
28044 { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item,
28045 { "BSSMAP-ServiceHandoverInfo", "gsm_map.ms.BSSMAP_ServiceHandoverInfo_element",
28046 FT_NONE, BASE_NONE, NULL, 0,
28047 NULL, HFILL }},
28048 { &hf_gsm_map_ms_RadioResourceList_item,
28049 { "RadioResource", "gsm_map.ms.RadioResource_element",
28050 FT_NONE, BASE_NONE, NULL, 0,
28051 NULL, HFILL }},
28052 { &hf_gsm_map_ms_handoverNumber,
28053 { "handoverNumber", "gsm_map.ms.handoverNumber",
28054 FT_BYTES, BASE_NONE, NULL, 0,
28055 "ISDN_AddressString", HFILL }},
28056 { &hf_gsm_map_ms_relocationNumberList,
28057 { "relocationNumberList", "gsm_map.ms.relocationNumberList",
28058 FT_UINT32, BASE_DEC, NULL, 0,
28059 NULL, HFILL }},
28060 { &hf_gsm_map_ms_multicallBearerInfo,
28061 { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo",
28062 FT_UINT32, BASE_DEC, NULL, 0,
28063 NULL, HFILL }},
28064 { &hf_gsm_map_ms_multipleBearerNotSupported,
28065 { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported_element",
28066 FT_NONE, BASE_NONE, NULL, 0,
28067 NULL, HFILL }},
28068 { &hf_gsm_map_ms_selectedUMTS_Algorithms,
28069 { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms_element",
28070 FT_NONE, BASE_NONE, NULL, 0,
28071 NULL, HFILL }},
28072 { &hf_gsm_map_ms_chosenRadioResourceInformation,
28073 { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation_element",
28074 FT_NONE, BASE_NONE, NULL, 0,
28075 NULL, HFILL }},
28076 { &hf_gsm_map_ms_iuAvailableCodecsList,
28077 { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList_element",
28078 FT_NONE, BASE_NONE, NULL, 0,
28079 "CodecList", HFILL }},
28080 { &hf_gsm_map_ms_aoipAvailableCodecsListMap,
28081 { "aoipAvailableCodecsListMap", "gsm_map.ms.aoipAvailableCodecsListMap_element",
28082 FT_NONE, BASE_NONE, NULL, 0,
28083 "AoIPCodecsList", HFILL }},
28084 { &hf_gsm_map_ms_integrityProtectionAlgorithm,
28085 { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm",
28086 FT_BYTES, BASE_NONE, NULL, 0,
28087 "ChosenIntegrityProtectionAlgorithm", HFILL }},
28088 { &hf_gsm_map_ms_encryptionAlgorithm,
28089 { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm",
28090 FT_BYTES, BASE_NONE, NULL, 0,
28091 "ChosenEncryptionAlgorithm", HFILL }},
28092 { &hf_gsm_map_ms_chosenChannelInfo,
28093 { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo",
28094 FT_BYTES, BASE_NONE, NULL, 0,
28095 NULL, HFILL }},
28096 { &hf_gsm_map_ms_chosenSpeechVersion,
28097 { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion",
28098 FT_BYTES, BASE_NONE, NULL, 0,
28099 NULL, HFILL }},
28100 { &hf_gsm_map_ms_targetMSC_Number,
28101 { "targetMSC-Number", "gsm_map.ms.targetMSC_Number",
28102 FT_BYTES, BASE_NONE, NULL, 0,
28103 "ISDN_AddressString", HFILL }},
28104 { &hf_gsm_map_ms_selectedRab_Id,
28105 { "selectedRab-Id", "gsm_map.ms.selectedRab_Id",
28106 FT_UINT32, BASE_DEC, NULL, 0,
28107 "RAB_Id", HFILL }},
28108 { &hf_gsm_map_ms_selectedGSM_Algorithm,
28109 { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm",
28110 FT_BYTES, BASE_NONE, NULL, 0,
28111 NULL, HFILL }},
28112 { &hf_gsm_map_ms_iUSelectedCodec,
28113 { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec",
28114 FT_BYTES, BASE_NONE, NULL, 0,
28115 "Codec", HFILL }},
28116 { &hf_gsm_map_ms_codec1,
28117 { "codec1", "gsm_map.ms.codec1",
28118 FT_BYTES, BASE_NONE, NULL, 0,
28119 "AoIPCodec", HFILL }},
28120 { &hf_gsm_map_ms_codec2,
28121 { "codec2", "gsm_map.ms.codec2",
28122 FT_BYTES, BASE_NONE, NULL, 0,
28123 "AoIPCodec", HFILL }},
28124 { &hf_gsm_map_ms_codec3,
28125 { "codec3", "gsm_map.ms.codec3",
28126 FT_BYTES, BASE_NONE, NULL, 0,
28127 "AoIPCodec", HFILL }},
28128 { &hf_gsm_map_ms_codec4,
28129 { "codec4", "gsm_map.ms.codec4",
28130 FT_BYTES, BASE_NONE, NULL, 0,
28131 "AoIPCodec", HFILL }},
28132 { &hf_gsm_map_ms_codec5,
28133 { "codec5", "gsm_map.ms.codec5",
28134 FT_BYTES, BASE_NONE, NULL, 0,
28135 "AoIPCodec", HFILL }},
28136 { &hf_gsm_map_ms_codec6,
28137 { "codec6", "gsm_map.ms.codec6",
28138 FT_BYTES, BASE_NONE, NULL, 0,
28139 "AoIPCodec", HFILL }},
28140 { &hf_gsm_map_ms_codec7,
28141 { "codec7", "gsm_map.ms.codec7",
28142 FT_BYTES, BASE_NONE, NULL, 0,
28143 "AoIPCodec", HFILL }},
28144 { &hf_gsm_map_ms_codec8,
28145 { "codec8", "gsm_map.ms.codec8",
28146 FT_BYTES, BASE_NONE, NULL, 0,
28147 "AoIPCodec", HFILL }},
28148 { &hf_gsm_map_ms_utranCodecList,
28149 { "utranCodecList", "gsm_map.ms.utranCodecList_element",
28150 FT_NONE, BASE_NONE, NULL, 0,
28151 "CodecList", HFILL }},
28152 { &hf_gsm_map_ms_geranCodecList,
28153 { "geranCodecList", "gsm_map.ms.geranCodecList_element",
28154 FT_NONE, BASE_NONE, NULL, 0,
28155 "CodecList", HFILL }},
28156 { &hf_gsm_map_ms_codec1_01,
28157 { "codec1", "gsm_map.ms.codec1",
28158 FT_BYTES, BASE_NONE, NULL, 0,
28159 "Codec", HFILL }},
28160 { &hf_gsm_map_ms_codec2_01,
28161 { "codec2", "gsm_map.ms.codec2",
28162 FT_BYTES, BASE_NONE, NULL, 0,
28163 "Codec", HFILL }},
28164 { &hf_gsm_map_ms_codec3_01,
28165 { "codec3", "gsm_map.ms.codec3",
28166 FT_BYTES, BASE_NONE, NULL, 0,
28167 "Codec", HFILL }},
28168 { &hf_gsm_map_ms_codec4_01,
28169 { "codec4", "gsm_map.ms.codec4",
28170 FT_BYTES, BASE_NONE, NULL, 0,
28171 "Codec", HFILL }},
28172 { &hf_gsm_map_ms_codec5_01,
28173 { "codec5", "gsm_map.ms.codec5",
28174 FT_BYTES, BASE_NONE, NULL, 0,
28175 "Codec", HFILL }},
28176 { &hf_gsm_map_ms_codec6_01,
28177 { "codec6", "gsm_map.ms.codec6",
28178 FT_BYTES, BASE_NONE, NULL, 0,
28179 "Codec", HFILL }},
28180 { &hf_gsm_map_ms_codec7_01,
28181 { "codec7", "gsm_map.ms.codec7",
28182 FT_BYTES, BASE_NONE, NULL, 0,
28183 "Codec", HFILL }},
28184 { &hf_gsm_map_ms_codec8_01,
28185 { "codec8", "gsm_map.ms.codec8",
28186 FT_BYTES, BASE_NONE, NULL, 0,
28187 "Codec", HFILL }},
28188 { &hf_gsm_map_ms_RelocationNumberList_item,
28189 { "RelocationNumber", "gsm_map.ms.RelocationNumber_element",
28190 FT_NONE, BASE_NONE, NULL, 0,
28191 NULL, HFILL }},
28192 { &hf_gsm_map_ms_immediateResponsePreferred,
28193 { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred_element",
28194 FT_NONE, BASE_NONE, NULL, 0,
28195 NULL, HFILL }},
28196 { &hf_gsm_map_ms_re_synchronisationInfo,
28197 { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo_element",
28198 FT_NONE, BASE_NONE, NULL, 0,
28199 NULL, HFILL }},
28200 { &hf_gsm_map_ms_requestingNodeType,
28201 { "requestingNodeType", "gsm_map.ms.requestingNodeType",
28202 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0,
28203 NULL, HFILL }},
28204 { &hf_gsm_map_ms_requestingPLMN_Id,
28205 { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id",
28206 FT_BYTES, BASE_NONE, NULL, 0,
28207 "PLMN_Id", HFILL }},
28208 { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors,
28209 { "numberOfRequestedAdditional-Vectors", "gsm_map.ms.numberOfRequestedAdditional_Vectors",
28210 FT_UINT32, BASE_DEC, NULL, 0,
28211 "NumberOfRequestedVectors", HFILL }},
28212 { &hf_gsm_map_ms_additionalVectorsAreForEPS,
28213 { "additionalVectorsAreForEPS", "gsm_map.ms.additionalVectorsAreForEPS_element",
28214 FT_NONE, BASE_NONE, NULL, 0,
28215 NULL, HFILL }},
28216 { &hf_gsm_map_ms_ueUsageTypeRequestIndication,
28217 { "ueUsageTypeRequestIndication", "gsm_map.ms.ueUsageTypeRequestIndication_element",
28218 FT_NONE, BASE_NONE, NULL, 0,
28219 NULL, HFILL }},
28220 { &hf_gsm_map_ms_auts,
28221 { "auts", "gsm_map.ms.auts",
28222 FT_BYTES, BASE_NONE, NULL, 0,
28223 NULL, HFILL }},
28224 { &hf_gsm_map_ms_eps_AuthenticationSetList,
28225 { "eps-AuthenticationSetList", "gsm_map.ms.eps_AuthenticationSetList",
28226 FT_UINT32, BASE_DEC, NULL, 0,
28227 NULL, HFILL }},
28228 { &hf_gsm_map_ms_ueUsageType,
28229 { "ueUsageType", "gsm_map.ms.ueUsageType",
28230 FT_BYTES, BASE_NONE, NULL, 0,
28231 "UE_UsageType", HFILL }},
28232 { &hf_gsm_map_ms_EPS_AuthenticationSetList_item,
28233 { "EPC-AV", "gsm_map.ms.EPC_AV_element",
28234 FT_NONE, BASE_NONE, NULL, 0,
28235 NULL, HFILL }},
28236 { &hf_gsm_map_ms_kasme,
28237 { "kasme", "gsm_map.ms.kasme",
28238 FT_BYTES, BASE_NONE, NULL, 0,
28239 NULL, HFILL }},
28240 { &hf_gsm_map_ms_imei,
28241 { "imei", "gsm_map.ms.imei",
28242 FT_BYTES, BASE_NONE, NULL, 0,
28243 NULL, HFILL }},
28244 { &hf_gsm_map_ms_requestedEquipmentInfo,
28245 { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo",
28246 FT_BYTES, BASE_NONE, NULL, 0,
28247 NULL, HFILL }},
28248 { &hf_gsm_map_ms_equipmentStatus,
28249 { "equipmentStatus", "gsm_map.ms.equipmentStatus",
28250 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0,
28251 NULL, HFILL }},
28252 { &hf_gsm_map_ms_bmuef,
28253 { "bmuef", "gsm_map.ms.bmuef_element",
28254 FT_NONE, BASE_NONE, NULL, 0,
28255 "UESBI_Iu", HFILL }},
28256 { &hf_gsm_map_ms_uesbi_IuA,
28257 { "uesbi-IuA", "gsm_map.ms.uesbi_IuA",
28258 FT_BYTES, BASE_NONE, NULL, 0,
28259 NULL, HFILL }},
28260 { &hf_gsm_map_ms_uesbi_IuB,
28261 { "uesbi-IuB", "gsm_map.ms.uesbi_IuB",
28262 FT_BYTES, BASE_NONE, NULL, 0,
28263 NULL, HFILL }},
28264 { &hf_gsm_map_ms_EDRX_Cycle_Length_List_item,
28265 { "EDRX-Cycle-Length", "gsm_map.ms.EDRX_Cycle_Length_element",
28266 FT_NONE, BASE_NONE, NULL, 0,
28267 NULL, HFILL }},
28268 { &hf_gsm_map_ms_rat_Type,
28269 { "rat-Type", "gsm_map.ms.rat_Type",
28270 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
28271 "Used_RAT_Type", HFILL }},
28272 { &hf_gsm_map_ms_eDRX_Cycle_Length_Value,
28273 { "eDRX-Cycle-Length-Value", "gsm_map.ms.eDRX_Cycle_Length_Value",
28274 FT_BYTES, BASE_NONE, NULL, 0,
28275 NULL, HFILL }},
28276 { &hf_gsm_map_ms_Reset_Id_List_item,
28277 { "Reset-Id", "gsm_map.ms.Reset_Id",
28278 FT_BYTES, BASE_NONE, NULL, 0,
28279 NULL, HFILL }},
28280 { &hf_gsm_map_ms_IMSI_GroupIdList_item,
28281 { "IMSI-GroupId", "gsm_map.ms.IMSI_GroupId_element",
28282 FT_NONE, BASE_NONE, NULL, 0,
28283 NULL, HFILL }},
28284 { &hf_gsm_map_ms_group_Service_Id,
28285 { "group-Service-Id", "gsm_map.ms.group_Service_Id",
28286 FT_UINT32, BASE_DEC, NULL, 0,
28287 NULL, HFILL }},
28288 { &hf_gsm_map_ms_plmnId,
28289 { "plmnId", "gsm_map.ms.plmnId",
28290 FT_BYTES, BASE_NONE, NULL, 0,
28291 "PLMN_Id", HFILL }},
28292 { &hf_gsm_map_ms_local_Group_ID,
28293 { "local-Group-ID", "gsm_map.ms.local_Group_ID",
28294 FT_BYTES, BASE_NONE, NULL, 0,
28295 "Local_GroupID", HFILL }},
28296 { &hf_gsm_map_ms_CSG_SubscriptionDataList_item,
28297 { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData_element",
28298 FT_NONE, BASE_NONE, NULL, 0,
28299 NULL, HFILL }},
28300 { &hf_gsm_map_ms_csg_Id,
28301 { "csg-Id", "gsm_map.ms.csg_Id",
28302 FT_BYTES, BASE_NONE, NULL, 0,
28303 NULL, HFILL }},
28304 { &hf_gsm_map_ms_expirationDate,
28305 { "expirationDate", "gsm_map.ms.expirationDate",
28306 FT_BYTES, BASE_NONE, NULL, 0,
28307 "Time", HFILL }},
28308 { &hf_gsm_map_ms_lipa_AllowedAPNList,
28309 { "lipa-AllowedAPNList", "gsm_map.ms.lipa_AllowedAPNList",
28310 FT_UINT32, BASE_DEC, NULL, 0,
28311 NULL, HFILL }},
28312 { &hf_gsm_map_ms_plmn_Id,
28313 { "plmn-Id", "gsm_map.ms.plmn_Id",
28314 FT_BYTES, BASE_NONE, NULL, 0,
28315 NULL, HFILL }},
28316 { &hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item,
28317 { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData_element",
28318 FT_NONE, BASE_NONE, NULL, 0,
28319 NULL, HFILL }},
28320 { &hf_gsm_map_ms_LIPA_AllowedAPNList_item,
28321 { "APN", "gsm_map.ms.APN",
28322 FT_BYTES, BASE_NONE, NULL, 0,
28323 NULL, HFILL }},
28324 { &hf_gsm_map_ms_apn_oi_Replacement,
28325 { "apn-oi-Replacement", "gsm_map.ms.apn_oi_Replacement",
28326 FT_BYTES, BASE_NONE, NULL, 0,
28327 NULL, HFILL }},
28328 { &hf_gsm_map_ms_rfsp_id,
28329 { "rfsp-id", "gsm_map.ms.rfsp_id",
28330 FT_UINT32, BASE_DEC, NULL, 0,
28331 NULL, HFILL }},
28332 { &hf_gsm_map_ms_ambr,
28333 { "ambr", "gsm_map.ms.ambr_element",
28334 FT_NONE, BASE_NONE, NULL, 0,
28335 NULL, HFILL }},
28336 { &hf_gsm_map_ms_apn_ConfigurationProfile,
28337 { "apn-ConfigurationProfile", "gsm_map.ms.apn_ConfigurationProfile_element",
28338 FT_NONE, BASE_NONE, NULL, 0,
28339 NULL, HFILL }},
28340 { &hf_gsm_map_ms_stn_sr,
28341 { "stn-sr", "gsm_map.ms.stn_sr",
28342 FT_BYTES, BASE_NONE, NULL, 0,
28343 "ISDN_AddressString", HFILL }},
28344 { &hf_gsm_map_ms_mps_CSPriority,
28345 { "mps-CSPriority", "gsm_map.ms.mps_CSPriority_element",
28346 FT_NONE, BASE_NONE, NULL, 0,
28347 NULL, HFILL }},
28348 { &hf_gsm_map_ms_mps_EPSPriority,
28349 { "mps-EPSPriority", "gsm_map.ms.mps_EPSPriority_element",
28350 FT_NONE, BASE_NONE, NULL, 0,
28351 NULL, HFILL }},
28352 { &hf_gsm_map_ms_subscribed_vsrvcc,
28353 { "subscribed-vsrvcc", "gsm_map.ms.subscribed_vsrvcc_element",
28354 FT_NONE, BASE_NONE, NULL, 0,
28355 NULL, HFILL }},
28356 { &hf_gsm_map_ms_defaultContext,
28357 { "defaultContext", "gsm_map.ms.defaultContext",
28358 FT_UINT32, BASE_DEC, NULL, 0,
28359 "ContextId", HFILL }},
28360 { &hf_gsm_map_ms_completeDataListIncluded,
28361 { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded_element",
28362 FT_NONE, BASE_NONE, NULL, 0,
28363 NULL, HFILL }},
28364 { &hf_gsm_map_ms_epsDataList,
28365 { "epsDataList", "gsm_map.ms.epsDataList",
28366 FT_UINT32, BASE_DEC, NULL, 0,
28367 "EPS_DataList", HFILL }},
28368 { &hf_gsm_map_ms_additionalDefaultContext,
28369 { "additionalDefaultContext", "gsm_map.ms.additionalDefaultContext",
28370 FT_UINT32, BASE_DEC, NULL, 0,
28371 "ContextId", HFILL }},
28372 { &hf_gsm_map_ms_EPS_DataList_item,
28373 { "APN-Configuration", "gsm_map.ms.APN_Configuration_element",
28374 FT_NONE, BASE_NONE, NULL, 0,
28375 NULL, HFILL }},
28376 { &hf_gsm_map_ms_pdn_Type,
28377 { "pdn-Type", "gsm_map.ms.pdn_Type",
28378 FT_BYTES, BASE_NONE, NULL, 0,
28379 NULL, HFILL }},
28380 { &hf_gsm_map_ms_servedPartyIP_IPv4_Address,
28381 { "servedPartyIP-IPv4-Address", "gsm_map.ms.servedPartyIP_IPv4_Address",
28382 FT_BYTES, BASE_NONE, NULL, 0,
28383 "PDP_Address", HFILL }},
28384 { &hf_gsm_map_ms_eps_qos_Subscribed,
28385 { "eps-qos-Subscribed", "gsm_map.ms.eps_qos_Subscribed_element",
28386 FT_NONE, BASE_NONE, NULL, 0,
28387 NULL, HFILL }},
28388 { &hf_gsm_map_ms_pdn_gw_AllocationType,
28389 { "pdn-gw-AllocationType", "gsm_map.ms.pdn_gw_AllocationType",
28390 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_GW_AllocationType_vals), 0,
28391 NULL, HFILL }},
28392 { &hf_gsm_map_ms_vplmnAddressAllowed,
28393 { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed_element",
28394 FT_NONE, BASE_NONE, NULL, 0,
28395 NULL, HFILL }},
28396 { &hf_gsm_map_ms_chargingCharacteristics,
28397 { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics",
28398 FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
28399 NULL, HFILL }},
28400 { &hf_gsm_map_ms_specificAPNInfoList,
28401 { "specificAPNInfoList", "gsm_map.ms.specificAPNInfoList",
28402 FT_UINT32, BASE_DEC, NULL, 0,
28403 NULL, HFILL }},
28404 { &hf_gsm_map_ms_servedPartyIP_IPv6_Address,
28405 { "servedPartyIP-IPv6-Address", "gsm_map.ms.servedPartyIP_IPv6_Address",
28406 FT_BYTES, BASE_NONE, NULL, 0,
28407 "PDP_Address", HFILL }},
28408 { &hf_gsm_map_ms_sipto_Permission,
28409 { "sipto-Permission", "gsm_map.ms.sipto_Permission",
28410 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SIPTO_Permission_vals), 0,
28411 NULL, HFILL }},
28412 { &hf_gsm_map_ms_lipa_Permission,
28413 { "lipa-Permission", "gsm_map.ms.lipa_Permission",
28414 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LIPA_Permission_vals), 0,
28415 NULL, HFILL }},
28416 { &hf_gsm_map_ms_restoration_Priority,
28417 { "restoration-Priority", "gsm_map.ms.restoration_Priority",
28418 FT_BYTES, BASE_NONE, NULL, 0,
28419 NULL, HFILL }},
28420 { &hf_gsm_map_ms_sipto_local_network_Permission,
28421 { "sipto-local-network-Permission", "gsm_map.ms.sipto_local_network_Permission",
28422 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SIPTO_Local_Network_Permission_vals), 0,
28423 NULL, HFILL }},
28424 { &hf_gsm_map_ms_wlan_offloadability,
28425 { "wlan-offloadability", "gsm_map.ms.wlan_offloadability_element",
28426 FT_NONE, BASE_NONE, NULL, 0,
28427 NULL, HFILL }},
28428 { &hf_gsm_map_ms_non_IP_PDN_Type_Indicator,
28429 { "non-IP-PDN-Type-Indicator", "gsm_map.ms.non_IP_PDN_Type_Indicator_element",
28430 FT_NONE, BASE_NONE, NULL, 0,
28431 NULL, HFILL }},
28432 { &hf_gsm_map_ms_nIDD_Mechanism,
28433 { "nIDD-Mechanism", "gsm_map.ms.nIDD_Mechanism",
28434 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NIDD_Mechanism_vals), 0,
28435 NULL, HFILL }},
28436 { &hf_gsm_map_ms_sCEF_ID,
28437 { "sCEF-ID", "gsm_map.ms.sCEF_ID",
28438 FT_BYTES, BASE_NONE, NULL, 0,
28439 "FQDN", HFILL }},
28440 { &hf_gsm_map_ms_pdn_ConnectionContinuity,
28441 { "pdn-ConnectionContinuity", "gsm_map.ms.pdn_ConnectionContinuity",
28442 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_ConnectionContinuity_vals), 0,
28443 NULL, HFILL }},
28444 { &hf_gsm_map_ms_qos_Class_Identifier,
28445 { "qos-Class-Identifier", "gsm_map.ms.qos_Class_Identifier",
28446 FT_UINT32, BASE_DEC, NULL, 0,
28447 NULL, HFILL }},
28448 { &hf_gsm_map_ms_allocation_Retention_Priority,
28449 { "allocation-Retention-Priority", "gsm_map.ms.allocation_Retention_Priority_element",
28450 FT_NONE, BASE_NONE, NULL, 0,
28451 NULL, HFILL }},
28452 { &hf_gsm_map_ms_max_RequestedBandwidth_UL,
28453 { "max-RequestedBandwidth-UL", "gsm_map.ms.max_RequestedBandwidth_UL",
28454 FT_INT32, BASE_DEC, NULL, 0,
28455 "Bandwidth", HFILL }},
28456 { &hf_gsm_map_ms_max_RequestedBandwidth_DL,
28457 { "max-RequestedBandwidth-DL", "gsm_map.ms.max_RequestedBandwidth_DL",
28458 FT_INT32, BASE_DEC, NULL, 0,
28459 "Bandwidth", HFILL }},
28460 { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_UL,
28461 { "extended-Max-RequestedBandwidth-UL", "gsm_map.ms.extended_Max_RequestedBandwidth_UL",
28462 FT_INT32, BASE_DEC, NULL, 0,
28463 "BandwidthExt", HFILL }},
28464 { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_DL,
28465 { "extended-Max-RequestedBandwidth-DL", "gsm_map.ms.extended_Max_RequestedBandwidth_DL",
28466 FT_INT32, BASE_DEC, NULL, 0,
28467 "BandwidthExt", HFILL }},
28468 { &hf_gsm_map_ms_SpecificAPNInfoList_item,
28469 { "SpecificAPNInfo", "gsm_map.ms.SpecificAPNInfo_element",
28470 FT_NONE, BASE_NONE, NULL, 0,
28471 NULL, HFILL }},
28472 { &hf_gsm_map_ms_priority_level,
28473 { "priority-level", "gsm_map.ms.priority_level",
28474 FT_INT32, BASE_DEC, NULL, 0,
28475 "INTEGER", HFILL }},
28476 { &hf_gsm_map_ms_pre_emption_capability,
28477 { "pre-emption-capability", "gsm_map.ms.pre_emption_capability",
28478 FT_BOOLEAN, BASE_NONE, NULL, 0,
28479 "BOOLEAN", HFILL }},
28480 { &hf_gsm_map_ms_pre_emption_vulnerability,
28481 { "pre-emption-vulnerability", "gsm_map.ms.pre_emption_vulnerability",
28482 FT_BOOLEAN, BASE_NONE, NULL, 0,
28483 "BOOLEAN", HFILL }},
28484 { &hf_gsm_map_ms_pdn_gw_ipv4_Address,
28485 { "pdn-gw-ipv4-Address", "gsm_map.ms.pdn_gw_ipv4_Address",
28486 FT_BYTES, BASE_NONE, NULL, 0,
28487 "PDP_Address", HFILL }},
28488 { &hf_gsm_map_ms_pdn_gw_ipv6_Address,
28489 { "pdn-gw-ipv6-Address", "gsm_map.ms.pdn_gw_ipv6_Address",
28490 FT_BYTES, BASE_NONE, NULL, 0,
28491 "PDP_Address", HFILL }},
28492 { &hf_gsm_map_ms_pdn_gw_name,
28493 { "pdn-gw-name", "gsm_map.ms.pdn_gw_name",
28494 FT_BYTES, BASE_NONE, NULL, 0,
28495 "FQDN", HFILL }},
28496 { &hf_gsm_map_ms_wlan_offloadability_EUTRAN,
28497 { "wlan-offloadability-EUTRAN", "gsm_map.ms.wlan_offloadability_EUTRAN",
28498 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_WLAN_Offloadability_Indication_vals), 0,
28499 "WLAN_Offloadability_Indication", HFILL }},
28500 { &hf_gsm_map_ms_wlan_offloadability_UTRAN,
28501 { "wlan-offloadability-UTRAN", "gsm_map.ms.wlan_offloadability_UTRAN",
28502 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_WLAN_Offloadability_Indication_vals), 0,
28503 "WLAN_Offloadability_Indication", HFILL }},
28504 { &hf_gsm_map_ms_AdjacentAccessRestrictionDataList_item,
28505 { "AdjacentAccessRestrictionData", "gsm_map.ms.AdjacentAccessRestrictionData_element",
28506 FT_NONE, BASE_NONE, NULL, 0,
28507 NULL, HFILL }},
28508 { &hf_gsm_map_ms_accessRestrictionData,
28509 { "accessRestrictionData", "gsm_map.ms.accessRestrictionData",
28510 FT_BYTES, BASE_NONE, NULL, 0,
28511 NULL, HFILL }},
28512 { &hf_gsm_map_ms_ext_AccessRestrictionData,
28513 { "ext-AccessRestrictionData", "gsm_map.ms.ext_AccessRestrictionData",
28514 FT_BYTES, BASE_NONE, NULL, 0,
28515 NULL, HFILL }},
28516 { &hf_gsm_map_ms_gmlc_List,
28517 { "gmlc-List", "gsm_map.ms.gmlc_List",
28518 FT_UINT32, BASE_DEC, NULL, 0,
28519 NULL, HFILL }},
28520 { &hf_gsm_map_ms_lcs_PrivacyExceptionList,
28521 { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList",
28522 FT_UINT32, BASE_DEC, NULL, 0,
28523 NULL, HFILL }},
28524 { &hf_gsm_map_ms_molr_List,
28525 { "molr-List", "gsm_map.ms.molr_List",
28526 FT_UINT32, BASE_DEC, NULL, 0,
28527 NULL, HFILL }},
28528 { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList,
28529 { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList",
28530 FT_UINT32, BASE_DEC, NULL, 0,
28531 "LCS_PrivacyExceptionList", HFILL }},
28532 { &hf_gsm_map_ms_GMLC_List_item,
28533 { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
28534 FT_BYTES, BASE_NONE, NULL, 0,
28535 NULL, HFILL }},
28536 { &hf_gsm_map_ms_GPRSDataList_item,
28537 { "PDP-Context", "gsm_map.ms.PDP_Context_element",
28538 FT_NONE, BASE_NONE, NULL, 0,
28539 NULL, HFILL }},
28540 { &hf_gsm_map_ms_pdp_ContextId,
28541 { "pdp-ContextId", "gsm_map.ms.pdp_ContextId",
28542 FT_UINT32, BASE_DEC, NULL, 0,
28543 "ContextId", HFILL }},
28544 { &hf_gsm_map_ms_pdp_Type,
28545 { "pdp-Type", "gsm_map.ms.pdp_Type",
28546 FT_BYTES, BASE_NONE, NULL, 0,
28547 NULL, HFILL }},
28548 { &hf_gsm_map_ms_pdp_Address,
28549 { "pdp-Address", "gsm_map.ms.pdp_Address",
28550 FT_BYTES, BASE_NONE, NULL, 0,
28551 NULL, HFILL }},
28552 { &hf_gsm_map_ms_qos_Subscribed,
28553 { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
28554 FT_BYTES, BASE_NONE, NULL, 0,
28555 NULL, HFILL }},
28556 { &hf_gsm_map_ms_ext_QoS_Subscribed,
28557 { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed",
28558 FT_BYTES, BASE_NONE, NULL, 0,
28559 NULL, HFILL }},
28560 { &hf_gsm_map_ms_pdp_ChargingCharacteristics,
28561 { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics",
28562 FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
28563 "ChargingCharacteristics", HFILL }},
28564 { &hf_gsm_map_ms_ext2_QoS_Subscribed,
28565 { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed",
28566 FT_BYTES, BASE_NONE, NULL, 0,
28567 NULL, HFILL }},
28568 { &hf_gsm_map_ms_ext3_QoS_Subscribed,
28569 { "ext3-QoS-Subscribed", "gsm_map.ms.ext3_QoS_Subscribed",
28570 FT_BYTES, BASE_NONE, NULL, 0,
28571 NULL, HFILL }},
28572 { &hf_gsm_map_ms_ext4_QoS_Subscribed,
28573 { "ext4-QoS-Subscribed", "gsm_map.ms.ext4_QoS_Subscribed",
28574 FT_BYTES, BASE_NONE, NULL, 0,
28575 NULL, HFILL }},
28576 { &hf_gsm_map_ms_ext_pdp_Type,
28577 { "ext-pdp-Type", "gsm_map.ms.ext_pdp_Type",
28578 FT_BYTES, BASE_NONE, NULL, 0,
28579 NULL, HFILL }},
28580 { &hf_gsm_map_ms_ext_pdp_Address,
28581 { "ext-pdp-Address", "gsm_map.ms.ext_pdp_Address",
28582 FT_BYTES, BASE_NONE, NULL, 0,
28583 "PDP_Address", HFILL }},
28584 { &hf_gsm_map_ms_gprsDataList,
28585 { "gprsDataList", "gsm_map.ms.gprsDataList",
28586 FT_UINT32, BASE_DEC, NULL, 0,
28587 NULL, HFILL }},
28588 { &hf_gsm_map_ms_gprs_CSI,
28589 { "gprs-CSI", "gsm_map.ms.gprs_CSI_element",
28590 FT_NONE, BASE_NONE, NULL, 0,
28591 NULL, HFILL }},
28592 { &hf_gsm_map_ms_mo_sms_CSI,
28593 { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI_element",
28594 FT_NONE, BASE_NONE, NULL, 0,
28595 "SMS_CSI", HFILL }},
28596 { &hf_gsm_map_ms_mt_sms_CSI,
28597 { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI_element",
28598 FT_NONE, BASE_NONE, NULL, 0,
28599 "SMS_CSI", HFILL }},
28600 { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList,
28601 { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList",
28602 FT_UINT32, BASE_DEC, NULL, 0,
28603 NULL, HFILL }},
28604 { &hf_gsm_map_ms_mg_csi,
28605 { "mg-csi", "gsm_map.ms.mg_csi_element",
28606 FT_NONE, BASE_NONE, NULL, 0,
28607 NULL, HFILL }},
28608 { &hf_gsm_map_ms_gprs_CamelTDPDataList,
28609 { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList",
28610 FT_UINT32, BASE_DEC, NULL, 0,
28611 NULL, HFILL }},
28612 { &hf_gsm_map_ms_camelCapabilityHandling,
28613 { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling",
28614 FT_UINT32, BASE_DEC, NULL, 0,
28615 NULL, HFILL }},
28616 { &hf_gsm_map_ms_notificationToCSE,
28617 { "notificationToCSE", "gsm_map.ms.notificationToCSE_element",
28618 FT_NONE, BASE_NONE, NULL, 0,
28619 NULL, HFILL }},
28620 { &hf_gsm_map_ms_csi_Active,
28621 { "csi-Active", "gsm_map.ms.csi_Active_element",
28622 FT_NONE, BASE_NONE, NULL, 0,
28623 NULL, HFILL }},
28624 { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item,
28625 { "GPRS-CamelTDPData", "gsm_map.ms.GPRS_CamelTDPData_element",
28626 FT_NONE, BASE_NONE, NULL, 0,
28627 NULL, HFILL }},
28628 { &hf_gsm_map_ms_gprs_TriggerDetectionPoint,
28629 { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint",
28630 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0,
28631 NULL, HFILL }},
28632 { &hf_gsm_map_ms_serviceKey,
28633 { "serviceKey", "gsm_map.ms.serviceKey",
28634 FT_UINT32, BASE_DEC, NULL, 0,
28635 NULL, HFILL }},
28636 { &hf_gsm_map_ms_gsmSCF_Address,
28637 { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address",
28638 FT_BYTES, BASE_NONE, NULL, 0,
28639 "ISDN_AddressString", HFILL }},
28640 { &hf_gsm_map_ms_defaultSessionHandling,
28641 { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling",
28642 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
28643 "DefaultGPRS_Handling", HFILL }},
28644 { &hf_gsm_map_ms_LSADataList_item,
28645 { "LSAData", "gsm_map.ms.LSAData_element",
28646 FT_NONE, BASE_NONE, NULL, 0,
28647 NULL, HFILL }},
28648 { &hf_gsm_map_ms_lsaIdentity,
28649 { "lsaIdentity", "gsm_map.ms.lsaIdentity",
28650 FT_BYTES, BASE_NONE, NULL, 0,
28651 NULL, HFILL }},
28652 { &hf_gsm_map_ms_lsaAttributes,
28653 { "lsaAttributes", "gsm_map.ms.lsaAttributes",
28654 FT_BYTES, BASE_NONE, NULL, 0,
28655 NULL, HFILL }},
28656 { &hf_gsm_map_ms_lsaActiveModeIndicator,
28657 { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator_element",
28658 FT_NONE, BASE_NONE, NULL, 0,
28659 NULL, HFILL }},
28660 { &hf_gsm_map_ms_lsaOnlyAccessIndicator,
28661 { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator",
28662 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0,
28663 NULL, HFILL }},
28664 { &hf_gsm_map_ms_lsaDataList,
28665 { "lsaDataList", "gsm_map.ms.lsaDataList",
28666 FT_UINT32, BASE_DEC, NULL, 0,
28667 NULL, HFILL }},
28668 { &hf_gsm_map_ms_msisdn,
28669 { "msisdn", "gsm_map.ms.msisdn",
28670 FT_BYTES, BASE_NONE, NULL, 0,
28671 "ISDN_AddressString", HFILL }},
28672 { &hf_gsm_map_ms_category,
28673 { "category", "gsm_map.ms.category",
28674 FT_BYTES, BASE_NONE, NULL, 0,
28675 NULL, HFILL }},
28676 { &hf_gsm_map_ms_subscriberStatus,
28677 { "subscriberStatus", "gsm_map.ms.subscriberStatus",
28678 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0,
28679 NULL, HFILL }},
28680 { &hf_gsm_map_ms_bearerServiceList,
28681 { "bearerServiceList", "gsm_map.ms.bearerServiceList",
28682 FT_UINT32, BASE_DEC, NULL, 0,
28683 NULL, HFILL }},
28684 { &hf_gsm_map_ms_teleserviceList,
28685 { "teleserviceList", "gsm_map.ms.teleserviceList",
28686 FT_UINT32, BASE_DEC, NULL, 0,
28687 NULL, HFILL }},
28688 { &hf_gsm_map_ms_provisionedSS,
28689 { "provisionedSS", "gsm_map.ms.provisionedSS",
28690 FT_UINT32, BASE_DEC, NULL, 0,
28691 "Ext_SS_InfoList", HFILL }},
28692 { &hf_gsm_map_ms_odb_Data,
28693 { "odb-Data", "gsm_map.ms.odb_Data_element",
28694 FT_NONE, BASE_NONE, NULL, 0,
28695 NULL, HFILL }},
28696 { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature,
28697 { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature_element",
28698 FT_NONE, BASE_NONE, NULL, 0,
28699 NULL, HFILL }},
28700 { &hf_gsm_map_ms_vbsSubscriptionData,
28701 { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData",
28702 FT_UINT32, BASE_DEC, NULL, 0,
28703 "VBSDataList", HFILL }},
28704 { &hf_gsm_map_ms_vgcsSubscriptionData,
28705 { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData",
28706 FT_UINT32, BASE_DEC, NULL, 0,
28707 "VGCSDataList", HFILL }},
28708 { &hf_gsm_map_ms_vlrCamelSubscriptionInfo,
28709 { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo_element",
28710 FT_NONE, BASE_NONE, NULL, 0,
28711 NULL, HFILL }},
28712 { &hf_gsm_map_ms_BearerServiceList_item,
28713 { "Ext-BearerServiceCode", "gsm_map.ms.Ext_BearerServiceCode",
28714 FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
28715 NULL, HFILL }},
28716 { &hf_gsm_map_ms_TeleserviceList_item,
28717 { "Ext-TeleserviceCode", "gsm_map.ms.Ext_TeleserviceCode",
28718 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
28719 NULL, HFILL }},
28720 { &hf_gsm_map_ms_odb_GeneralData,
28721 { "odb-GeneralData", "gsm_map.ms.odb_GeneralData",
28722 FT_BYTES, BASE_NONE, NULL, 0,
28723 NULL, HFILL }},
28724 { &hf_gsm_map_ms_odb_HPLMN_Data,
28725 { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data",
28726 FT_BYTES, BASE_NONE, NULL, 0,
28727 NULL, HFILL }},
28728 { &hf_gsm_map_ms_Ext_SS_InfoList_item,
28729 { "Ext-SS-Info", "gsm_map.ms.Ext_SS_Info",
28730 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0,
28731 NULL, HFILL }},
28732 { &hf_gsm_map_ms_forwardingInfo,
28733 { "forwardingInfo", "gsm_map.ms.forwardingInfo_element",
28734 FT_NONE, BASE_NONE, NULL, 0,
28735 "Ext_ForwInfo", HFILL }},
28736 { &hf_gsm_map_ms_callBarringInfo,
28737 { "callBarringInfo", "gsm_map.ms.callBarringInfo_element",
28738 FT_NONE, BASE_NONE, NULL, 0,
28739 "Ext_CallBarInfo", HFILL }},
28740 { &hf_gsm_map_ms_cug_Info,
28741 { "cug-Info", "gsm_map.ms.cug_Info_element",
28742 FT_NONE, BASE_NONE, NULL, 0,
28743 NULL, HFILL }},
28744 { &hf_gsm_map_ms_ss_Data,
28745 { "ss-Data", "gsm_map.ms.ss_Data_element",
28746 FT_NONE, BASE_NONE, NULL, 0,
28747 "Ext_SS_Data", HFILL }},
28748 { &hf_gsm_map_ms_emlpp_Info,
28749 { "emlpp-Info", "gsm_map.ms.emlpp_Info_element",
28750 FT_NONE, BASE_NONE, NULL, 0,
28751 NULL, HFILL }},
28752 { &hf_gsm_map_ms_ss_Code,
28753 { "ss-Code", "gsm_map.ms.ss_Code",
28754 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
28755 NULL, HFILL }},
28756 { &hf_gsm_map_ms_forwardingFeatureList,
28757 { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList",
28758 FT_UINT32, BASE_DEC, NULL, 0,
28759 "Ext_ForwFeatureList", HFILL }},
28760 { &hf_gsm_map_ms_Ext_ForwFeatureList_item,
28761 { "Ext-ForwFeature", "gsm_map.ms.Ext_ForwFeature_element",
28762 FT_NONE, BASE_NONE, NULL, 0,
28763 NULL, HFILL }},
28764 { &hf_gsm_map_ms_basicService,
28765 { "basicService", "gsm_map.ms.basicService",
28766 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
28767 "Ext_BasicServiceCode", HFILL }},
28768 { &hf_gsm_map_ms_ss_Status,
28769 { "ss-Status", "gsm_map.ms.ss_Status",
28770 FT_BYTES, BASE_NONE, NULL, 0,
28771 "Ext_SS_Status", HFILL }},
28772 { &hf_gsm_map_ms_forwardedToNumber,
28773 { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
28774 FT_BYTES, BASE_NONE, NULL, 0,
28775 "ISDN_AddressString", HFILL }},
28776 { &hf_gsm_map_ms_forwardedToSubaddress,
28777 { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress",
28778 FT_BYTES, BASE_NONE, NULL, 0,
28779 "ISDN_SubaddressString", HFILL }},
28780 { &hf_gsm_map_ms_forwardingOptions,
28781 { "forwardingOptions", "gsm_map.ms.forwardingOptions",
28782 FT_BYTES, BASE_NONE, NULL, 0,
28783 NULL, HFILL }},
28784 { &hf_gsm_map_ms_noReplyConditionTime,
28785 { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime",
28786 FT_UINT32, BASE_DEC, NULL, 0,
28787 "Ext_NoRepCondTime", HFILL }},
28788 { &hf_gsm_map_ms_longForwardedToNumber,
28789 { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber",
28790 FT_BYTES, BASE_NONE, NULL, 0,
28791 "FTN_AddressString", HFILL }},
28792 { &hf_gsm_map_ms_callBarringFeatureList,
28793 { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList",
28794 FT_UINT32, BASE_DEC, NULL, 0,
28795 "Ext_CallBarFeatureList", HFILL }},
28796 { &hf_gsm_map_ms_Ext_CallBarFeatureList_item,
28797 { "Ext-CallBarringFeature", "gsm_map.ms.Ext_CallBarringFeature_element",
28798 FT_NONE, BASE_NONE, NULL, 0,
28799 NULL, HFILL }},
28800 { &hf_gsm_map_ms_cug_SubscriptionList,
28801 { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList",
28802 FT_UINT32, BASE_DEC, NULL, 0,
28803 NULL, HFILL }},
28804 { &hf_gsm_map_ms_cug_FeatureList,
28805 { "cug-FeatureList", "gsm_map.ms.cug_FeatureList",
28806 FT_UINT32, BASE_DEC, NULL, 0,
28807 NULL, HFILL }},
28808 { &hf_gsm_map_ms_CUG_SubscriptionList_item,
28809 { "CUG-Subscription", "gsm_map.ms.CUG_Subscription_element",
28810 FT_NONE, BASE_NONE, NULL, 0,
28811 NULL, HFILL }},
28812 { &hf_gsm_map_ms_cug_Index,
28813 { "cug-Index", "gsm_map.ms.cug_Index",
28814 FT_UINT32, BASE_DEC, NULL, 0,
28815 NULL, HFILL }},
28816 { &hf_gsm_map_ms_cug_Interlock,
28817 { "cug-Interlock", "gsm_map.ms.cug_Interlock",
28818 FT_BYTES, BASE_NONE, NULL, 0,
28819 NULL, HFILL }},
28820 { &hf_gsm_map_ms_intraCUG_Options,
28821 { "intraCUG-Options", "gsm_map.ms.intraCUG_Options",
28822 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0,
28823 NULL, HFILL }},
28824 { &hf_gsm_map_ms_basicServiceGroupList,
28825 { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList",
28826 FT_UINT32, BASE_DEC, NULL, 0,
28827 "Ext_BasicServiceGroupList", HFILL }},
28828 { &hf_gsm_map_ms_CUG_FeatureList_item,
28829 { "CUG-Feature", "gsm_map.ms.CUG_Feature_element",
28830 FT_NONE, BASE_NONE, NULL, 0,
28831 NULL, HFILL }},
28832 { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item,
28833 { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
28834 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
28835 NULL, HFILL }},
28836 { &hf_gsm_map_ms_preferentialCUG_Indicator,
28837 { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator",
28838 FT_UINT32, BASE_DEC, NULL, 0,
28839 "CUG_Index", HFILL }},
28840 { &hf_gsm_map_ms_interCUG_Restrictions,
28841 { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions",
28842 FT_BYTES, BASE_NONE, NULL, 0,
28843 NULL, HFILL }},
28844 { &hf_gsm_map_ms_ss_SubscriptionOption,
28845 { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption",
28846 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
28847 NULL, HFILL }},
28848 { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item,
28849 { "LCS-PrivacyClass", "gsm_map.ms.LCS_PrivacyClass_element",
28850 FT_NONE, BASE_NONE, NULL, 0,
28851 NULL, HFILL }},
28852 { &hf_gsm_map_ms_notificationToMSUser,
28853 { "notificationToMSUser", "gsm_map.ms.notificationToMSUser",
28854 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
28855 NULL, HFILL }},
28856 { &hf_gsm_map_ms_externalClientList,
28857 { "externalClientList", "gsm_map.ms.externalClientList",
28858 FT_UINT32, BASE_DEC, NULL, 0,
28859 NULL, HFILL }},
28860 { &hf_gsm_map_ms_plmnClientList,
28861 { "plmnClientList", "gsm_map.ms.plmnClientList",
28862 FT_UINT32, BASE_DEC, NULL, 0,
28863 NULL, HFILL }},
28864 { &hf_gsm_map_ms_ext_externalClientList,
28865 { "ext-externalClientList", "gsm_map.ms.ext_externalClientList",
28866 FT_UINT32, BASE_DEC, NULL, 0,
28867 NULL, HFILL }},
28868 { &hf_gsm_map_ms_serviceTypeList,
28869 { "serviceTypeList", "gsm_map.ms.serviceTypeList",
28870 FT_UINT32, BASE_DEC, NULL, 0,
28871 NULL, HFILL }},
28872 { &hf_gsm_map_ms_ExternalClientList_item,
28873 { "ExternalClient", "gsm_map.ms.ExternalClient_element",
28874 FT_NONE, BASE_NONE, NULL, 0,
28875 NULL, HFILL }},
28876 { &hf_gsm_map_ms_PLMNClientList_item,
28877 { "LCSClientInternalID", "gsm_map.ms.LCSClientInternalID",
28878 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
28879 NULL, HFILL }},
28880 { &hf_gsm_map_ms_Ext_ExternalClientList_item,
28881 { "ExternalClient", "gsm_map.ms.ExternalClient_element",
28882 FT_NONE, BASE_NONE, NULL, 0,
28883 NULL, HFILL }},
28884 { &hf_gsm_map_ms_clientIdentity,
28885 { "clientIdentity", "gsm_map.ms.clientIdentity_element",
28886 FT_NONE, BASE_NONE, NULL, 0,
28887 "LCSClientExternalID", HFILL }},
28888 { &hf_gsm_map_ms_gmlc_Restriction,
28889 { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction",
28890 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0,
28891 NULL, HFILL }},
28892 { &hf_gsm_map_ms_ServiceTypeList_item,
28893 { "ServiceType", "gsm_map.ms.ServiceType_element",
28894 FT_NONE, BASE_NONE, NULL, 0,
28895 NULL, HFILL }},
28896 { &hf_gsm_map_ms_serviceTypeIdentity,
28897 { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity",
28898 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
28899 "LCSServiceTypeID", HFILL }},
28900 { &hf_gsm_map_ms_MOLR_List_item,
28901 { "MOLR-Class", "gsm_map.ms.MOLR_Class_element",
28902 FT_NONE, BASE_NONE, NULL, 0,
28903 NULL, HFILL }},
28904 { &hf_gsm_map_ms_ZoneCodeList_item,
28905 { "ZoneCode", "gsm_map.ms.ZoneCode",
28906 FT_BYTES, BASE_NONE, NULL, 0,
28907 NULL, HFILL }},
28908 { &hf_gsm_map_ms_ss_List,
28909 { "ss-List", "gsm_map.ms.ss_List",
28910 FT_UINT32, BASE_DEC, NULL, 0,
28911 NULL, HFILL }},
28912 { &hf_gsm_map_ms_regionalSubscriptionResponse,
28913 { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse",
28914 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0,
28915 NULL, HFILL }},
28916 { &hf_gsm_map_ms_basicServiceList,
28917 { "basicServiceList", "gsm_map.ms.basicServiceList",
28918 FT_UINT32, BASE_DEC, NULL, 0,
28919 NULL, HFILL }},
28920 { &hf_gsm_map_ms_regionalSubscriptionIdentifier,
28921 { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier",
28922 FT_BYTES, BASE_NONE, NULL, 0,
28923 "ZoneCode", HFILL }},
28924 { &hf_gsm_map_ms_vbsGroupIndication,
28925 { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication_element",
28926 FT_NONE, BASE_NONE, NULL, 0,
28927 NULL, HFILL }},
28928 { &hf_gsm_map_ms_vgcsGroupIndication,
28929 { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication_element",
28930 FT_NONE, BASE_NONE, NULL, 0,
28931 NULL, HFILL }},
28932 { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw,
28933 { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw_element",
28934 FT_NONE, BASE_NONE, NULL, 0,
28935 NULL, HFILL }},
28936 { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw,
28937 { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw",
28938 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0,
28939 NULL, HFILL }},
28940 { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature,
28941 { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature_element",
28942 FT_NONE, BASE_NONE, NULL, 0,
28943 NULL, HFILL }},
28944 { &hf_gsm_map_ms_lsaInformationWithdraw,
28945 { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw",
28946 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0,
28947 NULL, HFILL }},
28948 { &hf_gsm_map_ms_gmlc_ListWithdraw,
28949 { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw_element",
28950 FT_NONE, BASE_NONE, NULL, 0,
28951 NULL, HFILL }},
28952 { &hf_gsm_map_ms_istInformationWithdraw,
28953 { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw_element",
28954 FT_NONE, BASE_NONE, NULL, 0,
28955 NULL, HFILL }},
28956 { &hf_gsm_map_ms_specificCSI_Withdraw,
28957 { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw",
28958 FT_BYTES, BASE_NONE, NULL, 0,
28959 NULL, HFILL }},
28960 { &hf_gsm_map_ms_chargingCharacteristicsWithdraw,
28961 { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw_element",
28962 FT_NONE, BASE_NONE, NULL, 0,
28963 NULL, HFILL }},
28964 { &hf_gsm_map_ms_stn_srWithdraw,
28965 { "stn-srWithdraw", "gsm_map.ms.stn_srWithdraw_element",
28966 FT_NONE, BASE_NONE, NULL, 0,
28967 NULL, HFILL }},
28968 { &hf_gsm_map_ms_epsSubscriptionDataWithdraw,
28969 { "epsSubscriptionDataWithdraw", "gsm_map.ms.epsSubscriptionDataWithdraw",
28970 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_SubscriptionDataWithdraw_vals), 0,
28971 "EPS_SubscriptionDataWithdraw", HFILL }},
28972 { &hf_gsm_map_ms_apn_oi_replacementWithdraw,
28973 { "apn-oi-replacementWithdraw", "gsm_map.ms.apn_oi_replacementWithdraw_element",
28974 FT_NONE, BASE_NONE, NULL, 0,
28975 NULL, HFILL }},
28976 { &hf_gsm_map_ms_csg_SubscriptionDeleted,
28977 { "csg-SubscriptionDeleted", "gsm_map.ms.csg_SubscriptionDeleted_element",
28978 FT_NONE, BASE_NONE, NULL, 0,
28979 NULL, HFILL }},
28980 { &hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw,
28981 { "subscribedPeriodicTAU-RAU-TimerWithdraw", "gsm_map.ms.subscribedPeriodicTAU_RAU_TimerWithdraw_element",
28982 FT_NONE, BASE_NONE, NULL, 0,
28983 NULL, HFILL }},
28984 { &hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw,
28985 { "subscribedPeriodicLAU-TimerWithdraw", "gsm_map.ms.subscribedPeriodicLAU_TimerWithdraw_element",
28986 FT_NONE, BASE_NONE, NULL, 0,
28987 NULL, HFILL }},
28988 { &hf_gsm_map_ms_subscribed_vsrvccWithdraw,
28989 { "subscribed-vsrvccWithdraw", "gsm_map.ms.subscribed_vsrvccWithdraw_element",
28990 FT_NONE, BASE_NONE, NULL, 0,
28991 NULL, HFILL }},
28992 { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted,
28993 { "vplmn-Csg-SubscriptionDeleted", "gsm_map.ms.vplmn_Csg_SubscriptionDeleted_element",
28994 FT_NONE, BASE_NONE, NULL, 0,
28995 NULL, HFILL }},
28996 { &hf_gsm_map_ms_additionalMSISDN_Withdraw,
28997 { "additionalMSISDN-Withdraw", "gsm_map.ms.additionalMSISDN_Withdraw_element",
28998 FT_NONE, BASE_NONE, NULL, 0,
28999 NULL, HFILL }},
29000 { &hf_gsm_map_ms_cs_to_ps_SRVCC_Withdraw,
29001 { "cs-to-ps-SRVCC-Withdraw", "gsm_map.ms.cs_to_ps_SRVCC_Withdraw_element",
29002 FT_NONE, BASE_NONE, NULL, 0,
29003 NULL, HFILL }},
29004 { &hf_gsm_map_ms_imsiGroupIdList_Withdraw,
29005 { "imsiGroupIdList-Withdraw", "gsm_map.ms.imsiGroupIdList_Withdraw_element",
29006 FT_NONE, BASE_NONE, NULL, 0,
29007 NULL, HFILL }},
29008 { &hf_gsm_map_ms_userPlaneIntegrityProtectionWithdraw,
29009 { "userPlaneIntegrityProtectionWithdraw", "gsm_map.ms.userPlaneIntegrityProtectionWithdraw_element",
29010 FT_NONE, BASE_NONE, NULL, 0,
29011 NULL, HFILL }},
29012 { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count_Withdraw,
29013 { "dl-Buffering-Suggested-Packet-Count-Withdraw", "gsm_map.ms.dl_Buffering_Suggested_Packet_Count_Withdraw_element",
29014 FT_NONE, BASE_NONE, NULL, 0,
29015 NULL, HFILL }},
29016 { &hf_gsm_map_ms_ue_UsageTypeWithdraw,
29017 { "ue-UsageTypeWithdraw", "gsm_map.ms.ue_UsageTypeWithdraw_element",
29018 FT_NONE, BASE_NONE, NULL, 0,
29019 NULL, HFILL }},
29020 { &hf_gsm_map_ms_reset_idsWithdraw,
29021 { "reset-idsWithdraw", "gsm_map.ms.reset_idsWithdraw_element",
29022 FT_NONE, BASE_NONE, NULL, 0,
29023 NULL, HFILL }},
29024 { &hf_gsm_map_ms_iab_OperationWithdraw,
29025 { "iab-OperationWithdraw", "gsm_map.ms.iab_OperationWithdraw_element",
29026 FT_NONE, BASE_NONE, NULL, 0,
29027 NULL, HFILL }},
29028 { &hf_gsm_map_ms_allGPRSData,
29029 { "allGPRSData", "gsm_map.ms.allGPRSData_element",
29030 FT_NONE, BASE_NONE, NULL, 0,
29031 NULL, HFILL }},
29032 { &hf_gsm_map_ms_contextIdList,
29033 { "contextIdList", "gsm_map.ms.contextIdList",
29034 FT_UINT32, BASE_DEC, NULL, 0,
29035 NULL, HFILL }},
29036 { &hf_gsm_map_ms_allEPS_Data,
29037 { "allEPS-Data", "gsm_map.ms.allEPS_Data_element",
29038 FT_NONE, BASE_NONE, NULL, 0,
29039 NULL, HFILL }},
29040 { &hf_gsm_map_ms_ContextIdList_item,
29041 { "ContextId", "gsm_map.ms.ContextId",
29042 FT_UINT32, BASE_DEC, NULL, 0,
29043 NULL, HFILL }},
29044 { &hf_gsm_map_ms_allLSAData,
29045 { "allLSAData", "gsm_map.ms.allLSAData_element",
29046 FT_NONE, BASE_NONE, NULL, 0,
29047 NULL, HFILL }},
29048 { &hf_gsm_map_ms_lsaIdentityList,
29049 { "lsaIdentityList", "gsm_map.ms.lsaIdentityList",
29050 FT_UINT32, BASE_DEC, NULL, 0,
29051 NULL, HFILL }},
29052 { &hf_gsm_map_ms_LSAIdentityList_item,
29053 { "LSAIdentity", "gsm_map.ms.LSAIdentity",
29054 FT_BYTES, BASE_NONE, NULL, 0,
29055 NULL, HFILL }},
29056 { &hf_gsm_map_ms_BasicServiceList_item,
29057 { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
29058 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
29059 NULL, HFILL }},
29060 { &hf_gsm_map_ms_o_CSI,
29061 { "o-CSI", "gsm_map.ms.o_CSI_element",
29062 FT_NONE, BASE_NONE, NULL, 0,
29063 NULL, HFILL }},
29064 { &hf_gsm_map_ms_ss_CSI,
29065 { "ss-CSI", "gsm_map.ms.ss_CSI_element",
29066 FT_NONE, BASE_NONE, NULL, 0,
29067 NULL, HFILL }},
29068 { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList,
29069 { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList",
29070 FT_UINT32, BASE_DEC, NULL, 0,
29071 "O_BcsmCamelTDPCriteriaList", HFILL }},
29072 { &hf_gsm_map_ms_tif_CSI,
29073 { "tif-CSI", "gsm_map.ms.tif_CSI_element",
29074 FT_NONE, BASE_NONE, NULL, 0,
29075 NULL, HFILL }},
29076 { &hf_gsm_map_ms_m_CSI,
29077 { "m-CSI", "gsm_map.ms.m_CSI_element",
29078 FT_NONE, BASE_NONE, NULL, 0,
29079 NULL, HFILL }},
29080 { &hf_gsm_map_ms_vt_CSI,
29081 { "vt-CSI", "gsm_map.ms.vt_CSI_element",
29082 FT_NONE, BASE_NONE, NULL, 0,
29083 "T_CSI", HFILL }},
29084 { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList,
29085 { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList",
29086 FT_UINT32, BASE_DEC, NULL, 0,
29087 NULL, HFILL }},
29088 { &hf_gsm_map_ms_d_CSI,
29089 { "d-CSI", "gsm_map.ms.d_CSI_element",
29090 FT_NONE, BASE_NONE, NULL, 0,
29091 NULL, HFILL }},
29092 { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item,
29093 { "MT-smsCAMELTDP-Criteria", "gsm_map.ms.MT_smsCAMELTDP_Criteria_element",
29094 FT_NONE, BASE_NONE, NULL, 0,
29095 NULL, HFILL }},
29096 { &hf_gsm_map_ms_sms_TriggerDetectionPoint,
29097 { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint",
29098 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0,
29099 NULL, HFILL }},
29100 { &hf_gsm_map_ms_tpdu_TypeCriterion,
29101 { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion",
29102 FT_UINT32, BASE_DEC, NULL, 0,
29103 NULL, HFILL }},
29104 { &hf_gsm_map_ms_TPDU_TypeCriterion_item,
29105 { "MT-SMS-TPDU-Type", "gsm_map.ms.MT_SMS_TPDU_Type",
29106 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0,
29107 NULL, HFILL }},
29108 { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList,
29109 { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList",
29110 FT_UINT32, BASE_DEC, NULL, 0,
29111 NULL, HFILL }},
29112 { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item,
29113 { "DP-AnalysedInfoCriterium", "gsm_map.ms.DP_AnalysedInfoCriterium_element",
29114 FT_NONE, BASE_NONE, NULL, 0,
29115 NULL, HFILL }},
29116 { &hf_gsm_map_ms_dialledNumber,
29117 { "dialledNumber", "gsm_map.ms.dialledNumber",
29118 FT_BYTES, BASE_NONE, NULL, 0,
29119 "ISDN_AddressString", HFILL }},
29120 { &hf_gsm_map_ms_defaultCallHandling,
29121 { "defaultCallHandling", "gsm_map.ms.defaultCallHandling",
29122 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0,
29123 NULL, HFILL }},
29124 { &hf_gsm_map_ms_ss_CamelData,
29125 { "ss-CamelData", "gsm_map.ms.ss_CamelData_element",
29126 FT_NONE, BASE_NONE, NULL, 0,
29127 NULL, HFILL }},
29128 { &hf_gsm_map_ms_ss_EventList,
29129 { "ss-EventList", "gsm_map.ms.ss_EventList",
29130 FT_UINT32, BASE_DEC, NULL, 0,
29131 NULL, HFILL }},
29132 { &hf_gsm_map_ms_SS_EventList_item,
29133 { "SS-Code", "gsm_map.ms.SS_Code",
29134 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
29135 NULL, HFILL }},
29136 { &hf_gsm_map_ms_o_BcsmCamelTDPDataList,
29137 { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList",
29138 FT_UINT32, BASE_DEC, NULL, 0,
29139 NULL, HFILL }},
29140 { &hf_gsm_map_ms_csiActive,
29141 { "csiActive", "gsm_map.ms.csiActive_element",
29142 FT_NONE, BASE_NONE, NULL, 0,
29143 NULL, HFILL }},
29144 { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item,
29145 { "O-BcsmCamelTDPData", "gsm_map.ms.O_BcsmCamelTDPData_element",
29146 FT_NONE, BASE_NONE, NULL, 0,
29147 NULL, HFILL }},
29148 { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint,
29149 { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint",
29150 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0,
29151 NULL, HFILL }},
29152 { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item,
29153 { "O-BcsmCamelTDP-Criteria", "gsm_map.ms.O_BcsmCamelTDP_Criteria_element",
29154 FT_NONE, BASE_NONE, NULL, 0,
29155 NULL, HFILL }},
29156 { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item,
29157 { "T-BCSM-CAMEL-TDP-Criteria", "gsm_map.ms.T_BCSM_CAMEL_TDP_Criteria_element",
29158 FT_NONE, BASE_NONE, NULL, 0,
29159 NULL, HFILL }},
29160 { &hf_gsm_map_ms_destinationNumberCriteria,
29161 { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria_element",
29162 FT_NONE, BASE_NONE, NULL, 0,
29163 NULL, HFILL }},
29164 { &hf_gsm_map_ms_basicServiceCriteria,
29165 { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria",
29166 FT_UINT32, BASE_DEC, NULL, 0,
29167 NULL, HFILL }},
29168 { &hf_gsm_map_ms_callTypeCriteria,
29169 { "callTypeCriteria", "gsm_map.ms.callTypeCriteria",
29170 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0,
29171 NULL, HFILL }},
29172 { &hf_gsm_map_ms_o_CauseValueCriteria,
29173 { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria",
29174 FT_UINT32, BASE_DEC, NULL, 0,
29175 NULL, HFILL }},
29176 { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint,
29177 { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint",
29178 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
29179 "T_BcsmTriggerDetectionPoint", HFILL }},
29180 { &hf_gsm_map_ms_t_CauseValueCriteria,
29181 { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria",
29182 FT_UINT32, BASE_DEC, NULL, 0,
29183 NULL, HFILL }},
29184 { &hf_gsm_map_ms_matchType,
29185 { "matchType", "gsm_map.ms.matchType",
29186 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0,
29187 NULL, HFILL }},
29188 { &hf_gsm_map_ms_destinationNumberList,
29189 { "destinationNumberList", "gsm_map.ms.destinationNumberList",
29190 FT_UINT32, BASE_DEC, NULL, 0,
29191 NULL, HFILL }},
29192 { &hf_gsm_map_ms_destinationNumberLengthList,
29193 { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList",
29194 FT_UINT32, BASE_DEC, NULL, 0,
29195 NULL, HFILL }},
29196 { &hf_gsm_map_ms_DestinationNumberList_item,
29197 { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
29198 FT_BYTES, BASE_NONE, NULL, 0,
29199 NULL, HFILL }},
29200 { &hf_gsm_map_ms_DestinationNumberLengthList_item,
29201 { "DestinationNumberLengthList item", "gsm_map.ms.DestinationNumberLengthList_item",
29202 FT_UINT32, BASE_DEC, NULL, 0,
29203 "INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }},
29204 { &hf_gsm_map_ms_BasicServiceCriteria_item,
29205 { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
29206 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
29207 NULL, HFILL }},
29208 { &hf_gsm_map_ms_O_CauseValueCriteria_item,
29209 { "CauseValue", "gsm_map.ms.CauseValue",
29210 FT_BYTES, BASE_NONE, NULL, 0,
29211 NULL, HFILL }},
29212 { &hf_gsm_map_ms_T_CauseValueCriteria_item,
29213 { "CauseValue", "gsm_map.ms.CauseValue",
29214 FT_BYTES, BASE_NONE, NULL, 0,
29215 NULL, HFILL }},
29216 { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList,
29217 { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList",
29218 FT_UINT32, BASE_DEC, NULL, 0,
29219 NULL, HFILL }},
29220 { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item,
29221 { "SMS-CAMEL-TDP-Data", "gsm_map.ms.SMS_CAMEL_TDP_Data_element",
29222 FT_NONE, BASE_NONE, NULL, 0,
29223 NULL, HFILL }},
29224 { &hf_gsm_map_ms_defaultSMS_Handling,
29225 { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling",
29226 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
29227 NULL, HFILL }},
29228 { &hf_gsm_map_ms_mobilityTriggers,
29229 { "mobilityTriggers", "gsm_map.ms.mobilityTriggers",
29230 FT_UINT32, BASE_DEC, NULL, 0,
29231 NULL, HFILL }},
29232 { &hf_gsm_map_ms_MobilityTriggers_item,
29233 { "MM-Code", "gsm_map.ms.MM_Code",
29234 FT_BYTES, BASE_NONE, NULL, 0,
29235 NULL, HFILL }},
29236 { &hf_gsm_map_ms_t_BcsmCamelTDPDataList,
29237 { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList",
29238 FT_UINT32, BASE_DEC, NULL, 0,
29239 NULL, HFILL }},
29240 { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item,
29241 { "T-BcsmCamelTDPData", "gsm_map.ms.T_BcsmCamelTDPData_element",
29242 FT_NONE, BASE_NONE, NULL, 0,
29243 NULL, HFILL }},
29244 { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint,
29245 { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint",
29246 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
29247 NULL, HFILL }},
29248 { &hf_gsm_map_ms_ggsn_Address,
29249 { "ggsn-Address", "gsm_map.ms.ggsn_Address",
29250 FT_BYTES, BASE_NONE, NULL, 0,
29251 "GSN_Address", HFILL }},
29252 { &hf_gsm_map_ms_ggsn_Number,
29253 { "ggsn-Number", "gsm_map.ms.ggsn_Number",
29254 FT_BYTES, BASE_NONE, NULL, 0,
29255 "ISDN_AddressString", HFILL }},
29256 { &hf_gsm_map_ms_mobileNotReachableReason,
29257 { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason",
29258 FT_UINT32, BASE_DEC, NULL, 0,
29259 "AbsentSubscriberDiagnosticSM", HFILL }},
29260 { &hf_gsm_map_ms_sendingNodenumber,
29261 { "sendingNodenumber", "gsm_map.ms.sendingNodenumber",
29262 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SendingNode_Number_vals), 0,
29263 "SendingNode_Number", HFILL }},
29264 { &hf_gsm_map_ms_hlr_List,
29265 { "hlr-List", "gsm_map.ms.hlr_List",
29266 FT_UINT32, BASE_DEC, NULL, 0,
29267 NULL, HFILL }},
29268 { &hf_gsm_map_ms_reset_Id_List,
29269 { "reset-Id-List", "gsm_map.ms.reset_Id_List",
29270 FT_UINT32, BASE_DEC, NULL, 0,
29271 NULL, HFILL }},
29272 { &hf_gsm_map_ms_subscriptionData,
29273 { "subscriptionData", "gsm_map.ms.subscriptionData_element",
29274 FT_NONE, BASE_NONE, NULL, 0,
29275 "InsertSubscriberDataArg", HFILL }},
29276 { &hf_gsm_map_ms_subscriptionDataDeletion,
29277 { "subscriptionDataDeletion", "gsm_map.ms.subscriptionDataDeletion_element",
29278 FT_NONE, BASE_NONE, NULL, 0,
29279 "DeleteSubscriberDataArg", HFILL }},
29280 { &hf_gsm_map_ms_css_Number,
29281 { "css-Number", "gsm_map.ms.css_Number",
29282 FT_BYTES, BASE_NONE, NULL, 0,
29283 "ISDN_AddressString", HFILL }},
29284 { &hf_gsm_map_ms_msNotReachable,
29285 { "msNotReachable", "gsm_map.ms.msNotReachable_element",
29286 FT_NONE, BASE_NONE, NULL, 0,
29287 NULL, HFILL }},
29288 { &hf_gsm_map_ms_VBSDataList_item,
29289 { "VoiceBroadcastData", "gsm_map.ms.VoiceBroadcastData_element",
29290 FT_NONE, BASE_NONE, NULL, 0,
29291 NULL, HFILL }},
29292 { &hf_gsm_map_ms_VGCSDataList_item,
29293 { "VoiceGroupCallData", "gsm_map.ms.VoiceGroupCallData_element",
29294 FT_NONE, BASE_NONE, NULL, 0,
29295 NULL, HFILL }},
29296 { &hf_gsm_map_ms_groupId,
29297 { "groupId", "gsm_map.ms.groupId",
29298 FT_BYTES, BASE_NONE, NULL, 0,
29299 NULL, HFILL }},
29300 { &hf_gsm_map_ms_additionalSubscriptions,
29301 { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions",
29302 FT_BYTES, BASE_NONE, NULL, 0,
29303 NULL, HFILL }},
29304 { &hf_gsm_map_ms_additionalInfo,
29305 { "additionalInfo", "gsm_map.ms.additionalInfo",
29306 FT_BYTES, BASE_NONE, NULL, 0,
29307 NULL, HFILL }},
29308 { &hf_gsm_map_ms_longGroupId,
29309 { "longGroupId", "gsm_map.ms.longGroupId",
29310 FT_BYTES, BASE_NONE, NULL, 0,
29311 "Long_GroupId", HFILL }},
29312 { &hf_gsm_map_ms_groupid,
29313 { "groupid", "gsm_map.ms.groupid",
29314 FT_BYTES, BASE_NONE, NULL, 0,
29315 NULL, HFILL }},
29316 { &hf_gsm_map_ms_broadcastInitEntitlement,
29317 { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement_element",
29318 FT_NONE, BASE_NONE, NULL, 0,
29319 NULL, HFILL }},
29320 { &hf_gsm_map_ms_requestedInfo,
29321 { "requestedInfo", "gsm_map.ms.requestedInfo_element",
29322 FT_NONE, BASE_NONE, NULL, 0,
29323 NULL, HFILL }},
29324 { &hf_gsm_map_ms_callPriority,
29325 { "callPriority", "gsm_map.ms.callPriority",
29326 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
29327 "EMLPP_Priority", HFILL }},
29328 { &hf_gsm_map_ms_subscriberInfo,
29329 { "subscriberInfo", "gsm_map.ms.subscriberInfo_element",
29330 FT_NONE, BASE_NONE, NULL, 0,
29331 NULL, HFILL }},
29332 { &hf_gsm_map_ms_subscriberState,
29333 { "subscriberState", "gsm_map.ms.subscriberState",
29334 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
29335 NULL, HFILL }},
29336 { &hf_gsm_map_ms_ps_SubscriberState,
29337 { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState",
29338 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
29339 NULL, HFILL }},
29340 { &hf_gsm_map_ms_ms_Classmark2,
29341 { "ms-Classmark2", "gsm_map.ms.ms_Classmark2",
29342 FT_BYTES, BASE_NONE, NULL, 0,
29343 NULL, HFILL }},
29344 { &hf_gsm_map_ms_gprs_MS_Class,
29345 { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class_element",
29346 FT_NONE, BASE_NONE, NULL, 0,
29347 "GPRSMSClass", HFILL }},
29348 { &hf_gsm_map_ms_mnpInfoRes,
29349 { "mnpInfoRes", "gsm_map.ms.mnpInfoRes_element",
29350 FT_NONE, BASE_NONE, NULL, 0,
29351 NULL, HFILL }},
29352 { &hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication,
29353 { "imsVoiceOverPS-SessionsIndication", "gsm_map.ms.imsVoiceOverPS_SessionsIndication",
29354 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IMS_VoiceOverPS_SessionsInd_vals), 0,
29355 "IMS_VoiceOverPS_SessionsInd", HFILL }},
29356 { &hf_gsm_map_ms_lastUE_ActivityTime,
29357 { "lastUE-ActivityTime", "gsm_map.ms.lastUE_ActivityTime",
29358 FT_BYTES, BASE_NONE, NULL, 0,
29359 "Time", HFILL }},
29360 { &hf_gsm_map_ms_lastRAT_Type,
29361 { "lastRAT-Type", "gsm_map.ms.lastRAT_Type",
29362 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
29363 "Used_RAT_Type", HFILL }},
29364 { &hf_gsm_map_ms_eps_SubscriberState,
29365 { "eps-SubscriberState", "gsm_map.ms.eps_SubscriberState",
29366 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
29367 "PS_SubscriberState", HFILL }},
29368 { &hf_gsm_map_ms_timeZone,
29369 { "timeZone", "gsm_map.ms.timeZone",
29370 FT_BYTES, BASE_NONE, NULL, 0,
29371 NULL, HFILL }},
29372 { &hf_gsm_map_ms_daylightSavingTime,
29373 { "daylightSavingTime", "gsm_map.ms.daylightSavingTime",
29374 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DaylightSavingTime_vals), 0,
29375 NULL, HFILL }},
29376 { &hf_gsm_map_ms_locationInformation5GS,
29377 { "locationInformation5GS", "gsm_map.ms.locationInformation5GS_element",
29378 FT_NONE, BASE_NONE, NULL, 0,
29379 NULL, HFILL }},
29380 { &hf_gsm_map_ms_routeingNumber,
29381 { "routeingNumber", "gsm_map.ms.routeingNumber",
29382 FT_BYTES, BASE_NONE, NULL, 0,
29383 NULL, HFILL }},
29384 { &hf_gsm_map_ms_numberPortabilityStatus,
29385 { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus",
29386 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
29387 NULL, HFILL }},
29388 { &hf_gsm_map_ms_mSNetworkCapability,
29389 { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability",
29390 FT_BYTES, BASE_NONE, NULL, 0,
29391 NULL, HFILL }},
29392 { &hf_gsm_map_ms_mSRadioAccessCapability,
29393 { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability",
29394 FT_BYTES, BASE_NONE, NULL, 0,
29395 NULL, HFILL }},
29396 { &hf_gsm_map_ms_locationInformation_01,
29397 { "locationInformation", "gsm_map.ms.locationInformation_element",
29398 FT_NONE, BASE_NONE, NULL, 0,
29399 NULL, HFILL }},
29400 { &hf_gsm_map_ms_subscriberState_01,
29401 { "subscriberState", "gsm_map.ms.subscriberState_element",
29402 FT_NONE, BASE_NONE, NULL, 0,
29403 NULL, HFILL }},
29404 { &hf_gsm_map_ms_currentLocation,
29405 { "currentLocation", "gsm_map.ms.currentLocation_element",
29406 FT_NONE, BASE_NONE, NULL, 0,
29407 NULL, HFILL }},
29408 { &hf_gsm_map_ms_requestedDomain,
29409 { "requestedDomain", "gsm_map.ms.requestedDomain",
29410 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0,
29411 "DomainType", HFILL }},
29412 { &hf_gsm_map_ms_imei_01,
29413 { "imei", "gsm_map.ms.imei_null_element",
29414 FT_NONE, BASE_NONE, NULL, 0,
29415 NULL, HFILL }},
29416 { &hf_gsm_map_ms_ms_classmark,
29417 { "ms-classmark", "gsm_map.ms.ms_classmark_element",
29418 FT_NONE, BASE_NONE, NULL, 0,
29419 NULL, HFILL }},
29420 { &hf_gsm_map_ms_mnpRequestedInfo,
29421 { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo_element",
29422 FT_NONE, BASE_NONE, NULL, 0,
29423 NULL, HFILL }},
29424 { &hf_gsm_map_ms_locationInformationEPS_Supported,
29425 { "locationInformationEPS-Supported", "gsm_map.ms.locationInformationEPS_Supported_element",
29426 FT_NONE, BASE_NONE, NULL, 0,
29427 NULL, HFILL }},
29428 { &hf_gsm_map_ms_t_adsData,
29429 { "t-adsData", "gsm_map.ms.t_adsData_element",
29430 FT_NONE, BASE_NONE, NULL, 0,
29431 NULL, HFILL }},
29432 { &hf_gsm_map_ms_requestedNodes,
29433 { "requestedNodes", "gsm_map.ms.requestedNodes",
29434 FT_BYTES, BASE_NONE, NULL, 0,
29435 NULL, HFILL }},
29436 { &hf_gsm_map_ms_servingNodeIndication,
29437 { "servingNodeIndication", "gsm_map.ms.servingNodeIndication_element",
29438 FT_NONE, BASE_NONE, NULL, 0,
29439 NULL, HFILL }},
29440 { &hf_gsm_map_ms_localTimeZoneRequest,
29441 { "localTimeZoneRequest", "gsm_map.ms.localTimeZoneRequest_element",
29442 FT_NONE, BASE_NONE, NULL, 0,
29443 NULL, HFILL }},
29444 { &hf_gsm_map_ms_ageOfLocationInformation,
29445 { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation",
29446 FT_UINT32, BASE_DEC, NULL, 0,
29447 NULL, HFILL }},
29448 { &hf_gsm_map_ms_geographicalInformation,
29449 { "geographicalInformation", "gsm_map.ms.geographicalInformation",
29450 FT_BYTES, BASE_NONE, NULL, 0,
29451 NULL, HFILL }},
29452 { &hf_gsm_map_ms_vlr_number,
29453 { "vlr-number", "gsm_map.ms.vlr_number",
29454 FT_BYTES, BASE_NONE, NULL, 0,
29455 "ISDN_AddressString", HFILL }},
29456 { &hf_gsm_map_ms_locationNumber,
29457 { "locationNumber", "gsm_map.ms.locationNumber",
29458 FT_BYTES, BASE_NONE, NULL, 0,
29459 NULL, HFILL }},
29460 { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI,
29461 { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI",
29462 FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
29463 NULL, HFILL }},
29464 { &hf_gsm_map_ms_selectedLSA_Id,
29465 { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id",
29466 FT_BYTES, BASE_NONE, NULL, 0,
29467 "LSAIdentity", HFILL }},
29468 { &hf_gsm_map_ms_geodeticInformation,
29469 { "geodeticInformation", "gsm_map.ms.geodeticInformation",
29470 FT_BYTES, BASE_NONE, NULL, 0,
29471 NULL, HFILL }},
29472 { &hf_gsm_map_ms_currentLocationRetrieved,
29473 { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved_element",
29474 FT_NONE, BASE_NONE, NULL, 0,
29475 NULL, HFILL }},
29476 { &hf_gsm_map_ms_sai_Present,
29477 { "sai-Present", "gsm_map.ms.sai_Present_element",
29478 FT_NONE, BASE_NONE, NULL, 0,
29479 NULL, HFILL }},
29480 { &hf_gsm_map_ms_userCSGInformation,
29481 { "userCSGInformation", "gsm_map.ms.userCSGInformation_element",
29482 FT_NONE, BASE_NONE, NULL, 0,
29483 NULL, HFILL }},
29484 { &hf_gsm_map_ms_e_utranCellGlobalIdentity,
29485 { "e-utranCellGlobalIdentity", "gsm_map.ms.e_utranCellGlobalIdentity",
29486 FT_BYTES, BASE_NONE, NULL, 0,
29487 "E_UTRAN_CGI", HFILL }},
29488 { &hf_gsm_map_ms_trackingAreaIdentity,
29489 { "trackingAreaIdentity", "gsm_map.ms.trackingAreaIdentity",
29490 FT_BYTES, BASE_NONE, NULL, 0,
29491 "TA_Id", HFILL }},
29492 { &hf_gsm_map_ms_mme_Name,
29493 { "mme-Name", "gsm_map.ms.mme_Name",
29494 FT_STRING, BASE_NONE, NULL, 0,
29495 "DiameterIdentity", HFILL }},
29496 { &hf_gsm_map_ms_routeingAreaIdentity,
29497 { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity",
29498 FT_BYTES, BASE_NONE, NULL, 0,
29499 "RAIdentity", HFILL }},
29500 { &hf_gsm_map_ms_selectedLSAIdentity,
29501 { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity",
29502 FT_BYTES, BASE_NONE, NULL, 0,
29503 "LSAIdentity", HFILL }},
29504 { &hf_gsm_map_ms_nrCellGlobalIdentity,
29505 { "nrCellGlobalIdentity", "gsm_map.ms.nrCellGlobalIdentity",
29506 FT_BYTES, BASE_NONE, NULL, 0,
29507 "NR_CGI", HFILL }},
29508 { &hf_gsm_map_ms_amf_address,
29509 { "amf-address", "gsm_map.ms.amf_address",
29510 FT_BYTES, BASE_NONE, NULL, 0,
29511 "FQDN", HFILL }},
29512 { &hf_gsm_map_ms_vplmnId,
29513 { "vplmnId", "gsm_map.ms.vplmnId",
29514 FT_BYTES, BASE_NONE, NULL, 0,
29515 "PLMN_Id", HFILL }},
29516 { &hf_gsm_map_ms_localtimeZone,
29517 { "localtimeZone", "gsm_map.ms.localtimeZone",
29518 FT_BYTES, BASE_NONE, NULL, 0,
29519 "TimeZone", HFILL }},
29520 { &hf_gsm_map_ms_nrTrackingAreaIdentity,
29521 { "nrTrackingAreaIdentity", "gsm_map.ms.nrTrackingAreaIdentity",
29522 FT_BYTES, BASE_NONE, NULL, 0,
29523 "NR_TA_Id", HFILL }},
29524 { &hf_gsm_map_ms_accessMode,
29525 { "accessMode", "gsm_map.ms.accessMode",
29526 FT_BYTES, BASE_NONE, NULL, 0,
29527 "OCTET_STRING_SIZE_1", HFILL }},
29528 { &hf_gsm_map_ms_cmi,
29529 { "cmi", "gsm_map.ms.cmi",
29530 FT_BYTES, BASE_NONE, NULL, 0,
29531 "OCTET_STRING_SIZE_1", HFILL }},
29532 { &hf_gsm_map_ms_assumedIdle,
29533 { "assumedIdle", "gsm_map.ms.assumedIdle_element",
29534 FT_NONE, BASE_NONE, NULL, 0,
29535 NULL, HFILL }},
29536 { &hf_gsm_map_ms_camelBusy,
29537 { "camelBusy", "gsm_map.ms.camelBusy_element",
29538 FT_NONE, BASE_NONE, NULL, 0,
29539 NULL, HFILL }},
29540 { &hf_gsm_map_ms_netDetNotReachable,
29541 { "netDetNotReachable", "gsm_map.ms.netDetNotReachable",
29542 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0,
29543 "NotReachableReason", HFILL }},
29544 { &hf_gsm_map_ms_notProvidedFromVLR,
29545 { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR_element",
29546 FT_NONE, BASE_NONE, NULL, 0,
29547 NULL, HFILL }},
29548 { &hf_gsm_map_ms_notProvidedFromSGSNorMME,
29549 { "notProvidedFromSGSNorMME", "gsm_map.ms.notProvidedFromSGSNorMME_element",
29550 FT_NONE, BASE_NONE, NULL, 0,
29551 NULL, HFILL }},
29552 { &hf_gsm_map_ms_ps_Detached,
29553 { "ps-Detached", "gsm_map.ms.ps_Detached_element",
29554 FT_NONE, BASE_NONE, NULL, 0,
29555 NULL, HFILL }},
29556 { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging,
29557 { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging_element",
29558 FT_NONE, BASE_NONE, NULL, 0,
29559 NULL, HFILL }},
29560 { &hf_gsm_map_ms_ps_AttachedReachableForPaging,
29561 { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging_element",
29562 FT_NONE, BASE_NONE, NULL, 0,
29563 NULL, HFILL }},
29564 { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging,
29565 { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging",
29566 FT_UINT32, BASE_DEC, NULL, 0,
29567 "PDP_ContextInfoList", HFILL }},
29568 { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging,
29569 { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging",
29570 FT_UINT32, BASE_DEC, NULL, 0,
29571 "PDP_ContextInfoList", HFILL }},
29572 { &hf_gsm_map_ms_PDP_ContextInfoList_item,
29573 { "PDP-ContextInfo", "gsm_map.ms.PDP_ContextInfo_element",
29574 FT_NONE, BASE_NONE, NULL, 0,
29575 NULL, HFILL }},
29576 { &hf_gsm_map_ms_pdp_ContextIdentifier,
29577 { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier",
29578 FT_UINT32, BASE_DEC, NULL, 0,
29579 "ContextId", HFILL }},
29580 { &hf_gsm_map_ms_pdp_ContextActive,
29581 { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive_element",
29582 FT_NONE, BASE_NONE, NULL, 0,
29583 NULL, HFILL }},
29584 { &hf_gsm_map_ms_apn_Subscribed,
29585 { "apn-Subscribed", "gsm_map.ms.apn_Subscribed",
29586 FT_BYTES, BASE_NONE, NULL, 0,
29587 "APN", HFILL }},
29588 { &hf_gsm_map_ms_apn_InUse,
29589 { "apn-InUse", "gsm_map.ms.apn_InUse",
29590 FT_BYTES, BASE_NONE, NULL, 0,
29591 "APN", HFILL }},
29592 { &hf_gsm_map_ms_nsapi,
29593 { "nsapi", "gsm_map.ms.nsapi",
29594 FT_UINT32, BASE_DEC, NULL, 0,
29595 NULL, HFILL }},
29596 { &hf_gsm_map_ms_transactionId,
29597 { "transactionId", "gsm_map.ms.transactionId",
29598 FT_BYTES, BASE_NONE, NULL, 0,
29599 NULL, HFILL }},
29600 { &hf_gsm_map_ms_teid_ForGnAndGp,
29601 { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp",
29602 FT_BYTES, BASE_NONE, NULL, 0,
29603 "TEID", HFILL }},
29604 { &hf_gsm_map_ms_teid_ForIu,
29605 { "teid-ForIu", "gsm_map.ms.teid_ForIu",
29606 FT_BYTES, BASE_NONE, NULL, 0,
29607 "TEID", HFILL }},
29608 { &hf_gsm_map_ms_qos_Subscribed_01,
29609 { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
29610 FT_BYTES, BASE_NONE, NULL, 0,
29611 "Ext_QoS_Subscribed", HFILL }},
29612 { &hf_gsm_map_ms_qos_Requested,
29613 { "qos-Requested", "gsm_map.ms.qos_Requested",
29614 FT_BYTES, BASE_NONE, NULL, 0,
29615 "Ext_QoS_Subscribed", HFILL }},
29616 { &hf_gsm_map_ms_qos_Negotiated,
29617 { "qos-Negotiated", "gsm_map.ms.qos_Negotiated",
29618 FT_BYTES, BASE_NONE, NULL, 0,
29619 "Ext_QoS_Subscribed", HFILL }},
29620 { &hf_gsm_map_ms_chargingId,
29621 { "chargingId", "gsm_map.ms.chargingId",
29622 FT_BYTES, BASE_NONE, NULL, 0,
29623 "GPRSChargingID", HFILL }},
29624 { &hf_gsm_map_ms_rnc_Address,
29625 { "rnc-Address", "gsm_map.ms.rnc_Address",
29626 FT_BYTES, BASE_NONE, NULL, 0,
29627 "GSN_Address", HFILL }},
29628 { &hf_gsm_map_ms_qos2_Subscribed,
29629 { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed",
29630 FT_BYTES, BASE_NONE, NULL, 0,
29631 "Ext2_QoS_Subscribed", HFILL }},
29632 { &hf_gsm_map_ms_qos2_Requested,
29633 { "qos2-Requested", "gsm_map.ms.qos2_Requested",
29634 FT_BYTES, BASE_NONE, NULL, 0,
29635 "Ext2_QoS_Subscribed", HFILL }},
29636 { &hf_gsm_map_ms_qos2_Negotiated,
29637 { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated",
29638 FT_BYTES, BASE_NONE, NULL, 0,
29639 "Ext2_QoS_Subscribed", HFILL }},
29640 { &hf_gsm_map_ms_qos3_Subscribed,
29641 { "qos3-Subscribed", "gsm_map.ms.qos3_Subscribed",
29642 FT_BYTES, BASE_NONE, NULL, 0,
29643 "Ext3_QoS_Subscribed", HFILL }},
29644 { &hf_gsm_map_ms_qos3_Requested,
29645 { "qos3-Requested", "gsm_map.ms.qos3_Requested",
29646 FT_BYTES, BASE_NONE, NULL, 0,
29647 "Ext3_QoS_Subscribed", HFILL }},
29648 { &hf_gsm_map_ms_qos3_Negotiated,
29649 { "qos3-Negotiated", "gsm_map.ms.qos3_Negotiated",
29650 FT_BYTES, BASE_NONE, NULL, 0,
29651 "Ext3_QoS_Subscribed", HFILL }},
29652 { &hf_gsm_map_ms_qos4_Subscribed,
29653 { "qos4-Subscribed", "gsm_map.ms.qos4_Subscribed",
29654 FT_BYTES, BASE_NONE, NULL, 0,
29655 "Ext4_QoS_Subscribed", HFILL }},
29656 { &hf_gsm_map_ms_qos4_Requested,
29657 { "qos4-Requested", "gsm_map.ms.qos4_Requested",
29658 FT_BYTES, BASE_NONE, NULL, 0,
29659 "Ext4_QoS_Subscribed", HFILL }},
29660 { &hf_gsm_map_ms_qos4_Negotiated,
29661 { "qos4-Negotiated", "gsm_map.ms.qos4_Negotiated",
29662 FT_BYTES, BASE_NONE, NULL, 0,
29663 "Ext4_QoS_Subscribed", HFILL }},
29664 { &hf_gsm_map_ms_subscriberIdentity,
29665 { "subscriberIdentity", "gsm_map.ms.subscriberIdentity",
29666 FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
29667 NULL, HFILL }},
29668 { &hf_gsm_map_ms_requestedSubscriptionInfo,
29669 { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo_element",
29670 FT_NONE, BASE_NONE, NULL, 0,
29671 NULL, HFILL }},
29672 { &hf_gsm_map_ms_callForwardingData,
29673 { "callForwardingData", "gsm_map.ms.callForwardingData_element",
29674 FT_NONE, BASE_NONE, NULL, 0,
29675 NULL, HFILL }},
29676 { &hf_gsm_map_ms_callBarringData,
29677 { "callBarringData", "gsm_map.ms.callBarringData_element",
29678 FT_NONE, BASE_NONE, NULL, 0,
29679 NULL, HFILL }},
29680 { &hf_gsm_map_ms_odb_Info,
29681 { "odb-Info", "gsm_map.ms.odb_Info_element",
29682 FT_NONE, BASE_NONE, NULL, 0,
29683 NULL, HFILL }},
29684 { &hf_gsm_map_ms_camel_SubscriptionInfo,
29685 { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo_element",
29686 FT_NONE, BASE_NONE, NULL, 0,
29687 NULL, HFILL }},
29688 { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases,
29689 { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
29690 FT_BYTES, BASE_NONE, NULL, 0,
29691 "SupportedCamelPhases", HFILL }},
29692 { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases,
29693 { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
29694 FT_BYTES, BASE_NONE, NULL, 0,
29695 "SupportedCamelPhases", HFILL }},
29696 { &hf_gsm_map_ms_offeredCamel4CSIsInVLR,
29697 { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR",
29698 FT_BYTES, BASE_NONE, NULL, 0,
29699 "OfferedCamel4CSIs", HFILL }},
29700 { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN,
29701 { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN",
29702 FT_BYTES, BASE_NONE, NULL, 0,
29703 "OfferedCamel4CSIs", HFILL }},
29704 { &hf_gsm_map_ms_msisdn_BS_List,
29705 { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
29706 FT_UINT32, BASE_DEC, NULL, 0,
29707 NULL, HFILL }},
29708 { &hf_gsm_map_ms_cw_Data,
29709 { "cw-Data", "gsm_map.ms.cw_Data_element",
29710 FT_NONE, BASE_NONE, NULL, 0,
29711 "CallWaitingData", HFILL }},
29712 { &hf_gsm_map_ms_ch_Data,
29713 { "ch-Data", "gsm_map.ms.ch_Data_element",
29714 FT_NONE, BASE_NONE, NULL, 0,
29715 "CallHoldData", HFILL }},
29716 { &hf_gsm_map_ms_clip_Data,
29717 { "clip-Data", "gsm_map.ms.clip_Data_element",
29718 FT_NONE, BASE_NONE, NULL, 0,
29719 "ClipData", HFILL }},
29720 { &hf_gsm_map_ms_clir_Data,
29721 { "clir-Data", "gsm_map.ms.clir_Data_element",
29722 FT_NONE, BASE_NONE, NULL, 0,
29723 "ClirData", HFILL }},
29724 { &hf_gsm_map_ms_ect_data,
29725 { "ect-data", "gsm_map.ms.ect_data_element",
29726 FT_NONE, BASE_NONE, NULL, 0,
29727 "EctData", HFILL }},
29728 { &hf_gsm_map_ms_cwFeatureList,
29729 { "cwFeatureList", "gsm_map.ms.cwFeatureList",
29730 FT_UINT32, BASE_DEC, NULL, 0,
29731 "Ext_CwFeatureList", HFILL }},
29732 { &hf_gsm_map_ms_Ext_CwFeatureList_item,
29733 { "Ext-CwFeature", "gsm_map.ms.Ext_CwFeature_element",
29734 FT_NONE, BASE_NONE, NULL, 0,
29735 NULL, HFILL }},
29736 { &hf_gsm_map_ms_overrideCategory,
29737 { "overrideCategory", "gsm_map.ms.overrideCategory",
29738 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
29739 NULL, HFILL }},
29740 { &hf_gsm_map_ms_cliRestrictionOption,
29741 { "cliRestrictionOption", "gsm_map.ms.cliRestrictionOption",
29742 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
29743 NULL, HFILL }},
29744 { &hf_gsm_map_ms_requestedSS_Info,
29745 { "requestedSS-Info", "gsm_map.ms.requestedSS_Info_element",
29746 FT_NONE, BASE_NONE, NULL, 0,
29747 "SS_ForBS_Code", HFILL }},
29748 { &hf_gsm_map_ms_odb,
29749 { "odb", "gsm_map.ms.odb_element",
29750 FT_NONE, BASE_NONE, NULL, 0,
29751 NULL, HFILL }},
29752 { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo,
29753 { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo",
29754 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
29755 NULL, HFILL }},
29756 { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01,
29757 { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases_element",
29758 FT_NONE, BASE_NONE, NULL, 0,
29759 NULL, HFILL }},
29760 { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01,
29761 { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases_element",
29762 FT_NONE, BASE_NONE, NULL, 0,
29763 NULL, HFILL }},
29764 { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo,
29765 { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo",
29766 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
29767 NULL, HFILL }},
29768 { &hf_gsm_map_ms_msisdn_BS_List_01,
29769 { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List_element",
29770 FT_NONE, BASE_NONE, NULL, 0,
29771 NULL, HFILL }},
29772 { &hf_gsm_map_ms_csg_SubscriptionDataRequested,
29773 { "csg-SubscriptionDataRequested", "gsm_map.ms.csg_SubscriptionDataRequested_element",
29774 FT_NONE, BASE_NONE, NULL, 0,
29775 NULL, HFILL }},
29776 { &hf_gsm_map_ms_cw_Info,
29777 { "cw-Info", "gsm_map.ms.cw_Info_element",
29778 FT_NONE, BASE_NONE, NULL, 0,
29779 NULL, HFILL }},
29780 { &hf_gsm_map_ms_clip_Info,
29781 { "clip-Info", "gsm_map.ms.clip_Info_element",
29782 FT_NONE, BASE_NONE, NULL, 0,
29783 NULL, HFILL }},
29784 { &hf_gsm_map_ms_clir_Info,
29785 { "clir-Info", "gsm_map.ms.clir_Info_element",
29786 FT_NONE, BASE_NONE, NULL, 0,
29787 NULL, HFILL }},
29788 { &hf_gsm_map_ms_hold_Info,
29789 { "hold-Info", "gsm_map.ms.hold_Info_element",
29790 FT_NONE, BASE_NONE, NULL, 0,
29791 NULL, HFILL }},
29792 { &hf_gsm_map_ms_ect_Info,
29793 { "ect-Info", "gsm_map.ms.ect_Info_element",
29794 FT_NONE, BASE_NONE, NULL, 0,
29795 NULL, HFILL }},
29796 { &hf_gsm_map_ms_MSISDN_BS_List_item,
29797 { "MSISDN-BS", "gsm_map.ms.MSISDN_BS_element",
29798 FT_NONE, BASE_NONE, NULL, 0,
29799 NULL, HFILL }},
29800 { &hf_gsm_map_ms_password,
29801 { "password", "gsm_map.ms.password",
29802 FT_STRING, BASE_NONE, NULL, 0,
29803 NULL, HFILL }},
29804 { &hf_gsm_map_ms_wrongPasswordAttemptsCounter,
29805 { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter",
29806 FT_UINT32, BASE_DEC, NULL, 0,
29807 NULL, HFILL }},
29808 { &hf_gsm_map_ms_t_CSI,
29809 { "t-CSI", "gsm_map.ms.t_CSI_element",
29810 FT_NONE, BASE_NONE, NULL, 0,
29811 NULL, HFILL }},
29812 { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList,
29813 { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList",
29814 FT_UINT32, BASE_DEC, NULL, 0,
29815 "T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
29816 { &hf_gsm_map_ms_tif_CSI_NotificationToCSE,
29817 { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE_element",
29818 FT_NONE, BASE_NONE, NULL, 0,
29819 NULL, HFILL }},
29820 { &hf_gsm_map_ms_specificCSIDeletedList,
29821 { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList",
29822 FT_BYTES, BASE_NONE, NULL, 0,
29823 "SpecificCSI_Withdraw", HFILL }},
29824 { &hf_gsm_map_ms_o_IM_CSI,
29825 { "o-IM-CSI", "gsm_map.ms.o_IM_CSI_element",
29826 FT_NONE, BASE_NONE, NULL, 0,
29827 "O_CSI", HFILL }},
29828 { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList,
29829 { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList",
29830 FT_UINT32, BASE_DEC, NULL, 0,
29831 "O_BcsmCamelTDPCriteriaList", HFILL }},
29832 { &hf_gsm_map_ms_d_IM_CSI,
29833 { "d-IM-CSI", "gsm_map.ms.d_IM_CSI_element",
29834 FT_NONE, BASE_NONE, NULL, 0,
29835 "D_CSI", HFILL }},
29836 { &hf_gsm_map_ms_vt_IM_CSI,
29837 { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI_element",
29838 FT_NONE, BASE_NONE, NULL, 0,
29839 "T_CSI", HFILL }},
29840 { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
29841 { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
29842 FT_UINT32, BASE_DEC, NULL, 0,
29843 "T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
29844 { &hf_gsm_map_ms_modificationRequestFor_CF_Info,
29845 { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info_element",
29846 FT_NONE, BASE_NONE, NULL, 0,
29847 NULL, HFILL }},
29848 { &hf_gsm_map_ms_modificationRequestFor_CB_Info,
29849 { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info_element",
29850 FT_NONE, BASE_NONE, NULL, 0,
29851 NULL, HFILL }},
29852 { &hf_gsm_map_ms_modificationRequestFor_CSI,
29853 { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI_element",
29854 FT_NONE, BASE_NONE, NULL, 0,
29855 NULL, HFILL }},
29856 { &hf_gsm_map_ms_modificationRequestFor_ODB_data,
29857 { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data_element",
29858 FT_NONE, BASE_NONE, NULL, 0,
29859 NULL, HFILL }},
29860 { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data,
29861 { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data_element",
29862 FT_NONE, BASE_NONE, NULL, 0,
29863 NULL, HFILL }},
29864 { &hf_gsm_map_ms_activationRequestForUE_reachability,
29865 { "activationRequestForUE-reachability", "gsm_map.ms.activationRequestForUE_reachability",
29866 FT_BYTES, BASE_NONE, NULL, 0,
29867 "RequestedServingNode", HFILL }},
29868 { &hf_gsm_map_ms_modificationRequestFor_CSG,
29869 { "modificationRequestFor-CSG", "gsm_map.ms.modificationRequestFor_CSG_element",
29870 FT_NONE, BASE_NONE, NULL, 0,
29871 NULL, HFILL }},
29872 { &hf_gsm_map_ms_modificationRequestFor_CW_Data,
29873 { "modificationRequestFor-CW-Data", "gsm_map.ms.modificationRequestFor_CW_Data_element",
29874 FT_NONE, BASE_NONE, NULL, 0,
29875 "ModificationRequestFor_CW_Info", HFILL }},
29876 { &hf_gsm_map_ms_modificationRequestFor_CLIP_Data,
29877 { "modificationRequestFor-CLIP-Data", "gsm_map.ms.modificationRequestFor_CLIP_Data_element",
29878 FT_NONE, BASE_NONE, NULL, 0,
29879 "ModificationRequestFor_CLIP_Info", HFILL }},
29880 { &hf_gsm_map_ms_modificationRequestFor_CLIR_Data,
29881 { "modificationRequestFor-CLIR-Data", "gsm_map.ms.modificationRequestFor_CLIR_Data_element",
29882 FT_NONE, BASE_NONE, NULL, 0,
29883 "ModificationRequestFor_CLIR_Info", HFILL }},
29884 { &hf_gsm_map_ms_modificationRequestFor_HOLD_Data,
29885 { "modificationRequestFor-HOLD-Data", "gsm_map.ms.modificationRequestFor_HOLD_Data_element",
29886 FT_NONE, BASE_NONE, NULL, 0,
29887 "ModificationRequestFor_CH_Info", HFILL }},
29888 { &hf_gsm_map_ms_modificationRequestFor_ECT_Data,
29889 { "modificationRequestFor-ECT-Data", "gsm_map.ms.modificationRequestFor_ECT_Data_element",
29890 FT_NONE, BASE_NONE, NULL, 0,
29891 "ModificationRequestFor_ECT_Info", HFILL }},
29892 { &hf_gsm_map_ms_modifyNotificationToCSE,
29893 { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE",
29894 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
29895 "ModificationInstruction", HFILL }},
29896 { &hf_gsm_map_ms_ss_InfoFor_CSE,
29897 { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE",
29898 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0,
29899 "Ext_SS_InfoFor_CSE", HFILL }},
29900 { &hf_gsm_map_ms_serviceCentreAddress,
29901 { "serviceCentreAddress", "gsm_map.ms.serviceCentreAddress",
29902 FT_BYTES, BASE_NONE, NULL, 0,
29903 "AddressString", HFILL }},
29904 { &hf_gsm_map_ms_forwardedToNumber_01,
29905 { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
29906 FT_BYTES, BASE_NONE, NULL, 0,
29907 "AddressString", HFILL }},
29908 { &hf_gsm_map_ms_odb_data,
29909 { "odb-data", "gsm_map.ms.odb_data_element",
29910 FT_NONE, BASE_NONE, NULL, 0,
29911 NULL, HFILL }},
29912 { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo,
29913 { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo",
29914 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
29915 NULL, HFILL }},
29916 { &hf_gsm_map_ms_modifyCSI_State,
29917 { "modifyCSI-State", "gsm_map.ms.modifyCSI_State",
29918 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
29919 "ModificationInstruction", HFILL }},
29920 { &hf_gsm_map_ms_modifyRegistrationStatus,
29921 { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus",
29922 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
29923 "ModificationInstruction", HFILL }},
29924 { &hf_gsm_map_ms_ip_sm_gw_DiameterAddress,
29925 { "ip-sm-gw-DiameterAddress", "gsm_map.ms.ip_sm_gw_DiameterAddress_element",
29926 FT_NONE, BASE_NONE, NULL, 0,
29927 "NetworkNodeDiameterAddress", HFILL }},
29928 { &hf_gsm_map_ms_forwardingInfoFor_CSE,
29929 { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE_element",
29930 FT_NONE, BASE_NONE, NULL, 0,
29931 "Ext_ForwardingInfoFor_CSE", HFILL }},
29932 { &hf_gsm_map_ms_callBarringInfoFor_CSE,
29933 { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE_element",
29934 FT_NONE, BASE_NONE, NULL, 0,
29935 "Ext_CallBarringInfoFor_CSE", HFILL }},
29936 { &hf_gsm_map_ms_allInformationSent,
29937 { "allInformationSent", "gsm_map.ms.allInformationSent_element",
29938 FT_NONE, BASE_NONE, NULL, 0,
29939 NULL, HFILL }},
29940 { &hf_gsm_map_ms_ue_reachable,
29941 { "ue-reachable", "gsm_map.ms.ue_reachable",
29942 FT_BYTES, BASE_NONE, NULL, 0,
29943 "ServingNode", HFILL }},
29944 { &hf_gsm_map_ms_eventMet,
29945 { "eventMet", "gsm_map.ms.eventMet",
29946 FT_BYTES, BASE_NONE, NULL, 0,
29947 "MM_Code", HFILL }},
29948 { &hf_gsm_map_ms_supportedCAMELPhases,
29949 { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases",
29950 FT_BYTES, BASE_NONE, NULL, 0,
29951 NULL, HFILL }},
29952 { &hf_gsm_map_ms_offeredCamel4Functionalities,
29953 { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities",
29954 FT_BYTES, BASE_NONE, NULL, 0,
29955 NULL, HFILL }},
29956 { &hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator,
29957 { "temporaryEmptySubscriptiondataIndicator", "gsm_map.ms.temporaryEmptySubscriptiondataIndicator_element",
29958 FT_NONE, BASE_NONE, NULL, 0,
29959 NULL, HFILL }},
29960 { &hf_gsm_map_ms_naea_PreferredCI,
29961 { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI_element",
29962 FT_NONE, BASE_NONE, NULL, 0,
29963 NULL, HFILL }},
29964 { &hf_gsm_map_ms_gprsSubscriptionData,
29965 { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData_element",
29966 FT_NONE, BASE_NONE, NULL, 0,
29967 NULL, HFILL }},
29968 { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature,
29969 { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature_element",
29970 FT_NONE, BASE_NONE, NULL, 0,
29971 NULL, HFILL }},
29972 { &hf_gsm_map_ms_networkAccessMode,
29973 { "networkAccessMode", "gsm_map.ms.networkAccessMode",
29974 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0,
29975 NULL, HFILL }},
29976 { &hf_gsm_map_ms_lsaInformation,
29977 { "lsaInformation", "gsm_map.ms.lsaInformation_element",
29978 FT_NONE, BASE_NONE, NULL, 0,
29979 NULL, HFILL }},
29980 { &hf_gsm_map_ms_lmu_Indicator,
29981 { "lmu-Indicator", "gsm_map.ms.lmu_Indicator_element",
29982 FT_NONE, BASE_NONE, NULL, 0,
29983 NULL, HFILL }},
29984 { &hf_gsm_map_ms_lcsInformation,
29985 { "lcsInformation", "gsm_map.ms.lcsInformation_element",
29986 FT_NONE, BASE_NONE, NULL, 0,
29987 NULL, HFILL }},
29988 { &hf_gsm_map_ms_istAlertTimer,
29989 { "istAlertTimer", "gsm_map.ms.istAlertTimer",
29990 FT_UINT32, BASE_DEC, NULL, 0,
29991 "IST_AlertTimerValue", HFILL }},
29992 { &hf_gsm_map_ms_superChargerSupportedInHLR,
29993 { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR",
29994 FT_BYTES, BASE_NONE, NULL, 0,
29995 "AgeIndicator", HFILL }},
29996 { &hf_gsm_map_ms_mc_SS_Info,
29997 { "mc-SS-Info", "gsm_map.ms.mc_SS_Info_element",
29998 FT_NONE, BASE_NONE, NULL, 0,
29999 NULL, HFILL }},
30000 { &hf_gsm_map_ms_cs_AllocationRetentionPriority,
30001 { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority",
30002 FT_BYTES, BASE_NONE, NULL, 0,
30003 NULL, HFILL }},
30004 { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo,
30005 { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo_element",
30006 FT_NONE, BASE_NONE, NULL, 0,
30007 NULL, HFILL }},
30008 { &hf_gsm_map_ms_ics_Indicator,
30009 { "ics-Indicator", "gsm_map.ms.ics_Indicator",
30010 FT_BOOLEAN, BASE_NONE, NULL, 0,
30011 "BOOLEAN", HFILL }},
30012 { &hf_gsm_map_ms_eps_SubscriptionData,
30013 { "eps-SubscriptionData", "gsm_map.ms.eps_SubscriptionData_element",
30014 FT_NONE, BASE_NONE, NULL, 0,
30015 NULL, HFILL }},
30016 { &hf_gsm_map_ms_ue_ReachabilityRequestIndicator,
30017 { "ue-ReachabilityRequestIndicator", "gsm_map.ms.ue_ReachabilityRequestIndicator_element",
30018 FT_NONE, BASE_NONE, NULL, 0,
30019 NULL, HFILL }},
30020 { &hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer,
30021 { "subscribedPeriodicRAUTAUtimer", "gsm_map.ms.subscribedPeriodicRAUTAUtimer",
30022 FT_UINT32, BASE_DEC, NULL, 0,
30023 NULL, HFILL }},
30024 { &hf_gsm_map_ms_vplmnLIPAAllowed,
30025 { "vplmnLIPAAllowed", "gsm_map.ms.vplmnLIPAAllowed_element",
30026 FT_NONE, BASE_NONE, NULL, 0,
30027 NULL, HFILL }},
30028 { &hf_gsm_map_ms_mdtUserConsent,
30029 { "mdtUserConsent", "gsm_map.ms.mdtUserConsent",
30030 FT_BOOLEAN, BASE_NONE, NULL, 0,
30031 "BOOLEAN", HFILL }},
30032 { &hf_gsm_map_ms_subscribedPeriodicLAUtimer,
30033 { "subscribedPeriodicLAUtimer", "gsm_map.ms.subscribedPeriodicLAUtimer",
30034 FT_UINT32, BASE_DEC, NULL, 0,
30035 NULL, HFILL }},
30036 { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList,
30037 { "vplmn-Csg-SubscriptionDataList", "gsm_map.ms.vplmn_Csg_SubscriptionDataList",
30038 FT_UINT32, BASE_DEC, NULL, 0,
30039 NULL, HFILL }},
30040 { &hf_gsm_map_ms_additionalMSISDN,
30041 { "additionalMSISDN", "gsm_map.ms.additionalMSISDN",
30042 FT_BYTES, BASE_NONE, NULL, 0,
30043 "ISDN_AddressString", HFILL }},
30044 { &hf_gsm_map_ms_psAndSMS_OnlyServiceProvision,
30045 { "psAndSMS-OnlyServiceProvision", "gsm_map.ms.psAndSMS_OnlyServiceProvision_element",
30046 FT_NONE, BASE_NONE, NULL, 0,
30047 NULL, HFILL }},
30048 { &hf_gsm_map_ms_smsInSGSNAllowed,
30049 { "smsInSGSNAllowed", "gsm_map.ms.smsInSGSNAllowed_element",
30050 FT_NONE, BASE_NONE, NULL, 0,
30051 NULL, HFILL }},
30052 { &hf_gsm_map_ms_cs_to_ps_SRVCC_Allowed_Indicator,
30053 { "cs-to-ps-SRVCC-Allowed-Indicator", "gsm_map.ms.cs_to_ps_SRVCC_Allowed_Indicator_element",
30054 FT_NONE, BASE_NONE, NULL, 0,
30055 NULL, HFILL }},
30056 { &hf_gsm_map_ms_pcscf_Restoration_Request,
30057 { "pcscf-Restoration-Request", "gsm_map.ms.pcscf_Restoration_Request_element",
30058 FT_NONE, BASE_NONE, NULL, 0,
30059 NULL, HFILL }},
30060 { &hf_gsm_map_ms_adjacentAccessRestrictionDataList,
30061 { "adjacentAccessRestrictionDataList", "gsm_map.ms.adjacentAccessRestrictionDataList",
30062 FT_UINT32, BASE_DEC, NULL, 0,
30063 NULL, HFILL }},
30064 { &hf_gsm_map_ms_imsi_Group_Id_List,
30065 { "imsi-Group-Id-List", "gsm_map.ms.imsi_Group_Id_List",
30066 FT_UINT32, BASE_DEC, NULL, 0,
30067 "IMSI_GroupIdList", HFILL }},
30068 { &hf_gsm_map_ms_userPlaneIntegrityProtectionIndicator,
30069 { "userPlaneIntegrityProtectionIndicator", "gsm_map.ms.userPlaneIntegrityProtectionIndicator_element",
30070 FT_NONE, BASE_NONE, NULL, 0,
30071 NULL, HFILL }},
30072 { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count,
30073 { "dl-Buffering-Suggested-Packet-Count", "gsm_map.ms.dl_Buffering_Suggested_Packet_Count",
30074 FT_INT32, BASE_DEC, NULL, 0,
30075 NULL, HFILL }},
30076 { &hf_gsm_map_ms_eDRX_Cycle_Length_List,
30077 { "eDRX-Cycle-Length-List", "gsm_map.ms.eDRX_Cycle_Length_List",
30078 FT_UINT32, BASE_DEC, NULL, 0,
30079 NULL, HFILL }},
30080 { &hf_gsm_map_ms_iab_Operation_Allowed_Indicator,
30081 { "iab-Operation-Allowed-Indicator", "gsm_map.ms.iab_Operation_Allowed_Indicator_element",
30082 FT_NONE, BASE_NONE, NULL, 0,
30083 NULL, HFILL }},
30084 { &hf_gsm_map_ms_SupportedRAT_Types_utran,
30085 { "utran", "gsm.map.ms.SupportedRAT.Types.utran",
30086 FT_BOOLEAN, 8, NULL, 0x80,
30087 NULL, HFILL }},
30088 { &hf_gsm_map_ms_SupportedRAT_Types_geran,
30089 { "geran", "gsm.map.ms.SupportedRAT.Types.geran",
30090 FT_BOOLEAN, 8, NULL, 0x40,
30091 NULL, HFILL }},
30092 { &hf_gsm_map_ms_SupportedRAT_Types_gan,
30093 { "gan", "gsm.map.ms.SupportedRAT.Types.gan",
30094 FT_BOOLEAN, 8, NULL, 0x20,
30095 NULL, HFILL }},
30096 { &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution,
30097 { "i-hspa-evolution", "gsm.map.ms.SupportedRAT.Types.i.hspa.evolution",
30098 FT_BOOLEAN, 8, NULL, 0x10,
30099 NULL, HFILL }},
30100 { &hf_gsm_map_ms_SupportedRAT_Types_e_utran,
30101 { "e-utran", "gsm.map.ms.SupportedRAT.Types.e.utran",
30102 FT_BOOLEAN, 8, NULL, 0x08,
30103 NULL, HFILL }},
30104 { &hf_gsm_map_ms_SupportedRAT_Types_nb_iot,
30105 { "nb-iot", "gsm.map.ms.SupportedRAT.Types.nb.iot",
30106 FT_BOOLEAN, 8, NULL, 0x04,
30107 NULL, HFILL }},
30108 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
30109 { "lcsCapabilitySet1", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet1",
30110 FT_BOOLEAN, 8, NULL, 0x80,
30111 NULL, HFILL }},
30112 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
30113 { "lcsCapabilitySet2", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet2",
30114 FT_BOOLEAN, 8, NULL, 0x40,
30115 NULL, HFILL }},
30116 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
30117 { "lcsCapabilitySet3", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet3",
30118 FT_BOOLEAN, 8, NULL, 0x20,
30119 NULL, HFILL }},
30120 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
30121 { "lcsCapabilitySet4", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet4",
30122 FT_BOOLEAN, 8, NULL, 0x10,
30123 NULL, HFILL }},
30124 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
30125 { "lcsCapabilitySet5", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet5",
30126 FT_BOOLEAN, 8, NULL, 0x08,
30127 NULL, HFILL }},
30128 { &hf_gsm_map_ms_ISR_Information_updateLocation,
30129 { "updateLocation", "gsm.map.ms.ISR.Information.updateLocation",
30130 FT_BOOLEAN, 8, NULL, 0x80,
30131 NULL, HFILL }},
30132 { &hf_gsm_map_ms_ISR_Information_cancelSGSN,
30133 { "cancelSGSN", "gsm.map.ms.ISR.Information.cancelSGSN",
30134 FT_BOOLEAN, 8, NULL, 0x40,
30135 NULL, HFILL }},
30136 { &hf_gsm_map_ms_ISR_Information_initialAttachIndicator,
30137 { "initialAttachIndicator", "gsm.map.ms.ISR.Information.initialAttachIndicator",
30138 FT_BOOLEAN, 8, NULL, 0x20,
30139 NULL, HFILL }},
30140 { &hf_gsm_map_ms_SupportedFeatures_odb_all_apn,
30141 { "odb-all-apn", "gsm.map.ms.SupportedFeatures.odb.all.apn",
30142 FT_BOOLEAN, 8, NULL, 0x80,
30143 NULL, HFILL }},
30144 { &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN,
30145 { "odb-HPLMN-APN", "gsm.map.ms.SupportedFeatures.odb.HPLMN.APN",
30146 FT_BOOLEAN, 8, NULL, 0x40,
30147 NULL, HFILL }},
30148 { &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN,
30149 { "odb-VPLMN-APN", "gsm.map.ms.SupportedFeatures.odb.VPLMN.APN",
30150 FT_BOOLEAN, 8, NULL, 0x20,
30151 NULL, HFILL }},
30152 { &hf_gsm_map_ms_SupportedFeatures_odb_all_og,
30153 { "odb-all-og", "gsm.map.ms.SupportedFeatures.odb.all.og",
30154 FT_BOOLEAN, 8, NULL, 0x10,
30155 NULL, HFILL }},
30156 { &hf_gsm_map_ms_SupportedFeatures_odb_all_international_og,
30157 { "odb-all-international-og", "gsm.map.ms.SupportedFeatures.odb.all.international.og",
30158 FT_BOOLEAN, 8, NULL, 0x08,
30159 NULL, HFILL }},
30160 { &hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country,
30161 { "odb-all-int-og-not-to-HPLMN-country", "gsm.map.ms.SupportedFeatures.odb.all.int.og.not.to.HPLMN.country",
30162 FT_BOOLEAN, 8, NULL, 0x04,
30163 NULL, HFILL }},
30164 { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og,
30165 { "odb-all-interzonal-og", "gsm.map.ms.SupportedFeatures.odb.all.interzonal.og",
30166 FT_BOOLEAN, 8, NULL, 0x02,
30167 NULL, HFILL }},
30168 { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country,
30169 { "odb-all-interzonal-og-not-to-HPLMN-country", "gsm.map.ms.SupportedFeatures.odb.all.interzonal.og.not.to.HPLMN.country",
30170 FT_BOOLEAN, 8, NULL, 0x01,
30171 NULL, HFILL }},
30172 { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country,
30173 { "odb-all-interzonal-og-and-internat-og-not-to-HPLMN-country", "gsm.map.ms.SupportedFeatures.odb.all.interzonal.og.and.internat.og.not.to.HPLMN.country",
30174 FT_BOOLEAN, 8, NULL, 0x80,
30175 NULL, HFILL }},
30176 { &hf_gsm_map_ms_SupportedFeatures_regSub,
30177 { "regSub", "gsm.map.ms.SupportedFeatures.regSub",
30178 FT_BOOLEAN, 8, NULL, 0x40,
30179 NULL, HFILL }},
30180 { &hf_gsm_map_ms_SupportedFeatures_trace,
30181 { "trace", "gsm.map.ms.SupportedFeatures.trace",
30182 FT_BOOLEAN, 8, NULL, 0x20,
30183 NULL, HFILL }},
30184 { &hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep,
30185 { "lcs-all-PrivExcep", "gsm.map.ms.SupportedFeatures.lcs.all.PrivExcep",
30186 FT_BOOLEAN, 8, NULL, 0x10,
30187 NULL, HFILL }},
30188 { &hf_gsm_map_ms_SupportedFeatures_lcs_universal,
30189 { "lcs-universal", "gsm.map.ms.SupportedFeatures.lcs.universal",
30190 FT_BOOLEAN, 8, NULL, 0x08,
30191 NULL, HFILL }},
30192 { &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated,
30193 { "lcs-CallSessionRelated", "gsm.map.ms.SupportedFeatures.lcs.CallSessionRelated",
30194 FT_BOOLEAN, 8, NULL, 0x04,
30195 NULL, HFILL }},
30196 { &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated,
30197 { "lcs-CallSessionUnrelated", "gsm.map.ms.SupportedFeatures.lcs.CallSessionUnrelated",
30198 FT_BOOLEAN, 8, NULL, 0x02,
30199 NULL, HFILL }},
30200 { &hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator,
30201 { "lcs-PLMN-operator", "gsm.map.ms.SupportedFeatures.lcs.PLMN.operator",
30202 FT_BOOLEAN, 8, NULL, 0x01,
30203 NULL, HFILL }},
30204 { &hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType,
30205 { "lcs-ServiceType", "gsm.map.ms.SupportedFeatures.lcs.ServiceType",
30206 FT_BOOLEAN, 8, NULL, 0x80,
30207 NULL, HFILL }},
30208 { &hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS,
30209 { "lcs-all-MOLR-SS", "gsm.map.ms.SupportedFeatures.lcs.all.MOLR.SS",
30210 FT_BOOLEAN, 8, NULL, 0x40,
30211 NULL, HFILL }},
30212 { &hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation,
30213 { "lcs-basicSelfLocation", "gsm.map.ms.SupportedFeatures.lcs.basicSelfLocation",
30214 FT_BOOLEAN, 8, NULL, 0x20,
30215 NULL, HFILL }},
30216 { &hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation,
30217 { "lcs-autonomousSelfLocation", "gsm.map.ms.SupportedFeatures.lcs.autonomousSelfLocation",
30218 FT_BOOLEAN, 8, NULL, 0x10,
30219 NULL, HFILL }},
30220 { &hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty,
30221 { "lcs-transferToThirdParty", "gsm.map.ms.SupportedFeatures.lcs.transferToThirdParty",
30222 FT_BOOLEAN, 8, NULL, 0x08,
30223 NULL, HFILL }},
30224 { &hf_gsm_map_ms_SupportedFeatures_sm_mo_pp,
30225 { "sm-mo-pp", "gsm.map.ms.SupportedFeatures.sm.mo.pp",
30226 FT_BOOLEAN, 8, NULL, 0x04,
30227 NULL, HFILL }},
30228 { &hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls,
30229 { "barring-OutgoingCalls", "gsm.map.ms.SupportedFeatures.barring.OutgoingCalls",
30230 FT_BOOLEAN, 8, NULL, 0x02,
30231 NULL, HFILL }},
30232 { &hf_gsm_map_ms_SupportedFeatures_baoc,
30233 { "baoc", "gsm.map.ms.SupportedFeatures.baoc",
30234 FT_BOOLEAN, 8, NULL, 0x01,
30235 NULL, HFILL }},
30236 { &hf_gsm_map_ms_SupportedFeatures_boic,
30237 { "boic", "gsm.map.ms.SupportedFeatures.boic",
30238 FT_BOOLEAN, 8, NULL, 0x80,
30239 NULL, HFILL }},
30240 { &hf_gsm_map_ms_SupportedFeatures_boicExHC,
30241 { "boicExHC", "gsm.map.ms.SupportedFeatures.boicExHC",
30242 FT_BOOLEAN, 8, NULL, 0x40,
30243 NULL, HFILL }},
30244 { &hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval,
30245 { "localTimeZoneRetrieval", "gsm.map.ms.SupportedFeatures.localTimeZoneRetrieval",
30246 FT_BOOLEAN, 8, NULL, 0x20,
30247 NULL, HFILL }},
30248 { &hf_gsm_map_ms_SupportedFeatures_additionalMsisdn,
30249 { "additionalMsisdn", "gsm.map.ms.SupportedFeatures.additionalMsisdn",
30250 FT_BOOLEAN, 8, NULL, 0x10,
30251 NULL, HFILL }},
30252 { &hf_gsm_map_ms_SupportedFeatures_smsInMME,
30253 { "smsInMME", "gsm.map.ms.SupportedFeatures.smsInMME",
30254 FT_BOOLEAN, 8, NULL, 0x08,
30255 NULL, HFILL }},
30256 { &hf_gsm_map_ms_SupportedFeatures_smsInSGSN,
30257 { "smsInSGSN", "gsm.map.ms.SupportedFeatures.smsInSGSN",
30258 FT_BOOLEAN, 8, NULL, 0x04,
30259 NULL, HFILL }},
30260 { &hf_gsm_map_ms_SupportedFeatures_ue_Reachability_Notification,
30261 { "ue-Reachability-Notification", "gsm.map.ms.SupportedFeatures.ue.Reachability.Notification",
30262 FT_BOOLEAN, 8, NULL, 0x02,
30263 NULL, HFILL }},
30264 { &hf_gsm_map_ms_SupportedFeatures_state_Location_Information_Retrieval,
30265 { "state-Location-Information-Retrieval", "gsm.map.ms.SupportedFeatures.state.Location.Information.Retrieval",
30266 FT_BOOLEAN, 8, NULL, 0x01,
30267 NULL, HFILL }},
30268 { &hf_gsm_map_ms_SupportedFeatures_partialPurge,
30269 { "partialPurge", "gsm.map.ms.SupportedFeatures.partialPurge",
30270 FT_BOOLEAN, 8, NULL, 0x80,
30271 NULL, HFILL }},
30272 { &hf_gsm_map_ms_SupportedFeatures_gddInSGSN,
30273 { "gddInSGSN", "gsm.map.ms.SupportedFeatures.gddInSGSN",
30274 FT_BOOLEAN, 8, NULL, 0x40,
30275 NULL, HFILL }},
30276 { &hf_gsm_map_ms_SupportedFeatures_sgsnCAMELCapability,
30277 { "sgsnCAMELCapability", "gsm.map.ms.SupportedFeatures.sgsnCAMELCapability",
30278 FT_BOOLEAN, 8, NULL, 0x20,
30279 NULL, HFILL }},
30280 { &hf_gsm_map_ms_SupportedFeatures_pcscf_Restoration,
30281 { "pcscf-Restoration", "gsm.map.ms.SupportedFeatures.pcscf.Restoration",
30282 FT_BOOLEAN, 8, NULL, 0x10,
30283 NULL, HFILL }},
30284 { &hf_gsm_map_ms_SupportedFeatures_dedicatedCoreNetworks,
30285 { "dedicatedCoreNetworks", "gsm.map.ms.SupportedFeatures.dedicatedCoreNetworks",
30286 FT_BOOLEAN, 8, NULL, 0x08,
30287 NULL, HFILL }},
30288 { &hf_gsm_map_ms_SupportedFeatures_non_IP_PDN_Type_APNs,
30289 { "non-IP-PDN-Type-APNs", "gsm.map.ms.SupportedFeatures.non.IP.PDN.Type.APNs",
30290 FT_BOOLEAN, 8, NULL, 0x04,
30291 NULL, HFILL }},
30292 { &hf_gsm_map_ms_SupportedFeatures_non_IP_PDP_Type_APNs,
30293 { "non-IP-PDP-Type-APNs", "gsm.map.ms.SupportedFeatures.non.IP.PDP.Type.APNs",
30294 FT_BOOLEAN, 8, NULL, 0x02,
30295 NULL, HFILL }},
30296 { &hf_gsm_map_ms_SupportedFeatures_nrAsSecondaryRAT,
30297 { "nrAsSecondaryRAT", "gsm.map.ms.SupportedFeatures.nrAsSecondaryRAT",
30298 FT_BOOLEAN, 8, NULL, 0x01,
30299 NULL, HFILL }},
30300 { &hf_gsm_map_ms_Ext_SupportedFeatures_unlicensedSpectrumAsSecondaryRAT,
30301 { "unlicensedSpectrumAsSecondaryRAT", "gsm.map.ms.Ext.SupportedFeatures.unlicensedSpectrumAsSecondaryRAT",
30302 FT_BOOLEAN, 8, NULL, 0x80,
30303 NULL, HFILL }},
30304 { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit,
30305 { "permission-indicator-not-allowed-bit", "gsm.map.ms.LCLS.Negotiation.permission.indicator.not.allowed.bit",
30306 FT_BOOLEAN, 8, NULL, 0x80,
30307 NULL, HFILL }},
30308 { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit,
30309 { "permission-indicator-spare-bit", "gsm.map.ms.LCLS.Negotiation.permission.indicator.spare.bit",
30310 FT_BOOLEAN, 8, NULL, 0x40,
30311 NULL, HFILL }},
30312 { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator,
30313 { "forward-data-sending-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.forward.data.sending.indicator",
30314 FT_BOOLEAN, 8, NULL, 0x80,
30315 NULL, HFILL }},
30316 { &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator,
30317 { "backward-data-sending-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.backward.data.sending.indicator",
30318 FT_BOOLEAN, 8, NULL, 0x40,
30319 NULL, HFILL }},
30320 { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator,
30321 { "forward-data-reception-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.forward.data.reception.indicator",
30322 FT_BOOLEAN, 8, NULL, 0x20,
30323 NULL, HFILL }},
30324 { &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator,
30325 { "backward-data-reception-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.backward.data.reception.indicator",
30326 FT_BOOLEAN, 8, NULL, 0x10,
30327 NULL, HFILL }},
30328 { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
30329 { "equipmentStatus", "gsm.map.ms.RequestedEquipmentInfo.equipmentStatus",
30330 FT_BOOLEAN, 8, NULL, 0x80,
30331 NULL, HFILL }},
30332 { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
30333 { "bmuef", "gsm.map.ms.RequestedEquipmentInfo.bmuef",
30334 FT_BOOLEAN, 8, NULL, 0x40,
30335 NULL, HFILL }},
30336 { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
30337 { "utranNotAllowed", "gsm.map.ms.AccessRestrictionData.utranNotAllowed",
30338 FT_BOOLEAN, 8, NULL, 0x80,
30339 NULL, HFILL }},
30340 { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
30341 { "geranNotAllowed", "gsm.map.ms.AccessRestrictionData.geranNotAllowed",
30342 FT_BOOLEAN, 8, NULL, 0x40,
30343 NULL, HFILL }},
30344 { &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed,
30345 { "ganNotAllowed", "gsm.map.ms.AccessRestrictionData.ganNotAllowed",
30346 FT_BOOLEAN, 8, NULL, 0x20,
30347 NULL, HFILL }},
30348 { &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed,
30349 { "i-hspa-evolutionNotAllowed", "gsm.map.ms.AccessRestrictionData.i.hspa.evolutionNotAllowed",
30350 FT_BOOLEAN, 8, NULL, 0x10,
30351 NULL, HFILL }},
30352 { &hf_gsm_map_ms_AccessRestrictionData_wb_e_utranNotAllowed,
30353 { "wb-e-utranNotAllowed", "gsm.map.ms.AccessRestrictionData.wb.e.utranNotAllowed",
30354 FT_BOOLEAN, 8, NULL, 0x08,
30355 NULL, HFILL }},
30356 { &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed,
30357 { "ho-toNon3GPP-AccessNotAllowed", "gsm.map.ms.AccessRestrictionData.ho.toNon3GPP.AccessNotAllowed",
30358 FT_BOOLEAN, 8, NULL, 0x04,
30359 NULL, HFILL }},
30360 { &hf_gsm_map_ms_AccessRestrictionData_nb_iotNotAllowed,
30361 { "nb-iotNotAllowed", "gsm.map.ms.AccessRestrictionData.nb.iotNotAllowed",
30362 FT_BOOLEAN, 8, NULL, 0x02,
30363 NULL, HFILL }},
30364 { &hf_gsm_map_ms_AccessRestrictionData_enhancedCoverageNotAllowed,
30365 { "enhancedCoverageNotAllowed", "gsm.map.ms.AccessRestrictionData.enhancedCoverageNotAllowed",
30366 FT_BOOLEAN, 8, NULL, 0x01,
30367 NULL, HFILL }},
30368 { &hf_gsm_map_ms_Ext_AccessRestrictionData_nrAsSecondaryRATNotAllowed,
30369 { "nrAsSecondaryRATNotAllowed", "gsm.map.ms.Ext.AccessRestrictionData.nrAsSecondaryRATNotAllowed",
30370 FT_BOOLEAN, 8, NULL, 0x80,
30371 NULL, HFILL }},
30372 { &hf_gsm_map_ms_Ext_AccessRestrictionData_unlicensedSpectrumAsSecondaryRATNotAllowed,
30373 { "unlicensedSpectrumAsSecondaryRATNotAllowed", "gsm.map.ms.Ext.AccessRestrictionData.unlicensedSpectrumAsSecondaryRATNotAllowed",
30374 FT_BOOLEAN, 8, NULL, 0x40,
30375 NULL, HFILL }},
30376 { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
30377 { "allOG-CallsBarred", "gsm.map.ms.ODB.GeneralData.allOG.CallsBarred",
30378 FT_BOOLEAN, 8, NULL, 0x80,
30379 NULL, HFILL }},
30380 { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
30381 { "internationalOGCallsBarred", "gsm.map.ms.ODB.GeneralData.internationalOGCallsBarred",
30382 FT_BOOLEAN, 8, NULL, 0x40,
30383 NULL, HFILL }},
30384 { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
30385 { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.internationalOGCallsNotToHPLMN.CountryBarred",
30386 FT_BOOLEAN, 8, NULL, 0x20,
30387 NULL, HFILL }},
30388 { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
30389 { "premiumRateInformationOGCallsBarred", "gsm.map.ms.ODB.GeneralData.premiumRateInformationOGCallsBarred",
30390 FT_BOOLEAN, 8, NULL, 0x10,
30391 NULL, HFILL }},
30392 { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
30393 { "premiumRateEntertainementOGCallsBarred", "gsm.map.ms.ODB.GeneralData.premiumRateEntertainementOGCallsBarred",
30394 FT_BOOLEAN, 8, NULL, 0x08,
30395 NULL, HFILL }},
30396 { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
30397 { "ss-AccessBarred", "gsm.map.ms.ODB.GeneralData.ss.AccessBarred",
30398 FT_BOOLEAN, 8, NULL, 0x04,
30399 NULL, HFILL }},
30400 { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
30401 { "interzonalOGCallsBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsBarred",
30402 FT_BOOLEAN, 8, NULL, 0x02,
30403 NULL, HFILL }},
30404 { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
30405 { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsNotToHPLMN.CountryBarred",
30406 FT_BOOLEAN, 8, NULL, 0x01,
30407 NULL, HFILL }},
30408 { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
30409 { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsAndInternationalOGCallsNotToHPLMN.CountryBarred",
30410 FT_BOOLEAN, 8, NULL, 0x80,
30411 NULL, HFILL }},
30412 { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
30413 { "allECT-Barred", "gsm.map.ms.ODB.GeneralData.allECT.Barred",
30414 FT_BOOLEAN, 8, NULL, 0x40,
30415 NULL, HFILL }},
30416 { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
30417 { "chargeableECT-Barred", "gsm.map.ms.ODB.GeneralData.chargeableECT.Barred",
30418 FT_BOOLEAN, 8, NULL, 0x20,
30419 NULL, HFILL }},
30420 { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
30421 { "internationalECT-Barred", "gsm.map.ms.ODB.GeneralData.internationalECT.Barred",
30422 FT_BOOLEAN, 8, NULL, 0x10,
30423 NULL, HFILL }},
30424 { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
30425 { "interzonalECT-Barred", "gsm.map.ms.ODB.GeneralData.interzonalECT.Barred",
30426 FT_BOOLEAN, 8, NULL, 0x08,
30427 NULL, HFILL }},
30428 { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
30429 { "doublyChargeableECT-Barred", "gsm.map.ms.ODB.GeneralData.doublyChargeableECT.Barred",
30430 FT_BOOLEAN, 8, NULL, 0x04,
30431 NULL, HFILL }},
30432 { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
30433 { "multipleECT-Barred", "gsm.map.ms.ODB.GeneralData.multipleECT.Barred",
30434 FT_BOOLEAN, 8, NULL, 0x02,
30435 NULL, HFILL }},
30436 { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
30437 { "allPacketOrientedServicesBarred", "gsm.map.ms.ODB.GeneralData.allPacketOrientedServicesBarred",
30438 FT_BOOLEAN, 8, NULL, 0x01,
30439 NULL, HFILL }},
30440 { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
30441 { "roamerAccessToHPLMN-AP-Barred", "gsm.map.ms.ODB.GeneralData.roamerAccessToHPLMN.AP.Barred",
30442 FT_BOOLEAN, 8, NULL, 0x80,
30443 NULL, HFILL }},
30444 { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
30445 { "roamerAccessToVPLMN-AP-Barred", "gsm.map.ms.ODB.GeneralData.roamerAccessToVPLMN.AP.Barred",
30446 FT_BOOLEAN, 8, NULL, 0x40,
30447 NULL, HFILL }},
30448 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
30449 { "roamingOutsidePLMNOG-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNOG.CallsBarred",
30450 FT_BOOLEAN, 8, NULL, 0x20,
30451 NULL, HFILL }},
30452 { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
30453 { "allIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.allIC.CallsBarred",
30454 FT_BOOLEAN, 8, NULL, 0x10,
30455 NULL, HFILL }},
30456 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
30457 { "roamingOutsidePLMNIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNIC.CallsBarred",
30458 FT_BOOLEAN, 8, NULL, 0x08,
30459 NULL, HFILL }},
30460 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
30461 { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNICountryIC.CallsBarred",
30462 FT_BOOLEAN, 8, NULL, 0x04,
30463 NULL, HFILL }},
30464 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
30465 { "roamingOutsidePLMN-Barred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMN.Barred",
30466 FT_BOOLEAN, 8, NULL, 0x02,
30467 NULL, HFILL }},
30468 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
30469 { "roamingOutsidePLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMN.CountryBarred",
30470 FT_BOOLEAN, 8, NULL, 0x01,
30471 NULL, HFILL }},
30472 { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
30473 { "registrationAllCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationAllCF.Barred",
30474 FT_BOOLEAN, 8, NULL, 0x80,
30475 NULL, HFILL }},
30476 { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
30477 { "registrationCFNotToHPLMN-Barred", "gsm.map.ms.ODB.GeneralData.registrationCFNotToHPLMN.Barred",
30478 FT_BOOLEAN, 8, NULL, 0x40,
30479 NULL, HFILL }},
30480 { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
30481 { "registrationInterzonalCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationInterzonalCF.Barred",
30482 FT_BOOLEAN, 8, NULL, 0x20,
30483 NULL, HFILL }},
30484 { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
30485 { "registrationInterzonalCFNotToHPLMN-Barred", "gsm.map.ms.ODB.GeneralData.registrationInterzonalCFNotToHPLMN.Barred",
30486 FT_BOOLEAN, 8, NULL, 0x10,
30487 NULL, HFILL }},
30488 { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
30489 { "registrationInternationalCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationInternationalCF.Barred",
30490 FT_BOOLEAN, 8, NULL, 0x08,
30491 NULL, HFILL }},
30492 { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
30493 { "plmn-SpecificBarringType1", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType1",
30494 FT_BOOLEAN, 8, NULL, 0x80,
30495 NULL, HFILL }},
30496 { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
30497 { "plmn-SpecificBarringType2", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType2",
30498 FT_BOOLEAN, 8, NULL, 0x40,
30499 NULL, HFILL }},
30500 { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
30501 { "plmn-SpecificBarringType3", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType3",
30502 FT_BOOLEAN, 8, NULL, 0x20,
30503 NULL, HFILL }},
30504 { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
30505 { "plmn-SpecificBarringType4", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType4",
30506 FT_BOOLEAN, 8, NULL, 0x10,
30507 NULL, HFILL }},
30508 { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
30509 { "o-csi", "gsm.map.ms.SpecificCSI.Withdraw.o.csi",
30510 FT_BOOLEAN, 8, NULL, 0x80,
30511 NULL, HFILL }},
30512 { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
30513 { "ss-csi", "gsm.map.ms.SpecificCSI.Withdraw.ss.csi",
30514 FT_BOOLEAN, 8, NULL, 0x40,
30515 NULL, HFILL }},
30516 { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
30517 { "tif-csi", "gsm.map.ms.SpecificCSI.Withdraw.tif.csi",
30518 FT_BOOLEAN, 8, NULL, 0x20,
30519 NULL, HFILL }},
30520 { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
30521 { "d-csi", "gsm.map.ms.SpecificCSI.Withdraw.d.csi",
30522 FT_BOOLEAN, 8, NULL, 0x10,
30523 NULL, HFILL }},
30524 { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
30525 { "vt-csi", "gsm.map.ms.SpecificCSI.Withdraw.vt.csi",
30526 FT_BOOLEAN, 8, NULL, 0x08,
30527 NULL, HFILL }},
30528 { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
30529 { "mo-sms-csi", "gsm.map.ms.SpecificCSI.Withdraw.mo.sms.csi",
30530 FT_BOOLEAN, 8, NULL, 0x04,
30531 NULL, HFILL }},
30532 { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
30533 { "m-csi", "gsm.map.ms.SpecificCSI.Withdraw.m.csi",
30534 FT_BOOLEAN, 8, NULL, 0x02,
30535 NULL, HFILL }},
30536 { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
30537 { "gprs-csi", "gsm.map.ms.SpecificCSI.Withdraw.gprs.csi",
30538 FT_BOOLEAN, 8, NULL, 0x01,
30539 NULL, HFILL }},
30540 { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
30541 { "t-csi", "gsm.map.ms.SpecificCSI.Withdraw.t.csi",
30542 FT_BOOLEAN, 8, NULL, 0x80,
30543 NULL, HFILL }},
30544 { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
30545 { "mt-sms-csi", "gsm.map.ms.SpecificCSI.Withdraw.mt.sms.csi",
30546 FT_BOOLEAN, 8, NULL, 0x40,
30547 NULL, HFILL }},
30548 { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
30549 { "mg-csi", "gsm.map.ms.SpecificCSI.Withdraw.mg.csi",
30550 FT_BOOLEAN, 8, NULL, 0x20,
30551 NULL, HFILL }},
30552 { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
30553 { "o-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.o.IM.CSI",
30554 FT_BOOLEAN, 8, NULL, 0x10,
30555 NULL, HFILL }},
30556 { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
30557 { "d-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.d.IM.CSI",
30558 FT_BOOLEAN, 8, NULL, 0x08,
30559 NULL, HFILL }},
30560 { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
30561 { "vt-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.vt.IM.CSI",
30562 FT_BOOLEAN, 8, NULL, 0x04,
30563 NULL, HFILL }},
30564 { &hf_gsm_map_ms_SupportedCamelPhases_phase1,
30565 { "phase1", "gsm.map.ms.SupportedCamelPhases.phase1",
30566 FT_BOOLEAN, 8, NULL, 0x80,
30567 NULL, HFILL }},
30568 { &hf_gsm_map_ms_SupportedCamelPhases_phase2,
30569 { "phase2", "gsm.map.ms.SupportedCamelPhases.phase2",
30570 FT_BOOLEAN, 8, NULL, 0x40,
30571 NULL, HFILL }},
30572 { &hf_gsm_map_ms_SupportedCamelPhases_phase3,
30573 { "phase3", "gsm.map.ms.SupportedCamelPhases.phase3",
30574 FT_BOOLEAN, 8, NULL, 0x20,
30575 NULL, HFILL }},
30576 { &hf_gsm_map_ms_SupportedCamelPhases_phase4,
30577 { "phase4", "gsm.map.ms.SupportedCamelPhases.phase4",
30578 FT_BOOLEAN, 8, NULL, 0x10,
30579 NULL, HFILL }},
30580 { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
30581 { "o-csi", "gsm.map.ms.OfferedCamel4CSIs.o.csi",
30582 FT_BOOLEAN, 8, NULL, 0x80,
30583 NULL, HFILL }},
30584 { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
30585 { "d-csi", "gsm.map.ms.OfferedCamel4CSIs.d.csi",
30586 FT_BOOLEAN, 8, NULL, 0x40,
30587 NULL, HFILL }},
30588 { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
30589 { "vt-csi", "gsm.map.ms.OfferedCamel4CSIs.vt.csi",
30590 FT_BOOLEAN, 8, NULL, 0x20,
30591 NULL, HFILL }},
30592 { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
30593 { "t-csi", "gsm.map.ms.OfferedCamel4CSIs.t.csi",
30594 FT_BOOLEAN, 8, NULL, 0x10,
30595 NULL, HFILL }},
30596 { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
30597 { "mt-sms-csi", "gsm.map.ms.OfferedCamel4CSIs.mt.sms.csi",
30598 FT_BOOLEAN, 8, NULL, 0x08,
30599 NULL, HFILL }},
30600 { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
30601 { "mg-csi", "gsm.map.ms.OfferedCamel4CSIs.mg.csi",
30602 FT_BOOLEAN, 8, NULL, 0x04,
30603 NULL, HFILL }},
30604 { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
30605 { "psi-enhancements", "gsm.map.ms.OfferedCamel4CSIs.psi.enhancements",
30606 FT_BOOLEAN, 8, NULL, 0x02,
30607 NULL, HFILL }},
30608 { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
30609 { "initiateCallAttempt", "gsm.map.ms.OfferedCamel4Functionalities.initiateCallAttempt",
30610 FT_BOOLEAN, 8, NULL, 0x80,
30611 NULL, HFILL }},
30612 { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
30613 { "splitLeg", "gsm.map.ms.OfferedCamel4Functionalities.splitLeg",
30614 FT_BOOLEAN, 8, NULL, 0x40,
30615 NULL, HFILL }},
30616 { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
30617 { "moveLeg", "gsm.map.ms.OfferedCamel4Functionalities.moveLeg",
30618 FT_BOOLEAN, 8, NULL, 0x20,
30619 NULL, HFILL }},
30620 { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
30621 { "disconnectLeg", "gsm.map.ms.OfferedCamel4Functionalities.disconnectLeg",
30622 FT_BOOLEAN, 8, NULL, 0x10,
30623 NULL, HFILL }},
30624 { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
30625 { "entityReleased", "gsm.map.ms.OfferedCamel4Functionalities.entityReleased",
30626 FT_BOOLEAN, 8, NULL, 0x08,
30627 NULL, HFILL }},
30628 { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
30629 { "dfc-WithArgument", "gsm.map.ms.OfferedCamel4Functionalities.dfc.WithArgument",
30630 FT_BOOLEAN, 8, NULL, 0x04,
30631 NULL, HFILL }},
30632 { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
30633 { "playTone", "gsm.map.ms.OfferedCamel4Functionalities.playTone",
30634 FT_BOOLEAN, 8, NULL, 0x02,
30635 NULL, HFILL }},
30636 { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
30637 { "dtmf-MidCall", "gsm.map.ms.OfferedCamel4Functionalities.dtmf.MidCall",
30638 FT_BOOLEAN, 8, NULL, 0x01,
30639 NULL, HFILL }},
30640 { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
30641 { "chargingIndicator", "gsm.map.ms.OfferedCamel4Functionalities.chargingIndicator",
30642 FT_BOOLEAN, 8, NULL, 0x80,
30643 NULL, HFILL }},
30644 { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
30645 { "alertingDP", "gsm.map.ms.OfferedCamel4Functionalities.alertingDP",
30646 FT_BOOLEAN, 8, NULL, 0x40,
30647 NULL, HFILL }},
30648 { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
30649 { "locationAtAlerting", "gsm.map.ms.OfferedCamel4Functionalities.locationAtAlerting",
30650 FT_BOOLEAN, 8, NULL, 0x20,
30651 NULL, HFILL }},
30652 { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
30653 { "changeOfPositionDP", "gsm.map.ms.OfferedCamel4Functionalities.changeOfPositionDP",
30654 FT_BOOLEAN, 8, NULL, 0x10,
30655 NULL, HFILL }},
30656 { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
30657 { "or-Interactions", "gsm.map.ms.OfferedCamel4Functionalities.or.Interactions",
30658 FT_BOOLEAN, 8, NULL, 0x08,
30659 NULL, HFILL }},
30660 { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
30661 { "warningToneEnhancements", "gsm.map.ms.OfferedCamel4Functionalities.warningToneEnhancements",
30662 FT_BOOLEAN, 8, NULL, 0x04,
30663 NULL, HFILL }},
30664 { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
30665 { "cf-Enhancements", "gsm.map.ms.OfferedCamel4Functionalities.cf.Enhancements",
30666 FT_BOOLEAN, 8, NULL, 0x02,
30667 NULL, HFILL }},
30668 { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
30669 { "subscribedEnhancedDialledServices", "gsm.map.ms.OfferedCamel4Functionalities.subscribedEnhancedDialledServices",
30670 FT_BOOLEAN, 8, NULL, 0x01,
30671 NULL, HFILL }},
30672 { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
30673 { "servingNetworkEnhancedDialledServices", "gsm.map.ms.OfferedCamel4Functionalities.servingNetworkEnhancedDialledServices",
30674 FT_BOOLEAN, 8, NULL, 0x80,
30675 NULL, HFILL }},
30676 { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
30677 { "criteriaForChangeOfPositionDP", "gsm.map.ms.OfferedCamel4Functionalities.criteriaForChangeOfPositionDP",
30678 FT_BOOLEAN, 8, NULL, 0x40,
30679 NULL, HFILL }},
30680 { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
30681 { "serviceChangeDP", "gsm.map.ms.OfferedCamel4Functionalities.serviceChangeDP",
30682 FT_BOOLEAN, 8, NULL, 0x20,
30683 NULL, HFILL }},
30684 { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
30685 { "collectInformation", "gsm.map.ms.OfferedCamel4Functionalities.collectInformation",
30686 FT_BOOLEAN, 8, NULL, 0x10,
30687 NULL, HFILL }},
30688 { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
30689 { "privilegedUplinkRequest", "gsm.map.ms.AdditionalSubscriptions.privilegedUplinkRequest",
30690 FT_BOOLEAN, 8, NULL, 0x80,
30691 NULL, HFILL }},
30692 { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
30693 { "emergencyUplinkRequest", "gsm.map.ms.AdditionalSubscriptions.emergencyUplinkRequest",
30694 FT_BOOLEAN, 8, NULL, 0x40,
30695 NULL, HFILL }},
30696 { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
30697 { "emergencyReset", "gsm.map.ms.AdditionalSubscriptions.emergencyReset",
30698 FT_BOOLEAN, 8, NULL, 0x20,
30699 NULL, HFILL }},
30700 { &hf_gsm_map_ms_RequestedNodes_mme,
30701 { "mme", "gsm.map.ms.RequestedNodes.mme",
30702 FT_BOOLEAN, 8, NULL, 0x80,
30703 NULL, HFILL }},
30704 { &hf_gsm_map_ms_RequestedNodes_sgsn,
30705 { "sgsn", "gsm.map.ms.RequestedNodes.sgsn",
30706 FT_BOOLEAN, 8, NULL, 0x40,
30707 NULL, HFILL }},
30708 { &hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn,
30709 { "mmeAndSgsn", "gsm.map.ms.RequestedServingNode.mmeAndSgsn",
30710 FT_BOOLEAN, 8, NULL, 0x80,
30711 NULL, HFILL }},
30712 { &hf_gsm_map_ms_ServingNode_mme,
30713 { "mme", "gsm.map.ms.ServingNode.mme",
30714 FT_BOOLEAN, 8, NULL, 0x80,
30715 NULL, HFILL }},
30716 { &hf_gsm_map_ms_ServingNode_sgsn,
30717 { "sgsn", "gsm.map.ms.ServingNode.sgsn",
30718 FT_BOOLEAN, 8, NULL, 0x40,
30719 NULL, HFILL }},
30721 /* --- Module MAP-CH-DataTypes --- --- --- */
30723 { &hf_gsm_map_ch_cug_Interlock,
30724 { "cug-Interlock", "gsm_map.ch.cug_Interlock",
30725 FT_BYTES, BASE_NONE, NULL, 0,
30726 NULL, HFILL }},
30727 { &hf_gsm_map_ch_cug_OutgoingAccess,
30728 { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess_element",
30729 FT_NONE, BASE_NONE, NULL, 0,
30730 NULL, HFILL }},
30731 { &hf_gsm_map_ch_extensionContainer,
30732 { "extensionContainer", "gsm_map.ch.extensionContainer_element",
30733 FT_NONE, BASE_NONE, NULL, 0,
30734 NULL, HFILL }},
30735 { &hf_gsm_map_ch_msisdn,
30736 { "msisdn", "gsm_map.ch.msisdn",
30737 FT_BYTES, BASE_NONE, NULL, 0,
30738 "ISDN_AddressString", HFILL }},
30739 { &hf_gsm_map_ch_cug_CheckInfo,
30740 { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo_element",
30741 FT_NONE, BASE_NONE, NULL, 0,
30742 NULL, HFILL }},
30743 { &hf_gsm_map_ch_numberOfForwarding,
30744 { "numberOfForwarding", "gsm_map.ch.numberOfForwarding",
30745 FT_UINT32, BASE_DEC, NULL, 0,
30746 NULL, HFILL }},
30747 { &hf_gsm_map_ch_interrogationType,
30748 { "interrogationType", "gsm_map.ch.interrogationType",
30749 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0,
30750 NULL, HFILL }},
30751 { &hf_gsm_map_ch_or_Interrogation,
30752 { "or-Interrogation", "gsm_map.ch.or_Interrogation_element",
30753 FT_NONE, BASE_NONE, NULL, 0,
30754 NULL, HFILL }},
30755 { &hf_gsm_map_ch_or_Capability,
30756 { "or-Capability", "gsm_map.ch.or_Capability",
30757 FT_UINT32, BASE_DEC, NULL, 0,
30758 "OR_Phase", HFILL }},
30759 { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address,
30760 { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address",
30761 FT_BYTES, BASE_NONE, NULL, 0,
30762 "ISDN_AddressString", HFILL }},
30763 { &hf_gsm_map_ch_callReferenceNumber,
30764 { "callReferenceNumber", "gsm_map.ch.callReferenceNumber",
30765 FT_BYTES, BASE_NONE, NULL, 0,
30766 NULL, HFILL }},
30767 { &hf_gsm_map_ch_forwardingReason,
30768 { "forwardingReason", "gsm_map.ch.forwardingReason",
30769 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0,
30770 NULL, HFILL }},
30771 { &hf_gsm_map_ch_basicServiceGroup,
30772 { "basicServiceGroup", "gsm_map.ch.basicServiceGroup",
30773 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
30774 "Ext_BasicServiceCode", HFILL }},
30775 { &hf_gsm_map_ch_networkSignalInfo,
30776 { "networkSignalInfo", "gsm_map.ch.networkSignalInfo_element",
30777 FT_NONE, BASE_NONE, NULL, 0,
30778 "ExternalSignalInfo", HFILL }},
30779 { &hf_gsm_map_ch_camelInfo,
30780 { "camelInfo", "gsm_map.ch.camelInfo_element",
30781 FT_NONE, BASE_NONE, NULL, 0,
30782 NULL, HFILL }},
30783 { &hf_gsm_map_ch_suppressionOfAnnouncement,
30784 { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement_element",
30785 FT_NONE, BASE_NONE, NULL, 0,
30786 NULL, HFILL }},
30787 { &hf_gsm_map_ch_alertingPattern,
30788 { "alertingPattern", "gsm_map.ch.alertingPattern",
30789 FT_BYTES, BASE_NONE, NULL, 0,
30790 NULL, HFILL }},
30791 { &hf_gsm_map_ch_ccbs_Call,
30792 { "ccbs-Call", "gsm_map.ch.ccbs_Call_element",
30793 FT_NONE, BASE_NONE, NULL, 0,
30794 NULL, HFILL }},
30795 { &hf_gsm_map_ch_supportedCCBS_Phase,
30796 { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase",
30797 FT_UINT32, BASE_DEC, NULL, 0,
30798 NULL, HFILL }},
30799 { &hf_gsm_map_ch_additionalSignalInfo,
30800 { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo_element",
30801 FT_NONE, BASE_NONE, NULL, 0,
30802 "Ext_ExternalSignalInfo", HFILL }},
30803 { &hf_gsm_map_ch_istSupportIndicator,
30804 { "istSupportIndicator", "gsm_map.ch.istSupportIndicator",
30805 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
30806 "IST_SupportIndicator", HFILL }},
30807 { &hf_gsm_map_ch_pre_pagingSupported,
30808 { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported_element",
30809 FT_NONE, BASE_NONE, NULL, 0,
30810 NULL, HFILL }},
30811 { &hf_gsm_map_ch_callDiversionTreatmentIndicator,
30812 { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator",
30813 FT_BYTES, BASE_NONE, NULL, 0,
30814 NULL, HFILL }},
30815 { &hf_gsm_map_ch_longFTN_Supported,
30816 { "longFTN-Supported", "gsm_map.ch.longFTN_Supported_element",
30817 FT_NONE, BASE_NONE, NULL, 0,
30818 NULL, HFILL }},
30819 { &hf_gsm_map_ch_suppress_VT_CSI,
30820 { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI_element",
30821 FT_NONE, BASE_NONE, NULL, 0,
30822 NULL, HFILL }},
30823 { &hf_gsm_map_ch_suppressIncomingCallBarring,
30824 { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring_element",
30825 FT_NONE, BASE_NONE, NULL, 0,
30826 NULL, HFILL }},
30827 { &hf_gsm_map_ch_gsmSCF_InitiatedCall,
30828 { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall_element",
30829 FT_NONE, BASE_NONE, NULL, 0,
30830 NULL, HFILL }},
30831 { &hf_gsm_map_ch_basicServiceGroup2,
30832 { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2",
30833 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
30834 "Ext_BasicServiceCode", HFILL }},
30835 { &hf_gsm_map_ch_networkSignalInfo2,
30836 { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2_element",
30837 FT_NONE, BASE_NONE, NULL, 0,
30838 "ExternalSignalInfo", HFILL }},
30839 { &hf_gsm_map_ch_suppressMTSS,
30840 { "suppressMTSS", "gsm_map.ch.suppressMTSS",
30841 FT_BYTES, BASE_NONE, NULL, 0,
30842 NULL, HFILL }},
30843 { &hf_gsm_map_ch_mtRoamingRetrySupported,
30844 { "mtRoamingRetrySupported", "gsm_map.ch.mtRoamingRetrySupported_element",
30845 FT_NONE, BASE_NONE, NULL, 0,
30846 NULL, HFILL }},
30847 { &hf_gsm_map_ch_callPriority,
30848 { "callPriority", "gsm_map.ch.callPriority",
30849 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
30850 "EMLPP_Priority", HFILL }},
30851 { &hf_gsm_map_ch_imsi,
30852 { "imsi", "gsm_map.ch.imsi",
30853 FT_BYTES, BASE_NONE, NULL, 0,
30854 NULL, HFILL }},
30855 { &hf_gsm_map_ch_extendedRoutingInfo,
30856 { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo",
30857 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0,
30858 NULL, HFILL }},
30859 { &hf_gsm_map_ch_cugSubscriptionFlag,
30860 { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag_element",
30861 FT_NONE, BASE_NONE, NULL, 0,
30862 NULL, HFILL }},
30863 { &hf_gsm_map_ch_subscriberInfo,
30864 { "subscriberInfo", "gsm_map.ch.subscriberInfo_element",
30865 FT_NONE, BASE_NONE, NULL, 0,
30866 NULL, HFILL }},
30867 { &hf_gsm_map_ch_ss_List,
30868 { "ss-List", "gsm_map.ch.ss_List",
30869 FT_UINT32, BASE_DEC, NULL, 0,
30870 NULL, HFILL }},
30871 { &hf_gsm_map_ch_basicService,
30872 { "basicService", "gsm_map.ch.basicService",
30873 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
30874 "Ext_BasicServiceCode", HFILL }},
30875 { &hf_gsm_map_ch_forwardingInterrogationRequired,
30876 { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired_element",
30877 FT_NONE, BASE_NONE, NULL, 0,
30878 NULL, HFILL }},
30879 { &hf_gsm_map_ch_vmsc_Address,
30880 { "vmsc-Address", "gsm_map.ch.vmsc_Address",
30881 FT_BYTES, BASE_NONE, NULL, 0,
30882 "ISDN_AddressString", HFILL }},
30883 { &hf_gsm_map_ch_naea_PreferredCI,
30884 { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI_element",
30885 FT_NONE, BASE_NONE, NULL, 0,
30886 NULL, HFILL }},
30887 { &hf_gsm_map_ch_ccbs_Indicators,
30888 { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators_element",
30889 FT_NONE, BASE_NONE, NULL, 0,
30890 NULL, HFILL }},
30891 { &hf_gsm_map_ch_numberPortabilityStatus,
30892 { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus",
30893 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
30894 NULL, HFILL }},
30895 { &hf_gsm_map_ch_istAlertTimer,
30896 { "istAlertTimer", "gsm_map.ch.istAlertTimer",
30897 FT_UINT32, BASE_DEC, NULL, 0,
30898 "IST_AlertTimerValue", HFILL }},
30899 { &hf_gsm_map_ch_supportedCamelPhasesInVMSC,
30900 { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC",
30901 FT_BYTES, BASE_NONE, NULL, 0,
30902 "SupportedCamelPhases", HFILL }},
30903 { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC,
30904 { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC",
30905 FT_BYTES, BASE_NONE, NULL, 0,
30906 "OfferedCamel4CSIs", HFILL }},
30907 { &hf_gsm_map_ch_routingInfo2,
30908 { "routingInfo2", "gsm_map.ch.routingInfo2",
30909 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
30910 "RoutingInfo", HFILL }},
30911 { &hf_gsm_map_ch_ss_List2,
30912 { "ss-List2", "gsm_map.ch.ss_List2",
30913 FT_UINT32, BASE_DEC, NULL, 0,
30914 "SS_List", HFILL }},
30915 { &hf_gsm_map_ch_basicService2,
30916 { "basicService2", "gsm_map.ch.basicService2",
30917 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
30918 "Ext_BasicServiceCode", HFILL }},
30919 { &hf_gsm_map_ch_allowedServices,
30920 { "allowedServices", "gsm_map.ch.allowedServices",
30921 FT_BYTES, BASE_NONE, NULL, 0,
30922 NULL, HFILL }},
30923 { &hf_gsm_map_ch_unavailabilityCause,
30924 { "unavailabilityCause", "gsm_map.ch.unavailabilityCause",
30925 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0,
30926 NULL, HFILL }},
30927 { &hf_gsm_map_ch_releaseResourcesSupported,
30928 { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported_element",
30929 FT_NONE, BASE_NONE, NULL, 0,
30930 NULL, HFILL }},
30931 { &hf_gsm_map_ch_gsm_BearerCapability,
30932 { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability_element",
30933 FT_NONE, BASE_NONE, NULL, 0,
30934 "ExternalSignalInfo", HFILL }},
30935 { &hf_gsm_map_ch_ccbs_Possible,
30936 { "ccbs-Possible", "gsm_map.ch.ccbs_Possible_element",
30937 FT_NONE, BASE_NONE, NULL, 0,
30938 NULL, HFILL }},
30939 { &hf_gsm_map_ch_keepCCBS_CallIndicator,
30940 { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator_element",
30941 FT_NONE, BASE_NONE, NULL, 0,
30942 NULL, HFILL }},
30943 { &hf_gsm_map_ch_roamingNumber,
30944 { "roamingNumber", "gsm_map.ch.roamingNumber",
30945 FT_BYTES, BASE_NONE, NULL, 0,
30946 "ISDN_AddressString", HFILL }},
30947 { &hf_gsm_map_ch_forwardingData,
30948 { "forwardingData", "gsm_map.ch.forwardingData_element",
30949 FT_NONE, BASE_NONE, NULL, 0,
30950 NULL, HFILL }},
30951 { &hf_gsm_map_ch_forwardedToNumber,
30952 { "forwardedToNumber", "gsm_map.ch.forwardedToNumber",
30953 FT_BYTES, BASE_NONE, NULL, 0,
30954 "ISDN_AddressString", HFILL }},
30955 { &hf_gsm_map_ch_forwardedToSubaddress,
30956 { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress",
30957 FT_BYTES, BASE_NONE, NULL, 0,
30958 "ISDN_SubaddressString", HFILL }},
30959 { &hf_gsm_map_ch_forwardingOptions,
30960 { "forwardingOptions", "gsm_map.ch.forwardingOptions",
30961 FT_BYTES, BASE_NONE, NULL, 0,
30962 NULL, HFILL }},
30963 { &hf_gsm_map_ch_longForwardedToNumber,
30964 { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber",
30965 FT_BYTES, BASE_NONE, NULL, 0,
30966 "FTN_AddressString", HFILL }},
30967 { &hf_gsm_map_ch_msc_Number,
30968 { "msc-Number", "gsm_map.ch.msc_Number",
30969 FT_BYTES, BASE_NONE, NULL, 0,
30970 "ISDN_AddressString", HFILL }},
30971 { &hf_gsm_map_ch_lmsi,
30972 { "lmsi", "gsm_map.ch.lmsi",
30973 FT_BYTES, BASE_NONE, NULL, 0,
30974 NULL, HFILL }},
30975 { &hf_gsm_map_ch_gmsc_Address,
30976 { "gmsc-Address", "gsm_map.ch.gmsc_Address",
30977 FT_BYTES, BASE_NONE, NULL, 0,
30978 "ISDN_AddressString", HFILL }},
30979 { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode,
30980 { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode",
30981 FT_BYTES, BASE_NONE, NULL, 0,
30982 "SupportedCamelPhases", HFILL }},
30983 { &hf_gsm_map_ch_orNotSupportedInGMSC,
30984 { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC_element",
30985 FT_NONE, BASE_NONE, NULL, 0,
30986 NULL, HFILL }},
30987 { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode,
30988 { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode",
30989 FT_BYTES, BASE_NONE, NULL, 0,
30990 "OfferedCamel4CSIs", HFILL }},
30991 { &hf_gsm_map_ch_pagingArea,
30992 { "pagingArea", "gsm_map.ch.pagingArea",
30993 FT_UINT32, BASE_DEC, NULL, 0,
30994 NULL, HFILL }},
30995 { &hf_gsm_map_ch_mtrf_Indicator,
30996 { "mtrf-Indicator", "gsm_map.ch.mtrf_Indicator_element",
30997 FT_NONE, BASE_NONE, NULL, 0,
30998 NULL, HFILL }},
30999 { &hf_gsm_map_ch_oldMSC_Number,
31000 { "oldMSC-Number", "gsm_map.ch.oldMSC_Number",
31001 FT_BYTES, BASE_NONE, NULL, 0,
31002 "ISDN_AddressString", HFILL }},
31003 { &hf_gsm_map_ch_lastUsedLtePLMN_Id,
31004 { "lastUsedLtePLMN-Id", "gsm_map.ch.lastUsedLtePLMN_Id",
31005 FT_BYTES, BASE_NONE, NULL, 0,
31006 "PLMN_Id", HFILL }},
31007 { &hf_gsm_map_ch_o_CSI,
31008 { "o-CSI", "gsm_map.ch.o_CSI_element",
31009 FT_NONE, BASE_NONE, NULL, 0,
31010 NULL, HFILL }},
31011 { &hf_gsm_map_ch_uu_Data,
31012 { "uu-Data", "gsm_map.ch.uu_Data_element",
31013 FT_NONE, BASE_NONE, NULL, 0,
31014 NULL, HFILL }},
31015 { &hf_gsm_map_ch_allInformationSent,
31016 { "allInformationSent", "gsm_map.ch.allInformationSent_element",
31017 FT_NONE, BASE_NONE, NULL, 0,
31018 NULL, HFILL }},
31019 { &hf_gsm_map_ch_d_csi,
31020 { "d-csi", "gsm_map.ch.d_csi_element",
31021 FT_NONE, BASE_NONE, NULL, 0,
31022 NULL, HFILL }},
31023 { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList,
31024 { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList",
31025 FT_UINT32, BASE_DEC, NULL, 0,
31026 NULL, HFILL }},
31027 { &hf_gsm_map_ch_mtRoamingRetry,
31028 { "mtRoamingRetry", "gsm_map.ch.mtRoamingRetry_element",
31029 FT_NONE, BASE_NONE, NULL, 0,
31030 NULL, HFILL }},
31031 { &hf_gsm_map_ch_uuIndicator,
31032 { "uuIndicator", "gsm_map.ch.uuIndicator",
31033 FT_BYTES, BASE_NONE, NULL, 0,
31034 NULL, HFILL }},
31035 { &hf_gsm_map_ch_uui,
31036 { "uui", "gsm_map.ch.uui",
31037 FT_BYTES, BASE_NONE, NULL, 0,
31038 NULL, HFILL }},
31039 { &hf_gsm_map_ch_uusCFInteraction,
31040 { "uusCFInteraction", "gsm_map.ch.uusCFInteraction_element",
31041 FT_NONE, BASE_NONE, NULL, 0,
31042 NULL, HFILL }},
31043 { &hf_gsm_map_ch_supportedCamelPhases,
31044 { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases",
31045 FT_BYTES, BASE_NONE, NULL, 0,
31046 NULL, HFILL }},
31047 { &hf_gsm_map_ch_suppress_T_CSI,
31048 { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI_element",
31049 FT_NONE, BASE_NONE, NULL, 0,
31050 NULL, HFILL }},
31051 { &hf_gsm_map_ch_offeredCamel4CSIs,
31052 { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs",
31053 FT_BYTES, BASE_NONE, NULL, 0,
31054 NULL, HFILL }},
31055 { &hf_gsm_map_ch_routingInfo,
31056 { "routingInfo", "gsm_map.ch.routingInfo",
31057 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
31058 NULL, HFILL }},
31059 { &hf_gsm_map_ch_camelRoutingInfo,
31060 { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo_element",
31061 FT_NONE, BASE_NONE, NULL, 0,
31062 NULL, HFILL }},
31063 { &hf_gsm_map_ch_gmscCamelSubscriptionInfo,
31064 { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo_element",
31065 FT_NONE, BASE_NONE, NULL, 0,
31066 NULL, HFILL }},
31067 { &hf_gsm_map_ch_t_CSI,
31068 { "t-CSI", "gsm_map.ch.t_CSI_element",
31069 FT_NONE, BASE_NONE, NULL, 0,
31070 NULL, HFILL }},
31071 { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList,
31072 { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList",
31073 FT_UINT32, BASE_DEC, NULL, 0,
31074 "O_BcsmCamelTDPCriteriaList", HFILL }},
31075 { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList,
31076 { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList",
31077 FT_UINT32, BASE_DEC, NULL, 0,
31078 NULL, HFILL }},
31079 { &hf_gsm_map_ch_ccbs_Monitoring,
31080 { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring",
31081 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0,
31082 "ReportingState", HFILL }},
31083 { &hf_gsm_map_ch_ccbs_SubscriberStatus,
31084 { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus",
31085 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0,
31086 NULL, HFILL }},
31087 { &hf_gsm_map_ch_eventReportData,
31088 { "eventReportData", "gsm_map.ch.eventReportData_element",
31089 FT_NONE, BASE_NONE, NULL, 0,
31090 NULL, HFILL }},
31091 { &hf_gsm_map_ch_callReportdata,
31092 { "callReportdata", "gsm_map.ch.callReportdata_element",
31093 FT_NONE, BASE_NONE, NULL, 0,
31094 NULL, HFILL }},
31095 { &hf_gsm_map_ch_monitoringMode,
31096 { "monitoringMode", "gsm_map.ch.monitoringMode",
31097 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0,
31098 NULL, HFILL }},
31099 { &hf_gsm_map_ch_callOutcome,
31100 { "callOutcome", "gsm_map.ch.callOutcome",
31101 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0,
31102 NULL, HFILL }},
31103 { &hf_gsm_map_ch_callInfo,
31104 { "callInfo", "gsm_map.ch.callInfo_element",
31105 FT_NONE, BASE_NONE, NULL, 0,
31106 "ExternalSignalInfo", HFILL }},
31107 { &hf_gsm_map_ch_ccbs_Feature,
31108 { "ccbs-Feature", "gsm_map.ch.ccbs_Feature_element",
31109 FT_NONE, BASE_NONE, NULL, 0,
31110 NULL, HFILL }},
31111 { &hf_gsm_map_ch_translatedB_Number,
31112 { "translatedB-Number", "gsm_map.ch.translatedB_Number",
31113 FT_BYTES, BASE_NONE, NULL, 0,
31114 "ISDN_AddressString", HFILL }},
31115 { &hf_gsm_map_ch_replaceB_Number,
31116 { "replaceB-Number", "gsm_map.ch.replaceB_Number_element",
31117 FT_NONE, BASE_NONE, NULL, 0,
31118 NULL, HFILL }},
31119 { &hf_gsm_map_ch_ruf_Outcome,
31120 { "ruf-Outcome", "gsm_map.ch.ruf_Outcome",
31121 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0,
31122 NULL, HFILL }},
31123 { &hf_gsm_map_ch_istInformationWithdraw,
31124 { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw_element",
31125 FT_NONE, BASE_NONE, NULL, 0,
31126 NULL, HFILL }},
31127 { &hf_gsm_map_ch_callTerminationIndicator,
31128 { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator",
31129 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0,
31130 NULL, HFILL }},
31131 { &hf_gsm_map_ch_msrn,
31132 { "msrn", "gsm_map.ch.msrn",
31133 FT_BYTES, BASE_NONE, NULL, 0,
31134 "ISDN_AddressString", HFILL }},
31135 { &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
31136 { "suppressCUG", "gsm.map.ch.SuppressMTSS.suppressCUG",
31137 FT_BOOLEAN, 8, NULL, 0x80,
31138 NULL, HFILL }},
31139 { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
31140 { "suppressCCBS", "gsm.map.ch.SuppressMTSS.suppressCCBS",
31141 FT_BOOLEAN, 8, NULL, 0x40,
31142 NULL, HFILL }},
31143 { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
31144 { "firstServiceAllowed", "gsm.map.ch.AllowedServices.firstServiceAllowed",
31145 FT_BOOLEAN, 8, NULL, 0x80,
31146 NULL, HFILL }},
31147 { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
31148 { "secondServiceAllowed", "gsm.map.ch.AllowedServices.secondServiceAllowed",
31149 FT_BOOLEAN, 8, NULL, 0x40,
31150 NULL, HFILL }},
31152 /* --- Module MAP-LCS-DataTypes --- --- --- */
31154 { &hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU,
31155 { "LCS-ClientID", "gsm_map.lcs.LCS_ClientID_element",
31156 FT_NONE, BASE_NONE, NULL, 0,
31157 NULL, HFILL }},
31158 { &hf_gsm_map_lcs_mlcNumber,
31159 { "mlcNumber", "gsm_map.lcs.mlcNumber",
31160 FT_BYTES, BASE_NONE, NULL, 0,
31161 "ISDN_AddressString", HFILL }},
31162 { &hf_gsm_map_lcs_targetMS,
31163 { "targetMS", "gsm_map.lcs.targetMS",
31164 FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
31165 "SubscriberIdentity", HFILL }},
31166 { &hf_gsm_map_lcs_extensionContainer,
31167 { "extensionContainer", "gsm_map.lcs.extensionContainer_element",
31168 FT_NONE, BASE_NONE, NULL, 0,
31169 NULL, HFILL }},
31170 { &hf_gsm_map_lcs_lcsLocationInfo,
31171 { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo_element",
31172 FT_NONE, BASE_NONE, NULL, 0,
31173 NULL, HFILL }},
31174 { &hf_gsm_map_lcs_v_gmlc_Address,
31175 { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address",
31176 FT_BYTES, BASE_NONE, NULL, 0,
31177 "GSN_Address", HFILL }},
31178 { &hf_gsm_map_lcs_h_gmlc_Address,
31179 { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address",
31180 FT_BYTES, BASE_NONE, NULL, 0,
31181 "GSN_Address", HFILL }},
31182 { &hf_gsm_map_lcs_ppr_Address,
31183 { "ppr-Address", "gsm_map.lcs.ppr_Address",
31184 FT_BYTES, BASE_NONE, NULL, 0,
31185 "GSN_Address", HFILL }},
31186 { &hf_gsm_map_lcs_additional_v_gmlc_Address,
31187 { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address",
31188 FT_BYTES, BASE_NONE, NULL, 0,
31189 "GSN_Address", HFILL }},
31190 { &hf_gsm_map_lcs_networkNode_Number,
31191 { "networkNode-Number", "gsm_map.lcs.networkNode_Number",
31192 FT_BYTES, BASE_NONE, NULL, 0,
31193 "ISDN_AddressString", HFILL }},
31194 { &hf_gsm_map_lcs_lmsi,
31195 { "lmsi", "gsm_map.lcs.lmsi",
31196 FT_BYTES, BASE_NONE, NULL, 0,
31197 NULL, HFILL }},
31198 { &hf_gsm_map_lcs_gprsNodeIndicator,
31199 { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator_element",
31200 FT_NONE, BASE_NONE, NULL, 0,
31201 NULL, HFILL }},
31202 { &hf_gsm_map_lcs_additional_Number,
31203 { "additional-Number", "gsm_map.lcs.additional_Number",
31204 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
31205 NULL, HFILL }},
31206 { &hf_gsm_map_lcs_supportedLCS_CapabilitySets,
31207 { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets",
31208 FT_BYTES, BASE_NONE, NULL, 0,
31209 NULL, HFILL }},
31210 { &hf_gsm_map_lcs_additional_LCS_CapabilitySets,
31211 { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets",
31212 FT_BYTES, BASE_NONE, NULL, 0,
31213 "SupportedLCS_CapabilitySets", HFILL }},
31214 { &hf_gsm_map_lcs_mme_Name,
31215 { "mme-Name", "gsm_map.lcs.mme_Name",
31216 FT_STRING, BASE_NONE, NULL, 0,
31217 "DiameterIdentity", HFILL }},
31218 { &hf_gsm_map_lcs_aaa_Server_Name,
31219 { "aaa-Server-Name", "gsm_map.lcs.aaa_Server_Name",
31220 FT_STRING, BASE_NONE, NULL, 0,
31221 "DiameterIdentity", HFILL }},
31222 { &hf_gsm_map_lcs_sgsn_Name,
31223 { "sgsn-Name", "gsm_map.lcs.sgsn_Name",
31224 FT_STRING, BASE_NONE, NULL, 0,
31225 "DiameterIdentity", HFILL }},
31226 { &hf_gsm_map_lcs_sgsn_Realm,
31227 { "sgsn-Realm", "gsm_map.lcs.sgsn_Realm",
31228 FT_STRING, BASE_NONE, NULL, 0,
31229 "DiameterIdentity", HFILL }},
31230 { &hf_gsm_map_lcs_locationType,
31231 { "locationType", "gsm_map.lcs.locationType_element",
31232 FT_NONE, BASE_NONE, NULL, 0,
31233 NULL, HFILL }},
31234 { &hf_gsm_map_lcs_mlc_Number,
31235 { "mlc-Number", "gsm_map.lcs.mlc_Number",
31236 FT_BYTES, BASE_NONE, NULL, 0,
31237 "ISDN_AddressString", HFILL }},
31238 { &hf_gsm_map_lcs_lcs_ClientID,
31239 { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID_element",
31240 FT_NONE, BASE_NONE, NULL, 0,
31241 NULL, HFILL }},
31242 { &hf_gsm_map_lcs_privacyOverride,
31243 { "privacyOverride", "gsm_map.lcs.privacyOverride_element",
31244 FT_NONE, BASE_NONE, NULL, 0,
31245 NULL, HFILL }},
31246 { &hf_gsm_map_lcs_imsi,
31247 { "imsi", "gsm_map.lcs.imsi",
31248 FT_BYTES, BASE_NONE, NULL, 0,
31249 NULL, HFILL }},
31250 { &hf_gsm_map_lcs_msisdn,
31251 { "msisdn", "gsm_map.lcs.msisdn",
31252 FT_BYTES, BASE_NONE, NULL, 0,
31253 "ISDN_AddressString", HFILL }},
31254 { &hf_gsm_map_lcs_imei,
31255 { "imei", "gsm_map.lcs.imei",
31256 FT_BYTES, BASE_NONE, NULL, 0,
31257 NULL, HFILL }},
31258 { &hf_gsm_map_lcs_lcs_Priority,
31259 { "lcs-Priority", "gsm_map.lcs.lcs_Priority",
31260 FT_BYTES, BASE_NONE, NULL, 0,
31261 NULL, HFILL }},
31262 { &hf_gsm_map_lcs_lcs_QoS,
31263 { "lcs-QoS", "gsm_map.lcs.lcs_QoS_element",
31264 FT_NONE, BASE_NONE, NULL, 0,
31265 NULL, HFILL }},
31266 { &hf_gsm_map_lcs_supportedGADShapes,
31267 { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes",
31268 FT_BYTES, BASE_NONE, NULL, 0,
31269 NULL, HFILL }},
31270 { &hf_gsm_map_lcs_lcs_ReferenceNumber,
31271 { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber",
31272 FT_BYTES, BASE_NONE, NULL, 0,
31273 NULL, HFILL }},
31274 { &hf_gsm_map_lcs_lcsServiceTypeID,
31275 { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID",
31276 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
31277 NULL, HFILL }},
31278 { &hf_gsm_map_lcs_lcsCodeword,
31279 { "lcsCodeword", "gsm_map.lcs.lcsCodeword_element",
31280 FT_NONE, BASE_NONE, NULL, 0,
31281 NULL, HFILL }},
31282 { &hf_gsm_map_lcs_lcs_PrivacyCheck,
31283 { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck_element",
31284 FT_NONE, BASE_NONE, NULL, 0,
31285 NULL, HFILL }},
31286 { &hf_gsm_map_lcs_areaEventInfo,
31287 { "areaEventInfo", "gsm_map.lcs.areaEventInfo_element",
31288 FT_NONE, BASE_NONE, NULL, 0,
31289 NULL, HFILL }},
31290 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator,
31291 { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator_element",
31292 FT_NONE, BASE_NONE, NULL, 0,
31293 NULL, HFILL }},
31294 { &hf_gsm_map_lcs_periodicLDRInfo,
31295 { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo_element",
31296 FT_NONE, BASE_NONE, NULL, 0,
31297 NULL, HFILL }},
31298 { &hf_gsm_map_lcs_reportingPLMNList,
31299 { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList_element",
31300 FT_NONE, BASE_NONE, NULL, 0,
31301 NULL, HFILL }},
31302 { &hf_gsm_map_lcs_locationEstimateType,
31303 { "locationEstimateType", "gsm_map.lcs.locationEstimateType",
31304 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0,
31305 NULL, HFILL }},
31306 { &hf_gsm_map_lcs_deferredLocationEventType,
31307 { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType",
31308 FT_BYTES, BASE_NONE, NULL, 0,
31309 NULL, HFILL }},
31310 { &hf_gsm_map_lcs_lcsClientType,
31311 { "lcsClientType", "gsm_map.lcs.lcsClientType",
31312 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
31313 NULL, HFILL }},
31314 { &hf_gsm_map_lcs_lcsClientExternalID,
31315 { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID_element",
31316 FT_NONE, BASE_NONE, NULL, 0,
31317 NULL, HFILL }},
31318 { &hf_gsm_map_lcs_lcsClientDialedByMS,
31319 { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS",
31320 FT_BYTES, BASE_NONE, NULL, 0,
31321 "AddressString", HFILL }},
31322 { &hf_gsm_map_lcs_lcsClientInternalID,
31323 { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID",
31324 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
31325 NULL, HFILL }},
31326 { &hf_gsm_map_lcs_lcsClientName,
31327 { "lcsClientName", "gsm_map.lcs.lcsClientName_element",
31328 FT_NONE, BASE_NONE, NULL, 0,
31329 NULL, HFILL }},
31330 { &hf_gsm_map_lcs_lcsAPN,
31331 { "lcsAPN", "gsm_map.lcs.lcsAPN",
31332 FT_BYTES, BASE_NONE, NULL, 0,
31333 "APN", HFILL }},
31334 { &hf_gsm_map_lcs_lcsRequestorID,
31335 { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID_element",
31336 FT_NONE, BASE_NONE, NULL, 0,
31337 NULL, HFILL }},
31338 { &hf_gsm_map_lcs_dataCodingScheme,
31339 { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme",
31340 FT_BYTES, BASE_NONE, NULL, 0,
31341 "USSD_DataCodingScheme", HFILL }},
31342 { &hf_gsm_map_lcs_nameString,
31343 { "nameString", "gsm_map.lcs.nameString",
31344 FT_BYTES, BASE_NONE, NULL, 0,
31345 NULL, HFILL }},
31346 { &hf_gsm_map_lcs_lcs_FormatIndicator,
31347 { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator",
31348 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0,
31349 NULL, HFILL }},
31350 { &hf_gsm_map_lcs_requestorIDString,
31351 { "requestorIDString", "gsm_map.lcs.requestorIDString",
31352 FT_BYTES, BASE_NONE, NULL, 0,
31353 NULL, HFILL }},
31354 { &hf_gsm_map_lcs_horizontal_accuracy,
31355 { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy",
31356 FT_BYTES, BASE_NONE, NULL, 0,
31357 NULL, HFILL }},
31358 { &hf_gsm_map_lcs_verticalCoordinateRequest,
31359 { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest_element",
31360 FT_NONE, BASE_NONE, NULL, 0,
31361 NULL, HFILL }},
31362 { &hf_gsm_map_lcs_vertical_accuracy,
31363 { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy",
31364 FT_BYTES, BASE_NONE, NULL, 0,
31365 NULL, HFILL }},
31366 { &hf_gsm_map_lcs_responseTime,
31367 { "responseTime", "gsm_map.lcs.responseTime_element",
31368 FT_NONE, BASE_NONE, NULL, 0,
31369 NULL, HFILL }},
31370 { &hf_gsm_map_lcs_velocityRequest,
31371 { "velocityRequest", "gsm_map.lcs.velocityRequest_element",
31372 FT_NONE, BASE_NONE, NULL, 0,
31373 NULL, HFILL }},
31374 { &hf_gsm_map_lcs_lcs_qos_class,
31375 { "lcs-qos-class", "gsm_map.lcs.lcs_qos_class",
31376 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_QoS_Class_vals), 0,
31377 NULL, HFILL }},
31378 { &hf_gsm_map_lcs_responseTimeCategory,
31379 { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory",
31380 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0,
31381 NULL, HFILL }},
31382 { &hf_gsm_map_lcs_lcsCodewordString,
31383 { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString",
31384 FT_BYTES, BASE_NONE, NULL, 0,
31385 NULL, HFILL }},
31386 { &hf_gsm_map_lcs_callSessionUnrelated,
31387 { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated",
31388 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
31389 "PrivacyCheckRelatedAction", HFILL }},
31390 { &hf_gsm_map_lcs_callSessionRelated,
31391 { "callSessionRelated", "gsm_map.lcs.callSessionRelated",
31392 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
31393 "PrivacyCheckRelatedAction", HFILL }},
31394 { &hf_gsm_map_lcs_areaDefinition,
31395 { "areaDefinition", "gsm_map.lcs.areaDefinition_element",
31396 FT_NONE, BASE_NONE, NULL, 0,
31397 NULL, HFILL }},
31398 { &hf_gsm_map_lcs_occurrenceInfo,
31399 { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo",
31400 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
31401 NULL, HFILL }},
31402 { &hf_gsm_map_lcs_intervalTime,
31403 { "intervalTime", "gsm_map.lcs.intervalTime",
31404 FT_UINT32, BASE_DEC, NULL, 0,
31405 NULL, HFILL }},
31406 { &hf_gsm_map_lcs_areaList,
31407 { "areaList", "gsm_map.lcs.areaList",
31408 FT_UINT32, BASE_DEC, NULL, 0,
31409 NULL, HFILL }},
31410 { &hf_gsm_map_lcs_AreaList_item,
31411 { "Area", "gsm_map.lcs.Area_element",
31412 FT_NONE, BASE_NONE, NULL, 0,
31413 NULL, HFILL }},
31414 { &hf_gsm_map_lcs_areaType,
31415 { "areaType", "gsm_map.lcs.areaType",
31416 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0,
31417 NULL, HFILL }},
31418 { &hf_gsm_map_lcs_areaIdentification,
31419 { "areaIdentification", "gsm_map.lcs.areaIdentification",
31420 FT_BYTES, BASE_NONE, NULL, 0,
31421 NULL, HFILL }},
31422 { &hf_gsm_map_lcs_reportingAmount,
31423 { "reportingAmount", "gsm_map.lcs.reportingAmount",
31424 FT_UINT32, BASE_DEC, NULL, 0,
31425 NULL, HFILL }},
31426 { &hf_gsm_map_lcs_reportingInterval,
31427 { "reportingInterval", "gsm_map.lcs.reportingInterval",
31428 FT_UINT32, BASE_DEC, NULL, 0,
31429 NULL, HFILL }},
31430 { &hf_gsm_map_lcs_reportingOptionMilliseconds,
31431 { "reportingOptionMilliseconds", "gsm_map.lcs.reportingOptionMilliseconds_element",
31432 FT_NONE, BASE_NONE, NULL, 0,
31433 NULL, HFILL }},
31434 { &hf_gsm_map_lcs_reportingAmountMilliseconds,
31435 { "reportingAmountMilliseconds", "gsm_map.lcs.reportingAmountMilliseconds",
31436 FT_UINT32, BASE_DEC, NULL, 0,
31437 NULL, HFILL }},
31438 { &hf_gsm_map_lcs_reportingIntervalMilliseconds,
31439 { "reportingIntervalMilliseconds", "gsm_map.lcs.reportingIntervalMilliseconds",
31440 FT_UINT32, BASE_DEC, NULL, 0,
31441 NULL, HFILL }},
31442 { &hf_gsm_map_lcs_plmn_ListPrioritized,
31443 { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized_element",
31444 FT_NONE, BASE_NONE, NULL, 0,
31445 NULL, HFILL }},
31446 { &hf_gsm_map_lcs_plmn_List,
31447 { "plmn-List", "gsm_map.lcs.plmn_List",
31448 FT_UINT32, BASE_DEC, NULL, 0,
31449 "PLMNList", HFILL }},
31450 { &hf_gsm_map_lcs_PLMNList_item,
31451 { "ReportingPLMN", "gsm_map.lcs.ReportingPLMN_element",
31452 FT_NONE, BASE_NONE, NULL, 0,
31453 NULL, HFILL }},
31454 { &hf_gsm_map_lcs_plmn_Id,
31455 { "plmn-Id", "gsm_map.lcs.plmn_Id",
31456 FT_BYTES, BASE_NONE, NULL, 0,
31457 NULL, HFILL }},
31458 { &hf_gsm_map_lcs_ran_Technology,
31459 { "ran-Technology", "gsm_map.lcs.ran_Technology",
31460 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0,
31461 NULL, HFILL }},
31462 { &hf_gsm_map_lcs_ran_PeriodicLocationSupport,
31463 { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport_element",
31464 FT_NONE, BASE_NONE, NULL, 0,
31465 NULL, HFILL }},
31466 { &hf_gsm_map_lcs_locationEstimate,
31467 { "locationEstimate", "gsm_map.lcs.locationEstimate",
31468 FT_BYTES, BASE_NONE, NULL, 0,
31469 "Ext_GeographicalInformation", HFILL }},
31470 { &hf_gsm_map_lcs_ageOfLocationEstimate,
31471 { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate",
31472 FT_UINT32, BASE_DEC, NULL, 0,
31473 "AgeOfLocationInformation", HFILL }},
31474 { &hf_gsm_map_lcs_add_LocationEstimate,
31475 { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate",
31476 FT_BYTES, BASE_NONE, NULL, 0,
31477 "Add_GeographicalInformation", HFILL }},
31478 { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator,
31479 { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator_element",
31480 FT_NONE, BASE_NONE, NULL, 0,
31481 NULL, HFILL }},
31482 { &hf_gsm_map_lcs_geranPositioningData,
31483 { "geranPositioningData", "gsm_map.lcs.geranPositioningData",
31484 FT_BYTES, BASE_NONE, NULL, 0,
31485 "PositioningDataInformation", HFILL }},
31486 { &hf_gsm_map_lcs_utranPositioningData,
31487 { "utranPositioningData", "gsm_map.lcs.utranPositioningData",
31488 FT_BYTES, BASE_NONE, NULL, 0,
31489 "UtranPositioningDataInfo", HFILL }},
31490 { &hf_gsm_map_lcs_cellIdOrSai,
31491 { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai",
31492 FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
31493 "CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
31494 { &hf_gsm_map_lcs_sai_Present,
31495 { "sai-Present", "gsm_map.lcs.sai_Present_element",
31496 FT_NONE, BASE_NONE, NULL, 0,
31497 NULL, HFILL }},
31498 { &hf_gsm_map_lcs_accuracyFulfilmentIndicator,
31499 { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator",
31500 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0,
31501 NULL, HFILL }},
31502 { &hf_gsm_map_lcs_velocityEstimate,
31503 { "velocityEstimate", "gsm_map.lcs.velocityEstimate",
31504 FT_BYTES, BASE_NONE, NULL, 0,
31505 NULL, HFILL }},
31506 { &hf_gsm_map_lcs_geranGANSSpositioningData,
31507 { "geranGANSSpositioningData", "gsm_map.lcs.geranGANSSpositioningData",
31508 FT_BYTES, BASE_NONE, NULL, 0,
31509 NULL, HFILL }},
31510 { &hf_gsm_map_lcs_utranGANSSpositioningData,
31511 { "utranGANSSpositioningData", "gsm_map.lcs.utranGANSSpositioningData",
31512 FT_BYTES, BASE_NONE, NULL, 0,
31513 NULL, HFILL }},
31514 { &hf_gsm_map_lcs_targetServingNodeForHandover,
31515 { "targetServingNodeForHandover", "gsm_map.lcs.targetServingNodeForHandover",
31516 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ServingNodeAddress_vals), 0,
31517 "ServingNodeAddress", HFILL }},
31518 { &hf_gsm_map_lcs_utranAdditionalPositioningData,
31519 { "utranAdditionalPositioningData", "gsm_map.lcs.utranAdditionalPositioningData",
31520 FT_BYTES, BASE_NONE, NULL, 0,
31521 NULL, HFILL }},
31522 { &hf_gsm_map_lcs_utranBaroPressureMeas,
31523 { "utranBaroPressureMeas", "gsm_map.lcs.utranBaroPressureMeas",
31524 FT_UINT32, BASE_DEC, NULL, 0,
31525 NULL, HFILL }},
31526 { &hf_gsm_map_lcs_utranCivicAddress,
31527 { "utranCivicAddress", "gsm_map.lcs.utranCivicAddress",
31528 FT_BYTES, BASE_NONE, NULL, 0,
31529 NULL, HFILL }},
31530 { &hf_gsm_map_lcs_lcs_Event,
31531 { "lcs-Event", "gsm_map.lcs.lcs_Event",
31532 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0,
31533 NULL, HFILL }},
31534 { &hf_gsm_map_lcs_na_ESRD,
31535 { "na-ESRD", "gsm_map.lcs.na_ESRD",
31536 FT_BYTES, BASE_NONE, NULL, 0,
31537 "ISDN_AddressString", HFILL }},
31538 { &hf_gsm_map_lcs_na_ESRK,
31539 { "na-ESRK", "gsm_map.lcs.na_ESRK",
31540 FT_BYTES, BASE_NONE, NULL, 0,
31541 "ISDN_AddressString", HFILL }},
31542 { &hf_gsm_map_lcs_slr_ArgExtensionContainer,
31543 { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer_element",
31544 FT_NONE, BASE_NONE, NULL, 0,
31545 NULL, HFILL }},
31546 { &hf_gsm_map_lcs_deferredmt_lrData,
31547 { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData_element",
31548 FT_NONE, BASE_NONE, NULL, 0,
31549 NULL, HFILL }},
31550 { &hf_gsm_map_lcs_pseudonymIndicator,
31551 { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator_element",
31552 FT_NONE, BASE_NONE, NULL, 0,
31553 NULL, HFILL }},
31554 { &hf_gsm_map_lcs_sequenceNumber,
31555 { "sequenceNumber", "gsm_map.lcs.sequenceNumber",
31556 FT_UINT32, BASE_DEC, NULL, 0,
31557 NULL, HFILL }},
31558 { &hf_gsm_map_lcs_terminationCause,
31559 { "terminationCause", "gsm_map.lcs.terminationCause",
31560 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0,
31561 NULL, HFILL }},
31562 { &hf_gsm_map_lcs_msc_Number,
31563 { "msc-Number", "gsm_map.lcs.msc_Number",
31564 FT_BYTES, BASE_NONE, NULL, 0,
31565 "ISDN_AddressString", HFILL }},
31566 { &hf_gsm_map_lcs_sgsn_Number,
31567 { "sgsn-Number", "gsm_map.lcs.sgsn_Number",
31568 FT_BYTES, BASE_NONE, NULL, 0,
31569 "ISDN_AddressString", HFILL }},
31570 { &hf_gsm_map_lcs_mme_Number,
31571 { "mme-Number", "gsm_map.lcs.mme_Number",
31572 FT_STRING, BASE_NONE, NULL, 0,
31573 "DiameterIdentity", HFILL }},
31574 { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
31575 { "msAvailable", "gsm.map.lcs.DeferredLocationEventType.msAvailable",
31576 FT_BOOLEAN, 8, NULL, 0x80,
31577 NULL, HFILL }},
31578 { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
31579 { "enteringIntoArea", "gsm.map.lcs.DeferredLocationEventType.enteringIntoArea",
31580 FT_BOOLEAN, 8, NULL, 0x40,
31581 NULL, HFILL }},
31582 { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
31583 { "leavingFromArea", "gsm.map.lcs.DeferredLocationEventType.leavingFromArea",
31584 FT_BOOLEAN, 8, NULL, 0x20,
31585 NULL, HFILL }},
31586 { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
31587 { "beingInsideArea", "gsm.map.lcs.DeferredLocationEventType.beingInsideArea",
31588 FT_BOOLEAN, 8, NULL, 0x10,
31589 NULL, HFILL }},
31590 { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
31591 { "periodicLDR", "gsm.map.lcs.DeferredLocationEventType.periodicLDR",
31592 FT_BOOLEAN, 8, NULL, 0x08,
31593 NULL, HFILL }},
31594 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
31595 { "ellipsoidPoint", "gsm.map.lcs.SupportedGADShapes.ellipsoidPoint",
31596 FT_BOOLEAN, 8, NULL, 0x80,
31597 NULL, HFILL }},
31598 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
31599 { "ellipsoidPointWithUncertaintyCircle", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithUncertaintyCircle",
31600 FT_BOOLEAN, 8, NULL, 0x40,
31601 NULL, HFILL }},
31602 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
31603 { "ellipsoidPointWithUncertaintyEllipse", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithUncertaintyEllipse",
31604 FT_BOOLEAN, 8, NULL, 0x20,
31605 NULL, HFILL }},
31606 { &hf_gsm_map_lcs_SupportedGADShapes_polygon,
31607 { "polygon", "gsm.map.lcs.SupportedGADShapes.polygon",
31608 FT_BOOLEAN, 8, NULL, 0x10,
31609 NULL, HFILL }},
31610 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
31611 { "ellipsoidPointWithAltitude", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithAltitude",
31612 FT_BOOLEAN, 8, NULL, 0x08,
31613 NULL, HFILL }},
31614 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
31615 { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
31616 FT_BOOLEAN, 8, NULL, 0x04,
31617 NULL, HFILL }},
31618 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
31619 { "ellipsoidArc", "gsm.map.lcs.SupportedGADShapes.ellipsoidArc",
31620 FT_BOOLEAN, 8, NULL, 0x02,
31621 NULL, HFILL }},
31623 /* --- Module MAP-GR-DataTypes --- --- --- */
31625 { &hf_gsm_map_gr_teleservice,
31626 { "teleservice", "gsm_map.gr.teleservice",
31627 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
31628 "Ext_TeleserviceCode", HFILL }},
31629 { &hf_gsm_map_gr_asciCallReference,
31630 { "asciCallReference", "gsm_map.gr.asciCallReference",
31631 FT_BYTES, BASE_NONE, NULL, 0,
31632 "ASCI_CallReference", HFILL }},
31633 { &hf_gsm_map_gr_codec_Info,
31634 { "codec-Info", "gsm_map.gr.codec_Info",
31635 FT_BYTES, BASE_NONE, NULL, 0,
31636 NULL, HFILL }},
31637 { &hf_gsm_map_gr_cipheringAlgorithm,
31638 { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm",
31639 FT_BYTES, BASE_NONE, NULL, 0,
31640 NULL, HFILL }},
31641 { &hf_gsm_map_gr_groupKeyNumber_Vk_Id,
31642 { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id",
31643 FT_UINT32, BASE_DEC, NULL, 0,
31644 "GroupKeyNumber", HFILL }},
31645 { &hf_gsm_map_gr_groupKey,
31646 { "groupKey", "gsm_map.gr.groupKey",
31647 FT_BYTES, BASE_NONE, NULL, 0,
31648 "Kc", HFILL }},
31649 { &hf_gsm_map_gr_priority,
31650 { "priority", "gsm_map.gr.priority",
31651 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
31652 "EMLPP_Priority", HFILL }},
31653 { &hf_gsm_map_gr_uplinkFree,
31654 { "uplinkFree", "gsm_map.gr.uplinkFree_element",
31655 FT_NONE, BASE_NONE, NULL, 0,
31656 NULL, HFILL }},
31657 { &hf_gsm_map_gr_extensionContainer,
31658 { "extensionContainer", "gsm_map.gr.extensionContainer_element",
31659 FT_NONE, BASE_NONE, NULL, 0,
31660 NULL, HFILL }},
31661 { &hf_gsm_map_gr_vstk,
31662 { "vstk", "gsm_map.gr.vstk",
31663 FT_BYTES, BASE_NONE, NULL, 0,
31664 NULL, HFILL }},
31665 { &hf_gsm_map_gr_vstk_rand,
31666 { "vstk-rand", "gsm_map.gr.vstk_rand",
31667 FT_BYTES, BASE_NONE, NULL, 0,
31668 NULL, HFILL }},
31669 { &hf_gsm_map_gr_talkerChannelParameter,
31670 { "talkerChannelParameter", "gsm_map.gr.talkerChannelParameter_element",
31671 FT_NONE, BASE_NONE, NULL, 0,
31672 NULL, HFILL }},
31673 { &hf_gsm_map_gr_uplinkReplyIndicator,
31674 { "uplinkReplyIndicator", "gsm_map.gr.uplinkReplyIndicator_element",
31675 FT_NONE, BASE_NONE, NULL, 0,
31676 NULL, HFILL }},
31677 { &hf_gsm_map_gr_groupCallNumber,
31678 { "groupCallNumber", "gsm_map.gr.groupCallNumber",
31679 FT_BYTES, BASE_NONE, NULL, 0,
31680 "ISDN_AddressString", HFILL }},
31681 { &hf_gsm_map_gr_imsi,
31682 { "imsi", "gsm_map.gr.imsi",
31683 FT_BYTES, BASE_NONE, NULL, 0,
31684 NULL, HFILL }},
31685 { &hf_gsm_map_gr_talkerPriority,
31686 { "talkerPriority", "gsm_map.gr.talkerPriority",
31687 FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0,
31688 NULL, HFILL }},
31689 { &hf_gsm_map_gr_additionalInfo,
31690 { "additionalInfo", "gsm_map.gr.additionalInfo",
31691 FT_BYTES, BASE_NONE, NULL, 0,
31692 NULL, HFILL }},
31693 { &hf_gsm_map_gr_uplinkRequestAck,
31694 { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck_element",
31695 FT_NONE, BASE_NONE, NULL, 0,
31696 NULL, HFILL }},
31697 { &hf_gsm_map_gr_uplinkReleaseIndication,
31698 { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication_element",
31699 FT_NONE, BASE_NONE, NULL, 0,
31700 NULL, HFILL }},
31701 { &hf_gsm_map_gr_uplinkRejectCommand,
31702 { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand_element",
31703 FT_NONE, BASE_NONE, NULL, 0,
31704 NULL, HFILL }},
31705 { &hf_gsm_map_gr_uplinkSeizedCommand,
31706 { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand_element",
31707 FT_NONE, BASE_NONE, NULL, 0,
31708 NULL, HFILL }},
31709 { &hf_gsm_map_gr_uplinkReleaseCommand,
31710 { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand_element",
31711 FT_NONE, BASE_NONE, NULL, 0,
31712 NULL, HFILL }},
31713 { &hf_gsm_map_gr_stateAttributes,
31714 { "stateAttributes", "gsm_map.gr.stateAttributes_element",
31715 FT_NONE, BASE_NONE, NULL, 0,
31716 NULL, HFILL }},
31717 { &hf_gsm_map_gr_emergencyModeResetCommandFlag,
31718 { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag_element",
31719 FT_NONE, BASE_NONE, NULL, 0,
31720 NULL, HFILL }},
31721 { &hf_gsm_map_gr_sm_RP_UI,
31722 { "sm-RP-UI", "gsm_map.gr.sm_RP_UI",
31723 FT_BYTES, BASE_NONE, NULL, 0,
31724 "SignalInfo", HFILL }},
31725 { &hf_gsm_map_gr_an_APDU,
31726 { "an-APDU", "gsm_map.gr.an_APDU_element",
31727 FT_NONE, BASE_NONE, NULL, 0,
31728 "AccessNetworkSignalInfo", HFILL }},
31729 { &hf_gsm_map_gr_uplinkRequest,
31730 { "uplinkRequest", "gsm_map.gr.uplinkRequest_element",
31731 FT_NONE, BASE_NONE, NULL, 0,
31732 NULL, HFILL }},
31733 { &hf_gsm_map_gr_releaseGroupCall,
31734 { "releaseGroupCall", "gsm_map.gr.releaseGroupCall_element",
31735 FT_NONE, BASE_NONE, NULL, 0,
31736 NULL, HFILL }},
31737 { &hf_gsm_map_gr_downlinkAttached,
31738 { "downlinkAttached", "gsm_map.gr.downlinkAttached_element",
31739 FT_NONE, BASE_NONE, NULL, 0,
31740 NULL, HFILL }},
31741 { &hf_gsm_map_gr_uplinkAttached,
31742 { "uplinkAttached", "gsm_map.gr.uplinkAttached_element",
31743 FT_NONE, BASE_NONE, NULL, 0,
31744 NULL, HFILL }},
31745 { &hf_gsm_map_gr_dualCommunication,
31746 { "dualCommunication", "gsm_map.gr.dualCommunication_element",
31747 FT_NONE, BASE_NONE, NULL, 0,
31748 NULL, HFILL }},
31749 { &hf_gsm_map_gr_callOriginator,
31750 { "callOriginator", "gsm_map.gr.callOriginator_element",
31751 FT_NONE, BASE_NONE, NULL, 0,
31752 NULL, HFILL }},
31753 { &hf_gsm_map_gr_requestedInfo,
31754 { "requestedInfo", "gsm_map.gr.requestedInfo",
31755 FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0,
31756 NULL, HFILL }},
31757 { &hf_gsm_map_gr_groupId,
31758 { "groupId", "gsm_map.gr.groupId",
31759 FT_BYTES, BASE_NONE, NULL, 0,
31760 "Long_GroupId", HFILL }},
31761 { &hf_gsm_map_gr_cellId,
31762 { "cellId", "gsm_map.gr.cellId",
31763 FT_BYTES, BASE_NONE, NULL, 0,
31764 "GlobalCellId", HFILL }},
31765 { &hf_gsm_map_gr_tmsi,
31766 { "tmsi", "gsm_map.gr.tmsi",
31767 FT_BYTES, BASE_NONE, NULL, 0,
31768 NULL, HFILL }},
31769 { &hf_gsm_map_gr_cksn,
31770 { "cksn", "gsm_map.gr.cksn",
31771 FT_BYTES, BASE_NONE, NULL, 0,
31772 NULL, HFILL }},
31773 { &hf_gsm_map_gr_anchorMSC_Address,
31774 { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address",
31775 FT_BYTES, BASE_NONE, NULL, 0,
31776 "ISDN_AddressString", HFILL }},
31777 { &hf_gsm_map_gr_additionalSubscriptions,
31778 { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions",
31779 FT_BYTES, BASE_NONE, NULL, 0,
31780 NULL, HFILL }},
31781 { &hf_gsm_map_gr_kc,
31782 { "kc", "gsm_map.gr.kc",
31783 FT_BYTES, BASE_NONE, NULL, 0,
31784 NULL, HFILL }},
31786 /* --- Module MAP-DialogueInformation --- --- --- */
31788 { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU,
31789 { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU",
31790 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0,
31791 NULL, HFILL }},
31792 { &hf_gsm_map_dialogue_map_open,
31793 { "map-open", "gsm_map.dialogue.map_open_element",
31794 FT_NONE, BASE_NONE, NULL, 0,
31795 "MAP_OpenInfo", HFILL }},
31796 { &hf_gsm_map_dialogue_map_accept,
31797 { "map-accept", "gsm_map.dialogue.map_accept_element",
31798 FT_NONE, BASE_NONE, NULL, 0,
31799 "MAP_AcceptInfo", HFILL }},
31800 { &hf_gsm_map_dialogue_map_close,
31801 { "map-close", "gsm_map.dialogue.map_close_element",
31802 FT_NONE, BASE_NONE, NULL, 0,
31803 "MAP_CloseInfo", HFILL }},
31804 { &hf_gsm_map_dialogue_map_refuse,
31805 { "map-refuse", "gsm_map.dialogue.map_refuse_element",
31806 FT_NONE, BASE_NONE, NULL, 0,
31807 "MAP_RefuseInfo", HFILL }},
31808 { &hf_gsm_map_dialogue_map_userAbort,
31809 { "map-userAbort", "gsm_map.dialogue.map_userAbort_element",
31810 FT_NONE, BASE_NONE, NULL, 0,
31811 "MAP_UserAbortInfo", HFILL }},
31812 { &hf_gsm_map_dialogue_map_providerAbort,
31813 { "map-providerAbort", "gsm_map.dialogue.map_providerAbort_element",
31814 FT_NONE, BASE_NONE, NULL, 0,
31815 "MAP_ProviderAbortInfo", HFILL }},
31816 { &hf_gsm_map_dialogue_destinationReference,
31817 { "destinationReference", "gsm_map.dialogue.destinationReference",
31818 FT_BYTES, BASE_NONE, NULL, 0,
31819 "AddressString", HFILL }},
31820 { &hf_gsm_map_dialogue_originationReference,
31821 { "originationReference", "gsm_map.dialogue.originationReference",
31822 FT_BYTES, BASE_NONE, NULL, 0,
31823 "AddressString", HFILL }},
31824 { &hf_gsm_map_dialogue_extensionContainer,
31825 { "extensionContainer", "gsm_map.dialogue.extensionContainer_element",
31826 FT_NONE, BASE_NONE, NULL, 0,
31827 NULL, HFILL }},
31828 { &hf_gsm_map_dialogue_reason,
31829 { "reason", "gsm_map.dialogue.reason",
31830 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0,
31831 NULL, HFILL }},
31832 { &hf_gsm_map_dialogue_alternativeApplicationContext,
31833 { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext",
31834 FT_OID, BASE_NONE, NULL, 0,
31835 "OBJECT_IDENTIFIER", HFILL }},
31836 { &hf_gsm_map_dialogue_map_UserAbortChoice,
31837 { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice",
31838 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0,
31839 NULL, HFILL }},
31840 { &hf_gsm_map_dialogue_userSpecificReason,
31841 { "userSpecificReason", "gsm_map.dialogue.userSpecificReason_element",
31842 FT_NONE, BASE_NONE, NULL, 0,
31843 NULL, HFILL }},
31844 { &hf_gsm_map_dialogue_userResourceLimitation,
31845 { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation_element",
31846 FT_NONE, BASE_NONE, NULL, 0,
31847 NULL, HFILL }},
31848 { &hf_gsm_map_dialogue_resourceUnavailable,
31849 { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable",
31850 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0,
31851 "ResourceUnavailableReason", HFILL }},
31852 { &hf_gsm_map_dialogue_applicationProcedureCancellation,
31853 { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation",
31854 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0,
31855 "ProcedureCancellationReason", HFILL }},
31856 { &hf_gsm_map_dialogue_map_ProviderAbortReason,
31857 { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason",
31858 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0,
31859 NULL, HFILL }},
31861 /* --- Module DummyMAP --- --- --- */
31863 { &hf_gsm_old_invoke,
31864 { "invoke", "gsm_old.invoke_element",
31865 FT_NONE, BASE_NONE, NULL, 0,
31866 NULL, HFILL }},
31867 { &hf_gsm_old_returnResultLast,
31868 { "returnResultLast", "gsm_old.returnResultLast_element",
31869 FT_NONE, BASE_NONE, NULL, 0,
31870 "ReturnResult", HFILL }},
31871 { &hf_gsm_old_returnError,
31872 { "returnError", "gsm_old.returnError_element",
31873 FT_NONE, BASE_NONE, NULL, 0,
31874 NULL, HFILL }},
31875 { &hf_gsm_old_reject,
31876 { "reject", "gsm_old.reject_element",
31877 FT_NONE, BASE_NONE, NULL, 0,
31878 NULL, HFILL }},
31879 { &hf_gsm_old_returnResultNotLast,
31880 { "returnResultNotLast", "gsm_old.returnResultNotLast_element",
31881 FT_NONE, BASE_NONE, NULL, 0,
31882 "ReturnResult", HFILL }},
31883 { &hf_gsm_old_invokeID,
31884 { "invokeID", "gsm_old.invokeID",
31885 FT_INT32, BASE_DEC, NULL, 0,
31886 "InvokeIdType", HFILL }},
31887 { &hf_gsm_old_linkedID,
31888 { "linkedID", "gsm_old.linkedID",
31889 FT_INT32, BASE_DEC, NULL, 0,
31890 "InvokeIdType", HFILL }},
31891 { &hf_gsm_old_opCode,
31892 { "opCode", "gsm_old.opCode",
31893 FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0,
31894 "MAP_OPERATION", HFILL }},
31895 { &hf_gsm_old_invokeparameter,
31896 { "invokeparameter", "gsm_old.invokeparameter_element",
31897 FT_NONE, BASE_NONE, NULL, 0,
31898 NULL, HFILL }},
31899 { &hf_gsm_old_resultretres,
31900 { "resultretres", "gsm_old.resultretres_element",
31901 FT_NONE, BASE_NONE, NULL, 0,
31902 NULL, HFILL }},
31903 { &hf_gsm_old_returnparameter,
31904 { "returnparameter", "gsm_old.returnparameter_element",
31905 FT_NONE, BASE_NONE, NULL, 0,
31906 "ReturnResultParameter", HFILL }},
31907 { &hf_gsm_old_errorCode,
31908 { "errorCode", "gsm_old.errorCode",
31909 FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0,
31910 "MAP_ERROR", HFILL }},
31911 { &hf_gsm_old_parameter,
31912 { "parameter", "gsm_old.parameter_element",
31913 FT_NONE, BASE_NONE, NULL, 0,
31914 "ReturnErrorParameter", HFILL }},
31915 { &hf_gsm_old_invokeIDRej,
31916 { "invokeIDRej", "gsm_old.invokeIDRej",
31917 FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0,
31918 NULL, HFILL }},
31919 { &hf_gsm_old_derivable,
31920 { "derivable", "gsm_old.derivable",
31921 FT_INT32, BASE_DEC, NULL, 0,
31922 "InvokeIdType", HFILL }},
31923 { &hf_gsm_old_not_derivable,
31924 { "not-derivable", "gsm_old.not_derivable_element",
31925 FT_NONE, BASE_NONE, NULL, 0,
31926 NULL, HFILL }},
31927 { &hf_gsm_old_problem,
31928 { "problem", "gsm_old.problem",
31929 FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0,
31930 NULL, HFILL }},
31931 { &hf_gsm_old_generalProblem,
31932 { "generalProblem", "gsm_old.generalProblem",
31933 FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0,
31934 NULL, HFILL }},
31935 { &hf_gsm_old_invokeProblem,
31936 { "invokeProblem", "gsm_old.invokeProblem",
31937 FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0,
31938 NULL, HFILL }},
31939 { &hf_gsm_old_returnResultProblem,
31940 { "returnResultProblem", "gsm_old.returnResultProblem",
31941 FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0,
31942 NULL, HFILL }},
31943 { &hf_gsm_old_returnErrorProblem,
31944 { "returnErrorProblem", "gsm_old.returnErrorProblem",
31945 FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0,
31946 NULL, HFILL }},
31947 { &hf_gsm_old_localValue,
31948 { "localValue", "gsm_old.localValue",
31949 FT_INT32, BASE_DEC|BASE_EXT_STRING, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, 0,
31950 "OperationLocalvalue", HFILL }},
31951 { &hf_gsm_old_globalValue,
31952 { "globalValue", "gsm_old.globalValue",
31953 FT_OID, BASE_NONE, NULL, 0,
31954 "OBJECT_IDENTIFIER", HFILL }},
31955 { &hf_gsm_old_localValue_01,
31956 { "localValue", "gsm_old.localValue",
31957 FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0,
31958 "LocalErrorcode", HFILL }},
31959 { &hf_gsm_old_protocolId,
31960 { "protocolId", "gsm_old.protocolId",
31961 FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
31962 NULL, HFILL }},
31963 { &hf_gsm_old_signalInfo,
31964 { "signalInfo", "gsm_old.signalInfo",
31965 FT_BYTES, BASE_NONE, NULL, 0,
31966 NULL, HFILL }},
31967 { &hf_gsm_old_extensionContainer,
31968 { "extensionContainer", "gsm_old.extensionContainer_element",
31969 FT_NONE, BASE_NONE, NULL, 0,
31970 NULL, HFILL }},
31971 { &hf_gsm_old_gsm_BearerCapability,
31972 { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability_element",
31973 FT_NONE, BASE_NONE, NULL, 0,
31974 "ExternalSignalInfo", HFILL }},
31975 { &hf_gsm_old_isdn_BearerCapability,
31976 { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability_element",
31977 FT_NONE, BASE_NONE, NULL, 0,
31978 "ExternalSignalInfo", HFILL }},
31979 { &hf_gsm_old_call_Direction,
31980 { "call-Direction", "gsm_old.call_Direction",
31981 FT_BYTES, BASE_NONE, NULL, 0,
31982 "CallDirection", HFILL }},
31983 { &hf_gsm_old_b_Subscriber_Address,
31984 { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address",
31985 FT_BYTES, BASE_NONE, NULL, 0,
31986 "ISDN_AddressString", HFILL }},
31987 { &hf_gsm_old_chosenChannel,
31988 { "chosenChannel", "gsm_old.chosenChannel_element",
31989 FT_NONE, BASE_NONE, NULL, 0,
31990 "ExternalSignalInfo", HFILL }},
31991 { &hf_gsm_old_lowerLayerCompatibility,
31992 { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility_element",
31993 FT_NONE, BASE_NONE, NULL, 0,
31994 "ExternalSignalInfo", HFILL }},
31995 { &hf_gsm_old_highLayerCompatibility,
31996 { "highLayerCompatibility", "gsm_old.highLayerCompatibility_element",
31997 FT_NONE, BASE_NONE, NULL, 0,
31998 "ExternalSignalInfo", HFILL }},
31999 { &hf_gsm_old_sIWFSNumber,
32000 { "sIWFSNumber", "gsm_old.sIWFSNumber",
32001 FT_BYTES, BASE_NONE, NULL, 0,
32002 "ISDN_AddressString", HFILL }},
32003 { &hf_gsm_old_imsi,
32004 { "imsi", "gsm_old.imsi",
32005 FT_BYTES, BASE_NONE, NULL, 0,
32006 NULL, HFILL }},
32007 { &hf_gsm_old_vlr_Number,
32008 { "vlr-Number", "gsm_old.vlr_Number",
32009 FT_BYTES, BASE_NONE, NULL, 0,
32010 "ISDN_AddressString", HFILL }},
32011 { &hf_gsm_old_targetCellId,
32012 { "targetCellId", "gsm_old.targetCellId",
32013 FT_BYTES, BASE_NONE, NULL, 0,
32014 "GlobalCellId", HFILL }},
32015 { &hf_gsm_old_ho_NumberNotRequired,
32016 { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired_element",
32017 FT_NONE, BASE_NONE, NULL, 0,
32018 NULL, HFILL }},
32019 { &hf_gsm_old_bss_APDU,
32020 { "bss-APDU", "gsm_old.bss_APDU_element",
32021 FT_NONE, BASE_NONE, NULL, 0,
32022 NULL, HFILL }},
32023 { &hf_gsm_old_handoverNumber,
32024 { "handoverNumber", "gsm_old.handoverNumber",
32025 FT_BYTES, BASE_NONE, NULL, 0,
32026 "ISDN_AddressString", HFILL }},
32027 { &hf_gsm_old_SendAuthenticationInfoResOld_item,
32028 { "SendAuthenticationInfoResOld item", "gsm_old.SendAuthenticationInfoResOld_item_element",
32029 FT_NONE, BASE_NONE, NULL, 0,
32030 NULL, HFILL }},
32031 { &hf_gsm_old_rand,
32032 { "rand", "gsm_old.rand",
32033 FT_BYTES, BASE_NONE, NULL, 0,
32034 NULL, HFILL }},
32035 { &hf_gsm_old_sres,
32036 { "sres", "gsm_old.sres",
32037 FT_BYTES, BASE_NONE, NULL, 0,
32038 NULL, HFILL }},
32039 { &hf_gsm_old_kc,
32040 { "kc", "gsm_old.kc",
32041 FT_BYTES, BASE_NONE, NULL, 0,
32042 NULL, HFILL }},
32043 { &hf_gsm_old_tripletList,
32044 { "tripletList", "gsm_old.tripletList",
32045 FT_UINT32, BASE_DEC, NULL, 0,
32046 "TripletListold", HFILL }},
32047 { &hf_gsm_old_TripletListold_item,
32048 { "AuthenticationTriplet-v2", "gsm_old.AuthenticationTriplet_v2_element",
32049 FT_NONE, BASE_NONE, NULL, 0,
32050 NULL, HFILL }},
32051 { &hf_gsm_old_channelType,
32052 { "channelType", "gsm_old.channelType_element",
32053 FT_NONE, BASE_NONE, NULL, 0,
32054 "ExternalSignalInfo", HFILL }},
32055 { &hf_gsm_old_securityHeader,
32056 { "securityHeader", "gsm_old.securityHeader_element",
32057 FT_NONE, BASE_NONE, NULL, 0,
32058 NULL, HFILL }},
32059 { &hf_gsm_old_protectedPayload,
32060 { "protectedPayload", "gsm_old.protectedPayload",
32061 FT_BYTES, BASE_NONE, NULL, 0,
32062 NULL, HFILL }},
32063 { &hf_gsm_old_securityParametersIndex,
32064 { "securityParametersIndex", "gsm_old.securityParametersIndex",
32065 FT_BYTES, BASE_NONE, NULL, 0,
32066 NULL, HFILL }},
32067 { &hf_gsm_old_originalComponentIdentifier,
32068 { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier",
32069 FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0,
32070 NULL, HFILL }},
32071 { &hf_gsm_old_initialisationVector,
32072 { "initialisationVector", "gsm_old.initialisationVector",
32073 FT_BYTES, BASE_NONE, NULL, 0,
32074 NULL, HFILL }},
32075 { &hf_gsm_old_operationCode,
32076 { "operationCode", "gsm_old.operationCode",
32077 FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0,
32078 NULL, HFILL }},
32079 { &hf_gsm_old_errorCode_01,
32080 { "errorCode", "gsm_old.errorCode",
32081 FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0,
32082 NULL, HFILL }},
32083 { &hf_gsm_old_userInfo,
32084 { "userInfo", "gsm_old.userInfo_element",
32085 FT_NONE, BASE_NONE, NULL, 0,
32086 NULL, HFILL }},
32087 { &hf_gsm_old_localValue_02,
32088 { "localValue", "gsm_old.localValue",
32089 FT_INT32, BASE_DEC, NULL, 0,
32090 "INTEGER", HFILL }},
32091 { &hf_gsm_old_msisdn,
32092 { "msisdn", "gsm_old.msisdn",
32093 FT_BYTES, BASE_NONE, NULL, 0,
32094 "ISDN_AddressString", HFILL }},
32095 { &hf_gsm_old_category,
32096 { "category", "gsm_old.category",
32097 FT_BYTES, BASE_NONE, NULL, 0,
32098 NULL, HFILL }},
32099 { &hf_gsm_old_basicService,
32100 { "basicService", "gsm_old.basicService",
32101 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
32102 "BasicServiceCode", HFILL }},
32103 { &hf_gsm_old_operatorSS_Code,
32104 { "operatorSS-Code", "gsm_old.operatorSS_Code",
32105 FT_UINT32, BASE_DEC, NULL, 0,
32106 NULL, HFILL }},
32107 { &hf_gsm_old_operatorSS_Code_item,
32108 { "operatorSS-Code item", "gsm_old.operatorSS_Code_item",
32109 FT_BYTES, BASE_NONE, NULL, 0,
32110 "OCTET_STRING_SIZE_1", HFILL }},
32111 { &hf_gsm_old_sm_RP_DA,
32112 { "sm-RP-DA", "gsm_old.sm_RP_DA",
32113 FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0,
32114 "SM_RP_DAold", HFILL }},
32115 { &hf_gsm_old_sm_RP_OA,
32116 { "sm-RP-OA", "gsm_old.sm_RP_OA",
32117 FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0,
32118 "SM_RP_OAold", HFILL }},
32119 { &hf_gsm_old_sm_RP_UI,
32120 { "sm-RP-UI", "gsm_old.sm_RP_UI",
32121 FT_BYTES, BASE_NONE, NULL, 0,
32122 "SignalInfo", HFILL }},
32123 { &hf_gsm_old_moreMessagesToSend,
32124 { "moreMessagesToSend", "gsm_old.moreMessagesToSend_element",
32125 FT_NONE, BASE_NONE, NULL, 0,
32126 NULL, HFILL }},
32127 { &hf_gsm_old_imsi_01,
32128 { "imsi", "gsm_old.imsi",
32129 FT_BYTES, BASE_NONE, NULL, 0,
32130 NULL, HFILL }},
32131 { &hf_gsm_old_lmsi,
32132 { "lmsi", "gsm_old.lmsi",
32133 FT_BYTES, BASE_NONE, NULL, 0,
32134 NULL, HFILL }},
32135 { &hf_gsm_old_serviceCentreAddressDA,
32136 { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA",
32137 FT_BYTES, BASE_NONE, NULL, 0,
32138 NULL, HFILL }},
32139 { &hf_gsm_old_noSM_RP_DA,
32140 { "noSM-RP-DA", "gsm_old.noSM_RP_DA_element",
32141 FT_NONE, BASE_NONE, NULL, 0,
32142 NULL, HFILL }},
32143 { &hf_gsm_old_msisdn_01,
32144 { "msisdn", "gsm_old.msisdn",
32145 FT_BYTES, BASE_NONE, NULL, 0,
32146 NULL, HFILL }},
32147 { &hf_gsm_old_serviceCentreAddressOA,
32148 { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA",
32149 FT_BYTES, BASE_NONE, NULL, 0,
32150 NULL, HFILL }},
32151 { &hf_gsm_old_noSM_RP_OA,
32152 { "noSM-RP-OA", "gsm_old.noSM_RP_OA_element",
32153 FT_NONE, BASE_NONE, NULL, 0,
32154 NULL, HFILL }},
32155 { &hf_gsm_old_cug_CheckInfo,
32156 { "cug-CheckInfo", "gsm_old.cug_CheckInfo_element",
32157 FT_NONE, BASE_NONE, NULL, 0,
32158 NULL, HFILL }},
32159 { &hf_gsm_old_numberOfForwarding,
32160 { "numberOfForwarding", "gsm_old.numberOfForwarding",
32161 FT_UINT32, BASE_DEC, NULL, 0,
32162 NULL, HFILL }},
32163 { &hf_gsm_old_networkSignalInfo,
32164 { "networkSignalInfo", "gsm_old.networkSignalInfo_element",
32165 FT_NONE, BASE_NONE, NULL, 0,
32166 "ExternalSignalInfo", HFILL }},
32167 { &hf_gsm_old_routingInfo,
32168 { "routingInfo", "gsm_old.routingInfo",
32169 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
32170 NULL, HFILL }},
32171 { &hf_gsm_old_originatingEntityNumber,
32172 { "originatingEntityNumber", "gsm_old.originatingEntityNumber",
32173 FT_BYTES, BASE_NONE, NULL, 0,
32174 "ISDN_AddressString", HFILL }},
32175 { &hf_gsm_old_msisdn_02,
32176 { "msisdn", "gsm_old.msisdn",
32177 FT_BYTES, BASE_NONE, NULL, 0,
32178 "AddressString", HFILL }},
32179 { &hf_gsm_old_sm_RP_PRI,
32180 { "sm-RP-PRI", "gsm_old.sm_RP_PRI",
32181 FT_BOOLEAN, BASE_NONE, NULL, 0,
32182 "BOOLEAN", HFILL }},
32183 { &hf_gsm_old_serviceCentreAddress,
32184 { "serviceCentreAddress", "gsm_old.serviceCentreAddress",
32185 FT_BYTES, BASE_NONE, NULL, 0,
32186 "AddressString", HFILL }},
32187 { &hf_gsm_old_cug_Interlock,
32188 { "cug-Interlock", "gsm_old.cug_Interlock",
32189 FT_BYTES, BASE_NONE, NULL, 0,
32190 NULL, HFILL }},
32191 { &hf_gsm_old_teleserviceCode,
32192 { "teleserviceCode", "gsm_old.teleserviceCode",
32193 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
32194 NULL, HFILL }},
32195 { &hf_gsm_old_locationInfoWithLMSI,
32196 { "locationInfoWithLMSI", "gsm_old.locationInfoWithLMSI_element",
32197 FT_NONE, BASE_NONE, NULL, 0,
32198 "LocationInfoWithLMSIv2", HFILL }},
32199 { &hf_gsm_old_mwd_Set,
32200 { "mwd-Set", "gsm_old.mwd_Set",
32201 FT_BOOLEAN, BASE_NONE, NULL, 0,
32202 "BOOLEAN", HFILL }},
32203 { &hf_gsm_old_locationInfo,
32204 { "locationInfo", "gsm_old.locationInfo",
32205 FT_UINT32, BASE_DEC, VALS(gsm_old_LocationInfo_vals), 0,
32206 NULL, HFILL }},
32207 { &hf_gsm_old_lmsi_01,
32208 { "lmsi", "gsm_old.lmsi",
32209 FT_BYTES, BASE_NONE, NULL, 0,
32210 NULL, HFILL }},
32211 { &hf_gsm_old_roamingNumber,
32212 { "roamingNumber", "gsm_old.roamingNumber",
32213 FT_BYTES, BASE_NONE, NULL, 0,
32214 "ISDN_AddressString", HFILL }},
32215 { &hf_gsm_old_msc_Number,
32216 { "msc-Number", "gsm_old.msc_Number",
32217 FT_BYTES, BASE_NONE, NULL, 0,
32218 "ISDN_AddressString", HFILL }},
32219 { &hf_gsm_old_subscriberId,
32220 { "subscriberId", "gsm_old.subscriberId",
32221 FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberId_vals), 0,
32222 NULL, HFILL }},
32223 { &hf_gsm_old_requestParameterList,
32224 { "requestParameterList", "gsm_old.requestParameterList",
32225 FT_UINT32, BASE_DEC, NULL, 0,
32226 NULL, HFILL }},
32227 { &hf_gsm_old_RequestParameterList_item,
32228 { "RequestParameter", "gsm_old.RequestParameter",
32229 FT_UINT32, BASE_DEC, VALS(gsm_old_RequestParameter_vals), 0,
32230 NULL, HFILL }},
32231 { &hf_gsm_old_authenticationSet,
32232 { "authenticationSet", "gsm_old.authenticationSet",
32233 FT_UINT32, BASE_DEC, VALS(gsm_old_AuthenticationSetListOld_vals), 0,
32234 "AuthenticationSetListOld", HFILL }},
32235 { &hf_gsm_old_subscriberData,
32236 { "subscriberData", "gsm_old.subscriberData_element",
32237 FT_NONE, BASE_NONE, NULL, 0,
32238 NULL, HFILL }},
32239 { &hf_gsm_old_ki,
32240 { "ki", "gsm_old.ki",
32241 FT_BYTES, BASE_NONE, NULL, 0,
32242 NULL, HFILL }},
32243 { &hf_gsm_old_tripletList_01,
32244 { "tripletList", "gsm_old.tripletList",
32245 FT_UINT32, BASE_DEC, NULL, 0,
32246 NULL, HFILL }},
32247 { &hf_gsm_old_quintupletList,
32248 { "quintupletList", "gsm_old.quintupletList",
32249 FT_UINT32, BASE_DEC, NULL, 0,
32250 NULL, HFILL }},
32251 { &hf_gsm_old_SentParameterList_item,
32252 { "SentParameter", "gsm_old.SentParameter",
32253 FT_UINT32, BASE_DEC, VALS(gsm_old_SentParameter_vals), 0,
32254 NULL, HFILL }},
32255 { &hf_gsm_old_networkResource,
32256 { "networkResource", "gsm_old.networkResource",
32257 FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
32258 NULL, HFILL }},
32259 { &hf_gsm_old_hlr_Number,
32260 { "hlr-Number", "gsm_old.hlr_Number",
32261 FT_BYTES, BASE_NONE, NULL, 0,
32262 "ISDN_AddressString", HFILL }},
32263 { &hf_gsm_old_hlr_List,
32264 { "hlr-List", "gsm_old.hlr_List",
32265 FT_UINT32, BASE_DEC, NULL, 0,
32266 NULL, HFILL }},
32268 /* --- Module SS-DataTypes --- --- --- */
32270 { &hf_gsm_ss_ss_Code,
32271 { "ss-Code", "gsm_ss.ss_Code",
32272 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
32273 NULL, HFILL }},
32274 { &hf_gsm_ss_ss_Status,
32275 { "ss-Status", "gsm_ss.ss_Status",
32276 FT_BYTES, BASE_NONE, NULL, 0,
32277 NULL, HFILL }},
32278 { &hf_gsm_ss_ss_Notification,
32279 { "ss-Notification", "gsm_ss.ss_Notification",
32280 FT_BYTES, BASE_NONE, NULL, 0,
32281 NULL, HFILL }},
32282 { &hf_gsm_ss_callIsWaiting_Indicator,
32283 { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator_element",
32284 FT_NONE, BASE_NONE, NULL, 0,
32285 NULL, HFILL }},
32286 { &hf_gsm_ss_callOnHold_Indicator,
32287 { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator",
32288 FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0,
32289 NULL, HFILL }},
32290 { &hf_gsm_ss_mpty_Indicator,
32291 { "mpty-Indicator", "gsm_ss.mpty_Indicator_element",
32292 FT_NONE, BASE_NONE, NULL, 0,
32293 NULL, HFILL }},
32294 { &hf_gsm_ss_cug_Index,
32295 { "cug-Index", "gsm_ss.cug_Index",
32296 FT_UINT32, BASE_DEC, NULL, 0,
32297 NULL, HFILL }},
32298 { &hf_gsm_ss_clirSuppressionRejected,
32299 { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected_element",
32300 FT_NONE, BASE_NONE, NULL, 0,
32301 NULL, HFILL }},
32302 { &hf_gsm_ss_ect_Indicator,
32303 { "ect-Indicator", "gsm_ss.ect_Indicator_element",
32304 FT_NONE, BASE_NONE, NULL, 0,
32305 NULL, HFILL }},
32306 { &hf_gsm_ss_nameIndicator,
32307 { "nameIndicator", "gsm_ss.nameIndicator_element",
32308 FT_NONE, BASE_NONE, NULL, 0,
32309 NULL, HFILL }},
32310 { &hf_gsm_ss_ccbs_Feature,
32311 { "ccbs-Feature", "gsm_ss.ccbs_Feature_element",
32312 FT_NONE, BASE_NONE, NULL, 0,
32313 NULL, HFILL }},
32314 { &hf_gsm_ss_alertingPattern,
32315 { "alertingPattern", "gsm_ss.alertingPattern",
32316 FT_BYTES, BASE_NONE, NULL, 0,
32317 NULL, HFILL }},
32318 { &hf_gsm_ss_multicall_Indicator,
32319 { "multicall-Indicator", "gsm_ss.multicall_Indicator",
32320 FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0,
32321 NULL, HFILL }},
32322 { &hf_gsm_ss_chargingInformation,
32323 { "chargingInformation", "gsm_ss.chargingInformation_element",
32324 FT_NONE, BASE_NONE, NULL, 0,
32325 NULL, HFILL }},
32326 { &hf_gsm_ss_e1,
32327 { "e1", "gsm_ss.e1",
32328 FT_UINT32, BASE_DEC, NULL, 0,
32329 NULL, HFILL }},
32330 { &hf_gsm_ss_e2,
32331 { "e2", "gsm_ss.e2",
32332 FT_UINT32, BASE_DEC, NULL, 0,
32333 NULL, HFILL }},
32334 { &hf_gsm_ss_e3,
32335 { "e3", "gsm_ss.e3",
32336 FT_UINT32, BASE_DEC, NULL, 0,
32337 NULL, HFILL }},
32338 { &hf_gsm_ss_e4,
32339 { "e4", "gsm_ss.e4",
32340 FT_UINT32, BASE_DEC, NULL, 0,
32341 NULL, HFILL }},
32342 { &hf_gsm_ss_e5,
32343 { "e5", "gsm_ss.e5",
32344 FT_UINT32, BASE_DEC, NULL, 0,
32345 NULL, HFILL }},
32346 { &hf_gsm_ss_e6,
32347 { "e6", "gsm_ss.e6",
32348 FT_UINT32, BASE_DEC, NULL, 0,
32349 NULL, HFILL }},
32350 { &hf_gsm_ss_e7,
32351 { "e7", "gsm_ss.e7",
32352 FT_UINT32, BASE_DEC, NULL, 0,
32353 NULL, HFILL }},
32354 { &hf_gsm_ss_suppressPrefCUG,
32355 { "suppressPrefCUG", "gsm_ss.suppressPrefCUG_element",
32356 FT_NONE, BASE_NONE, NULL, 0,
32357 NULL, HFILL }},
32358 { &hf_gsm_ss_suppressOA,
32359 { "suppressOA", "gsm_ss.suppressOA_element",
32360 FT_NONE, BASE_NONE, NULL, 0,
32361 NULL, HFILL }},
32362 { &hf_gsm_ss_ect_CallState,
32363 { "ect-CallState", "gsm_ss.ect_CallState",
32364 FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0,
32365 NULL, HFILL }},
32366 { &hf_gsm_ss_rdn,
32367 { "rdn", "gsm_ss.rdn",
32368 FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0,
32369 NULL, HFILL }},
32370 { &hf_gsm_ss_callingName,
32371 { "callingName", "gsm_ss.callingName",
32372 FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0,
32373 "Name", HFILL }},
32374 { &hf_gsm_ss_namePresentationAllowed,
32375 { "namePresentationAllowed", "gsm_ss.namePresentationAllowed_element",
32376 FT_NONE, BASE_NONE, NULL, 0,
32377 "NameSet", HFILL }},
32378 { &hf_gsm_ss_presentationRestricted,
32379 { "presentationRestricted", "gsm_ss.presentationRestricted_element",
32380 FT_NONE, BASE_NONE, NULL, 0,
32381 NULL, HFILL }},
32382 { &hf_gsm_ss_nameUnavailable,
32383 { "nameUnavailable", "gsm_ss.nameUnavailable_element",
32384 FT_NONE, BASE_NONE, NULL, 0,
32385 NULL, HFILL }},
32386 { &hf_gsm_ss_namePresentationRestricted,
32387 { "namePresentationRestricted", "gsm_ss.namePresentationRestricted_element",
32388 FT_NONE, BASE_NONE, NULL, 0,
32389 "NameSet", HFILL }},
32390 { &hf_gsm_ss_dataCodingScheme,
32391 { "dataCodingScheme", "gsm_ss.dataCodingScheme",
32392 FT_BYTES, BASE_NONE, NULL, 0,
32393 "USSD_DataCodingScheme", HFILL }},
32394 { &hf_gsm_ss_lengthInCharacters,
32395 { "lengthInCharacters", "gsm_ss.lengthInCharacters",
32396 FT_INT32, BASE_DEC, NULL, 0,
32397 "INTEGER", HFILL }},
32398 { &hf_gsm_ss_nameString,
32399 { "nameString", "gsm_ss.nameString",
32400 FT_BYTES, BASE_NONE, NULL, 0,
32401 "USSD_String", HFILL }},
32402 { &hf_gsm_ss_presentationAllowedAddress,
32403 { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress_element",
32404 FT_NONE, BASE_NONE, NULL, 0,
32405 "RemotePartyNumber", HFILL }},
32406 { &hf_gsm_ss_numberNotAvailableDueToInterworking,
32407 { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking_element",
32408 FT_NONE, BASE_NONE, NULL, 0,
32409 NULL, HFILL }},
32410 { &hf_gsm_ss_presentationRestrictedAddress,
32411 { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress_element",
32412 FT_NONE, BASE_NONE, NULL, 0,
32413 "RemotePartyNumber", HFILL }},
32414 { &hf_gsm_ss_partyNumber,
32415 { "partyNumber", "gsm_ss.partyNumber",
32416 FT_BYTES, BASE_NONE, NULL, 0,
32417 "ISDN_AddressString", HFILL }},
32418 { &hf_gsm_ss_partyNumberSubaddress,
32419 { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress",
32420 FT_BYTES, BASE_NONE, NULL, 0,
32421 "ISDN_SubaddressString", HFILL }},
32422 { &hf_gsm_ss_deflectedToNumber,
32423 { "deflectedToNumber", "gsm_ss.deflectedToNumber",
32424 FT_BYTES, BASE_NONE, NULL, 0,
32425 "AddressString", HFILL }},
32426 { &hf_gsm_ss_deflectedToSubaddress,
32427 { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress",
32428 FT_BYTES, BASE_NONE, NULL, 0,
32429 "ISDN_SubaddressString", HFILL }},
32430 { &hf_gsm_ss_uUS_Service,
32431 { "uUS-Service", "gsm_ss.uUS_Service",
32432 FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0,
32433 NULL, HFILL }},
32434 { &hf_gsm_ss_uUS_Required,
32435 { "uUS-Required", "gsm_ss.uUS_Required",
32436 FT_BOOLEAN, BASE_NONE, NULL, 0,
32437 "BOOLEAN", HFILL }},
32438 { &hf_gsm_ss_notificationType,
32439 { "notificationType", "gsm_ss.notificationType",
32440 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
32441 "NotificationToMSUser", HFILL }},
32442 { &hf_gsm_ss_locationType,
32443 { "locationType", "gsm_ss.locationType_element",
32444 FT_NONE, BASE_NONE, NULL, 0,
32445 NULL, HFILL }},
32446 { &hf_gsm_ss_lcsClientExternalID,
32447 { "lcsClientExternalID", "gsm_ss.lcsClientExternalID_element",
32448 FT_NONE, BASE_NONE, NULL, 0,
32449 NULL, HFILL }},
32450 { &hf_gsm_ss_lcsClientName,
32451 { "lcsClientName", "gsm_ss.lcsClientName_element",
32452 FT_NONE, BASE_NONE, NULL, 0,
32453 NULL, HFILL }},
32454 { &hf_gsm_ss_lcsRequestorID,
32455 { "lcsRequestorID", "gsm_ss.lcsRequestorID_element",
32456 FT_NONE, BASE_NONE, NULL, 0,
32457 NULL, HFILL }},
32458 { &hf_gsm_ss_lcsCodeword,
32459 { "lcsCodeword", "gsm_ss.lcsCodeword_element",
32460 FT_NONE, BASE_NONE, NULL, 0,
32461 NULL, HFILL }},
32462 { &hf_gsm_ss_lcsServiceTypeID,
32463 { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID",
32464 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
32465 NULL, HFILL }},
32466 { &hf_gsm_ss_deferredLocationExt,
32467 { "deferredLocationExt", "gsm_ss.deferredLocationExt",
32468 FT_BYTES, BASE_NONE, NULL, 0,
32469 NULL, HFILL }},
32470 { &hf_gsm_ss_rangingSlExt,
32471 { "rangingSlExt", "gsm_ss.rangingSlExt",
32472 FT_BYTES, BASE_NONE, NULL, 0,
32473 NULL, HFILL }},
32474 { &hf_gsm_ss_verificationResponse,
32475 { "verificationResponse", "gsm_ss.verificationResponse",
32476 FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0,
32477 NULL, HFILL }},
32478 { &hf_gsm_ss_locationPrivacyIndication,
32479 { "locationPrivacyIndication", "gsm_ss.locationPrivacyIndication",
32480 FT_UINT32, BASE_DEC, VALS(gsm_ss_LCS_LocationPrivacyIndication_vals), 0,
32481 "LCS_LocationPrivacyIndication", HFILL }},
32482 { &hf_gsm_ss_validTimePeriod,
32483 { "validTimePeriod", "gsm_ss.validTimePeriod_element",
32484 FT_NONE, BASE_NONE, NULL, 0,
32485 "LCS_ValidTimePeriod", HFILL }},
32486 { &hf_gsm_ss_molr_Type,
32487 { "molr-Type", "gsm_ss.molr_Type",
32488 FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0,
32489 NULL, HFILL }},
32490 { &hf_gsm_ss_locationMethod,
32491 { "locationMethod", "gsm_ss.locationMethod",
32492 FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
32493 NULL, HFILL }},
32494 { &hf_gsm_ss_lcs_QoS,
32495 { "lcs-QoS", "gsm_ss.lcs_QoS_element",
32496 FT_NONE, BASE_NONE, NULL, 0,
32497 NULL, HFILL }},
32498 { &hf_gsm_ss_mlc_Number,
32499 { "mlc-Number", "gsm_ss.mlc_Number",
32500 FT_BYTES, BASE_NONE, NULL, 0,
32501 "ISDN_AddressString", HFILL }},
32502 { &hf_gsm_ss_gpsAssistanceData,
32503 { "gpsAssistanceData", "gsm_ss.gpsAssistanceData",
32504 FT_BYTES, BASE_NONE, NULL, 0,
32505 NULL, HFILL }},
32506 { &hf_gsm_ss_supportedGADShapes,
32507 { "supportedGADShapes", "gsm_ss.supportedGADShapes",
32508 FT_BYTES, BASE_NONE, NULL, 0,
32509 NULL, HFILL }},
32510 { &hf_gsm_ss_ageOfLocationInfo,
32511 { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo",
32512 FT_UINT32, BASE_DEC, NULL, 0,
32513 "AgeOfLocationInformation", HFILL }},
32514 { &hf_gsm_ss_pseudonymIndicator,
32515 { "pseudonymIndicator", "gsm_ss.pseudonymIndicator_element",
32516 FT_NONE, BASE_NONE, NULL, 0,
32517 NULL, HFILL }},
32518 { &hf_gsm_ss_h_gmlc_address,
32519 { "h-gmlc-address", "gsm_ss.h_gmlc_address",
32520 FT_BYTES, BASE_NONE, NULL, 0,
32521 "GSN_Address", HFILL }},
32522 { &hf_gsm_ss_locationEstimate,
32523 { "locationEstimate", "gsm_ss.locationEstimate",
32524 FT_BYTES, BASE_NONE, NULL, 0,
32525 "Ext_GeographicalInformation", HFILL }},
32526 { &hf_gsm_ss_velocityEstimate,
32527 { "velocityEstimate", "gsm_ss.velocityEstimate",
32528 FT_BYTES, BASE_NONE, NULL, 0,
32529 NULL, HFILL }},
32530 { &hf_gsm_ss_referenceNumber,
32531 { "referenceNumber", "gsm_ss.referenceNumber",
32532 FT_BYTES, BASE_NONE, NULL, 0,
32533 "LCS_ReferenceNumber", HFILL }},
32534 { &hf_gsm_ss_periodicLDRInfo,
32535 { "periodicLDRInfo", "gsm_ss.periodicLDRInfo_element",
32536 FT_NONE, BASE_NONE, NULL, 0,
32537 NULL, HFILL }},
32538 { &hf_gsm_ss_locationUpdateRequest,
32539 { "locationUpdateRequest", "gsm_ss.locationUpdateRequest_element",
32540 FT_NONE, BASE_NONE, NULL, 0,
32541 NULL, HFILL }},
32542 { &hf_gsm_ss_sequenceNumber,
32543 { "sequenceNumber", "gsm_ss.sequenceNumber",
32544 FT_UINT32, BASE_DEC, NULL, 0,
32545 NULL, HFILL }},
32546 { &hf_gsm_ss_terminationCause,
32547 { "terminationCause", "gsm_ss.terminationCause",
32548 FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0,
32549 NULL, HFILL }},
32550 { &hf_gsm_ss_mo_lrShortCircuit,
32551 { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit_element",
32552 FT_NONE, BASE_NONE, NULL, 0,
32553 NULL, HFILL }},
32554 { &hf_gsm_ss_ganssAssistanceData,
32555 { "ganssAssistanceData", "gsm_ss.ganssAssistanceData",
32556 FT_BYTES, BASE_NONE, NULL, 0,
32557 NULL, HFILL }},
32558 { &hf_gsm_ss_multiplePositioningProtocolPDUs,
32559 { "multiplePositioningProtocolPDUs", "gsm_ss.multiplePositioningProtocolPDUs",
32560 FT_UINT32, BASE_DEC, NULL, 0,
32561 NULL, HFILL }},
32562 { &hf_gsm_ss_locationInfo,
32563 { "locationInfo", "gsm_ss.locationInfo",
32564 FT_BYTES, BASE_NONE, NULL, 0,
32565 NULL, HFILL }},
32566 { &hf_gsm_ss_scheduledLocTime,
32567 { "scheduledLocTime", "gsm_ss.scheduledLocTime",
32568 FT_BYTES, BASE_NONE, NULL, 0,
32569 "DateTime", HFILL }},
32570 { &hf_gsm_ss_MultiplePositioningProtocolPDUs_item,
32571 { "PositioningProtocolPDU", "gsm_ss.PositioningProtocolPDU",
32572 FT_BYTES, BASE_NONE, NULL, 0,
32573 NULL, HFILL }},
32574 { &hf_gsm_ss_decipheringKeys,
32575 { "decipheringKeys", "gsm_ss.decipheringKeys",
32576 FT_BYTES, BASE_NONE, NULL, 0,
32577 NULL, HFILL }},
32578 { &hf_gsm_ss_add_LocationEstimate,
32579 { "add-LocationEstimate", "gsm_ss.add_LocationEstimate",
32580 FT_BYTES, BASE_NONE, NULL, 0,
32581 "Add_GeographicalInformation", HFILL }},
32582 { &hf_gsm_ss_reportingPLMNList,
32583 { "reportingPLMNList", "gsm_ss.reportingPLMNList_element",
32584 FT_NONE, BASE_NONE, NULL, 0,
32585 NULL, HFILL }},
32586 { &hf_gsm_ss_timestampOfLocationEstimate,
32587 { "timestampOfLocationEstimate", "gsm_ss.timestampOfLocationEstimate",
32588 FT_BYTES, BASE_NONE, NULL, 0,
32589 "DateTime", HFILL }},
32590 { &hf_gsm_ss_deferredLocationEventType,
32591 { "deferredLocationEventType", "gsm_ss.deferredLocationEventType",
32592 FT_BYTES, BASE_NONE, NULL, 0,
32593 NULL, HFILL }},
32594 { &hf_gsm_ss_areaEventInfo,
32595 { "areaEventInfo", "gsm_ss.areaEventInfo_element",
32596 FT_NONE, BASE_NONE, NULL, 0,
32597 NULL, HFILL }},
32598 { &hf_gsm_ss_slmolr_Type,
32599 { "slmolr-Type", "gsm_ss.slmolr_Type",
32600 FT_UINT32, BASE_DEC, VALS(gsm_ss_SLMOLR_Type_vals), 0,
32601 NULL, HFILL }},
32602 { &hf_gsm_ss_calculationAssistIndicator,
32603 { "calculationAssistIndicator", "gsm_ss.calculationAssistIndicator",
32604 FT_BOOLEAN, BASE_NONE, NULL, 0,
32605 "BOOLEAN", HFILL }},
32606 { &hf_gsm_ss_preferredRangingResult,
32607 { "preferredRangingResult", "gsm_ss.preferredRangingResult_element",
32608 FT_NONE, BASE_NONE, NULL, 0,
32609 NULL, HFILL }},
32610 { &hf_gsm_ss_relatedUEInfo,
32611 { "relatedUEInfo", "gsm_ss.relatedUEInfo",
32612 FT_UINT32, BASE_DEC, NULL, 0,
32613 NULL, HFILL }},
32614 { &hf_gsm_ss_absoluteLocationIndicator,
32615 { "absoluteLocationIndicator", "gsm_ss.absoluteLocationIndicator",
32616 FT_BOOLEAN, BASE_NONE, NULL, 0,
32617 "BOOLEAN", HFILL }},
32618 { &hf_gsm_ss_absoluteVelocityIndicator,
32619 { "absoluteVelocityIndicator", "gsm_ss.absoluteVelocityIndicator",
32620 FT_BOOLEAN, BASE_NONE, NULL, 0,
32621 "BOOLEAN", HFILL }},
32622 { &hf_gsm_ss_relativeLocationIndicator,
32623 { "relativeLocationIndicator", "gsm_ss.relativeLocationIndicator",
32624 FT_BOOLEAN, BASE_NONE, NULL, 0,
32625 "BOOLEAN", HFILL }},
32626 { &hf_gsm_ss_rangeDirection,
32627 { "rangeDirection", "gsm_ss.rangeDirection",
32628 FT_BOOLEAN, BASE_NONE, NULL, 0,
32629 "BOOLEAN", HFILL }},
32630 { &hf_gsm_ss_relativeVelocityIndicator,
32631 { "relativeVelocityIndicator", "gsm_ss.relativeVelocityIndicator",
32632 FT_BOOLEAN, BASE_NONE, NULL, 0,
32633 "BOOLEAN", HFILL }},
32634 { &hf_gsm_ss_RelatedUEInfo_item,
32635 { "RangingUEInfo", "gsm_ss.RangingUEInfo_element",
32636 FT_NONE, BASE_NONE, NULL, 0,
32637 NULL, HFILL }},
32638 { &hf_gsm_ss_applicationLayerID,
32639 { "applicationLayerID", "gsm_ss.applicationLayerID",
32640 FT_BYTES, BASE_NONE, NULL, 0,
32641 "OCTET_STRING", HFILL }},
32642 { &hf_gsm_ss_rangingRole,
32643 { "rangingRole", "gsm_ss.rangingRole",
32644 FT_UINT32, BASE_DEC, VALS(gsm_ss_RangingRole_vals), 0,
32645 NULL, HFILL }},
32646 { &hf_gsm_ss_absoluteLocation,
32647 { "absoluteLocation", "gsm_ss.absoluteLocation",
32648 FT_BYTES, BASE_NONE, NULL, 0,
32649 "Ext_GeographicalInformation", HFILL }},
32650 { &hf_gsm_ss_absoluteVelocity,
32651 { "absoluteVelocity", "gsm_ss.absoluteVelocity",
32652 FT_BYTES, BASE_NONE, NULL, 0,
32653 "VelocityEstimate", HFILL }},
32654 { &hf_gsm_ss_relativeResult,
32655 { "relativeResult", "gsm_ss.relativeResult",
32656 FT_UINT32, BASE_DEC, NULL, 0,
32657 NULL, HFILL }},
32658 { &hf_gsm_ss_ueOnlyRSLPosAllowed,
32659 { "ueOnlyRSLPosAllowed", "gsm_ss.ueOnlyRSLPosAllowed",
32660 FT_UINT32, BASE_DEC, NULL, 0,
32661 "Duration", HFILL }},
32662 { &hf_gsm_ss_timestamp,
32663 { "timestamp", "gsm_ss.timestamp",
32664 FT_BYTES, BASE_NONE, NULL, 0,
32665 "DateTime", HFILL }},
32666 { &hf_gsm_ss_RelativeResult_item,
32667 { "SingleRelativeResult", "gsm_ss.SingleRelativeResult_element",
32668 FT_NONE, BASE_NONE, NULL, 0,
32669 NULL, HFILL }},
32670 { &hf_gsm_ss_relativeLocation,
32671 { "relativeLocation", "gsm_ss.relativeLocation_element",
32672 FT_NONE, BASE_NONE, NULL, 0,
32673 "RelativeLocationCoordinates", HFILL }},
32674 { &hf_gsm_ss_rangeDirection_01,
32675 { "rangeDirection", "gsm_ss.rangeDirection_element",
32676 FT_NONE, BASE_NONE, NULL, 0,
32677 NULL, HFILL }},
32678 { &hf_gsm_ss_relativeVelocity,
32679 { "relativeVelocity", "gsm_ss.relativeVelocity",
32680 FT_BYTES, BASE_NONE, NULL, 0,
32681 "VelocityEstimate", HFILL }},
32682 { &hf_gsm_ss_relative2D_LocationWithUncertaintyEllipse,
32683 { "relative2D-LocationWithUncertaintyEllipse", "gsm_ss.relative2D_LocationWithUncertaintyEllipse_element",
32684 FT_NONE, BASE_NONE, NULL, 0,
32685 NULL, HFILL }},
32686 { &hf_gsm_ss_relative3D_LocationWithUncertaintyEllipsoid,
32687 { "relative3D-LocationWithUncertaintyEllipsoid", "gsm_ss.relative3D_LocationWithUncertaintyEllipsoid_element",
32688 FT_NONE, BASE_NONE, NULL, 0,
32689 NULL, HFILL }},
32690 { &hf_gsm_ss_xCoordinates,
32691 { "xCoordinates", "gsm_ss.xCoordinates",
32692 FT_INT32, BASE_DEC, NULL, 0,
32693 "RangeXYCoordinates", HFILL }},
32694 { &hf_gsm_ss_yCoordinates,
32695 { "yCoordinates", "gsm_ss.yCoordinates",
32696 FT_INT32, BASE_DEC, NULL, 0,
32697 "RangeXYCoordinates", HFILL }},
32698 { &hf_gsm_ss_uncertaintySemiMajor,
32699 { "uncertaintySemiMajor", "gsm_ss.uncertaintySemiMajor",
32700 FT_UINT32, BASE_DEC, NULL, 0,
32701 "Uncertainty", HFILL }},
32702 { &hf_gsm_ss_uncertaintySemiMinor,
32703 { "uncertaintySemiMinor", "gsm_ss.uncertaintySemiMinor",
32704 FT_UINT32, BASE_DEC, NULL, 0,
32705 "Uncertainty", HFILL }},
32706 { &hf_gsm_ss_orientationMajorAxis,
32707 { "orientationMajorAxis", "gsm_ss.orientationMajorAxis",
32708 FT_UINT32, BASE_DEC, NULL, 0,
32709 NULL, HFILL }},
32710 { &hf_gsm_ss_confidence,
32711 { "confidence", "gsm_ss.confidence",
32712 FT_UINT32, BASE_DEC, NULL, 0,
32713 NULL, HFILL }},
32714 { &hf_gsm_ss_zCoordinates,
32715 { "zCoordinates", "gsm_ss.zCoordinates",
32716 FT_INT32, BASE_DEC, NULL, 0,
32717 "RangeZCoordinates", HFILL }},
32718 { &hf_gsm_ss_uncertaintyAltitude,
32719 { "uncertaintyAltitude", "gsm_ss.uncertaintyAltitude",
32720 FT_UINT32, BASE_DEC, NULL, 0,
32721 "Uncertainty", HFILL }},
32722 { &hf_gsm_ss_range,
32723 { "range", "gsm_ss.range_element",
32724 FT_NONE, BASE_NONE, NULL, 0,
32725 NULL, HFILL }},
32726 { &hf_gsm_ss_azimuth,
32727 { "azimuth", "gsm_ss.azimuth_element",
32728 FT_NONE, BASE_NONE, NULL, 0,
32729 NULL, HFILL }},
32730 { &hf_gsm_ss_elevation,
32731 { "elevation", "gsm_ss.elevation_element",
32732 FT_NONE, BASE_NONE, NULL, 0,
32733 NULL, HFILL }},
32734 { &hf_gsm_ss_rangeResult,
32735 { "rangeResult", "gsm_ss.rangeResult",
32736 FT_UINT32, BASE_DEC, NULL, 0,
32737 NULL, HFILL }},
32738 { &hf_gsm_ss_uncertainty,
32739 { "uncertainty", "gsm_ss.uncertainty",
32740 FT_UINT32, BASE_DEC, NULL, 0,
32741 NULL, HFILL }},
32742 { &hf_gsm_ss_azimuthResult,
32743 { "azimuthResult", "gsm_ss.azimuthResult",
32744 FT_UINT32, BASE_DEC, NULL, 0,
32745 NULL, HFILL }},
32746 { &hf_gsm_ss_elevationResult,
32747 { "elevationResult", "gsm_ss.elevationResult",
32748 FT_UINT32, BASE_DEC, NULL, 0,
32749 NULL, HFILL }},
32750 { &hf_gsm_ss_qoS,
32751 { "qoS", "gsm_ss.qoS_element",
32752 FT_NONE, BASE_NONE, NULL, 0,
32753 "LCS_QoS", HFILL }},
32754 { &hf_gsm_ss_periodicLocation,
32755 { "periodicLocation", "gsm_ss.periodicLocation_element",
32756 FT_NONE, BASE_NONE, NULL, 0,
32757 NULL, HFILL }},
32758 { &hf_gsm_ss_areaEventReporting,
32759 { "areaEventReporting", "gsm_ss.areaEventReporting_element",
32760 FT_NONE, BASE_NONE, NULL, 0,
32761 NULL, HFILL }},
32762 { &hf_gsm_ss_motionEventReporting,
32763 { "motionEventReporting", "gsm_ss.motionEventReporting_element",
32764 FT_NONE, BASE_NONE, NULL, 0,
32765 NULL, HFILL }},
32766 { &hf_gsm_ss_referenceNumberExt,
32767 { "referenceNumberExt", "gsm_ss.referenceNumberExt",
32768 FT_BYTES, BASE_NONE, NULL, 0,
32769 "LCS_ReferenceNumberExt", HFILL }},
32770 { &hf_gsm_ss_h_gmlc_callBackUri,
32771 { "h-gmlc-callBackUri", "gsm_ss.h_gmlc_callBackUri",
32772 FT_STRING, BASE_NONE, NULL, 0,
32773 "UTF8String", HFILL }},
32774 { &hf_gsm_ss_deferredRoutingIdentifier,
32775 { "deferredRoutingIdentifier", "gsm_ss.deferredRoutingIdentifier",
32776 FT_BYTES, BASE_NONE, NULL, 0,
32777 "OCTET_STRING", HFILL }},
32778 { &hf_gsm_ss_reportingAccessTypes,
32779 { "reportingAccessTypes", "gsm_ss.reportingAccessTypes",
32780 FT_BYTES, BASE_NONE, NULL, 0,
32781 NULL, HFILL }},
32782 { &hf_gsm_ss_controlPlane_CIoT_5GS_Optimisation,
32783 { "controlPlane-CIoT-5GS-Optimisation", "gsm_ss.controlPlane_CIoT_5GS_Optimisation_element",
32784 FT_NONE, BASE_NONE, NULL, 0,
32785 NULL, HFILL }},
32786 { &hf_gsm_ss_eventReportAllowedArea,
32787 { "eventReportAllowedArea", "gsm_ss.eventReportAllowedArea",
32788 FT_UINT32, BASE_DEC, NULL, 0,
32789 "AreaList", HFILL }},
32790 { &hf_gsm_ss_reportingInd,
32791 { "reportingInd", "gsm_ss.reportingInd",
32792 FT_UINT32, BASE_DEC, VALS(gsm_ss_ReportingInd_vals), 0,
32793 NULL, HFILL }},
32794 { &hf_gsm_ss_mappedQoS,
32795 { "mappedQoS", "gsm_ss.mappedQoS_element",
32796 FT_NONE, BASE_NONE, NULL, 0,
32797 "LCS_QoS", HFILL }},
32798 { &hf_gsm_ss_userPlaneReportAFAddr,
32799 { "userPlaneReportAFAddr", "gsm_ss.userPlaneReportAFAddr_element",
32800 FT_NONE, BASE_NONE, NULL, 0,
32801 "LCS_UserPlaneReportAFAddr", HFILL }},
32802 { &hf_gsm_ss_cumulativeReportCriteria,
32803 { "cumulativeReportCriteria", "gsm_ss.cumulativeReportCriteria_element",
32804 FT_NONE, BASE_NONE, NULL, 0,
32805 "LCS_CumulativeReportCriteria", HFILL }},
32806 { &hf_gsm_ss_areaList,
32807 { "areaList", "gsm_ss.areaList",
32808 FT_UINT32, BASE_DEC, NULL, 0,
32809 NULL, HFILL }},
32810 { &hf_gsm_ss_occurrenceInfo,
32811 { "occurrenceInfo", "gsm_ss.occurrenceInfo",
32812 FT_UINT32, BASE_DEC, VALS(gsm_ss_OccurrenceInfo_vals), 0,
32813 NULL, HFILL }},
32814 { &hf_gsm_ss_intervalTime,
32815 { "intervalTime", "gsm_ss.intervalTime",
32816 FT_UINT32, BASE_DEC, NULL, 0,
32817 NULL, HFILL }},
32818 { &hf_gsm_ss_maximumInterval,
32819 { "maximumInterval", "gsm_ss.maximumInterval",
32820 FT_UINT32, BASE_DEC, NULL, 0,
32821 NULL, HFILL }},
32822 { &hf_gsm_ss_samplingInterval,
32823 { "samplingInterval", "gsm_ss.samplingInterval",
32824 FT_UINT32, BASE_DEC, NULL, 0,
32825 NULL, HFILL }},
32826 { &hf_gsm_ss_duration,
32827 { "duration", "gsm_ss.duration",
32828 FT_UINT32, BASE_DEC, NULL, 0,
32829 NULL, HFILL }},
32830 { &hf_gsm_ss_AreaList_item,
32831 { "Area", "gsm_ss.Area_element",
32832 FT_NONE, BASE_NONE, NULL, 0,
32833 NULL, HFILL }},
32834 { &hf_gsm_ss_areaType,
32835 { "areaType", "gsm_ss.areaType",
32836 FT_UINT32, BASE_DEC, VALS(gsm_ss_AreaType_vals), 0,
32837 NULL, HFILL }},
32838 { &hf_gsm_ss_areaIdentification,
32839 { "areaIdentification", "gsm_ss.areaIdentification",
32840 FT_BYTES, BASE_NONE, NULL, 0,
32841 NULL, HFILL }},
32842 { &hf_gsm_ss_areaIdentificationExt,
32843 { "areaIdentificationExt", "gsm_ss.areaIdentificationExt",
32844 FT_BYTES, BASE_NONE, NULL, 0,
32845 NULL, HFILL }},
32846 { &hf_gsm_ss_linearDistance,
32847 { "linearDistance", "gsm_ss.linearDistance",
32848 FT_UINT32, BASE_DEC, NULL, 0,
32849 NULL, HFILL }},
32850 { &hf_gsm_ss_eventType,
32851 { "eventType", "gsm_ss.eventType",
32852 FT_UINT32, BASE_DEC, VALS(gsm_ss_EventType_vals), 0,
32853 NULL, HFILL }},
32854 { &hf_gsm_ss_userPlaneEventReportStat,
32855 { "userPlaneEventReportStat", "gsm_ss.userPlaneEventReportStat",
32856 FT_UINT32, BASE_DEC, NULL, 0,
32857 "LCS_UserPlaneEventReportStat", HFILL }},
32858 { &hf_gsm_ss_maximumDuration,
32859 { "maximumDuration", "gsm_ss.maximumDuration",
32860 FT_UINT32, BASE_DEC, NULL, 0,
32861 NULL, HFILL }},
32862 { &hf_gsm_ss_maximumConsecutiveEventReports,
32863 { "maximumConsecutiveEventReports", "gsm_ss.maximumConsecutiveEventReports",
32864 FT_UINT32, BASE_DEC, NULL, 0,
32865 NULL, HFILL }},
32866 { &hf_gsm_ss_af_Ipv4_Addrs,
32867 { "af-Ipv4-Addrs", "gsm_ss.af_Ipv4_Addrs",
32868 FT_UINT32, BASE_DEC, NULL, 0,
32869 "Ipv4Addrs", HFILL }},
32870 { &hf_gsm_ss_af_Ipv6_Addrs,
32871 { "af-Ipv6-Addrs", "gsm_ss.af_Ipv6_Addrs",
32872 FT_UINT32, BASE_DEC, NULL, 0,
32873 "Ipv6Addrs", HFILL }},
32874 { &hf_gsm_ss_af_Fqdn,
32875 { "af-Fqdn", "gsm_ss.af_Fqdn",
32876 FT_BYTES, BASE_NONE, NULL, 0,
32877 "FQDN", HFILL }},
32878 { &hf_gsm_ss_Ipv4Addrs_item,
32879 { "Ipv4Addr", "gsm_ss.Ipv4Addr",
32880 FT_BYTES, BASE_NONE, NULL, 0,
32881 NULL, HFILL }},
32882 { &hf_gsm_ss_Ipv6Addrs_item,
32883 { "Ipv6Addr", "gsm_ss.Ipv6Addr",
32884 FT_BYTES, BASE_NONE, NULL, 0,
32885 NULL, HFILL }},
32886 { &hf_gsm_ss_timerCriteria,
32887 { "timerCriteria", "gsm_ss.timerCriteria",
32888 FT_UINT32, BASE_DEC, NULL, 0,
32889 "LCS_CumulativeReportTimerCriteria", HFILL }},
32890 { &hf_gsm_ss_counterCriteria,
32891 { "counterCriteria", "gsm_ss.counterCriteria",
32892 FT_UINT32, BASE_DEC, NULL, 0,
32893 "LCS_CumulativeReportCounterCriteria", HFILL }},
32894 { &hf_gsm_ss_eventReportExpectedArea,
32895 { "eventReportExpectedArea", "gsm_ss.eventReportExpectedArea",
32896 FT_BYTES, BASE_NONE, NULL, 0,
32897 "Ext_GeographicalInformation", HFILL }},
32898 { &hf_gsm_ss_areaUsageInd,
32899 { "areaUsageInd", "gsm_ss.areaUsageInd",
32900 FT_UINT32, BASE_DEC, VALS(gsm_ss_ReportingInd_vals), 0,
32901 "ReportingInd", HFILL }},
32902 { &hf_gsm_ss_startTime,
32903 { "startTime", "gsm_ss.startTime",
32904 FT_BYTES, BASE_NONE, NULL, 0,
32905 "DateTime", HFILL }},
32906 { &hf_gsm_ss_endTime,
32907 { "endTime", "gsm_ss.endTime",
32908 FT_BYTES, BASE_NONE, NULL, 0,
32909 "DateTime", HFILL }},
32910 { &hf_gsm_ss_associationType,
32911 { "associationType", "gsm_ss.associationType",
32912 FT_UINT32, BASE_DEC, VALS(gsm_ss_LCS_AssociationType_vals), 0,
32913 "LCS_AssociationType", HFILL }},
32914 { &hf_gsm_ss_positioningCapabilities,
32915 { "positioningCapabilities", "gsm_ss.positioningCapabilities",
32916 FT_BYTES, BASE_NONE, NULL, 0,
32917 "OCTET_STRING", HFILL }},
32918 { &hf_gsm_ss_locationOfPru,
32919 { "locationOfPru", "gsm_ss.locationOfPru",
32920 FT_BYTES, BASE_NONE, NULL, 0,
32921 "Ext_GeographicalInformation", HFILL }},
32922 { &hf_gsm_ss_stateOfPru,
32923 { "stateOfPru", "gsm_ss.stateOfPru",
32924 FT_UINT32, BASE_DEC, VALS(gsm_ss_LCS_StateOfPru_vals), 0,
32925 "LCS_StateOfPru", HFILL }},
32926 { &hf_gsm_ss_periodicUpdateTimer,
32927 { "periodicUpdateTimer", "gsm_ss.periodicUpdateTimer",
32928 FT_UINT32, BASE_DEC, NULL, 0,
32929 "LCS_PeriodicUpdateTimer", HFILL }},
32930 { &hf_gsm_ss_updateTrigger,
32931 { "updateTrigger", "gsm_ss.updateTrigger",
32932 FT_BYTES, BASE_NONE, NULL, 0,
32933 "LCS_PruUpdateTrigger", HFILL }},
32934 { &hf_gsm_ss_ackIndication,
32935 { "ackIndication", "gsm_ss.ackIndication",
32936 FT_BOOLEAN, BASE_NONE, NULL, 0,
32937 "BOOLEAN", HFILL }},
32938 { &hf_gsm_ss_newLmfRoutingId,
32939 { "newLmfRoutingId", "gsm_ss.newLmfRoutingId",
32940 FT_BYTES, BASE_NONE, NULL, 0,
32941 "OCTET_STRING", HFILL }},
32942 { &hf_gsm_ss_slmtlr_Type,
32943 { "slmtlr-Type", "gsm_ss.slmtlr_Type",
32944 FT_UINT32, BASE_DEC, VALS(gsm_ss_SLMTLR_Type_vals), 0,
32945 NULL, HFILL }},
32946 { &hf_gsm_ss_locatedUEselect,
32947 { "locatedUEselect", "gsm_ss.locatedUEselect",
32948 FT_UINT32, BASE_DEC, VALS(gsm_ss_LocatedUEselect_vals), 0,
32949 NULL, HFILL }},
32950 { &hf_gsm_ss_coordinateID,
32951 { "coordinateID", "gsm_ss.coordinateID",
32952 FT_UINT32, BASE_DEC, NULL, 0,
32953 NULL, HFILL }},
32954 { &hf_gsm_ss_rangingSLPPList,
32955 { "rangingSLPPList", "gsm_ss.rangingSLPPList",
32956 FT_UINT32, BASE_DEC, NULL, 0,
32957 NULL, HFILL }},
32958 { &hf_gsm_ss_RangingSLPPList_item,
32959 { "RangingSLPPInfo", "gsm_ss.RangingSLPPInfo_element",
32960 FT_NONE, BASE_NONE, NULL, 0,
32961 NULL, HFILL }},
32962 { &hf_gsm_ss_sLPPMsg,
32963 { "sLPPMsg", "gsm_ss.sLPPMsg",
32964 FT_BYTES, BASE_NONE, NULL, 0,
32965 "SlPosProtocolPDU", HFILL }},
32966 { &hf_gsm_ss_relatedUE,
32967 { "relatedUE", "gsm_ss.relatedUE",
32968 FT_BYTES, BASE_NONE, NULL, 0,
32969 "OCTET_STRING", HFILL }},
32970 { &hf_gsm_ss_ueBased,
32971 { "ueBased", "gsm_ss.ueBased",
32972 FT_UINT32, BASE_DEC, VALS(gsm_ss_UEBased_vals), 0,
32973 NULL, HFILL }},
32974 { &hf_gsm_ss_DeferredLocationExt_motionEvent,
32975 { "motionEvent", "gsm.ss.DeferredLocationExt.motionEvent",
32976 FT_BOOLEAN, 8, NULL, 0x80,
32977 NULL, HFILL }},
32978 { &hf_gsm_ss_RangingSlExt_rangingIndication,
32979 { "rangingIndication", "gsm.ss.RangingSlExt.rangingIndication",
32980 FT_BOOLEAN, 8, NULL, 0x80,
32981 NULL, HFILL }},
32982 { &hf_gsm_ss_LocationInfo_locationEstimate,
32983 { "locationEstimate", "gsm.ss.LocationInfo.locationEstimate",
32984 FT_BOOLEAN, 8, NULL, 0x80,
32985 NULL, HFILL }},
32986 { &hf_gsm_ss_ReportingAccessTypes_nR,
32987 { "nR", "gsm.ss.ReportingAccessTypes.nR",
32988 FT_BOOLEAN, 8, NULL, 0x80,
32989 NULL, HFILL }},
32990 { &hf_gsm_ss_ReportingAccessTypes_eUTRAConnectedTo5GC,
32991 { "eUTRAConnectedTo5GC", "gsm.ss.ReportingAccessTypes.eUTRAConnectedTo5GC",
32992 FT_BOOLEAN, 8, NULL, 0x40,
32993 NULL, HFILL }},
32994 { &hf_gsm_ss_ReportingAccessTypes_non3GPPConnectedTo5GC,
32995 { "non3GPPConnectedTo5GC", "gsm.ss.ReportingAccessTypes.non3GPPConnectedTo5GC",
32996 FT_BOOLEAN, 8, NULL, 0x20,
32997 NULL, HFILL }},
32998 { &hf_gsm_ss_ReportingAccessTypes_eUTRAConnectedToEPC,
32999 { "eUTRAConnectedToEPC", "gsm.ss.ReportingAccessTypes.eUTRAConnectedToEPC",
33000 FT_BOOLEAN, 8, NULL, 0x10,
33001 NULL, HFILL }},
33002 { &hf_gsm_ss_ReportingAccessTypes_nR_LEO,
33003 { "nR-LEO", "gsm.ss.ReportingAccessTypes.nR.LEO",
33004 FT_BOOLEAN, 8, NULL, 0x08,
33005 NULL, HFILL }},
33006 { &hf_gsm_ss_ReportingAccessTypes_nR_MEO,
33007 { "nR-MEO", "gsm.ss.ReportingAccessTypes.nR.MEO",
33008 FT_BOOLEAN, 8, NULL, 0x04,
33009 NULL, HFILL }},
33010 { &hf_gsm_ss_ReportingAccessTypes_nR_GEO,
33011 { "nR-GEO", "gsm.ss.ReportingAccessTypes.nR.GEO",
33012 FT_BOOLEAN, 8, NULL, 0x02,
33013 NULL, HFILL }},
33014 { &hf_gsm_ss_ReportingAccessTypes_nR_OTHER_SAT,
33015 { "nR-OTHER-SAT", "gsm.ss.ReportingAccessTypes.nR.OTHER.SAT",
33016 FT_BOOLEAN, 8, NULL, 0x01,
33017 NULL, HFILL }},
33018 { &hf_gsm_ss_LCS_PruUpdateTrigger_taiChange,
33019 { "taiChange", "gsm.ss.LCS.PruUpdateTrigger.taiChange",
33020 FT_BOOLEAN, 8, NULL, 0x80,
33021 NULL, HFILL }},
33022 { &hf_gsm_ss_LCS_PruUpdateTrigger_servingAmfChange,
33023 { "servingAmfChange", "gsm.ss.LCS.PruUpdateTrigger.servingAmfChange",
33024 FT_BOOLEAN, 8, NULL, 0x40,
33025 NULL, HFILL }},
33026 { &hf_gsm_ss_LCS_PruUpdateTrigger_pruStateChange,
33027 { "pruStateChange", "gsm.ss.LCS.PruUpdateTrigger.pruStateChange",
33028 FT_BOOLEAN, 8, NULL, 0x20,
33029 NULL, HFILL }},
33031 /* --- Module EricssonMAP --- --- --- */
33033 { &hf_gsm_map_ericsson_imei,
33034 { "imei", "gsm_map.ericsson.imei",
33035 FT_BYTES, BASE_NONE, NULL, 0,
33036 NULL, HFILL }},
33037 { &hf_gsm_map_ericsson_requestedEquipmentInfo,
33038 { "requestedEquipmentInfo", "gsm_map.ericsson.requestedEquipmentInfo",
33039 FT_BYTES, BASE_NONE, NULL, 0,
33040 NULL, HFILL }},
33041 { &hf_gsm_map_ericsson_imsi,
33042 { "imsi", "gsm_map.ericsson.imsi",
33043 FT_BYTES, BASE_NONE, NULL, 0,
33044 NULL, HFILL }},
33045 { &hf_gsm_map_ericsson_locationInformation,
33046 { "locationInformation", "gsm_map.ericsson.locationInformation",
33047 FT_BYTES, BASE_NONE, NULL, 0,
33048 NULL, HFILL }},
33049 { &hf_gsm_map_ericsson_extensionContainer,
33050 { "extensionContainer", "gsm_map.ericsson.extensionContainer_element",
33051 FT_NONE, BASE_NONE, NULL, 0,
33052 NULL, HFILL }},
33053 { &hf_gsm_map_ericsson_isdArgType,
33054 { "isdArgType", "gsm_map.ericsson.isdArgType",
33055 FT_UINT32, BASE_DEC, NULL, 0,
33056 NULL, HFILL }},
33057 { &hf_gsm_map_ericsson_isdResType,
33058 { "isdResType", "gsm_map.ericsson.isdResType",
33059 FT_UINT32, BASE_DEC, NULL, 0,
33060 NULL, HFILL }},
33061 { &hf_gsm_map_ericsson_dsdArgType,
33062 { "dsdArgType", "gsm_map.ericsson.dsdArgType",
33063 FT_UINT32, BASE_DEC, NULL, 0,
33064 NULL, HFILL }},
33065 { &hf_gsm_map_ericsson_sriArgType,
33066 { "sriArgType", "gsm_map.ericsson.sriArgType",
33067 FT_UINT32, BASE_DEC, NULL, 0,
33068 NULL, HFILL }},
33069 { &hf_gsm_map_ericsson_sriResType,
33070 { "sriResType", "gsm_map.ericsson.sriResType",
33071 FT_UINT32, BASE_DEC, NULL, 0,
33072 NULL, HFILL }},
33073 { &hf_gsm_map_ericsson_prnArgType,
33074 { "prnArgType", "gsm_map.ericsson.prnArgType",
33075 FT_UINT32, BASE_DEC, NULL, 0,
33076 NULL, HFILL }},
33077 { &hf_gsm_map_ericsson_ulArgType,
33078 { "ulArgType", "gsm_map.ericsson.ulArgType",
33079 FT_UINT32, BASE_DEC, NULL, 0,
33080 NULL, HFILL }},
33081 { &hf_gsm_map_ericsson_rdArgType,
33082 { "rdArgType", "gsm_map.ericsson.rdArgType_element",
33083 FT_NONE, BASE_NONE, NULL, 0,
33084 NULL, HFILL }},
33085 { &hf_gsm_map_ericsson_saiArgType,
33086 { "saiArgType", "gsm_map.ericsson.saiArgType_element",
33087 FT_NONE, BASE_NONE, NULL, 0,
33088 NULL, HFILL }},
33089 { &hf_gsm_map_ericsson_saiResType,
33090 { "saiResType", "gsm_map.ericsson.saiResType_element",
33091 FT_NONE, BASE_NONE, NULL, 0,
33092 NULL, HFILL }},
33093 { &hf_gsm_map_ericsson_atiArgType,
33094 { "atiArgType", "gsm_map.ericsson.atiArgType_element",
33095 FT_NONE, BASE_NONE, NULL, 0,
33096 NULL, HFILL }},
33097 { &hf_gsm_map_ericsson_atiResType,
33098 { "atiResType", "gsm_map.ericsson.atiResType_element",
33099 FT_NONE, BASE_NONE, NULL, 0,
33100 NULL, HFILL }},
33101 { &hf_gsm_map_ericsson_extAtiArgType,
33102 { "extAtiArgType", "gsm_map.ericsson.extAtiArgType",
33103 FT_UINT32, BASE_DEC, NULL, 0,
33104 NULL, HFILL }},
33105 { &hf_gsm_map_ericsson_IsdArgType_item,
33106 { "IsdArgData", "gsm_map.ericsson.IsdArgData_element",
33107 FT_NONE, BASE_NONE, NULL, 0,
33108 NULL, HFILL }},
33109 { &hf_gsm_map_ericsson_privateFeatureCode,
33110 { "privateFeatureCode", "gsm_map.ericsson.privateFeatureCode",
33111 FT_BYTES, BASE_NONE, NULL, 0,
33112 NULL, HFILL }},
33113 { &hf_gsm_map_ericsson_privateFeatureData,
33114 { "privateFeatureData", "gsm_map.ericsson.privateFeatureData",
33115 FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_PrivateFeatureData_vals), 0,
33116 NULL, HFILL }},
33117 { &hf_gsm_map_ericsson_subscriptionTypeInfo,
33118 { "subscriptionTypeInfo", "gsm_map.ericsson.subscriptionTypeInfo_element",
33119 FT_NONE, BASE_NONE, NULL, 0,
33120 NULL, HFILL }},
33121 { &hf_gsm_map_ericsson_oickInfo,
33122 { "oickInfo", "gsm_map.ericsson.oickInfo_element",
33123 FT_NONE, BASE_NONE, NULL, 0,
33124 NULL, HFILL }},
33125 { &hf_gsm_map_ericsson_ss_Status,
33126 { "ss-Status", "gsm_map.ericsson.ss_Status",
33127 FT_BYTES, BASE_NONE, NULL, 0,
33128 "Ext_SS_Status", HFILL }},
33129 { &hf_gsm_map_ericsson_inCategoryKey,
33130 { "inCategoryKey", "gsm_map.ericsson.inCategoryKey",
33131 FT_BYTES, BASE_NONE, NULL, 0,
33132 NULL, HFILL }},
33133 { &hf_gsm_map_ericsson_subscriptionType,
33134 { "subscriptionType", "gsm_map.ericsson.subscriptionType",
33135 FT_BYTES, BASE_NONE, NULL, 0,
33136 NULL, HFILL }},
33137 { &hf_gsm_map_ericsson_IsdResType_item,
33138 { "IsdResData", "gsm_map.ericsson.IsdResData_element",
33139 FT_NONE, BASE_NONE, NULL, 0,
33140 NULL, HFILL }},
33141 { &hf_gsm_map_ericsson_supportedPrivateFeature,
33142 { "supportedPrivateFeature", "gsm_map.ericsson.supportedPrivateFeature",
33143 FT_BYTES, BASE_NONE, NULL, 0,
33144 "PrivateFeatureCode", HFILL }},
33145 { &hf_gsm_map_ericsson_DsdArgType_item,
33146 { "DsdArgData", "gsm_map.ericsson.DsdArgData_element",
33147 FT_NONE, BASE_NONE, NULL, 0,
33148 NULL, HFILL }},
33149 { &hf_gsm_map_ericsson_privateFeatureWithdraw,
33150 { "privateFeatureWithdraw", "gsm_map.ericsson.privateFeatureWithdraw",
33151 FT_BYTES, BASE_NONE, NULL, 0,
33152 "PrivateFeatureCode", HFILL }},
33153 { &hf_gsm_map_ericsson_SRIArgType_item,
33154 { "SriArgData", "gsm_map.ericsson.SriArgData_element",
33155 FT_NONE, BASE_NONE, NULL, 0,
33156 NULL, HFILL }},
33157 { &hf_gsm_map_ericsson_extraNetworkInfo,
33158 { "extraNetworkInfo", "gsm_map.ericsson.extraNetworkInfo_element",
33159 FT_NONE, BASE_NONE, NULL, 0,
33160 "ExtraSignalInfo", HFILL }},
33161 { &hf_gsm_map_ericsson_SRIResType_item,
33162 { "SriResData", "gsm_map.ericsson.SriResData_element",
33163 FT_NONE, BASE_NONE, NULL, 0,
33164 NULL, HFILL }},
33165 { &hf_gsm_map_ericsson_PrnArgType_item,
33166 { "PrnArgData", "gsm_map.ericsson.PrnArgData_element",
33167 FT_NONE, BASE_NONE, NULL, 0,
33168 NULL, HFILL }},
33169 { &hf_gsm_map_ericsson_UlArgType_item,
33170 { "UlArgData", "gsm_map.ericsson.UlArgData_element",
33171 FT_NONE, BASE_NONE, NULL, 0,
33172 NULL, HFILL }},
33173 { &hf_gsm_map_ericsson_privateFeatureUlArgData,
33174 { "privateFeatureUlArgData", "gsm_map.ericsson.privateFeatureUlArgData",
33175 FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_PrivateFeatureUlArgData_vals), 0,
33176 NULL, HFILL }},
33177 { &hf_gsm_map_ericsson_adc,
33178 { "adc", "gsm_map.ericsson.adc",
33179 FT_BYTES, BASE_NONE, NULL, 0,
33180 "IMEI", HFILL }},
33181 { &hf_gsm_map_ericsson_protocolId,
33182 { "protocolId", "gsm_map.ericsson.protocolId",
33183 FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_ExtraProtocolId_vals), 0,
33184 "ExtraProtocolId", HFILL }},
33185 { &hf_gsm_map_ericsson_signalInfo,
33186 { "signalInfo", "gsm_map.ericsson.signalInfo",
33187 FT_BYTES, BASE_NONE, NULL, 0,
33188 NULL, HFILL }},
33189 { &hf_gsm_map_ericsson_msisdn,
33190 { "msisdn", "gsm_map.ericsson.msisdn_element",
33191 FT_NONE, BASE_NONE, NULL, 0,
33192 NULL, HFILL }},
33193 { &hf_gsm_map_ericsson_noAuthenVectorsRequested,
33194 { "noAuthenVectorsRequested", "gsm_map.ericsson.noAuthenVectorsRequested_element",
33195 FT_NONE, BASE_NONE, NULL, 0,
33196 NULL, HFILL }},
33197 { &hf_gsm_map_ericsson_msIsdn,
33198 { "msIsdn", "gsm_map.ericsson.msIsdn",
33199 FT_BYTES, BASE_NONE, NULL, 0,
33200 "ISDN_AddressString", HFILL }},
33201 { &hf_gsm_map_ericsson_requestedInfoType,
33202 { "requestedInfoType", "gsm_map.ericsson.requestedInfoType_element",
33203 FT_NONE, BASE_NONE, NULL, 0,
33204 NULL, HFILL }},
33205 { &hf_gsm_map_ericsson_toBeDecided,
33206 { "toBeDecided", "gsm_map.ericsson.toBeDecided_element",
33207 FT_NONE, BASE_NONE, NULL, 0,
33208 NULL, HFILL }},
33209 { &hf_gsm_map_ericsson_toBeDecidedOne,
33210 { "toBeDecidedOne", "gsm_map.ericsson.toBeDecidedOne_element",
33211 FT_NONE, BASE_NONE, NULL, 0,
33212 NULL, HFILL }},
33213 { &hf_gsm_map_ericsson_sgsnNumber,
33214 { "sgsnNumber", "gsm_map.ericsson.sgsnNumber_element",
33215 FT_NONE, BASE_NONE, NULL, 0,
33216 NULL, HFILL }},
33217 { &hf_gsm_map_ericsson_ExtAtiArgType_item,
33218 { "AtiArgData", "gsm_map.ericsson.AtiArgData_element",
33219 FT_NONE, BASE_NONE, NULL, 0,
33220 NULL, HFILL }},
33222 /* --- Module NokiaMAP-Extensions --- --- --- */
33224 { &hf_NokiaMAP_Extensions_alsLineIndicator,
33225 { "alsLineIndicator", "NokiaMAP-Extensions.alsLineIndicator_element",
33226 FT_NONE, BASE_NONE, NULL, 0,
33227 NULL, HFILL }},
33228 { &hf_NokiaMAP_Extensions_routingCategory,
33229 { "routingCategory", "NokiaMAP-Extensions.routingCategory",
33230 FT_BYTES, BASE_NONE, NULL, 0,
33231 NULL, HFILL }},
33232 { &hf_NokiaMAP_Extensions_serviceList,
33233 { "serviceList", "NokiaMAP-Extensions.serviceList",
33234 FT_BYTES, BASE_NONE, NULL, 0,
33235 "MAPserviceList", HFILL }},
33236 { &hf_NokiaMAP_Extensions_serv_info_list,
33237 { "serv-info-list", "NokiaMAP-Extensions.serv_info_list",
33238 FT_UINT32, BASE_DEC, NULL, 0,
33239 "ServiceListWithInfo", HFILL }},
33240 { &hf_NokiaMAP_Extensions_extRoutingCategory,
33241 { "extRoutingCategory", "NokiaMAP-Extensions.extRoutingCategory",
33242 FT_UINT32, BASE_DEC, NULL, 0,
33243 NULL, HFILL }},
33244 { &hf_NokiaMAP_Extensions_ownMSISDN,
33245 { "ownMSISDN", "NokiaMAP-Extensions.ownMSISDN",
33246 FT_BYTES, BASE_NONE, NULL, 0,
33247 "ISDN_AddressString", HFILL }},
33248 { &hf_NokiaMAP_Extensions_mwd_Set,
33249 { "mwd-Set", "NokiaMAP-Extensions.mwd_Set_element",
33250 FT_NONE, BASE_NONE, NULL, 0,
33251 NULL, HFILL }},
33252 { &hf_NokiaMAP_Extensions_ChargingAreaList_item,
33253 { "ChargingArea", "NokiaMAP-Extensions.ChargingArea",
33254 FT_UINT32, BASE_DEC, NULL, 0,
33255 NULL, HFILL }},
33256 { &hf_NokiaMAP_Extensions_chargingAreaList,
33257 { "chargingAreaList", "NokiaMAP-Extensions.chargingAreaList",
33258 FT_UINT32, BASE_DEC, NULL, 0,
33259 NULL, HFILL }},
33260 { &hf_NokiaMAP_Extensions_inTriggerKey,
33261 { "inTriggerKey", "NokiaMAP-Extensions.inTriggerKey",
33262 FT_UINT32, BASE_DEC, NULL, 0,
33263 NULL, HFILL }},
33264 { &hf_NokiaMAP_Extensions_pnpIndex,
33265 { "pnpIndex", "NokiaMAP-Extensions.pnpIndex",
33266 FT_BYTES, BASE_NONE, NULL, 0,
33267 NULL, HFILL }},
33268 { &hf_NokiaMAP_Extensions_callRedirectionIndex,
33269 { "callRedirectionIndex", "NokiaMAP-Extensions.callRedirectionIndex",
33270 FT_UINT32, BASE_DEC, NULL, 0,
33271 NULL, HFILL }},
33272 { &hf_NokiaMAP_Extensions_regionalChargingData,
33273 { "regionalChargingData", "NokiaMAP-Extensions.regionalChargingData_element",
33274 FT_NONE, BASE_NONE, NULL, 0,
33275 NULL, HFILL }},
33276 { &hf_NokiaMAP_Extensions_callForwardingOverride,
33277 { "callForwardingOverride", "NokiaMAP-Extensions.callForwardingOverride_element",
33278 FT_NONE, BASE_NONE, NULL, 0,
33279 NULL, HFILL }},
33280 { &hf_NokiaMAP_Extensions_in_Capability,
33281 { "in-Capability", "NokiaMAP-Extensions.in_Capability_element",
33282 FT_NONE, BASE_NONE, NULL, 0,
33283 NULL, HFILL }},
33284 { &hf_NokiaMAP_Extensions_callingCategory,
33285 { "callingCategory", "NokiaMAP-Extensions.callingCategory",
33286 FT_BYTES, BASE_NONE, NULL, 0,
33287 NULL, HFILL }},
33288 { &hf_NokiaMAP_Extensions_internalServiceIndicator,
33289 { "internalServiceIndicator", "NokiaMAP-Extensions.internalServiceIndicator",
33290 FT_BYTES, BASE_NONE, NULL, 0,
33291 NULL, HFILL }},
33292 { &hf_NokiaMAP_Extensions_srbtSupportIndicator,
33293 { "srbtSupportIndicator", "NokiaMAP-Extensions.srbtSupportIndicator_element",
33294 FT_NONE, BASE_NONE, NULL, 0,
33295 NULL, HFILL }},
33296 { &hf_NokiaMAP_Extensions_gmscSupportIndicator,
33297 { "gmscSupportIndicator", "NokiaMAP-Extensions.gmscSupportIndicator_element",
33298 FT_NONE, BASE_NONE, NULL, 0,
33299 NULL, HFILL }},
33300 { &hf_NokiaMAP_Extensions_protocolId,
33301 { "protocolId", "NokiaMAP-Extensions.protocolId",
33302 FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_ExtraProtocolId_vals), 0,
33303 "ExtraProtocolId", HFILL }},
33304 { &hf_NokiaMAP_Extensions_signalInfo,
33305 { "signalInfo", "NokiaMAP-Extensions.signalInfo",
33306 FT_BYTES, BASE_NONE, NULL, 0,
33307 NULL, HFILL }},
33308 { &hf_NokiaMAP_Extensions_cug_Interlock,
33309 { "cug-Interlock", "NokiaMAP-Extensions.cug_Interlock",
33310 FT_BYTES, BASE_NONE, NULL, 0,
33311 NULL, HFILL }},
33312 { &hf_NokiaMAP_Extensions_cug_OutgoingAccess,
33313 { "cug-OutgoingAccess", "NokiaMAP-Extensions.cug_OutgoingAccess",
33314 FT_BOOLEAN, BASE_NONE, NULL, 0,
33315 "BOOLEAN", HFILL }},
33316 { &hf_NokiaMAP_Extensions_cug_CallInfo,
33317 { "cug-CallInfo", "NokiaMAP-Extensions.cug_CallInfo",
33318 FT_BYTES, BASE_NONE, NULL, 0,
33319 NULL, HFILL }},
33320 { &hf_NokiaMAP_Extensions_vlrNumber,
33321 { "vlrNumber", "NokiaMAP-Extensions.vlrNumber",
33322 FT_BYTES, BASE_NONE, NULL, 0,
33323 "ISDN_AddressString", HFILL }},
33324 { &hf_NokiaMAP_Extensions_activeSs,
33325 { "activeSs", "NokiaMAP-Extensions.activeSs",
33326 FT_BYTES, BASE_NONE, NULL, 0,
33327 "ActiveSS_List", HFILL }},
33328 { &hf_NokiaMAP_Extensions_traceReference,
33329 { "traceReference", "NokiaMAP-Extensions.traceReference_element",
33330 FT_NONE, BASE_NONE, NULL, 0,
33331 NULL, HFILL }},
33332 { &hf_NokiaMAP_Extensions_traceType,
33333 { "traceType", "NokiaMAP-Extensions.traceType_element",
33334 FT_NONE, BASE_NONE, NULL, 0,
33335 NULL, HFILL }},
33336 { &hf_NokiaMAP_Extensions_omc_Id,
33337 { "omc-Id", "NokiaMAP-Extensions.omc_Id",
33338 FT_BYTES, BASE_NONE, NULL, 0,
33339 "AddressString", HFILL }},
33340 { &hf_NokiaMAP_Extensions_hotBilling,
33341 { "hotBilling", "NokiaMAP-Extensions.hotBilling",
33342 FT_BOOLEAN, BASE_NONE, NULL, 0,
33343 "BOOLEAN", HFILL }},
33344 { &hf_NokiaMAP_Extensions_cfoIsDone,
33345 { "cfoIsDone", "NokiaMAP-Extensions.cfoIsDone",
33346 FT_BOOLEAN, BASE_NONE, NULL, 0,
33347 "BOOLEAN", HFILL }},
33348 { &hf_NokiaMAP_Extensions_cfInCug,
33349 { "cfInCug", "NokiaMAP-Extensions.cfInCug",
33350 FT_BOOLEAN, BASE_NONE, NULL, 0,
33351 "BOOLEAN", HFILL }},
33352 { &hf_NokiaMAP_Extensions_basicService,
33353 { "basicService", "NokiaMAP-Extensions.basicService",
33354 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
33355 "BasicServiceCode", HFILL }},
33356 { &hf_NokiaMAP_Extensions_category,
33357 { "category", "NokiaMAP-Extensions.category_element",
33358 FT_NONE, BASE_NONE, NULL, 0,
33359 NULL, HFILL }},
33360 { &hf_NokiaMAP_Extensions_nokia_CUG,
33361 { "nokia-CUG", "NokiaMAP-Extensions.nokia_CUG_element",
33362 FT_NONE, BASE_NONE, NULL, 0,
33363 "Nokia_CUG_Data", HFILL }},
33364 { &hf_NokiaMAP_Extensions_noBarrings,
33365 { "noBarrings", "NokiaMAP-Extensions.noBarrings_element",
33366 FT_NONE, BASE_NONE, NULL, 0,
33367 NULL, HFILL }},
33368 { &hf_NokiaMAP_Extensions_odb_Data,
33369 { "odb-Data", "NokiaMAP-Extensions.odb_Data_element",
33370 FT_NONE, BASE_NONE, NULL, 0,
33371 NULL, HFILL }},
33372 { &hf_NokiaMAP_Extensions_fraudData,
33373 { "fraudData", "NokiaMAP-Extensions.fraudData_element",
33374 FT_NONE, BASE_NONE, NULL, 0,
33375 NULL, HFILL }},
33376 { &hf_NokiaMAP_Extensions_leaId,
33377 { "leaId", "NokiaMAP-Extensions.leaId",
33378 FT_UINT32, BASE_DEC, NULL, 0,
33379 NULL, HFILL }},
33380 { &hf_NokiaMAP_Extensions_olcmInfoTable,
33381 { "olcmInfoTable", "NokiaMAP-Extensions.olcmInfoTable",
33382 FT_UINT32, BASE_DEC, NULL, 0,
33383 NULL, HFILL }},
33384 { &hf_NokiaMAP_Extensions_commonMSISDN,
33385 { "commonMSISDN", "NokiaMAP-Extensions.commonMSISDN",
33386 FT_BYTES, BASE_NONE, NULL, 0,
33387 "ISDN_AddressString", HFILL }},
33388 { &hf_NokiaMAP_Extensions_rgData,
33389 { "rgData", "NokiaMAP-Extensions.rgData_element",
33390 FT_NONE, BASE_NONE, NULL, 0,
33391 NULL, HFILL }},
33392 { &hf_NokiaMAP_Extensions_olcmTraceReference,
33393 { "olcmTraceReference", "NokiaMAP-Extensions.olcmTraceReference",
33394 FT_BYTES, BASE_NONE, NULL, 0,
33395 NULL, HFILL }},
33396 { &hf_NokiaMAP_Extensions_noAnswerTimer,
33397 { "noAnswerTimer", "NokiaMAP-Extensions.noAnswerTimer",
33398 FT_BYTES, BASE_NONE, NULL, 0,
33399 NULL, HFILL }},
33400 { &hf_NokiaMAP_Extensions_memberList,
33401 { "memberList", "NokiaMAP-Extensions.memberList",
33402 FT_UINT32, BASE_DEC, NULL, 0,
33403 NULL, HFILL }},
33404 { &hf_NokiaMAP_Extensions_alertingMethod,
33405 { "alertingMethod", "NokiaMAP-Extensions.alertingMethod",
33406 FT_BYTES, BASE_NONE, NULL, 0,
33407 NULL, HFILL }},
33408 { &hf_NokiaMAP_Extensions_userType,
33409 { "userType", "NokiaMAP-Extensions.userType",
33410 FT_BYTES, BASE_NONE, NULL, 0,
33411 NULL, HFILL }},
33412 { &hf_NokiaMAP_Extensions_divertedToNbr,
33413 { "divertedToNbr", "NokiaMAP-Extensions.divertedToNbr",
33414 FT_BYTES, BASE_NONE, NULL, 0,
33415 "ISDN_AddressString", HFILL }},
33416 { &hf_NokiaMAP_Extensions_memberOfSuppression,
33417 { "memberOfSuppression", "NokiaMAP-Extensions.memberOfSuppression_element",
33418 FT_NONE, BASE_NONE, NULL, 0,
33419 NULL, HFILL }},
33420 { &hf_NokiaMAP_Extensions_ringbacktone,
33421 { "ringbacktone", "NokiaMAP-Extensions.ringbacktone_element",
33422 FT_NONE, BASE_NONE, NULL, 0,
33423 NULL, HFILL }},
33424 { &hf_NokiaMAP_Extensions_MemberList_item,
33425 { "ISDN-AddressString", "NokiaMAP-Extensions.ISDN_AddressString",
33426 FT_BYTES, BASE_NONE, NULL, 0,
33427 NULL, HFILL }},
33428 { &hf_NokiaMAP_Extensions_termination,
33429 { "termination", "NokiaMAP-Extensions.termination",
33430 FT_BYTES, BASE_NONE, NULL, 0,
33431 "OCTET_STRING_SIZE_1", HFILL }},
33432 { &hf_NokiaMAP_Extensions_OlcmInfoTable_item,
33433 { "OlcmInfo", "NokiaMAP-Extensions.OlcmInfo_element",
33434 FT_NONE, BASE_NONE, NULL, 0,
33435 NULL, HFILL }},
33436 { &hf_NokiaMAP_Extensions_olcmActive,
33437 { "olcmActive", "NokiaMAP-Extensions.olcmActive_element",
33438 FT_NONE, BASE_NONE, NULL, 0,
33439 NULL, HFILL }},
33440 { &hf_NokiaMAP_Extensions_moc,
33441 { "moc", "NokiaMAP-Extensions.moc_element",
33442 FT_NONE, BASE_NONE, NULL, 0,
33443 "FraudData", HFILL }},
33444 { &hf_NokiaMAP_Extensions_cf,
33445 { "cf", "NokiaMAP-Extensions.cf_element",
33446 FT_NONE, BASE_NONE, NULL, 0,
33447 "FraudData", HFILL }},
33448 { &hf_NokiaMAP_Extensions_ct,
33449 { "ct", "NokiaMAP-Extensions.ct_element",
33450 FT_NONE, BASE_NONE, NULL, 0,
33451 "FraudData", HFILL }},
33452 { &hf_NokiaMAP_Extensions_time,
33453 { "time", "NokiaMAP-Extensions.time",
33454 FT_UINT32, BASE_DEC, NULL, 0,
33455 "TimeLimit", HFILL }},
33456 { &hf_NokiaMAP_Extensions_timeAction,
33457 { "timeAction", "NokiaMAP-Extensions.timeAction",
33458 FT_BYTES, BASE_NONE, NULL, 0,
33459 "ActionType", HFILL }},
33460 { &hf_NokiaMAP_Extensions_maxCount,
33461 { "maxCount", "NokiaMAP-Extensions.maxCount",
33462 FT_UINT32, BASE_DEC, NULL, 0,
33463 "FraudMaxCount", HFILL }},
33464 { &hf_NokiaMAP_Extensions_maxCountAction,
33465 { "maxCountAction", "NokiaMAP-Extensions.maxCountAction",
33466 FT_BYTES, BASE_NONE, NULL, 0,
33467 "ActionType", HFILL }},
33468 { &hf_NokiaMAP_Extensions_serviceCode,
33469 { "serviceCode", "NokiaMAP-Extensions.serviceCode",
33470 FT_BYTES, BASE_NONE, NULL, 0,
33471 "MAPserviceCode", HFILL }},
33472 { &hf_NokiaMAP_Extensions_versionInfo,
33473 { "versionInfo", "NokiaMAP-Extensions.versionInfo",
33474 FT_BYTES, BASE_NONE, NULL, 0,
33475 NULL, HFILL }},
33476 { &hf_NokiaMAP_Extensions_in_key,
33477 { "in-key", "NokiaMAP-Extensions.in_key",
33478 FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_INKey_vals), 0,
33479 "INKey", HFILL }},
33480 { &hf_NokiaMAP_Extensions_fraudInfo,
33481 { "fraudInfo", "NokiaMAP-Extensions.fraudInfo_element",
33482 FT_NONE, BASE_NONE, NULL, 0,
33483 NULL, HFILL }},
33484 { &hf_NokiaMAP_Extensions_ServiceListWithInfo_item,
33485 { "ServiceWithInfo", "NokiaMAP-Extensions.ServiceWithInfo_element",
33486 FT_NONE, BASE_NONE, NULL, 0,
33487 NULL, HFILL }},
33488 { &hf_NokiaMAP_Extensions_mobile_IN_key,
33489 { "mobile-IN-key", "NokiaMAP-Extensions.mobile_IN_key_element",
33490 FT_NONE, BASE_NONE, NULL, 0,
33491 "MKey", HFILL }},
33492 { &hf_NokiaMAP_Extensions_sms_IN_key,
33493 { "sms-IN-key", "NokiaMAP-Extensions.sms_IN_key_element",
33494 FT_NONE, BASE_NONE, NULL, 0,
33495 "SMSKey", HFILL }},
33496 { &hf_NokiaMAP_Extensions_mKeyVer,
33497 { "mKeyVer", "NokiaMAP-Extensions.mKeyVer",
33498 FT_BYTES, BASE_NONE, NULL, 0,
33499 NULL, HFILL }},
33500 { &hf_NokiaMAP_Extensions_mmScfAddress,
33501 { "mmScfAddress", "NokiaMAP-Extensions.mmScfAddress",
33502 FT_BYTES, BASE_NONE, NULL, 0,
33503 "ISDN_AddressString", HFILL }},
33504 { &hf_NokiaMAP_Extensions_mmTdpName,
33505 { "mmTdpName", "NokiaMAP-Extensions.mmTdpName",
33506 FT_BYTES, BASE_NONE, NULL, 0,
33507 NULL, HFILL }},
33508 { &hf_NokiaMAP_Extensions_serviceKey,
33509 { "serviceKey", "NokiaMAP-Extensions.serviceKey",
33510 FT_UINT32, BASE_DEC, NULL, 0,
33511 NULL, HFILL }},
33512 { &hf_NokiaMAP_Extensions_locupType,
33513 { "locupType", "NokiaMAP-Extensions.locupType",
33514 FT_BYTES, BASE_NONE, NULL, 0,
33515 NULL, HFILL }},
33516 { &hf_NokiaMAP_Extensions_mmSCPAddress,
33517 { "mmSCPAddress", "NokiaMAP-Extensions.mmSCPAddress",
33518 FT_BYTES, BASE_NONE, NULL, 0,
33519 "ISDN_AddressString", HFILL }},
33520 { &hf_NokiaMAP_Extensions_smsTdpName,
33521 { "smsTdpName", "NokiaMAP-Extensions.smsTdpName",
33522 FT_BYTES, BASE_NONE, NULL, 0,
33523 NULL, HFILL }},
33524 { &hf_NokiaMAP_Extensions_mmsFlag,
33525 { "mmsFlag", "NokiaMAP-Extensions.mmsFlag_element",
33526 FT_NONE, BASE_NONE, NULL, 0,
33527 NULL, HFILL }},
33528 { &hf_NokiaMAP_Extensions_map_Opt,
33529 { "map-Opt", "NokiaMAP-Extensions.map_Opt",
33530 FT_BYTES, BASE_NONE, NULL, 0,
33531 "MapOptFields", HFILL }},
33532 { &hf_NokiaMAP_Extensions_codec_List,
33533 { "codec-List", "NokiaMAP-Extensions.codec_List",
33534 FT_UINT32, BASE_DEC, NULL, 0,
33535 "CodecListExt", HFILL }},
33536 { &hf_NokiaMAP_Extensions_selected_Codec,
33537 { "selected-Codec", "NokiaMAP-Extensions.selected_Codec_element",
33538 FT_NONE, BASE_NONE, NULL, 0,
33539 "SelectedCodec", HFILL }},
33540 { &hf_NokiaMAP_Extensions_uma_access,
33541 { "uma-access", "NokiaMAP-Extensions.uma_access_element",
33542 FT_NONE, BASE_NONE, NULL, 0,
33543 NULL, HFILL }},
33544 { &hf_NokiaMAP_Extensions_uma_ip_address,
33545 { "uma-ip-address", "NokiaMAP-Extensions.uma_ip_address",
33546 FT_BYTES, BASE_NONE, NULL, 0,
33547 "OCTET_STRING_SIZE_5_17", HFILL }},
33548 { &hf_NokiaMAP_Extensions_uma_ip_port_nb,
33549 { "uma-ip-port-nb", "NokiaMAP-Extensions.uma_ip_port_nb",
33550 FT_UINT32, BASE_DEC, NULL, 0,
33551 "IPPortNb", HFILL }},
33552 { &hf_NokiaMAP_Extensions_CodecListExt_item,
33553 { "CodecExt", "NokiaMAP-Extensions.CodecExt",
33554 FT_BYTES, BASE_NONE, NULL, 0,
33555 NULL, HFILL }},
33556 { &hf_NokiaMAP_Extensions_codec,
33557 { "codec", "NokiaMAP-Extensions.codec",
33558 FT_BYTES, BASE_NONE, NULL, 0,
33559 "CodecExt", HFILL }},
33560 { &hf_NokiaMAP_Extensions_modes,
33561 { "modes", "NokiaMAP-Extensions.modes",
33562 FT_BYTES, BASE_NONE, NULL, 0,
33563 NULL, HFILL }},
33564 { &hf_NokiaMAP_Extensions_imsi,
33565 { "imsi", "NokiaMAP-Extensions.imsi",
33566 FT_BYTES, BASE_NONE, NULL, 0,
33567 NULL, HFILL }},
33568 { &hf_NokiaMAP_Extensions_cfuSMSCounter,
33569 { "cfuSMSCounter", "NokiaMAP-Extensions.cfuSMSCounter",
33570 FT_BYTES, BASE_NONE, NULL, 0,
33571 NULL, HFILL }},
33572 { &hf_NokiaMAP_Extensions_cfusmcfo,
33573 { "cfusmcfo", "NokiaMAP-Extensions.cfusmcfo_element",
33574 FT_NONE, BASE_NONE, NULL, 0,
33575 NULL, HFILL }},
33576 { &hf_NokiaMAP_Extensions_memberInterrogate,
33577 { "memberInterrogate", "NokiaMAP-Extensions.memberInterrogate_element",
33578 FT_NONE, BASE_NONE, NULL, 0,
33579 NULL, HFILL }},
33580 { &hf_NokiaMAP_Extensions_locationAreaCode,
33581 { "locationAreaCode", "NokiaMAP-Extensions.locationAreaCode",
33582 FT_BYTES, BASE_NONE, NULL, 0,
33583 NULL, HFILL }},
33584 { &hf_NokiaMAP_Extensions_cellId,
33585 { "cellId", "NokiaMAP-Extensions.cellId",
33586 FT_BYTES, BASE_NONE, NULL, 0,
33587 "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
33588 { &hf_NokiaMAP_Extensions_lai,
33589 { "lai", "NokiaMAP-Extensions.lai",
33590 FT_BYTES, BASE_NONE, NULL, 0,
33591 "LAIFixedLength", HFILL }},
33592 { &hf_NokiaMAP_Extensions_sendImmResp,
33593 { "sendImmResp", "NokiaMAP-Extensions.sendImmResp_element",
33594 FT_NONE, BASE_NONE, NULL, 0,
33595 NULL, HFILL }},
33596 { &hf_NokiaMAP_Extensions_rejectCause,
33597 { "rejectCause", "NokiaMAP-Extensions.rejectCause",
33598 FT_BYTES, BASE_NONE, NULL, 0,
33599 "OCTET_STRING_SIZE_1", HFILL }},
33600 { &hf_NokiaMAP_Extensions_senderMSISDN,
33601 { "senderMSISDN", "NokiaMAP-Extensions.senderMSISDN",
33602 FT_BYTES, BASE_NONE, NULL, 0,
33603 "ISDN_AddressString", HFILL }},
33604 { &hf_NokiaMAP_Extensions_access,
33605 { "access", "NokiaMAP-Extensions.access",
33606 FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_Access_vals), 0,
33607 NULL, HFILL }},
33608 { &hf_NokiaMAP_Extensions_version,
33609 { "version", "NokiaMAP-Extensions.version",
33610 FT_UINT32, BASE_DEC, NULL, 0,
33611 NULL, HFILL }},
33612 { &hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item,
33613 { "Access", "NokiaMAP-Extensions.Access",
33614 FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_Access_vals), 0,
33615 NULL, HFILL }},
33616 { &hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed,
33617 { "amr-wb-allowed", "NokiaMAP.Extensions.AllowedServiceData.amr.wb.allowed",
33618 FT_BOOLEAN, 8, NULL, 0x80,
33619 NULL, HFILL }},
33622 /* List of subtrees */
33623 static int *ett[] = {
33624 &ett_gsm_map,
33625 &ett_gsm_map_InvokeId,
33626 &ett_gsm_map_InvokePDU,
33627 &ett_gsm_map_ReturnResultPDU,
33628 &ett_gsm_map_ReturnErrorPDU,
33629 &ett_gsm_map_ReturnResult_result,
33630 &ett_gsm_map_ReturnError_result,
33631 &ett_gsm_map_GSMMAPPDU,
33632 &ett_gsm_map_ext_qos_subscribed,
33633 &ett_gsm_map_pdptypenumber,
33634 &ett_gsm_map_RAIdentity,
33635 &ett_gsm_map_LAIFixedLength,
33636 &ett_gsm_map_isdn_address_string,
33637 &ett_gsm_map_geo_desc,
33638 &ett_gsm_map_LongSignalInfo,
33639 &ett_gsm_map_RadioResourceInformation,
33640 &ett_gsm_map_MSNetworkCapability,
33641 &ett_gsm_map_MSRadioAccessCapability,
33642 &ett_gsm_map_externalsignalinfo,
33643 &ett_gsm_map_cbs_data_coding,
33644 &ett_gsm_map_GlobalCellId,
33645 &ett_gsm_map_GeographicalInformation,
33646 &ett_gsm_map_apn_str,
33647 &ett_gsm_map_LocationNumber,
33648 &ett_gsm_map_ericsson_locationInformation,
33649 &ett_gsm_map_extension_data,
33650 &ett_gsm_map_tbcd_digits,
33651 &ett_gsm_map_ussd_string,
33652 &ett_gsm_map_ext2_qos_subscribed,
33653 &ett_gsm_map_ext3_qos_subscribed,
33654 &ett_gsm_map_e_utranCellGlobalIdentity,
33655 &ett_gsm_map_TA_id,
33656 &ett_gsm_map_GeodeticInformation,
33659 /* --- Module MAP-ExtensionDataTypes --- --- --- */
33661 &ett_gsm_map_ExtensionContainer,
33662 &ett_gsm_map_SLR_ArgExtensionContainer,
33663 &ett_gsm_map_PrivateExtensionList,
33664 &ett_gsm_map_PrivateExtension,
33665 &ett_gsm_map_PCS_Extensions,
33666 &ett_gsm_map_SLR_Arg_PCS_Extensions,
33668 /* --- Module MAP-CommonDataTypes --- --- --- */
33670 &ett_gsm_map_ExternalSignalInfo,
33671 &ett_gsm_map_Ext_ExternalSignalInfo,
33672 &ett_gsm_map_AccessNetworkSignalInfo,
33673 &ett_gsm_map_Identity,
33674 &ett_gsm_map_IMSI_WithLMSI,
33675 &ett_gsm_map_SubscriberId,
33676 &ett_gsm_map_HLR_List,
33677 &ett_gsm_map_NAEA_PreferredCI,
33678 &ett_gsm_map_SubscriberIdentity,
33679 &ett_gsm_map_LCSClientExternalID,
33680 &ett_gsm_map_NetworkNodeDiameterAddress,
33681 &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
33682 &ett_gsm_map_BasicServiceCode,
33683 &ett_gsm_map_Ext_BasicServiceCode,
33684 &ett_gsm_map_EMLPP_Info,
33685 &ett_gsm_map_MC_SS_Info,
33687 /* --- Module MAP-SS-DataTypes --- --- --- */
33689 &ett_gsm_map_ss_RegisterSS_Arg,
33690 &ett_gsm_map_ss_SS_Info,
33691 &ett_gsm_map_ss_ForwardingInfo,
33692 &ett_gsm_map_ss_ForwardingFeatureList,
33693 &ett_gsm_map_ss_ForwardingFeature,
33694 &ett_gsm_map_ss_CallBarringInfo,
33695 &ett_gsm_map_ss_CallBarringFeatureList,
33696 &ett_gsm_map_ss_CallBarringFeature,
33697 &ett_gsm_map_ss_SS_Data,
33698 &ett_gsm_map_ss_SS_SubscriptionOption,
33699 &ett_gsm_map_ss_SS_ForBS_Code,
33700 &ett_gsm_map_ss_GenericServiceInfo,
33701 &ett_gsm_map_ss_CCBS_FeatureList,
33702 &ett_gsm_map_ss_CCBS_Feature,
33703 &ett_gsm_map_ss_InterrogateSS_Res,
33704 &ett_gsm_map_ss_USSD_Arg,
33705 &ett_gsm_map_ss_USSD_Res,
33706 &ett_gsm_map_ss_SS_List,
33707 &ett_gsm_map_ss_BasicServiceGroupList,
33708 &ett_gsm_map_ss_SS_InvocationNotificationArg,
33709 &ett_gsm_map_ss_SS_InvocationNotificationRes,
33710 &ett_gsm_map_ss_SS_EventSpecification,
33711 &ett_gsm_map_ss_RegisterCC_EntryArg,
33712 &ett_gsm_map_ss_CCBS_Data,
33713 &ett_gsm_map_ss_ServiceIndicator,
33714 &ett_gsm_map_ss_RegisterCC_EntryRes,
33715 &ett_gsm_map_ss_EraseCC_EntryArg,
33716 &ett_gsm_map_ss_EraseCC_EntryRes,
33718 /* --- Module MAP-ER-DataTypes --- --- --- */
33720 &ett_gsm_map_er_RoamingNotAllowedParam,
33721 &ett_gsm_map_er_CallBarredParam,
33722 &ett_gsm_map_er_ExtensibleCallBarredParam,
33723 &ett_gsm_map_er_CUG_RejectParam,
33724 &ett_gsm_map_er_SS_IncompatibilityCause,
33725 &ett_gsm_map_er_SM_DeliveryFailureCause,
33726 &ett_gsm_map_er_AbsentSubscriberSM_Param,
33727 &ett_gsm_map_er_SystemFailureParam,
33728 &ett_gsm_map_er_ExtensibleSystemFailureParam,
33729 &ett_gsm_map_er_DataMissingParam,
33730 &ett_gsm_map_er_UnexpectedDataParam,
33731 &ett_gsm_map_er_FacilityNotSupParam,
33732 &ett_gsm_map_er_OR_NotAllowedParam,
33733 &ett_gsm_map_er_UnknownSubscriberParam,
33734 &ett_gsm_map_er_NumberChangedParam,
33735 &ett_gsm_map_er_UnidentifiedSubParam,
33736 &ett_gsm_map_er_IllegalSubscriberParam,
33737 &ett_gsm_map_er_IllegalEquipmentParam,
33738 &ett_gsm_map_er_BearerServNotProvParam,
33739 &ett_gsm_map_er_TeleservNotProvParam,
33740 &ett_gsm_map_er_TracingBufferFullParam,
33741 &ett_gsm_map_er_NoRoamingNbParam,
33742 &ett_gsm_map_er_AbsentSubscriberParam,
33743 &ett_gsm_map_er_BusySubscriberParam,
33744 &ett_gsm_map_er_NoSubscriberReplyParam,
33745 &ett_gsm_map_er_ForwardingViolationParam,
33746 &ett_gsm_map_er_ForwardingFailedParam,
33747 &ett_gsm_map_er_ATI_NotAllowedParam,
33748 &ett_gsm_map_er_ATSI_NotAllowedParam,
33749 &ett_gsm_map_er_ATM_NotAllowedParam,
33750 &ett_gsm_map_er_IllegalSS_OperationParam,
33751 &ett_gsm_map_er_SS_NotAvailableParam,
33752 &ett_gsm_map_er_SS_SubscriptionViolationParam,
33753 &ett_gsm_map_er_InformationNotAvailableParam,
33754 &ett_gsm_map_er_SubBusyForMT_SMS_Param,
33755 &ett_gsm_map_er_MessageWaitListFullParam,
33756 &ett_gsm_map_er_ResourceLimitationParam,
33757 &ett_gsm_map_er_NoGroupCallNbParam,
33758 &ett_gsm_map_er_IncompatibleTerminalParam,
33759 &ett_gsm_map_er_ShortTermDenialParam,
33760 &ett_gsm_map_er_LongTermDenialParam,
33761 &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param,
33762 &ett_gsm_map_er_UnauthorizedLCSClient_Param,
33763 &ett_gsm_map_er_PositionMethodFailure_Param,
33764 &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param,
33765 &ett_gsm_map_er_MM_EventNotSupported_Param,
33766 &ett_gsm_map_er_TargetCellOutsideGCA_Param,
33767 &ett_gsm_map_er_OngoingGroupCallParam,
33769 /* --- Module MAP-SM-DataTypes --- --- --- */
33771 &ett_gsm_map_sm_RoutingInfoForSM_Arg,
33772 &ett_gsm_map_sm_RoutingInfoForSM_Res,
33773 &ett_gsm_map_sm_IP_SM_GW_Guidance,
33774 &ett_gsm_map_sm_LocationInfoWithLMSI,
33775 &ett_gsm_map_sm_Additional_Number,
33776 &ett_gsm_map_sm_MO_ForwardSM_Arg,
33777 &ett_gsm_map_sm_MO_ForwardSM_Res,
33778 &ett_gsm_map_sm_MT_ForwardSM_Arg,
33779 &ett_gsm_map_sm_CorrelationID,
33780 &ett_gsm_map_sm_MT_ForwardSM_Res,
33781 &ett_gsm_map_sm_SM_RP_DA,
33782 &ett_gsm_map_sm_SM_RP_OA,
33783 &ett_gsm_map_sm_ReportSM_DeliveryStatusArg,
33784 &ett_gsm_map_sm_ReportSM_DeliveryStatusRes,
33785 &ett_gsm_map_sm_AlertServiceCentreArg,
33786 &ett_gsm_map_sm_InformServiceCentreArg,
33787 &ett_gsm_map_sm_MW_Status,
33788 &ett_gsm_map_sm_ReadyForSM_Arg,
33789 &ett_gsm_map_sm_ReadyForSM_Res,
33790 &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg,
33791 &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res,
33792 &ett_gsm_map_sm_DispatcherList,
33793 &ett_gsm_map_sm_AdditionalDispatcherList,
33795 /* --- Module MAP-OM-DataTypes --- --- --- */
33797 &ett_gsm_map_om_ActivateTraceModeArg,
33798 &ett_gsm_map_om_MDT_Configuration,
33799 &ett_gsm_map_om_MDT_Allowed_PLMNId_List,
33800 &ett_gsm_map_om_AreaScope,
33801 &ett_gsm_map_om_CGI_List,
33802 &ett_gsm_map_om_E_UTRAN_CGI_List,
33803 &ett_gsm_map_om_RoutingAreaId_List,
33804 &ett_gsm_map_om_LocationAreaId_List,
33805 &ett_gsm_map_om_TrackingAreaId_List,
33806 &ett_gsm_map_om_TraceDepthList,
33807 &ett_gsm_map_om_TraceNE_TypeList,
33808 &ett_gsm_map_om_TraceInterfaceList,
33809 &ett_gsm_map_om_MSC_S_InterfaceList,
33810 &ett_gsm_map_om_MGW_InterfaceList,
33811 &ett_gsm_map_om_SGSN_InterfaceList,
33812 &ett_gsm_map_om_GGSN_InterfaceList,
33813 &ett_gsm_map_om_RNC_InterfaceList,
33814 &ett_gsm_map_om_BMSC_InterfaceList,
33815 &ett_gsm_map_om_MME_InterfaceList,
33816 &ett_gsm_map_om_SGW_InterfaceList,
33817 &ett_gsm_map_om_PGW_InterfaceList,
33818 &ett_gsm_map_om_ENB_InterfaceList,
33819 &ett_gsm_map_om_TraceEventList,
33820 &ett_gsm_map_om_MSC_S_EventList,
33821 &ett_gsm_map_om_MGW_EventList,
33822 &ett_gsm_map_om_SGSN_EventList,
33823 &ett_gsm_map_om_GGSN_EventList,
33824 &ett_gsm_map_om_BMSC_EventList,
33825 &ett_gsm_map_om_MME_EventList,
33826 &ett_gsm_map_om_SGW_EventList,
33827 &ett_gsm_map_om_PGW_EventList,
33828 &ett_gsm_map_om_TracePropagationList,
33829 &ett_gsm_map_om_ActivateTraceModeRes,
33830 &ett_gsm_map_om_DeactivateTraceModeArg,
33831 &ett_gsm_map_om_DeactivateTraceModeRes,
33833 /* --- Module MAP-MS-DataTypes --- --- --- */
33835 &ett_gsm_map_ms_UpdateLocationArg,
33836 &ett_gsm_map_ms_VLR_Capability,
33837 &ett_gsm_map_ms_SupportedRAT_Types,
33838 &ett_gsm_map_ms_SuperChargerInfo,
33839 &ett_gsm_map_ms_SupportedLCS_CapabilitySets,
33840 &ett_gsm_map_ms_UpdateLocationRes,
33841 &ett_gsm_map_ms_ADD_Info,
33842 &ett_gsm_map_ms_PagingArea,
33843 &ett_gsm_map_ms_LocationArea,
33844 &ett_gsm_map_ms_CancelLocationArg_U,
33845 &ett_gsm_map_ms_CancelLocationRes,
33846 &ett_gsm_map_ms_PurgeMS_Arg_U,
33847 &ett_gsm_map_ms_PurgeMS_Res,
33848 &ett_gsm_map_ms_SendIdentificationArg,
33849 &ett_gsm_map_ms_SendIdentificationRes_U,
33850 &ett_gsm_map_ms_AuthenticationSetList,
33851 &ett_gsm_map_ms_TripletList,
33852 &ett_gsm_map_ms_QuintupletList,
33853 &ett_gsm_map_ms_AuthenticationTriplet,
33854 &ett_gsm_map_ms_AuthenticationQuintuplet,
33855 &ett_gsm_map_ms_CurrentSecurityContext,
33856 &ett_gsm_map_ms_GSM_SecurityContextData,
33857 &ett_gsm_map_ms_UMTS_SecurityContextData,
33858 &ett_gsm_map_ms_AuthenticationFailureReportArg,
33859 &ett_gsm_map_ms_AuthenticationFailureReportRes,
33860 &ett_gsm_map_ms_UpdateGprsLocationArg,
33861 &ett_gsm_map_ms_EPS_Info,
33862 &ett_gsm_map_ms_PDN_GW_Update,
33863 &ett_gsm_map_ms_ISR_Information,
33864 &ett_gsm_map_ms_SGSN_Capability,
33865 &ett_gsm_map_ms_SupportedFeatures,
33866 &ett_gsm_map_ms_Ext_SupportedFeatures,
33867 &ett_gsm_map_ms_UpdateGprsLocationRes,
33868 &ett_gsm_map_ms_EPLMN_List,
33869 &ett_gsm_map_ms_AdjacentPLMN_List,
33870 &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U,
33871 &ett_gsm_map_ms_AllowedUMTS_Algorithms,
33872 &ett_gsm_map_ms_PrepareHO_Arg_U,
33873 &ett_gsm_map_ms_LCLS_Negotiation,
33874 &ett_gsm_map_ms_LCLS_ConfigurationPreference,
33875 &ett_gsm_map_ms_BSSMAP_ServiceHandoverList,
33876 &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo,
33877 &ett_gsm_map_ms_RadioResourceList,
33878 &ett_gsm_map_ms_RadioResource,
33879 &ett_gsm_map_ms_PrepareHO_Res_U,
33880 &ett_gsm_map_ms_SelectedUMTS_Algorithms,
33881 &ett_gsm_map_ms_ChosenRadioResourceInformation,
33882 &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U,
33883 &ett_gsm_map_ms_PrepareSubsequentHO_Res_U,
33884 &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U,
33885 &ett_gsm_map_ms_AoIPCodecsList,
33886 &ett_gsm_map_ms_SupportedCodecsList,
33887 &ett_gsm_map_ms_CodecList,
33888 &ett_gsm_map_ms_SendEndSignal_Arg_U,
33889 &ett_gsm_map_ms_SendEndSignal_Res,
33890 &ett_gsm_map_ms_RelocationNumberList,
33891 &ett_gsm_map_ms_RelocationNumber,
33892 &ett_gsm_map_ms_SendAuthenticationInfoArg,
33893 &ett_gsm_map_ms_Re_synchronisationInfo,
33894 &ett_gsm_map_ms_SendAuthenticationInfoRes_U,
33895 &ett_gsm_map_ms_EPS_AuthenticationSetList,
33896 &ett_gsm_map_ms_EPC_AV,
33897 &ett_gsm_map_ms_CheckIMEI_Arg,
33898 &ett_gsm_map_ms_CheckIMEI_Res,
33899 &ett_gsm_map_ms_RequestedEquipmentInfo,
33900 &ett_gsm_map_ms_UESBI_Iu,
33901 &ett_gsm_map_ms_InsertSubscriberDataArg,
33902 &ett_gsm_map_ms_EDRX_Cycle_Length_List,
33903 &ett_gsm_map_ms_EDRX_Cycle_Length,
33904 &ett_gsm_map_ms_Reset_Id_List,
33905 &ett_gsm_map_ms_IMSI_GroupIdList,
33906 &ett_gsm_map_ms_IMSI_GroupId,
33907 &ett_gsm_map_ms_CSG_SubscriptionDataList,
33908 &ett_gsm_map_ms_CSG_SubscriptionData,
33909 &ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList,
33910 &ett_gsm_map_ms_LIPA_AllowedAPNList,
33911 &ett_gsm_map_ms_EPS_SubscriptionData,
33912 &ett_gsm_map_ms_APN_ConfigurationProfile,
33913 &ett_gsm_map_ms_EPS_DataList,
33914 &ett_gsm_map_ms_APN_Configuration,
33915 &ett_gsm_map_ms_EPS_QoS_Subscribed,
33916 &ett_gsm_map_ms_AMBR,
33917 &ett_gsm_map_ms_SpecificAPNInfoList,
33918 &ett_gsm_map_ms_SpecificAPNInfo,
33919 &ett_gsm_map_ms_Allocation_Retention_Priority,
33920 &ett_gsm_map_ms_PDN_GW_Identity,
33921 &ett_gsm_map_ms_WLAN_Offloadability,
33922 &ett_gsm_map_ms_AccessRestrictionData,
33923 &ett_gsm_map_ms_Ext_AccessRestrictionData,
33924 &ett_gsm_map_ms_AdjacentAccessRestrictionDataList,
33925 &ett_gsm_map_ms_AdjacentAccessRestrictionData,
33926 &ett_gsm_map_ms_LCSInformation,
33927 &ett_gsm_map_ms_GMLC_List,
33928 &ett_gsm_map_ms_GPRSDataList,
33929 &ett_gsm_map_ms_PDP_Context,
33930 &ett_gsm_map_ms_GPRSSubscriptionData,
33931 &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo,
33932 &ett_gsm_map_ms_GPRS_CSI,
33933 &ett_gsm_map_ms_GPRS_CamelTDPDataList,
33934 &ett_gsm_map_ms_GPRS_CamelTDPData,
33935 &ett_gsm_map_ms_LSADataList,
33936 &ett_gsm_map_ms_LSAData,
33937 &ett_gsm_map_ms_LSAInformation,
33938 &ett_gsm_map_ms_SubscriberData,
33939 &ett_gsm_map_ms_BearerServiceList,
33940 &ett_gsm_map_ms_TeleserviceList,
33941 &ett_gsm_map_ms_ODB_Data,
33942 &ett_gsm_map_ms_ODB_GeneralData,
33943 &ett_gsm_map_ms_ODB_HPLMN_Data,
33944 &ett_gsm_map_ms_Ext_SS_InfoList,
33945 &ett_gsm_map_ms_Ext_SS_Info,
33946 &ett_gsm_map_ms_Ext_ForwInfo,
33947 &ett_gsm_map_ms_Ext_ForwFeatureList,
33948 &ett_gsm_map_ms_Ext_ForwFeature,
33949 &ett_gsm_map_ms_Ext_CallBarInfo,
33950 &ett_gsm_map_ms_Ext_CallBarFeatureList,
33951 &ett_gsm_map_ms_Ext_CallBarringFeature,
33952 &ett_gsm_map_ms_CUG_Info,
33953 &ett_gsm_map_ms_CUG_SubscriptionList,
33954 &ett_gsm_map_ms_CUG_Subscription,
33955 &ett_gsm_map_ms_CUG_FeatureList,
33956 &ett_gsm_map_ms_Ext_BasicServiceGroupList,
33957 &ett_gsm_map_ms_CUG_Feature,
33958 &ett_gsm_map_ms_Ext_SS_Data,
33959 &ett_gsm_map_ms_LCS_PrivacyExceptionList,
33960 &ett_gsm_map_ms_LCS_PrivacyClass,
33961 &ett_gsm_map_ms_ExternalClientList,
33962 &ett_gsm_map_ms_PLMNClientList,
33963 &ett_gsm_map_ms_Ext_ExternalClientList,
33964 &ett_gsm_map_ms_ExternalClient,
33965 &ett_gsm_map_ms_ServiceTypeList,
33966 &ett_gsm_map_ms_ServiceType,
33967 &ett_gsm_map_ms_MOLR_List,
33968 &ett_gsm_map_ms_MOLR_Class,
33969 &ett_gsm_map_ms_ZoneCodeList,
33970 &ett_gsm_map_ms_InsertSubscriberDataRes,
33971 &ett_gsm_map_ms_DeleteSubscriberDataArg,
33972 &ett_gsm_map_ms_SpecificCSI_Withdraw,
33973 &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
33974 &ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
33975 &ett_gsm_map_ms_ContextIdList,
33976 &ett_gsm_map_ms_LSAInformationWithdraw,
33977 &ett_gsm_map_ms_LSAIdentityList,
33978 &ett_gsm_map_ms_BasicServiceList,
33979 &ett_gsm_map_ms_DeleteSubscriberDataRes,
33980 &ett_gsm_map_ms_VlrCamelSubscriptionInfo,
33981 &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList,
33982 &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria,
33983 &ett_gsm_map_ms_TPDU_TypeCriterion,
33984 &ett_gsm_map_ms_D_CSI,
33985 &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList,
33986 &ett_gsm_map_ms_DP_AnalysedInfoCriterium,
33987 &ett_gsm_map_ms_SS_CSI,
33988 &ett_gsm_map_ms_SS_CamelData,
33989 &ett_gsm_map_ms_SS_EventList,
33990 &ett_gsm_map_ms_O_CSI,
33991 &ett_gsm_map_ms_O_BcsmCamelTDPDataList,
33992 &ett_gsm_map_ms_O_BcsmCamelTDPData,
33993 &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList,
33994 &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList,
33995 &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria,
33996 &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria,
33997 &ett_gsm_map_ms_DestinationNumberCriteria,
33998 &ett_gsm_map_ms_DestinationNumberList,
33999 &ett_gsm_map_ms_DestinationNumberLengthList,
34000 &ett_gsm_map_ms_BasicServiceCriteria,
34001 &ett_gsm_map_ms_O_CauseValueCriteria,
34002 &ett_gsm_map_ms_T_CauseValueCriteria,
34003 &ett_gsm_map_ms_SupportedCamelPhases,
34004 &ett_gsm_map_ms_OfferedCamel4CSIs,
34005 &ett_gsm_map_ms_OfferedCamel4Functionalities,
34006 &ett_gsm_map_ms_SMS_CSI,
34007 &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList,
34008 &ett_gsm_map_ms_SMS_CAMEL_TDP_Data,
34009 &ett_gsm_map_ms_M_CSI,
34010 &ett_gsm_map_ms_MG_CSI,
34011 &ett_gsm_map_ms_MobilityTriggers,
34012 &ett_gsm_map_ms_T_CSI,
34013 &ett_gsm_map_ms_T_BcsmCamelTDPDataList,
34014 &ett_gsm_map_ms_T_BcsmCamelTDPData,
34015 &ett_gsm_map_ms_SendRoutingInfoForGprsArg,
34016 &ett_gsm_map_ms_SendRoutingInfoForGprsRes,
34017 &ett_gsm_map_ms_FailureReportArg,
34018 &ett_gsm_map_ms_FailureReportRes,
34019 &ett_gsm_map_ms_NoteMsPresentForGprsArg,
34020 &ett_gsm_map_ms_NoteMsPresentForGprsRes,
34021 &ett_gsm_map_ms_ResetArg,
34022 &ett_gsm_map_ms_SendingNode_Number,
34023 &ett_gsm_map_ms_RestoreDataArg,
34024 &ett_gsm_map_ms_RestoreDataRes,
34025 &ett_gsm_map_ms_VBSDataList,
34026 &ett_gsm_map_ms_VGCSDataList,
34027 &ett_gsm_map_ms_VoiceGroupCallData,
34028 &ett_gsm_map_ms_AdditionalSubscriptions,
34029 &ett_gsm_map_ms_VoiceBroadcastData,
34030 &ett_gsm_map_ms_ProvideSubscriberInfoArg,
34031 &ett_gsm_map_ms_ProvideSubscriberInfoRes,
34032 &ett_gsm_map_ms_SubscriberInfo,
34033 &ett_gsm_map_ms_MNPInfoRes,
34034 &ett_gsm_map_ms_GPRSMSClass,
34035 &ett_gsm_map_ms_RequestedInfo,
34036 &ett_gsm_map_ms_RequestedNodes,
34037 &ett_gsm_map_ms_LocationInformation,
34038 &ett_gsm_map_ms_LocationInformationEPS,
34039 &ett_gsm_map_ms_LocationInformationGPRS,
34040 &ett_gsm_map_ms_LocationInformation5GS,
34041 &ett_gsm_map_ms_UserCSGInformation,
34042 &ett_gsm_map_ms_SubscriberState,
34043 &ett_gsm_map_ms_PS_SubscriberState,
34044 &ett_gsm_map_ms_PDP_ContextInfoList,
34045 &ett_gsm_map_ms_PDP_ContextInfo,
34046 &ett_gsm_map_ms_AnyTimeInterrogationArg,
34047 &ett_gsm_map_ms_AnyTimeInterrogationRes,
34048 &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg,
34049 &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes,
34050 &ett_gsm_map_ms_CallWaitingData,
34051 &ett_gsm_map_ms_Ext_CwFeatureList,
34052 &ett_gsm_map_ms_Ext_CwFeature,
34053 &ett_gsm_map_ms_ClipData,
34054 &ett_gsm_map_ms_ClirData,
34055 &ett_gsm_map_ms_CallHoldData,
34056 &ett_gsm_map_ms_EctData,
34057 &ett_gsm_map_ms_RequestedSubscriptionInfo,
34058 &ett_gsm_map_ms_MSISDN_BS_List,
34059 &ett_gsm_map_ms_MSISDN_BS,
34060 &ett_gsm_map_ms_CallForwardingData,
34061 &ett_gsm_map_ms_CallBarringData,
34062 &ett_gsm_map_ms_ODB_Info,
34063 &ett_gsm_map_ms_CAMEL_SubscriptionInfo,
34064 &ett_gsm_map_ms_AnyTimeModificationArg,
34065 &ett_gsm_map_ms_ModificationRequestFor_CW_Info,
34066 &ett_gsm_map_ms_ModificationRequestFor_CH_Info,
34067 &ett_gsm_map_ms_ModificationRequestFor_ECT_Info,
34068 &ett_gsm_map_ms_ModificationRequestFor_CLIR_Info,
34069 &ett_gsm_map_ms_ModificationRequestFor_CLIP_Info,
34070 &ett_gsm_map_ms_ModificationRequestFor_CSG,
34071 &ett_gsm_map_ms_RequestedServingNode,
34072 &ett_gsm_map_ms_ServingNode,
34073 &ett_gsm_map_ms_AnyTimeModificationRes,
34074 &ett_gsm_map_ms_ModificationRequestFor_CF_Info,
34075 &ett_gsm_map_ms_ModificationRequestFor_CB_Info,
34076 &ett_gsm_map_ms_ModificationRequestFor_ODB_data,
34077 &ett_gsm_map_ms_ModificationRequestFor_CSI,
34078 &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data,
34079 &ett_gsm_map_ms_NoteSubscriberDataModifiedArg,
34080 &ett_gsm_map_ms_NoteSubscriberDataModifiedRes,
34081 &ett_gsm_map_ms_NoteMM_EventArg,
34082 &ett_gsm_map_ms_NoteMM_EventRes,
34083 &ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
34084 &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE,
34085 &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE,
34086 &ett_gsm_map_ms_UpdateVcsgLocationArg,
34087 &ett_gsm_map_ms_UpdateVcsgLocationRes,
34088 &ett_gsm_map_ms_CancelVcsgLocationArg,
34089 &ett_gsm_map_ms_CancelVcsgLocationRes,
34091 /* --- Module MAP-CH-DataTypes --- --- --- */
34093 &ett_gsm_map_ch_CUG_CheckInfo,
34094 &ett_gsm_map_ch_SendRoutingInfoArg,
34095 &ett_gsm_map_ch_SuppressMTSS,
34096 &ett_gsm_map_ch_SendRoutingInfoRes_U,
34097 &ett_gsm_map_ch_AllowedServices,
34098 &ett_gsm_map_ch_CCBS_Indicators,
34099 &ett_gsm_map_ch_RoutingInfo,
34100 &ett_gsm_map_ch_ForwardingData,
34101 &ett_gsm_map_ch_ProvideRoamingNumberArg,
34102 &ett_gsm_map_ch_ProvideRoamingNumberRes,
34103 &ett_gsm_map_ch_ResumeCallHandlingArg,
34104 &ett_gsm_map_ch_UU_Data,
34105 &ett_gsm_map_ch_ResumeCallHandlingRes,
34106 &ett_gsm_map_ch_CamelInfo,
34107 &ett_gsm_map_ch_ExtendedRoutingInfo,
34108 &ett_gsm_map_ch_CamelRoutingInfo,
34109 &ett_gsm_map_ch_GmscCamelSubscriptionInfo,
34110 &ett_gsm_map_ch_SetReportingStateArg,
34111 &ett_gsm_map_ch_SetReportingStateRes,
34112 &ett_gsm_map_ch_StatusReportArg,
34113 &ett_gsm_map_ch_EventReportData,
34114 &ett_gsm_map_ch_CallReportData,
34115 &ett_gsm_map_ch_StatusReportRes,
34116 &ett_gsm_map_ch_RemoteUserFreeArg,
34117 &ett_gsm_map_ch_RemoteUserFreeRes,
34118 &ett_gsm_map_ch_IST_AlertArg,
34119 &ett_gsm_map_ch_IST_AlertRes,
34120 &ett_gsm_map_ch_IST_CommandArg,
34121 &ett_gsm_map_ch_IST_CommandRes,
34122 &ett_gsm_map_ch_ReleaseResourcesArg,
34123 &ett_gsm_map_ch_ReleaseResourcesRes,
34125 /* --- Module MAP-LCS-DataTypes --- --- --- */
34127 &ett_gsm_map_lcs_RoutingInfoForLCS_Arg,
34128 &ett_gsm_map_lcs_RoutingInfoForLCS_Res,
34129 &ett_gsm_map_lcs_LCSLocationInfo,
34130 &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg,
34131 &ett_gsm_map_lcs_LocationType,
34132 &ett_gsm_map_lcs_DeferredLocationEventType,
34133 &ett_gsm_map_lcs_LCS_ClientID,
34134 &ett_gsm_map_lcs_LCSClientName,
34135 &ett_gsm_map_lcs_LCSRequestorID,
34136 &ett_gsm_map_lcs_LCS_QoS,
34137 &ett_gsm_map_lcs_ResponseTime,
34138 &ett_gsm_map_lcs_SupportedGADShapes,
34139 &ett_gsm_map_lcs_LCSCodeword,
34140 &ett_gsm_map_lcs_LCS_PrivacyCheck,
34141 &ett_gsm_map_lcs_AreaEventInfo,
34142 &ett_gsm_map_lcs_AreaDefinition,
34143 &ett_gsm_map_lcs_AreaList,
34144 &ett_gsm_map_lcs_Area,
34145 &ett_gsm_map_lcs_PeriodicLDRInfo,
34146 &ett_gsm_map_lcs_ReportingOptionMilliseconds,
34147 &ett_gsm_map_lcs_ReportingPLMNList,
34148 &ett_gsm_map_lcs_PLMNList,
34149 &ett_gsm_map_lcs_ReportingPLMN,
34150 &ett_gsm_map_lcs_ProvideSubscriberLocation_Res,
34151 &ett_gsm_map_lcs_SubscriberLocationReport_Arg,
34152 &ett_gsm_map_lcs_Deferredmt_lrData,
34153 &ett_gsm_map_lcs_ServingNodeAddress,
34154 &ett_gsm_map_lcs_SubscriberLocationReport_Res,
34156 /* --- Module MAP-GR-DataTypes --- --- --- */
34158 &ett_gsm_map_gr_PrepareGroupCallArg,
34159 &ett_gsm_map_gr_PrepareGroupCallRes,
34160 &ett_gsm_map_gr_SendGroupCallEndSignalArg,
34161 &ett_gsm_map_gr_SendGroupCallEndSignalRes,
34162 &ett_gsm_map_gr_ForwardGroupCallSignallingArg,
34163 &ett_gsm_map_gr_ProcessGroupCallSignallingArg,
34164 &ett_gsm_map_gr_StateAttributes,
34165 &ett_gsm_map_gr_SendGroupCallInfoArg,
34166 &ett_gsm_map_gr_SendGroupCallInfoRes,
34168 /* --- Module MAP-DialogueInformation --- --- --- */
34170 &ett_gsm_map_dialogue_MAP_DialoguePDU,
34171 &ett_gsm_map_dialogue_MAP_OpenInfo,
34172 &ett_gsm_map_dialogue_MAP_AcceptInfo,
34173 &ett_gsm_map_dialogue_MAP_CloseInfo,
34174 &ett_gsm_map_dialogue_MAP_RefuseInfo,
34175 &ett_gsm_map_dialogue_MAP_UserAbortInfo,
34176 &ett_gsm_map_dialogue_MAP_UserAbortChoice,
34177 &ett_gsm_map_dialogue_MAP_ProviderAbortInfo,
34179 /* --- Module MAP-LocationServiceOperations --- --- --- */
34182 /* --- Module MAP-Group-Call-Operations --- --- --- */
34185 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
34188 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
34191 /* --- Module MAP-CallHandlingOperations --- --- --- */
34194 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
34197 /* --- Module MAP-MobileServiceOperations --- --- --- */
34200 /* --- Module MAP-Errors --- --- --- */
34203 /* --- Module MAP-Protocol --- --- --- */
34206 /* --- Module DummyMAP --- --- --- */
34208 &ett_gsm_old_Component,
34209 &ett_gsm_old_Invoke,
34210 &ett_gsm_old_ReturnResult,
34211 &ett_gsm_old_T_resultretres,
34212 &ett_gsm_old_ReturnError,
34213 &ett_gsm_old_Reject,
34214 &ett_gsm_old_T_invokeIDRej,
34215 &ett_gsm_old_T_problem,
34216 &ett_gsm_old_MAP_OPERATION,
34217 &ett_gsm_old_MAP_ERROR,
34218 &ett_gsm_old_Bss_APDU,
34219 &ett_gsm_old_ProvideSIWFSNumberArg,
34220 &ett_gsm_old_ProvideSIWFSNumberRes,
34221 &ett_gsm_old_PurgeMSArgV2,
34222 &ett_gsm_old_PrepareHO_ArgOld,
34223 &ett_gsm_old_PrepareHO_ResOld,
34224 &ett_gsm_old_SendAuthenticationInfoResOld,
34225 &ett_gsm_old_SendAuthenticationInfoResOld_item,
34226 &ett_gsm_old_SendIdentificationResV2,
34227 &ett_gsm_old_TripletListold,
34228 &ett_gsm_old_AuthenticationTriplet_v2,
34229 &ett_gsm_old_SIWFSSignallingModifyArg,
34230 &ett_gsm_old_SIWFSSignallingModifyRes,
34231 &ett_gsm_old_SecureTransportArg,
34232 &ett_gsm_old_SecureTransportErrorParam,
34233 &ett_gsm_old_SecureTransportRes,
34234 &ett_gsm_old_SecurityHeader,
34235 &ett_gsm_old_OriginalComponentIdentifier,
34236 &ett_gsm_old_OperationCode,
34237 &ett_gsm_old_ErrorCode,
34238 &ett_gsm_old_PlmnContainer_U,
34239 &ett_gsm_old_T_operatorSS_Code,
34240 &ett_gsm_old_ForwardSM_Arg,
34241 &ett_gsm_old_SM_RP_DAold,
34242 &ett_gsm_old_SM_RP_OAold,
34243 &ett_gsm_old_SendRoutingInfoArgV2,
34244 &ett_gsm_old_SendRoutingInfoResV2,
34245 &ett_gsm_old_BeginSubscriberActivityArg,
34246 &ett_gsm_old_RoutingInfoForSM_ArgV1,
34247 &ett_gsm_old_RoutingInfoForSM_ResV2,
34248 &ett_gsm_old_LocationInfoWithLMSIv2,
34249 &ett_gsm_old_LocationInfo,
34250 &ett_gsm_old_SendParametersArg,
34251 &ett_gsm_old_RequestParameterList,
34252 &ett_gsm_old_SentParameter,
34253 &ett_gsm_old_AuthenticationSetListOld,
34254 &ett_gsm_old_SentParameterList,
34255 &ett_gsm_old_ResetArgV1,
34257 /* --- Module SS-DataTypes --- --- --- */
34259 &ett_gsm_ss_NotifySS_Arg,
34260 &ett_gsm_ss_ForwardChargeAdviceArg,
34261 &ett_gsm_ss_ChargingInformation,
34262 &ett_gsm_ss_ForwardCUG_InfoArg,
34263 &ett_gsm_ss_ECT_Indicator,
34264 &ett_gsm_ss_NameIndicator,
34265 &ett_gsm_ss_Name,
34266 &ett_gsm_ss_NameSet,
34267 &ett_gsm_ss_RDN,
34268 &ett_gsm_ss_RemotePartyNumber,
34269 &ett_gsm_ss_AccessRegisterCCEntryArg,
34270 &ett_gsm_ss_CallDeflectionArg,
34271 &ett_gsm_ss_UserUserServiceArg,
34272 &ett_gsm_ss_LocationNotificationArg,
34273 &ett_gsm_ss_DeferredLocationExt,
34274 &ett_gsm_ss_RangingSlExt,
34275 &ett_gsm_ss_LocationNotificationRes,
34276 &ett_gsm_ss_LCS_MOLRArg,
34277 &ett_gsm_ss_MultiplePositioningProtocolPDUs,
34278 &ett_gsm_ss_LCS_MOLRRes,
34279 &ett_gsm_ss_LCS_AreaEventRequestArg,
34280 &ett_gsm_ss_LCS_SLMOLRArg,
34281 &ett_gsm_ss_PreferredRangingResult,
34282 &ett_gsm_ss_RelatedUEInfo,
34283 &ett_gsm_ss_RangingUEInfo,
34284 &ett_gsm_ss_LCS_SLMOLRRes,
34285 &ett_gsm_ss_RelativeResult,
34286 &ett_gsm_ss_SingleRelativeResult,
34287 &ett_gsm_ss_RelativeLocationCoordinates,
34288 &ett_gsm_ss_Relative2D_LocationWithUncertaintyEllipse,
34289 &ett_gsm_ss_Relative3D_LocationWithUncertaintyEllipsoid,
34290 &ett_gsm_ss_RangeDirection,
34291 &ett_gsm_ss_Range,
34292 &ett_gsm_ss_Azimuth,
34293 &ett_gsm_ss_Elevation,
34294 &ett_gsm_ss_LCS_AreaEventReportArg,
34295 &ett_gsm_ss_LCS_AreaEventCancellationArg,
34296 &ett_gsm_ss_LCS_PeriodicLocationRequestArg,
34297 &ett_gsm_ss_LCS_PeriodicLocationRequestRes,
34298 &ett_gsm_ss_LCS_LocationUpdateArg,
34299 &ett_gsm_ss_LCS_LocationUpdateRes,
34300 &ett_gsm_ss_LCS_PeriodicLocationCancellationArg,
34301 &ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg,
34302 &ett_gsm_ss_PeriodicLocation,
34303 &ett_gsm_ss_AreaEventReporting,
34304 &ett_gsm_ss_AreaList,
34305 &ett_gsm_ss_Area,
34306 &ett_gsm_ss_LocationInfo,
34307 &ett_gsm_ss_MotionEventReporting,
34308 &ett_gsm_ss_ReportingAccessTypes,
34309 &ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes,
34310 &ett_gsm_ss_LCS_EventReportArg,
34311 &ett_gsm_ss_ControlPlane_CIoT_5GS_Optimisation,
34312 &ett_gsm_ss_LCS_UserPlaneReportAFAddr,
34313 &ett_gsm_ss_Ipv4Addrs,
34314 &ett_gsm_ss_Ipv6Addrs,
34315 &ett_gsm_ss_LCS_CumulativeReportCriteria,
34316 &ett_gsm_ss_LCS_EventReportRes,
34317 &ett_gsm_ss_LCS_CancelDeferredLocationArg,
34318 &ett_gsm_ss_LCS_LocationPrivacySettingArg,
34319 &ett_gsm_ss_LCS_ValidTimePeriod,
34320 &ett_gsm_ss_LCS_PruAssociationArg,
34321 &ett_gsm_ss_LCS_PruAssociationRes,
34322 &ett_gsm_ss_LCS_PruUpdateTrigger,
34323 &ett_gsm_ss_LCS_PruDisassociationArg,
34324 &ett_gsm_ss_LCS_SLMTLRArg,
34325 &ett_gsm_ss_LCS_SLMTLRRes,
34326 &ett_gsm_ss_RangingSLPPList,
34327 &ett_gsm_ss_RangingSLPPInfo,
34328 &ett_gsm_ss_LCS_DLRSPPTransportArg,
34329 &ett_gsm_ss_LCS_DLRSPPTransportRes,
34330 &ett_gsm_ss_LCS_ULRSPPTransportArg,
34331 &ett_gsm_ss_LCS_ULRSPPTransportRes,
34333 /* --- Module SS-Operations --- --- --- */
34336 /* --- Module EricssonMAP --- --- --- */
34338 &ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg,
34339 &ett_gsm_map_ericsson_ExtensionType,
34340 &ett_gsm_map_ericsson_IsdArgType,
34341 &ett_gsm_map_ericsson_IsdArgData,
34342 &ett_gsm_map_ericsson_PrivateFeatureData,
34343 &ett_gsm_map_ericsson_OickInfo,
34344 &ett_gsm_map_ericsson_SubscriptionTypeInfo,
34345 &ett_gsm_map_ericsson_IsdResType,
34346 &ett_gsm_map_ericsson_IsdResData,
34347 &ett_gsm_map_ericsson_DsdArgType,
34348 &ett_gsm_map_ericsson_DsdArgData,
34349 &ett_gsm_map_ericsson_SRIArgType,
34350 &ett_gsm_map_ericsson_SriArgData,
34351 &ett_gsm_map_ericsson_SRIResType,
34352 &ett_gsm_map_ericsson_SriResData,
34353 &ett_gsm_map_ericsson_PrnArgType,
34354 &ett_gsm_map_ericsson_PrnArgData,
34355 &ett_gsm_map_ericsson_UlArgType,
34356 &ett_gsm_map_ericsson_UlArgData,
34357 &ett_gsm_map_ericsson_PrivateFeatureUlArgData,
34358 &ett_gsm_map_ericsson_ExtraSignalInfo_U,
34359 &ett_gsm_map_ericsson_SaiArgType,
34360 &ett_gsm_map_ericsson_SaiResType,
34361 &ett_gsm_map_ericsson_AtiArgType,
34362 &ett_gsm_map_ericsson_AtiResType,
34363 &ett_gsm_map_ericsson_RdArgType,
34364 &ett_gsm_map_ericsson_RequestedInfoType,
34365 &ett_gsm_map_ericsson_ExtAtiArgType,
34366 &ett_gsm_map_ericsson_AtiArgData,
34368 /* --- Module NokiaMAP-Extensions --- --- --- */
34370 &ett_NokiaMAP_Extensions_IsdArgExt_U,
34371 &ett_NokiaMAP_Extensions_DsdArgExt_U,
34372 &ett_NokiaMAP_Extensions_UlResExt_U,
34373 &ett_NokiaMAP_Extensions_ChargingAreaList,
34374 &ett_NokiaMAP_Extensions_RegionalChargingData,
34375 &ett_NokiaMAP_Extensions_SS_DataExtension_U,
34376 &ett_NokiaMAP_Extensions_SriExtension_U,
34377 &ett_NokiaMAP_Extensions_ExtraSignalInfo_U,
34378 &ett_NokiaMAP_Extensions_Nokia_CUG_Data,
34379 &ett_NokiaMAP_Extensions_SriResExtension_U,
34380 &ett_NokiaMAP_Extensions_RgData,
34381 &ett_NokiaMAP_Extensions_MemberList,
34382 &ett_NokiaMAP_Extensions_CanLocArgExt_U,
34383 &ett_NokiaMAP_Extensions_ATMargExt_U,
34384 &ett_NokiaMAP_Extensions_OlcmInfoTable,
34385 &ett_NokiaMAP_Extensions_OlcmInfo,
34386 &ett_NokiaMAP_Extensions_ATMresExt_U,
34387 &ett_NokiaMAP_Extensions_DTMargExt_U,
34388 &ett_NokiaMAP_Extensions_FraudInfo,
34389 &ett_NokiaMAP_Extensions_FraudData,
34390 &ett_NokiaMAP_Extensions_ServiceWithInfo,
34391 &ett_NokiaMAP_Extensions_ServiceListWithInfo,
34392 &ett_NokiaMAP_Extensions_INKey,
34393 &ett_NokiaMAP_Extensions_MKey,
34394 &ett_NokiaMAP_Extensions_SMSKey,
34395 &ett_NokiaMAP_Extensions_HO_Ext_U,
34396 &ett_NokiaMAP_Extensions_CodecListExt,
34397 &ett_NokiaMAP_Extensions_SelectedCodec,
34398 &ett_NokiaMAP_Extensions_AbsentSubscriberExt_U,
34399 &ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U,
34400 &ett_NokiaMAP_Extensions_RoutingCategoryExt_U,
34401 &ett_NokiaMAP_Extensions_SriForSMArgExt_U,
34402 &ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U,
34403 &ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U,
34404 &ett_NokiaMAP_Extensions_UdlArgExt_U,
34405 &ett_NokiaMAP_Extensions_RoamNotAllowedExt_U,
34406 &ett_NokiaMAP_Extensions_AnyTimeModArgExt_U,
34407 &ett_NokiaMAP_Extensions_AccessTypeExt,
34408 &ett_NokiaMAP_Extensions_AccessSubscriptionListExt,
34409 &ett_NokiaMAP_Extensions_AllowedServiceData,
34412 static ei_register_info ei[] = {
34413 { &ei_gsm_map_unknown_sequence3, { "gsm_map.unknown.sequence3", PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence", EXPFILL }},
34414 { &ei_gsm_map_unknown_sequence, { "gsm_map.unknown.sequence", PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence", EXPFILL }},
34415 { &ei_gsm_map_unknown_parameter, { "gsm_map.unknown.parameter", PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter", EXPFILL }},
34416 { &ei_gsm_map_unknown_invokeData, { "gsm_map.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL }},
34417 { &ei_gsm_map_undecoded, { "gsm_map.undecoded", PI_UNDECODED, PI_WARN, "If you want this decoded send the packet to Wireshark-dev", EXPFILL }},
34420 static const enum_val_t application_context_modes[] = {
34421 {"1", "Treat as AC 1", 1},
34422 {"2", "Treat as AC 2", 2},
34423 {"3", "Treat as AC 3", 3},
34424 {NULL, NULL, -1}
34427 static tap_param gsm_map_stat_params[] = {
34428 { PARAM_FILTER, "filter", "Filter", NULL, true }
34431 static stat_tap_table_ui gsm_map_stat_table = {
34432 REGISTER_TELEPHONY_GROUP_GSM,
34433 "MAP Operation",
34434 "gsm_map",
34435 "gsm_map,operation",
34436 gsm_map_stat_init,
34437 gsm_map_stat_packet,
34438 gsm_map_stat_reset,
34439 gsm_map_stat_free_table_item,
34440 NULL,
34441 array_length(gsm_map_stat_fields), gsm_map_stat_fields,
34442 array_length(gsm_map_stat_params), gsm_map_stat_params,
34443 NULL,
34447 /* Register protocol */
34448 proto_gsm_map_ms = proto_gsm_map_dialogue = proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
34450 map_handle = register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
34451 register_dissector("gsm_map_sccp", dissect_gsm_map_sccp, proto_gsm_map);
34453 /* Register fields and subtrees */
34454 proto_register_field_array(proto_gsm_map, hf, array_length(hf));
34455 proto_register_subtree_array(ett, array_length(ett));
34456 expert_gsm_map = expert_register_protocol(proto_gsm_map);
34457 expert_register_field_array(expert_gsm_map, ei, array_length(ei));
34459 register_dissector_table("gsm_map.v3.arg.opcode", "GSM_MAP V3 Arg Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC);
34460 register_dissector_table("gsm_map.v3.res.opcode", "GSM_MAP V3 Res Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC);
34462 map_prop_arg_opcode_table = register_dissector_table("gsm_map.prop.arg.opcode", "GSM_MAP Proprietary Arg Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC);
34463 map_prop_res_opcode_table = register_dissector_table("gsm_map.prop.res.opcode", "GSM_MAP Proprietary Res Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC);
34464 map_prop_err_opcode_table = register_dissector_table("gsm_map.prop.err.opcode", "GSM_MAP Proprietary Err Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC);
34466 gsm_map_tap = register_tap("gsm_map");
34469 /* --- Module MAP-MS-DataTypes --- --- --- */
34471 dissector_add_uint("gsm_map.v3.arg.opcode", 56, create_dissector_handle(dissect_gsm_map_ms_SendAuthenticationInfoArg_PDU, proto_gsm_map_ms));
34472 dissector_add_uint("gsm_map.v3.res.opcode", 56, create_dissector_handle(dissect_gsm_map_ms_SendAuthenticationInfoRes_PDU, proto_gsm_map_ms));
34475 /* --- Module MAP-CH-DataTypes --- --- --- */
34479 /* --- Module MAP-LCS-DataTypes --- --- --- */
34483 /* --- Module MAP-GR-DataTypes --- --- --- */
34487 /* --- Module MAP-DialogueInformation --- --- --- */
34489 register_ber_oid_dissector("0.4.0.0.1.1.1.1", dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU, proto_gsm_map_dialogue, "map-DialogueAS");
34492 /* --- Module MAP-LocationServiceOperations --- --- --- */
34496 /* --- Module MAP-Group-Call-Operations --- --- --- */
34500 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
34504 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
34508 /* --- Module MAP-CallHandlingOperations --- --- --- */
34512 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
34516 /* --- Module MAP-MobileServiceOperations --- --- --- */
34520 /* --- Module MAP-Errors --- --- --- */
34524 /* --- Module MAP-Protocol --- --- --- */
34528 /* --- Module DummyMAP --- --- --- */
34532 /* --- Module SS-DataTypes --- --- --- */
34536 /* --- Module SS-Operations --- --- --- */
34540 /* --- Module EricssonMAP --- --- --- */
34544 /* --- Module NokiaMAP-Extensions --- --- --- */
34547 oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
34548 oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
34549 /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
34551 * Register our configuration options, particularly our ssn:s
34552 * Set default SSNs
34554 range_convert_str(wmem_epan_scope(), &global_ssn_range, "6-9,145,148-150", MAX_SSN);
34556 gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
34558 prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
34559 "TCAP Subsystem numbers used for GSM MAP",
34560 &global_ssn_range, MAX_SSN);
34562 prefs_register_bool_preference(gsm_map_module, "application.context.version.from.trace",
34563 "Use application context from the trace",
34564 "Use the application context version from the "
34565 "lower level protocol (i.e., TCAP) transaction "
34566 "if available",
34567 &pref_context_version_from_trace);
34569 prefs_register_enum_preference(gsm_map_module, "application.context.version",
34570 "Default application context version",
34571 "The default application context version "
34572 "when not using the version from the lower "
34573 "layer transaction",
34574 &pref_application_context_version, application_context_modes, 3);
34576 prefs_register_bool_preference(gsm_map_module, "ericsson.proprietary.extensions",
34577 "Dissect Ericsson proprietary extensions",
34578 "When enabled, dissector will use the non 3GPP standard extensions from Ericsson (that can override the standard ones)",
34579 &pref_ericsson_proprietary_ext);
34581 register_stat_tap_table_ui(&gsm_map_stat_table);
34585 * Editor modelines
34587 * Local Variables:
34588 * c-basic-offset: 2
34589 * tab-width: 8
34590 * indent-tabs-mode: nil
34591 * End:
34593 * ex: set shiftwidth=2 tabstop=8 expandtab:
34594 * :indentSize=2:tabSize=8:noTabs=true: